![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2011 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtVrfShapeManipulationHandler.h,v $ $Revision: 1.4 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00011 00013 00014 #pragma once 00015 00016 #include <vrfGuiCore/vrfGuiCore.h> 00017 #include <vrfGuiCore/DtVrfObjectManipulationHandlerBaseClass.h> 00018 #include <string> 00019 00020 class DtVector; 00021 00022 namespace makVrf 00023 { 00024 class DtVrfObjectManipulationEventProcessor; 00025 class DtEnvironmentalCreationData; 00026 class DtEnvironmentalFacadeCollection; 00027 00029 class DT_DLL_VRFGUICORE DtVrfShapeManipulationHandler : public DtVrfObjectManipulationHandlerBaseClass 00030 { 00031 public: 00032 00033 DtVrfShapeManipulationHandler( makVrv::DtDe& ); 00034 virtual ~DtVrfShapeManipulationHandler(); 00035 00037 virtual void setPoints(const std::vector<DtVector>& pts) ; 00038 virtual void setPoints(const std::vector<DtGeodeticCoord>& pts) ; 00039 00040 const std::vector<DtVector>& points() const; 00041 00042 public: 00043 00046 virtual bool createVrfObject(); 00047 00049 virtual void addControlPoint(const DtVector& location, int index = -1); 00050 00052 virtual void removeControlPoint(int index); 00053 00055 virtual void setLocation(int index, const DtVector& location, bool resetOrigin = true); 00056 00060 virtual void setAltitudeAboveSeaLevel(int, double); 00061 virtual double altitudeAboveSeaLevel(int) const; 00062 00066 virtual void setAltitudeAboveTerrain(int, double); 00067 virtual double altitudeAboveTerrain(int) const; 00068 00070 virtual bool shapeAtMinimum() const; 00071 00073 virtual bool shapeAtMaximum() const; 00074 00076 virtual int numVertices() const; 00077 00079 virtual void setEditingPoint(int); 00080 virtual int editingPoint() const; 00081 00082 virtual DtGeodeticCoord geodeticPosition(int) const; 00083 00085 virtual DtVector localLocation( int index ) const; 00086 00087 virtual std::vector<DtGeodeticCoord> geodeticPositions() const; 00088 00089 virtual void removePoint(int); 00090 00092 virtual double altitudeForAltitudeType(int) const; 00093 00094 virtual void setForce(int); 00095 00096 boost::signal<void (const DtVector&, int)> signal_pointLocationChanged; 00097 00098 protected: 00099 virtual void editSelectedObjects( const makVrv::DtUniqueID& principalID, makVrv::DtChannel& initiatingChannel, double waitTimeAfterComplete = 0. ); 00100 virtual void slot_onEditComplete(makVrv::DtUniqueID id, const DtVector& location, double altAboveGround); 00101 00102 virtual void initializeEventProcessor(); 00103 00104 virtual bool modifyVrfObjects(); 00105 00106 virtual void slot_onPlace(makVrv::DtUniqueID, const DtVector& location, double altAboveGround); 00107 virtual void slot_onComplete(); 00108 00109 virtual void slot_onCancel(); 00110 virtual void slot_onLocationChanged( const DtVector& location, double altAboveGround ); 00111 virtual void slot_onAltitudeChanged( const DtVector& location, double altitude ); 00112 00114 virtual DtVrfObjectFacadeInterface* createLocalRepresentation(DtVrlinkSimulatedBaseStateView* editStateView = 0); 00115 virtual DtVector addControlPoint(int index = -1); 00116 00117 virtual DtVrfObjectFacadeInterface* createLocalRepresentation( 00118 DtVrlinkSimulatedBaseStateView* editStateView, makVrv::DtUniqueID sceneObjectId, DtVrlinkSimulatedBaseStateView* principalStateView); 00119 00120 virtual void moveSelectedPoint(const DtVector& location, double altAboveGround); 00121 00122 virtual bool isArea( const DtEntityType& type ) const; 00123 virtual bool isRoute( const DtEntityType& type ) const; 00124 virtual bool isObstacle( const DtEntityType& type ) const; 00125 virtual bool isPhaseline( const DtEntityType& type ) const; 00126 00127 virtual DtEnvironmentalCreationData environmentalCreationData(const std::string& name, 00128 const DtEntityType&, int force) const; 00129 00130 virtual void updateLocationOffset(const DtVector& local, DtEnvironmentalFacadeCollection* env, int pos); 00131 00133 virtual void modifyVrfObject(DtEnvironmentalFacadeCollection* objectImage); 00134 00135 protected: 00136 int myMaxVertices; 00137 int myMinVertices; 00138 00139 DtGeodeticCoord myLastPosition; 00140 00141 bool myRecentered; 00142 DtVector myRecenteredPos; 00143 }; 00144 00145 typedef DtVrfObjectManipulationHandlerCreator<DtVrfShapeManipulationHandler> 00146 DtVrfShapeManipulationHandlerCreator; 00147 }