#include <OgreMath.h>
Public Types | |
enum | AngleUnit { AU_DEGREE, AU_RADIAN } |
The angular units used by the API. More... | |
Public Member Functions | |
Math (unsigned int trigTableSize=4096) | |
Default constructor. | |
~Math () | |
Default destructor. | |
Static Public Member Functions | |
static int | IAbs (int iValue) |
static int | ICeil (float fValue) |
static int | IFloor (float fValue) |
static int | ISign (int iValue) |
static Real | Abs (Real fValue) |
static Degree | Abs (const Degree &dValue) |
static Radian | Abs (const Radian &rValue) |
static Radian | ACos (Real fValue) |
static Radian | ASin (Real fValue) |
static Radian | ATan (Real fValue) |
static Radian | ATan2 (Real fY, Real fX) |
static Real | Ceil (Real fValue) |
static Real | Cos (const Radian &fValue, bool useTables=false) |
Cosine function. | |
static Real | Cos (Real fValue, bool useTables=false) |
Cosine function. | |
static Real | Exp (Real fValue) |
static Real | Floor (Real fValue) |
static Real | Log (Real fValue) |
static Real | Pow (Real fBase, Real fExponent) |
static Real | Sign (Real fValue) |
static Radian | Sign (const Radian &rValue) |
static Degree | Sign (const Degree &dValue) |
static Real | Sin (const Radian &fValue, bool useTables=false) |
Sine function. | |
static Real | Sin (Real fValue, bool useTables=false) |
Sine function. | |
static Real | Sqr (Real fValue) |
static Real | Sqrt (Real fValue) |
static Radian | Sqrt (const Radian &fValue) |
static Degree | Sqrt (const Degree &fValue) |
static Real | InvSqrt (Real fValue) |
Inverse square root i.e. | |
static Real | UnitRandom () |
static Real | RangeRandom (Real fLow, Real fHigh) |
static Real | SymmetricRandom () |
static Real | Tan (const Radian &fValue, bool useTables=false) |
Tangent function. | |
static Real | Tan (Real fValue, bool useTables=false) |
Tangent function. | |
static Real | DegreesToRadians (Real degrees) |
static Real | RadiansToDegrees (Real radians) |
static void | setAngleUnit (AngleUnit unit) |
These functions used to set the assumed angle units (radians or degrees) expected when using the Angle type. | |
static AngleUnit | getAngleUnit (void) |
Get the unit being used for angles. | |
static Real | AngleUnitsToRadians (Real units) |
Convert from the current AngleUnit to radians. | |
static Real | RadiansToAngleUnits (Real radians) |
Convert from radians to the current AngleUnit . | |
static Real | AngleUnitsToDegrees (Real units) |
Convert from the current AngleUnit to degrees. | |
static Real | DegreesToAngleUnits (Real degrees) |
Convert from degrees to the current AngleUnit. | |
static bool | pointInTri2D (const Vector2 &p, const Vector2 &a, const Vector2 &b, const Vector2 &c) |
Checks whether a given point is inside a triangle, in a 2-dimensional (Cartesian) space. | |
static bool | pointInTri3D (const Vector3 &p, const Vector3 &a, const Vector3 &b, const Vector3 &c, const Vector3 &normal) |
Checks whether a given 3D point is inside a triangle. | |
static std::pair< bool, Real > | intersects (const Ray &ray, const Plane &plane) |
Ray / plane intersection, returns boolean result and distance. | |
static std::pair< bool, Real > | intersects (const Ray &ray, const Sphere &sphere, bool discardInside=true) |
Ray / sphere intersection, returns boolean result and distance. | |
static std::pair< bool, Real > | intersects (const Ray &ray, const AxisAlignedBox &box) |
Ray / box intersection, returns boolean result and distance. | |
static bool | intersects (const Ray &ray, const AxisAlignedBox &box, Real *d1, Real *d2) |
Ray / box intersection, returns boolean result and two intersection distance. | |
static std::pair< bool, Real > | intersects (const Ray &ray, const Vector3 &a, const Vector3 &b, const Vector3 &c, const Vector3 &normal, bool positiveSide=true, bool negativeSide=true) |
Ray / triangle intersection, returns boolean result and distance. | |
static std::pair< bool, Real > | intersects (const Ray &ray, const Vector3 &a, const Vector3 &b, const Vector3 &c, bool positiveSide=true, bool negativeSide=true) |
Ray / triangle intersection, returns boolean result and distance. | |
static bool | intersects (const Sphere &sphere, const AxisAlignedBox &box) |
Sphere / box intersection test. | |
static bool | intersects (const Plane &plane, const AxisAlignedBox &box) |
Plane / box intersection test. | |
static std::pair< bool, Real > | intersects (const Ray &ray, const std::vector< Plane > &planeList, bool normalIsOutside) |
Ray / convex plane list intersection test. | |
static std::pair< bool, Real > | intersects (const Ray &ray, const std::list< Plane > &planeList, bool normalIsOutside) |
Ray / convex plane list intersection test. | |
static bool | intersects (const Sphere &sphere, const Plane &plane) |
Sphere / plane intersection test. | |
static bool | RealEqual (Real a, Real b, Real tolerance=std::numeric_limits< Real >::epsilon()) |
Compare 2 reals, using tolerance for inaccuracies. | |
static Vector3 | calculateTangentSpaceVector (const Vector3 &position1, const Vector3 &position2, const Vector3 &position3, Real u1, Real v1, Real u2, Real v2, Real u3, Real v3) |
Calculates the tangent space vector for a given set of positions / texture coords. | |
static Matrix4 | buildReflectionMatrix (const Plane &p) |
Build a reflection matrix for the passed in plane. | |
static Vector4 | calculateFaceNormal (const Vector3 &v1, const Vector3 &v2, const Vector3 &v3) |
Calculate a face normal, including the w component which is the offset from the origin. | |
static Vector3 | calculateBasicFaceNormal (const Vector3 &v1, const Vector3 &v2, const Vector3 &v3) |
Calculate a face normal, no w-information. | |
static Vector4 | calculateFaceNormalWithoutNormalize (const Vector3 &v1, const Vector3 &v2, const Vector3 &v3) |
Calculate a face normal without normalize, including the w component which is the offset from the origin. | |
static Vector3 | calculateBasicFaceNormalWithoutNormalize (const Vector3 &v1, const Vector3 &v2, const Vector3 &v3) |
Calculate a face normal without normalize, no w-information. | |
static Real | gaussianDistribution (Real x, Real offset=0.0f, Real scale=1.0f) |
Generates a value based on the gaussian (normal) distribution function with the given offset and scale parameters. | |
Static Public Attributes | |
static const Real | POS_INFINITY |
static const Real | NEG_INFINITY |
static const Real | PI |
static const Real | TWO_PI |
static const Real | HALF_PI |
static const Real | fDeg2Rad |
static const Real | fRad2Deg |
Protected Member Functions | |
void | buildTrigTables () |
Private function to build trig tables. | |
Static Protected Member Functions | |
static Real | SinTable (Real fValue) |
static Real | TanTable (Real fValue) |
Static Protected Attributes | |
static AngleUnit | msAngleUnit |
static int | mTrigTableSize |
Size of the trig tables as determined by constructor. | |
static Real | mTrigTableFactor |
Radian -> index factor value ( mTrigTableSize / 2 * PI ). | |
static Real * | mSinTable |
static Real * | mTanTable |
Definition at line 171 of file OgreMath.h.
|
The angular units used by the API. This functionality is now deprecated in favor of discreet angular unit types ( see Degree and Radian above ). The only place this functionality is actually still used is when parsing files. Search for usage of the Angle class for those instances Definition at line 179 of file OgreMath.h. |
|
Default constructor.
|
|
Default destructor.
|
|
Definition at line 222 of file OgreMath.h. |
|
Definition at line 221 of file OgreMath.h. |
|
Definition at line 220 of file OgreMath.h. |
|
|
|
Convert from the current AngleUnit to degrees.
|
|
Convert from the current AngleUnit to radians.
|
|
|
|
Definition at line 225 of file OgreMath.h. |
|
Definition at line 226 of file OgreMath.h. |
|
Build a reflection matrix for the passed in plane.
|
|
Private function to build trig tables.
|
|
Calculate a face normal, no w-information.
|
|
Calculate a face normal without normalize, no w-information.
|
|
Calculate a face normal, including the w component which is the offset from the origin.
|
|
Calculate a face normal without normalize, including the w component which is the offset from the origin.
|
|
Calculates the tangent space vector for a given set of positions / texture coords.
|
|
Definition at line 227 of file OgreMath.h. |
|
Cosine function.
Definition at line 246 of file OgreMath.h. |
|
Cosine function.
Definition at line 236 of file OgreMath.h. |
|
Convert from degrees to the current AngleUnit.
|
|
Definition at line 329 of file OgreMath.h. |
|
Definition at line 250 of file OgreMath.h. |
|
Definition at line 252 of file OgreMath.h. |
|
Generates a value based on the gaussian (normal) distribution function with the given offset and scale parameters.
|
|
Get the unit being used for angles.
|
|
Definition at line 215 of file OgreMath.h. |
|
Definition at line 216 of file OgreMath.h. |
|
Definition at line 217 of file OgreMath.h. |
|
Sphere / plane intersection test.
|
|
Ray / convex plane list intersection test.
|
|
Ray / convex plane list intersection test.
|
|
Plane / box intersection test.
|
|
Sphere / box intersection test.
|
|
Ray / triangle intersection, returns boolean result and distance.
|
|
Ray / triangle intersection, returns boolean result and distance.
|
|
Ray / box intersection, returns boolean result and two intersection distance.
|
|
Ray / box intersection, returns boolean result and distance.
|
|
Ray / sphere intersection, returns boolean result and distance.
|
|
Ray / plane intersection, returns boolean result and distance.
|
|
Inverse square root i.e. 1 / Sqrt(x), good for vector normalisation. |
|
|
|
Definition at line 254 of file OgreMath.h. |
|
Checks whether a given point is inside a triangle, in a 2-dimensional (Cartesian) space.
|
|
Checks whether a given 3D point is inside a triangle.
|
|
Definition at line 256 of file OgreMath.h. |
|
Convert from radians to the current AngleUnit .
|
|
Definition at line 330 of file OgreMath.h. |
|
|
|
Compare 2 reals, using tolerance for inaccuracies.
|
|
These functions used to set the assumed angle units (radians or degrees) expected when using the Angle type.
|
|
Definition at line 263 of file OgreMath.h. |
|
Definition at line 259 of file OgreMath.h. |
|
|
|
Sine function.
Definition at line 285 of file OgreMath.h. |
|
Sine function.
Definition at line 275 of file OgreMath.h. |
|
|
|
Definition at line 289 of file OgreMath.h. |
|
Definition at line 295 of file OgreMath.h. |
|
Definition at line 293 of file OgreMath.h. |
|
Definition at line 291 of file OgreMath.h. |
|
|
|
Tangent function.
Definition at line 325 of file OgreMath.h. |
|
Tangent function.
Definition at line 315 of file OgreMath.h. |
|
|
|
|
|
Definition at line 547 of file OgreMath.h. |
|
Definition at line 548 of file OgreMath.h. |
|
Definition at line 546 of file OgreMath.h. |
|
Definition at line 187 of file OgreMath.h. |
|
Definition at line 194 of file OgreMath.h. |
|
Definition at line 195 of file OgreMath.h. |
|
Radian -> index factor value ( mTrigTableSize / 2 * PI ).
Definition at line 193 of file OgreMath.h. |
|
Size of the trig tables as determined by constructor.
Definition at line 190 of file OgreMath.h. |
|
Definition at line 543 of file OgreMath.h. |
|
Definition at line 544 of file OgreMath.h. |
|
Definition at line 542 of file OgreMath.h. |
|
Definition at line 545 of file OgreMath.h. |
Copyright © 2000-2005 by The OGRE Team
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Sun May 6 10:55:48 2007