DATAKIT API  V2025.1
Dtk_dir Class Reference

This is a mathematical direction class. More...

+ Inheritance diagram for Dtk_dir:

Public Member Functions

Dtk_dir Affinitised (const Dtk_pnt &p, const Dtk_dir &xdir, const Dtk_dir &ydir, double f[3]) const
 
void Affinity (const Dtk_pnt &, const Dtk_dir &xdir, const Dtk_dir &ydir, double[3])
 
void Affinity (double f[3])
 
double Angle (const Dtk_dir &vRef, const Dtk_dir &vAxe, double tolerance=0.00000001) const
 
double AngleXY (double tolerance=0.00000001) const
 
Dtk_Double64 ComputeAngleByQuadrant (const Dtk_dir &V2, const Dtk_dir &ref_Z) const
 
void Cross (const Dtk_dir &right)
 
void CrossCross (const Dtk_dir &c1, const Dtk_dir &c2)
 
Dtk_dir CrossCrossed (const Dtk_dir &c1, const Dtk_dir &c2) const
 
Dtk_dir Crossed (const Dtk_dir &right) const
 
Dtk_dir DerivativeOfCrossProduct (const Dtk_dir &other, const Dtk_dir &thisPrime, const Dtk_dir &otherPrime) const
 
double DerivativeOfNorm (const Dtk_dir &thisPrime) const
 
double Dot (const Dtk_dir &other) const
 
double DotCross (const Dtk_dir &c1, const Dtk_dir &c2) const
 
 Dtk_dir ()
 
 Dtk_dir (const Dtk_dir &s)
 
 Dtk_dir (const Dtk_pnt &, const Dtk_pnt &)
 
 Dtk_dir (const Dtk_pnt &pnt)
 
 Dtk_dir (double a, double b, double c=0.0)
 
Dtk_dir GetNormal () const
 
void GetXYZ (Dtk_Double64 &outX, Dtk_Double64 &outY, Dtk_Double64 &outZ) const
 Retrieves to the 3 coordinates of the class. More...
 
int IsEqual (const Dtk_pnt &inPointToCompare, const double inTolerance) const
 test if 2 Dtk_pnt are equal - with a tolerance - More...
 
Dtk_dir Multiplied (const CDtk_3dMat &matrix) const
 
Dtk_dir MultipliedByTransposed (const CDtk_3dMat &matrix) const
 
Dtk_dir MultipliedNormalize (const CDtk_3dMat &matrix) const
 
void Multiply (const CDtk_3dMat &matrix)
 
void MultiplyByTransposed (const CDtk_3dMat &matrix)
 
void MultiplyNormalize (const CDtk_3dMat &matrix)
 
double norm () const
 
int normalize ()
 
double Normalize ()
 
Dtk_dir Normalized () const
 
double operator& (const Dtk_dir &other) const
 
Dtk_dir operator* (const CDtk_3dMat &matrix) const
 
Dtk_dir operator* (double a) const
 
void operator*= (const CDtk_3dMat &matrix)
 
Dtk_diroperator*= (double)
 
Dtk_dir operator+ () const
 
Dtk_dir operator+ (const Dtk_dir &v)
 
Dtk_diroperator+= (const Dtk_dir &)
 
Dtk_diroperator+= (const Dtk_pnt &)
 
Dtk_pnt operator- ()
 
Dtk_dir operator- () const
 
Dtk_dir operator- (const Dtk_dir &v)
 
Dtk_diroperator-= (const Dtk_dir &)
 
Dtk_diroperator-= (const Dtk_pnt &)
 
Dtk_diroperator/= (double)
 
Dtk_diroperator= (const Dtk_dir &)
 
double & operator[] (Dtk_Size_t i)
 access to a specified coordinate of the Dtk_pnt More...
 
const double & operator[] (Dtk_Size_t i) const
 access to a specified coordinate of the Dtk_pnt. More...
 
void operator^= (const Dtk_dir &right)
 
Dtk_dir PostMultiplied (const CDtk_3dMat &matrix) const
 
void PostMultiply (const CDtk_3dMat &matrix)
 
double Project (const Dtk_dir &zdir, double d)
 
double Project (const Dtk_dir &zdir, double d, const Dtk_dir &zPrj)
 
double Project (const Dtk_pnt &org, const Dtk_dir &zdir)
 
