![]() |
Polygon Crucher SDK - Documentation
Documentation
|
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) | |
C3DTVector & | SelfMult (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. | |
C3DTVector & | SelfDiv (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. | |
C3DTVector & | operator= (const C3DTVector &vect) |
C3DTVector & | operator= (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) |
C3DTVector & | operator*= (double weight) |
C3DTVector & | operator/= (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 > | |
C3DTVector & | operator= (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 CPt & | operator= (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 CPt & | operator= (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 | |
TYPE & | operator[] (int i) |
const TYPE & | operator[] (int i) const |
TYPE * | ValPtr () |
const TYPE * | ValPtr () const |
![]() | |
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 |
|
virtual |
Implements CPt.
|
virtual |
Reimplemented from CPt.
Reimplemented from CPt.
Implements CPt.