Skip to content
Snippets Groups Projects
Commit f3a48e93 authored by Christoph Pohl's avatar Christoph Pohl
Browse files

Added FrameTrackingComponentPlugin

parent 41a621ae
No related branches found
No related tags found
No related merge requests found
......@@ -22,6 +22,7 @@ set(LIB_FILES
CartesianPositionControlComponentPlugin.cpp
NaturalIKComponentPlugin.cpp
HandUnitComponentPlugin.cpp
FrameTrackingComponentPlugin.cpp
)
set(LIB_HEADERS
RobotStateComponentPlugin.h
......@@ -36,6 +37,7 @@ set(LIB_HEADERS
CartesianPositionControlComponentPlugin.h
NaturalIKComponentPlugin.h
HandUnitComponentPlugin.h
FrameTrackingComponentPlugin.h
)
armarx_add_library("${LIB_NAME}" "${LIB_FILES}" "${LIB_HEADERS}" "${LIBS}")
......
#include "FrameTrackingComponentPlugin.h"
namespace armarx
{
namespace plugins
{
void FrameTrackingComponentPlugin::preOnInitComponent()
{
parent<Component>().usingProxyFromProperty(PROPERTY_NAME);
}
void FrameTrackingComponentPlugin::preOnConnectComponent()
{
parent<Component>().getProxyFromProperty(_frameTracking, PROPERTY_NAME);
}
void FrameTrackingComponentPlugin::postCreatePropertyDefinitions(armarx::PropertyDefinitionsPtr& properties)
{
if (!properties->hasDefinition(PROPERTY_NAME))
{
properties->defineOptionalProperty<std::string>(
PROPERTY_NAME,
"FrameTracking",
"Name of the FrameTracking");
}
}
FrameTrackingInterfacePrx FrameTrackingComponentPlugin::getFrameTracking()
{
return _frameTracking;
}
}
}
namespace armarx
{
FrameTrackingComponentPluginUser::FrameTrackingComponentPluginUser()
{
addPlugin(plugin);
}
FrameTrackingInterfacePrx FrameTrackingComponentPluginUser::getFrameTracking()
{
return plugin->getFrameTracking();
}
}
#pragma once
#include <ArmarXCore/core/Component.h>
#include <RobotAPI/interface/components/FrameTrackingInterface.h>
namespace armarx
{
namespace plugins
{
class FrameTrackingComponentPlugin : public ComponentPlugin
{
public:
using ComponentPlugin::ComponentPlugin;
void preOnInitComponent() override;
void preOnConnectComponent() override;
void postCreatePropertyDefinitions(PropertyDefinitionsPtr& properties) override;
FrameTrackingInterfacePrx getFrameTracking();
private:
static constexpr const char* PROPERTY_NAME = "FrameTrackingName";
FrameTrackingInterfacePrx _frameTracking;
};
}
}
namespace armarx
{
/**
* @brief Provides a ready-to-use FrameTracking.
*/
class FrameTrackingComponentPluginUser : virtual public ManagedIceObject
{
public:
FrameTrackingComponentPluginUser();
FrameTrackingInterfacePrx getFrameTracking();
private:
armarx::plugins::FrameTrackingComponentPlugin* plugin = nullptr;
};
}
namespace armarx
{
namespace plugins
{
// Legacy typedef.
using FrameTrackingComponentPluginUser = armarx::FrameTrackingComponentPluginUser;
}
}
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