VR-Forces 4.0.4 Class Documentation
include/vrfobjcore/automotivePSR.h
Go to the documentation of this file.
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

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)