VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfCircleManipulationHandler.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
9 #pragma once
10 
11 #include <vrfGuiCore/vrfGuiCore.h>
13 #include <vrvCore/DtUniqueID.h>
14 
15 #include <vlpi/entityType.h>
16 
17 #include <matrix/vlVector.h>
18 
19 namespace makVrf
20 {
21  class DtEnvironmentalFacadeCollection;
22 
26  {
27 
28  public:
29 
31  virtual ~DtVrfCircleManipulationHandler() override;
32 
33  virtual HandlerType type() const override { return Circle; };
34 
36  virtual void setXRadius(double, DtEnvironmentalFacadeCollection* efc = 0);
37 
39  virtual void setXRadiusWithHeading(double, double, DtEnvironmentalFacadeCollection* efc = 0);
40  virtual void setXRadiusWithHeadingAdjustingOrigin(double, double, DtEnvironmentalFacadeCollection* efc = 0);
41  virtual double xRadius(DtEnvironmentalFacadeCollection* efc = 0) const;
42 
44  virtual void setYRadius(double, DtEnvironmentalFacadeCollection* efc = 0);
45  virtual void setYRadius(double, DtEnvironmentalFacadeCollection* efc, bool isLeftOfLine);
46  virtual double yRadius(DtEnvironmentalFacadeCollection* efc = 0) const;
47 
50  virtual void setHeading(double, DtEnvironmentalFacadeCollection* efc = 0);
51  virtual double heading(DtEnvironmentalFacadeCollection* efc = 0) const;
52  virtual double headingToOrigin(DtEnvironmentalFacadeCollection* efc = 0) const;
53 
54  virtual void setLocation(int index, const DtVector& location, DtEnvironmentalFacadeCollection* efc);
55  virtual void setPosition(int index, const DtVector& location, DtEnvironmentalFacadeCollection* efc);
56 
58  virtual bool isCircle() const;
59 
61  virtual bool isSpiderWeb() const;
62 
64  virtual bool isEllipse() const;
65 
67  virtual bool isArc() const;
68 
70  virtual bool isWedge() const;
71 
73  virtual void setLocation(int index, const DtVector& location, bool resetOrigin = true) override;
74 
76  virtual void setAttachObjectToMouse(bool flag) override;
77 
78  virtual void setupImagePointsUsingImageOffset(
79  DtEnvironmentalFacadeCollection* objectImage, const std::vector<DtVector>& points) override;
80 
83  virtual void setNumberOfSpiderWebSpokes(int);
84  virtual int numberOfSpiderWebSpokes() const;
85  boost::signals2::signal<void (int)> signal_spiderWebSpokesChanged;
86 
87  virtual void setSpiderWebRingDistance(double);
88  virtual double spiderWebRingDistance() const;
89  boost::signals2::signal<void (double)> signal_spiderWebRingDistanceChanged;
91 
92  protected:
93  virtual double distanceToLine(const DtVector& localPos, DtEnvironmentalFacadeCollection* efc, int point1 = 0, int point2 = 1) const;
94  virtual bool isLeftOfLine(const DtVector& localPos, DtEnvironmentalFacadeCollection* efc, int originPos = 0) const;
95  virtual DtVector offsetPointFromStart(const DtVector& local1, const DtVector& local2, double distance) const;
96 
97  virtual void initializeEventProcessor() override;
98 
99  virtual void postCreateInitialize(DtVrfObjectFacadeInterface* iFace) override;
100 
101  virtual void slot_onEditComplete(makVrv::DtUniqueID id, const DtVector& location, double altAboveGround) override;
102 
103  virtual void slot_onHeadingChanged(double heading) override;
104 
106  virtual void slot_onPrincipalStateViewUpdated() override;
107 
109  virtual void moveSelectedPoint(const DtVector& location, double altAboveGround) override;
110 
111  virtual DtVrfObjectFacadeInterface* createLocalRepresentation(DtSimObjectReference editStateView,
112  makVrv::DtUniqueID sceneObjectId, DtSimObjectReference principalStateView) override;
113 
115  virtual void slot_onPlace(makVrv::DtUniqueID id, const DtVector& location, double altAboveGround) override;
116 
117  virtual void getMinMaxVertices(const DtEntityType& creatingType, int& minVert, int& maxVert) const override;
118 
119  virtual void setLocation(const DtVector& location, double altAboveGround) override;
120  virtual DtVector geometricCenter(const std::vector<DtVector>& v) const;
121  virtual bool alwaysRecalculateGeometry() const override;
122  virtual void handlerDisabled() override;
123  virtual void resetWedgeOriginWithLength(double radius, DtEnvironmentalFacadeCollection*, bool ilol = false);
124 
125  protected:
126  double myHeading;
127 
129  };
130 
133 }
The handler for creating and manipulating circles/ellipses.
Definition: vrfCircleManipulationHandler.h:25
class DtEnvironmentalFacadeCollection
Definition: environmentalFacadeCollection.h:76
Definition: vrfObjectManipulationHandlerBaseClass.h:55
DtVrfObjectManipulationHandlerCreator< DtVrfCircleManipulationHandler > DtVrfCircleManipulationHandlerCreator
Definition: vrfCircleManipulationHandler.h:132
Definition: vrfShapeManipulationHandler.h:29
virtual HandlerType type() const override
The type of handler. Used to see if two handler are equivalent.
Definition: vrfCircleManipulationHandler.h:33
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
boost::signals2::signal< void(double)> signal_spiderWebRingDistanceChanged
Spider web specific calls. If not a spider web will have no effect.
Definition: vrfCircleManipulationHandler.h:89
DT_DLL_VRVCORE double distance(const makVrv::DtCoordinateSystem &, const DtVector &from, const DtVector &to)
Returns the distance from the two points. Coordinates are in local database coordinates The coordinat...
Definition: vrfObjectFacadeInterface.h:53
HandlerType
The type of handler this is.
Definition: vrfObjectManipulationHandlerBaseClass.h:52
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
double mySpiderWebRingDistance
Definition: vrfCircleManipulationHandler.h:128
Contains makVrv::DtUniqueID type.
double myHeading
Definition: vrfCircleManipulationHandler.h:126
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
boost::signals2::signal< void(int)> signal_spiderWebSpokesChanged
Spider web specific calls. If not a spider web will have no effect.
Definition: vrfCircleManipulationHandler.h:85
Definition: vrfObjectManipulationHandlerBaseClass.h:840

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)