- Cal3D 0.9 API Reference - |
00001 //****************************************************************************// 00002 // skeleton.h // 00003 // Copyright (C) 2001, 2002 Bruno 'Beosil' Heidelberger // 00004 //****************************************************************************// 00005 // This library is free software; you can redistribute it and/or modify it // 00006 // under the terms of the GNU Lesser General Public License as published by // 00007 // the Free Software Foundation; either version 2.1 of the License, or (at // 00008 // your option) any later version. // 00009 //****************************************************************************// 00010 00011 #ifndef CAL_SKELETON_H 00012 #define CAL_SKELETON_H 00013 00014 //****************************************************************************// 00015 // Includes // 00016 //****************************************************************************// 00017 00018 #include "cal3d/global.h" 00019 00020 //****************************************************************************// 00021 // Forward declarations // 00022 //****************************************************************************// 00023 00024 class CalCoreSkeleton; 00025 class CalCoreModel; 00026 class CalBone; 00027 00028 //****************************************************************************// 00029 // Class declaration // 00030 //****************************************************************************// 00031 00032 /*****************************************************************************/ 00036 class CAL3D_API CalSkeleton 00037 { 00038 // member variables 00039 protected: 00040 CalCoreSkeleton *m_pCoreSkeleton; 00041 std::vector<CalBone *> m_vectorBone; 00042 00043 // constructors/destructor 00044 public: 00045 CalSkeleton(); 00046 virtual ~CalSkeleton(); 00047 00048 // member functions 00049 public: 00050 void calculateState(); 00051 void clearState(); 00052 bool create(CalCoreSkeleton *pCoreSkeleton); 00053 void destroy(); 00054 CalBone *getBone(int boneId); 00055 CalCoreSkeleton *getCoreSkeleton(); 00056 std::vector<CalBone *>& getVectorBone(); 00057 void lockState(); 00058 void getBoneBoundingBox(float *min, float *max); 00059 void calculateBoundingBox(); 00060 00061 00062 00063 // DEBUG-CODE 00064 int getBonePoints(float *pPoints); 00065 int getBonePointsStatic(float *pPoints); 00066 int getBoneLines(float *pLines); 00067 int getBoneLinesStatic(float *pLines); 00068 }; 00069 00070 #endif 00071 00072 //****************************************************************************//