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

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)