Math Objects
[Containers]


Detailed Description

These structures are not actually interfaces, but rather simple in-memory structures, that are used by interfaces to transfer simple data effectively.

As a general design, when providing one of these data types to a function, you use the in_ variation (e.g. to pass a 3 value vector, use in_Vector3f).

When a function should return data, rather then using the return value and returning a pointer to an array, the called should provide a pointer to a pre allocated array (or class/structure that implements an array). For example, *out_Vector3f can be implemented as a float[3] array. This is to ensure that implementations which generate the data on request are not requred to keep storage memory for use by their callers, especially when they cannot know when the caller will have finished using the memory. The other alternative is to return a structure (such as out_Vector3f), but having the function copy the value into an existing array is a more optimal solution, rather then using the stack.


Data Structures

union  DigitalSpaces::out_Vector3f
 Standard 3 value vector. More...
union  DigitalSpaces::out_Vector3d
 A higher precision version of out_Vector3f. More...
union  DigitalSpaces::out_Vector4f
 Standard 4 value vector. More...
union  DigitalSpaces::out_Vector4d
 A higher precision version of out_Vector4f. More...
union  DigitalSpaces::out_Pairf
 Standard two value pair. More...
struct  DigitalSpaces::out_PositionOrientationf
 Convenience structure used when dealing with both a position and orientation. More...
struct  DigitalSpaces::out_PositionOrientationd
 Convenience structure used when dealing with both a position and orientation. More...

Typedefs

typedef const out_Vector3f DigitalSpaces::in_Vector3f
 Const version of out_Vector3f, used when passing data into a function that won't need to return data.
typedef const out_Vector3d DigitalSpaces::in_Vector3d
 Const version of out_Vector3d, used when passing data into a function that won't need to return data.
typedef const out_Vector4f DigitalSpaces::in_Vector4f
 Const version of out_Vector4f, used when passing data into a function that won't need to return data.
typedef const out_Vector4d DigitalSpaces::in_Vector4d
 Const version of out_Vector4d, used when passing data into a function that won't need to return data.
typedef const out_Pairf DigitalSpaces::in_Pairf
 Const version of out_Pairf, used when passing data into a function that won't need to return data.
typedef out_Vector4f DigitalSpaces::out_Quaternionf
 Standard Quaternion container.
typedef out_Vector4d DigitalSpaces::out_Quaterniond
 Higher precision quaternion container.
typedef const out_Quaternionf DigitalSpaces::in_Quaternionf
 Const version of out_Quaternionf, used when passing data into a function that won't need to return data.
typedef const out_Quaterniond DigitalSpaces::in_Quaterniond
 Const version of out_Quaterniond, used when passing data into a function that won't need to return data.
typedef const
out_PositionOrientationf 
DigitalSpaces::in_PositionOrientationf
 Const version of out_PositionOrientationf, used when passing data into a function that won't need to return data.
typedef const
out_PositionOrientationd 
DigitalSpaces::in_PositionOrientationd
 Const version of out_PositionOrientationd, used when passing data into a function that won't need to return data.
typedef out_Vector3f DigitalSpaces::out_Matrix3f [3]
 Matrix (3x3) data structure.
typedef const out_Vector3f DigitalSpaces::in_Matrix3f [3]
 Const version of out_Vector3f, used when passing data into a function that won't need to return data.
typedef out_Vector4f DigitalSpaces::out_Matrix4f [4]
 Matrix (4x4) data structure.
typedef const out_Matrix4f DigitalSpaces::in_Matrix4f
 Const version of out_Matrix4f, used when passing data into a function that won't need to return data.

Typedef Documentation

typedef const out_Vector3f DigitalSpaces::in_Matrix3f[3]

Const version of out_Vector3f, used when passing data into a function that won't need to return data.

typedef const out_Matrix4f DigitalSpaces::in_Matrix4f

Const version of out_Matrix4f, used when passing data into a function that won't need to return data.

typedef const out_Pairf DigitalSpaces::in_Pairf

Const version of out_Pairf, used when passing data into a function that won't need to return data.

typedef const out_PositionOrientationd DigitalSpaces::in_PositionOrientationd

Const version of out_PositionOrientationd, used when passing data into a function that won't need to return data.

typedef const out_PositionOrientationf DigitalSpaces::in_PositionOrientationf

Const version of out_PositionOrientationf, used when passing data into a function that won't need to return data.

typedef const out_Quaterniond DigitalSpaces::in_Quaterniond

Const version of out_Quaterniond, used when passing data into a function that won't need to return data.

typedef const out_Quaternionf DigitalSpaces::in_Quaternionf

Const version of out_Quaternionf, used when passing data into a function that won't need to return data.

typedef const out_Vector3d DigitalSpaces::in_Vector3d

Const version of out_Vector3d, used when passing data into a function that won't need to return data.

typedef const out_Vector3f DigitalSpaces::in_Vector3f

Const version of out_Vector3f, used when passing data into a function that won't need to return data.

typedef const out_Vector4d DigitalSpaces::in_Vector4d

Const version of out_Vector4d, used when passing data into a function that won't need to return data.

typedef const out_Vector4f DigitalSpaces::in_Vector4f

Const version of out_Vector4f, used when passing data into a function that won't need to return data.

typedef out_Vector3f DigitalSpaces::out_Matrix3f[3]

Matrix (3x3) data structure.

typedef out_Vector4f DigitalSpaces::out_Matrix4f[4]

Matrix (4x4) data structure.

typedef out_Vector4d DigitalSpaces::out_Quaterniond

Higher precision quaternion container.

See also:
out_Quaternionf

typedef out_Vector4f DigitalSpaces::out_Quaternionf

Standard Quaternion container.

Quaternions are the storage method of choice for holding and altering orientations.

Todo:
Look into packing
Note:
The Quaternion layout is
		[0]    w
		[1]    x
		[2]    y
		[3]    z
		
Apparently this is the the way it's always done (I've seen xyzw quaternions before), but this is the way our example-implementation (Wml::Quaternion) does it.
See also:
out_Vector4f


Generated on Sun Aug 31 17:46:27 2008 for Digital Spaces by  doxygen 1.5.6