diff --git a/idl/gepetto/viewer/graphical-interface.idl b/idl/gepetto/viewer/graphical-interface.idl index 70b406217a097b22a2119e12f1d0881e09594405..318f4a4ad828e70ede68f87426171a1a57467f5b 100644 --- a/idl/gepetto/viewer/graphical-interface.idl +++ b/idl/gepetto/viewer/graphical-interface.idl @@ -89,6 +89,10 @@ typedef sequence<Position> PositionSeq; /// \param input windowId : ID of the window boolean detachCamera(in unsigned long windowId) raises (Error); + /// Check if nodeName is an existing node. + /// \param nodeName name of the node + boolean nodeExists(in string nodeName) raises (Error); + /// create a floor called floorName. /// \param input floorName : name of the floor. boolean addFloor(in string floorName) raises (Error); diff --git a/include/gepetto/viewer/corba/windows-manager.hh b/include/gepetto/viewer/corba/windows-manager.hh index 84e6aba379db9638d8358f1cf6fa8e4ec6c0973c..1d1fa77ee23d8ff90f4292bc5ac849e908e72ee0 100644 --- a/include/gepetto/viewer/corba/windows-manager.hh +++ b/include/gepetto/viewer/corba/windows-manager.hh @@ -113,7 +113,6 @@ namespace graphics { WindowsManager (); WindowID addWindow (std::string winName, WindowManagerPtr_t newWindow); - bool nodeExists (const std::string& name); template <typename NodeContainer_t> std::size_t getNodes (const gepetto::corbaserver::Names_t& name, NodeContainer_t& nodes); @@ -149,6 +148,8 @@ namespace graphics { virtual bool attachCameraToNode(const char* nodeNameCorba, const WindowID windowId); virtual bool detachCamera(const WindowID windowId); + virtual bool nodeExists (const std::string& name); + virtual bool addFloor(const char* floorNameCorba); virtual bool addBox(const char* boxName, float boxSize1, float boxSize2, float boxSize3, const value_type* color); diff --git a/src/graphical-interface.impl.cpp b/src/graphical-interface.impl.cpp index 5d894cae2472196a7d8faa1e4e80b656eca0e9af..f6a1a977a6f4ce3c32dfe73cd21e7c2505a45b3c 100644 --- a/src/graphical-interface.impl.cpp +++ b/src/graphical-interface.impl.cpp @@ -113,6 +113,15 @@ namespace graphics { } } + bool GraphicalInterface::nodeExists(const char* nodeName) + { + try { + return windowsManager_->nodeExists(nodeName); + } catch (const std::exception& exc) { + throw Error(exc.what()); + } + } + bool GraphicalInterface::addFloor (const char* floorNameCorba) throw (Error) { diff --git a/src/graphical-interface.impl.hh b/src/graphical-interface.impl.hh index 8aaca515e8850a0e68ece10e60e2ca6867852b68..9f9462306cf0fed9ab66c02285c9d57df8c90688 100644 --- a/src/graphical-interface.impl.hh +++ b/src/graphical-interface.impl.hh @@ -62,6 +62,8 @@ public: virtual bool attachCameraToNode(const char* nodeName, const WindowID windowId); virtual bool detachCamera(const WindowID windowId); + virtual bool nodeExists(const char* nodeName); + virtual bool addFloor(const char* floorName) throw (Error); virtual bool addBox(const char* boxName, float boxSize1, float boxSize2, float boxSize3, const value_type* color) throw (Error);