VR-Forces Developer's Guide
 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 
32  {
33  public:
34 
37 
39  virtual void setPoints(const std::vector<DtVector>& pts) ;
40  virtual void setPoints(const std::vector<DtGeodeticCoord>& pts) ;
41 
42  const std::vector<DtVector>& points() const;
43  virtual bool canEmbark() const;
44 
45  public:
46 
49  virtual bool createVrfObject(DtVrfObjectFacadeInterface*);
50 
52  virtual void addControlPoint(const DtVector& location, int index = -1);
53 
55  virtual void removeControlPoint(int index);
56 
57  virtual HandlerType type() const { return Shape; };
58 
60  virtual void setLocation(int index, const DtVector& location, bool resetOrigin = true);
61 
63  virtual bool isDoubleClickSupportedForCurrentObject() const override;
64 
68  virtual void setAltitudeAboveSeaLevel(int, double);
69  virtual double altitudeAboveSeaLevel(int) const;
70 
71  virtual void initializeInterfaceForEdit(DtVrfObjectFacadeInterface* iFace, makVrv::DtUniqueID sceneObjectId,
72  const makVrv::DtVrlinkSimulatedBaseState& editState, const DtVector& principalLocation, const DtTaitBryan& principalOrientation);
73 
77  virtual void setAltitudeAboveTerrain(int, double);
78  virtual double altitudeAboveTerrain(int) const;
79 
81  virtual bool canChangeDimensions() const;
82 
84  virtual double maximumLength() const;
85 
87  virtual bool shapeAtMinimum() const;
88  virtual bool canRemovePoint() const;
89  virtual bool shapeAtMinimum(DtEnvironmentStateView*);
90 
92  virtual bool canDeleteAPoint(DtEnvironmentStateView*);
93 
95  virtual bool shapeAtMaximum() const;
96  virtual bool shapeAtMaximum(DtEnvironmentStateView*);
97 
100  virtual void getMinMaxVertices(const DtEntityType& creatingType, int& minVert, int& maxVert) const;
101  virtual void checkMinMaxKeywords(const DtEntityType& creatingType, int& minVert, int& maxVert) const;
102 
104  virtual int numVertices() const;
105 
107  virtual void setEditingPoint(int);
108  virtual int editingPoint() const;
109 
110  virtual DtGeodeticCoord geodeticPosition(int) const;
111  virtual DtVector geocentricPosition(int) const;
112 
114  virtual DtVector localLocation( int index ) const;
115 
116  virtual std::vector<DtGeodeticCoord> geodeticPositions() const;
117  virtual std::vector<DtVector> geocentricPositions() const;
118 
119  virtual void removePoint(int);
120 
122  virtual void setShapeVerticesDisabled(bool);
123  virtual bool shapeVerticesDisabled() const;
124 
126  virtual double altitudeForAltitudeType(int) const;
127 
129  virtual bool freehand() const;
130 
132  virtual bool canChangeArrowStyle() const;
133  virtual bool canChangeArrowSize() const;
134  virtual bool canFill() const;
135  virtual bool canChangePenStyle() const;
136 
139  virtual bool canChangeShapeOnly() const;
140 
143  virtual void setPointSamplingRate(int);
144  virtual int pointSamplingRate() const;
145 
147  virtual void setLineWidth(int);
148  virtual int lineWidth() const;
149 
151  virtual void setPenStyle(int);
152  virtual int penStyle() const;
153 
155  virtual void setFillStyle(int);
156  virtual int fillStyle() const;
157 
159  virtual bool fixedWidthSizing() const;
160 
161  virtual void setForce(int);
162  virtual void setColor(int);
163  virtual int color() const;
164 
165  virtual void setExtendedLabels(const std::map<int, DtString>&);
166  virtual void setLabel(const std::string&);
167  virtual std::string label() const;
168 
169  virtual void setFormattingData(const std::string&);
170  virtual std::string formattingData() const;
171 
172  virtual void setCorridorSize(double);
173  virtual double corridorSize() const;
174 
176  virtual int arrowStyle() const;
177  virtual int arrowHeadPlacement() const;
178  virtual int arrowSize() const;
179 
181  virtual bool isArea() const;
182 
184  virtual bool isRoute() const;
185 
191  virtual void setFloor(double);
192  virtual double floor() const;
193 
194  virtual void setCeiling(double);
195  virtual double ceiling() const;
196 
198 
199  virtual bool automaticallyChangeCeiling() const;
200 
203  virtual double orientation() const;
204 
206  virtual void setOrientation(double);
207 
209  virtual double initialArrowSize(bool fixedWidthSizing, double initialSize) const;
210 
212  virtual void setAllowHeadingChanges(bool);
213 
215  virtual void setLength(double);
216 
218  virtual void cancel();
219 
221  virtual DtVector centerOfMass() const;
222 
223  virtual void updateOffsetsBasedOnMousePosition(const DtVector& centerOfMass, const DtGeodeticCoord&,
224  bool useImagePoints = false);
225 
226  virtual void editSelectedObjects( const makVrv::DtUniqueID& principalID,
227  makVrv::DtChannel& initiatingChannel, double waitTimeAfterComplete = 0.,
229 
230  virtual bool isObjectValidForCreation();
231 
232  boost::signals2::signal<void (const DtVector&, int)> signal_pointLocationChanged;
233  boost::signals2::signal<void ()> signal_pointSamplingRateChanged;
234  boost::signals2::signal<void (double)> signal_floorChanged;
235  boost::signals2::signal<void (double)> signal_ceilingChanged;
236  boost::signals2::signal<void (const std::vector<DtVector>&)> signal_locationsChanged;
237  boost::signals2::signal<void ()> signal_refreshLocation;
238 
239  protected:
240  virtual DtEnvironmentalFacadeCollection* createFacadeInterface();
241 
242  virtual void postCreateInitialize(DtVrfObjectFacadeInterface*);
243  virtual bool clampAtClosestPolygonOnPlacement() const;
244  virtual double defaultAltitudeOffsetFor(DtVrfObjectFacadeInterface* i) const;
245 
246  virtual void calculateAnchorBasedOnMousePosition(makVrv::DtChannel& channel);
247  virtual void slot_onEditComplete(makVrv::DtUniqueID id, const DtVector& location, double altAboveGround);
248 
249  virtual void initializeEventProcessor();
250  virtual DtVector geometricCenter(DtVrfObjectFacadeInterface*, const std::vector<DtVector>& v) const;
251 
252  virtual void slot_onPlace(makVrv::DtUniqueID, const DtVector& location, double altAboveGround);
253  virtual void slot_onComplete(bool stopCreating);
254  virtual void setFloorAltitude(DtEnvironmentalFacadeCollection* env, const DtVector& location, double altAboveGround);
255 
256  virtual double defaultCeilingHeight() const;
257 
258  virtual void slot_onCancel(bool escPressed);
259  virtual void slot_onCancelOrComplete(bool escPressed);
260  virtual void slot_onLocationChanged( const DtVector& location, double altAboveGround );
261  virtual void slot_onAltitudeChanged( const DtVector& location, double altitude );
262 
264  virtual DtVrfObjectFacadeInterface* createLocalRepresentation(DtVrlinkSimulatedBaseStateView* editStateView = 0);
265  virtual DtVector addControlPoint(int index = -1);
266 
267  virtual DtVrfObjectFacadeInterface* createLocalRepresentation(
268  DtVrlinkSimulatedBaseStateView* editStateView, makVrv::DtUniqueID sceneObjectId, DtVrlinkSimulatedBaseStateView* principalStateView);
269 
270  virtual void moveSelectedPoint(const DtVector& location, double altAboveGround);
271 
272  virtual bool isArea( const DtEntityType& type ) const;
273  virtual bool isRoute( const DtEntityType& type ) const;
274  virtual bool isObstacle( const DtEntityType& type ) const;
275  virtual bool isPhaseline( const DtEntityType& type ) const;
276 
277  virtual DtEnvironmentalCreationData environmentalCreationData(const std::string& name,
278  const DtEntityType&, int force) const;
279 
280  virtual void updateLocationOffset(const DtVector& local, DtEnvironmentalFacadeCollection* env, int pos);
281 
283  virtual bool modifyVrfObject(DtVrfObjectFacadeInterface* objectImage);
284 
287  virtual DtVector setAltitudeToOrigin(const DtVector&) const;
288 
290  virtual DtVector rotatedPoint(const DtVector& origin, double x, double heading, DtEnvironmentalFacadeCollection* efc) const;
291 
294  virtual DtVector rotatePoint(const DtVector& origin, double x, double heading, DtEnvironmentalFacadeCollection* efc) const;
295 
296  virtual bool alwaysRecalculateGeometry() const;
297 
298  virtual DtVector rotatePointInternal(const DtVector& origin, double x, double heading, DtEnvironmentalFacadeCollection* efc) const;
299 
300  virtual void updateOffsetsBasedOnMousePosition();
301 
302  virtual void setupImagePointsUsingImageOffset(DtEnvironmentalFacadeCollection*, const std::vector<DtVector>&);
303 
304  protected:
307 
308  DtGeodeticCoord myLastPosition;
309 
312 
314 
316 
319  };
320 
323 }
class DtEnvironmentalFacadeCollection
Definition: environmentalFacadeCollection.h:77
bool myRecentered
Definition: vrfShapeManipulationHandler.h:310
DtVector myRecenteredPos
Definition: vrfShapeManipulationHandler.h:311
boost::signals2::signal< void(const DtVector &, int)> signal_pointLocationChanged
Definition: vrfShapeManipulationHandler.h:232
Definition: environmentalCreationData.h:27
boost::signals2::signal< void()> signal_pointSamplingRateChanged
Definition: vrfShapeManipulationHandler.h:233
voidpf uLong int origin
Definition: ioapi.h:42
The Master Scenario Settings Dialog.
Definition: vrfShapeManipulationHandler.h:31
bool myShapeVerticesDisabled
Definition: vrfShapeManipulationHandler.h:315
DtVrfObjectManipulationHandlerCreator< DtVrfShapeManipulationHandler > DtVrfShapeManipulationHandlerCreator
Definition: vrfShapeManipulationHandler.h:322
DtGeodeticCoord myLastPosition
Definition: vrfShapeManipulationHandler.h:308
int myMaxVertices
Definition: vrfShapeManipulationHandler.h:305
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
boost::signals2::signal< void()> signal_refreshLocation
Definition: vrfShapeManipulationHandler.h:237
The abstract Channel Class.
Definition: DtChannel.h:35
boost::signals2::signal< void(double)> signal_floorChanged
Definition: vrfShapeManipulationHandler.h:234
Definition: vrfObjectFacadeInterface.h:54
Definition: vrfObjectManipulationHandlerBaseClass.h:90
HandlerType
The type of handler this is.
Definition: vrfObjectManipulationHandlerBaseClass.h:52
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
int myPointSamplingRate
Definition: vrfShapeManipulationHandler.h:313
Definition: vrfObjectManipulationHandlerBaseClass.h:59
boost::signals2::signal< void(double)> signal_ceilingChanged
Definition: vrfShapeManipulationHandler.h:235
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:72
Definition: vrfObjectManipulationHandlerBaseClass.h:847
int myMinVertices
Definition: vrfShapeManipulationHandler.h:306
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:57
double myLastAltAboveGround
Definition: vrfShapeManipulationHandler.h:318
DtVector myLastMouseLocation
Definition: vrfShapeManipulationHandler.h:317

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)