geBodyInst

Description: Actor body instance interface.

Source file: ...\genesis3d\OpenSource\Source\Actor\bodyinst.h

Contents:

Functions: Create, Destroy, GetGeometry

Types: geBodyInst , geBodyInst_Index , geBodyInst_FaceType , geBodyInst_SkinVertex, geBodyInst_Geometry

Overview: view

Changes for Genesis3D v1.6: None 

 

Overview:

Format for geBodyInst_Geometry.FaceList:

 primitive type (GE_BODY_FACE_TRIANGLE,  GE_BODY_FACE_TRISTRIP, GE_BODY_FACE_TRIFAN )
 followed by material index
 followed by...
 case primitive
  GE_BODY_FACE_TRIANGLE:
     vertex index 1, normal index 1
     vertex index 2, normal index 2
     vertex index 3, normal index 3
     (next primitive)
  GE_BODY_FACE_TRISTRIP:
     triangle count
     vertex index 1, normal index 1
     vertex index 2, normal index 2
     vertex index 3, normal index 3
     vertex index 4, normal index 4
     ... # vertices is triangle count+2
   (next primitive)
  GE_BODY_FACE_TRIFAN:
     triangle count
     vertex index 1, normal index 1
     vertex index 2, normal index 2
     vertex index 3, normal index 3
     vertex index 4, normal index 4
     ... # vertices is triangle count+2
   (next primitive)

Return to Contents

 

Types: 

typedef struct geBodyInst geBodyInst;

NOTE: The contents of this structure have been intentionally left out of the interface, by the designers of this module. Think of this as a handle only.

For the curious, the following is private and not part of the API.

typedef struct geBodyInst
{
     const geBody*               BodyTemplate;
     geBodyInst_Geometry   ExportGeometry;
     int                                  LastLevelOfDetail;
     geBodyInst_Index          FaceCount;
} geBodyInst;

Return to Contents

 

typedef int16 geBodyInst_Index;

Return to Contents

 

geBodyInst_FaceType
typedef enum {
      GE_BODYINST_FACE_TRIANGLE,
      GE_BODYINST_FACE_TRISTRIP,
      GE_BODYINST_FACE_TRIFAN
} geBodyInst_FaceType;

Return to Contents

 

geBodyInst_SkinVertex

typedef struct geBodyInst_SkinVertex {
      geVec3d        SVPoint;
      geFloat          SVU,SVV;
      int                  ReferenceBoneIndex;
} geBodyInst_SkinVertex;

Return to Contents

 

geBodyInst_Geometry

typedef struct geBodyInst_Geometry {
      geBodyInst_Index             SkinVertexCount;
      geBodyInst_SkinVertex*   SkinVertexArray;
      geBodyInst_Index             NormalCount;
      geVec3d*                         NormalArray;
      geBodyInst_Index             FaceCount;
      int32                                 FaceListSize;
      geBodyInst_Index*           FaceList;
      geVec3d                           Maxs, Mins;
} geBodyInst_Geometry;

Return to Contents

 

 

Functions:

geBodyInst* GENESISCC geBodyInst_Create(const geBody* B );

 

Return to Contents

void GENESISCC geBodyInst_Destroy(geBodyInst** BI);

 

Return to Contents

const geBodyInst_Geometry* GENESISCC geBodyInst_GetGeometry(const geBodyInst* BI, const geVec3d* Scale, const geXFArray* BoneXformArray, int LevelOfDetail, const geCamera* Camera);

 

Return to Contents