Go to the documentation of this file.
17 #ifndef IGNITION_RENDERING_BASE_BASEARROWVISUAL_HH_
18 #define IGNITION_RENDERING_BASE_BASEARROWVISUAL_HH_
31 inline namespace IGNITION_RENDERING_VERSION_NAMESPACE {
45 protected:
virtual void Destroy()
override;
48 public:
virtual VisualPtr Head()
const override;
51 public:
virtual VisualPtr Shaft()
const override;
54 public:
virtual VisualPtr Rotation()
const override;
57 public:
virtual void ShowArrowHead(
bool _b)
override;
60 public:
virtual void ShowArrowShaft(
bool _b)
override;
63 public:
virtual void ShowArrowRotation(
bool _b)
override;
66 public:
virtual void SetVisible(
bool _visible)
override;
69 protected:
virtual void Init()
override;
72 protected:
bool rotationVisible =
false;
91 while (this->ChildCount() > 0u)
93 auto visual = std::dynamic_pointer_cast<Visual>(this->ChildByIndex(0));
105 return std::dynamic_pointer_cast<Visual>(this->ChildByIndex(2));
112 return std::dynamic_pointer_cast<Visual>(this->ChildByIndex(1));
119 return std::dynamic_pointer_cast<Visual>(this->ChildByIndex(0));
126 NodePtr child = this->ChildByIndex(2);
127 VisualPtr visual = std::dynamic_pointer_cast<Visual>(child);
130 visual->SetVisible(_b);
138 NodePtr child = this->ChildByIndex(1);
139 VisualPtr visual = std::dynamic_pointer_cast<Visual>(child);
142 visual->SetVisible(_b);
150 NodePtr child = this->ChildByIndex(0);
151 VisualPtr visual = std::dynamic_pointer_cast<Visual>(child);
154 visual->SetVisible(_b);
155 this->rotationVisible = _b;
163 T::SetVisible(_visible);
165 NodePtr child = this->ChildByIndex(0);
166 VisualPtr visual = std::dynamic_pointer_cast<Visual>(child);
173 visual->SetVisible(this->rotationVisible && _visible);
184 cone->AddGeometry(this->
Scene()->CreateCone());
185 cone->SetOrigin(0, 0, -0.5);
186 cone->SetLocalPosition(0, 0, 0);
187 cone->SetLocalScale(0.1, 0.1, 0.25);
188 this->AddChild(cone);
191 cylinder->AddGeometry(this->
Scene()->CreateCylinder());
192 cylinder->SetOrigin(0, 0, 0.5);
193 cylinder->SetLocalPosition(0, 0, 0);
194 cylinder->SetLocalScale(0.05, 0.05, 0.5);
195 this->AddChild(cylinder);
199 if (!meshMgr->
HasMesh(rotMeshName))
200 meshMgr->
CreateTube(rotMeshName, 0.070f, 0.075f, 0.01f, 1, 32);
203 rotationVis->AddGeometry(this->
Scene()->CreateMesh(rotMeshName));
204 rotationVis->SetOrigin(0, 0, -0.125);
205 rotationVis->SetLocalPosition(0, 0, 0);
206 rotationVis->SetVisible(this->rotationVisible);
207 this->AddChild(rotationVis);
209 this->SetOrigin(0, 0, -0.5);
bool rotationVisible
Flag to indicate whether arrow rotation is visible.
Definition: BaseArrowVisual.hh:72
BaseArrowVisual()
Constructor.
Definition: BaseArrowVisual.hh:77
bool HasMesh(const std::string &_name) const
virtual void ShowArrowHead(bool _b) override
set true to show the arrow head, false otherwise
Definition: BaseArrowVisual.hh:124
virtual VisualPtr Head() const override
Get arrow-head visual.
Definition: BaseArrowVisual.hh:103
virtual void ShowArrowRotation(bool _b) override
Set true to show the rotation of the arrow, false otherwise.
Definition: BaseArrowVisual.hh:148
virtual void Destroy() override
Destroy any resources associated with this object. Invoking any other functions after destroying an o...
Definition: BaseArrowVisual.hh:89
virtual VisualPtr CreateVisual()=0
Create new visual. A unique ID and name will automatically be assigned to the visual.
Manages a single scene-graph. This class updates scene-wide properties and holds the root scene node....
Definition: Scene.hh:49
void CreateTube(const std::string &_name, const float _innerRadius, const float _outterRadius, const float _height, const int _rings, const int _segments, const double _arc=2.0 *IGN_PI)
virtual void SetVisible(bool _visible) override
Specify if this visual is visible.
Definition: BaseArrowVisual.hh:161
virtual void ShowArrowShaft(bool _b) override
set true to show the arrow shaft, false otherwise
Definition: BaseArrowVisual.hh:136
virtual void Init() override
Definition: BaseArrowVisual.hh:179
static MeshManager * Instance()
virtual VisualPtr Rotation() const override
Get arrow-rotation visual.
Definition: BaseArrowVisual.hh:117
Definition: BaseArrowVisual.hh:34
virtual VisualPtr Shaft() const override
Get arrow-shaft visual.
Definition: BaseArrowVisual.hh:110
Represents a arrow composite visual.
Definition: ArrowVisual.hh:31
virtual ~BaseArrowVisual()
Destructor.
Definition: BaseArrowVisual.hh:83