7 #define _USE_MATH_DEFINES 16 CPoint3D(
double x,
double y,
double z);
22 inline double Len()
const;
23 inline void Normalize();
26 return x == other.
x && y == other.
y && z == other.
z;
46 out << pt.
x <<
" " << pt.
y <<
" " << pt.
z << endl;
89 return sqrt(x * x + y * y + z * z);
111 void VectorCross(
const float* u,
const float* v,
float * n);
112 float VectorDot(
const float* u,
const float* v);
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half & operator*=(half &a, const half &b)
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half & operator-=(half &a, const half &b)
double AngleBetween(const CPoint3D &pt1, const CPoint3D &pt2)
CPoint3D VectorCross(const CPoint3D &pt1, const CPoint3D &pt2, const CPoint3D &pt3)
EIGEN_DEVICE_FUNC const SqrtReturnType sqrt() const
bool operator==(const CPoint3D &other) const
friend ostream & operator<<(ostream &out, const CPoint3D &pt)
double operator^(const CPoint3D &pt1, const CPoint3D &pt2)
float VectorDot(const float *u, const float *v)
double GetTriangleArea(const CPoint3D &pt1, const CPoint3D &pt2, const CPoint3D &pt3)
CPoint3D & operator*=(double times)
CPoint3D & operator+=(const CPoint3D &pt)
CPoint3D operator/(const CPoint3D &pt, double times)
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half & operator+=(half &a, const half &b)
bool operator<(const CPoint3D &other) const
CPoint3D CombineTwoNormalsTo(const CPoint3D &pt1, double coef1, const CPoint3D &pt2, double coef2)
CPoint3D & operator-=(const CPoint3D &pt)
CPoint3D operator*(const CPoint3D &pt, double times)
CPoint3D CombinePointAndNormalTo(const CPoint3D &pt, const CPoint3D &normal)
CPoint3D & operator/=(double times)
CPoint3D operator-(const CPoint3D &pt1, const CPoint3D &pt2)
CPoint3D operator+(const CPoint3D &pt1, const CPoint3D &pt2)
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half & operator/=(half &a, const half &b)