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 |