Go to the
documentation of this file.
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #pragma once
00015
00016 #include <WTypes.h>
00017 #include "..\maxheap.h"
00018 #include "..\maxtypes.h"
00019 #include "..\matrix3.h"
00020 #include "..\color.h"
00021 #include "..\units.h"
00022 #include "..\trig.h"
00023
00024 #ifdef BLD_DELEG
00025 #define DELEGexport __declspec( dllexport )
00026 #else
00027 #define DELEGexport __declspec( dllimport )
00028 #endif
00029
00030
00031
00032
00033 #define I_DELEGINTERFACE 0x00100101
00034
00035
00036
00037 #ifndef BLD_DELEG
00038
00039 #define DELEG_CLASSID Class_ID(0x40c07baa, 0x245c7fe6)
00040 #define CROWD_CLASS_ID Class_ID(0x60144302, 0x43455584) // to avoid selecting a crowd
00041
00042 #endif
00043
00044
00066 class IDelegate: public MaxHeapOperators
00067 {
00068 public:
00072
00073
00074
00075 DELEGexport virtual BOOL IsConstrainedInZ() {return FALSE;}
00076
00077 #pragma warning(push)
00078 #pragma warning(disable:4100)
00079
00080
00081
00082 DELEGexport virtual float GetAverageSpeed(TimeValue t) {return 1.0;}
00083
00087 DELEGexport virtual float GetMaxAccel(TimeValue t){return 1.0;}
00088
00093 DELEGexport virtual float GetMaxHeadingVel(TimeValue t) {return 1.0;}
00094
00099 DELEGexport virtual float GetMaxHeadingAccel(TimeValue t){return 1.0;}
00100
00105 DELEGexport virtual float GetMaxPitchVel(TimeValue t) {return 1.0;}
00106
00111 DELEGexport virtual float GetMaxPitchAccel(TimeValue t){return 1.0;}
00112
00116 DELEGexport virtual float GetMaxIncline(TimeValue t){return 1.0;}
00117
00121 DELEGexport virtual float GetMaxDecline(TimeValue t){return 1.0;}
00122
00124
00128 DELEGexport virtual BOOL OkToDisplayMyForces() {return 1;}
00129
00133 DELEGexport virtual BOOL OkToDisplayMyVelocity() {return 1;}
00134
00138 DELEGexport virtual BOOL OkToDisplayMyCogStates() {return 1;}
00140
00142
00143
00144
00155 DELEGexport virtual Matrix3 GetTM(INode *node,TimeValue t){return Matrix3();}
00156
00159 DELEGexport virtual Point3 GetCurrentPosition() {return Point3(0.0,0.0,0.0);}
00160
00164 DELEGexport virtual Point3 GetCurrentVelocity() {return Point3(0.0,0.0,0.0);}
00165
00168 DELEGexport virtual Point3 GetPreviousVelocity() {return Point3(0.0,0.0,0.0);}
00169
00172 DELEGexport virtual float GetCurrentSpeed() {return 1.0;}
00173
00175
00180
00181
00182
00183 DELEGexport virtual Point3 GetSimStartVelocity(INode *n, TimeValue StartTime) {return Point3(0.0,0.0,0.0);}
00184
00186
00193
00194
00195
00196
00197
00198
00199 DELEGexport virtual void LineDisplay(Point3& pt1, Point3& pt2, Color clr, BOOL scale) {}
00200
00205 DELEGexport virtual void BboxDisplay(Point3& pt1, Point3& pt2, Color clr) {}
00206
00211 DELEGexport virtual void SphereDisplay(Point3& pt1, float radius, Color clr) {}
00212
00217 DELEGexport virtual void TextDisplay(Point3& pt1, Color clr, const MCHAR *str) {}
00219
00221
00222
00223
00224 DELEGexport virtual BOOL IsComputing() {return FALSE;}
00225
00227
00236
00237 DELEGexport virtual BOOL IsAssignmentActive(int AssignIndex, TimeValue t) {return TRUE;}
00238
00241 DELEGexport virtual int GetIndex() {return 0;}
00242
00250 DELEGexport virtual int GetRandId() {return 0;}
00251
00255 DELEGexport virtual BOOL ComputingBiped() {return FALSE;}
00256
00258 DELEGexport virtual BOOL ReactToMe() {return FALSE;}
00259
00261 DELEGexport virtual void ClearBacktracking() {}
00262
00264 DELEGexport virtual BOOL NeedsBacktracking() {return FALSE;}
00265
00267 DELEGexport virtual void SetBacktracking(int frame) {}
00268 #pragma warning(pop)
00269 DELEGexport virtual ~IDelegate() {}
00270
00272 };
00273
00274
00275