#include <OPC_IceHook.h>
Public Member Functions | |
inline_ Point & | Add (const Point &p) |
Adds a vector. More... | |
inline_ Point & | Add (float _x, float _y, float _z) |
Adds a vector. More... | |
inline_ Point & | Add (const float f[3]) |
Adds a vector. More... | |
inline_ Point & | Add (const Point &p, const Point &q) |
Adds vectors. More... | |
inline_ bool | ApproxZero () const |
Checks the point is near zero. More... | |
inline_ Point & | Clamp (float min, float max) |
Clamps each element. More... | |
inline_ Point & | ClampLength (float limit_length) |
Clamps vector length. More... | |
inline_ PointComponent | ClosestAxis () const |
Returns closest axis. More... | |
inline_ Point & | Cross (const Point &a, const Point &b) |
Cross product this = a x b. More... | |
inline_ float | Distance (const Point &b) const |
Computes distance to another point. More... | |
inline_ float | Dot (const Point &p) const |
Dot product dp = this|a. More... | |
inline_ udword | GetHashValue () const |
Hash function from Ville Miettinen. More... | |
inline_ Point & | Herp (const Point &p0, const Point &p1, const Point &p2, const Point &p3, float t) |
inline_ Point & | InvTransform (const Point &r, const Matrix3x3 &rotpos, const Point &linpos) |
this = trans(rotpos) * (r - linpos) More... | |
BOOL | IsNotUsed () const |
Checks the point is marked as not used. More... | |
inline_ BOOL | IsValid () const |
Checks point validity. More... | |
inline_ BOOL | IsZero () const |
Tests for exact zero vector. More... | |
inline_ PointComponent | LargestAxis () const |
Returns largest axis. More... | |
inline_ Point & | Lerp (const Point &a, const Point &b, float t) |
Linear interpolate between two vectors: this = a + t * (b - a) More... | |
inline_ Point & | Mac (const Point &a, const Point &b, float scalar) |
this = a + b * scalar More... | |
inline_ Point & | Mac (const Point &a, float scalar) |
this = this + a * scalar More... | |
inline_ Point & | Mac (const Matrix3x3 &mat, const Point &a) |
this = this + mat * a More... | |
inline_ Point & | Mac2 (const Point &a, const Point &b, float scalarb, const Point &c, float scalarc) |
this = a + b * scalarb + c * scalarc More... | |
inline_ float | Magnitude () const |
Computes magnitude. More... | |
inline_ float | Max () const |
Returns MAX(x, y, z);. More... | |
inline_ Point & | Max (const Point &p) |
Sets each element to be componentwise maximum. More... | |
inline_ float | Min () const |
Returns MIN(x, y, z);. More... | |
inline_ Point & | Min (const Point &p) |
Sets each element to be componentwise minimum. More... | |
inline_ Point & | Msc (const Point &a, const Point &b, float scalar) |
this = a - b * scalar More... | |
inline_ Point & | Msc (const Point &a, float scalar) |
this = this - a * scalar More... | |
inline_ Point & | Msc2 (const Point &a, const Point &b, float scalarb, const Point &c, float scalarc) |
this = a - b * scalarb - c * scalarc More... | |
inline_ Point & | Mult (float s) |
Multiplies by a scalar. More... | |
inline_ Point & | Mult (const Point &a, float scalar) |
this = a * scalar More... | |
inline_ Point & | Mult (const Matrix3x3 &mat, const Point &a) |
this = mat * a More... | |
inline_ Point & | Mult2 (const Matrix3x3 &mat1, const Point &a1, const Matrix3x3 &mat2, const Point &a2) |
this = mat1 * a1 + mat2 * a2 More... | |
inline_ Point & | Neg () |
this = -this More... | |
inline_ Point & | Neg (const Point &a) |
this = -a More... | |
inline_ Point & | Normalize () |
Normalizes the vector. More... | |
inline_ | operator const float * () const |
inline_ | operator float * () |
operator HPoint () const | |
Cast a Point to a HPoint. w is set to zero. More... | |
inline_ bool | operator!= (const Point &p) const |
Operator for "if(Point!=Point)". More... | |
inline_ Point | operator* (const Point &p) const |
Operator for Point Mul = Point * Point. More... | |
inline_ Point | operator* (float s) const |
Operator for Point Scale = Point * float. More... | |
inline_ Point | operator* (const Matrix3x3 &mat) const |
Operator for Point Mul = Point * Matrix3x3. More... | |
inline_ Point | operator* (const Matrix4x4 &mat) const |
Operator for Point Mul = Point * Matrix4x4. More... | |
inline_ Point & | operator*= (const Point &p) |
Operator for Point *= Point. More... | |
inline_ Point & | operator*= (float s) |
Operator for Point *= float. More... | |
inline_ Point & | operator*= (const Matrix3x3 &mat) |
Operator for Point *= Matrix3x3. More... | |
inline_ Point & | operator*= (const Matrix4x4 &mat) |
Operator for Point *= Matrix4x4. More... | |
inline_ Point | operator+ (const Point &p) const |
Operator for Point Plus = Point + Point. More... | |
inline_ Point & | operator+= (const Point &p) |
Operator for Point += Point. More... | |
inline_ Point & | operator+= (float s) |
Operator for Point += float. More... | |
inline_ Point | operator- () const |
Unary operator for Point Negate = - Point. More... | |
inline_ Point | operator- (const Point &p) const |
Operator for Point Minus = Point - Point. More... | |
inline_ Point & | operator-= (const Point &p) |
Operator for Point -= Point. More... | |
inline_ Point & | operator-= (float s) |
Operator for Point -= float. More... | |
inline_ Point | operator/ (const Point &p) const |
Operator for Point Div = Point / Point. More... | |
inline_ Point | operator/ (float s) const |
Operator for Point Scale = Point / float. More... | |
inline_ Point & | operator/= (const Point &p) |
Operator for Point /= Point. More... | |
inline_ Point & | operator/= (float s) |
Operator for Point /= float. More... | |
inline_ bool | operator== (const Point &p) const |
Operator for "if(Point==Point)". More... | |
inline_ Point | operator^ (const Point &p) const |
Operator for Point VecProd = Point ^ Point. More... | |
inline_ float | operator| (const Point &p) const |
Operator for float DotProd = Point | Point. More... | |
inline_ | Point () |
Empty constructor. More... | |
inline_ | Point (float _x, float _y, float _z) |
Constructor from a single float. More... | |
inline_ | Point (const float f[3]) |
Constructor from array. More... | |
inline_ | Point (const Point &p) |
Copy constructor. More... | |
Point & | PositiveUnitRandomVector () |
Sets positive unit random vector. More... | |
Point & | ProjectToPlane (const Plane &p) |
Projects the point onto a plane. More... | |
void | ProjectToScreen (float halfrenderwidth, float halfrenderheight, const Matrix4x4 &mat, HPoint &projected) const |
Projects the point onto the screen. More... | |
Point & | Refract (const Point &eye, const Point &n, float refractindex, Point &refracted) |
Refracts the point. More... | |
inline_ Point & | Set (float _x, float _y, float _z) |
Assignment from values. More... | |
inline_ Point & | Set (const float f[3]) |
Assignment from array. More... | |
inline_ Point & | Set (const Point &src) |
Assignment from another point. More... | |
inline_ Point & | SetLength (float length) |
Sets vector length. More... | |
inline_ Point & | SetMinusInfinity () |
void | SetNotUsed () |
Stuff magic values in the point, marking it as explicitely not used. More... | |
inline_ Point & | SetPlusInfinity () |
inline_ PointComponent | SmallestAxis () const |
Returns smallest axis. More... | |
inline_ float | SquareDistance (const Point &b) const |
Computes square distance to another point. More... | |
inline_ float | SquareMagnitude () const |
Computes square magnitude. More... | |
inline_ Point & | Sub (const Point &p) |
Subtracts a vector. More... | |
inline_ Point & | Sub (float _x, float _y, float _z) |
Subtracts a vector. More... | |
inline_ Point & | Sub (const float f[3]) |
Subtracts a vector. More... | |
inline_ Point & | Sub (const Point &p, const Point &q) |
Subtracts vectors. More... | |
inline_ Point & | Transform (const Point &r, const Matrix3x3 &rotpos, const Point &linpos) |
this = rotpos * r + linpos More... | |
inline_ Point & | TransMult (const Matrix3x3 &mat, const Point &a) |
this = transpose(mat) * a More... | |
void | Tweak (udword coord_mask, udword tweak_mask) |
Slighty moves the point. More... | |
inline_ void | TweakBigger () |
Slighty moves the point out. More... | |
inline_ void | TweakSmaller () |
Slighty moves the point in. More... | |
Point & | Unfold (Plane &p, Point &a, Point &b) |
Unfolds the point onto a plane according to edge(a,b) More... | |
Point & | UnitRandomVector () |
Sets unit random vector. More... | |
inline_ udword | VectorCode () const |
Vector code ( bitmask = sign(z) | sign(y) | sign(x) ) More... | |
inline_ float | Volume () const |
Computes volume. More... | |
inline_ Point & | Zero () |
Clears the vector. More... | |
inline_ | ~Point () |
Destructor. More... | |
Public Attributes | |
float | x |
float | y |
float | z |
Friends | |
inline_ friend Point | operator* (float s, const Point &p) |
Operator for Point Scale = float * Point. More... | |
inline_ friend Point | operator/ (float s, const Point &p) |
Operator for Point Scale = float / Point. More... | |
Definition at line 26 of file OPC_IceHook.h.
|
inline |
Empty constructor.
Definition at line 31 of file OPC_IceHook.h.
|
inline |
Constructor from a single float.
Constructor from floats
Definition at line 36 of file OPC_IceHook.h.
Constructor from array.
Definition at line 38 of file OPC_IceHook.h.
Copy constructor.
Definition at line 40 of file OPC_IceHook.h.
|
inline |
Destructor.
Definition at line 42 of file OPC_IceHook.h.
Adds a vector.
Definition at line 65 of file OPC_IceHook.h.
Adds a vector.
Definition at line 67 of file OPC_IceHook.h.
Adds a vector.
Definition at line 69 of file OPC_IceHook.h.
Adds vectors.
Definition at line 71 of file OPC_IceHook.h.
|
inline |
Checks the point is near zero.
Definition at line 225 of file OPC_IceHook.h.
Clamps each element.
Definition at line 209 of file OPC_IceHook.h.
Clamps vector length.
Definition at line 294 of file OPC_IceHook.h.
|
inline |
Returns closest axis.
Definition at line 353 of file OPC_IceHook.h.
Cross product this = a x b.
Definition at line 327 of file OPC_IceHook.h.
Computes distance to another point.
Definition at line 312 of file OPC_IceHook.h.
Dot product dp = this|a.
Definition at line 324 of file OPC_IceHook.h.
Hash function from Ville Miettinen.
Definition at line 386 of file OPC_IceHook.h.
|
inline |
Hermite interpolate between p1 and p2. p0 and p3 are used for finding gradient at p1 and p2. this = p0 * (2t^2 - t^3 - t)/2
Definition at line 179 of file OPC_IceHook.h.
this = trans(rotpos) * (r - linpos)
Definition at line 184 of file IcePoint.cpp.
BOOL Point::IsNotUsed | ( | ) | const |
Checks the point is marked as not used.
Definition at line 136 of file IcePoint.cpp.
Checks point validity.
Definition at line 235 of file OPC_IceHook.h.
Tests for exact zero vector.
Definition at line 228 of file OPC_IceHook.h.
|
inline |
Returns largest axis.
Definition at line 342 of file OPC_IceHook.h.
Linear interpolate between two vectors: this = a + t * (b - a)
Definition at line 166 of file OPC_IceHook.h.
this = a + b * scalar
Definition at line 100 of file OPC_IceHook.h.
this = this + a * scalar
Definition at line 109 of file OPC_IceHook.h.
this = this + mat * a
Definition at line 160 of file IcePoint.cpp.
|
inline |
this = a + b * scalarb + c * scalarc
Definition at line 136 of file OPC_IceHook.h.
|
inline |
Computes magnitude.
Definition at line 220 of file OPC_IceHook.h.
|
inline |
Returns MAX(x, y, z);.
Definition at line 202 of file OPC_IceHook.h.
Sets each element to be componentwise maximum.
Definition at line 206 of file OPC_IceHook.h.
|
inline |
Returns MIN(x, y, z);.
Definition at line 200 of file OPC_IceHook.h.
Sets each element to be componentwise minimum.
Definition at line 204 of file OPC_IceHook.h.
this = a - b * scalar
Definition at line 118 of file OPC_IceHook.h.
this = this - a * scalar
Definition at line 127 of file OPC_IceHook.h.
|
inline |
this = a - b * scalarb - c * scalarc
Definition at line 145 of file OPC_IceHook.h.
Multiplies by a scalar.
Definition at line 88 of file OPC_IceHook.h.
this = a * scalar
Definition at line 91 of file OPC_IceHook.h.
this = mat * a
Definition at line 144 of file IcePoint.cpp.
Point & Point::Mult2 | ( | const Matrix3x3 & | mat1, |
const Point & | a1, | ||
const Matrix3x3 & | mat2, | ||
const Point & | a2 | ||
) |
this = mat1 * a1 + mat2 * a2
Definition at line 152 of file IcePoint.cpp.
this = -this
Definition at line 83 of file OPC_IceHook.h.
this = -a
Definition at line 85 of file OPC_IceHook.h.
Normalizes the vector.
Definition at line 270 of file OPC_IceHook.h.
Definition at line 521 of file OPC_IceHook.h.
|
inline |
Definition at line 522 of file OPC_IceHook.h.
Point::operator HPoint | ( | ) | const |
Cast a Point to a HPoint. w is set to zero.
Definition at line 85 of file IcePoint.cpp.
Operator for "if(Point!=Point)".
Definition at line 458 of file OPC_IceHook.h.
Operator for Point Mul = Point * Point.
Definition at line 409 of file OPC_IceHook.h.
Operator for Point Scale = Point * float.
Definition at line 411 of file OPC_IceHook.h.
Operator for Point Mul = Point * Matrix3x3.
Definition at line 463 of file OPC_IceHook.h.
Operator for Point Mul = Point * Matrix4x4.
Definition at line 475 of file OPC_IceHook.h.
Definition at line 444 of file OPC_IceHook.h.
Operator for Point *= float.
Definition at line 446 of file OPC_IceHook.h.
Operator for Point *= Matrix3x3.
Definition at line 487 of file OPC_IceHook.h.
Operator for Point *= Matrix4x4.
Definition at line 502 of file OPC_IceHook.h.
Operator for Point Plus = Point + Point.
Definition at line 404 of file OPC_IceHook.h.
Definition at line 434 of file OPC_IceHook.h.
Operator for Point += float.
Definition at line 436 of file OPC_IceHook.h.
Unary operator for Point Negate = - Point.
Definition at line 401 of file OPC_IceHook.h.
Operator for Point Minus = Point - Point.
Definition at line 406 of file OPC_IceHook.h.
Definition at line 439 of file OPC_IceHook.h.
Operator for Point -= float.
Definition at line 441 of file OPC_IceHook.h.
Operator for Point Div = Point / Point.
Definition at line 416 of file OPC_IceHook.h.
Operator for Point Scale = Point / float.
Definition at line 418 of file OPC_IceHook.h.
Definition at line 449 of file OPC_IceHook.h.
Operator for Point /= float.
Definition at line 451 of file OPC_IceHook.h.
Operator for "if(Point==Point)".
Definition at line 456 of file OPC_IceHook.h.
Operator for Point VecProd = Point ^ Point.
Definition at line 425 of file OPC_IceHook.h.
Operator for float DotProd = Point | Point.
Definition at line 423 of file OPC_IceHook.h.
Point & Point::PositiveUnitRandomVector | ( | ) |
Sets positive unit random vector.
Creates a positive unit random vector.
Definition at line 59 of file IcePoint.cpp.
Projects the point onto a plane.
Definition at line 109 of file IcePoint.cpp.
void Point::ProjectToScreen | ( | float | halfrenderwidth, |
float | halfrenderheight, | ||
const Matrix4x4 & | mat, | ||
HPoint & | projected | ||
) | const |
Projects the point onto the screen.
Definition at line 115 of file IcePoint.cpp.
Point & Point::Refract | ( | const Point & | eye, |
const Point & | n, | ||
float | refractindex, | ||
Point & | refracted | ||
) |
Refracts the point.
Definition at line 87 of file IcePoint.cpp.
Assignment from values.
Definition at line 58 of file OPC_IceHook.h.
Assignment from array.
Definition at line 60 of file OPC_IceHook.h.
Assignment from another point.
Definition at line 62 of file OPC_IceHook.h.
Sets vector length.
Definition at line 284 of file OPC_IceHook.h.
Definition at line 50 of file OPC_IceHook.h.
void Point::SetNotUsed | ( | ) |
Stuff magic values in the point, marking it as explicitely not used.
Definition at line 128 of file IcePoint.cpp.
Definition at line 48 of file OPC_IceHook.h.
|
inline |
Returns smallest axis.
Definition at line 363 of file OPC_IceHook.h.
Computes square distance to another point.
Definition at line 318 of file OPC_IceHook.h.
|
inline |
Computes square magnitude.
Definition at line 218 of file OPC_IceHook.h.
Subtracts a vector.
Definition at line 74 of file OPC_IceHook.h.
Subtracts a vector.
Definition at line 76 of file OPC_IceHook.h.
Subtracts a vector.
Definition at line 78 of file OPC_IceHook.h.
Subtracts vectors.
Definition at line 80 of file OPC_IceHook.h.
this = rotpos * r + linpos
Definition at line 176 of file IcePoint.cpp.
this = transpose(mat) * a
Definition at line 168 of file IcePoint.cpp.
Slighty moves the point.
Definition at line 244 of file OPC_IceHook.h.
Slighty moves the point out.
Definition at line 254 of file OPC_IceHook.h.
Slighty moves the point in.
Definition at line 262 of file OPC_IceHook.h.
Unfolds the point onto a plane according to edge(a,b)
Point & Point::UnitRandomVector | ( | ) |
Sets unit random vector.
Creates a unit random vector.
Definition at line 74 of file IcePoint.cpp.
Vector code ( bitmask = sign(z) | sign(y) | sign(x) )
Definition at line 336 of file OPC_IceHook.h.
|
inline |
Computes volume.
Definition at line 222 of file OPC_IceHook.h.
Clears the vector.
Definition at line 45 of file OPC_IceHook.h.
Operator for Point Scale = float * Point.
Definition at line 413 of file OPC_IceHook.h.
Operator for Point Scale = float / Point.
Definition at line 420 of file OPC_IceHook.h.
float IceMaths::Point::x |
Definition at line 525 of file OPC_IceHook.h.
float IceMaths::Point::y |
Definition at line 525 of file OPC_IceHook.h.
float IceMaths::Point::z |
Definition at line 525 of file OPC_IceHook.h.