- Cal3D 0.9 API Reference -

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

Generated at Sun Jan 29 14:29:16 2006 by The Cal3D Team with doxygen 1.4.6 © 1997-2001 Dimitri van Heesch