19 Eigen::Matrix4f
transform = Eigen::Matrix4f::Identity();
24 std::optional<simox::Color>
color{};
49 void createObject(std::string
const& objectID, Eigen::Matrix4f
const& pose);
62 using ObjectPoseList = std::list<objpose::ObjectPose>;
66 ChangeKind kind = MOVE;
67 Eigen::Matrix4f transform = Eigen::Matrix4f::Identity();
68 ObjectPoseList::iterator iterator{};
73 ObjectPoseList newPoses;
74 std::map<std::string, Change> changed;
84 simox::OrientedBoxf
box;
85 Eigen::Matrix4f
transform{Eigen::Matrix4f::Identity()};
99 std::priority_queue<size_t, std::vector<size_t>, std::greater<>> unusedIDs;
101 struct PlaceholderEntry
103 Placeholder placeholder;
107 std::vector<PlaceholderEntry> placeholders;
132 void visualizeMemory();
133 void visualizeMeta();
143 static constexpr const char* memoryLayerName =
"Memory";
144 static constexpr const char* metaLayerName =
"Meta";
145 static constexpr const char* lineString =
"---------------------------";
147 std::vector<std::string> placeholderOptions;
156 viz::Layer memoryLayer{client.layer(memoryLayerName)};
159 InteractionObserver observer;
163 ChangeState changes{
this};
164 PlaceholderState placeholders{
this};
166 bool isCommitRequired;
167 bool isUpdateRequired;
168 bool isResetRequired;
169 bool isMemoryVizRequired;
170 bool isMetaVizRequired;
173 friend PlaceholderState;
void moveObject(objpose::ObjectPose const &object, Eigen::Matrix4f const &transform)
void deleteObject(objpose::ObjectPose const &object)
Eigen::Matrix4f getTransform(objpose::ObjectPose const &object)
ChangeState(Editor *editor)
void createObject(std::string const &objectID, Eigen::Matrix4f const &pose)
void moveNewObjectsTo(objpose::ObjectPoseSeq &seq)
void cloneObject(objpose::ObjectPose const &object)
bool applyTo(objpose::ObjectPose &pose)
void visualizeNewObjects()
void resetObject(objpose::ObjectPose const &object)
VisualizationDescription buildVisualizationDescription(objpose::ObjectPose &object)
Editor(viz::Client &client, Properties properties, std::function< void(objpose::ProvidedObjectPoseSeq &)> pushToMemory, std::function< objpose::ObjectPoseSeq(void)> pullFromMemory)
Used to find objects in the ArmarX objects repository [1] (formerly [2]).
void addPlaceholder(simox::OrientedBoxf box)
PlaceholderState(Editor *editor)
void specifyObject(size_t id, std::string const &objectID, ChangeState &changeState)
void movePlaceholder(size_t id, Eigen::Matrix4f const &transform)
void visualizePlaceholders()
void removePlaceholder(size_t id)
virtual Layer layer(std::string const &name) const
std::vector< ObjectPose > ObjectPoseSeq
std::vector< ProvidedObjectPose > ProvidedObjectPoseSeq
This file offers overloads of toIce() and fromIce() functions for STL container types.
auto transform(const Container< InputT, Alloc > &in, OutputT(*func)(InputT const &)) -> Container< OutputT, typename std::allocator_traits< Alloc >::template rebind_alloc< OutputT > >
Convenience function (with less typing) to transform a container of type InputT into the same contain...
std::vector< data::ObjectID > const & availableObjects
float const & confidenceThreshold
float const & objectScaling
Eigen::Matrix4f transform
std::optional< simox::Color > color
std::vector< std::string > options
Eigen::Matrix4f transform
std::optional< float > alpha
An object pose as stored by the ObjectPoseStorage.