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>
16 #include <string>
17 
18 #include <matrix/vlVector.h>
19 
20 namespace makVrf
21 {
22  class DtVrfObjectManipulationEventProcessor;
23  class DtEnvironmentalCreationData;
24  class DtEnvironmentalFacadeCollection;
25 
30  {
31  public:
32 
34  virtual ~DtVrfShapeManipulationHandler() override;
35 
37  virtual void setPoints(const std::vector<DtVector>& pts) ;
38  virtual void setPoints(const std::vector<DtGeodeticCoord>& pts) ;
39 
40  const std::vector<DtVector>& points() const;
41  virtual bool canEmbark() const override;
42 
43  public:
44 
47  virtual bool createVrfObject(DtVrfObjectFacadeInterface*) override;
48 
50  virtual void addControlPoint(const DtVector& location, int index = -1);
51 
53  virtual void removeControlPoint(int index);
54 
55  virtual HandlerType type() const override { return Shape; };
56 
58  virtual void setLocation(int index, const DtVector& location, bool resetOrigin = true);
59 
61  virtual bool isDoubleClickSupportedForCurrentObject() const override;
62 
66  virtual void setAltitudeAboveSeaLevel(int, double);
67  virtual double altitudeAboveSeaLevel(int) const;
68 
69  virtual void initializeInterfaceForEdit(DtVrfObjectFacadeInterface* iFace, makVrv::DtUniqueID sceneObjectId,
70  DtSimObjectReference editState, const DtVector& principalLocation, const DtTaitBryan& principalOrientation) override;
71 
75  virtual void setAltitudeAboveTerrain(int, double);
76  virtual double altitudeAboveTerrain(int) const;
77 
79  virtual bool canChangeDimensions() const;
80 
82  virtual double maximumLength() const;
83 
85  virtual bool shapeAtMinimum() const;
86  virtual bool canRemovePoint() const;
87  virtual bool shapeAtMinimum(DtSimObjectReference);
88 
90  virtual bool canDeleteAPoint(DtSimObjectReference);
91 
93  virtual bool shapeAtMaximum() const;
94  virtual bool shapeAtMaximum(DtSimObjectReference);
95 
98  virtual void getMinMaxVertices(const DtEntityType& creatingType, int& minVert, int& maxVert) const;
99  virtual void checkMinMaxKeywords(const DtEntityType& creatingType, int& minVert, int& maxVert) const;
100 
102  virtual int numVertices() const;
103 
105  virtual void setEditingPoint(int);
106  virtual int editingPoint() const;
107 
108  virtual DtGeodeticCoord geodeticPosition(int) const;
109  virtual DtVector geocentricPosition(int) const;
110 
112  virtual DtVector localLocation( int index ) const;
113 
114  virtual std::vector<DtGeodeticCoord> geodeticPositions() const;
115  virtual std::vector<DtVector> geocentricPositions() const;
116 
117  virtual void removePoint(int);
118 
120  virtual void setShapeVerticesDisabled(bool);
121  virtual bool shapeVerticesDisabled() const;
122 
124  virtual double altitudeForAltitudeType(int) const;
125 
127  virtual bool freehand() const;
128 
130  virtual bool canChangeArrowStyle() const;
131  virtual bool canChangeArrowSize() const;
132  virtual bool canFill() const;
133  virtual bool canChangePenStyle() const;
134 
137  virtual bool canChangeShapeOnly() const;
138 
141  virtual void setPointSamplingRate(int);
142  virtual int pointSamplingRate() const;
143 
145  virtual void setLineWidth(int);
146  virtual int lineWidth() const;
147 
149  virtual void setPenStyle(int);
150  virtual int penStyle() const;
151 
153  virtual void setFillStyle(int);
154  virtual int fillStyle() const;
155 
157  virtual bool fixedWidthSizing() const;
158 
159  virtual void setForce(int) override;
160  virtual void setColor(int);
161  virtual int color() const;
162 
163  virtual void setExtendedLabels(const std::map<int, DtString>&) override;
164  virtual void setLabel(const std::string&) override;
165  virtual std::string label() const override;
166 
167  virtual void setFormattingData(const std::string&);
168  virtual std::string formattingData() const;
169 
170  virtual void setCorridorSize(double);
171  virtual double corridorSize() const;
172 
174  virtual int arrowStyle() const;
175  virtual int arrowHeadPlacement() const;
176  virtual int arrowSize() const;
177 
179  virtual bool isArea() const;
180 
182  virtual bool isRoute() const;
183 
189  virtual void setFloor(double);
190  virtual double floor() const;
191 
192  virtual void setCeiling(double);
193  virtual double ceiling() const;
194 
196 
197  virtual bool automaticallyChangeCeiling() const;
198 
201  virtual double orientation() const;
202 
204  virtual void setOrientation(double);
205 
207  virtual double initialArrowSize(bool fixedWidthSizing, double initialSize) const;
208 
210  virtual void setAllowHeadingChanges(bool);
211 
213  virtual void setLength(double);
214 
216  virtual void cancel() override;
217 
219  virtual DtVector centerOfMass() const override;
220 
221  virtual void updateOffsetsBasedOnMousePosition(const DtVector& centerOfMass, const DtGeodeticCoord&,
222  bool useImagePoints = false) override;
223 
224  virtual void editSelectedObjects( const makVrv::DtUniqueID& principalID,
225  makVrv::DtChannel& initiatingChannel, double waitTimeAfterComplete = 0.,
227 
228  virtual bool isObjectValidForCreation() override;
229 
230  boost::signals2::signal<void (const DtVector&, int)> signal_pointLocationChanged;
231  boost::signals2::signal<void ()> signal_pointSamplingRateChanged;
232  boost::signals2::signal<void (double)> signal_floorChanged;
233  boost::signals2::signal<void (double)> signal_ceilingChanged;
234  boost::signals2::signal<void (const std::vector<DtVector>&)> signal_locationsChanged;
235  boost::signals2::signal<void ()> signal_refreshLocation;
236 
237  protected:
238  virtual DtEnvironmentalFacadeCollection* createFacadeInterface();
239 
240  virtual void postCreateInitialize(DtVrfObjectFacadeInterface*) override;
241  virtual bool clampAtClosestPolygonOnPlacement() const override;
242  virtual double defaultAltitudeOffsetFor(DtVrfObjectFacadeInterface* i) const override;
243 
244  virtual void calculateAnchorBasedOnMousePosition(makVrv::DtChannel& channel) override;
245  virtual void slot_onEditComplete(makVrv::DtUniqueID id, const DtVector& location, double altAboveGround) override;
246 
247  virtual void initializeEventProcessor() override;
248  virtual DtVector geometricCenter(DtVrfObjectFacadeInterface*, const std::vector<DtVector>& v) const;
249 
250  virtual void slot_onPlace(makVrv::DtUniqueID, const DtVector& location, double altAboveGround) override;
251  virtual void slot_onComplete(bool stopCreating);
252  virtual void setFloorAltitude(DtEnvironmentalFacadeCollection* env, const DtVector& location, double altAboveGround);
253 
254  virtual double defaultCeilingHeight() const;
255 
256  virtual void slot_onCancel(bool escPressed) override;
257  virtual void slot_onCancelOrComplete(bool escPressed);
258  virtual void slot_onLocationChanged( const DtVector& location, double altAboveGround ) override;
259  virtual void slot_onAltitudeChanged( const DtVector& location, double altitude ) override;
260 
262  virtual DtVrfObjectFacadeInterface* createLocalRepresentation(DtSimObjectReference editStateView) override;
263  virtual DtVector addControlPoint(int index = -1);
264 
265  virtual DtVrfObjectFacadeInterface* createLocalRepresentation(
266  DtSimObjectReference editStateView, makVrv::DtUniqueID sceneObjectId, DtSimObjectReference principalStateView) override;
267 
268  virtual void moveSelectedPoint(const DtVector& location, double altAboveGround);
269 
270  virtual bool isArea( const DtEntityType& type ) const;
271  virtual bool isRoute( const DtEntityType& type ) const;
272  virtual bool isObstacle( const DtEntityType& type ) const;
273  virtual bool isPhaseline( const DtEntityType& type ) const;
274 
275  virtual DtEnvironmentalCreationData environmentalCreationData(const std::string& name,
276  const DtEntityType&, int force) const;
277 
278  virtual void updateLocationOffset(const DtVector& local, DtEnvironmentalFacadeCollection* env, int pos);
279 
281  virtual bool modifyVrfObject(DtVrfObjectFacadeInterface* objectImage) override;
282 
285  virtual DtVector setAltitudeToOrigin(const DtVector&) const;
286 
288  virtual DtVector rotatedPoint(const DtVector& origin, double x, double heading, DtEnvironmentalFacadeCollection* efc) const;
289 
292  virtual DtVector rotatePoint(const DtVector& origin, double x, double heading, DtEnvironmentalFacadeCollection* efc) const;
293 
294  virtual bool alwaysRecalculateGeometry() const;
295 
296  virtual DtVector rotatePointInternal(const DtVector& origin, double x, double heading, DtEnvironmentalFacadeCollection* efc) const;
297 
298  virtual void updateOffsetsBasedOnMousePosition() override;
299 
300  virtual void setupImagePointsUsingImageOffset(DtEnvironmentalFacadeCollection*, const std::vector<DtVector>&);
301 
302  protected:
305 
306  DtGeodeticCoord myLastPosition;
307 
309  DtVector myRecenteredPos;
310 
312 
314 
317  };
318 
320 }
class DtEnvironmentalFacadeCollection
Definition: environmentalFacadeCollection.h:76
bool myRecentered
Definition: vrfShapeManipulationHandler.h:308
DtVector myRecenteredPos
Definition: vrfShapeManipulationHandler.h:309
boost::signals2::signal< void(const DtVector &, int)> signal_pointLocationChanged
Definition: vrfShapeManipulationHandler.h:230
Definition: environmentalCreationData.h:27
boost::signals2::signal< void()> signal_pointSamplingRateChanged
Definition: vrfShapeManipulationHandler.h:231
voidpf uLong int origin
Definition: ioapi.h:42
Definition: vrfShapeManipulationHandler.h:29
bool myShapeVerticesDisabled
Definition: vrfShapeManipulationHandler.h:313
DtGeodeticCoord myLastPosition
Definition: vrfShapeManipulationHandler.h:306
int myMaxVertices
Definition: vrfShapeManipulationHandler.h:303
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
boost::signals2::signal< void()> signal_refreshLocation
Definition: vrfShapeManipulationHandler.h:235
The abstract Channel Class.
Definition: DtChannel.h:35
boost::signals2::signal< void(double)> signal_floorChanged
Definition: vrfShapeManipulationHandler.h:232
Definition: vrfObjectFacadeInterface.h:53
Definition: vrfObjectManipulationHandlerBaseClass.h:88
HandlerType
The type of handler this is.
Definition: vrfObjectManipulationHandlerBaseClass.h:52
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
int myPointSamplingRate
Definition: vrfShapeManipulationHandler.h:311
Definition: vrfObjectManipulationHandlerBaseClass.h:59
virtual HandlerType type() const override
The type of handler. Used to see if two handler are equivalent.
Definition: vrfShapeManipulationHandler.h:55
boost::signals2::signal< void(double)> signal_ceilingChanged
Definition: vrfShapeManipulationHandler.h:233
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:76
Definition: vrfObjectManipulationHandlerBaseClass.h:840
int myMinVertices
Definition: vrfShapeManipulationHandler.h:304
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
double myLastAltAboveGround
Definition: vrfShapeManipulationHandler.h:316
DtVector myLastMouseLocation
Definition: vrfShapeManipulationHandler.h:315

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)