+++ /dev/null
-/****************************************************************************************/\r
-/* BODY.H */\r
-/* */\r
-/* Author: Mike Sandige */\r
-/* Description: Actor body interface. */\r
-/* */\r
-/* The contents of this file are subject to the Genesis3D Public License */\r
-/* Version 1.01 (the "License"); you may not use this file except in */\r
-/* compliance with the License. You may obtain a copy of the License at */\r
-/* http://www.genesis3d.com */\r
-/* */\r
-/* Software distributed under the License is distributed on an "AS IS" */\r
-/* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See */\r
-/* the License for the specific language governing rights and limitations */\r
-/* under the License. */\r
-/* */\r
-/* The Original Code is Genesis3D, released March 25, 1999. */\r
-/* Genesis3D Version 1.1 released November 15, 1999 */\r
-/* Copyright (C) 1999 WildTangent, Inc. All Rights Reserved */\r
-/* */\r
-/****************************************************************************************/\r
-#ifndef GE_BODY_H\r
-#define GE_BODY_H \r
-\r
-/* This object is for managing the data associated with a skeletal-based mesh, \r
- a 'body'.\r
- This object holds the geometry for the body and the list of materials needed.\r
-*/\r
-\r
-#include "basetype.h"\r
-#include "xform3d.h"\r
-#include "vfile.h"\r
-#include "bitmap.h"\r
-\r
-#ifdef __cplusplus\r
-extern "C" {\r
-#endif\r
-\r
-#define GE_BODY_NUMBER_OF_LOD (4) // 0 is highest detail\r
-#define GE_BODY_NO_PARENT_BONE (-1) \r
-#define GE_BODY_HIGHEST_LOD (0)\r
-\r
-#define GE_BODY_ROOT (-1) // for specifying 'root' bounding box.\r
-\r
-typedef struct geBody geBody;\r
-\r
-\r
-\r
-geBody *GENESISCC geBody_Create(void);\r
-\r
-void GENESISCC geBody_Destroy(geBody **B);\r
-\r
-geBoolean GENESISCC geBody_IsValid(const geBody *B);\r
-\r
-\r
-geBoolean GENESISCC geBody_GetGeometryStats(const geBody *B, int lod, int *Vertices, int *Faces, int *Normals);\r
-\r
-geBoolean GENESISCC geBody_AddFace( geBody *B,\r
- const geVec3d *Vertex1, const geVec3d *Normal1, \r
- geFloat U1, geFloat V1, int BoneIndex1,\r
- const geVec3d *Vertex2, const geVec3d *Normal2, \r
- geFloat U2, geFloat V2, int BoneIndex2,\r
- const geVec3d *Vertex3, const geVec3d *Normal3, \r
- geFloat U3, geFloat V3, int BoneIndex3,\r
- int MaterialIndex);\r
-\r
- // Bitmap is added to body. It's reference count is increased. Caller still owns a pointer\r
- // to the bitmap, and is responsible for destroying it.\r
-geBoolean GENESISCC geBody_AddMaterial( geBody *B, \r
- const char *MaterialName, \r
- geBitmap *Bitmap,\r
- geFloat Red, \r
- geFloat Green, \r
- geFloat Blue,\r
- int *MaterialIndex);\r
-\r
- // returned bitmap is a pointer to the bitmap in the body's list. It may not be destroyed.\r
- // if caller would like to 'own' a copy of that bitmap pointer, it should call geBitmap_CreateRef()\r
-geBoolean GENESISCC geBody_GetMaterial(const geBody *Body, int MaterialIndex,\r
- const char **MaterialName,\r
- geBitmap **Bitmap, geFloat *Red, geFloat *Green, geFloat *Blue);\r
-\r
- // Bitmap is set into the body. It's reference count is increased. Caller still owns a pointer\r
- // to the bitmap, and is responsible for destroying it.\r
-geBoolean GENESISCC geBody_SetMaterial(geBody *Body, int MaterialIndex,\r
- geBitmap *Bitmap, geFloat Red, geFloat Green, geFloat Blue);\r
-\r
-int GENESISCC geBody_GetMaterialCount(const geBody *B);\r
-\r
-geBoolean GENESISCC geBody_AddBone( geBody *B, \r
- int ParentBoneIndex,\r
- const char *BoneName, \r
- const geXForm3d *AttachmentMatrix,\r
- int *BoneIndex);\r
-\r
-geBoolean GENESISCC geBody_ComputeLevelsOfDetail( geBody *B ,int Levels);\r
-\r
-int GENESISCC geBody_GetBoneCount(const geBody *B);\r
-\r
-void GENESISCC geBody_GetBone( const geBody *B, \r
- int BoneIndex, \r
- const char **BoneName,\r
- geXForm3d *Attachment, \r
- int *ParentBoneIndex);\r
-\r
-int32 GENESISCC geBody_GetBoneNameChecksum(const geBody *B);\r
-\r
-void GENESISCC geBody_SetBoundingBox( geBody *B,\r
- int BoneIndex, // GE_BODY_ROOT for specifing 'root' bounding box.\r
- const geVec3d *MinimumBoxCorner,\r
- const geVec3d *MaximumBoxCorner);\r
- \r
-\r
-geBoolean GENESISCC geBody_GetBoundingBox( const geBody *B, \r
- int BoneIndex, // GE_BODY_ROOT for specifing 'root' bounding box.\r
- geVec3d *MinimumBoxCorner,\r
- geVec3d *MaximumBoxCorner);\r
-\r
-geBoolean GENESISCC geBody_GetBoneByName(const geBody* B,\r
- const char* BoneName,\r
- int* pBoneIndex,\r
- geXForm3d* Attachment,\r
- int* pParentBoneIndex);\r
-\r
-geBoolean GENESISCC geBody_WriteToFile(const geBody *B, geVFile *pFile);\r
-geBody *GENESISCC geBody_CreateFromFile(geVFile *pFile);\r
-\r
-\r
-\r
-\r
-#ifdef __cplusplus\r
-}\r
-#endif\r
-\r
-#endif\r
-
\ No newline at end of file