GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: include/gepetto/viewer/config-osg.h Lines: 8 9 88.9 %
Date: 2023-03-14 11:04:37 Branches: 7 20 35.0 %

Line Branch Exec Source
1
//
2
//  config-osg.h
3
//  gepetto-viewer
4
//
5
//  Created by Justin Carpentier on 06/02/2014.
6
//  Modified by Mathieu Geisert in November 2014.
7
//  Copyright (c) 2014 LAAS-CNRS. All rights reserved.
8
//
9
10
#ifndef DynAndGraph_config_h
11
#define DynAndGraph_config_h
12
13
#include <gepetto/viewer/fwd.h>
14
#include <gepetto/viewer/macros.h>
15
16
#include <QMetaType>
17
#include <osg/AlphaFunc>
18
#include <osg/AutoTransform>
19
#include <osg/BlendFunc>
20
#include <osg/Camera>
21
#include <osg/ClearNode>
22
#include <osg/Depth>
23
#include <osg/Geode>
24
#include <osg/Geometry>
25
#include <osg/GraphicsContext>
26
#include <osg/Group>
27
#include <osg/Light>
28
#include <osg/LightSource>
29
#include <osg/LineWidth>
30
#include <osg/Material>
31
#include <osg/MatrixTransform>
32
#include <osg/Node>
33
#include <osg/PolygonMode>
34
#include <osg/PositionAttitudeTransform>
35
#include <osg/Shape>
36
#include <osg/ShapeDrawable>
37
#include <osg/State>
38
#include <osg/StateSet>
39
#include <osg/Switch>
40
#include <osg/Viewport>
41
#include <osgViewer/Viewer>
42
#include <osgViewer/ViewerBase>
43
44
namespace osg {
45
46
DEF_CLASS_SMART_PTR(Geode)
47
48
DEF_OSG_CLASS_REF_PTR(Sphere)
49
DEF_OSG_CLASS_REF_PTR(Box)
50
DEF_OSG_CLASS_REF_PTR(Cone)
51
DEF_OSG_CLASS_REF_PTR(Cylinder)
52
DEF_OSG_CLASS_REF_PTR(Capsule)
53
DEF_OSG_CLASS_REF_PTR(ShapeDrawable)
54
DEF_OSG_CLASS_REF_PTR(Geometry)
55
DEF_OSG_CLASS_REF_PTR(LineWidth)
56
57
DEF_OSG_CLASS_REF_PTR(Geode)
58
DEF_OSG_CLASS_REF_PTR(PositionAttitudeTransform)
59
DEF_OSG_CLASS_REF_PTR(AutoTransform)
60
DEF_OSG_CLASS_REF_PTR(MatrixTransform)
61
DEF_OSG_CLASS_REF_PTR(Light)
62
DEF_OSG_CLASS_REF_PTR(LightSource)
63
64
DEF_OSG_CLASS_REF_PTR(Node)
65
DEF_OSG_CLASS_REF_PTR(Group)
66
DEF_OSG_CLASS_REF_PTR(Switch)
67
DEF_OSG_CLASS_REF_PTR(ClearNode)
68
69
DEF_OSG_CLASS_REF_PTR(Depth)
70
71
DEF_OSG_CLASS_REF_PTR(AlphaFunc)
72
DEF_OSG_CLASS_REF_PTR(BlendFunc)
73
DEF_OSG_CLASS_REF_PTR(StateSet)
74
75
DEF_OSG_CLASS_REF_PTR(State)
76
DEF_OSG_CLASS_REF_PTR(StateSet)
77
78
DEF_OSG_CLASS_REF_PTR(Material)
79
80
DEF_OSG_CLASS_REF_PTR(Camera)
81
DEF_OSG_CLASS_REF_PTR(Viewport)
82
DEF_OSG_CLASS_REF_PTR(GraphicsContext)
83
84
DEF_OSG_CLASS_REF_PTR(Vec3Array)
85
DEF_OSG_CLASS_REF_PTR(Vec4Array)
86
87
DEF_OSG_CLASS_REF_PTR(PolygonMode)
88
89
typedef ::osg::ref_ptr<GraphicsContext::Traits> TraitsRefPtr;
90
91
} /* namespace osg */
92
93
namespace osgViewer {
94
DEF_OSG_CLASS_REF_PTR(Viewer)
95
96
} /* namespace osgViewer */
97
98
typedef ::osg::Vec2f osgVector2;
99
typedef ::osg::Vec3f osgVector3;
100
typedef ::osg::Vec4f osgVector4;
101
102
typedef ::osg::Quat osgQuat;
103
104
namespace gepetto {
105
namespace viewer {
106
107
enum VisibilityMode { VISIBILITY_OFF = 0, VISIBILITY_ON = 1, ALWAYS_ON_TOP };
108
109
enum LightingMode { LIGHT_INFLUENCE_OFF = 0, LIGHT_INFLUENCE_ON = 1 };
110
111
enum WireFrameMode { FILL = 0, WIREFRAME, FILL_AND_WIREFRAME };
112
113
enum FaceMode { FACE = 0, EDGE, FACE_AND_EDGE };
114
115
struct Configuration {
116
  osgVector3 position;
117
  osgQuat quat;
118
5
  Configuration() {}
119
  /// \param XYZW when false, the 4 last parameters are a quaternion (w,x,y,z)
120
  ///             otherwise, a quaternion (x,y,z,w)
121
  explicit Configuration(const float* a, bool XYZW)
122
      : position(a[0], a[1], a[2]),
123
        quat(a[(XYZW ? 3 : 4)], a[(XYZW ? 4 : 5)], a[(XYZW ? 5 : 6)],
124
             a[(XYZW ? 6 : 3)]) {}
125
4
  Configuration(const osgVector3& p, const osgQuat& q) : position(p), quat(q) {}
126
127
  bool operator==(const Configuration& other) const {
128
    return position == other.position && quat == other.quat;
129
  }
130
131
7
  bool operator!=(const Configuration& other) const {
132

7
    return position != other.position || quat != other.quat;
133
  }
134
135
  bool valid() const { return position.valid() && quat.asVec4().valid(); }
136
};
137
138
} /* namespace viewer */
139
} /* namespace gepetto */
140
141
1
Q_DECLARE_METATYPE(osgVector2)
142
1
Q_DECLARE_METATYPE(osgVector3)
143
1
Q_DECLARE_METATYPE(osgVector4)
144
1
Q_DECLARE_METATYPE(gepetto::viewer::Configuration)
145
146
#endif