MeshLib C++ Docs
Loading...
Searching...
No Matches

#include <MRViewer/MRPickPointManager.h>

Inheritance diagram for MR::PickPointManager:

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<VisualObject> obj, int index )>
using AllowCallBack = std::function<bool( const std::shared_ptr<VisualObject>& obj, int index )>
using ChangeObjectCallBack = std::function<bool( const std::shared_ptr<VisualObject>& obj )>
using SurfaceContour = std::vector<std::shared_ptr<SurfacePointWidget>>
using SurfaceContours = std::unordered_map <std::shared_ptr<VisualObject>, SurfaceContour>
using FullState = std::vector<ObjectState>

Public Member Functions

 PickPointManager ()
 create an object and starts listening for mouse events
 ~PickPointManager ()
 destroy this and remove the undo/redo actions referring this from the history.
const SurfaceContourgetSurfaceContour (const std::shared_ptr< VisualObject > &obj)
 return contour for specific object (creating new one if necessary)
const SurfaceContoursgetSurfaceContours () const
 return all contours, i.e. per object unorderd_map of ordered surface points [vector].
bool isClosedContour (const std::shared_ptr< VisualObject > &obj) const
 check whether the contour is closed for a particular object.
size_t numPickPoints (const std::shared_ptr< VisualObject > &obj) const
 returns the total number of pick points (including extra point if the contour is closed) on given object
std::shared_ptr< SurfacePointWidgetgetPointWidget (const std::shared_ptr< VisualObject > &obj, int index) const
 returns point widget by index from given object or nullptr if no such widget exists
int getPointIndex (const std::shared_ptr< VisualObject > &obj, SurfacePointWidget &pointWidget) const
 returns index of given point widget on given object or -1 if this widget is not from given object
SurfacePointWidgetdraggedPointWidget () const
 returns point widget currently dragged by mouse
bool appendPoint (const std::shared_ptr< VisualObject > &obj, const PickedPoint &triPoint, bool startDragging=false)
bool insertPoint (const std::shared_ptr< VisualObject > &obj, int index, const PickedPoint &triPoint, bool startDragging=false)
bool removePoint (const std::shared_ptr< VisualObject > &obj, int pickedIndex)
 Remove point with pickedIndex index from contour connected with obj.
bool closeContour (const std::shared_ptr< VisualObject > &obj, bool makeClosed=true)
FullState getFullState () const
 returns the state of this
void clear ()
 removes all points from all objects
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

Detailed Description

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 (if enabled)


The documentation for this class was generated from the following file: