VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfShapeManipulationHandler.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #include <vrfGuiCore/vrfGuiCore.h>
15 #include <string>
17 
18 #include <matrix/vlVector.h>
19 
20 namespace makVrf
21 {
22  class DtVrfObjectManipulationEventProcessor;
23  class DtEnvironmentalCreationData;
24  class DtEnvironmentalFacadeCollection;
25 
28  {
29  public:
30 
33 
35  virtual void setPoints(const std::vector<DtVector>& pts) ;
36  virtual void setPoints(const std::vector<DtGeodeticCoord>& pts) ;
37 
38  const std::vector<DtVector>& points() const;
39  virtual bool canEmbark() const;
40 
41  public:
42 
45  virtual bool createVrfObject(DtVrfObjectFacadeInterface*);
46 
48  virtual void addControlPoint(const DtVector& location, int index = -1);
49 
51  virtual void removeControlPoint(int index);
52 
53  virtual HandlerType type() const { return Shape; };
54 
56  virtual void setLocation(int index, const DtVector& location, bool resetOrigin = true);
57 
61  virtual void setAltitudeAboveSeaLevel(int, double);
62  virtual double altitudeAboveSeaLevel(int) const;
63 
64  virtual void initializeInterfaceForEdit(DtVrfObjectFacadeInterface* iFace, makVrv::DtUniqueID sceneObjectId,
65  const makVrv::DtVrlinkSimulatedBaseState& editState, const DtVector& principalLocation, const DtTaitBryan& principalOrientation);
66 
70  virtual void setAltitudeAboveTerrain(int, double);
71  virtual double altitudeAboveTerrain(int) const;
72 
74  virtual bool canChangeDimensions() const;
75 
77  virtual double maximumLength() const;
78 
80  virtual bool shapeAtMinimum() const;
81  virtual bool canRemovePoint() const;
82  virtual bool shapeAtMinimum(DtEnvironmentStateView*);
83 
85  virtual bool canDeleteAPoint(DtEnvironmentStateView*);
86 
88  virtual bool shapeAtMaximum() const;
89  virtual bool shapeAtMaximum(DtEnvironmentStateView*);
90 
93  virtual void getMinMaxVertices(const DtEntityType& creatingType, int& minVert, int& maxVert) const;
94 
96  virtual int numVertices() const;
97 
99  virtual void setEditingPoint(int);
100  virtual int editingPoint() const;
101 
102  virtual DtGeodeticCoord geodeticPosition(int) const;
103  virtual DtVector geocentricPosition(int) const;
104 
106  virtual DtVector localLocation( int index ) const;
107 
108  virtual std::vector<DtGeodeticCoord> geodeticPositions() const;
109  virtual std::vector<DtVector> geocentricPositions() const;
110 
111  virtual void removePoint(int);
112 
114  virtual void setShapeVerticesDisabled(bool);
115  virtual bool shapeVerticesDisabled() const;
116 
118  virtual double altitudeForAltitudeType(int) const;
119 
121  virtual bool freehand() const;
122 
124  virtual bool canChangeArrowStyle() const;
125  virtual bool canChangeArrowSize() const;
126  virtual bool canFill() const;
127  virtual bool canChangePenStyle() const;
128 
131  virtual bool canChangeShapeOnly() const;
132 
135  virtual void setPointSamplingRate(int);
136  virtual int pointSamplingRate() const;
137 
139  virtual void setLineWidth(int);
140  virtual int lineWidth() const;
141 
143  virtual void setPenStyle(int);
144  virtual int penStyle() const;
145 
147  virtual void setFillStyle(int);
148  virtual int fillStyle() const;
149 
151  virtual bool fixedWidthSizing() const;
152 
153  virtual void setForce(int);
154  virtual void setColor(int);
155  virtual int color() const;
156 
157  virtual void setExtendedLabels(const std::map<int, DtString>&);
158  virtual void setLabel(const std::string&);
159  virtual std::string label() const;
160 
161  virtual void setFormattingData(const std::string&);
162  virtual std::string formattingData() const;
163 
165  virtual int arrowStyle() const;
166  virtual int arrowHeadPlacement() const;
167  virtual int arrowSize() const;
168 
170  virtual bool isArea() const;
171 
173  virtual bool isRoute() const;
174 
180  virtual void setFloor(double);
181  virtual double floor() const;
182 
183  virtual void setCeiling(double);
184  virtual double ceiling() const;
185 
187 
188  virtual bool automaticallyChangeCeiling() const;
189 
192  virtual double orientation() const;
193 
195  virtual void setOrientation(double);
196 
198  virtual double initialArrowSize(bool fixedWidthSizing, double initialSize) const;
199 
201  virtual void setAllowHeadingChanges(bool);
202 
204  virtual void setLength(double);
205 
207  virtual void cancel();
208 
210  virtual DtVector centerOfMass() const;
211 
212  virtual void updateOffsetsBasedOnMousePosition(const DtVector& centerOfMass, const DtGeodeticCoord&,
213  bool useImagePoints = false);
214 
215  virtual void editSelectedObjects( const makVrv::DtUniqueID& principalID,
216  makVrv::DtChannel& initiatingChannel, double waitTimeAfterComplete = 0.,
218 
219  virtual bool isObjectValidForCreation();
220 
221  boost::signals2::signal<void (const DtVector&, int)> signal_pointLocationChanged;
222  boost::signals2::signal<void ()> signal_pointSamplingRateChanged;
223  boost::signals2::signal<void (double)> signal_floorChanged;
224  boost::signals2::signal<void (double)> signal_ceilingChanged;
225  boost::signals2::signal<void (const std::vector<DtVector>&)> signal_locationsChanged;
226  boost::signals2::signal<void ()> signal_refreshLocation;
227 
228  protected:
229  virtual DtEnvironmentalFacadeCollection* createFacadeInterface();
230 
231  virtual void postCreateInitialize(DtVrfObjectFacadeInterface*);
232  virtual bool clampAtClosestPolygonOnPlacement() const;
233  virtual double defaultAltitudeOffsetFor(DtVrfObjectFacadeInterface* i) const;
234 
235  virtual void calculateAnchorBasedOnMousePosition(makVrv::DtChannel& channel);
236  virtual void slot_onEditComplete(makVrv::DtUniqueID id, const DtVector& location, double altAboveGround);
237 
238  virtual void initializeEventProcessor();
239  virtual DtVector geometricCenter(DtVrfObjectFacadeInterface*, const std::vector<DtVector>& v) const;
240 
241  virtual void slot_onPlace(makVrv::DtUniqueID, const DtVector& location, double altAboveGround);
242  virtual void slot_onComplete(bool stopCreating);
243  virtual void setFloorAltitude(DtEnvironmentalFacadeCollection* env, const DtVector& location, double altAboveGround);
244 
245  virtual void slot_onCancel(bool escPressed);
246  virtual void slot_onCancelOrComplete(bool escPressed);
247  virtual void slot_onLocationChanged( const DtVector& location, double altAboveGround );
248  virtual void slot_onAltitudeChanged( const DtVector& location, double altitude );
249 
251  virtual DtVrfObjectFacadeInterface* createLocalRepresentation(DtVrlinkSimulatedBaseStateView* editStateView = 0);
252  virtual DtVector addControlPoint(int index = -1);
253 
254  virtual DtVrfObjectFacadeInterface* createLocalRepresentation(
255  DtVrlinkSimulatedBaseStateView* editStateView, makVrv::DtUniqueID sceneObjectId, DtVrlinkSimulatedBaseStateView* principalStateView);
256 
257  virtual void moveSelectedPoint(const DtVector& location, double altAboveGround);
258 
259  virtual bool isArea( const DtEntityType& type ) const;
260  virtual bool isRoute( const DtEntityType& type ) const;
261  virtual bool isObstacle( const DtEntityType& type ) const;
262  virtual bool isPhaseline( const DtEntityType& type ) const;
263 
264  virtual DtEnvironmentalCreationData environmentalCreationData(const std::string& name,
265  const DtEntityType&, int force) const;
266 
267  virtual void updateLocationOffset(const DtVector& local, DtEnvironmentalFacadeCollection* env, int pos);
268 
270  virtual bool modifyVrfObject(DtVrfObjectFacadeInterface* objectImage);
271 
274  virtual DtVector setAltitudeToOrigin(const DtVector&) const;
275 
277  virtual DtVector rotatedPoint(const DtVector& origin, double x, double heading, DtEnvironmentalFacadeCollection* efc) const;
278 
281  virtual DtVector rotatePoint(const DtVector& origin, double x, double heading, DtEnvironmentalFacadeCollection* efc) const;
282 
283  virtual bool alwaysRecalculateGeometry() const;
284 
285  virtual DtVector rotatePointInternal(const DtVector& origin, double x, double heading, DtEnvironmentalFacadeCollection* efc) const;
286 
287  virtual void updateOffsetsBasedOnMousePosition();
288 
289  virtual void setupImagePointsUsingImageOffset(DtEnvironmentalFacadeCollection*, const std::vector<DtVector>&);
290 
291  protected:
294 
295  DtGeodeticCoord myLastPosition;
296 
299 
301 
303 
306  };
307 
310 }
Definition: environmentalFacadeCollection.h:66
bool myRecentered
Definition: vrfShapeManipulationHandler.h:297
DtVector myRecenteredPos
Definition: vrfShapeManipulationHandler.h:298
boost::signals2::signal< void(const DtVector &, int)> signal_pointLocationChanged
Definition: vrfShapeManipulationHandler.h:221
Definition: environmentalCreationData.h:27
boost::signals2::signal< void()> signal_pointSamplingRateChanged
Definition: vrfShapeManipulationHandler.h:222
voidpf uLong int origin
Definition: ioapi.h:42
The Master Scenario Settings Dialog.
Definition: vrfShapeManipulationHandler.h:27
bool myShapeVerticesDisabled
Definition: vrfShapeManipulationHandler.h:302
DtVrfObjectManipulationHandlerCreator< DtVrfShapeManipulationHandler > DtVrfShapeManipulationHandlerCreator
Definition: vrfShapeManipulationHandler.h:309
DtGeodeticCoord myLastPosition
Definition: vrfShapeManipulationHandler.h:295
int myMaxVertices
Definition: vrfShapeManipulationHandler.h:292
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
boost::signals2::signal< void()> signal_refreshLocation
Definition: vrfShapeManipulationHandler.h:226
The abstract Channel Class.
Definition: DtChannel.h:30
boost::signals2::signal< void(double)> signal_floorChanged
Definition: vrfShapeManipulationHandler.h:223
Definition: vrfObjectFacadeInterface.h:47
Definition: vrfObjectManipulationHandlerBaseClass.h:88
HandlerType
Definition: vrfObjectManipulationHandlerBaseClass.h:51
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
int myPointSamplingRate
Definition: vrfShapeManipulationHandler.h:300
Definition: vrfObjectManipulationHandlerBaseClass.h:58
boost::signals2::signal< void(double)> signal_ceilingChanged
Definition: vrfShapeManipulationHandler.h:224
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
Definition: vrfObjectManipulationHandlerBaseClass.h:827
int myMinVertices
Definition: vrfShapeManipulationHandler.h:293
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
virtual HandlerType type() const
The type of handler. Used to see if two handler are equivalent.
Definition: vrfShapeManipulationHandler.h:53
double myLastAltAboveGround
Definition: vrfShapeManipulationHandler.h:305
DtVector myLastMouseLocation
Definition: vrfShapeManipulationHandler.h:304

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)