Rumba C++ SDK
Imath Namespace Reference

Classes

class  Box
 
class  Box< Vec2< T > >
 
class  Box< Vec3< T > >
 
class  Color3
 
class  Color4
 
class  Euler
 
class  Frustum
 
class  GLBegin
 
class  GLPushAttrib
 
class  GLPushMatrix
 
class  Interval
 
struct  limits
 
struct  limits< char >
 
struct  limits< double >
 
struct  limits< float >
 
struct  limits< half >
 
struct  limits< int >
 
struct  limits< long >
 
struct  limits< long double >
 
struct  limits< short >
 
struct  limits< signed char >
 
struct  limits< unsigned char >
 
struct  limits< unsigned int >
 
struct  limits< unsigned long >
 
struct  limits< unsigned short >
 
class  Line3
 
struct  Math
 
struct  Math< float >
 
class  Matrix33
 
class  Matrix44
 
class  Plane3
 
class  Quat
 
class  Rand32
 
class  Rand48
 
class  Shear6
 
class  Sphere3
 
class  Vec2
 
class  Vec3
 
class  Vec4
 

Typedefs

typedef Box< V2sBox2s
 
typedef Box< V2iBox2i
 
typedef Box< V2fBox2f
 
typedef Box< V2dBox2d
 
typedef Box< V3sBox3s
 
typedef Box< V3iBox3i
 
typedef Box< V3fBox3f
 
typedef Box< V3dBox3d
 
typedef Color3< float > Color3f
 
typedef Color3< half > Color3h
 
typedef Color3< unsigned char > Color3c
 
typedef Color3< half > C3h
 
typedef Color3< float > C3f
 
typedef Color3< unsigned char > C3c
 
typedef Color4< float > Color4f
 
typedef Color4< half > Color4h
 
typedef Color4< unsigned char > Color4c
 
typedef Color4< float > C4f
 
typedef Color4< half > C4h
 
typedef Color4< unsigned char > C4c
 
typedef unsigned int PackedColor
 
typedef Euler< float > Eulerf
 
typedef Euler< double > Eulerd
 
typedef Frustum< float > Frustumf
 
typedef Frustum< double > Frustumd
 
typedef long long unsigned int Int64
 
typedef Interval< float > Intervalf
 
typedef Interval< double > Intervald
 
typedef Interval< short > Intervals
 
typedef Interval< int > Intervali
 
typedef Line3< float > Line3f
 
typedef Line3< double > Line3d
 
typedef Matrix33< float > M33f
 
typedef Matrix33< double > M33d
 
typedef Matrix44< float > M44f
 
typedef Matrix44< double > M44d
 
typedef Plane3< float > Plane3f
 
typedef Plane3< double > Plane3d
 
typedef Quat< float > Quatf
 
typedef Quat< double > Quatd
 
typedef Vec3< float > Shear3f
 
typedef Vec3< double > Shear3d
 
typedef Shear6< float > Shear6f
 
typedef Shear6< double > Shear6d
 
typedef Sphere3< float > Sphere3f
 
typedef Sphere3< double > Sphere3d
 
typedef Vec2< short > V2s
 
typedef Vec2< int > V2i
 
typedef Vec2< float > V2f
 
typedef Vec2< double > V2d
 
typedef Vec3< short > V3s
 
typedef Vec3< int > V3i
 
typedef Vec3< float > V3f
 
typedef Vec3< double > V3d
 
typedef Vec4< short > V4s
 
typedef Vec4< int > V4i
 
typedef Vec4< float > V4f
 
typedef Vec4< double > V4d
 

Enumerations

enum  Uninitialized { UNINITIALIZED }
 
enum  InfException { INF_EXCEPTION }
 

Functions

template<class T >
clip (const T &p, const Box< T > &box)
 
template<class T >
closestPointInBox (const T &p, const Box< T > &box)
 
template<class T >
Vec3< T > closestPointOnBox (const Vec3< T > &p, const Box< Vec3< T > > &box)
 
template<class S , class T >
Box< Vec3< S > > transform (const Box< Vec3< S > > &box, const Matrix44< T > &m)
 
template<class S , class T >
Box< Vec3< S > > affineTransform (const Box< Vec3< S > > &box, const Matrix44< T > &m)
 
template<class T >
bool findEntryAndExitPoints (const Line3< T > &r, const Box< Vec3< T > > &b, Vec3< T > &entry, Vec3< T > &exit)
 
template<class T >
bool intersects (const Box< Vec3< T > > &b, const Line3< T > &r, Vec3< T > &ip)
 
template<class T >
bool intersects (const Box< Vec3< T > > &box, const Line3< T > &ray)
 
template<class T >
std::ostream & operator<< (std::ostream &s, const Color4< T > &v)
 
template<class S , class T >
Color4< T > operator* (S a, const Color4< T > &v)
 
Vec3< double > hsv2rgb_d (const Vec3< double > &hsv)
 
Color4< double > hsv2rgb_d (const Color4< double > &hsv)
 
Vec3< double > rgb2hsv_d (const Vec3< double > &c)
 
Color4< double > rgb2hsv_d (const Color4< double > &c)
 
template<class T >
Vec3< T > hsv2rgb (const Vec3< T > &hsv)
 
template<class T >
Color4< T > hsv2rgb (const Color4< T > &hsv)
 
template<class T >
Vec3< T > rgb2hsv (const Vec3< T > &rgb)
 
template<class T >
Color4< T > rgb2hsv (const Color4< T > &rgb)
 
template<class T >
PackedColor rgb2packed (const Vec3< T > &c)
 
template<class T >
PackedColor rgb2packed (const Color4< T > &c)
 
template<class T >
void packed2rgb (PackedColor packed, Vec3< T > &out)
 
template<class T >
void packed2rgb (PackedColor packed, Color4< T > &out)
 
