![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2002 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: automotivePSR.h,v $ $Revision: 1.25 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00013 00014 #ifndef DtAutomotivePSR_H_ 00015 #define DtAutomotivePSR_H_ 00016 00017 #include "vrfobjcore/vrfobjcoreDefines.h" 00018 #include "vrfobjcore/processSR.h" 00019 #include "vrfutil/rwReal.h" 00020 #include "vrfutil/rwInt.h" 00021 #include "vrfutil/rwBoolean.h" 00022 #include "vrfutil/rwString.h" 00023 #include "vrfutil/rwVector.h" 00024 #include "vrfutil/lclVtxList.h" 00025 #include "vrfutil/lclVecIter.h" 00026 00027 00028 enum DtAutoTransmissionGearEnum 00029 { 00030 DtAutoGearReverse = -1, 00031 DtAutoGearNeutral = 0, 00032 DtAutoGearForward = 1, 00033 DtAutoGearPivot = 2 00034 }; 00035 00036 typedef DtAutoTransmissionGearEnum DtAutoTransmissionGear; 00037 00040 class DT_DLL_vrfobjcore DtAutomotivePSR : public DtVrfProcessStateRepository 00041 { 00042 public: 00043 00045 DtAutomotivePSR(DtVrfObject* vrfObject, 00046 const DtString& rwName = DtString::nullString(), 00047 DtReaderWriterRegistry* parentRegistry = 0); 00048 00050 DtAutomotivePSR(const DtAutomotivePSR& orig, 00051 const DtString& rwName = DtString::nullString(), 00052 DtReaderWriterRegistry* parentRegistry = 0); 00053 00055 virtual ~DtAutomotivePSR(); 00056 00058 DtAutomotivePSR& operator=(const DtAutomotivePSR& orig); 00059 00061 virtual DtVrfProcessStateRepository* clone( 00062 const DtString& rwName = DtString::nullString(), 00063 DtReaderWriterRegistry* parentRegistry = 0) const; 00064 00067 virtual DtString type() const; 00068 00071 virtual void setCurrentGear(DtAutoTransmissionGear gear); 00072 virtual DtAutoTransmissionGear currentGear() const; 00074 00077 virtual void setHeadingToTurnTo(double headingToTurnTo); 00078 virtual double headingToTurnTo() const; 00080 00085 virtual void setKTurnReverseGoalHeading(double kTurnReverseGoalHeading); 00086 virtual double kTurnReverseGoalHeading() const; 00088 00093 virtual void setKTurnReverseComplete(bool kTurnReverseComplete); 00094 virtual bool kTurnReverseComplete() const; 00096 00099 virtual void setControlObjectName(const DtString& controlObjectName); 00100 virtual const DtString& controlObjectName() const; 00102 00107 virtual void setContinueFlag(bool flag); 00108 virtual bool continueFlag() const; 00110 00116 virtual void setWorldDestination(const DtVector& destination); 00117 virtual const DtVector& worldDestination() const; 00119 00122 virtual void setEntityToFollow(const DtString& objectName); 00123 virtual const DtString& entityToFollow() const; 00125 00129 virtual void setFollowingOffsetVector(const DtVector& offsetVector); 00130 virtual const DtVector& followingOffsetVector() const; 00132 00135 virtual void setEntityToInterceptAndDestroy(const DtString & objectName); 00136 virtual const DtString& entityToInterceptAndDestroy() const; 00138 00141 virtual void setStandOffDistance(const double distance); 00142 virtual const double standOffDistance() const; 00144 00147 virtual void setRouteName(const DtString& routeName); 00148 virtual const DtString& routeName() const; 00150 00154 virtual void setRouteVertices(const DtLocalVectorIterator& routeIterator); 00155 virtual const DtLocalVertexList& routeVertices() const; 00157 00159 virtual void emptyRouteVertices(); 00160 00163 virtual DtLocalVectorIterator* routeState() const; 00164 00167 virtual void setReversePatrol(bool flag); 00168 virtual bool reversePatrol() const; 00170 00173 virtual void setFirstWaypoint(const DtString& objectName); 00174 virtual const DtString& firstWaypoint() const; 00176 00179 virtual void setSecondWaypoint(const DtString& objectName); 00180 virtual const DtString& secondWaypoint() const; 00182 00185 virtual void setIsColliding(bool colliding); 00186 virtual bool isColliding() const; 00188 00191 virtual void setIsClearing(bool clearing); 00192 virtual bool isClearing() const; 00194 00197 virtual void setAvoidingLeft(bool avoidingLeft); 00198 virtual bool avoidingLeft() const; 00200 00204 virtual void setCheckForTerrainCollisions(bool checkForCollisions); 00205 virtual bool checkForTerrainCollisions() const; 00207 00208 00219 virtual void setUseHighFidelityGroundClamping(bool yesOrNo); 00220 virtual bool useHighFidelityGroundClamping() const; 00222 00223 00228 virtual void setRoadStartPoint(const DtVector& point); 00229 virtual DtVector roadStartPoint() const; 00230 00231 virtual void setRoadEndPoint(const DtVector& point); 00232 virtual DtVector roadEndPoint() const; 00234 00237 virtual void unspecifyRoadPoints(); 00240 virtual bool roadPointsSpecified() const; 00241 00246 virtual void setStayInLane(bool value); 00247 virtual bool stayInLane() const; 00248 virtual bool stayInLaneSpecified() const; 00249 virtual void unspecifiyStayInLane(); 00251 00252 00256 virtual DtVector orbitCenter() const; 00257 virtual void setOrbitCenter(const DtVector& newCenter); 00258 virtual double orbitRadius() const; 00259 virtual void setOrbitRadius(double newRadius); 00260 virtual bool orbitClockwise() const; 00261 virtual void setOrbitClockwise(bool yesOrNo); 00263 00266 virtual void setRouteIsDiscovered(bool value); 00267 virtual bool routeIsDiscovered() const; 00269 00272 virtual int currentVertex() const; 00273 00275 virtual void putSelf(FILE *fp, int indentLevel = 0, bool writeUnspecified = false, 00276 const DtFilename& path = DtReaderWriter::appPath()); 00277 00278 public: 00279 00281 static DtVrfProcessStateRepository* creator (const DtString& rwName, 00282 DtVrfObject* vrfObject, DtReaderWriterRegistry* parentRegistry); 00283 00284 protected: 00285 00290 DtRwInt myCurrentGear; 00291 DtRwReal myHeadingToTurnTo; 00292 DtRwReal myKTurnReverseGoalHeading; 00293 DtRwBoolean myKTurnReverseComplete; 00294 00300 DtRwString myControlObjectName; 00301 00306 DtRwString myEntityToFollow; 00307 DtRwVector myOffsetVector; 00308 00314 DtRwString myRouteName; 00317 DtLocalVectorIterator* myRouteState; 00319 DtLocalVertexList myVertices; 00321 DtRwInt myCurrentVertex; 00322 00326 DtRwBoolean myReverseFlag; 00327 00332 DtRwString myFirstWaypoint; 00333 DtRwString mySecondWaypoint; 00336 00337 DtRwReal myStandOffInterceptDistance; 00338 DtRwString myEntityToInterceptAndDestroy; 00339 00345 DtRwBoolean myIsColliding; 00346 DtRwBoolean myIsClearing; 00347 DtRwBoolean myAvoidingLeft; 00348 00350 DtRwVector myWorldDestination; 00351 00352 DtRwBoolean myCheckForTerrainCollisions; 00353 00356 DtRwBoolean myUseHighFidelityGroundClamping; 00357 00360 DtRwVector myRoadStartPoint; 00361 DtRwVector myRoadEndPoint; 00364 DtRwBoolean myStayInLane; 00365 00366 DtRwBoolean myContinueFlag; 00367 00368 00369 DtRwVector myOrbitCenter; 00370 DtRwReal myOrbitRadius; 00371 DtRwBoolean myOrbitClockwise; 00373 00378 DtRwBoolean myRouteIsDiscovered; 00380 }; 00381 00382 #endif