GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: include/gepetto/viewer/leaf-node-light.h Lines: 0 2 0.0 %
Date: 2020-05-14 11:23:33 Branches: 0 2 0.0 %

Line Branch Exec Source
1
//
2
//  leaf-node-light.h
3
//  gepetto-viewer
4
//
5
//  Created by Joseph Mirabel in July 2015.
6
//  Copyright (c) 2015 LAAS-CNRS. All rights reserved.
7
//
8
9
#ifndef GEPETTO_VIEWER_LEAFNODELIGHT_HH
10
#define GEPETTO_VIEWER_LEAFNODELIGHT_HH
11
12
#include <gepetto/viewer/leaf-node-sphere.h>
13
#include <gepetto/viewer/group-node.h>
14
15
namespace gepetto {
16
namespace viewer {
17
    DEF_CLASS_SMART_PTR(LeafNodeLight)
18
19
    /** Implementation of the Light GraphicalObject in OSG render */
20
    class LeafNodeLight : public LeafNodeSphere
21
    {
22
    private:
23
        /** Associated weak pointer */
24
        LeafNodeLightWeakPtr weak_ptr_;
25
26
        /** Associated Light Shape */
27
        ::osg::LightSourceRefPtr light_ptr_;
28
29
        void init();
30
31
        /* Default constructor */
32
        LeafNodeLight(const std::string& name, const float& radius);
33
        LeafNodeLight(const std::string& name, const float& radius, const osgVector4& color);
34
35
        /* Copy constructor */
36
        LeafNodeLight(const std::string& name, const LeafNodeLight& other);
37
38
        /** Initialize weak_ptr */
39
        void initWeakPtr (LeafNodeLightWeakPtr other_weak_ptr);
40
41
        static int uniqueLightNumber;
42
43
    protected:
44
    public:
45
        /** Static method which create a new box defined by the half_axis vector
46
         */
47
        static LeafNodeLightPtr_t create(const std::string& name, const float &radius);
48
        static LeafNodeLightPtr_t create(const std::string& name, const float &radius, const osgVector4& color);
49
50
        /** Static method for creating a clone of light other with the copy constructor
51
         */
52
        static LeafNodeLightPtr_t createCopy(LeafNodeLightPtr_t other);
53
54
        /** Proceed to a clonage of the current object defined by the copy constructor
55
         */
56
        LeafNodeLightPtr_t clone(void) const;
57
58
        /** Copy
59
         \brief Proceed to a copy of the currend object as clone
60
         */
61
        LeafNodeLightPtr_t copy() const { return clone(); }
62
63
        /** Return a shared pointer of the current object
64
         */
65
        LeafNodeLightPtr_t self(void) const;
66
67
        /** Replace the old color pointer with the new one defined by ColorConstSharedPtr color_ptr */
68
        virtual void setColor (const osgVector4& color);
69
70
        void setRoot (GroupNodePtr_t root);
71
72
        SCENE_VIEWER_ACCEPT_VISITOR;
73
74
        /** Destructor */
75
        virtual ~LeafNodeLight();
76
77
    };
78
} /* namespace viewer */
79
} /* namespace gepetto */
80
81
#endif /* GEPETTO_VIEWER_LEAFNODELIGHT_HH */