template<class T >
std::ostream & operator<< (std::ostream &o, const Euler< T > &euler)
 
 DEFINE_EXC (NullVecExc, ::Iex::MathExc) DEFINE_EXC(InfPointExc
 
::Iex::MathExc DEFINE_EXC (NullQuatExc, ::Iex::MathExc) DEFINE_EXC(SingMatrixExc
 
::Iex::MathExc ::Iex::MathExc DEFINE_EXC (ZeroScaleExc, ::Iex::MathExc) DEFINE_EXC(IntVecNormalizeExc
 
template<class T >
Matrix44< T > firstFrame (const Vec3< T > &, const Vec3< T > &, const Vec3< T > &)
 
template<class T >
Matrix44< T > nextFrame (const Matrix44< T > &, const Vec3< T > &, const Vec3< T > &, Vec3< T > &, Vec3< T > &)
 
template<class T >
Matrix44< T > lastFrame (const Matrix44< T > &, const Vec3< T > &, const Vec3< T > &)
 
float succf (float f)
 
float predf (float f)
 
double succd (double d)
 
double predd (double d)
 
template<class T >
abs (T a)
 
template<class T >
int sign (T a)
 
template<class T , class Q >
lerp (T a, T b, Q t)
 
template<class T , class Q >
ulerp (T a, T b, Q t)
 
template<class T >
lerpfactor (T m, T a, T b)
 
template<class T >
clamp (T a, T l, T h)
 
template<class T >
int cmp (T a, T b)
 
template<class T >
int cmpt (T a, T b, T t)
 
template<class T >
bool iszero (T a, T t)
 
template<class T1 , class T2 , class T3 >
bool equal (T1 a, T2 b, T3 t)
 
template<class T >
int floor (T x)
 
template<class T >
int ceil (T x)
 
template<class T >
int trunc (T x)
 
int divs (int x, int y)
 
int mods (int x, int y)
 
int divp (int x, int y)
 
int modp (int x, int y)
 
bool finitef (float f)
 
bool finited (double d)
 
template<class T >
std::ostream & operator<< (std::ostream &o, const Line3< T > &line)
 
template<class S , class T >
Line3< S > operator* (const Line3< S > &line, const Matrix44< T > &M)
 
template<class T >
bool closestPoints (const Line3< T > &line1, const Line3< T > &line2, Vec3< T > &point1, Vec3< T > &point2)
 
template<class T >
bool intersect (const Line3< T > &line, const Vec3< T > &v0, const Vec3< T > &v1, const Vec3< T > &v2, Vec3< T > &pt, Vec3< T > &barycentric, bool &front)
 
template<class T >
Vec3< T > closestVertex (const Vec3< T > &v0, const Vec3< T > &v1, const Vec3< T > &v2, const Line3< T > &l)
 
template<class T >
Vec3< T > rotatePoint (const Vec3< T > p, Line3< T > l, T angle)
 
template<class T >
sinx_over_x (T x)
 
template<class T >
bool equalWithAbsError (T x1, T x2, T e)
 
template<class T >
bool equalWithRelError (T x1, T x2, T e)
 
template<class T >
std::ostream & operator<< (std::ostream &s, const Matrix33< T > &m)
 
template<class T >
std::ostream & operator<< (std::ostream &s, const Matrix44< T > &m)
 
template<class S , class T >
const Vec2< S > & operator*= (Vec2< S > &v, const Matrix33< T > &m)
 
template<class S , class T >
Vec2< S > operator* (const Vec2< S > &v, const Matrix33< T > &m)
 
template<class S , class T >
const Vec3< S > & operator*= (Vec3< S > &v, const Matrix33< T > &m)
 
template<class S , class T >
Vec3< S > operator* (const Vec3< S > &v, const Matrix33< T > &m)
 
template<class S , class T >
const Vec3< S > & operator*= (Vec3< S > &v, const Matrix44< T > &m)
 
template<class S , class T >
Vec3< S > operator* (const Vec3< S > &v, const Matrix44< T > &m)
 
template<class S , class T >
const Vec4< S > & operator*= (Vec4< S > &v, const Matrix44< T > &m)
 
template<class S , class T >
Vec4< S > operator* (const Vec4< S > &v, const Matrix44< T > &m)
 
template<class T >
Matrix33< T > operator* (T a, const Matrix33< T > &v)
 
template<class T >
Matrix44< T > operator* (T a, const Matrix44< T > &v)
 
EXPORT_CONST M33f identity33f (1, 0, 0, 0, 1, 0, 0, 0, 1)
 
EXPORT_CONST M33d identity33d (1, 0, 0, 0, 1, 0, 0, 0, 1)
 
EXPORT_CONST M44f identity44f (1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)
 
EXPORT_CONST M44d identity44d (1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)
 
template<class T >
bool extractScaling (const Matrix44< T > &mat, Vec3< T > &scl, bool exc=true)
 
template<class T >
Matrix44< T > sansScaling (const Matrix44< T > &mat, bool exc=true)
 
template<class T >
bool removeScaling (Matrix44< T > &mat, bool exc=true)
 
template<class T >
bool extractScalingAndShear (const Matrix44< T > &mat, Vec3< T > &scl, Vec3< T > &shr, bool exc=true)
 
template<class T >
Matrix44< T > sansScalingAndShear (const Matrix44< T > &mat, bool exc=true)
 
template<class T >
bool removeScalingAndShear (Matrix44< T > &mat, bool exc=true)
 
template<class T >
bool extractAndRemoveScalingAndShear (Matrix44< T > &mat, Vec3< T > &scl, Vec3< T > &shr, bool exc=true)
 
template<class T >
void extractEulerXYZ (const Matrix44< T > &mat, Vec3< T > &rot)
 
template<class T >
void extractEulerZYX (const Matrix44< T > &mat, Vec3< T > &rot)
 
template<class T >
Quat< T > extractQuat (const Matrix44< T > &mat)
 
template<class T >
bool extractSHRT (const Matrix44< T > &mat, Vec3< T > &s, Vec3< T > &h, Vec3< T > &r, Vec3< T > &t, bool exc, typename Euler< T >::Order rOrder)
 
template<class T >
bool extractSHRT (const Matrix44< T > &mat, Vec3< T > &s, Vec3< T > &h, Vec3< T > &r, Vec3< T > &t, bool exc=true)
 
template<class T >
bool extractSHRT (const Matrix44< T > &mat, Vec3< T > &s, Vec3< T > &h, Euler< T > &r, Vec3< T > &t, bool exc=true)
 
template<class T >
bool checkForZeroScaleInRow (const T &scl, const Vec3< T > &row, bool exc=true)
 
template<class T >
Matrix44< T > rotationMatrix (const Vec3< T > &fromDirection, const Vec3< T > &toDirection)
 
template<class T >
Matrix44< T > rotationMatrixWithUpDir (const Vec3< T > &fromDir, const Vec3< T > &toDir, const Vec3< T > &upDir)
 
template<class T >
Matrix44< T > alignZAxisWithTargetDir (Vec3< T > targetDir, Vec3< T > upDir)
 
template<class T >
bool extractScaling (const Matrix33< T > &mat, Vec2< T > &scl, bool exc=true)
 
template<class T >
Matrix33< T > sansScaling (const Matrix33< T > &mat, bool exc=true)
 
template<class T >
bool removeScaling (Matrix33< T > &mat, bool exc=true)
 
template<class T >
bool extractScalingAndShear (const Matrix33< T > &mat, Vec2< T > &scl, T &h, bool exc=true)
 
template<class T >
Matrix33< T > sansScalingAndShear (const Matrix33< T > &mat, bool exc=true)
 
template<class T >
bool removeScalingAndShear (Matrix33< T > &mat, bool exc=true)
 
template<class T >
bool extractAndRemoveScalingAndShear (Matrix33< T > &mat, Vec2< T > &scl, T &shr, bool exc=true)
 
template<class T >
void extractEuler (const Matrix33< T > &mat, T &rot)
 
template<class T >
bool extractSHRT (const Matrix33< T > &mat, Vec2< T > &s, T &h, T &r, Vec2< T > &t, bool exc=true)
 
template<class T >
bool checkForZeroScaleInRow (const T &scl, const Vec2< T > &row, bool exc=true)
 
template<class T >
std::ostream & operator<< (std::ostream &o, const Plane3< T > &plane)
 
template<class T >
Plane3< T > operator* (const Plane3< T > &plane, const Matrix44< T > &M)
 
template<class T >
Plane3< T > operator- (const Plane3< T > &plane)
 
template<class T >
Quat< T > slerp (const Quat< T > &q1, const Quat< T > &q2, T t)
 
template<class T >
Quat< T > slerpShortestArc (const Quat< T > &q1, const Quat< T > &q2, T t)
 
template<class T >
Quat< T > squad (const Quat< T > &q1, const Quat< T > &q2, const Quat< T > &qa, const Quat< T > &qb, T t)
 
template<class T >
void intermediate (const Quat< T > &q0, const Quat< T > &q1, const Quat< T > &q2, const Quat< T > &q3, Quat< T > &qa, Quat< T > &qb)
 
template<class T >
Matrix33< T > operator* (const Matrix33< T > &M, const Quat< T > &q)
 
template<class T >
Matrix33< T > operator* (const Quat< T > &q, const Matrix33< T > &M)
 
template<class T >
std::ostream & operator<< (std::ostream &o, const Quat< T > &q)
 
template<class T >
Quat< T > operator* (const Quat< T > &q1, const Quat< T > &q2)
 
template<class T >
Quat< T > operator/ (const Quat< T > &q1, const Quat< T > &q2)
 
template<class T >
Quat< T > operator/ (const Quat< T > &q, T t)
 
template<class T >
Quat< T > operator* (const Quat< T > &q, T t)
 
template<class T >
Quat< T > operator* (T t, const Quat< T > &q)
 
template<class T >
Quat< T > operator+ (const Quat< T > &q1, const Quat< T > &q2)
 
template<class T >
Quat< T > operator- (const Quat< T > &q1, const Quat< T > &q2)
 
template<class T >
Quat< T > operator~ (const Quat< T > &q)
 
template<class T >
Quat< T > operator- (const Quat< T > &q)
 
template<class T >
Vec3< T > operator* (const Vec3< T > &v, const Quat< T > &q)
 
template<class T >
operator^ (const Quat< T > &q1, const Quat< T > &q2)
 
template<class T >
angle4D (const Quat< T > &q1, const Quat< T > &q2)
 
template<class T >
Quat< T > spline (const Quat< T > &q0, const Quat< T > &q1, const Quat< T > &q2, const Quat< T > &q3, T t)
 
template<class T >
Quat< T > intermediate (const Quat< T > &q0, const Quat< T > &q1, const Quat< T > &q2)
 
double erand48 (unsigned short state[3])
 
double drand48 ()
 
long int nrand48 (unsigned short state[3])
 
long int lrand48 ()
 
void srand48 (long int seed)
 
template<class Vec , class Rand >
Vec solidSphereRand (Rand &rand)
 
template<class Vec , class Rand >
Vec hollowSphereRand (Rand &rand)
 
template<class Rand >
float gaussRand (Rand &rand)
 
template<class Vec , class Rand >
Vec gaussSphereRand (Rand &rand)
 
template<class T >
int solveLinear (T a, T b, T &x)
 
template<class T >
int solveQuadratic (T a, T b, T c, T x[2])
 
template<class T >
int solveNormalizedCubic (T r, T s, T t, T x[3])
 
template<class T >
int solveCubic (T a, T b, T c, T d, T x[3])
 
template<class T >
std::ostream & operator<< (std::ostream &s, const Shear6< T > &h)
 
template<class S , class T >
Shear6< T > operator* (S a, const Shear6< T > &h)
 
template<class T >
std::ostream & operator<< (std::ostream &s, const Vec2< T > &v)
 
template<class T >
std::ostream & operator<< (std::ostream &s, const Vec3< T > &v)
 
template<class T >
std::ostream & operator<< (std::ostream &s, const Vec4< T > &v)
 
template<class T >
Vec2< T > operator* (T a, const Vec2< T > &v)
 
template<class T >
Vec3< T > operator* (T a, const Vec3< T > &v)
 
template<class T >
Vec4< T > operator* (T a, const Vec4< T > &v)
 
template<class Vec >
Vec project (const Vec &s, const Vec &t)
 
template<class Vec >
Vec orthogonal (const Vec &s, const Vec &t)
 
template<class Vec >
Vec reflect (const Vec &s, const Vec &t)
 
template<class Vec >
Vec closestVertex (const Vec &v0, const Vec &v1, const Vec &v2, const Vec &p)
 

Variables

IMATH_EXPORT_CONST M33f identity33f
 
IMATH_EXPORT_CONST M44f identity44f
 
IMATH_EXPORT_CONST M33d identity33d
 
IMATH_EXPORT_CONST M44d identity44d
 

Typedef Documentation

◆ Box2d

typedef Box<V2d> Imath::Box2d

◆ Box2f

typedef Box<V2f> Imath::Box2f

◆ Box2i

typedef Box<V2i> Imath::Box2i

◆ Box2s

typedef Box<V2s> Imath::Box2s

◆ Box3d

typedef Box<V3d> Imath::Box3d

◆ Box3f

typedef Box<V3f> Imath::Box3f

◆ Box3i

typedef Box<V3i> Imath::Box3i

◆ Box3s

typedef Box<V3s> Imath::Box3s

◆ C3c

typedef Color3<unsigned char> Imath::C3c

◆ C3f

typedef Color3<float> Imath::C3f

◆ C3h

typedef Color3<half> Imath::C3h

◆ C4c

typedef Color4<unsigned char> Imath::C4c

◆ C4f

typedef Color4<float> Imath::C4f

◆ C4h

typedef Color4<half> Imath::C4h

◆ Color3c

typedef Color3<unsigned char> Imath::Color3c

◆ Color3f

typedef Color3<float> Imath::Color3f

◆ Color3h

typedef Color3<half> Imath::Color3h

◆ Color4c

typedef Color4<unsigned char> Imath::Color4c

◆ Color4f

typedef Color4<float> Imath::Color4f

◆ Color4h

typedef Color4<half> Imath::Color4h

◆ Eulerd

typedef Euler<double> Imath::Eulerd

◆ Eulerf

typedef Euler<float> Imath::Eulerf

◆ Frustumd

typedef Frustum<double> Imath::Frustumd

◆ Frustumf

typedef Frustum<float> Imath::Frustumf

◆ Int64

typedef long long unsigned int Imath::Int64

◆ Intervald

typedef Interval<double> Imath::Intervald

◆ Intervalf

typedef Interval<float> Imath::Intervalf

◆ Intervali

typedef Interval<int> Imath::Intervali

◆ Intervals

typedef Interval<short> Imath::Intervals

◆ Line3d

typedef Line3<double> Imath::Line3d

◆ Line3f

typedef Line3<float> Imath::Line3f

◆ M33d

typedef Matrix33<double> Imath::M33d

◆ M33f

typedef Matrix33<float> Imath::M33f

◆ M44d

typedef Matrix44<double> Imath::M44d

◆ M44f

typedef Matrix44<float> Imath::M44f

◆ PackedColor

typedef unsigned int Imath::PackedColor

◆ Plane3d

typedef Plane3<double> Imath::Plane3d

◆ Plane3f

typedef Plane3<float> Imath::Plane3f

◆ Quatd

typedef Quat<double> Imath::Quatd

◆ Quatf

typedef Quat<float> Imath::Quatf

◆ Shear3d

typedef Vec3<double> Imath::Shear3d

◆ Shear3f

typedef Vec3<float> Imath::Shear3f

◆ Shear6d

typedef Shear6<double> Imath::Shear6d

◆ Shear6f

typedef Shear6<float> Imath::Shear6f

◆ Sphere3d

typedef Sphere3<double> Imath::Sphere3d

◆ Sphere3f

typedef Sphere3<float> Imath::Sphere3f

◆ V2d

typedef Vec2<double> Imath::V2d

◆ V2f

typedef Vec2<float> Imath::V2f

◆ V2i

typedef Vec2<int> Imath::V2i

◆ V2s

typedef Vec2<short> Imath::V2s

◆ V3d

typedef Vec3<double> Imath::V3d

◆ V3f

typedef Vec3<float> Imath::V3f

◆ V3i

typedef Vec3<int> Imath::V3i

◆ V3s

typedef Vec3<short> Imath::V3s

◆ V4d

typedef Vec4<double> Imath::V4d

◆ V4f

typedef Vec4<float> Imath::V4f

◆ V4i

typedef Vec4<int> Imath::V4i

◆ V4s

typedef Vec4<short> Imath::V4s

Enumeration Type Documentation

◆ InfException

Enumerator
INF_EXCEPTION 

◆ Uninitialized

Enumerator
UNINITIALIZED 

Function Documentation

◆ abs()

template<class T >
T Imath::abs ( a)
inline

◆ affineTransform()

template<class S , class T >
Box< Vec3<S> > Imath::affineTransform ( const Box< Vec3< S > > &  box,
const Matrix44< T > &  m 
)

◆ alignZAxisWithTargetDir()

template<class T >
Matrix44< T > Imath::alignZAxisWithTargetDir ( Vec3< T >  targetDir,
Vec3< T >  upDir 
)

◆ angle4D()

template<class T >
T Imath::angle4D ( const Quat< T > &  q1,
const Quat< T > &  q2 
)

◆ ceil()

template<class T >
int Imath::ceil ( x)
inline

◆ checkForZeroScaleInRow() [1/2]

template<class T >
bool Imath::checkForZeroScaleInRow ( const T &  scl,
const Vec3< T > &  row,
bool  exc = true 
)

◆ checkForZeroScaleInRow() [2/2]

template<class T >
bool Imath::checkForZeroScaleInRow ( const T &  scl,
const Vec2< T > &  row,
bool  exc = true 
)

◆ clamp()

template<class T >
T Imath::clamp ( a,
l,
h 
)
inline

◆ clip()

template<class T >
T Imath::clip ( const T &  p,
const Box< T > &  box 
)
inline

◆ closestPointInBox()

template<class T >
T Imath::closestPointInBox ( const T &  p,
const Box< T > &  box 
)
inline

◆ closestPointOnBox()

template<class T >
Vec3<T> Imath::closestPointOnBox ( const Vec3< T > &  p,
const Box< Vec3< T > > &  box 
)

◆ closestPoints()

template<class T >
bool Imath::closestPoints ( const Line3< T > &  line1,
const Line3< T > &  line2,
Vec3< T > &  point1,
Vec3< T > &  point2 
)

◆ closestVertex() [1/2]

template<class Vec >
Vec Imath::closestVertex ( const Vec &  v0,
const Vec &  v1,
const Vec &  v2,
const Vec &  p 
)

◆ closestVertex() [2/2]

template<class T >
Vec3<T> Imath::closestVertex ( const Vec3< T > &  v0,
const Vec3< T > &  v1,
const Vec3< T > &  v2,
const Line3< T > &  l 
)

◆ cmp()

template<class T >
int Imath::cmp ( a,
b 
)
inline

◆ cmpt()

template<class T >
int Imath::cmpt ( a,
b,
t 
)
inline

◆ DEFINE_EXC() [1/3]

Imath::DEFINE_EXC ( NullVecExc  ,
::Iex::MathExc   
)

◆ DEFINE_EXC() [2/3]

::Iex::MathExc Imath::DEFINE_EXC ( NullQuatExc  ,
::Iex::MathExc   
)

◆ DEFINE_EXC() [3/3]

::Iex::MathExc ::Iex::MathExc Imath::DEFINE_EXC ( ZeroScaleExc  ,
::Iex::MathExc   
)

◆ divp()

int Imath::divp ( int  x,
int  y 
)
inline

◆ divs()

int Imath::divs ( int  x,
int  y 
)
inline

◆ drand48()

double Imath::drand48 ( )

◆ equal()

template<class T1 , class T2 , class T3 >
bool Imath::equal ( T1  a,
T2  b,
T3  t 
)
inline

◆ equalWithAbsError()

template<class T >
bool Imath::equalWithAbsError ( x1,
x2,
e 
)
inline

◆ equalWithRelError()

template<class T >
bool Imath::equalWithRelError ( x1,
x2,
e 
)
inline

◆ erand48()

double Imath::erand48 ( unsigned short  state[3])

◆ extractAndRemoveScalingAndShear() [1/2]

template<class T >
bool Imath::extractAndRemoveScalingAndShear ( Matrix44< T > &  mat,
Vec3< T > &  scl,
Vec3< T > &  shr,
bool  exc = true 
)

◆ extractAndRemoveScalingAndShear() [2/2]

template<class T >
bool Imath::extractAndRemoveScalingAndShear ( Matrix33< T > &  mat,
Vec2< T > &  scl,
T &  shr,
bool  exc = true 
)

◆ extractEuler()

template<class T >
void Imath::extractEuler ( const Matrix33< T > &  mat,
T &  rot 
)

◆ extractEulerXYZ()

template<class T >
void Imath::extractEulerXYZ ( const Matrix44< T > &  mat,
Vec3< T > &  rot 
)

◆ extractEulerZYX()

template<class T >
void Imath::extractEulerZYX ( const Matrix44< T > &  mat,
Vec3< T > &  rot 
)

◆ extractQuat()

template<class T >
Quat< T > Imath::extractQuat ( const Matrix44< T > &  mat)

◆ extractScaling() [1/2]

template<class T >
bool Imath::extractScaling ( const Matrix44< T > &  mat,
Vec3< T > &  scl,
bool  exc = true 
)

◆ extractScaling() [2/2]

template<class T >
bool Imath::extractScaling ( const Matrix33< T > &  mat,
Vec2< T > &  scl,
bool  exc = true 
)

◆ extractScalingAndShear() [1/2]

template<class T >
bool Imath::extractScalingAndShear ( const Matrix44< T > &  mat,
Vec3< T > &  scl,
Vec3< T > &  shr,
bool  exc = true 
)

◆ extractScalingAndShear() [2/2]

template<class T >
bool Imath::extractScalingAndShear ( const Matrix33< T > &  mat,
Vec2< T > &  scl,
T &  h,
bool  exc = true 
)

◆ extractSHRT() [1/4]

template<class T >
bool Imath::extractSHRT ( const Matrix44< T > &  mat,
Vec3< T > &  s,
Vec3< T > &  h,
Vec3< T > &  r,
Vec3< T > &  t,
bool  exc,
typename Euler< T >::Order  rOrder 
)

◆ extractSHRT() [2/4]

template<class T >
bool Imath::extractSHRT ( const Matrix44< T > &  mat,
Vec3< T > &  s,
Vec3< T > &  h,
Vec3< T > &  r,
Vec3< T > &  t,
bool  exc = true 
)

◆ extractSHRT() [3/4]

template<class T >
bool Imath::extractSHRT ( const Matrix44< T > &  mat,
Vec3< T > &  s,
Vec3< T > &  h,
Euler< T > &  r,
Vec3< T > &  t,
bool  exc = true 
)

◆ extractSHRT() [4/4]

template<class T >
bool Imath::extractSHRT ( const Matrix33< T > &  mat,
Vec2< T > &  s,
T &  h,
T &  r,
Vec2< T > &  t,
bool  exc = true 
)

◆ findEntryAndExitPoints()

template<class T >
bool Imath::findEntryAndExitPoints ( const Line3< T > &  r,
const Box< Vec3< T > > &  b,
Vec3< T > &  entry,
Vec3< T > &  exit 
)

◆ finited()

bool Imath::finited ( double  d)
inline

◆ finitef()

bool Imath::finitef ( float  f)
inline

◆ firstFrame()

template<class T >
Matrix44< T > Imath::firstFrame ( const Vec3< T > &  pi,
const Vec3< T > &  pj,
const Vec3< T > &  pk 
)

◆ floor()

template<class T >
int Imath::floor ( x)
inline

◆ gaussRand()

template<class Rand >
float Imath::gaussRand ( Rand &  rand)

◆ gaussSphereRand()

template<class Vec , class Rand >
Vec Imath::gaussSphereRand ( Rand &  rand)

◆ hollowSphereRand()

template<class Vec , class Rand >
Vec Imath::hollowSphereRand ( Rand &  rand)

◆ hsv2rgb() [1/2]

template<class T >
Vec3<T> Imath::hsv2rgb ( const Vec3< T > &  hsv)

◆ hsv2rgb() [2/2]

template<class T >
Color4<T> Imath::hsv2rgb ( const Color4< T > &  hsv)

◆ hsv2rgb_d() [1/2]

Vec3< double > Imath::hsv2rgb_d ( const Vec3< double > &  hsv)

◆ hsv2rgb_d() [2/2]

Color4< double > Imath::hsv2rgb_d ( const Color4< double > &  hsv)

◆ identity33d()

EXPORT_CONST M33d Imath::identity33d ( ,
,
,
,
,
,
,
,
 
)

◆ identity33f()

EXPORT_CONST M33f Imath::identity33f ( ,
,
,
,
,
,
,
,
 
)

◆ identity44d()

EXPORT_CONST M44d Imath::identity44d ( ,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
 
)

◆ identity44f()

EXPORT_CONST M44f Imath::identity44f ( ,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
 
)

◆ intermediate() [1/2]

template<class T >
void Imath::intermediate ( const Quat< T > &  q0,
const Quat< T > &  q1,
const Quat< T > &  q2,
const Quat< T > &  q3,
Quat< T > &  qa,
Quat< T > &  qb 
)

◆ intermediate() [2/2]

template<class T >
Quat<T> Imath::intermediate ( const Quat< T > &  q0,
const Quat< T > &  q1,
const Quat< T > &  q2 
)

◆ intersect()

template<class T >
bool Imath::intersect ( const Line3< T > &  line,
const Vec3< T > &  v0,
const Vec3< T > &  v1,
const Vec3< T > &  v2,
Vec3< T > &  pt,
Vec3< T > &  barycentric,
bool &  front 
)

◆ intersects() [1/2]

template<class T >
bool Imath::intersects ( const Box< Vec3< T > > &  b,
const Line3< T > &  r,
Vec3< T > &  ip 
)

◆ intersects() [2/2]

template<class T >
bool Imath::intersects ( const Box< Vec3< T > > &  box,
const Line3< T > &  ray 
)

◆ iszero()

template<class T >
bool Imath::iszero ( a,
t 
)
inline

◆ lastFrame()

template<class T >
Matrix44< T > Imath::lastFrame ( const Matrix44< T > &  Mi,
const Vec3< T > &  pi,
const Vec3< T > &  pj 
)

◆ lerp()

template<class T , class Q >
T Imath::lerp ( a,
b,
t 
)
inline

◆ lerpfactor()

template<class T >
T Imath::lerpfactor ( m,
a,
b 
)
inline

◆ lrand48()

long int Imath::lrand48 ( )

◆ modp()

int Imath::modp ( int  x,
int  y 
)
inline

◆ mods()

int Imath::mods ( int  x,
int  y 
)
inline

◆ nextFrame()

template<class T >
Matrix44< T > Imath::nextFrame ( const Matrix44< T > &  Mi,
const Vec3< T > &  pi,
const Vec3< T > &  pj,
Vec3< T > &  ti,
Vec3< T > &  tj 
)

◆ nrand48()

long int Imath::nrand48 ( unsigned short  state[3])

◆ operator*() [1/19]

template<class S , class T >
Line3<S> Imath::operator* ( const Line3< S > &  line,
const Matrix44< T > &  M 
)
inline

◆ operator*() [2/19]

template<class T >
Matrix33< T > Imath::operator* ( const Matrix33< T > &  M,
const Quat< T > &  q 
)
inline

◆ operator*() [3/19]

template<class T >
Matrix33< T > Imath::operator* ( const Quat< T > &  q,
const Matrix33< T > &  M 
)
inline

◆ operator*() [4/19]

template<class T >
Quat< T > Imath::operator* ( const Quat< T > &  q1,
const Quat< T > &  q2 
)
inline

◆ operator*() [5/19]

template<class T >
Quat< T > Imath::operator* ( const Quat< T > &  q,
t 
)
inline

◆ operator*() [6/19]

template<class T >
Quat< T > Imath::operator* ( t,
const Quat< T > &  q 
)
inline

◆ operator*() [7/19]

template<class T >
Plane3<T> Imath::operator* ( const Plane3< T > &  plane,
const Matrix44< T > &  M 
)

◆ operator*() [8/19]

template<class T >
Vec3< T > Imath::operator* ( const Vec3< T > &  v,
const Quat< T > &  q 
)
inline

◆ operator*() [9/19]

template<class S , class T >
Shear6< T > Imath::operator* ( a,
const Shear6< T > &  h 
)
inline

◆ operator*() [10/19]

template<class S , class T >
Color4< T > Imath::operator* ( a,
const Color4< T > &  v 
)
inline

◆ operator*() [11/19]

template<class T >
Vec2< T > Imath::operator* ( a,
const Vec2< T > &  v 
)
inline

◆ operator*() [12/19]

template<class T >
Vec3< T > Imath::operator* ( a,
const Vec3< T > &  v 
)
inline

◆ operator*() [13/19]

template<class T >
Vec4< T > Imath::operator* ( a,
const Vec4< T > &  v 
)
inline

◆ operator*() [14/19]

template<class S , class T >
Vec2< S > Imath::operator* ( const Vec2< S > &  v,
const Matrix33< T > &  m 
)
inline

◆ operator*() [15/19]

template<class S , class T >
Vec3< S > Imath::operator* ( const Vec3< S > &  v,
const Matrix33< T > &  m 
)
inline

◆ operator*() [16/19]

template<class S , class T >
Vec3< S > Imath::operator* ( const Vec3< S > &  v,
const Matrix44< T > &  m 
)
inline

◆ operator*() [17/19]

template<class S , class T >
Vec4< S > Imath::operator* ( const Vec4< S > &  v,
const Matrix44< T > &  m 
)
inline

◆ operator*() [18/19]

template<class T >
Matrix33<T> Imath::operator* ( a,
const Matrix33< T > &  v 
)
inline

◆ operator*() [19/19]

template<class T >
Matrix44<T> Imath::operator* ( a,
const Matrix44< T > &  v 
)
inline

◆ operator*=() [1/4]

template<class S , class T >
const Vec2< S > & Imath::operator*= ( Vec2< S > &  v,
const Matrix33< T > &  m 
)
inline

◆ operator*=() [2/4]

template<class S , class T >
const Vec3< S > & Imath::operator*= ( Vec3< S > &  v,
const Matrix33< T > &  m 
)
inline

◆ operator*=() [3/4]

template<class S , class T >
const Vec3< S > & Imath::operator*= ( Vec3< S > &  v,
const Matrix44< T > &  m 
)
inline

◆ operator*=() [4/4]

template<class S , class T >
const Vec4< S > & Imath::operator*= ( Vec4< S > &  v,
const Matrix44< T > &  m 
)
inline

◆ operator+()

template<class T >
Quat< T > Imath::operator+ ( const Quat< T > &  q1,
const Quat< T > &  q2 
)
inline

◆ operator-() [1/3]

template<class T >
Quat< T > Imath::operator- ( const Quat< T > &  q1,
const Quat< T > &  q2 
)
inline

◆ operator-() [2/3]

template<class T >
Quat< T > Imath::operator- ( const Quat< T > &  q)
inline

◆ operator-() [3/3]

template<class T >
Plane3<T> Imath::operator- ( const Plane3< T > &  plane)

◆ operator/() [1/2]

template<class T >
Quat< T > Imath::operator/ ( const Quat< T > &  q1,
const Quat< T > &  q2 
)
inline

◆ operator/() [2/2]

template<class T >
Quat< T > Imath::operator/ ( const Quat< T > &  q,
t 
)
inline

◆ operator<<() [1/11]

template<class T >
std::ostream& Imath::operator<< ( std::ostream &  o,
const Line3< T > &  line 
)

◆ operator<<() [2/11]

template<class T >
std::ostream & Imath::operator<< ( std::ostream &  o,
const Quat< T > &  q 
)

◆ operator<<() [3/11]

template<class T >
std::ostream& Imath::operator<< ( std::ostream &  o,
const Plane3< T > &  plane 
)

◆ operator<<() [4/11]

template<class T >
std::ostream & Imath::operator<< ( std::ostream &  s,
const Shear6< T > &  h 
)

◆ operator<<() [5/11]

template<class T >
std::ostream & Imath::operator<< ( std::ostream &  s,
const Color4< T > &  v 
)

◆ operator<<() [6/11]

template<class T >
std::ostream & Imath::operator<< ( std::ostream &  s,
const Vec2< T > &  v 
)

◆ operator<<() [7/11]

template<class T >
std::ostream & Imath::operator<< ( std::ostream &  s,
const Vec3< T > &  v 
)

◆ operator<<() [8/11]

template<class T >
std::ostream & Imath::operator<< ( std::ostream &  s,
const Vec4< T > &  v 
)

◆ operator<<() [9/11]

template<class T >
std::ostream & Imath::operator<< ( std::ostream &  s,
const Matrix33< T > &  m 
)

◆ operator<<() [10/11]

template<class T >
std::ostream & Imath::operator<< ( std::ostream &  s,
const Matrix44< T > &  m 
)

◆ operator<<() [11/11]

template<class T >
std::ostream& Imath::operator<< ( std::ostream &  o,
const Euler< T > &  euler 
)

◆ operator^()

template<class T >
T Imath::operator^ ( const Quat< T > &  q1,
const Quat< T > &  q2 
)
inline

◆ operator~()

template<class T >
Quat< T > Imath::operator~ ( const Quat< T > &  q)
inline

◆ orthogonal()

template<class Vec >
Vec Imath::orthogonal ( const Vec &  s,
const Vec &  t 
)

◆ packed2rgb() [1/2]

template<class T >
void Imath::packed2rgb ( PackedColor  packed,
Vec3< T > &  out 
)

◆ packed2rgb() [2/2]

template<class T >
void Imath::packed2rgb ( PackedColor  packed,
Color4< T > &  out 
)

◆ predd()

double Imath::predd ( double  d)

◆ predf()

float Imath::predf ( float  f)

◆ project()

template<class Vec >
Vec Imath::project ( const Vec &  s,
const Vec &  t 
)

◆ reflect()

template<class Vec >
Vec Imath::reflect ( const Vec &  s,
const Vec &  t 
)

◆ removeScaling() [1/2]

template<class T >
bool Imath::removeScaling ( Matrix44< T > &  mat,
bool  exc = true 
)

◆ removeScaling() [2/2]

template<class T >
bool Imath::removeScaling ( Matrix33< T > &  mat,
bool  exc = true 
)

◆ removeScalingAndShear() [1/2]

template<class T >
bool Imath::removeScalingAndShear ( Matrix44< T > &  mat,
bool  exc = true 
)

◆ removeScalingAndShear() [2/2]

template<class T >
bool Imath::removeScalingAndShear ( Matrix33< T > &  mat,
bool  exc = true 
)

◆ rgb2hsv() [1/2]

template<class T >
Vec3<T> Imath::rgb2hsv ( const Vec3< T > &  rgb)

◆ rgb2hsv() [2/2]

template<class T >
Color4<T> Imath::rgb2hsv ( const Color4< T > &  rgb)

◆ rgb2hsv_d() [1/2]

Vec3< double > Imath::rgb2hsv_d ( const Vec3< double > &  c)

◆ rgb2hsv_d() [2/2]

Color4< double > Imath::rgb2hsv_d ( const Color4< double > &  c)

◆ rgb2packed() [1/2]

template<class T >
PackedColor Imath::rgb2packed ( const Vec3< T > &  c)

◆ rgb2packed() [2/2]

template<class T >
PackedColor Imath::rgb2packed ( const Color4< T > &  c)

◆ rotatePoint()

template<class T >
Vec3<T> Imath::rotatePoint ( const Vec3< T >  p,
Line3< T >  l,
angle 
)

◆ rotationMatrix()

template<class T >
Matrix44< T > Imath::rotationMatrix ( const Vec3< T > &  fromDirection,
const Vec3< T > &  toDirection 
)

◆ rotationMatrixWithUpDir()

template<class T >
Matrix44< T > Imath::rotationMatrixWithUpDir ( const Vec3< T > &  fromDir,
const Vec3< T > &  toDir,
const Vec3< T > &  upDir 
)

◆ sansScaling() [1/2]

template<class T >
Matrix44< T > Imath::sansScaling ( const Matrix44< T > &  mat,
bool  exc = true 
)

◆ sansScaling() [2/2]

template<class T >
Matrix33< T > Imath::sansScaling ( const Matrix33< T > &  mat,
bool  exc = true 
)

◆ sansScalingAndShear() [1/2]

template<class T >
Matrix44< T > Imath::sansScalingAndShear ( const Matrix44< T > &  mat,
bool  exc = true 
)

◆ sansScalingAndShear() [2/2]

template<class T >
Matrix33< T > Imath::sansScalingAndShear ( const Matrix33< T > &  mat,
bool  exc = true 
)

◆ sign()

template<class T >
int Imath::sign ( a)
inline

◆ sinx_over_x()

template<class T >
T Imath::sinx_over_x ( x)
inline

◆ slerp()

template<class T >
Quat< T > Imath::slerp ( const Quat< T > &  q1,
const Quat< T > &  q2,
t 
)

◆ slerpShortestArc()

template<class T >
Quat< T > Imath::slerpShortestArc ( const Quat< T > &  q1,
const Quat< T > &  q2,
t 
)

◆ solidSphereRand()

template<class Vec , class Rand >
Vec Imath::solidSphereRand ( Rand &  rand)

◆ solveCubic()

template<class T >
int Imath::solveCubic ( a,
b,
c,
d,
x[3] 
)

◆ solveLinear()

template<class T >
int Imath::solveLinear ( a,
b,
T &  x 
)

◆ solveNormalizedCubic()

template<class T >
int Imath::solveNormalizedCubic ( r,
s,
t,
x[3] 
)

◆ solveQuadratic()

template<class T >
int Imath::solveQuadratic ( a,
b,
c,
x[2] 
)

◆ spline()

template<class T >
Quat<T> Imath::spline ( const Quat< T > &  q0,
const Quat< T > &  q1,
const Quat< T > &  q2,
const Quat< T > &  q3,
t 
)

◆ squad()

template<class T >
Quat< T > Imath::squad ( const Quat< T > &  q1,
const Quat< T > &  q2,
const Quat< T > &  qa,
const Quat< T > &  qb,
t 
)

◆ srand48()

void Imath::srand48 ( long int  seed)

◆ succd()

double Imath::succd ( double  d)

◆ succf()

float Imath::succf ( float  f)

◆ transform()

template<class S , class T >
Box< Vec3<S> > Imath::transform ( const Box< Vec3< S > > &  box,
const Matrix44< T > &  m 
)

◆ trunc()

template<class T >
int Imath::trunc ( x)
inline

◆ ulerp()

template<class T , class Q >
T Imath::ulerp ( a,
b,
t 
)
inline

Variable Documentation

◆ identity33d

IMATH_EXPORT_CONST M33d Imath::identity33d

◆ identity33f

IMATH_EXPORT_CONST M33f Imath::identity33f

◆ identity44d

IMATH_EXPORT_CONST M44d Imath::identity44d

◆ identity44f

IMATH_EXPORT_CONST M44f Imath::identity44f