00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __AELIB_AEGEOM_MODEL_H__
00023 #define __AELIB_AEGEOM_MODEL_H__
00024
00025 #define ONLY_INCLUDE_STD
00026 #include <aedefs.h>
00027 #undef ONLY_INCLUDE_STD
00028 #include <aeengine/eflags.h>
00029 #include <aegeom/object.h>
00030 #include <aegfx/material.h>
00031 #include <aemdlldr/mdlstruct.h>
00032
00037 class aeModel: public aeObject {
00038 protected:
00039 unsigned int numFrames;
00040 unsigned int numVertices;
00041 unsigned int numTriangles;
00042 unsigned int numTexCoords;
00043 modelState_t modelState;
00044 bool isAnimating;
00045
00046 public:
00047 virtual ~aeModel();
00048
00054 virtual void draw(aeEngineflags *) = 0;
00055
00064 virtual int animate(aeEngineflags *) = 0;
00065
00069 virtual int renderFrame(aeEngineflags *) = 0;
00070
00078 virtual void setAnimation(int startframe, int endframe, float percent) = 0;
00079
00085 virtual void setFrame(int keyframe) = 0;
00086
00093 virtual modelState_t getState() = 0;
00094
00100 virtual void setState(modelState_t) = 0;
00101
00108 virtual bool isAnimating();
00109 };
00110
00111 #endif // __AELIB_AEGEOM_MODEL_H__