Public Member Functions | Public Attributes | Friends
IceMaths::Point Class Reference

#include <OPC_IceHook.h>

Inheritance diagram for IceMaths::Point:
Inheritance graph
[legend]

List of all members.

Public Member Functions

inline_ PointAdd (const Point &p)
 Adds a vector.
inline_ PointAdd (float _x, float _y, float _z)
 Adds a vector.
inline_ PointAdd (const float f[3])
 Adds a vector.
inline_ PointAdd (const Point &p, const Point &q)
 Adds vectors.
inline_ bool ApproxZero () const
 Checks the point is near zero.
inline_ PointClamp (float min, float max)
 Clamps each element.
inline_ PointClampLength (float limit_length)
 Clamps vector length.
inline_ PointComponent ClosestAxis () const
 Returns closest axis.
inline_ PointCross (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_ PointHerp (const Point &p0, const Point &p1, const Point &p2, const Point &p3, float t)
inline_ PointInvTransform (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_ PointLerp (const Point &a, const Point &b, float t)
 Linear interpolate between two vectors: this = a + t * (b - a)
inline_ PointMac (const Point &a, const Point &b, float scalar)
 this = a + b * scalar
inline_ PointMac (const Point &a, float scalar)
 this = this + a * scalar
inline_ PointMac (const Matrix3x3 &mat, const Point &a)
 this = this + mat * a
inline_ PointMac2 (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_ PointMax (const Point &p)
 Sets each element to be componentwise maximum.
inline_ float Min () const
 Returns MIN(x, y, z);.
inline_ PointMin (const Point &p)
 Sets each element to be componentwise minimum.
inline_ PointMsc (const Point &a, const Point &b, float scalar)
 this = a - b * scalar
inline_ PointMsc (const Point &a, float scalar)
 this = this - a * scalar
inline_ PointMsc2 (const Point &a, const Point &b, float scalarb, const Point &c, float scalarc)
 this = a - b * scalarb - c * scalarc
inline_ PointMult (float s)
 Multiplies by a scalar.
inline_ PointMult (const Point &a, float scalar)
 this = a * scalar
inline_ PointMult (const Matrix3x3 &mat, const Point &a)
 this = mat * a
inline_ PointMult2 (const Matrix3x3 &mat1, const Point &a1, const Matrix3x3 &mat2, const Point &a2)
 this = mat1 * a1 + mat2 * a2
inline_ PointNeg ()
 this = -this
inline_ PointNeg (const Point &a)
 this = -a
inline_ PointNormalize ()
 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_ Pointoperator*= (const Point &p)
 Operator for Point *= Point.
inline_ Pointoperator*= (float s)
 Operator for Point *= float.
inline_ Pointoperator*= (const Matrix3x3 &mat)
 Operator for Point *= Matrix3x3.
inline_ Pointoperator*= (const Matrix4x4 &mat)
 Operator for Point *= Matrix4x4.
inline_ Point operator+ (const Point &p) const
 Operator for Point Plus = Point + Point.
inline_ Pointoperator+= (const Point &p)
 Operator for Point += Point.
inline_ Pointoperator+= (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_ Pointoperator-= (const Point &p)
 Operator for Point -= Point.
inline_ Pointoperator-= (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_ Pointoperator/= (const Point &p)
 Operator for Point /= Point.
inline_ Pointoperator/= (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.
PointPositiveUnitRandomVector ()
 Sets positive unit random vector.
PointProjectToPlane (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.
PointRefract (const Point &eye, const Point &n, float refractindex, Point &refracted)
 Refracts the point.
inline_ PointSet (float _x, float _y, float _z)
 Assignment from values.
inline_ PointSet (const float f[3])
 Assignment from array.
inline_ PointSet (const Point &src)
 Assignment from another point.
inline_ PointSetLength (float length)
 Sets vector length.
inline_ PointSetMinusInfinity ()
void SetNotUsed ()
 Stuff magic values in the point, marking it as explicitely not used.
inline_ PointSetPlusInfinity ()
 + 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_ PointSub (const Point &p)
 Subtracts a vector.
inline_ PointSub (float _x, float _y, float _z)
 Subtracts a vector.
inline_ PointSub (const float f[3])
 Subtracts a vector.
inline_ PointSub (const Point &p, const Point &q)
 Subtracts vectors.
inline_ PointTransform (const Point &r, const Matrix3x3 &rotpos, const Point &linpos)
 this = rotpos * r + linpos
inline_ PointTransMult (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.
PointUnfold (Plane &p, Point &a, Point &b)
 Unfolds the point onto a plane according to edge(a,b)
PointUnitRandomVector ()
 Sets unit random vector.
inline_ udword VectorCode () const
 Vector code ( bitmask = sign(z) | sign(y) | sign(x) )
inline_ float Volume () const
 Computes volume.
inline_ PointZero ()
 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.

Detailed Description

Definition at line 26 of file OPC_IceHook.h.


Constructor & Destructor Documentation

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.

Copy constructor.

Definition at line 40 of file OPC_IceHook.h.

Destructor.

Definition at line 42 of file OPC_IceHook.h.


Member Function Documentation

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.

inline_ Point& IceMaths::Point::Add ( const Point p,
const Point q 
) [inline]

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.

Returns closest axis.

Definition at line 353 of file OPC_IceHook.h.

inline_ Point& IceMaths::Point::Cross ( const Point a,
const Point b 
) [inline]

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.

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.

Point & Point::InvTransform ( const Point r,
const Matrix3x3 rotpos,
const Point linpos 
)

this = trans(rotpos) * (r - linpos)

Definition at line 184 of file IcePoint.cpp.

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.

inline_ BOOL IceMaths::Point::IsZero ( ) const [inline]

Tests for exact zero vector.

Definition at line 228 of file OPC_IceHook.h.

Returns largest axis.

Definition at line 342 of file OPC_IceHook.h.

inline_ Point& IceMaths::Point::Lerp ( const Point a,
const Point b,
float  t 
) [inline]

Linear interpolate between two vectors: this = a + t * (b - a)

Definition at line 166 of file OPC_IceHook.h.

inline_ Point& IceMaths::Point::Mac ( const Point a,
const Point b,
float  scalar 
) [inline]

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.

Point & Point::Mac ( const Matrix3x3 mat,
const Point a 
)

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.

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.

Sets each element to be componentwise minimum.

Definition at line 204 of file OPC_IceHook.h.

inline_ Point& IceMaths::Point::Msc ( const Point a,
const Point b,
float  scalar 
) [inline]

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.

Point & Point::Mult ( const Matrix3x3 mat,
const Point a 
)

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.

Reimplemented in IceMaths::HPoint.

Definition at line 270 of file OPC_IceHook.h.

inline_ IceMaths::Point::operator const float * ( ) const [inline]

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.

inline_ bool IceMaths::Point::operator!= ( const Point p) const [inline]

Operator for "if(Point!=Point)".

Definition at line 458 of file OPC_IceHook.h.

inline_ Point IceMaths::Point::operator* ( const Point p) const [inline]

Operator for Point Mul = Point * Point.

Definition at line 409 of file OPC_IceHook.h.

inline_ Point IceMaths::Point::operator* ( float  s) const [inline]

Operator for Point Scale = Point * float.

Reimplemented in IceMaths::HPoint.

Definition at line 411 of file OPC_IceHook.h.

inline_ Point IceMaths::Point::operator* ( const Matrix3x3 mat) const [inline]

Operator for Point Mul = Point * Matrix3x3.

Reimplemented in IceMaths::HPoint.

Definition at line 463 of file OPC_IceHook.h.

inline_ Point IceMaths::Point::operator* ( const Matrix4x4 mat) const [inline]

Operator for Point Mul = Point * Matrix4x4.

Reimplemented in IceMaths::HPoint.

Definition at line 475 of file OPC_IceHook.h.

inline_ Point& IceMaths::Point::operator*= ( const Point p) [inline]

Operator for Point *= Point.

Definition at line 444 of file OPC_IceHook.h.

inline_ Point& IceMaths::Point::operator*= ( float  s) [inline]

Operator for Point *= float.

Reimplemented in IceMaths::HPoint.

Definition at line 446 of file OPC_IceHook.h.

inline_ Point& IceMaths::Point::operator*= ( const Matrix3x3 mat) [inline]

Operator for Point *= Matrix3x3.

Definition at line 487 of file OPC_IceHook.h.

inline_ Point& IceMaths::Point::operator*= ( const Matrix4x4 mat) [inline]

Operator for Point *= Matrix4x4.

Reimplemented in IceMaths::HPoint.

Definition at line 502 of file OPC_IceHook.h.

inline_ Point IceMaths::Point::operator+ ( const Point p) const [inline]

Operator for Point Plus = Point + Point.

Definition at line 404 of file OPC_IceHook.h.

inline_ Point& IceMaths::Point::operator+= ( const Point p) [inline]

Operator for Point += Point.

Definition at line 434 of file OPC_IceHook.h.

inline_ Point& IceMaths::Point::operator+= ( float  s) [inline]

Operator for Point += float.

Reimplemented in IceMaths::HPoint.

Definition at line 436 of file OPC_IceHook.h.

inline_ Point IceMaths::Point::operator- ( ) const [inline]

Unary operator for Point Negate = - Point.

Reimplemented in IceMaths::HPoint.

Definition at line 401 of file OPC_IceHook.h.

inline_ Point IceMaths::Point::operator- ( const Point p) const [inline]

Operator for Point Minus = Point - Point.

Definition at line 406 of file OPC_IceHook.h.

inline_ Point& IceMaths::Point::operator-= ( const Point p) [inline]

Operator for Point -= Point.

Definition at line 439 of file OPC_IceHook.h.

inline_ Point& IceMaths::Point::operator-= ( float  s) [inline]

Operator for Point -= float.

Reimplemented in IceMaths::HPoint.

Definition at line 441 of file OPC_IceHook.h.

inline_ Point IceMaths::Point::operator/ ( const Point p) const [inline]

Operator for Point Div = Point / Point.

Definition at line 416 of file OPC_IceHook.h.

inline_ Point IceMaths::Point::operator/ ( float  s) const [inline]

Operator for Point Scale = Point / float.

Reimplemented in IceMaths::HPoint.

Definition at line 418 of file OPC_IceHook.h.

inline_ Point& IceMaths::Point::operator/= ( const Point p) [inline]

Operator for Point /= Point.

Definition at line 449 of file OPC_IceHook.h.

inline_ Point& IceMaths::Point::operator/= ( float  s) [inline]

Operator for Point /= float.

Reimplemented in IceMaths::HPoint.

Definition at line 451 of file OPC_IceHook.h.

inline_ bool IceMaths::Point::operator== ( const Point p) const [inline]

Operator for "if(Point==Point)".

Definition at line 456 of file OPC_IceHook.h.

inline_ Point IceMaths::Point::operator^ ( const Point p) const [inline]

Operator for Point VecProd = Point ^ Point.

Definition at line 425 of file OPC_IceHook.h.

inline_ float IceMaths::Point::operator| ( const Point p) const [inline]

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.

Returns:
Self-reference

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.

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.

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.

  • infinity

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.

+ infinity

Definition at line 48 of file OPC_IceHook.h.

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.

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.

inline_ Point& IceMaths::Point::Sub ( const Point p,
const Point q 
) [inline]

Subtracts vectors.

Definition at line 80 of file OPC_IceHook.h.

Point & Point::Transform ( const Point r,
const Matrix3x3 rotpos,
const Point linpos 
)

this = rotpos * r + linpos

Definition at line 176 of file IcePoint.cpp.

Point & Point::TransMult ( const Matrix3x3 mat,
const Point a 
)

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.

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.

Point& IceMaths::Point::Unfold ( Plane p,
Point a,
Point b 
)

Unfolds the point onto a plane according to edge(a,b)

Sets unit random vector.

Creates a unit random vector.

Returns:
Self-reference

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_ float IceMaths::Point::Volume ( ) const [inline]

Computes volume.

Definition at line 222 of file OPC_IceHook.h.

Clears the vector.

Reimplemented in IceMaths::HPoint.

Definition at line 45 of file OPC_IceHook.h.


Friends And Related Function Documentation

inline_ friend Point operator* ( float  s,
const Point p 
) [friend]

Operator for Point Scale = float * Point.

Definition at line 413 of file OPC_IceHook.h.

inline_ friend Point operator/ ( float  s,
const Point p 
) [friend]

Operator for Point Scale = float / Point.

Definition at line 420 of file OPC_IceHook.h.


Member Data Documentation

Definition at line 525 of file OPC_IceHook.h.

Definition at line 525 of file OPC_IceHook.h.

Definition at line 525 of file OPC_IceHook.h.


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


openhrp3
Author(s): AIST, General Robotix Inc., Nakamura Lab of Dept. of Mechano Informatics at University of Tokyo
autogenerated on Thu Apr 11 2019 03:30:22