19 std::map<size_t, std::function<void()>> contextMenuActions;
20 std::optional<std::function<void(Eigen::Matrix4f
const&)>> transformEndAction;
23 template <
typename ElementT>
29 auto iterator = observedLayers.find(layer.
data_.name);
31 if (iterator == observedLayers.end())
33 std::tie(iterator, std::ignore) = observedLayers.emplace(layer.
data_.name, layer);
36 auto& [name, observedLayer] = *iterator;
37 return observedLayer.observations[element.data_->id];
48 explicit ObservedLayer(
viz::Layer& layer) : layer(layer)
52 std::reference_wrapper<viz::Layer> layer;
53 std::map<std::string, Observation> observations;
56 std::map<std::string, ObservedLayer> observedLayers;
Observation & onTransformEnd(std::function< void(Eigen::Matrix4f const &)> action)
void process(viz::InteractionFeedback const &interaction)
Observation & onContextMenu(size_t index, std::function< void()> action)
void clearObservedLayer(viz::Layer &layer)
void requestInteractions(viz::StagedCommit &stage)
void process(viz::InteractionFeedbackRange const &interactions)
Observation & addObserved(viz::Layer &layer, ElementT const &element)
This file offers overloads of toIce() and fromIce() functions for STL container types.
void add(ElementT const &element)
A staged commit prepares multiple layers to be committed.