double Project (const Dtk_pnt &org, const Dtk_dir &zdir, const Dtk_dir &zPrj)
 
Dtk_pnt Projected (const Dtk_dir &zdir, double d) const
 
Dtk_pnt Projected (const Dtk_dir &zdir, double d, const Dtk_dir &zPrj) const
 
Dtk_pnt Projected (const Dtk_pnt &org, const Dtk_dir &zdir) const
 
Dtk_pnt Projected (const Dtk_pnt &org, const Dtk_dir &zdir, const Dtk_dir &zPrj) const
 
Dtk_pnt ProjectedOnLine (const Dtk_pnt &org, const Dtk_dir &dir) const
 
void ProjectOnLine (const Dtk_pnt &org, const Dtk_dir &dir)
 
void reverse ()
 
Dtk_dir reversed () const
 
void Rotate (const Dtk_dir &dir, double angle, const Dtk_pnt &center)
 
int rotate (const Dtk_dir &Z, double angle)
 
void Rotate (const Dtk_pnt &p0, const CDtk_3dMat &matrix)
 
Dtk_dir Rotated (const Dtk_dir &dir, double angle, const Dtk_pnt &center) const
 
Dtk_dir Rotated (const Dtk_pnt &p0, const CDtk_3dMat &matrix) const
 
void Scale (const Dtk_pnt &p0, double s)
 
Dtk_dir Scaled (const Dtk_pnt &p0, double s) const
 
Dtk_dir SecondDerivativeOfCrossProduct (const Dtk_dir &other, const Dtk_dir &thisPrime, const Dtk_dir &otherPrime, const Dtk_dir &thisSecond, const Dtk_dir &otherSecond) const
 
