- Cal3D 0.9 API Reference -

Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | Related Pages

coremodel.h

00001 //****************************************************************************//
00002 // coremodel.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_COREMODEL_H
00012 #define CAL_COREMODEL_H
00013 
00014 //****************************************************************************//
00015 // Includes                                                                   //
00016 //****************************************************************************//
00017 
00018 #include "cal3d/global.h"
00019 
00020 //****************************************************************************//
00021 // Forward declarations                                                       //
00022 //****************************************************************************//
00023 
00024 class CalCoreSkeleton;
00025 class CalCoreAnimation;
00026 class CalCoreMorphAnimation;
00027 class CalCoreMesh;
00028 class CalCoreMaterial;
00029 
00030 //****************************************************************************//
00031 // Class declaration                                                          //
00032 //****************************************************************************//
00033 
00034  /*****************************************************************************/
00038 class CAL3D_API CalCoreModel
00039 {
00040 // member variables
00041 private:
00042   std::string m_strName;
00043   CalCoreSkeleton *m_pCoreSkeleton;
00044   std::vector<CalCoreAnimation *> m_vectorCoreAnimation;
00045   std::vector<CalCoreMorphAnimation *> m_vectorCoreMorphAnimation;
00046   std::vector<CalCoreMesh *> m_vectorCoreMesh;
00047   std::vector<CalCoreMaterial *> m_vectorCoreMaterial;
00048   std::map<int, std::map<int, int> > m_mapmapCoreMaterialThread;
00049   Cal::UserData m_userData;
00050   std::map<std::string, int> m_animationName;
00051   std::map<std::string, int> m_materialName;
00052   std::map<std::string, int> m_meshName;
00053 
00054 // constructors/destructor
00055 public:
00056   CalCoreModel();
00057   virtual ~CalCoreModel();
00058 
00059 // member functions
00060 public:
00061   bool create(const std::string& strName);
00062   void destroy();
00063 
00064   Cal::UserData getUserData();
00065   void setUserData(Cal::UserData userData);
00066 
00067   void scale(float factor);
00068 
00069   // animations
00070   int addCoreAnimation(CalCoreAnimation *pCoreAnimation);
00071   CalCoreAnimation *getCoreAnimation(int coreAnimationId);
00072   int getCoreAnimationCount();
00073   int loadCoreAnimation(const std::string& strFilename);
00074   int loadCoreAnimation(const std::string& strFilename, const std::string& strAnimationName);
00075   int unloadCoreAnimation(const std::string& name);
00076   int unloadCoreAnimation(int coreAnimationId);
00077   bool saveCoreAnimation(const std::string& strFilename, int coreAnimationId);
00078   bool addAnimationName(const std::string& strAnimationName, int coreAnimationId);
00079   int getCoreAnimationId(const std::string& strAnimationName);
00080 
00081   // morph animations
00082   int addCoreMorphAnimation(CalCoreMorphAnimation *pCoreMorphAnimation);
00083   CalCoreMorphAnimation *getCoreMorphAnimation(int coreMorphAnimationId);
00084   int getCoreMorphAnimationCount();
00085 
00086   // materials
00087   int addCoreMaterial(CalCoreMaterial *pCoreMaterial);
00088   bool createCoreMaterialThread(int coreMaterialThreadId);
00089   CalCoreMaterial *getCoreMaterial(int coreMaterialId);
00090   int getCoreMaterialCount();
00091   int getCoreMaterialId(int coreMaterialThreadId, int coreMaterialSetId);
00092   int loadCoreMaterial(const std::string& strFilename);
00093   int loadCoreMaterial(const std::string& strFilename, const std::string& strMaterialName);
00094   int unloadCoreMaterial(const std::string& name);
00095   int unloadCoreMaterial(int coreMaterialId);
00096   bool saveCoreMaterial(const std::string& strFilename, int coreMaterialId);
00097   bool setCoreMaterialId(int coreMaterialThreadId, int coreMaterialSetId, int coreMaterialId);
00098   bool addMaterialName(const std::string& strMaterialName, int coreMaterialId);
00099   int getCoreMaterialId(const std::string& strMaterialName);
00100 
00101   // meshes
00102   int addCoreMesh(CalCoreMesh *pCoreMesh);
00103   CalCoreMesh *getCoreMesh(int coreMeshId);
00104   int getCoreMeshCount();
00105   int loadCoreMesh(const std::string& strFilename);
00106   int loadCoreMesh(const std::string& strFilename, const std::string& strMeshName);
00107   int unloadCoreMesh(const std::string& name);
00108   int unloadCoreMesh(int coreMeshId);
00109   bool saveCoreMesh(const std::string& strFilename, int coreMeshId);
00110   bool addMeshName(const std::string& strMeshName, int coreMeshId);
00111   int getCoreMeshId(const std::string& strMeshName);
00112 
00113   // skeleton
00114   CalCoreSkeleton *getCoreSkeleton();
00115   bool loadCoreSkeleton(const std::string& strFilename);
00116   bool saveCoreSkeleton(const std::string& strFilename);
00117   void setCoreSkeleton(CalCoreSkeleton *pCoreSkeleton);
00118   void addBoneName(const std::string& strBoneName, int boneId);
00119   int getBoneId(const std::string& strBoneName);
00120 
00121 };
00122 
00123 #endif
00124 
00125 //****************************************************************************//

Generated at Thu Dec 2 20:28:13 2004 by The Cal3D Team with doxygen 1.3.9.1 © 1997-2001 Dimitri van Heesch