- Cal3D 0.11 API Reference -

model.h
1 //****************************************************************************//
2 // model.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_MODEL_H
12 #define CAL_MODEL_H
13 
14 
15 #include "cal3d/global.h"
16 #include "cal3d/vector.h"
17 
18 
19 class CalCoreModel;
20 class CalSkeleton;
21 class CalAbstractMixer;
22 class CalMixer;
24 class CalPhysique;
25 class CalSpringSystem;
26 class CalRenderer;
27 class CalMesh;
28 
29 
30 class CAL3D_API CalModel : cal3d::noncopyable
31 {
32 public:
33  CalModel(CalCoreModel *pCoreModel);
34  ~CalModel();
35 
36  bool attachMesh(int coreMeshId);
37  bool detachMesh(int coreMeshId);
38  CalCoreModel *getCoreModel();
39  const CalCoreModel *getCoreModel() const;
40  CalMesh *getMesh(int coreMeshId);
41  const CalMesh *getMesh(int coreMeshId) const;
42  CalMixer *getMixer();
43  const CalMixer *getMixer() const;
44  const CalAbstractMixer *getAbstractMixer() const;
45  void setAbstractMixer(CalAbstractMixer *pMixer);
46  CalMorphTargetMixer *getMorphTargetMixer();
47  const CalMorphTargetMixer *getMorphTargetMixer() const;
48  CalPhysique *getPhysique();
49  const CalPhysique *getPhysique() const;
50  void setPhysique( CalPhysique *physique );
51  CalRenderer *getRenderer();
52  const CalRenderer *getRenderer() const;
53  CalSkeleton *getSkeleton();
54  const CalSkeleton *getSkeleton() const;
55  CalSpringSystem *getSpringSystem();
56  const CalSpringSystem *getSpringSystem() const;
57  CalBoundingBox & getBoundingBox(bool precision = false);
58  const Cal::UserData getUserData() const;
59  std::vector<CalMesh *>& getVectorMesh();
60  void setLodLevel(float lodLevel);
61  void setMaterialSet(int setId);
62  void setUserData(Cal::UserData userData);
63  void update(float deltaTime);
64  void disableInternalData();
65 
66 private:
67  CalCoreModel *m_pCoreModel;
68  CalSkeleton *m_pSkeleton;
69  CalAbstractMixer *m_pMixer;
70  CalMorphTargetMixer *m_pMorphTargetMixer;
71  CalPhysique *m_pPhysique;
72  CalSpringSystem *m_pSpringSystem;
73  CalRenderer *m_pRenderer;
74  Cal::UserData m_userData;
75  std::vector<CalMesh *> m_vectorMesh;
76  CalBoundingBox m_boundingBox;
77 };
78 
79 #endif
80 
81 //****************************************************************************//
Definition: coremodel.h:25
Definition: mesh.h:23
Definition: mixer.h:195
Derive from noncopyable to mark your class as not having a copy constructor or operator=.
Definition: global.h:81
Definition: physique.h:22
The bounding box class.
Definition: vector.h:222
Definition: morphtargetmixer.h:23
CalAbstractMixer defines the API that CalModel relies on for blending and scheduling animations...
Definition: mixer.h:140
Definition: skeleton.h:20
The spring system class.
Definition: springsystem.h:36
Definition: renderer.h:22
Definition: model.h:30

Generated by The Cal3D Team with Doxygen 1.8.14