Rasterfarm-SDK
|
#include <iqmfactory.h>
Classes | |
struct | Adjacency |
struct | Animation |
struct | Bounds |
struct | Extension |
struct | Header |
struct | Joint |
struct | JointNode |
struct | Mesh |
struct | Pose |
struct | Triangle |
struct | VertexArray |
Public Types | |
enum | VertexArrayType { POSITION = 0 , TEXCOORD = 1 , NORMAL = 2 , TANGENT = 3 , BLEND_INDEX = 4 , BLEND_WEIGHT = 5 , COLOR = 6 , CUSTOM = 0x10 } |
enum | VertexArrayFormat { BYTE = 0 , UBYTE = 1 , SHORT = 2 , USHORT = 3 , INT = 4 , UINT = 5 , HALF = 6 , FLOAT = 7 , DOUBLE = 8 } |
enum | AnimationFlags { LOOP = 1<<0 } |
Public Member Functions | |
IQMFactory (const char *iqmFile) | |
IQMFactory (GeometricBase *pGeometric) | |
~IQMFactory () | |
void | read (GeometricBase *pGeometric) |
void | read (const char *iqmFile) |
void | write (const char *iqmFile) |
void | create (Shape::Skeletal *pGeometry) |
Surface::Material * | allocMaterialAndComponents (uint meshIndex, Light *pLight, Surface::MaterialManager *pMaterialManager, Surface::Render::ComponentManager *pComponentManager, TextureManager *pTextureManager) |
Skeletal * | createSkeletalObject (Light *pLightObject, Surface::MaterialManager *pMaterialManager, Surface::Render::ComponentManager *pComponentManager, TextureManager *pTextureManager) |
void | create (Shape::Skeletal *pGeometry, uint index) |
const Vector4fArray & | getColorArray () const |
const Vector2fArray & | getTextureCoordArray () const |
const Vector3fArray & | getTangentArray () const |
const Vector3fArray & | getBiTangentArray () const |
Schedule::Sequence::AnimationBase * | createAnimation (Skeletal *pObject, uint index) |
const HeapArray< JointNode > & | getJointNode () const |
const Header & | getHeader () const |
const HeapArray< Matrix4f > & | getAnimatedFrameJointMatrix (uint frame) const |
const HeapArray< Matrix4f > & | getBaseJointMatrix () const |
const String | getMeshName (uint index) const |
Joint * | getJoint (uint index) const |
Animation * | getAnimation (uint index) const |
Bounds * | getBounds (uint index) const |
Mesh * | getMesh (uint index) const |
Pose * | getPose (uint index) const |
template<class S > | |
char * | getName (S *pStruct) const |
uint | getJointIndex (const char *name) |
void | printHeader () |
void | printJoints () |
void | printMeshes () |
void | printAnimations () |
Static Public Member Functions | |
static bool | isLittleEndian () |
Static Public Attributes | |
static constexpr char | magicString [] = "INTERQUAKEMODEL" |
Static Protected Member Functions | |
static HeapArray< Joint > | read (Shape::Skeletal *pGeometry) |
Protected Attributes | |
HeapArray< Matrix4f > | baseJointMatrix |
HeapArray2D< Matrix4f > | frameJointMatrix |
Vector2fArray | textureCoord |
Vector4fArray | color |
Vector3fArray | normal |
Vector3fArray | tangent |
Vector3fArray | bitangent |
Reads and writes Inter-Quake Model format(IQM) data and produces surface, shape, and animation resources.
IQMFactory::IQMFactory | ( | const char * | iqmFile | ) |
IQMFactory::IQMFactory | ( | GeometricBase * | pGeometric | ) |
IQMFactory::~IQMFactory | ( | ) |
Surface::Material * IQMFactory::allocMaterialAndComponents | ( | uint | meshIndex, |
Light * | pLight, | ||
Surface::MaterialManager * | pMaterialManager, | ||
Surface::Render::ComponentManager * | pComponentManager, | ||
TextureManager * | pTextureManager ) |
The | mesh index |
Pointer | to MaterialManager, or nullptr to manage explicitly. |
Pointer | to ComponentManager, or nullptr to manage explicitly. |
Pointer | to TextureManager, or nullptr to manage explicitly. |
void IQMFactory::create | ( | Shape::Skeletal * | pGeometry | ) |
Adds all the data needed to create the Geometry from the IQM data.
Pointer | to an Skeletal Geometry. |
void IQMFactory::create | ( | Shape::Skeletal * | pGeometry, |
uint | index ) |
Geometry | pointer. |
The | mesh index |
Schedule::Sequence::AnimationBase * IQMFactory::createAnimation | ( | Skeletal * | pObject, |
uint | index ) |
Skeletal * IQMFactory::createSkeletalObject | ( | Light * | pLightObject, |
Surface::MaterialManager * | pMaterialManager, | ||
Surface::Render::ComponentManager * | pComponentManager, | ||
TextureManager * | pTextureManager ) |
A | Light object incident to returned Skeletal object. |
Pointer | to MaterialManager, or nullptr to manage explicitly. |
Pointer | to ComponentManager, or nullptr to manage explicitly. |
Pointer | to TextureManager, or nullptr to manage explicitly. |
const HeapArray< Matrix4f > & IQMFactory::getAnimatedFrameJointMatrix | ( | uint | frame | ) | const |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
uint IQMFactory::getJointIndex | ( | const char * | name | ) |
|
inline |
|
inline |
const String IQMFactory::getMeshName | ( | uint | index | ) | const |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlinestatic |
void IQMFactory::printAnimations | ( | ) |
void IQMFactory::printHeader | ( | ) |
void IQMFactory::printJoints | ( | ) |
void IQMFactory::printMeshes | ( | ) |
void IQMFactory::read | ( | const char * | iqmFile | ) |
void IQMFactory::read | ( | GeometricBase * | pGeometric | ) |
Reads geometric and material into the IQM format. NOTE: Animations are currently not supported and joint matrices are stored as forward-kinematic rather than the inverse-kinematic. The joint-names are applied iteratively(joint1, joint2, etc...) as indexed within Shape::Skeletal.
|
staticprotected |
void IQMFactory::write | ( | const char * | iqmFile | ) |
Write the contents of the current IQM data buffer to the filesystem. NOTE: This method does not export the IQM assets(ie. textures)
|
protected |
|
protected |
|
protected |
|
protected |
|
staticconstexpr |
|
protected |
|
protected |
|
protected |