![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2004 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: indLclNetIf.h,v $ $Revision: 1.22 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00017 00018 #ifndef DtSimIndividualLocalEntityNetInterface_H_ 00019 #define DtSimIndividualLocalEntityNetInterface_H_ 00020 00021 #include "vrfobjcore/lclEntNetIf.h" 00022 00023 class DtVrfEntityPublisher; 00024 class DtExtEntityStateRepository; 00025 class DtVrfObjectStateRepository; 00026 00036 #include "vrfobjcore/vrfobjcoreDefines.h" 00037 class DT_DLL_vrfobjcore DtSimIndividualLocalEntityNetInterface : public 00038 DtSimLocalEntityNetInterface 00039 { 00040 protected: 00042 DtSimIndividualLocalEntityNetInterface(); 00043 00044 public: 00046 DtSimIndividualLocalEntityNetInterface(const DtString & name, 00047 DtVrfObject* vrfObject, 00048 DtReaderWriterRegistry* parentRegistry = 0, 00049 bool publishObject = true); 00050 00052 DtSimIndividualLocalEntityNetInterface(const 00053 DtSimIndividualLocalEntityNetInterface & orig, 00054 DtReaderWriterRegistry * parentRegistry = 0); 00055 00057 const DtSimIndividualLocalEntityNetInterface & operator=(const 00058 DtSimIndividualLocalEntityNetInterface & orig); 00059 00061 virtual ~DtSimIndividualLocalEntityNetInterface(); 00062 00064 virtual void updateNet(); 00065 00068 virtual void updatePublisher(); 00069 00075 virtual bool createPublisher(); 00076 00078 void destroyPublisher(); 00079 00089 virtual bool setEntityPublisher(DtVrfEntityPublisher * publisher); 00090 00094 virtual void setupNetworkRepository(); 00095 00097 virtual DtVrfEntityPublisher * entityPublisher() const; 00098 00101 virtual DtExtEntityStateRepository * individualNetworkState() const; 00102 00108 virtual DtVrfObjectStateRepository * individualLocalState() const; 00109 00110 virtual bool isAggregate() const { return false; } 00111 00114 virtual DtString type() const; 00115 00119 static DtSimIndividualLocalEntityNetInterface * 00120 isIndividualLocalEntityNetInterface(const DtSimObjectNetInterface * 00121 objNetInterface); 00122 00123 static DtSimObjectNetInterface * creator(const DtString & name, 00124 DtVrfObject* vrfObject, 00125 DtReaderWriterRegistry * parentRegistry, 00126 bool publishObject); 00127 00128 protected: 00129 00130 virtual bool updateVrfDataAsSeenByRemote(); 00131 00136 virtual DtVector calculateWorldVelocityFromPosition(const DtVector & currentWorldPos, 00137 const DtVector & currentLocalPos, 00138 const DtVector & localVelocityworldVelocity); 00139 00143 virtual void updateArtPartsNetState(); 00144 00145 virtual void updateDIGuyState(); 00146 #ifdef DtDIS 00147 virtual void updateCharacterType(const DtString& appear); 00148 virtual void updateCharacterAppearance(const DtString& appear); 00149 virtual void updateCharacterAnimation(const DtString & animation,bool paused); 00150 #endif 00151 00152 protected: 00153 00154 DtVrfEntityPublisher * myEntityPublisher; 00155 00156 DtTime myTimeLastCharacterAppearanceSent; 00157 DtTime myTimeLastCharacterTypeSent; 00158 DtTime myTimeLastAnimationSent; 00159 00160 static DtTime theDiGuyCustomPduThreshold; 00161 bool myFirstTick; 00162 bool myPublishDIGuy; 00163 00164 }; 00165 00166 #endif