9#include <IceUtil/Shared.h>
11#include <RobotAPI/interface/ArViz/Component.h>
14#include <Inventor/manips/SoTransformerManip.h>
15#include <Inventor/nodes/SoSelection.h>
16#include <Inventor/nodes/SoSeparator.h>
25 std::unique_ptr<coin::ElementVisualization>
visu;
31 return left.data->id < right.data->id;
43 pivot.data =
new data::Element;
69 id = std::move(other.id);
72 elements = std::move(other.elements);
86 if (iter !=
elements.end() && iter->data->id ==
id)
108 return left.id < right.id;
124 if (iter !=
data.end() && iter->id ==
id)
160 IceUtil::Time
addLayer = IceUtil::Time::seconds(0);
163 IceUtil::Time
total = IceUtil::Time::seconds(0);
177 std::vector<CoinVisualizer_ApplyTiming>
applies;
181 IceUtil::Time
pull = IceUtil::Time::seconds(0);
183 IceUtil::Time
total = IceUtil::Time::seconds(0);
224 template <
typename ElementVisuT>
228 using ElementT =
typename ElementVisuT::ElementType;
242 std::string
const& elementID,
243 data::InteractionDescription
const& interactionDesc,
265 armarx::viz::Callback_StorageInterface_pullUpdatesSinceAndSendInteractionsPtr
callback;
std::vector< CoinLayerID > getLayerIDs()
void showLayer(CoinLayerID const &id, bool visible)
void onSelectEvent(SoPath *path, int eventType)
CoinVisualizer_UpdateTiming lastTiming
void onUpdateFailure(Ice::Exception const &ex)
std::vector< std::function< void(CoinLayerID const &layerID, CoinLayer const &layer)> > layerUpdatedCallbacks
A layer's data has changed.
CoinLayer & findOrAddLayer(CoinLayerID const &layerID)
SoSeparator * manipulatorGroup
std::atomic< CoinVisualizerState > state
CoinVisualizer_ApplyTiming apply(data::LayerUpdate const &update)
void emitLayersChanged(std::vector< CoinLayerID > const &layerIDs)
void startAsync(StorageInterfacePrx const &storage)
std::vector< std::unique_ptr< coin::ElementVisualizer > > elementVisualizers
std::function< void(std::vector< CoinLayerID > const &)> layersChangedCallback
std::vector< std::type_index > elementVisualizersTypes
void selectElement(int index)
SoTransformerManip * manipulator
IceUtil::Handle< CoinVisualizerWrapper > callbackData
void exportToVRML(std::string const &exportFilePath)
ElementInteractionData * selectedElement
std::atomic< CoinVisualizerUpdateResult > updateResult
void addOrUpdateElements(CoinLayer *layer, data::LayerUpdate const &update)
void emitLayerUpdated(CoinLayerID const &layerID, CoinLayer const &layer)
viz::StorageInterfacePrx stateStorage
void removeElementsIfNotUpdated(CoinLayer *layer)
data::LayerUpdates pulledUpdates
void onUpdateSuccess(data::LayerUpdates const &updates)
viz::StorageInterfacePrx storage
std::vector< std::unique_ptr< ElementInteractionData > > elementInteractions
void registerVisualizationTypes()
std::vector< viz::data::InteractionFeedback > interactionFeedbackBuffer
armarx::viz::Callback_StorageInterface_pullUpdatesSinceAndSendInteractionsPtr callback
void registerVisualizerFor()
void addOrUpdateInteraction(CoinLayerID const &layerID, std::string const &elementID, data::InteractionDescription const &interactionDesc, coin::ElementVisualization *visu)
void onManipulation(SoDragger *dragger, int eventType)
CoinVisualizer_UpdateTiming getTiming()
This file is part of ArmarX.
std::pair< std::string, std::string > CoinLayerID
CoinVisualizerUpdateResult
bool isElementIdLess(CoinLayerElement const &left, CoinLayerElement const &right)
bool isCoinLayerIdLess(CoinLayer const &left, CoinLayer const &right)
std::unique_ptr< coin::ElementVisualization > visu
CoinLayer * findLayer(CoinLayerID const &id)
CoinLayer const * findLayer(CoinLayerID const &id) const
auto lowerBound(CoinLayerID const &id)
std::vector< CoinLayer > data
std::vector< CoinLayerElement > elements
void operator=(CoinLayer const &)=delete
void operator=(CoinLayer &&other)
CoinLayerElement const * findElement(std::string const &id) const
auto lowerBound(std::string const &id)
CoinLayer(CoinLayer &&other)
CoinLayerElement * findElement(std::string const &id)
CoinLayer(CoinLayerID const &id, SoSeparator *node)
CoinLayer(CoinLayer const &)=delete
IceUtil::Time updateElements
IceUtil::Time removeElements
void add(CoinVisualizer_ApplyTiming const &other)
IceUtil::Time waitDuration
IceUtil::Time layersChanged
CoinVisualizer_ApplyTiming applyTotal
std::vector< CoinVisualizer_ApplyTiming > applies
coin::ElementVisualization * visu
viz::data::InteractionDescription interaction