![]() |
VR-Link API Documentation for DIS
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 00007 #ifndef hReflLinearObj_H_ 00008 #define hReflLinearObj_H_ 00009 00010 #if DtHLA 00011 00012 #include "linearObjSR.h" 00013 #include "hReflectedObj.h" 00014 00019 00022 class DT_DLL_VL DtReflectedLinearObject; 00023 typedef void (*DtLinearObjectCallbackFunction)( 00024 DtReflectedLinearObject* obj, void* userData); 00025 00030 00031 class DT_DLL_VL DtReflectedLinearObject : public DtReflectedObject 00032 { 00033 public: 00034 00036 typedef DtLinearObjectRepository* (*DtStateRepCreator)(); 00037 00038 public: 00039 00041 DtReflectedLinearObject(DtHlaObject* obj, DtExerciseConn* conn); 00042 00044 virtual ~DtReflectedLinearObject(); 00045 00047 virtual DtLinearObjectRepository* linearObjectRep() const; 00048 00050 virtual DtLinearObjectRepository* losr() const; 00051 00053 virtual DtReflectedLinearObject* next() const; 00054 00056 virtual DtReflectedLinearObject* prev() const; 00057 00060 virtual DtReflectedLinearObject* wrapNext() const; 00061 00064 virtual DtReflectedLinearObject* wrapPrev() const; 00065 00067 virtual void addPostUpdateCallback( 00068 DtLinearObjectCallbackFunction cb, void* userData); 00069 00070 virtual void removePostUpdateCallback( 00071 DtLinearObjectCallbackFunction cb, void* userData); 00072 00073 public: 00074 00076 static DtStateRepCreator setStateRepCreator(DtStateRepCreator creator); 00077 00078 protected: 00079 00081 DtReflectedLinearObject(const DtReflectedLinearObject& orig); 00082 00084 DtReflectedLinearObject& operator=(const DtReflectedLinearObject& orig); 00085 00086 protected: 00087 00088 static DtStateRepCreator theStateRepCreator; 00089 }; 00090 00091 inline DtLinearObjectRepository* DtReflectedLinearObject::linearObjectRep() const 00092 { 00093 return (DtLinearObjectRepository*) myStateRep; 00094 } 00095 00096 inline DtLinearObjectRepository* DtReflectedLinearObject::losr() const 00097 { 00098 return (DtLinearObjectRepository*) myStateRep; 00099 } 00100 00101 #endif //DtHLA 00102 #endif //hReflLinearObj_H_ 00103