 |
DATAKIT API
V2025.1
|
|
Go to the documentation of this file. 1 #ifndef __DTK_DIR_HPP__
2 #define __DTK_DIR_HPP__
21 Dtk_dir(
double a,
double b,
double c = 0.0 );
91 inline const double &
x()
const {
return _Coords[ 0 ]; }
98 inline const double &
y()
const {
return _Coords[ 1 ]; }
105 inline const double &
z()
const {
return _Coords[ 2 ]; }
120 inline double Dot(
const Dtk_dir& other )
const {
return ( *
this * other ); }
126 inline void operator *= (
const CDtk_3dMat& matrix );
135 double AngleXY(
double tolerance = 0.00000001 )
const;
double DotCross(const Dtk_dir &c1, const Dtk_dir &c2) const
Dtk_dir & operator=(const Dtk_dir &)
Dtk_dir operator-() const
friend Dtk_dir operator/(const Dtk_dir &, double)
friend double Pdtk_DotProduct(const Dtk_dir &, const Dtk_dir &)
const double & y() const
access to y coordinate of the Dtk_pnt.
Definition: dtk_dir.hpp:98
double SecondDerivativeOfNorm(const Dtk_dir &thisPrime, const Dtk_dir &thisSecond) const
Dtk_dir(const Dtk_pnt &pnt)
Dtk_dir GetNormal() const
double & y()
access to y coordinate of the Dtk_pnt.
Definition: dtk_dir.hpp:94
void MultiplyByTransposed(const CDtk_3dMat &matrix)
friend Dtk_dir Pdtk_CrossProduct(const Dtk_dir &, const Dtk_dir &)
Dtk_Double64 ComputeAngleByQuadrant(const Dtk_dir &V2, const Dtk_dir &ref_Z) const
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])
Dtk_dir Rotated(const Dtk_pnt &p0, const CDtk_3dMat &matrix) const
double operator&(const Dtk_dir &other) const
Definition: dtk_dir.hpp:121
friend int onleft(const Dtk_dir &, const Dtk_dir &)
size_t Dtk_Size_t
Definition: define.h:712
void CrossCross(const Dtk_dir &c1, const Dtk_dir &c2)
Dtk_dir & operator/=(double)
Dtk_dir DerivativeOfCrossProduct(const Dtk_dir &other, const Dtk_dir &thisPrime, const Dtk_dir &otherPrime) const
void Scale(const Dtk_pnt &p0, double s)
Dtk_dir & operator+=(const Dtk_dir &)
Dtk_dir & operator*=(double)
double Dtk_Double64
Definition: define.h:699
friend Dtk_dir Orthogonal(const Dtk_dir &)
SetAsDeprecated("Undefined", "Use ComputeAngleByQuadrant") double angle_with_Dtk_dir(const Dtk_dir &V2
Dtk_dir & operator-=(const Dtk_dir &)
friend std::ostream & operator<<(std::ostream &o, const Dtk_dir &d)
Dtk_dir PostMultiplied(const CDtk_3dMat &matrix) const
friend double normC(const Dtk_dir &)
#define Pdtk_Assert(X)
Definition: define.h:742
void Affinity(double f[3])
Definition: dtk_dir.hpp:154
void Symetry(const Dtk_dir &zpl)
Dtk_dir Multiplied(const CDtk_3dMat &matrix) const
double Angle(const Dtk_dir &vRef, const Dtk_dir &vAxe, double tolerance=0.00000001) const
Dtk_dir & operator+=(const Dtk_pnt &)
Dtk_dir Crossed(const Dtk_dir &right) const
Dtk_dir(const Dtk_pnt &, const Dtk_pnt &)
const Dtk_dir & ref_Z
Definition: dtk_dir.hpp:37
Dtk_dir operator-(const Dtk_dir &v)
Definition: dtk_dir.hpp:48
void Cross(const Dtk_dir &right)
double & operator[](Dtk_Size_t i)
access to a specified coordinate of the Dtk_pnt
Definition: dtk_dir.hpp:70
friend Dtk_pnt orthoproj2d(const Dtk_pnt &p1, const Dtk_dir &d1, const Dtk_pnt &p2)
double DerivativeOfNorm(const Dtk_dir &thisPrime) const
Dtk_dir Normalized() const
void Transform(const CDtk_3dMat &matrix)
double Dot(const Dtk_dir &other) const
Definition: dtk_dir.hpp:120
void PostMultiply(const CDtk_3dMat &matrix)
Dtk_dir SecondDerivativeOfCrossProduct(const Dtk_dir &other, const Dtk_dir &thisPrime, const Dtk_dir &otherPrime, const Dtk_dir &thisSecond, const Dtk_dir &otherSecond) const
friend Dtk_dir operator^(const Dtk_dir &, const Dtk_dir &)
Dtk_dir MultipliedByTransposed(const CDtk_3dMat &matrix) const
friend Dtk_pnt intersect2d(const Dtk_pnt &p1, const Dtk_dir &d1, const Dtk_pnt &p2, const Dtk_dir &d2)
Dtk_dir operator+() const
This is a mathematical point class.
Definition: dtk_pnt.hpp:22
double AngleXY(double tolerance=0.00000001) const
Dtk_dir(const Dtk_dir &s)
void Translate(const Dtk_pnt &p0, const Dtk_pnt &p1)
const double & z() const
access to z coordinate of the Dtk_pnt.
Definition: dtk_dir.hpp:105
void operator^=(const Dtk_dir &right)
Definition: dtk_dir.hpp:177
~Dtk_dir()
Definition: dtk_dir.hpp:18
Dtk_dir operator+(const Dtk_dir &v)
Definition: dtk_dir.hpp:47
double & x()
access to x coordinate of the Dtk_pnt.
Definition: dtk_dir.hpp:87
int rotate(const Dtk_dir &Z, double angle)
Dtk_dir UnitizedDerivative(const Dtk_dir &thisPrime) const
void Rotate(const Dtk_dir &dir, double angle, const Dtk_pnt ¢er)
friend double norm(const Dtk_dir &)
Dtk_dir Translated(const Dtk_pnt &p0, const Dtk_pnt &p1) const
const double & x() const
access to x coordinate of the Dtk_pnt.
Definition: dtk_dir.hpp:91
Dtk_dir Rotated(const Dtk_dir &dir, double angle, const Dtk_pnt ¢er) const
void Rotate(const Dtk_pnt &p0, const CDtk_3dMat &matrix)
void Multiply(const CDtk_3dMat &matrix)
Dtk_dir & operator-=(const Dtk_pnt &)
Dtk_dir operator*(double a) const
Definition: dtk_dir.hpp:42
Dtk_dir Translated(const Dtk_dir &dir) const
double _Coords[3]
Definition: dtk_pnt.hpp:24
Dtk_dir Transformed(const CDtk_3dMat &matrix) const
This is a mathematical direction class.
Definition: dtk_dir.hpp:15
Dtk_dir Symetrised(const Dtk_pnt &opl, const Dtk_dir &zpl) const
Dtk_dir MultipliedNormalize(const CDtk_3dMat &matrix) const
void Symetry(const Dtk_pnt &opl, const Dtk_dir &zpl)
Dtk_dir UnitizedSecondDerivative(const Dtk_dir &thisPrime, const Dtk_dir &thisSecond) const
Dtk_dir Scaled(const Dtk_pnt &p0, double s) const
Dtk_dir(double a, double b, double c=0.0)
void MultiplyNormalize(const CDtk_3dMat &matrix)
void Translate(const Dtk_dir &dir)
Dtk_dir CrossCrossed(const Dtk_dir &c1, const Dtk_dir &c2) const
double & z()
access to z coordinate of the Dtk_pnt.
Definition: dtk_dir.hpp:101