#include <MRPickPointManager.h>
Classes | |
struct | ObjectState |
struct | Params |
struct | WidgetHistoryAction |
A common base class for all history actions of this widget. More... | |
Public Types | |
using | PickerPointCallBack = std::function<void( std::shared_ptr<MR::VisualObject> obj, int index )> |
using | SurfaceContour = std::vector<std::shared_ptr<SurfacePointWidget>> |
using | SurfaceContours = std::unordered_map <std::shared_ptr<MR::VisualObject>, SurfaceContour> |
using | FullState = std::vector<ObjectState> |
Public Member Functions | |
MRVIEWER_API | PickPointManager () |
create an object and starts listening for mouse events | |
MRVIEWER_API | ~PickPointManager () |
destroy this and remove the undo/redo actions referring this from the history. | |
const SurfaceContour & | getSurfaceContour (const std::shared_ptr< MR::VisualObject > &obj) |
return contour for specific object (creating new one if necessary) | |
const SurfaceContours & | getSurfaceContours () const |
return all contours, i.e. per object unorderd_map of ordered surface points [vector]. | |
MRVIEWER_API bool | isClosedCountour (const std::shared_ptr< VisualObject > &obj) const |
check whether the contour is closed for a particular object. | |
MRVIEWER_API std::shared_ptr< SurfacePointWidget > | getPointWidget (const std::shared_ptr< VisualObject > &obj, int index) const |
returns point widget by index from given object or nullptr if no such widget exists | |
SurfacePointWidget * | draggedPointWidget () const |
returns point widget currently dragged by mouse | |
MRVIEWER_API bool | appendPoint (const std::shared_ptr< VisualObject > &obj, const PickedPoint &triPoint) |
Add a point to the end of non closed contour connected with obj. | |
MRVIEWER_API bool | removePoint (const std::shared_ptr< VisualObject > &obj, int pickedIndex) |
Remove point with pickedIndex index from contour connected with obj. | |
MRVIEWER_API bool | closeContour (const std::shared_ptr< VisualObject > &obj, bool makeClosed=true) |
MRVIEWER_API FullState | getFullState () const |
returns the state of this | |
MRVIEWER_API void | clear () |
removes all points from all objects | |
MRVIEWER_API void | setFullState (FullState s) |
removes all current points, then adds pick points on all objects as prescribed by given state | |
Public Member Functions inherited from MR::MultiListener< MouseDownListener, MouseMoveListener > | |
virtual | ~MultiListener ()=default |
virtual void | connect (Viewer *viewer, int group=0, boost::signals2::connect_position pos=boost::signals2::connect_position::at_back) |
virtual void | disconnect () |
Public Attributes | |
Params | params |
PickPointManager allows the user to pick/move/delete several ordered points on one or more visual objects; mouse events and public methods automatically add history actions for reverting
using MR::PickPointManager::FullState = std::vector<ObjectState> |
using MR::PickPointManager::PickerPointCallBack = std::function<void( std::shared_ptr<MR::VisualObject> obj, int index )> |
using MR::PickPointManager::SurfaceContour = std::vector<std::shared_ptr<SurfacePointWidget>> |
using MR::PickPointManager::SurfaceContours = std::unordered_map <std::shared_ptr<MR::VisualObject>, SurfaceContour> |
MRVIEWER_API MR::PickPointManager::PickPointManager | ( | ) |
create an object and starts listening for mouse events
MRVIEWER_API MR::PickPointManager::~PickPointManager | ( | ) |
destroy this and remove the undo/redo actions referring this from the history.
MRVIEWER_API bool MR::PickPointManager::appendPoint | ( | const std::shared_ptr< VisualObject > & | obj, |
const PickedPoint & | triPoint ) |
Add a point to the end of non closed contour connected with obj.
MRVIEWER_API void MR::PickPointManager::clear | ( | ) |
removes all points from all objects
MRVIEWER_API bool MR::PickPointManager::closeContour | ( | const std::shared_ptr< VisualObject > & | obj, |
bool | makeClosed = true ) |
|
inlinenodiscard |
returns point widget currently dragged by mouse
MRVIEWER_API FullState MR::PickPointManager::getFullState | ( | ) | const |
returns the state of this
|
nodiscard |
returns point widget by index from given object or nullptr if no such widget exists
|
inlinenodiscard |
return contour for specific object (creating new one if necessary)
|
inlinenodiscard |
return all contours, i.e. per object unorderd_map of ordered surface points [vector].
|
nodiscard |
check whether the contour is closed for a particular object.
MRVIEWER_API bool MR::PickPointManager::removePoint | ( | const std::shared_ptr< VisualObject > & | obj, |
int | pickedIndex ) |
Remove point with pickedIndex index from contour connected with obj.
MRVIEWER_API void MR::PickPointManager::setFullState | ( | FullState | s | ) |
removes all current points, then adds pick points on all objects as prescribed by given state
Params MR::PickPointManager::params |