Polygon Crucher SDK - Documentation
Documentation
Loading...
Searching...
No Matches
C3DTVector< TYPE > Class Template Reference
Inheritance diagram for C3DTVector< TYPE >:
CPt

Public Member Functions

 C3DTVector (TYPE *val)
 
 C3DTVector (float x, float y, float z)
 
 C3DTVector (double x, double y, double z)
 
 C3DTVector (const C3DTPoint< TYPE > &point1, const C3DTPoint< TYPE > &point2)
 
 C3DTVector (const C3DTVector< TYPE > &vector)
 
 C3DTVector (const C3DTPoint< TYPE > &point)
 
 C3DTVector (const CQuaternion &quat)
 
unsigned int SizeOf () const
 
void Init (float x=0.0f, float y=0.0f, float z=0.0f)
 
void Init (double x=0.0, double y=0.0, double z=0.0)
 
void InitFromPoint (const C3DTPoint< TYPE > &point)
 
void InitFromPoints (const C3DTPoint< TYPE > &point1, const C3DTPoint< TYPE > &point2)
 
void Swap (unsigned int swapMode)
 
void SubstractTo (const C3DTVector &vect)
 return this = vect-this, instead this = this-vect. This can be used for fast computation (using the standard operator return a C3DPointT)
 
void Offset (TYPE value)
 Add value to x, y, z.
 
bool IsAnormal () const
 either infinite or nan. Zero and denormalized value are allowed.
 
bool IsInfinite () const
 Check if one of the coordinate has inf value.
 
bool IsNan (bool resetToZero=false)
 Check if one of the coordinate has nan value. resetToZero nan = true, reset coordinates to zero if any.
 
void SelfNegate ()
 / operator - : negate each component (-x, -y, -z)
 
void SelfInvert ()
 / operator / : invert each component (1/x, 1/y, 1/z)
 
C3DTVectorSelfMult (const C3DTVector &vector)
 Self multiply each component (x, y, z) with vect(x, y, z). This is not the scalar product !. No operation is done on a component if checkZero = true and one component is zero, otherwise division by zero will result in +/-inf.
 
C3DTVectorSelfDiv (const C3DTVector &vector, bool checkZero=true)
 Self divide each component (x, y, z) with vect(x, y, z). This is not the scalar product !
 
C3DTVector Mult (const C3DTVector &vector) const
 Multiply each component (x, y, z) with vect(x, y, z). This is not the scalar product !
 
C3DTVector Div (const C3DTVector &vector, bool checkZero=true) const
 Divide each component (x, y, z) with vect(x, y, z). This is not the scalar product !
 
C3DTVector Negate () const
 / operator - : return negate of each component (-x, -y, -z)
 
C3DTVector NegateCheckZeroSign () const
 / operator - : return negate of each component (-x, -y, -z). If a component is 0, it return a +0, never -0.
 
C3DTVector Invert () const
 / operator / : return invert each component (1/x, 1/y, 1/z)
 
C3DTVector InvertCheckZeroSign () const
 / operator / : return invert each component (1/x, 1/y, 1/z). If a component is -0, it does return +inf, never -inf. Use in some special circumstance, ie C3DTBBox::RayIntersect.
 
C3DTVectoroperator= (const C3DTVector &vect)
 
C3DTVectoroperator= (const C3DTPoint< TYPE > &pt)
 
bool operator== (const C3DTVector &src) const
 
bool operator!= (const C3DTVector &src) const
 
C3DTVector operator^ (const C3DTVector &vect) const
 
C3DTVector operator+ (const C3DTVector &vect) const
 
C3DTVector operator- (const C3DTVector &vect) const
 
C3DTVector operator- () const
 
C3DTVector operator* (double weight) const
 
double operator* (const C3DTVector &vect) const
 
C3DTVector operator/ (double weight) const
 
void operator-= (const C3DTPoint< TYPE > &pt)
 
void operator+= (const C3DTPoint< TYPE > &pt)
 
void operator-= (const C3DTVector &vect)
 
void operator+= (const C3DTVector &vect)
 
C3DTVectoroperator*= (double weight)
 
C3DTVectoroperator/= (double weight)
 
C3DVectorI Floor () const
 
C3DVectorI Ceil () const
 
template<class TYPE2 >
 C3DTVector (const C3DTVector< TYPE2 > &vect)
 
template<class TYPE2 >
 C3DTVector (const C3DTPoint< TYPE2 > &pt)
 
template<class TYPE2 >
C3DTVectoroperator= (const C3DTVector< TYPE2 > &vect)
 
template<class TYPE2 >
 C3DTVector (const C3DTPoint< TYPE2 > &pt1, const C3DTPoint< TYPE2 > &pt2)
 
bool Normalize ()
 Return false if vector length is null.
 
double Length () const
 
double Length2 () const
 
bool IsNull (double precision=PRECISION_LIMIT) const
 Compare vector to (0.0, 0.0, 0.0). Return true if equal, false otherwise.
 
bool IsUnit (double precision=PRECISION_LIMIT) const
 Compare vector to (1.0, 1.0, 1.0). Return true if equal, false otherwise.
 
bool IsNormalized (double precision=FLOAT_EPSILON) const
 Check if vector normalized. Return true if normalized, false otherwise.
 
virtual void To4DPoint (C4DPoint &pt) const
 
virtual CPtoperator= (const C4DPoint &pt)
 
template<class TYPE2 >
void SetValues (const TYPE2 *values3t)
 Set vector from 3 TYPE.
 
void GetFloat (float *values3f) const
 Get vector and fill 3 floats.
 
void SetFloat (const float *values3f)
 Set vector from 3 floats.
 
void GetDouble (double *values3d) const
 Get vector and fill 3 doubles.
 
void SetDouble (const double *values3d)
 Set vector from 3 doubles.
 
virtual CPtoperator= (const CPt &refpoint)
 
virtual void Serialize (CXArchive &ar)
 
template<class TYPE2 >
C3DTVector< TYPE > & operator= (const C3DTVector< TYPE2 > &vect)
 
Access functions

Get access to the vector x, y, z values

TYPEoperator[] (int i)
 
const TYPEoperator[] (int i) const
 
TYPEValPtr ()
 
const TYPEValPtr () const
 
- Public Member Functions inherited from CPt
unsigned int GetFlags () const
 
void SetFlags (unsigned int flags)
 
void SetFlag (POINT_PROPERTIES flag, bool set)
 
void SetFlags (unsigned int flags, bool set)
 
bool IsFlagSet (POINT_PROPERTIES flag) const
 
bool IsOneFlagSet (int flag) const
 

Public Attributes

TYPE x
 
TYPE y
 
TYPE z
 

Member Function Documentation

◆ operator=() [1/2]

template<class TYPE >
CPt & C3DTVector< TYPE >::operator= ( const C4DPoint pt)
virtual

Implements CPt.

◆ operator=() [2/2]

template<class TYPE >
CPt & C3DTVector< TYPE >::operator= ( const CPt refpoint)
virtual

Reimplemented from CPt.

◆ Serialize()

template<class TYPE >
void C3DTVector< TYPE >::Serialize ( CXArchive ar)
virtual

Reimplemented from CPt.

◆ To4DPoint()

template<class TYPE >
void C3DTVector< TYPE >::To4DPoint ( C4DPoint pt) const
virtual

Implements CPt.


The documentation for this class was generated from the following files: