![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2001 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: ifCrtVrfObj.h,v $ $Revision: 1.24 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00012 #ifndef DtIfCreateVrfObject_H_ 00013 #define DtIfCreateVrfObject_H_ 00014 00015 #include <vrfExtProtocol/ifaceCont.h> 00016 #include <vlutil/vlString.h> 00017 #include <vrfExtProtocol/objType.h> 00018 #include <vlpi/disEnums.h> 00019 #include <vlutil/vlList.h> 00020 #include <vlpi/appearance.h> 00021 #include <vlpi/simulationAddress.h> 00022 #include "vrfmsgs/vrfmsgsDefines.h" 00023 #include "vrftasks/adminContent.h" 00024 #include <vector> 00025 #include <list> 00026 00085 class DT_DLL_vrfmsgs DtIfCreateVrfObject : public DtSimInterfaceContent 00086 { 00087 public: 00088 00090 DtIfCreateVrfObject(); 00091 00093 virtual ~DtIfCreateVrfObject(); 00094 00096 DtIfCreateVrfObject(const DtIfCreateVrfObject& orig); 00097 00099 DtIfCreateVrfObject& operator=(const DtIfCreateVrfObject& orig); 00100 00102 virtual DtSimInterfaceContent * clone() const; 00103 00106 virtual int type() const; 00107 00110 virtual unsigned long requestId() const; 00111 virtual void setRequestId(unsigned long requestId); 00112 00115 virtual void setVrfProcessAddress(const DtSimulationAddress & address); 00116 virtual const DtSimulationAddress & vrfProcessAddress() const; 00117 00121 virtual void setObjectName(const DtString & objectName); 00122 virtual const DtString & objectName() const; 00123 00125 virtual void setObjectType(const DtObjectType & objectType); 00126 virtual const DtObjectType & objectType() const; 00127 00129 virtual void setForceType(const DtForceType forceType); 00130 virtual DtForceType forceType() const; 00131 00133 virtual void setObjectLabel(const DtString & objectLabel); 00134 virtual const DtString & objectLabel() const; 00135 00137 virtual const DtVector & position() const; 00138 virtual void setPosition(const DtVector & position); 00139 00141 virtual DtReal heading() const; 00142 virtual void setHeading(DtReal heading); 00143 00147 virtual const std::vector<DtVector>& vertexList() const; 00150 virtual const DtList& vertices() const; 00152 virtual void addVertex(const DtVector & vertex); 00153 00156 virtual bool projection() const; 00157 virtual void setProjection(bool projection); 00158 00162 virtual bool closedFigure() const; 00163 virtual void setClosedFigure(bool closedFigure); 00164 00166 virtual const DtAppearance& appearance(); 00167 virtual void setAppearance(const DtAppearance& appearance); 00168 00174 virtual bool createSubObjects() const; 00175 virtual void setCreateSubObjects(bool createSubObjects); 00176 00183 virtual bool addToOrganization() const; 00184 virtual void setAddToOrganization(bool addToOrg); 00185 00189 virtual bool clampToGround() const; 00190 virtual void setClampToGround(bool clamp); 00191 00195 00196 virtual DtString initialFormation() const; 00197 virtual void setInitialFormation(const DtString& formation); 00199 00203 virtual DtAggregateState initialAggregateState() const; 00204 virtual void setInitialAggregateState(DtAggregateState aggregateState); 00205 00207 virtual std::list<DtAdminContent*>* initialAdminContent(); 00208 virtual void setInitialAdminContent(std::list<DtAdminContent*> adminContent); 00209 virtual void addInitialAdminContent(DtAdminContent* adminContent); 00210 00212 virtual std::list<DtSimInterfaceContent*>* initialInterfaceContent(); 00213 virtual void setInitialInterfaceContent(std::list<DtSimInterfaceContent*> adminContent); 00214 virtual void addInitialInterfaceContent(DtSimInterfaceContent* adminContent); 00215 00218 void setStartPosition(const DtVector& position); 00219 const DtVector& startPosition() const; 00220 void setEndPosition(const DtVector& position); 00221 const DtVector& endPosition() const; 00222 void setName(const DtString & name); 00223 const DtString & name() const; 00224 00225 00226 virtual void setUserData( const DtString& userData ); 00227 virtual DtString userData() const; 00228 00229 00230 virtual int netRepSize() const; 00231 virtual bool setFromNet(const char* contentBuffer, 00232 unsigned contentSize); 00233 virtual bool setToNet(); 00234 00235 virtual void printDataToString(DtString& str); 00236 00237 static DtSimInterfaceContent* creator(); 00238 00239 protected: 00242 00245 void copyList(const DtList & fromList); 00246 00248 void emptyList(); 00249 00250 protected: 00251 00252 DtU32 myRequestId; 00253 DtSimulationAddress myVrfProcessAddress; 00254 DtString myObjectName; 00255 DtObjectType myObjectType; 00256 DtForceType myForceType; 00257 DtString myObjectLabel; 00258 DtReal myHeading; 00259 bool myClosedFigure; 00260 bool myProjection; 00261 std::vector<DtVector> myVertexList; 00263 mutable DtList myVertices; 00264 DtAppearance myAppearance; 00265 bool myCreateSubObjects; 00266 bool myAddToOrganization; 00267 bool myClampToGround; 00268 DtString myInitialFormation; 00269 DtU8 myInitialAggregateState; 00270 std::list<DtAdminContent*> myAdminContent; 00271 std::list<DtSimInterfaceContent*> myInterfaceContent; 00272 DtString myUserData; 00273 }; 00274 00275 inline void DtIfCreateVrfObject::setStartPosition(const DtVector& position) 00276 { 00277 setPosition(position); 00278 } 00279 00280 inline const DtVector& DtIfCreateVrfObject::startPosition() const 00281 { 00282 return position(); 00283 } 00284 00285 inline void DtIfCreateVrfObject::setEndPosition(const DtVector& position) 00286 { 00287 addVertex(position); 00288 } 00289 00290 inline const DtVector& DtIfCreateVrfObject::endPosition() const 00291 { 00292 if (myVertices.count() > 0) 00293 { 00294 return *(DtVector*)myVertices.last()->data(); 00295 } 00296 00297 else 00298 { 00299 return DtVector::zero(); 00300 } 00301 } 00302 00303 inline void DtIfCreateVrfObject::setName(const DtString & name) 00304 { 00305 setObjectName(name); 00306 } 00307 00308 inline const DtString& DtIfCreateVrfObject::name() const 00309 { 00310 return objectName(); 00311 } 00312 00313 #endif