double SecondDerivativeOfNorm (const Dtk_dir &thisPrime, const Dtk_dir &thisSecond) const
 
 SetAsDeprecated ("Undefined", "Use ComputeAngleByQuadrant") double angle_with_Dtk_dir(const Dtk_dir &V2
 
void SetXYZ (const Dtk_Double64 &inX, const Dtk_Double64 &inY, const Dtk_Double64 &inZ)
 Sets the 3 coordinates of the class. More...
 
double Solve (const CDtk_3dMat &matrix, const Dtk_dir &col3)
 
double Solve (const Dtk_dir &col0, const Dtk_dir &col1, const Dtk_dir &col2, const Dtk_dir &col3)
 
double SquareModulus ()
 
Dtk_dir Symetrised (const Dtk_pnt &opl, const Dtk_dir &zpl) const
 
void Symetry (const Dtk_dir &zpl)
 
void Symetry (const Dtk_pnt &opl, const Dtk_dir &zpl)
 
void Transform (const CDtk_3dMat &matrix)
 
Dtk_dir Transformed (const CDtk_3dMat &matrix) const
 
void Translate (const Dtk_dir &dir)
 
void Translate (const Dtk_pnt &p0, const Dtk_pnt &p1)
 
Dtk_dir Translated (const Dtk_dir &dir) const
 
Dtk_dir Translated (const Dtk_pnt &p0, const Dtk_pnt &p1) const
 
Dtk_dir UnitizedDerivative (const Dtk_dir &thisPrime) const
 
Dtk_dir UnitizedSecondDerivative (const Dtk_dir &thisPrime, const Dtk_dir &thisSecond) const
 
double & x ()
 access to x coordinate of the Dtk_pnt. More...
 
const double & x () const
 access to x coordinate of the Dtk_pnt. More...
 
double & y ()
 access to y coordinate of the Dtk_pnt. More...
 
const double & y () const
 access to y coordinate of the Dtk_pnt. More...
 
double & z ()
 access to z coordinate of the Dtk_pnt. More...
 
const double & z () const
 access to z coordinate of the Dtk_pnt. More...
 
 ~Dtk_dir ()
 

Static Public Member Functions

static Dtk_Double64 ProcessDistance (const Dtk_pnt &inPoint1, const Dtk_pnt &inPoint2)
 
static void ProcessMiddlePoint (const Dtk_pnt &inPntA, const Dtk_pnt &inPntB, Dtk_pnt &outMiddlePnt)
 

Data Fields

const Dtk_dirref_Z
 

Protected Attributes

double _Coords [3]
 

Friends

Dtk_pnt intersect2d (const Dtk_pnt &p1, const Dtk_dir &d1, const Dtk_pnt &p2, const Dtk_dir &d2)
 
double norm (const Dtk_dir &)
 
double normC (const Dtk_dir &)
 
int onleft (const Dtk_dir &, const Dtk_dir &)
 
double operator* (const Dtk_dir &, const Dtk_dir &)
 
Dtk_dir operator* (double, const Dtk_dir &)
 
Dtk_dir operator/ (const Dtk_dir &, const Dtk_dir &)
 
Dtk_dir operator/ (const Dtk_dir &, double)
 
Dtk_dir operator/ (double, const Dtk_dir &)
 
std::ostream & operator<< (std::ostream &o, const Dtk_dir &d)
 
Dtk_dir operator^ (const Dtk_dir &, const Dtk_dir &)
 
Dtk_dir Orthogonal (const Dtk_dir &)
 
Dtk_pnt orthoproj2d (const Dtk_pnt &p1, const Dtk_dir &d1, const Dtk_pnt &p2)
 
Dtk_dir Pdtk_CrossProduct (const Dtk_dir &, const Dtk_dir &)
 
double Pdtk_DotProduct (const Dtk_dir &, const Dtk_dir &)
 

Detailed Description

This is a mathematical direction class.

This class provides all method about direction

Constructor & Destructor Documentation

◆ Dtk_dir() [1/5]

Dtk_dir::Dtk_dir ( )

◆ ~Dtk_dir()

Dtk_dir::~Dtk_dir ( )
18 {}

◆ Dtk_dir() [2/5]

Dtk_dir::Dtk_dir ( const Dtk_dir s)

◆ Dtk_dir() [3/5]

Dtk_dir::Dtk_dir ( const Dtk_pnt pnt)

◆ Dtk_dir() [4/5]

Dtk_dir::Dtk_dir ( double  a,
double  b,
double  c = 0.0 
)

◆ Dtk_dir() [5/5]

Dtk_dir::Dtk_dir ( const Dtk_pnt ,
const Dtk_pnt  
)

Member Function Documentation

◆ Affinitised()

Dtk_dir Dtk_dir::Affinitised ( const Dtk_pnt p,
const Dtk_dir xdir,
const Dtk_dir ydir,
double  f[3] 
) const

◆ Affinity() [1/2]

void Dtk_dir::Affinity ( const Dtk_pnt ,
const Dtk_dir xdir,
const Dtk_dir ydir,
double  [3] 
)

◆ Affinity() [2/2]

void Dtk_dir::Affinity ( double  f[3])
154 { _Coords[ 0 ] *= f[ 0 ]; _Coords[ 1 ] *= f[ 1 ]; _Coords[ 2 ] *= f[ 2 ]; }

◆ Angle()

double Dtk_dir::Angle ( const Dtk_dir vRef,
const Dtk_dir vAxe,
double  tolerance = 0.00000001 
) const

◆ AngleXY()

double Dtk_dir::AngleXY ( double  tolerance = 0.00000001) const

◆ ComputeAngleByQuadrant()

Dtk_Double64 Dtk_dir::ComputeAngleByQuadrant ( const Dtk_dir V2,
const Dtk_dir ref_Z 
) const

◆ Cross()

void Dtk_dir::Cross ( const Dtk_dir right)

◆ CrossCross()

void Dtk_dir::CrossCross ( const Dtk_dir c1,
const Dtk_dir c2 
)

◆ CrossCrossed()

Dtk_dir Dtk_dir::CrossCrossed ( const Dtk_dir c1,
const Dtk_dir c2 
) const

◆ Crossed()

Dtk_dir Dtk_dir::Crossed ( const Dtk_dir right) const

◆ DerivativeOfCrossProduct()

Dtk_dir Dtk_dir::DerivativeOfCrossProduct ( const Dtk_dir other,
const Dtk_dir thisPrime,
const Dtk_dir otherPrime 
) const

◆ DerivativeOfNorm()

double Dtk_dir::DerivativeOfNorm ( const Dtk_dir thisPrime) const

◆ Dot()

double Dtk_dir::Dot ( const Dtk_dir other) const
120 { return ( *this * other ); }

◆ DotCross()

double Dtk_dir::DotCross ( const Dtk_dir c1,
const Dtk_dir c2 
) const

◆ GetNormal()

Dtk_dir Dtk_dir::GetNormal ( ) const

◆ GetXYZ()

void Dtk_pnt::GetXYZ ( Dtk_Double64 outX,
Dtk_Double64 outY,
Dtk_Double64 outZ 
) const
inherited

Retrieves to the 3 coordinates of the class.

Warning
You can't modify the returned value.
80  {
81  outX = _Coords[ 0 ];
82  outY = _Coords[ 1 ];
83  outZ = _Coords[ 2 ];
84  }

◆ IsEqual()

int Dtk_pnt::IsEqual ( const Dtk_pnt inPointToCompare,
const double  inTolerance 
) const
inherited

test if 2 Dtk_pnt are equal - with a tolerance -

Parameters
pnt2the Dtk_pnt to compare
tolthe tolerance to compare
Returns
0 if not equals != 0 else

Sample:

Dtk_pnt a(0.0,0.0,0.0);
Dtk_pnt b(15.0,0.0,0.0);
...
if(a.is_equal(b, 0.1))
{...}

◆ Multiplied()

Dtk_dir Dtk_dir::Multiplied ( const CDtk_3dMat &  matrix) const

◆ MultipliedByTransposed()

Dtk_dir Dtk_dir::MultipliedByTransposed ( const CDtk_3dMat &  matrix) const

◆ MultipliedNormalize()

Dtk_dir Dtk_dir::MultipliedNormalize ( const CDtk_3dMat &  matrix) const

◆ Multiply()

void Dtk_dir::Multiply ( const CDtk_3dMat &  matrix)

◆ MultiplyByTransposed()

void Dtk_dir::MultiplyByTransposed ( const CDtk_3dMat &  matrix)

◆ MultiplyNormalize()

void Dtk_dir::MultiplyNormalize ( const CDtk_3dMat &  matrix)

◆ norm()

double Dtk_dir::norm ( ) const

◆ normalize()

int Dtk_dir::normalize ( )

◆ Normalize()

double Dtk_dir::Normalize ( )

◆ Normalized()

Dtk_dir Dtk_dir::Normalized ( ) const

◆ operator&()

double Dtk_dir::operator& ( const Dtk_dir other) const
121 { return ( *this * other ); }

◆ operator*() [1/2]

Dtk_dir Dtk_dir::operator* ( const CDtk_3dMat &  matrix) const
173 {
174  return Multiplied( matrix );
175 }

◆ operator*() [2/2]

Dtk_dir Dtk_dir::operator* ( double  a) const
42 { return Dtk_dir( _Coords[ 0 ] * a, _Coords[ 1 ] * a, _Coords[ 2 ] * a ); }

◆ operator*=() [1/2]

void Dtk_dir::operator*= ( const CDtk_3dMat &  matrix)
168 {
169  Multiply( matrix );
170 }

◆ operator*=() [2/2]

Dtk_dir& Dtk_dir::operator*= ( double  )

◆ operator+() [1/2]

Dtk_dir Dtk_dir::operator+ ( ) const

◆ operator+() [2/2]

Dtk_dir Dtk_dir::operator+ ( const Dtk_dir v)
47 { return Dtk_dir( _Coords[ 0 ] + v._Coords[ 0 ], _Coords[ 1 ] + v._Coords[ 1 ], _Coords[ 2 ] + v._Coords[ 2 ] ); }

◆ operator+=() [1/2]

Dtk_dir& Dtk_dir::operator+= ( const Dtk_dir )

◆ operator+=() [2/2]

Dtk_dir& Dtk_dir::operator+= ( const Dtk_pnt )

◆ operator-() [1/3]

Dtk_pnt Dtk_pnt::operator- ( )
inherited

◆ operator-() [2/3]

Dtk_dir Dtk_dir::operator- ( ) const

◆ operator-() [3/3]

Dtk_dir Dtk_dir::operator- ( const Dtk_dir v)
48 { return Dtk_dir( _Coords[ 0 ] - v._Coords[ 0 ], _Coords[ 1 ] - v._Coords[ 1 ], _Coords[ 2 ] - v._Coords[ 2 ] ); }

◆ operator-=() [1/2]

Dtk_dir& Dtk_dir::operator-= ( const Dtk_dir )

◆ operator-=() [2/2]

Dtk_dir& Dtk_dir::operator-= ( const Dtk_pnt )

◆ operator/=()

Dtk_dir& Dtk_dir::operator/= ( double  )

◆ operator=()

Dtk_dir& Dtk_dir::operator= ( const Dtk_dir )

◆ operator[]() [1/2]

double& Dtk_dir::operator[] ( Dtk_Size_t  i)

access to a specified coordinate of the Dtk_pnt

  • i = 0 => X coordinate
  • i = 1 => Y coordinate
  • i = 2 => Z coordinate
71  {
72  Pdtk_Assert( i < 3 );
73  return _Coords[ i ];
74  }

◆ operator[]() [2/2]

const double& Dtk_dir::operator[] ( Dtk_Size_t  i) const

access to a specified coordinate of the Dtk_pnt.

Warning
You can't modify the returned value.
  • i = 0 => X coordinate
  • i = 1 => Y coordinate
  • i = 2 => Z coordinate
81  {
82  Pdtk_Assert( i < 3 );
83  return _Coords[ i ];
84  }

◆ operator^=()

void Dtk_dir::operator^= ( const Dtk_dir right)
178 {
179  Cross( right );
180 }

◆ PostMultiplied()

Dtk_dir Dtk_dir::PostMultiplied ( const CDtk_3dMat &  matrix) const

◆ PostMultiply()

void Dtk_dir::PostMultiply ( const CDtk_3dMat &  matrix)

◆ ProcessDistance()

static Dtk_Double64 Dtk_pnt::ProcessDistance ( const Dtk_pnt inPoint1,
const Dtk_pnt inPoint2 
)
staticinherited
201  {
202  Dtk_Double64 dist = 0.0;
203  Dtk_Size_t i;
204 
205  for( i = 0; i < 3; i++ )
206  dist += ( inPoint1[ i ] - inPoint2[ i ] ) * ( inPoint1[ i ] - inPoint2[ i ] );
207 
208  return static_cast< Dtk_Double64 >( sqrt( dist ) );
209  }

◆ ProcessMiddlePoint()

static void Dtk_pnt::ProcessMiddlePoint ( const Dtk_pnt inPntA,
const Dtk_pnt inPntB,
Dtk_pnt outMiddlePnt 
)
staticinherited
195  {
196  for( Dtk_Size_t i = 0; i < 3; i++ )
197  outMiddlePnt[ i ] = ( inPntA[ i ] + inPntB[ i ] ) / 2.0;
198  }

◆ Project() [1/4]

double Dtk_pnt::Project ( const Dtk_dir zdir,
double  d 
)
inherited

◆ Project() [2/4]

double Dtk_pnt::Project ( const Dtk_dir zdir,
double  d,
const Dtk_dir zPrj 
)
inherited

◆ Project() [3/4]

double Dtk_pnt::Project ( const Dtk_pnt org,
const Dtk_dir zdir 
)
inherited

◆ Project() [4/4]

double Dtk_pnt::Project ( const Dtk_pnt org,
const Dtk_dir zdir,
const Dtk_dir zPrj 
)
inherited

◆ Projected() [1/4]

Dtk_pnt Dtk_pnt::Projected ( const Dtk_dir zdir,
double  d 
) const
inherited
295 {
296  Dtk_pnt tmp = *this;
297  tmp.Project( zdir, d );
298  return tmp;
299 }

◆ Projected() [2/4]

Dtk_pnt Dtk_pnt::Projected ( const Dtk_dir zdir,
double  d,
const Dtk_dir zPrj 
) const
inherited
288 {
289  Dtk_pnt tmp = *this;
290  tmp.Project( zdir, d, zprj );
291  return tmp;
292 }

◆ Projected() [3/4]

Dtk_pnt Dtk_pnt::Projected ( const Dtk_pnt org,
const Dtk_dir zdir 
) const
inherited
281 {
282  Dtk_pnt tmp = *this;
283  tmp.Project( org, zdir );
284  return tmp;
285 }

◆ Projected() [4/4]

Dtk_pnt Dtk_pnt::Projected ( const Dtk_pnt org,
const Dtk_dir zdir,
const Dtk_dir zPrj 
) const
inherited
274 {
275  Dtk_pnt tmp = *this;
276  tmp.Project( org, zdir, zprj );
277  return tmp;
278 }

◆ ProjectedOnLine()

Dtk_pnt Dtk_pnt::ProjectedOnLine ( const Dtk_pnt org,
const Dtk_dir dir 
) const
inherited
302 {
303  Dtk_pnt tmp = *this;
304  tmp.ProjectOnLine( org, dir );
305  return tmp;
306 }

◆ ProjectOnLine()

void Dtk_pnt::ProjectOnLine ( const Dtk_pnt org,
const Dtk_dir dir 
)
inherited

◆ reverse()

void Dtk_dir::reverse ( )

◆ reversed()

Dtk_dir Dtk_dir::reversed ( ) const

◆ Rotate() [1/2]

void Dtk_dir::Rotate ( const Dtk_dir dir,
double  angle,
const Dtk_pnt center 
)

◆ rotate()

int Dtk_dir::rotate ( const Dtk_dir Z,
double  angle 
)

◆ Rotate() [2/2]

void Dtk_dir::Rotate ( const Dtk_pnt p0,
const CDtk_3dMat &  matrix 
)

◆ Rotated() [1/2]

Dtk_dir Dtk_dir::Rotated ( const Dtk_dir dir,
double  angle,
const Dtk_pnt center 
) const

◆ Rotated() [2/2]

Dtk_dir Dtk_dir::Rotated ( const Dtk_pnt p0,
const CDtk_3dMat &  matrix 
) const

◆ Scale()

void Dtk_dir::Scale ( const Dtk_pnt p0,
double  s 
)

◆ Scaled()

Dtk_dir Dtk_dir::Scaled ( const Dtk_pnt p0,
double  s 
) const

◆ SecondDerivativeOfCrossProduct()

Dtk_dir Dtk_dir::SecondDerivativeOfCrossProduct ( const Dtk_dir other,
const Dtk_dir thisPrime,
const Dtk_dir otherPrime,
const Dtk_dir thisSecond,
const Dtk_dir otherSecond 
) const

◆ SecondDerivativeOfNorm()

double Dtk_dir::SecondDerivativeOfNorm ( const Dtk_dir thisPrime,
const Dtk_dir thisSecond 
) const

◆ SetAsDeprecated()

Dtk_dir::SetAsDeprecated ( "Undefined"  ,
"Use ComputeAngleByQuadrant  
) const &

◆ SetXYZ()

void Dtk_pnt::SetXYZ ( const Dtk_Double64 inX,
const Dtk_Double64 inY,
const Dtk_Double64 inZ 
)
inherited

Sets the 3 coordinates of the class.

88  {
89  _Coords[ 0 ] = inX;
90  _Coords[ 1 ] = inY;
91  _Coords[ 2 ] = inZ;
92  }

◆ Solve() [1/2]

double Dtk_pnt::Solve ( const CDtk_3dMat &  matrix,
const Dtk_dir col3 
)
inherited

◆ Solve() [2/2]

double Dtk_pnt::Solve ( const Dtk_dir col0,
const Dtk_dir col1,
const Dtk_dir col2,
const Dtk_dir col3 
)
inherited

◆ SquareModulus()

double Dtk_dir::SquareModulus ( )

◆ Symetrised()

Dtk_dir Dtk_dir::Symetrised ( const Dtk_pnt opl,
const Dtk_dir zpl 
) const

◆ Symetry() [1/2]

void Dtk_dir::Symetry ( const Dtk_dir zpl)

◆ Symetry() [2/2]

void Dtk_dir::Symetry ( const Dtk_pnt opl,
const Dtk_dir zpl 
)

◆ Transform()

void Dtk_dir::Transform ( const CDtk_3dMat &  matrix)

◆ Transformed()

Dtk_dir Dtk_dir::Transformed ( const CDtk_3dMat &  matrix) const

◆ Translate() [1/2]

void Dtk_dir::Translate ( const Dtk_dir dir)

◆ Translate() [2/2]

void Dtk_dir::Translate ( const Dtk_pnt p0,
const Dtk_pnt p1 
)

◆ Translated() [1/2]

Dtk_dir Dtk_dir::Translated ( const Dtk_dir dir) const

◆ Translated() [2/2]

Dtk_dir Dtk_dir::Translated ( const Dtk_pnt p0,
const Dtk_pnt p1 
) const

◆ UnitizedDerivative()

Dtk_dir Dtk_dir::UnitizedDerivative ( const Dtk_dir thisPrime) const

◆ UnitizedSecondDerivative()

Dtk_dir Dtk_dir::UnitizedSecondDerivative ( const Dtk_dir thisPrime,
const Dtk_dir thisSecond 
) const

◆ x() [1/2]

double& Dtk_dir::x ( )

access to x coordinate of the Dtk_pnt.

87 { return _Coords[ 0 ]; }

◆ x() [2/2]

const double& Dtk_dir::x ( ) const

access to x coordinate of the Dtk_pnt.

Warning
You can't modify the returned value.
91 { return _Coords[ 0 ]; }

◆ y() [1/2]

double& Dtk_dir::y ( )

access to y coordinate of the Dtk_pnt.

94 { return _Coords[ 1 ]; }

◆ y() [2/2]

const double& Dtk_dir::y ( ) const

access to y coordinate of the Dtk_pnt.

Warning
You can't modify the returned value.
98 { return _Coords[ 1 ]; }

◆ z() [1/2]

double& Dtk_dir::z ( )

access to z coordinate of the Dtk_pnt.

101 { return _Coords[ 2 ]; }

◆ z() [2/2]

const double& Dtk_dir::z ( ) const

access to z coordinate of the Dtk_pnt.

Warning
You can't modify the returned value.
105 { return _Coords[ 2 ]; }

Friends And Related Function Documentation

◆ intersect2d

Dtk_pnt intersect2d ( const Dtk_pnt p1,
const Dtk_dir d1,
const Dtk_pnt p2,
const Dtk_dir d2 
)
friend

◆ norm

double norm ( const Dtk_dir )
friend

◆ normC

double normC ( const Dtk_dir )
friend

◆ onleft

int onleft ( const Dtk_dir ,
const Dtk_dir  
)
friend

◆ operator* [1/2]

double operator* ( const Dtk_dir ,
const Dtk_dir  
)
friend

◆ operator* [2/2]

Dtk_dir operator* ( double  ,
const Dtk_dir  
)
friend

◆ operator/ [1/3]

Dtk_dir operator/ ( const Dtk_dir ,
const Dtk_dir  
)
friend

◆ operator/ [2/3]

Dtk_dir operator/ ( const Dtk_dir ,
double   
)
friend

◆ operator/ [3/3]

Dtk_dir operator/ ( double  ,
const Dtk_dir  
)
friend

◆ operator<<

std::ostream& operator<< ( std::ostream &  o,
const Dtk_dir d 
)
friend

◆ operator^

Dtk_dir operator^ ( const Dtk_dir ,
const Dtk_dir  
)
friend

◆ Orthogonal

Dtk_dir Orthogonal ( const Dtk_dir )
friend

◆ orthoproj2d

Dtk_pnt orthoproj2d ( const Dtk_pnt p1,
const Dtk_dir d1,
const Dtk_pnt p2 
)
friend

◆ Pdtk_CrossProduct

Dtk_dir Pdtk_CrossProduct ( const Dtk_dir ,
const Dtk_dir  
)
friend

◆ Pdtk_DotProduct

double Pdtk_DotProduct ( const Dtk_dir ,
const Dtk_dir  
)
friend

Field Documentation

◆ _Coords

double Dtk_pnt::_Coords[3]
protectedinherited

◆ ref_Z

const Dtk_dir& Dtk_dir::ref_Z
Dtk_Size_t
size_t Dtk_Size_t
Definition: define.h:712
Dtk_dir::Dtk_dir
Dtk_dir()
Dtk_pnt::ProjectOnLine
void ProjectOnLine(const Dtk_pnt &org, const Dtk_dir &dir)
Dtk_pnt::Project
double Project(const Dtk_pnt &org, const Dtk_dir &zdir, const Dtk_dir &zPrj)
Dtk_Double64
double Dtk_Double64
Definition: define.h:699
Pdtk_Assert
#define Pdtk_Assert(X)
Definition: define.h:742
Dtk_dir::Multiplied
Dtk_dir Multiplied(const CDtk_3dMat &matrix) const
Dtk_dir::Cross
void Cross(const Dtk_dir &right)
Dtk_pnt
This is a mathematical point class.
Definition: dtk_pnt.hpp:22
Dtk_dir::Multiply
void Multiply(const CDtk_3dMat &matrix)
Dtk_pnt::_Coords
double _Coords[3]
Definition: dtk_pnt.hpp:24