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