1 //****************************************************************************//
2 // coremesh.h                                                                 //
3 // Copyright (C) 2001, 2002 Bruno 'Beosil' Heidelberger                       //
4 //****************************************************************************//
5 // This library is free software; you can redistribute it and/or modify it    //
6 // under the terms of the GNU Lesser General Public License as published by   //
7 // the Free Software Foundation; either version 2.1 of the License, or (at    //
8 // your option) any later version.                                            //
9 //****************************************************************************//
10 
11 #ifndef CAL_COREMESH_H
12 #define CAL_COREMESH_H
13 
14 
15 #include "cal3d/global.h"
16 #include "cal3d/refcounted.h"
17 #include "cal3d/refptr.h"
18 
19 
20 class CalCoreSubmesh;
21 
22 
23 class CAL3D_API CalCoreMesh : public cal3d::RefCounted
24 {
25 protected:
26   ~CalCoreMesh();
27 
28 public:
29   CalCoreMesh();
30 
31   int addCoreSubmesh(CalCoreSubmesh *pCoreSubmesh);
32   CalCoreSubmesh *getCoreSubmesh(int id);
33   int getCoreSubmeshCount() const;
34   std::vector<CalCoreSubmesh *>& getVectorCoreSubmesh();
35   int addAsMorphTarget(CalCoreMesh *pCoreMesh);
36   void scale(float factor);
37   void setFilename(const std::string& filename);
38   const std::string& getFilename(void) const;
39   void setName(const std::string& name);
40   const std::string& getName(void) const;
41 
42 private:
43   std::vector<CalCoreSubmesh *> m_vectorCoreSubmesh;
44   std::string m_name;
45   std::string m_filename;
46 };
47 typedef cal3d::RefPtr<CalCoreMesh> CalCoreMeshPtr;
48 
49 #endif
50