Point Class Reference

Inherited by HPoint.

List of all members.

Public Methods

__forceinline Point ()
 Empty constructor.

__forceinline Point (float _x, float _y, float _z)
 Constructor from floats.

__forceinline Point (float f[3])
 Constructor from array.

__forceinline Point (const Point &p)
 Copy constructor.

__forceinline ~Point ()
 Destructor.

__forceinline Point & Zero ()
 Clear vector.

__forceinline Point & SetPlusInfinity ()
 + infinity.

__forceinline Point & SetMinusInfinity ()
 
  • infinity.


Point & UnitRandomVector ()
 Set unit random vector.

__forceinline Point & Set (float _x, float _y, float _z)
 Assignment from values.

__forceinline Point & Set (float f[3])
 Assignment from array.

__forceinline Point & Set (const Point &src)
 Assignment from another point.

__forceinline Point & Add (const Point &p)
 Add a vector.

__forceinline Point & Add (float _x, float _y, float _z)
 Add a vector.

__forceinline Point & Add (float f[3])
 Add a vector.

__forceinline Point & Add (const Point &p, const Point &q)
 Add vectors.

__forceinline Point & Sub (const Point &p)
 Subtract a vector.

__forceinline Point & Sub (float _x, float _y, float _z)
 Subtract a vector.

__forceinline Point & Sub (float f[3])
 Subtract a vector.

__forceinline Point & Sub (const Point &p, const Point &q)
 Subtract vectors.

__forceinline Point & Neg ()
 this = -this.

__forceinline Point & Neg (const Point &a)
 this = -a.

__forceinline Point & Mult (float s)
 Multiplies by a scalar.

__forceinline Point & Mult (const Point &a, float scalar)
 this = a * scalar.

__forceinline Point & Mac (const Point &a, const Point &b, float scalar)
 this = a + b * scalar.

__forceinline Point & Mac (const Point &a, float scalar)
 this = this + a * scalar.

__forceinline Point & Msc (const Point &a, const Point &b, float scalar)
 this = a - b * scalar.

__forceinline Point & Msc (const Point &a, float scalar)
 this = this - a * scalar.

__forceinline Point & Mac2 (const Point &a, const Point &b, float scalarb, const Point &c, float scalarc)
 this = a + b * scalarb + c * scalarc.

__forceinline Point & Msc2 (const Point &a, const Point &b, float scalarb, const Point &c, float scalarc)
 this = a - b * scalarb - c * scalarc.

__forceinline Point & Mult (const Matrix3x3 &mat, const Point &a)
 this = mat * a.

__forceinline Point & Mult2 (const Matrix3x3 &mat1, const Point &a1, const Matrix3x3 &mat2, const Point &a2)
 this = mat1 * a1 + mat2 * a2.

__forceinline Point & Mac (const Matrix3x3 &mat, const Point &a)
 this = this + mat * a.

__forceinline Point & TransMult (const Matrix3x3 &mat, const Point &a)
 this = transpose(mat) * a.

__forceinline Point & Lerp (const Point &a, const Point &b, float t)
 Linear interpolate between two vectors: this = a + t * (b - a).

__forceinline Point & Herp (const Point &p0, const Point &p1, const Point &p2, const Point &p3, float t)
 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.

__forceinline Point & Transform (const Point &r, const Matrix3x3 &rotpos, const Point &linpos)
 this = rotpos * r + linpos.

__forceinline Point & InvTransform (const Point &r, const Matrix3x3 &rotpos, const Point &linpos)
 this = trans(rotpos) * (r - linpos).

__forceinline float Min () const
 Returns MIN(x, y, z);.

__forceinline float Max () const
 Returns MAX(x, y, z);.

__forceinline Point & Min (const Point &p)
 TO BE DOCUMENTED.

__forceinline Point & Max (const Point &p)
 TO BE DOCUMENTED.

__forceinline float SquareMagnitude () const
 Computes square magnitude.

__forceinline float Magnitude () const
 Computes magnitude.

