DATAKIT API  V2025.4
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]
 

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 ( )

◆ 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])

◆ 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

◆ 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.

◆ 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

◆ operator*() [1/2]

Dtk_dir Dtk_dir::operator* ( const CDtk_3dMat &  matrix) const

◆ operator*() [2/2]

Dtk_dir Dtk_dir::operator* ( double  a) const

◆ operator*=() [1/2]

void Dtk_dir::operator*= ( const CDtk_3dMat &  matrix)

◆ 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)

◆ 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)

◆ 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

◆ 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

◆ operator^=()

void Dtk_dir::operator^= ( const Dtk_dir right)

◆ 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

◆ ProcessMiddlePoint()

static void Dtk_pnt::ProcessMiddlePoint ( const Dtk_pnt inPntA,
const Dtk_pnt inPntB,
Dtk_pnt outMiddlePnt 
)
staticinherited

◆ 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

◆ Projected() [2/4]

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

◆ Projected() [3/4]

Dtk_pnt Dtk_pnt::Projected ( const Dtk_pnt org,
const Dtk_dir zdir 
) const
inherited

◆ Projected() [4/4]

Dtk_pnt Dtk_pnt::Projected ( const Dtk_pnt org,
const Dtk_dir zdir,
const Dtk_dir zPrj 
) const
inherited

◆ ProjectedOnLine()

Dtk_pnt Dtk_pnt::ProjectedOnLine ( const Dtk_pnt org,
const Dtk_dir dir 
) const
inherited

◆ 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 &
Deprecated:
Use ComputeAngleByQuadrant.

◆ 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.

◆ 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.

◆ 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.

◆ y() [1/2]

double& Dtk_dir::y ( )

access to y coordinate of the Dtk_pnt.

◆ 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.

◆ z() [1/2]

double& Dtk_dir::z ( )

access to z coordinate of the Dtk_pnt.

◆ 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.

Field Documentation

◆ _Coords

double Dtk_pnt::_Coords[3]
protectedinherited

◆ ref_Z

const Dtk_dir& Dtk_dir::ref_Z
Dtk_pnt
This is a mathematical point class.
Definition: dtk_pnt.hpp:22