- Cal3D 0.9 API Reference - |
00001 //****************************************************************************// 00002 // coreskeleton.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_CORESKELETON_H 00012 #define CAL_CORESKELETON_H 00013 00014 //****************************************************************************// 00015 // Includes // 00016 //****************************************************************************// 00017 00018 #include "cal3d/global.h" 00019 00020 //****************************************************************************// 00021 // Forward declarations // 00022 //****************************************************************************// 00023 00024 class CalCoreBone; 00025 class CalCoreModel; 00026 00027 //****************************************************************************// 00028 // Class declaration // 00029 //****************************************************************************// 00030 00031 /*****************************************************************************/ 00035 class CAL3D_API CalCoreSkeleton 00036 { 00037 // member variables 00038 protected: 00039 std::vector<CalCoreBone *> m_vectorCoreBone; 00040 std::map< std::string, int > m_mapCoreBoneNames; 00041 std::list<int> m_listRootCoreBoneId; 00042 int m_referenceCount; 00043 00044 // constructors/destructor 00045 public: 00046 CalCoreSkeleton(); 00047 virtual ~CalCoreSkeleton(); 00048 00049 // member functions 00050 public: 00051 int addCoreBone(CalCoreBone *pCoreBone); 00052 void calculateState(); 00053 bool create(); 00054 void destroy(); 00055 CalCoreBone* getCoreBone(int coreBoneId); 00056 CalCoreBone* getCoreBone(const std::string& strName); 00057 int getCoreBoneId(const std::string& strName); 00058 bool mapCoreBoneName(int coreBoneId, const std::string& strName); 00059 std::list<int>& getListRootCoreBoneId(); 00060 std::vector<CalCoreBone *>& getVectorCoreBone(); 00061 void calculateBoundingBoxes(CalCoreModel * pCoreModel); 00062 void scale(float factor); 00063 void incRef(); 00064 bool decRef(); 00065 }; 00066 00067 #endif 00068 00069 //****************************************************************************//