bool ApproxZero () const
 A method to check the point is near zero.

void Tweak (udword coordmask, udword tweakmask)
 A method to slighty move the point.

__forceinline void TweakBigger ()
 A method to slighty move the point out.

__forceinline void TweakSmaller ()
 A method to slighty move the point in.

__forceinline Point & Normalize ()
 Normalize the vector.

__forceinline Point & SetLength (float length)
 Set vector length.

__forceinline float Distance (const Point &b) const
 Compute distance to another point.

__forceinline float SquareDistance (const Point &b) const
 Compute square distance to another point.

__forceinline float Dot (const Point &p) const
 Dot product dp = this|a.

__forceinline Point & Cross (const Point &a, const Point &b)
 Cross product this = a x b.

__forceinline udword VectorCode () const
 Vector code ( bitmask = sign(z) | sign(y) | sign(x) ).

__forceinline udword LargestAxis () const
 Return largest axis.

__forceinline udword ClosestAxis () const
 Return closest axis.

__forceinline udword SmallestAxis () const
 Return smallest axis.

Point & Refract (Point &eye, Point &n, float refractindex, Point &refracted)
 Refract the point.

Point & ProjectToPlane (const Plane &p)
 Project the point onto a plane.

void ProjectToScreen (float halfrenderwidth, float halfrenderheight, const Matrix4x4 &mat, HPoint &projected) const
 Project the point onto the screen.

Point & Unfold (Plane &p, Point &a, Point &b)
 Unfold the point onto a plane according to edge(a,b).

__forceinline Point operator- () const
 Operator for Point Negate = - Point.

__forceinline Point operator+ (const Point &p) const
 Operator for Point Plus = Point + Point.

__forceinline Point operator- (const Point &p) const
 Operator for Point Minus = Point - Point.

__forceinline Point operator * (const Point &p) const
 Operator for Point Mul = Point * Point.

__forceinline Point operator * (float s) const
 Operator for Point Scale = Point * float.

__forceinline Point operator/ (const Point &p) const
 Operator for Point Div = Point / Point.

__forceinline Point operator/ (float s) const
 Operator for Point Scale = Point / float.

__forceinline float operator| (const Point &p) const
 Operator for float DotProd = Point | Point.

__forceinline Point operator^ (const Point &p) const
 Operator for Point VecProd = Point ^ Point.

__forceinline Point & operator+= (const Point &p)
 Operator for Point += Point.

__forceinline Point & operator+= (float s)
 Operator for Point += float.

__forceinline Point & operator-= (const Point &p)
 Operator for Point -= Point.

__forceinline Point & operator-= (float s)
 Operator for Point -= float.

__forceinline Point & operator *= (const Point &p)
 Operator for Point *= Point.

__forceinline Point & operator *= (float s)
 Operator for Point *= float.

__forceinline Point & operator/= (const Point &p)
 Operator for Point /= Point.

__forceinline Point & operator/= (float s)
 Operator for Point /= float.

Point operator * (const Matrix3x3 &mat) const
 Operator for Point Mul = Point * Matrix3x3.

Point operator * (const Matrix4x4 &mat) const
 Operator for Point Mul = Point * Matrix4x4.

Point & operator *= (const Matrix3x3 &mat)
 Operator for Point *= Matrix3x3.

Point & operator *= (const Matrix4x4 &mat)
 Operator for Point *= Matrix4x4.

 operator HPoint () const
 Cast a Point to a HPoint. w is set to zero.


Friends

__forceinline friend Point operator * (float s, const Point &p)
 Operator for Point Scale = float * Point.

__forceinline friend Point operator/ (float s, const Point &p)
 Operator for Point Scale = float / Point.


Detailed Description

3D point. Can be used for vectors and for colors as well.
Author:
Pierre Terdiman
Version:
1.0
Warning:
THIS IS ONLY A VERY LITTLE SUBSET OF THE ORIGINAL ICE CLASS


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


Flat Four Engine
Copyright (C) 2001 by 379, Inc.
This page generated by Doxygen