17 #ifndef GEPETTO_VIEWER_WINDOWMANAGERS_HH 18 #define GEPETTO_VIEWER_WINDOWMANAGERS_HH 24 #include <OpenThreads/Mutex> 25 #include <OpenThreads/ScopedLock> 58 typedef std::map<WindowID, WindowManagerPtr_t> WindowManagerMap_t;
59 WindowManagerMap_t windowManagers_;
60 std::map<std::string, NodePtr_t>
nodes_;
61 std::map<std::string, GroupNodePtr_t> groupNodes_;
62 std::map<std::string, RoadmapViewerPtr_t> roadmapNodes_;
66 static osgVector4 getColor(
const std::string& colorName);
67 static std::string parentName(
const std::string& name);
68 static VisibilityMode getVisibility(
const std::string& visibilityName);
70 static LightingMode getLight(
const std::string& lightName);
74 bool loadUDRF(
const std::string& urdfName,
const std::string& urdfPath,
75 bool visual,
bool linkFrame);
88 void refreshConfigs(
const NodeConfigurations_t& configs);
90 template <
typename Iterator,
typename NodeContainer_t>
91 std::size_t getNodes(
const Iterator& begin,
const Iterator& end,
92 NodeContainer_t& nodes);
96 void addNode(
const std::string& nodeName,
NodePtr_t node,
97 bool guessParent =
false);
98 virtual void addNode(
const std::string& nodeName,
NodePtr_t node,
101 bool guessParent =
false);
102 virtual void addGroup(
const std::string& groupName,
GroupNodePtr_t group,
110 virtual std::vector<std::string> getNodeList();
111 virtual std::vector<std::string> getGroupNodeList(
const std::string& group);
112 virtual std::vector<std::string> getSceneList();
113 virtual std::vector<std::string> getWindowList();
118 virtual WindowID getWindowID(
const std::string& windowName);
120 virtual void createScene(
const std::string& sceneName);
121 virtual void createSceneWithFloor(
const std::string& sceneName);
122 virtual bool addSceneToWindow(
const std::string& sceneName,
123 const WindowID windowId);
125 virtual bool attachCameraToNode(
const std::string& nodeName,
126 const WindowID windowId);
127 virtual bool detachCamera(
const WindowID windowId);
129 virtual bool nodeExists(
const std::string& name);
131 virtual bool addFloor(
const std::string& floorName);
138 virtual bool addBox(
const std::string& boxName,
const float& boxSize1,
139 const float& boxSize2,
const float& boxSize3,
140 const Color_t& color);
142 virtual bool addCapsule(
const std::string& capsuleName,
float radius,
143 float height,
const Color_t& color);
145 virtual bool addArrow(
const std::string& arrowName,
const float radius,
146 const float length,
const Color_t& color);
148 virtual bool addRod(
const std::string& rodName,
const Color_t& color,
149 const float radius,
const float length,
short maxCapsule);
151 virtual bool resizeCapsule(
const std::string& capsuleName,
float newHeight);
152 virtual bool resizeArrow(
const std::string& arrowName,
float newRadius,
155 virtual bool addMesh(
const std::string& meshName,
156 const std::string& meshPath);
158 virtual void removeLightSources(
const std::string& meshName);
160 virtual bool addCone(
const std::string& coneName,
float radius,
float height,
161 const Color_t& color);
163 virtual bool addCylinder(
const std::string& cylinderName,
float radius,
164 float height,
const Color_t& color);
166 virtual bool addSphere(
const std::string& sphereName,
float radius,
167 const Color_t& color);
169 virtual bool addLight(
const std::string& lightName,
const WindowID wid,
170 float radius,
const Color_t& color);
172 virtual bool addLine(
const std::string& lineName,
const osgVector3& pos1,
173 const osgVector3& pos2,
const Color_t& color);
174 virtual bool setLineStartPoint(
const std::string& lineName,
176 virtual bool setLineEndPoint(
const std::string& lineName,
178 virtual bool setLineExtremalPoints(
const std::string& lineName,
182 virtual bool addCurve(
const std::string& curveName,
const Vec3ArrayPtr_t& pos,
183 const Color_t& color);
185 virtual bool setCurvePoints(
const std::string& curveName,
186 const Vec3ArrayPtr_t& pos);
187 virtual bool setCurveColors(
const std::string& curveName,
188 const Vec4ArrayPtr_t& colors);
191 virtual bool setCurveMode(
const std::string& curveName,
const GLenum mode);
192 virtual bool setCurvePointsSubset(
const std::string& curveName,
193 const int first,
const std::size_t count);
194 virtual bool setCurveLineWidth(
const std::string& curveName,
197 virtual bool addSquareFace(
const std::string& faceName,
200 const Color_t& color);
201 virtual bool setTexture(
const std::string& nodeName,
202 const std::string& filename);
203 virtual bool addTriangleFace(
const std::string& faceName,
205 const osgVector3& pos3,
const Color_t& color);
206 virtual bool addXYZaxis(
const std::string& nodeName,
const Color_t& color,
207 float radius,
float sizeAxis);
209 virtual bool createRoadmap(
const std::string& name,
const Color_t& colorNode,
210 float radius,
float sizeAxis,
211 const Color_t& colorEdge);
213 virtual bool addEdgeToRoadmap(
const std::string& nameRoadmap,
217 virtual bool addNodeToRoadmap(
const std::string& nameRoadmap,
220 virtual bool addURDF(
const std::string& urdfName,
221 const std::string& urdfPath);
223 virtual bool addURDF(
const std::string& urdfName,
const std::string& urdfPath,
224 const std::string& urdfPackagePath);
226 virtual bool addUrdfCollision(
const std::string& urdfName,
227 const std::string& urdfPath);
229 virtual bool addUrdfCollision(
const std::string& urdfName,
230 const std::string& urdfPath,
231 const std::string& urdfPackagePath);
233 virtual void addUrdfObjects(
const std::string& urdfName,
234 const std::string& urdfPath,
bool visual);
236 virtual void addUrdfObjects(
const std::string& urdfName,
237 const std::string& urdfPath,
238 const std::string& urdfPackagePath,
bool visual);
240 virtual bool createGroup(
const std::string& groupName);
241 virtual bool addToGroup(
const std::string& nodeName,
242 const std::string& groupName);
243 virtual bool removeFromGroup(
const std::string& nodeName,
244 const std::string& groupName);
245 virtual bool deleteNode(
const std::string& nodeName,
bool all);
247 virtual bool removeObjectFromCache(
const std::string& nodeName);
248 virtual bool applyConfiguration(
const std::string& nodeName,
250 virtual bool applyConfigurations(
251 const std::vector<std::string>& nodeName,
252 const std::vector<Configuration>& configuration);
254 virtual bool addLandmark(
const std::string& nodeName,
float size);
255 virtual bool deleteLandmark(
const std::string& nodeName);
257 virtual Configuration getStaticTransform(
const std::string& nodeName)
const;
258 virtual bool setStaticTransform(
const std::string& nodeName,
261 virtual bool setVisibility(
const std::string& nodeName,
262 const std::string& visibilityMode);
263 virtual bool setScale(
const std::string& nodeName,
const osgVector3& scale);
264 virtual bool setScale(
const std::string& nodeName,
const float& scale);
265 virtual bool setScale(
const std::string& nodeName,
266 const int& scalePercentage);
267 virtual bool setColor(
const std::string& nodeName,
const Color_t& color);
268 virtual bool setWireFrameMode(
const std::string& nodeName,
269 const std::string& wireFrameMode);
270 virtual bool setLightingMode(
const std::string& nodeName,
271 const std::string& lightingMode);
272 virtual bool setHighlight(
const std::string& nodeName,
int state);
273 virtual bool setAlpha(
const std::string& nodeName,
const float& alpha);
274 virtual bool setAlpha(
const std::string& nodeName,
275 const int& alphaPercentage);
277 virtual bool setCaptureTransform(
const std::string& filename,
278 const std::vector<std::string>& nodename);
279 virtual void captureTransformOnRefresh(
bool autoCapture);
280 virtual void captureTransform();
281 virtual bool writeBlenderScript(
const std::string& filename,
282 const std::vector<std::string>& nodename);
283 virtual bool writeNodeFile(
const std::string& nodename,
284 const std::string& filename);
285 virtual bool writeWindowFile(
const WindowID windowId,
286 const std::string& filename);
287 virtual bool setBackgroundColor1(
const WindowID windowId,
288 const Color_t& color);
289 virtual bool setBackgroundColor2(
const WindowID windowId,
290 const Color_t& color);
291 virtual Configuration getCameraTransform(
const WindowID windowId);
292 virtual bool setCameraTransform(
const WindowID windowId,
294 virtual bool setCameraToBestFit(
const WindowID windowId);
296 virtual std::vector<std::string> getPropertyNames(
297 const std::string& nodeName)
const;
298 virtual std::vector<std::string> getPropertyTypes(
299 const std::string& nodeName)
const;
301 template <
typename Property_t>
302 Property_t getProperty(
const std::string& nodeName,
303 const std::string& propName)
const;
304 template <
typename Property_t>
305 void setProperty(
const std::string& nodeName,
const std::string& propName,
306 const Property_t& value);
308 virtual std::string getStringProperty(
const std::string& nodeName,
309 const std::string& propName)
const;
310 virtual void setStringProperty(
const std::string& nodeName,
311 const std::string& propName,
312 const std::string& value);
313 virtual osgVector2 getVector2Property(
const std::string& nodeName,
314 const std::string& propName)
const;
315 virtual void setVector2Property(
const std::string& nodeName,
316 const std::string& propName,
318 virtual osgVector3 getVector3Property(
const std::string& nodeName,
319 const std::string& propName)
const;
320 virtual void setVector3Property(
const std::string& nodeName,
321 const std::string& propName,
323 virtual osgVector4 getColorProperty(
const std::string& nodeName,
324 const std::string& propName)
const;
325 virtual void setColorProperty(
const std::string& nodeName,
326 const std::string& propName,
328 virtual float getFloatProperty(
const std::string& nodeName,
329 const std::string& propName)
const;
330 virtual void setFloatProperty(
const std::string& nodeName,
331 const std::string& propName,
333 virtual bool getBoolProperty(
const std::string& nodeName,
334 const std::string& propName)
const;
335 virtual void setBoolProperty(
const std::string& nodeName,
336 const std::string& propName,
const bool& value);
337 virtual int getIntProperty(
const std::string& nodeName,
338 const std::string& propName)
const;
339 virtual void setIntProperty(
const std::string& nodeName,
340 const std::string& propName,
const int& value);
341 virtual void callVoidProperty(
const std::string& nodeName,
342 const std::string& propName);
345 bool throwIfDoesntExist =
false)
const;
347 bool throwIfDoesntExist =
false)
const;
348 NodePtr_t getNode(
const std::string& nodeName,
349 bool throwIfDoesntExist =
false)
const;
350 Configuration getNodeGlobalTransform(
const std::string nodeName)
const;
std::vector< NodeConfiguration > NodeConfigurations_t
Definition: windows-manager.h:84
viewer::WindowManagerPtr_t WindowManagerPtr_t
Definition: osgwidget.hh:40
NodePtr_t node
Definition: windows-manager.h:36
::osg::Vec3f osgVector3
Definition: config-osg.h:99
Mutex configListMtx_
Definition: windows-manager.h:85
::osg::Vec2f osgVector2
Definition: config-osg.h:98
::osg::Vec4f osgVector4
Definition: config-osg.h:100
VisibilityMode
Definition: config-osg.h:107
osg::Vec3f::value_type value_type
Definition: windows-manager.h:51
::osg::Vec4ArrayRefPtr Vec4ArrayPtr_t
Definition: windows-manager.h:54
Mutex & osgFrameMutex()
Return the mutex to be locked before modifying the scene.
Definition: windows-manager.h:116
Definition: windows-manager.h:35
OpenThreads::ScopedLock< Mutex > ScopedLock
Definition: windows-manager.h:31
std::string WindowID
Definition: windows-manager.h:55
viewer::NodePtr_t NodePtr_t
Definition: fwd.hh:50
Definition: action-search-bar.hh:27
osg::ref_ptr< TransformWriterVisitor > writer_visitor_
Definition: windows-manager.h:41
viewer::GroupNodePtr_t GroupNodePtr_t
Definition: fwd.hh:53
Nodes_t nodes_
Definition: windows-manager.h:42
Manage a set of windows that may share 3D objects.
Definition: windows-manager.h:48
::osg::Vec3ArrayRefPtr Vec3ArrayPtr_t
Definition: windows-manager.h:53
LightingMode
Definition: config-osg.h:109
Definition: config-osg.h:115
osgVector4 Color_t
Definition: windows-manager.h:52
bool autoCaptureTransform_
Definition: windows-manager.h:87
OpenThreads::Mutex Mutex
Definition: windows-manager.h:30
std::vector< NodePtr_t > Nodes_t
Definition: windows-manager.h:40
#define DEF_CLASS_SMART_PTR(className)
Definition: macros.h:51
Definition: windows-manager.h:39
NodeConfigurations_t newNodeConfigurations_
Definition: windows-manager.h:86
WireFrameMode
Definition: config-osg.h:111
viewer::shared_ptr< WindowsManager > WindowsManagerPtr_t
Definition: fwd.hh:58
virtual ~WindowsManager()
Definition: windows-manager.h:108