26#include <condition_variable>
34#include <RobotAPI/interface/ArViz.h>
59 virtual public armarx::viz::StorageAndTopicInterface
83 void updateLayers(viz::data::LayerUpdateSeq
const& updates,
const Ice::Current&)
override;
87 const Ice::Current&)
override;
89 viz::data::LayerUpdates
pullUpdatesSince(Ice::Long revision,
const Ice::Current&)
override;
90 viz::data::LayerUpdates
92 viz::data::InteractionFeedbackSeq
const& interactions,
93 const Ice::Current&)
override;
95 std::string
startRecording(std::string
const& prefix,
const Ice::Current&)
override;
100 viz::data::RecordingBatch
106 void recordBatch(viz::data::RecordingBatch& batch);
111 std::string topicName =
"ArVizTopic";
112 int maxHistorySize = 1000;
113 std::filesystem::path historyPath =
"RobotAPI/ArVizStorage";
115 float componentWarnFrequency = 30;
119 std::mutex historyMutex;
121 std::vector<viz::data::TimestampedLayerUpdate> currentState;
122 std::vector<viz::data::TimestampedLayerUpdate> history;
124 bool firstBatch =
false;
129 std::vector<viz::data::InteractionFeedback> interactionBuffer;
131 std::mutex recordingMutex;
132 std::filesystem::path recordingPath;
133 std::vector<viz::data::TimestampedLayerUpdate> recordingInitialState;
134 std::vector<viz::data::RecordingBatch> recordingBuffer;
135 viz::data::Recording recordingMetaData;
136 std::condition_variable recordingCondition;
140 std::map<std::string, std::vector<armarx::DateTime>> updateHistoryForComponents;
Stores visualization elements drawn by ArViz clients.
viz::data::CommitResult commitAndReceiveInteractions(viz::data::CommitInput const &input, const Ice::Current &) override
void onInitComponent() override
armarx::ManagedIceObject::onInitComponent()
std::string startRecording(std::string const &prefix, const Ice::Current &) override
void updateLayers(viz::data::LayerUpdateSeq const &updates, const Ice::Current &) override
void onDisconnectComponent() override
armarx::ManagedIceObject::onDisconnectComponent()
viz::data::LayerUpdates pullUpdatesSinceAndSendInteractions(Ice::Long revision, viz::data::InteractionFeedbackSeq const &interactions, const Ice::Current &) override
viz::data::LayerUpdates pullUpdatesSince(Ice::Long revision, const Ice::Current &) override
armarx::PropertyDefinitionsPtr createPropertyDefinitions() override
PropertyUser::createPropertyDefinitions()
std::string startRecordingToDirectory(std::string const &recordingPath, const Ice::Current &) override
viz::data::RecordingsInfo getAllRecordings(const Ice::Current &) override
void onConnectComponent() override
armarx::ManagedIceObject::onConnectComponent()
viz::data::RecordingBatch getRecordingBatch(const std::string &, Ice::Long, const Ice::Current &) override
void stopRecording(const Ice::Current &) override
void onExitComponent() override
armarx::ManagedIceObject::onExitComponent()
std::string getDefaultName() const override
armarx::ManagedIceObject::getDefaultName()
Baseclass for all ArmarX ManagedIceObjects requiring properties.
IceUtil::Handle< RunningTask< T > > pointer_type
Shared pointer type for convenience.
This file offers overloads of toIce() and fromIce() functions for STL container types.
IceUtil::Handle< class PropertyDefinitionContainer > PropertyDefinitionsPtr
PropertyDefinitions smart pointer type.