Skip to content
Snippets Groups Projects
Commit 7e216a39 authored by Rainer Kartmann's avatar Rainer Kartmann
Browse files

Improve resets of eigen stuff

parent 5de67f2d
No related branches found
No related tags found
No related merge requests found
Showing
with 87 additions and 28 deletions
...@@ -52,6 +52,18 @@ namespace armarx::aron::cppserializer::serializer ...@@ -52,6 +52,18 @@ namespace armarx::aron::cppserializer::serializer
ARMARX_CHECK_NOT_NULL(typenavigator); ARMARX_CHECK_NOT_NULL(typenavigator);
} }
CppBlockPtr EigenMatrixSerializer::getResetHardBlock(const std::string& accessor) const
{
CppBlockPtr block = std::make_shared<CppBlock>();
block->addLine(accessor + ".setZero();");
return this->ResolveMaybeResetHardBlock(accessor, block, this->typenavigator);
}
CppBlockPtr EigenMatrixSerializer::getResetSoftBlock(const std::string& accessor) const
{
return getResetHardBlock(accessor);
}
CppBlockPtr EigenMatrixSerializer::getWriteTypeBlock(const std::string& accessor) const CppBlockPtr EigenMatrixSerializer::getWriteTypeBlock(const std::string& accessor) const
{ {
CppBlockPtr b = CppBlockPtr(new CppBlock()); CppBlockPtr b = CppBlockPtr(new CppBlock());
......
...@@ -31,8 +31,6 @@ ...@@ -31,8 +31,6 @@
namespace armarx::aron::cppserializer::serializer namespace armarx::aron::cppserializer::serializer
{ {
class EigenMatrixSerializer;
typedef std::shared_ptr<EigenMatrixSerializer> EigenMatrixSerializerPtr;
class EigenMatrixSerializer : class EigenMatrixSerializer :
virtual public detail::NDArraySerializerBase<typenavigator::EigenMatrixNavigator, EigenMatrixSerializer> virtual public detail::NDArraySerializerBase<typenavigator::EigenMatrixNavigator, EigenMatrixSerializer>
...@@ -42,6 +40,8 @@ namespace armarx::aron::cppserializer::serializer ...@@ -42,6 +40,8 @@ namespace armarx::aron::cppserializer::serializer
EigenMatrixSerializer(const typenavigator::EigenMatrixNavigatorPtr&); EigenMatrixSerializer(const typenavigator::EigenMatrixNavigatorPtr&);
// virtual implementations // virtual implementations
virtual CppBlockPtr getResetHardBlock(const std::string&) const override;
virtual CppBlockPtr getResetSoftBlock(const std::string&) const override;
virtual CppBlockPtr getWriteTypeBlock(const std::string&) const override; virtual CppBlockPtr getWriteTypeBlock(const std::string&) const override;
virtual CppBlockPtr getWriteBlock(const std::string&) const override; virtual CppBlockPtr getWriteBlock(const std::string&) const override;
virtual CppBlockPtr getReadBlock(const std::string&) const override; virtual CppBlockPtr getReadBlock(const std::string&) const override;
......
...@@ -47,6 +47,18 @@ namespace armarx::aron::cppserializer::serializer ...@@ -47,6 +47,18 @@ namespace armarx::aron::cppserializer::serializer
ARMARX_CHECK_NOT_NULL(typenavigator); ARMARX_CHECK_NOT_NULL(typenavigator);
} }
CppBlockPtr EigenQuaternionSerializer::getResetHardBlock(const std::string& accessor) const
{
CppBlockPtr block = std::make_shared<CppBlock>();
block->addLine(accessor + ".setIdentity();");
return this->ResolveMaybeResetHardBlock(accessor, block, this->typenavigator);
}
CppBlockPtr EigenQuaternionSerializer::getResetSoftBlock(const std::string& accessor) const
{
return getResetHardBlock(accessor);
}
CppBlockPtr EigenQuaternionSerializer::getWriteTypeBlock(const std::string& accessor) const CppBlockPtr EigenQuaternionSerializer::getWriteTypeBlock(const std::string& accessor) const
{ {
CppBlockPtr b = CppBlockPtr(new CppBlock()); CppBlockPtr b = CppBlockPtr(new CppBlock());
......
...@@ -33,20 +33,19 @@ ...@@ -33,20 +33,19 @@
namespace armarx::aron::cppserializer::serializer namespace armarx::aron::cppserializer::serializer
{ {
class EigenQuaternionSerializer;
typedef std::shared_ptr<EigenQuaternionSerializer> EigenQuaternionSerializerPtr;
class EigenQuaternionSerializer : class EigenQuaternionSerializer :
virtual public detail::NDArraySerializerBase<typenavigator::EigenQuaternionNavigator, EigenQuaternionSerializer> virtual public detail::NDArraySerializerBase<typenavigator::EigenQuaternionNavigator, EigenQuaternionSerializer>
{ {
public: public:
using PointerType = EigenQuaternionSerializerPtr; using PointerType = std::shared_ptr<EigenQuaternionSerializer>;
public: public:
// constructors // constructors
EigenQuaternionSerializer(const typenavigator::EigenQuaternionNavigatorPtr&); EigenQuaternionSerializer(const typenavigator::EigenQuaternionNavigatorPtr&);
// virtual implementations // virtual implementations
virtual CppBlockPtr getResetHardBlock(const std::string&) const override;
virtual CppBlockPtr getResetSoftBlock(const std::string&) const override;
virtual CppBlockPtr getWriteTypeBlock(const std::string&) const override; virtual CppBlockPtr getWriteTypeBlock(const std::string&) const override;
virtual CppBlockPtr getWriteBlock(const std::string&) const override; virtual CppBlockPtr getWriteBlock(const std::string&) const override;
virtual CppBlockPtr getReadBlock(const std::string&) const override; virtual CppBlockPtr getReadBlock(const std::string&) const override;
......
...@@ -40,16 +40,28 @@ namespace armarx::aron::cppserializer::serializer ...@@ -40,16 +40,28 @@ namespace armarx::aron::cppserializer::serializer
ARMARX_CHECK_NOT_NULL(typenavigator); ARMARX_CHECK_NOT_NULL(typenavigator);
} }
CppBlockPtr OrientationSerializer::getResetHardBlock(const std::string& accessor) const
{
CppBlockPtr block = std::make_shared<CppBlock>();
block->addLine(accessor + ".setIdentity();");
return this->ResolveMaybeResetHardBlock(accessor, block, this->typenavigator);
}
CppBlockPtr OrientationSerializer::getResetSoftBlock(const std::string& accessor) const
{
return getResetHardBlock(accessor);
}
CppBlockPtr OrientationSerializer::getWriteTypeBlock(const std::string& accessor) const CppBlockPtr OrientationSerializer::getWriteTypeBlock(const std::string& accessor) const
{ {
CppBlockPtr b = CppBlockPtr(new CppBlock()); CppBlockPtr b = std::make_shared<CppBlock>();
b->addLine("w.writeOrientation({" + MAYBE_TO_STRING(typenavigator->getMaybe()) + "}); // of " + accessor); b->addLine("w.writeOrientation({" + MAYBE_TO_STRING(typenavigator->getMaybe()) + "}); // of " + accessor);
return b; return b;
} }
CppBlockPtr OrientationSerializer::getWriteBlock(const std::string& accessor) const CppBlockPtr OrientationSerializer::getWriteBlock(const std::string& accessor) const
{ {
CppBlockPtr block_if_data = CppBlockPtr(new CppBlock()); CppBlockPtr block_if_data = std::make_shared<CppBlock>();
block_if_data->addLine("w.writeNDArray({" + simox::alg::to_string(typenavigator->ACCEPTED_DIMENSION, ", ") + ", 4}, \"" + typenavigator->ACCEPTED_TYPE + "\", reinterpret_cast<const unsigned char*>(" + accessor + nextEl() + "coeffs().data())); // of " + accessor); block_if_data->addLine("w.writeNDArray({" + simox::alg::to_string(typenavigator->ACCEPTED_DIMENSION, ", ") + ", 4}, \"" + typenavigator->ACCEPTED_TYPE + "\", reinterpret_cast<const unsigned char*>(" + accessor + nextEl() + "coeffs().data())); // of " + accessor);
return ResolveMaybeWriteBlock(accessor, block_if_data, typenavigator); return ResolveMaybeWriteBlock(accessor, block_if_data, typenavigator);
...@@ -57,14 +69,14 @@ namespace armarx::aron::cppserializer::serializer ...@@ -57,14 +69,14 @@ namespace armarx::aron::cppserializer::serializer
CppBlockPtr OrientationSerializer::getReadBlock(const std::string& accessor) const CppBlockPtr OrientationSerializer::getReadBlock(const std::string& accessor) const
{ {
CppBlockPtr block_if_data = CppBlockPtr(new CppBlock()); CppBlockPtr block_if_data = std::make_shared<CppBlock>();
block_if_data->addLine("r.readEndNDArray(reinterpret_cast<unsigned char*>(" + accessor + nextEl() + "coeffs().data())); // of " + accessor); block_if_data->addLine("r.readEndNDArray(reinterpret_cast<unsigned char*>(" + accessor + nextEl() + "coeffs().data())); // of " + accessor);
return ResolveMaybeReadBlock(accessor, "r.readStartNDArray()", block_if_data, typenavigator); return ResolveMaybeReadBlock(accessor, "r.readStartNDArray()", block_if_data, typenavigator);
} }
CppBlockPtr OrientationSerializer::getEqualsBlock(const std::string& accessor, const std::string& otherInstanceAccessor) const CppBlockPtr OrientationSerializer::getEqualsBlock(const std::string& accessor, const std::string& otherInstanceAccessor) const
{ {
CppBlockPtr block_if_data = CppBlockPtr(new CppBlock()); CppBlockPtr block_if_data = std::make_shared<CppBlock>();
block_if_data->addLine("if (not (" + accessor + nextEl() + "isApprox(" + otherInstanceAccessor + ")))"); block_if_data->addLine("if (not (" + accessor + nextEl() + "isApprox(" + otherInstanceAccessor + ")))");
block_if_data->addLineAsBlock("return false;"); block_if_data->addLineAsBlock("return false;");
return ResolveMaybeEqualsBlock(accessor, otherInstanceAccessor, block_if_data, typenavigator); return ResolveMaybeEqualsBlock(accessor, otherInstanceAccessor, block_if_data, typenavigator);
......
...@@ -29,14 +29,12 @@ ...@@ -29,14 +29,12 @@
namespace armarx::aron::cppserializer::serializer namespace armarx::aron::cppserializer::serializer
{ {
class OrientationSerializer;
typedef std::shared_ptr<OrientationSerializer> AronOrientationTypeCppSerializerPtr;
class OrientationSerializer : class OrientationSerializer :
virtual public detail::NDArraySerializerBase<typenavigator::OrientationNavigator, OrientationSerializer> virtual public detail::NDArraySerializerBase<typenavigator::OrientationNavigator, OrientationSerializer>
{ {
public: public:
using PointerType = AronOrientationTypeCppSerializerPtr; using PointerType = std::shared_ptr<class OrientationSerializer>;
public: public:
...@@ -44,10 +42,13 @@ namespace armarx::aron::cppserializer::serializer ...@@ -44,10 +42,13 @@ namespace armarx::aron::cppserializer::serializer
OrientationSerializer(const typenavigator::OrientationNavigatorPtr&); OrientationSerializer(const typenavigator::OrientationNavigatorPtr&);
// virtual implementations // virtual implementations
virtual CppBlockPtr getResetHardBlock(const std::string&) const override;
virtual CppBlockPtr getResetSoftBlock(const std::string&) const override;
virtual CppBlockPtr getWriteTypeBlock(const std::string&) const override; virtual CppBlockPtr getWriteTypeBlock(const std::string&) const override;
virtual CppBlockPtr getWriteBlock(const std::string&) const override; virtual CppBlockPtr getWriteBlock(const std::string&) const override;
virtual CppBlockPtr getReadBlock(const std::string&) const override; virtual CppBlockPtr getReadBlock(const std::string&) const override;
virtual CppBlockPtr getEqualsBlock(const std::string&, const std::string&) const override; virtual CppBlockPtr getEqualsBlock(const std::string&, const std::string&) const override;
}; };
} }
...@@ -40,16 +40,28 @@ namespace armarx::aron::cppserializer::serializer ...@@ -40,16 +40,28 @@ namespace armarx::aron::cppserializer::serializer
ARMARX_CHECK_NOT_NULL(typenavigator); ARMARX_CHECK_NOT_NULL(typenavigator);
} }
CppBlockPtr PoseSerializer::getResetHardBlock(const std::string& accessor) const
{
CppBlockPtr block = std::make_shared<CppBlock>();
block->addLine(accessor + ".setIdentity();");
return this->ResolveMaybeResetHardBlock(accessor, block, this->typenavigator);
}
CppBlockPtr PoseSerializer::getResetSoftBlock(const std::string& accessor) const
{
return getResetHardBlock(accessor);
}
CppBlockPtr PoseSerializer::getWriteTypeBlock(const std::string& accessor) const CppBlockPtr PoseSerializer::getWriteTypeBlock(const std::string& accessor) const
{ {
CppBlockPtr b = CppBlockPtr(new CppBlock()); CppBlockPtr b = std::make_shared<CppBlock>();
b->addLine("w.writePose({" + MAYBE_TO_STRING(typenavigator->getMaybe()) + "}); // of " + accessor); b->addLine("w.writePose({" + MAYBE_TO_STRING(typenavigator->getMaybe()) + "}); // of " + accessor);
return b; return b;
} }
CppBlockPtr PoseSerializer::getWriteBlock(const std::string& accessor) const CppBlockPtr PoseSerializer::getWriteBlock(const std::string& accessor) const
{ {
CppBlockPtr block_if_data = CppBlockPtr(new CppBlock()); CppBlockPtr block_if_data = std::make_shared<CppBlock>();
block_if_data->addLine("w.writeNDArray({" + simox::alg::to_string(typenavigator->ACCEPTED_DIMENSION, ", ") + ", 4}, \"" + typenavigator->ACCEPTED_TYPE + "\", reinterpret_cast<const unsigned char*>(" + accessor + nextEl() + "data())); // of " + accessor); block_if_data->addLine("w.writeNDArray({" + simox::alg::to_string(typenavigator->ACCEPTED_DIMENSION, ", ") + ", 4}, \"" + typenavigator->ACCEPTED_TYPE + "\", reinterpret_cast<const unsigned char*>(" + accessor + nextEl() + "data())); // of " + accessor);
return ResolveMaybeWriteBlock(accessor, block_if_data, typenavigator); return ResolveMaybeWriteBlock(accessor, block_if_data, typenavigator);
...@@ -57,14 +69,14 @@ namespace armarx::aron::cppserializer::serializer ...@@ -57,14 +69,14 @@ namespace armarx::aron::cppserializer::serializer
CppBlockPtr PoseSerializer::getReadBlock(const std::string& accessor) const CppBlockPtr PoseSerializer::getReadBlock(const std::string& accessor) const
{ {
CppBlockPtr block_if_data = CppBlockPtr(new CppBlock()); CppBlockPtr block_if_data = std::make_shared<CppBlock>();
block_if_data->addLine("r.readEndNDArray(reinterpret_cast<unsigned char*>(" + accessor + nextEl() + "data())); // of " + accessor); block_if_data->addLine("r.readEndNDArray(reinterpret_cast<unsigned char*>(" + accessor + nextEl() + "data())); // of " + accessor);
return ResolveMaybeReadBlock(accessor, "r.readStartNDArray()", block_if_data, typenavigator); return ResolveMaybeReadBlock(accessor, "r.readStartNDArray()", block_if_data, typenavigator);
} }
CppBlockPtr PoseSerializer::getEqualsBlock(const std::string& accessor, const std::string& otherInstanceAccessor) const CppBlockPtr PoseSerializer::getEqualsBlock(const std::string& accessor, const std::string& otherInstanceAccessor) const
{ {
CppBlockPtr block_if_data = CppBlockPtr(new CppBlock()); CppBlockPtr block_if_data = std::make_shared<CppBlock>();
block_if_data->addLine("if (not (" + accessor + nextEl() + "isApprox(" + otherInstanceAccessor + ")))"); block_if_data->addLine("if (not (" + accessor + nextEl() + "isApprox(" + otherInstanceAccessor + ")))");
block_if_data->addLineAsBlock("return false;"); block_if_data->addLineAsBlock("return false;");
return ResolveMaybeEqualsBlock(accessor, otherInstanceAccessor, block_if_data, typenavigator); return ResolveMaybeEqualsBlock(accessor, otherInstanceAccessor, block_if_data, typenavigator);
......
...@@ -29,20 +29,19 @@ ...@@ -29,20 +29,19 @@
namespace armarx::aron::cppserializer::serializer namespace armarx::aron::cppserializer::serializer
{ {
class PoseSerializer;
typedef std::shared_ptr<PoseSerializer> AronPoseTypeCppSerializerPtr;
class PoseSerializer : class PoseSerializer :
virtual public detail::NDArraySerializerBase<typenavigator::PoseNavigator, PoseSerializer> virtual public detail::NDArraySerializerBase<typenavigator::PoseNavigator, PoseSerializer>
{ {
public: public:
using PointerType = AronPoseTypeCppSerializerPtr; using PointerType = std::shared_ptr<PoseSerializer>;
public: public:
// constructors // constructors
PoseSerializer(const typenavigator::PoseNavigatorPtr&); PoseSerializer(const typenavigator::PoseNavigatorPtr&);
// virtual implementations // virtual implementations
virtual CppBlockPtr getResetHardBlock(const std::string&) const override;
virtual CppBlockPtr getResetSoftBlock(const std::string&) const override;
virtual CppBlockPtr getWriteTypeBlock(const std::string&) const override; virtual CppBlockPtr getWriteTypeBlock(const std::string&) const override;
virtual CppBlockPtr getWriteBlock(const std::string&) const override; virtual CppBlockPtr getWriteBlock(const std::string&) const override;
virtual CppBlockPtr getReadBlock(const std::string&) const override; virtual CppBlockPtr getReadBlock(const std::string&) const override;
......
...@@ -40,16 +40,28 @@ namespace armarx::aron::cppserializer::serializer ...@@ -40,16 +40,28 @@ namespace armarx::aron::cppserializer::serializer
ARMARX_CHECK_NOT_NULL(typenavigator); ARMARX_CHECK_NOT_NULL(typenavigator);
} }
CppBlockPtr PositionSerializer::getResetHardBlock(const std::string& accessor) const
{
CppBlockPtr block = std::make_shared<CppBlock>();
block->addLine(accessor + ".setZero();");
return this->ResolveMaybeResetHardBlock(accessor, block, this->typenavigator);
}
CppBlockPtr PositionSerializer::getResetSoftBlock(const std::string& accessor) const
{
return getResetHardBlock(accessor);
}
CppBlockPtr PositionSerializer::getWriteTypeBlock(const std::string& accessor) const CppBlockPtr PositionSerializer::getWriteTypeBlock(const std::string& accessor) const
{ {
CppBlockPtr b = CppBlockPtr(new CppBlock()); CppBlockPtr b = std::make_shared<CppBlock>();
b->addLine("w.writePosition({" + MAYBE_TO_STRING(typenavigator->getMaybe()) + "}); // of " + accessor); b->addLine("w.writePosition({" + MAYBE_TO_STRING(typenavigator->getMaybe()) + "}); // of " + accessor);
return b; return b;
} }
CppBlockPtr PositionSerializer::getWriteBlock(const std::string& accessor) const CppBlockPtr PositionSerializer::getWriteBlock(const std::string& accessor) const
{ {
CppBlockPtr block_if_data = CppBlockPtr(new CppBlock()); CppBlockPtr block_if_data = std::make_shared<CppBlock>();
block_if_data->addLine("w.writeNDArray({" + simox::alg::to_string(typenavigator->ACCEPTED_DIMENSION, ", ") + ", 4}, \"" + typenavigator->ACCEPTED_TYPE + "\", reinterpret_cast<const unsigned char*>(" + accessor + nextEl() + "data())); // of " + accessor); block_if_data->addLine("w.writeNDArray({" + simox::alg::to_string(typenavigator->ACCEPTED_DIMENSION, ", ") + ", 4}, \"" + typenavigator->ACCEPTED_TYPE + "\", reinterpret_cast<const unsigned char*>(" + accessor + nextEl() + "data())); // of " + accessor);
return ResolveMaybeWriteBlock(accessor, block_if_data, typenavigator); return ResolveMaybeWriteBlock(accessor, block_if_data, typenavigator);
...@@ -57,14 +69,14 @@ namespace armarx::aron::cppserializer::serializer ...@@ -57,14 +69,14 @@ namespace armarx::aron::cppserializer::serializer
CppBlockPtr PositionSerializer::getReadBlock(const std::string& accessor) const CppBlockPtr PositionSerializer::getReadBlock(const std::string& accessor) const
{ {
CppBlockPtr block_if_data = CppBlockPtr(new CppBlock()); CppBlockPtr block_if_data = std::make_shared<CppBlock>();
block_if_data->addLine("r.readEndNDArray(reinterpret_cast<unsigned char*>(" + accessor + nextEl() + "data())); // of " + accessor); block_if_data->addLine("r.readEndNDArray(reinterpret_cast<unsigned char*>(" + accessor + nextEl() + "data())); // of " + accessor);
return ResolveMaybeReadBlock(accessor, "r.readStartNDArray()", block_if_data, typenavigator); return ResolveMaybeReadBlock(accessor, "r.readStartNDArray()", block_if_data, typenavigator);
} }
CppBlockPtr PositionSerializer::getEqualsBlock(const std::string& accessor, const std::string& otherInstanceAccessor) const CppBlockPtr PositionSerializer::getEqualsBlock(const std::string& accessor, const std::string& otherInstanceAccessor) const
{ {
CppBlockPtr block_if_data = CppBlockPtr(new CppBlock()); CppBlockPtr block_if_data = std::make_shared<CppBlock>();
block_if_data->addLine("if (not (" + accessor + nextEl() + "isApprox(" + otherInstanceAccessor + ")))"); block_if_data->addLine("if (not (" + accessor + nextEl() + "isApprox(" + otherInstanceAccessor + ")))");
block_if_data->addLineAsBlock("return false;"); block_if_data->addLineAsBlock("return false;");
return ResolveMaybeEqualsBlock(accessor, otherInstanceAccessor, block_if_data, typenavigator); return ResolveMaybeEqualsBlock(accessor, otherInstanceAccessor, block_if_data, typenavigator);
......
...@@ -29,20 +29,20 @@ ...@@ -29,20 +29,20 @@
namespace armarx::aron::cppserializer::serializer namespace armarx::aron::cppserializer::serializer
{ {
class PositionSerializer;
typedef std::shared_ptr<PositionSerializer> AronPositionTypeCppSerializerPtr;
class PositionSerializer : class PositionSerializer :
virtual public detail::NDArraySerializerBase<typenavigator::PositionNavigator, PositionSerializer> virtual public detail::NDArraySerializerBase<typenavigator::PositionNavigator, PositionSerializer>
{ {
public: public:
using PointerType = AronPositionTypeCppSerializerPtr; using PointerType = std::shared_ptr<PositionSerializer>;
public: public:
// constructors // constructors
PositionSerializer(const typenavigator::PositionNavigatorPtr&); PositionSerializer(const typenavigator::PositionNavigatorPtr&);
// virtual implementations // virtual implementations
virtual CppBlockPtr getResetHardBlock(const std::string&) const override;
virtual CppBlockPtr getResetSoftBlock(const std::string&) const override;
virtual CppBlockPtr getWriteTypeBlock(const std::string&) const override; virtual CppBlockPtr getWriteTypeBlock(const std::string&) const override;
virtual CppBlockPtr getWriteBlock(const std::string&) const override; virtual CppBlockPtr getWriteBlock(const std::string&) const override;
virtual CppBlockPtr getReadBlock(const std::string&) const override; virtual CppBlockPtr getReadBlock(const std::string&) const override;
......
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