delegexp.h

Go to the documentation of this file.
00001 /******************************************************************************
00002  *<
00003     FILE: delegexp.h
00004                   
00005     DESCRIPTION:  Export Interface Functionality for Crowd Delegate
00006 
00007     CREATED BY: Susan Amkraut
00008 
00009     HISTORY: created December, 1999
00010 
00011  *>     Copyright (c) Unreal Pictures, Inc. 1999 All Rights Reserved.
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 // This is the interface ID for a Delegate Interface
00033 #define I_DELEGINTERFACE    0x00100101
00034 
00035 
00036 // This is the Class ID for Vector Field Objects.
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