![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2010 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 00008 00009 #pragma once 00010 00011 #include "vrfobjcore/processSR.h" 00012 #include "vrfutil/rwReal.h" 00013 #include "vrfutil/rwVector.h" 00014 #include "vrfutil/rwBoolean.h" 00015 #include "vrfutil/rwString.h" 00016 #include "vrfutil/lclVtxList.h" 00017 #include "vrfutil/rwInt.h" 00018 #include "vrfutil/lclVecIter.h" 00019 00022 enum DtFixedWingMovementStatus 00023 { 00024 DtFWTaxiing = 0, //default if none specified during construction 00025 DtFWFlying = 1, 00026 DtFWTakingOff = 2, 00027 DtFWLanding = 3 00028 }; 00029 00034 00035 #include "vrfobjcore/vrfobjcoreDefines.h" 00036 class DT_DLL_vrfobjcore DtFixedWingFlightPSR : public DtVrfProcessStateRepository 00037 { 00038 public: 00039 00041 DtFixedWingFlightPSR(DtVrfObject* vrfObject, 00042 const DtString& rwName = DtString::nullString(), 00043 DtReaderWriterRegistry* parentRegistry = 0); 00044 00046 DtFixedWingFlightPSR(const DtFixedWingFlightPSR& orig, 00047 const DtString& rwName = DtString::nullString(), 00048 DtReaderWriterRegistry* parentRegistry = 0); 00049 00051 virtual ~DtFixedWingFlightPSR(); 00052 00054 DtFixedWingFlightPSR& operator=(const DtFixedWingFlightPSR& orig); 00055 00057 virtual DtVrfProcessStateRepository* clone( 00058 const DtString& rwName = DtString::nullString(), 00059 DtReaderWriterRegistry* parentRegistry = 0) const; 00060 00063 virtual DtString type() const; 00064 00066 virtual void setMaxThrustAccleration(double acceleration); 00067 virtual double maxThrustAcceleration() const; 00068 00069 virtual void setNormalizedBodyVelocity(const DtVector& velocity); 00070 virtual const DtVector& normalizedBodyVelocity() const; 00071 00072 virtual void setLocalAngularVelocity(double velocity); 00073 virtual double localAngularVelocity() const; 00074 00075 virtual void setSpeedRatioSquared(double value); 00076 virtual double speedRatioSquared() const; 00077 00078 virtual void setFinishing(bool flag); 00079 virtual bool isFinishing() const; 00080 00081 virtual void setApproachingVertex(bool flag); 00082 virtual bool isApproachingVertex() const; 00083 00084 virtual void setBanking(bool flag); 00085 virtual bool isBanking() const; 00086 00087 virtual void setLastDistanceSquared(double value); 00088 virtual double lastDistanceSquared() const; 00089 00090 virtual void setDistanceSquared(double value); 00091 virtual double distanceSquared() const; 00092 00093 virtual void setTakeOffDir(const DtVector& takeOffDir); 00094 virtual const DtVector& takeOffDir() const; 00095 00096 virtual void setLandingDir(const DtVector& landingDir); 00097 virtual const DtVector& landingDir() const; 00098 00100 virtual void setEntityToFollow(const DtString& objectName); 00101 virtual const DtString& entityToFollow() const; 00102 00105 virtual void setFollowOffsetVector(const DtVector& offset); 00106 virtual const DtVector& followOffsetVector() const; 00107 00110 virtual void setLoiterRadius(double radius); 00111 virtual double loiterRadius() const; 00112 00115 virtual void setLoiterClockwise(bool flag); 00116 virtual bool loiterClockwise() const; 00117 00119 virtual void setLoiterCenter(const DtVector& center); 00120 virtual const DtVector& loiterCenter() const; 00121 00123 virtual void setControlPointName(const DtString& objectName); 00124 virtual const DtString& controlPointName() const; 00125 00128 virtual void setMovementStatus(const DtFixedWingMovementStatus movementStatus); 00129 virtual const DtFixedWingMovementStatus movementStatus() const; 00130 00131 virtual void setPreviousAltitude(const double speed); 00132 virtual const double previousAltitude() const; 00133 00135 virtual void setFirstWaypointName(const DtString& objectName); 00136 virtual const DtString& firstWaypointName() const; 00137 00139 virtual void setSecondWaypointName(const DtString& objectName); 00140 virtual const DtString& secondWaypointName() const; 00141 00143 virtual void setReversePatrol(bool reverse); 00144 virtual bool reversePatrol() const; 00145 00147 virtual void setRouteName(const DtString& objectName); 00148 virtual const DtString& routeName() const; 00149 00151 virtual void setUseFixedPitch(bool); 00152 virtual bool useFixedPitch() const; 00153 00156 virtual void setRouteVertices(const DtLocalVectorIterator& routeIterator); 00157 virtual const DtLocalVertexList& routeVertices() const; 00158 00160 virtual void emptyRouteVertices(); 00161 00164 virtual DtLocalVectorIterator* routeState() const; 00165 00167 virtual void putSelf(FILE *fp, int indentLevel = 0, bool writeUnspecified = false, 00168 const DtFilename& path = DtReaderWriter::appPath()); 00169 00171 virtual void resetRouteState(); 00172 00176 virtual void setWorldAimingPoint(const DtVector& pnt); 00177 virtual const DtVector& worldAimingPoint() const; 00178 00180 virtual void setMovingToAltitude(bool movingToAlt); 00182 virtual bool movingToAltitude() const; 00183 00185 virtual void setMoveToAltitudeValue(double altitude); 00187 virtual double moveToAltitudeValue() const; 00188 00191 00192 virtual void setWaitingToSetMovementStatus(bool); 00193 virtual bool waitingToSetMovementStatus() const; 00195 00196 00197 public: 00198 00200 static DtVrfProcessStateRepository* creator (const DtString& rwName, 00201 DtVrfObject* vrfObject, DtReaderWriterRegistry* parentRegistry); 00202 00203 protected: 00204 00208 00212 double myMaxThrustAcceleration; 00213 00214 DtRwVector myNormalizedBodyVelocity; 00215 DtRwReal myLocalAngularVelocity; 00216 DtRwReal mySpeedRatioSquared; 00217 00218 DtRwBoolean myFinishing; 00219 00220 DtRwBoolean myApproachingVertex; 00221 DtRwBoolean myBanking; 00222 DtRwReal myLastDistanceSquared; 00223 DtRwReal myDistanceSquared; 00224 00225 DtRwVector myTakeOffDir; 00226 DtRwVector myLandingDir; 00227 00232 DtRwString myEntityToFollow; 00233 DtRwVector myOffsetVector; 00234 00236 DtRwReal myRadius; 00237 DtRwBoolean myClockwise; 00239 DtRwVector myLoiterCircleCenter; 00240 00246 DtRwString myControlObjectName; 00247 DtRwInt myMovementStatus; 00248 00252 DtRwReal myPreviousAltitude; 00253 00258 DtRwString myFirstWaypoint; 00259 DtRwString mySecondWaypoint; 00260 DtRwBoolean myReverseFlag; 00261 00267 DtRwString myRouteName; 00270 DtLocalVectorIterator* myRouteState; 00272 DtLocalVertexList myVertices; 00274 DtRwInt myCurrentVertex; 00275 00277 DtRwVector myWorldAimingPoint; 00278 00279 DtRwBoolean myMovingToAltitude; 00280 DtRwReal myMoveToAltitudeValue; 00281 00282 DtRwBoolean myUseFixedPitch; 00283 00284 DtRwBoolean myWaitingToSetMovementStatus; 00285 }; 00286