![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2011 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtVrfObjectFacadeInterface.h,v $ $Revision: 1.6 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00011 00013 00014 #pragma once 00015 00016 #include <vrfGuiCore/vrfGuiCore.h> 00017 00018 #include <vrvCore/DtUniqueID.h> 00019 00020 #include <boost/signal.hpp> 00021 #include <matrix/vlVector.h> 00022 #include <matrix/geodCoord.h> 00023 #include <matrix/vlTaitBryan.h> 00024 #include <string> 00025 00026 class DtEntityType; 00027 class DtReferenceEllipsoid; 00028 00029 namespace makVrv 00030 { 00031 class DtDe; 00032 class DtChannel; 00033 class DtWindow; 00034 } 00035 00036 namespace makVrf 00037 { 00038 enum DtAltitudeClampType 00039 { 00040 AltitudeAboveSeaLevel = 1, 00041 AltitudeAboveTerrain = 2 00042 }; 00043 00044 class DtVrfObjectManipulationHandlerBaseClass; 00045 00046 class DT_DLL_VRFGUICORE DtVrfObjectFacadeInterface 00047 { 00048 public: 00049 DtVrfObjectFacadeInterface( makVrv::DtDe& de, int modelSet = -1 ); 00050 00051 virtual ~DtVrfObjectFacadeInterface(); 00052 00053 virtual const std::string& entityId() const 00054 { 00055 return myEntityId; 00056 } 00057 00058 virtual void setEntityId(const std::string& i) 00059 { 00060 myEntityId = i; 00061 } 00062 00063 virtual const DtGeodeticCoord& locationOffsetFromPrincipal() const; 00064 virtual void setLocationOffsetFromPrincipal( const DtGeodeticCoord& offset ); 00065 00066 virtual double headingOffsetFromPrincipal() const; 00067 virtual void setHeadingOffsetFromPrincipal( double offset ); 00068 00069 virtual double altitudeOffsetFromPrincipal() const; 00070 virtual void setAltitudeOffsetFromPrincipal( double offset ); 00071 00072 virtual makVrv::DtUniqueID uniqueID() const = 0; 00073 00074 virtual makVrv::DtUniqueID sceneObjectId() const; 00075 virtual void setSceneObjectId( const makVrv::DtUniqueID& id ); 00076 00077 virtual std::string displayName() const; 00078 virtual void setDisplayName( const std::string& displayName ); 00079 00080 virtual const DtGeodeticCoord& currentGroundLocation() const; 00081 virtual DtGeodeticCoord convertToGeodetic(const DtVector& v) const; 00082 00083 virtual double currentHeading() const; 00084 virtual void setCurrentHeading( double currentHeading ); 00085 00087 virtual void setSelected(bool); 00088 00090 virtual std::string overlayName() const; 00091 00093 virtual double currentAltitude() const; 00094 00095 virtual DtVector localLocation() const; 00096 virtual DtVector localLocation(const DtGeodeticCoord& geodLocation) const; 00097 00099 virtual DtVector reviseLocation(const DtVector& loc) const; 00100 00102 virtual DtTaitBryan localOrientation() const; 00103 00104 public: 00106 00107 virtual void setOrigin(const DtGeodeticCoord&); 00108 virtual void setOrigin(const DtVector&); 00109 00110 virtual void setPickable(bool) = 0; 00111 virtual void setIndicatorVisible(bool) = 0; 00112 virtual void setWidgetEventsEnabled(bool) = 0; 00113 virtual void setHatLineVisible(bool) = 0; 00114 00118 virtual void setVisible(bool); 00119 virtual bool isVisible() const; 00120 00122 virtual void setOrientation(const DtTaitBryan&) = 0; 00123 00125 virtual void unrealizeFacades() = 0; 00126 00128 virtual void realizeFacades() = 0; 00129 00130 virtual bool hasNameChange() const 00131 { 00132 return myDisplayNameChanged; 00133 } 00134 00135 virtual bool hasLocationChange() const 00136 { 00137 return myLocationChanged; 00138 } 00139 00140 virtual bool hasAltitudeChange() const 00141 { 00142 return myAltitudeChanged; 00143 } 00144 00145 virtual bool hasHeadingChange() const 00146 { 00147 return myHeadingChanged; 00148 } 00149 00150 virtual void clearFlags(); 00151 00152 virtual void setAltitudeClampType(DtAltitudeClampType t); 00153 virtual DtAltitudeClampType altitudeClampType() const 00154 { 00155 return myAltitudeClampType; 00156 } 00157 00158 virtual void setAltitudeAboveTerrain(double); 00159 virtual double altitudeAboveTerrain() const 00160 { 00161 return myAltitudeAboveGL; 00162 } 00163 00164 virtual void setAltitudeAboveSeaLevel(double); 00165 virtual double altitudeAboveSeaLevel() const 00166 { 00167 return myAltitudeAboveSL; 00168 } 00169 00170 virtual void setIsAnchor(bool); 00171 virtual bool isAnchor() const 00172 { 00173 return myAnchor; 00174 } 00175 00176 virtual void setUserData(const std::string& userData); 00177 virtual std::string userData() const; 00178 00179 int modelSet() const 00180 { 00181 return myModelSetOnly; 00182 } 00183 00184 virtual DtVector clampToGround( const DtVector& localPosition ) const; 00185 virtual DtGeodeticCoord clampToGround( const DtGeodeticCoord& localPosition ) const; 00186 00187 protected: 00188 virtual void setCurrentGroundLocation( const DtGeodeticCoord& currentGroundLocation ); 00189 00190 protected: 00191 makVrv::DtDe& myDe; 00192 makVrv::DtUniqueID mySceneObjectId; 00193 std::string myDisplayName; 00194 std::string myEntityId; 00195 00196 DtGeodeticCoord myLocationOffsetFromPrincipal; 00197 double myHeadingOffsetFromPrincipal; 00198 double myAltitudeOffsetFromPrincipal; 00199 00200 DtGeodeticCoord myCurrentGroundLocation; 00201 double myCurrentHeading; 00202 00203 bool myDisplayNameChanged; 00204 bool myLocationChanged; 00205 bool myAltitudeChanged; 00206 bool myHeadingChanged; 00207 bool myUserDataChanged; 00208 00209 DtAltitudeClampType myAltitudeClampType; 00210 double myAltitudeAboveSL; 00211 double myAltitudeAboveGL; 00212 bool myAnchor; 00213 std::string myUserData; 00214 00215 bool myVisible; 00216 00217 int myModelSetOnly; 00218 }; 00219 }