31#include <Eigen/Geometry>
33#include <VirtualRobot/SceneObject.h>
38#include <RobotAPI/interface/core/RobotState.h>
41#include <ArmarXSimulation/interface/simulator/SimulatorInterface.h>
43#include <Inventor/nodes/SoSeparator.h>
58 "ReportVisuTopicName",
59 "SimulatorVisuUpdates",
60 "The topic on which the visualization updates are published.");
70 virtual public SimulatorListenerInterface,
84 return "ArmarXPhysicsWorldVisualization";
97 const ::Ice::Current& = Ice::emptyCurrent)
override;
128 VirtualRobot::SceneObject::VisualizationType visuType =
129 VirtualRobot::SceneObject::Full);
137 VirtualRobot::SceneObject::VisualizationType visuType =
138 VirtualRobot::SceneObject::Full);
141 VirtualRobot::SceneObject::VisualizationType visuType =
142 VirtualRobot::SceneObject::Full);
144 VirtualRobot::SceneObject::VisualizationType visuType =
145 VirtualRobot::SceneObject::Full);
154 Eigen::Vector3f floorUp,
156 std::string floorTexture);
161 void setMutex(std::shared_ptr<std::recursive_mutex>
const& m);
190 VirtualRobot::SceneObjectPtr
getObject(
const std::string& name);
192 std::vector<VirtualRobot::RobotPtr>
getRobots()
const;
193 std::vector<VirtualRobot::SceneObjectPtr>
getObjects()
const;
203 bool loadRobot(
const std::string& robotName,
204 const std::string& robotFile,
205 const std::string& project,
208 bool loadObject(
const std::string& objectFile,
209 const std::string& project,
210 const std::string& instanceName);
214 VirtualRobot::SceneObjectPtr currentObjVisu);
231 std::shared_ptr<std::recursive_mutex>
mutex;
246 const std::string& name);
ArmarXPhysicsWorldVisualizationPropertyDefinitions(std::string prefix)
void showBaseCoord(bool enable, float scale=5.0f)
void onInitComponent() override
Pure virtual hook for the subclass.
SoSeparator * baseCoordVisu
ArmarXPhysicsWorldVisualization()
bool synchronizeSceneObjectPoses(NamePoseMap &objMap, NameValueMap &jvMap, VirtualRobot::SceneObjectPtr currentObjVisu)
void enableVisuType(bool fullModel)
bool synchronizeObjects()
void removeRobotVisualization(const std::string &name)
std::map< VirtualRobot::SceneObjectPtr, SoNode * > addedVisualizations
RecursiveLockPtr getScopedLock()
void onDisconnectComponent() override
Hook for subclass.
VirtualRobot::RobotPtr getRobot(const std::string &name)
void removeVisualization(VirtualRobot::RobotPtr r)
SoSeparator * getVisualization()
getVisu returns the visualization that is synchronized with ArmarXPhysicsWorld
VirtualRobot::SceneObjectPtr getObject(const std::string &name)
void removeVisualization(VirtualRobot::SceneObjectPtr so)
bool synchronizeVisualizationData()
Show/hide contacts.
void removeFloorVisualization()
std::vector< VirtualRobot::RobotPtr > getRobots() const
~ArmarXPhysicsWorldVisualization() override
SceneVisuData lastSceneData
RecursiveLockPtr getScopedDataLock()
std::vector< VirtualRobot::SceneObjectPtr > getObjects() const
Ice::Long getSyncTimestamp() const
getSyncTimestamp
void addFloorVisualization(Eigen::Vector3f floorPos, Eigen::Vector3f floorUp, float floorExtendMM, std::string floorTexture)
void onConnectComponent() override
Pure virtual hook for the subclass.
void removeObjectVisualization(const std::string &name)
std::shared_ptr< std::recursive_mutex > mutex
mutex to protect access to visualization models
void addVisualization(VirtualRobot::SceneObjectPtr so, VirtualRobot::SceneObject::VisualizationType visuType=VirtualRobot::SceneObject::Full)
PropertyDefinitionsPtr createPropertyDefinitions() override
bool loadObject(const ObjectVisuData &obj)
std::shared_ptr< std::unique_lock< std::recursive_mutex > > RecursiveLockPtr
std::shared_ptr< std::recursive_mutex > mutexData
mutex to process SceneData
SoSeparator * getViewableScene()
Returns the scene without floor (allows for better viewAll handling)
void setMutex(std::shared_ptr< std::recursive_mutex > const &m)
void reportSceneUpdated(const ::armarx::SceneVisuData &actualData, const ::Ice::Current &=Ice::emptyCurrent) override
void onExitComponent() override
Hook for subclass.
SceneVisuData currentSceneData
bool loadRobot(const std::string &robotName, const std::string &robotFile, const std::string &project, float scaling, bool colModel)
SoSeparator * dynamicsVisu
bool createPrimitiveObject(ObjectVisuPrimitivePtr objectPrimitiveData, const std::string &name)
std::string getDefaultName() const override
Retrieve default name of component.
std::map< VirtualRobot::RobotPtr, SoNode * > addedRobotVisualizations
SoNode * buildVisu(VirtualRobot::SceneObjectPtr o, VirtualRobot::SceneObject::VisualizationType visuType=VirtualRobot::SceneObject::Full)
buildVisu Creates visualization with increased ref counter.
SoSeparator * sceneViewableSep
VirtualRobot::SceneObject::VisualizationType modelType
ComponentPropertyDefinitions(std::string prefix, bool hasObjectNameParameter=true)
Component()
Protected default constructor. Used for virtual inheritance. Use createManagedIceObject() instead.
std::string getConfigIdentifier()
Retrieve config identifier for this component as set in constructor.
std::string prefix
Prefix of the properties such as namespace, domain, component name, etc.
PropertyDefinition< PropertyType > & defineOptionalProperty(const std::string &name, PropertyType defaultValue, const std::string &description="", PropertyDefinitionBase::PropertyConstness constness=PropertyDefinitionBase::eConstant)
std::shared_ptr< class Robot > RobotPtr
This file offers overloads of toIce() and fromIce() functions for STL container types.
IceInternal::Handle< ArmarXPhysicsWorldVisualization > ArmarXPhysicsWorldVisualizationPtr
IceUtil::Handle< class PropertyDefinitionContainer > PropertyDefinitionsPtr
PropertyDefinitions smart pointer type.