Skip to content
Snippets Groups Projects
Commit ca6b878b authored by Fabian Paus's avatar Fabian Paus
Browse files

Merge remote-tracking branch 'origin/IMAGINERefactoring' into Ice3.7

parents 361ac7f9 a49e6763
No related branches found
No related tags found
No related merge requests found
...@@ -34,25 +34,25 @@ namespace armarx ...@@ -34,25 +34,25 @@ namespace armarx
size_t DeviceContainer::load(const MultiNodeRapidXMLReader& rootNodeConfigs, const VirtualRobot::RobotPtr& robot) size_t DeviceContainer::load(const MultiNodeRapidXMLReader& rootNodeConfigs, const VirtualRobot::RobotPtr& robot)
{ {
size_t addedDevices = 0; size_t addedDevices = 0;
auto children = robot->getRobotNodes(); // auto children = robot->getRobotNodes();
auto getSceneObject = [&](const std::string & name) // auto getSceneObject = [&](const std::string & name)
{ // {
for (auto& obj : children) // for (auto& obj : children)
{ // {
if (obj->getName() == name) // if (obj->getName() == name)
{ // {
return VirtualRobot::SceneObjectPtr(obj); // return VirtualRobot::SceneObjectPtr(obj);
} // }
} // }
for (auto& s : robot->getSensors()) // for (auto& s : robot->getSensors())
{ // {
if (s->getName() == name) // if (s->getName() == name)
{ // {
return VirtualRobot::SceneObjectPtr(s); // return VirtualRobot::SceneObjectPtr(s);
} // }
} // }
return VirtualRobot::SceneObjectPtr(); // return VirtualRobot::SceneObjectPtr();
}; // };
//rootNode = rootNodeConfig; //rootNode = rootNodeConfig;
ARMARX_DEBUG << "Device factories: " << VirtualDeviceFactory::getAvailableClasses(); ARMARX_DEBUG << "Device factories: " << VirtualDeviceFactory::getAvailableClasses();
auto defaultNode = DefaultRapidXmlReaderNode(rootNodeConfigs.nodes("DefaultConfiguration")); auto defaultNode = DefaultRapidXmlReaderNode(rootNodeConfigs.nodes("DefaultConfiguration"));
...@@ -64,9 +64,9 @@ namespace armarx ...@@ -64,9 +64,9 @@ namespace armarx
} }
auto name = node.attribute_value("name"); auto name = node.attribute_value("name");
ARMARX_DEBUG << "Handling: " << node.name() << " name: " << name; ARMARX_DEBUG << "Handling: " << node.name() << " name: " << name;
auto obj = getSceneObject(name); // auto obj = getSceneObject(name);
// ARMARX_CHECK_EXPRESSION_W_HINT(obj, name); // ARMARX_CHECK_EXPRESSION_W_HINT(obj, name);
auto tuple = std::make_tuple(node, defaultNode, obj); auto tuple = std::make_tuple(node, defaultNode, robot);
auto instance = VirtualDeviceFactory::fromName(node.name(), tuple); auto instance = VirtualDeviceFactory::fromName(node.name(), tuple);
if (!instance) if (!instance)
{ {
......
...@@ -29,12 +29,14 @@ ...@@ -29,12 +29,14 @@
#include <ArmarXCore/core/rapidxml/wrapper/RapidXmlReader.h> #include <ArmarXCore/core/rapidxml/wrapper/RapidXmlReader.h>
#include <ArmarXCore/core/system/AbstractFactoryMethod.h> #include <ArmarXCore/core/system/AbstractFactoryMethod.h>
#include <VirtualRobot/VirtualRobot.h> #include <VirtualRobot/VirtualRobot.h>
#include <VirtualRobot/Robot.h>
namespace armarx namespace armarx
{ {
using AbstractFunctionalDevicePtr = std::shared_ptr<class AbstractFunctionalDevice>; using AbstractFunctionalDevicePtr = std::shared_ptr<class AbstractFunctionalDevice>;
using VirtualDeviceFactoryArgs = std::tuple<RapidXmlReaderNode, armarx::DefaultRapidXmlReaderNode , VirtualRobot::SceneObjectPtr>; using VirtualDeviceFactoryArgs = std::tuple<RapidXmlReaderNode, armarx::DefaultRapidXmlReaderNode , VirtualRobot::RobotPtr>;
class VirtualDeviceFactory : class VirtualDeviceFactory :
public AbstractFactoryMethod<VirtualDeviceFactory, VirtualDeviceFactoryArgs, AbstractFunctionalDevicePtr> public AbstractFactoryMethod<VirtualDeviceFactory, VirtualDeviceFactoryArgs, AbstractFunctionalDevicePtr>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment