10 const double DivideByZeroTol = 1.0e-10;
11 const double DivideByZeroTolSq = DivideByZeroTol * DivideByZeroTol;
13 const double EqualTol = 1.0e-3;
14 const double EqualTolSq = EqualTol * EqualTol;
16 inline bool AreEqual(
double val1,
double val2,
double tol = EqualTol)
18 double diff = val1 - val2;
19 return diff <= tol && diff >= -tol;
28 CVector3d(): m_x(0.0), m_y(0.0), m_z(0.0) {}
29 CVector3d(
double x,
double y,
double z): m_x(x), m_y(y), m_z(z) {}
33 void SetDirection(
double x,
double y,
double z){m_x=x; m_y=y; m_z=z;}
35 double X()
const {
return m_x;}
36 double Y()
const {
return m_y;}
37 double Z()
const {
return m_z;}
39 void SetX(
double x) { m_x = x; }
40 void SetY(
double y) { m_y = y; }
41 void SetZ(
double z) { m_z = z; }
50 void operator*=(
double scale);
51 void operator/=(
double scale);
53 bool operator==(
const CVector3d& vec)
const;
54 bool operator!=(
const CVector3d& vec)
const;
70 CPoint3d(): m_x(0.0), m_y(0.0), m_z(0.0) {}
71 CPoint3d(
double x,
double y,
double z): m_x(x), m_y(y), m_z(z) {}
72 CPoint3d(CComPtr<ISkpPoint3d> point);
75 void SetLocation(
double x,
double y,
double z){m_x=x; m_y=y; m_z=z;}
77 double X()
const {
return m_x;}
78 double Y()
const {
return m_y;}
79 double Z()
const {
return m_z;}
81 void SetX(
double x) { m_x = x; }
82 void SetY(
double y) { m_y = y; }
83 void SetZ(
double z) { m_z = z; }
93 CPoint3d operator* (
double scale)
const {
return CPoint3d (m_x * scale, m_y * scale, m_z * scale);}
94 void operator*= (
double scale) {*
this = *
this * scale;}
95 CPoint3d operator/ (
double invScale)
const {
return *
this * (1.0 / invScale);}
96 void operator/= (
double invScale) {*
this = *
this / invScale;}
116 void SetMatrix(
double m[16]);
Definition: GeomUtilities.h:66
Definition: GeomUtilities.h:24