GCC Code Coverage Report


Directory: ./
File: src/roadmap-viewer.cpp
Date: 2025-04-14 11:18:00
Exec Total Coverage
Lines: 0 93 0.0%
Branches: 0 142 0.0%

Line Branch Exec Source
1 //
2 // roadmap-viewer.cpp
3 // gepetto-viewer
4 //
5 // Created by Pierre Fernbach in april 2015.
6 // Copyright (c) 2015 LAAS-CNRS. All rights reserved.
7 //
8
9 #include <gepetto/viewer/leaf-node-sphere.h>
10 #include <gepetto/viewer/roadmap-viewer.h>
11
12 #include <sstream>
13
14 namespace gepetto {
15 namespace viewer {
16 /* Declaration of private function members */
17
18 ✗ RoadmapViewer::RoadmapViewer(const std::string& name,
19 const osgVector4& colorNode, float radiusSphere,
20 ✗ float sizeAxis, const osgVector4& colorEdge)
21 ✗ : Node(name), list_nodes_(), list_edges_() {
22 ✗ colorNode_ = osgVector4(colorNode);
23 ✗ colorEdge_ = osgVector4(colorEdge);
24 ✗ radiusSphere_ = radiusSphere;
25 ✗ sizeAxis_ = sizeAxis;
26 }
27
28 ✗ RoadmapViewer::RoadmapViewer(const RoadmapViewer& other)
29 ✗ : Node(other), list_nodes_(), list_edges_() {
30 size_t i;
31 ✗ for (i = 0; i < other.getNumOfNodes(); i++) {
32 ✗ LeafNodeXYZAxisPtr_t node = LeafNodeXYZAxis::createCopy(other.getNode(i));
33 ✗ list_nodes_.push_back(node);
34 }
35 ✗ for (i = 0; i < other.getNumOfEdges(); i++) {
36 ✗ LeafNodeLinePtr_t edge = LeafNodeLine::createCopy(other.getEdge(i));
37 ✗ list_edges_.push_back(edge);
38 }
39 ✗ colorNode_ = other.getColorNode();
40 ✗ colorEdge_ = other.getColorEdge();
41 ✗ sizeAxis_ = other.getSizeAxis();
42 ✗ radiusSphere_ = other.getRadiusSphere();
43 }
44
45 ✗ void RoadmapViewer::initWeakPtr(RoadmapViewerWeakPtr other_weak_ptr) {
46 ✗ weak_ptr_ = other_weak_ptr;
47 }
48
49 /* End of declaration of private function members */
50
51 /* Declaration of public function members */
52 ✗ RoadmapViewerPtr_t RoadmapViewer::create(const std::string& name,
53 const osgVector4& colorNode,
54 float radiusSphere, float sizeAxis,
55 const osgVector4& colorEdge) {
56 RoadmapViewerPtr_t shared_ptr(
57 ✗ new RoadmapViewer(name, colorNode, radiusSphere, sizeAxis, colorEdge));
58
59 // Add reference to itself
60 ✗ shared_ptr->initWeakPtr(shared_ptr);
61
62 ✗ return shared_ptr;
63 }
64
65 ✗ RoadmapViewerPtr_t RoadmapViewer::createCopy(RoadmapViewerPtr_t other) {
66 ✗ RoadmapViewerPtr_t shared_ptr(new RoadmapViewer(*other));
67
68 // Add reference to itself
69 ✗ shared_ptr->initWeakPtr(shared_ptr);
70
71 ✗ return shared_ptr;
72 }
73
74 ✗ RoadmapViewerPtr_t RoadmapViewer::clone(void) const {
75 ✗ return RoadmapViewer::createCopy(weak_ptr_.lock());
76 }
77
78 ✗ RoadmapViewerPtr_t RoadmapViewer::self(void) const { return weak_ptr_.lock(); }
79
80 // -------------------------------------------
81
82 ✗ bool RoadmapViewer::addNode(osgVector3 position, osgQuat quat,
83 OpenThreads::Mutex& mtx) {
84 ✗ std::stringstream msg;
85 ✗ msg << getID() << "_node" << list_nodes_.size();
86
87 LeafNodeXYZAxisPtr_t node =
88 ✗ LeafNodeXYZAxis::create(msg.str(), colorNode_, radiusSphere_, sizeAxis_);
89 ✗ list_nodes_.push_back(node);
90
91 ✗ mtx.lock(); // need mutex (from windowsManager) : if we add graphical object
92 // during the call of osg::frame() we have a gepetto-viewer seg
93 // fault
94 ✗ node->applyConfiguration(position, quat);
95 ✗ this->asQueue()->addChild(node->asGroup());
96 ;
97 ✗ mtx.unlock();
98
99 ✗ return true;
100 }
101
102 ✗ bool RoadmapViewer::addEdge(osgVector3 from, osgVector3 to,
103 OpenThreads::Mutex& mtx) {
104 ✗ std::stringstream msg;
105 ✗ msg << getID() << "_Edge" << list_edges_.size();
106 LeafNodeLinePtr_t edge =
107 ✗ LeafNodeLine::create(msg.str(), from, to, colorEdge_);
108 ✗ list_edges_.push_back(edge);
109
110 ✗ mtx.lock();
111 ✗ this->asQueue()->addChild(edge->asGroup());
112 ✗ mtx.unlock();
113 ✗ return true;
114 }
115
116 ✗ void RoadmapViewer::removeAllChildren() {
117 ✗ list_nodes_.clear();
118 ✗ list_edges_.clear();
119 ✗ this->asQueue()->removeChild(0, this->asQueue()->getNumChildren());
120 }
121
122 ✗ void RoadmapViewer::setVisibilityMode(const VisibilityMode& visibility_state) {
123 ✗ Node::setVisibilityMode(visibility_state);
124 ✗ std::list<LeafNodeXYZAxisPtr_t>::iterator iter_list_of_nodes;
125 ✗ for (iter_list_of_nodes = list_nodes_.begin();
126 ✗ iter_list_of_nodes != list_nodes_.end(); iter_list_of_nodes++) {
127 ✗ (*iter_list_of_nodes)->setVisibilityMode(visibility_state);
128 }
129 ✗ std::list<LeafNodeLinePtr_t>::iterator iter_list_of_edges;
130 ✗ for (iter_list_of_edges = list_edges_.begin();
131 ✗ iter_list_of_edges != list_edges_.end(); iter_list_of_edges++) {
132 ✗ (*iter_list_of_edges)->setVisibilityMode(visibility_state);
133 }
134 }
135
136 ✗ void RoadmapViewer::setLightingMode(const LightingMode& lighting_state) {
137 ✗ Node::setLightingMode(lighting_state);
138 ✗ std::list<LeafNodeXYZAxisPtr_t>::iterator iter_list_of_nodes;
139 ✗ for (iter_list_of_nodes = list_nodes_.begin();
140 ✗ iter_list_of_nodes != list_nodes_.end(); iter_list_of_nodes++) {
141 ✗ (*iter_list_of_nodes)->setLightingMode(lighting_state);
142 }
143 ✗ std::list<LeafNodeLinePtr_t>::iterator iter_list_of_edges;
144 ✗ for (iter_list_of_edges = list_edges_.begin();
145 ✗ iter_list_of_edges != list_edges_.end(); iter_list_of_edges++) {
146 ✗ (*iter_list_of_edges)->setLightingMode(lighting_state);
147 }
148 }
149
150 ✗ void RoadmapViewer::setWireFrameMode(const WireFrameMode& wireframe_state) {
151 ✗ Node::setWireFrameMode(wireframe_state);
152
153 ✗ std::list<LeafNodeXYZAxisPtr_t>::iterator iter_list_of_nodes;
154 ✗ for (iter_list_of_nodes = list_nodes_.begin();
155 ✗ iter_list_of_nodes != list_nodes_.end(); iter_list_of_nodes++) {
156 ✗ (*iter_list_of_nodes)->setWireFrameMode(wireframe_state);
157 }
158 ✗ std::list<LeafNodeLinePtr_t>::iterator iter_list_of_edges;
159 ✗ for (iter_list_of_edges = list_edges_.begin();
160 ✗ iter_list_of_edges != list_edges_.end(); iter_list_of_edges++) {
161 ✗ (*iter_list_of_edges)->setWireFrameMode(wireframe_state);
162 }
163 }
164
165 ✗ void RoadmapViewer::setColorNode(const osgVector4& color) {
166 ✗ std::list<LeafNodeXYZAxisPtr_t>::iterator it;
167 ✗ for (it = list_nodes_.begin(); it != list_nodes_.end(); ++it) {
168 ✗ (*it)->setColor(color);
169 }
170 }
171
172 ✗ void RoadmapViewer::setColorEdge(const osgVector4& color) {
173 ✗ std::list<LeafNodeLinePtr_t>::iterator it;
174 ✗ for (it = list_edges_.begin(); it != list_edges_.end(); ++it) {
175 ✗ (*it)->setColor(color);
176 }
177 }
178
179 /* End of declaration of public function members */
180
181 } /* namespace viewer */
182
183 } // namespace gepetto
184