GCC Code Coverage Report


Directory: ./
File: src/leaf-node-sphere.cpp
Date: 2025-04-14 11:18:00
Exec Total Coverage
Lines: 0 57 0.0%
Branches: 0 80 0.0%

Line Branch Exec Source
1 //
2 // leaf-node-sphere.cpp
3 // gepetto-viewer
4 //
5 // Created by Justin Carpentier, Mathieu Geisert in November 2014.
6 // Copyright (c) 2014 LAAS-CNRS. All rights reserved.
7 //
8
9 #include <gepetto/viewer/leaf-node-sphere.h>
10
11 namespace gepetto {
12 namespace viewer {
13
14 /* Declaration of private function members */
15
16 ✗ void LeafNodeSphere::init() {
17 /* Create sphere object */
18 ✗ sphere_ptr_ = new ::osg::Sphere();
19
20 /* Set ShapeDrawable */
21 ✗ shape_drawable_ptr_ = new ::osg::ShapeDrawable(sphere_ptr_);
22
23 /* Create Geode for adding ShapeDrawable */
24 ✗ geode_ptr_ = new osg::Geode();
25 ✗ geode_ptr_->addDrawable(shape_drawable_ptr_);
26
27 /* Create PositionAttitudeTransform */
28 ✗ this->asQueue()->addChild(geode_ptr_);
29
30 /* Allow transparency */
31 ✗ geode_ptr_->getOrCreateStateSet()->setMode(GL_BLEND,
32 ::osg::StateAttribute::ON);
33
34 RangedFloatProperty::Ptr_t radiusProp = RangedFloatProperty::create(
35 ✗ "Radius", this, &LeafNodeSphere::getRadius, &LeafNodeSphere::setRadius);
36 ✗ radiusProp->min = 0.f;
37 ✗ radiusProp->step = 0.1f;
38 ✗ radiusProp->adaptiveDecimal = true;
39 ✗ addProperty(radiusProp);
40 }
41
42 ✗ LeafNodeSphere::LeafNodeSphere(const std::string& name, const float& radius)
43 ✗ : NodeDrawable(name) {
44 ✗ init();
45 ✗ setRadius(radius);
46 ✗ setColor(osgVector4(1., 1., 1., 1.));
47 }
48
49 ✗ LeafNodeSphere::LeafNodeSphere(const std::string& name, const float& radius,
50 ✗ const osgVector4& color)
51 ✗ : NodeDrawable(name) {
52 ✗ init();
53 ✗ setRadius(radius);
54 ✗ setColor(color);
55 }
56
57 ✗ LeafNodeSphere::LeafNodeSphere(const std::string& name,
58 ✗ const LeafNodeSphere& other)
59 ✗ : NodeDrawable(other) {
60 ✗ setID(name);
61 ✗ init();
62 ✗ setRadius(other.getRadius());
63 ✗ setColor(other.getColor());
64 }
65
66 ✗ void LeafNodeSphere::initWeakPtr(LeafNodeSphereWeakPtr other_weak_ptr) {
67 ✗ weak_ptr_ = other_weak_ptr;
68 }
69
70 /* End of declaration of private function members */
71
72 /* Declaration of protected function members */
73
74 ✗ LeafNodeSpherePtr_t LeafNodeSphere::create(const std::string& name,
75 const float& radius) {
76 ✗ LeafNodeSpherePtr_t shared_ptr(new LeafNodeSphere(name, radius));
77
78 // Add reference to itself
79 ✗ shared_ptr->initWeakPtr(shared_ptr);
80
81 ✗ return shared_ptr;
82 }
83
84 ✗ LeafNodeSpherePtr_t LeafNodeSphere::create(const std::string& name,
85 const float& radius,
86 const osgVector4& color) {
87 ✗ LeafNodeSpherePtr_t shared_ptr(new LeafNodeSphere(name, radius, color));
88
89 // Add reference to itself
90 ✗ shared_ptr->initWeakPtr(shared_ptr);
91
92 ✗ return shared_ptr;
93 }
94
95 ✗ LeafNodeSpherePtr_t LeafNodeSphere::createCopy(LeafNodeSpherePtr_t other) {
96 ✗ LeafNodeSpherePtr_t shared_ptr(new LeafNodeSphere(*other));
97
98 // Add reference to itself
99 ✗ shared_ptr->initWeakPtr(shared_ptr);
100
101 ✗ return shared_ptr;
102 }
103
104 /* End of declaration of protected function members */
105
106 /* Declaration of public function members */
107
108 ✗ LeafNodeSpherePtr_t LeafNodeSphere::clone(void) const {
109 ✗ return LeafNodeSphere::createCopy(weak_ptr_.lock());
110 }
111
112 ✗ LeafNodeSpherePtr_t LeafNodeSphere::self(void) const {
113 ✗ return weak_ptr_.lock();
114 }
115
116 ✗ void LeafNodeSphere::setRadius(const float& radius) {
117 ✗ sphere_ptr_->setRadius(radius);
118 ✗ redrawShape();
119 }
120
121 ✗ LeafNodeSphere::~LeafNodeSphere() {
122 /* Proper deletion of all tree scene */
123 ✗ geode_ptr_->removeDrawable(shape_drawable_ptr_);
124 ✗ shape_drawable_ptr_ = NULL;
125
126 ✗ this->asQueue()->removeChild(geode_ptr_);
127 ✗ geode_ptr_ = NULL;
128
129 ✗ weak_ptr_.reset();
130 }
131
132 /* End of declaration of public function members */
133
134 } /* namespace viewer */
135
136 } /* namespace gepetto */
137