26#include <Eigen/src/Core/Matrix.h>
28#include <VirtualRobot/XML/RobotIO.h>
39 localCopy_(
VirtualRobot::RobotIO::loadRobot(objectSource.path.toSystemPath()))
41 localCopy_->setName(instanceName);
47 const std::string& newName = simulator->addRobot(
getObjectSource().path.toSystemPath());
54 const PoseBasePtr& poseBase = simulator->getRobotPose(
getInstanceName());
55 Pose p(poseBase->position, poseBase->orientation);
56 localCopy_->setGlobalPose(p.
toEigen());
62 PosePtr pose(
new Pose(localCopy_->getGlobalPose()));
68 const VirtualRobot::SceneObjectSetPtr& objectSet)
70 bool collision =
false;
71 for (
const auto& colModel : localCopy_->getCollisionModels())
73 collision |= col->checkCollision(colModel, objectSet);
81 return std::make_unique<Pose>(localCopy_->getGlobalPose());
87 localCopy_->setGlobalPose(pose->toEigen());
virtual Eigen::Matrix4f toEigen() const
std::unique_ptr< Pose > getLocalPose() override
void updatePoseFromSimulator(armarx::SimulatorInterfacePrx &simulator) override
void addToSimulator(armarx::SimulatorInterfacePrx &simulator) override
bool checkCollision(const VirtualRobot::CollisionCheckerPtr &col, const VirtualRobot::SceneObjectSetPtr &objectSet) override
void setLocalPose(const armarx::PosePtr &pose) override
SimulatedObjectAsRobot(const std::string &instanceName, const ObjectSource &source)
void updatePoseToSimulator(armarx::SimulatorInterfacePrx &simulator) override
void setInstanceName(const std::string &newName)
const std::string & getInstanceName()
const ObjectSource & getObjectSource()
IceInternal::Handle< Pose > PosePtr