58 class Transformation ;
64 class PaintActionSharedData ;
65 struct PaintActionView_Private ;
81 void brushSelection(
int id ) ;
82 void brushSizeChange(
int size ) ;
83 void regionTransparencyChange(
int alpha ) ;
89 void replaceModeOn() ;
90 void replaceModeOff() ;
91 void linkedCursorModeOn() ;
92 void linkedCursorModeOff() ;
96 void clearRegionAction() ;
100 anatomist::PaintActionView_Private * _private ;
127 float brushSize,
bool lineMode,
131 std::list< std::pair< Point3d, ChangesItem> > & changes,
161 if ( p[0] < 0 || p[0] > o->
getSizeX() - 1 ||
162 p[1] < 0 || p[1] > o->
getSizeY() - 1 ||
163 p[2] < 0 || p[2] > o->
getSizeZ() - 1 )
180 float brushSize,
bool lineMode,
184 std::list< std::pair< Point3d, ChangesItem> > & changes,
203 float brushSize,
bool lineMode,
207 std::list< std::pair< Point3d, ChangesItem> > & changes,
227 float brushSize,
bool lineMode,
231 std::list< std::pair< Point3d, ChangesItem> > & changes,
246 std::list< std::pair< Point3d, ChangesItem> > & changes,
262 float brushSize,
bool lineMode,
266 std::list< std::pair< Point3d, ChangesItem> > & changes,
280 std::list< std::pair< Point3d, ChangesItem> > & changes,
284 const std::vector<Point3d>& brush(
int size ) ;
308 bool myFollowingLinkedCursor ;
313 bool myIsChangeValidated ;
317 std::list< std::pair< Point3d, ChangesItem> > * myCurrentChanges ;
323 bool myCursorShapeChanged;
334 virtual std::string
name()
const;
346 bool lineMode() {
return _sharedData->myLineMode ; }
362 bool mmMode() {
return _sharedData->myMmMode ;}
367 void paint(
int x,
int y,
int globalX,
int globalY ) ;
370 void erase(
int x,
int y,
int globalX,
int globalY ) ;
373 void fill(
int x,
int y,
int globalX,
int globalY ) ;
414 std::list<AWindow3D*> myLinkedWindows ;
416 void copySlice(
bool wholeSession,
int sliceIncrement ) ;
3D window, OpenGL rendering
PaintActionView(anatomist::PaintAction *, QWidget *)
virtual void update(const anatomist::Observable *observable, void *arg)
This method is called whenever the observed object is changed.
A private class: slider with specific data storage (for callbacks client data), no use for it anywher...
std::map< Point3d, T, BucketMapLess > Bucket
Base Anatomist object (abstract)
virtual ~BallPaintStrategy()
virtual void brushPainter(const Point3d &pToInt, const AObject *originalLabel, AObject *finalLabel, float brushSize, carto::VolumeRef< AObject * > &volumeOfLabels, const Point3df &voxelSize, const Point3df &vlOffset, aims::BucketMap< Void >::Bucket &deltaModifications, std::list< std::pair< Point3d, ChangesItem > > &changes, bool replace, bool mm)
virtual void paint(AWindow3D *win, Transformation *transf, const Point3df &point, const AObject *originalLabel, AObject *finalLabel, float brushSize, bool lineMode, carto::VolumeRef< AObject * > &volumeOfLabels, const Point3df &vlOffset, aims::BucketMap< Void >::Bucket &deltaModifications, std::list< std::pair< Point3d, ChangesItem > > &changes, const Point3df &voxelSize, bool line, bool replace, bool mm)
Draw.
virtual PaintType paintType()
virtual ~DiskPaintStrategy()
virtual void brushPainter(const Point3df &diskCenter, const Point3df &n, const AObject *originalLabel, AObject *finalLabel, float brushSize, carto::VolumeRef< AObject * > &volumeOfLabels, const Point3df &voxelSize, const Point3df &vlOffset, aims::BucketMap< Void >::Bucket &deltaModifications, std::list< std::pair< Point3d, ChangesItem > > &changes, bool replace, bool mm)
virtual PaintType paintType()
virtual void paint(AWindow3D *win, Transformation *transf, const Point3df &point, const AObject *originalLabel, AObject *finalLabel, float brushSize, bool lineMode, carto::VolumeRef< AObject * > &volumeOfLabels, const Point3df &vlOffset, aims::BucketMap< Void >::Bucket &deltaModifications, std::list< std::pair< Point3d, ChangesItem > > &changes, const Point3df &voxelSize, bool line, bool replace, bool mm)
Draw.
This class can be subclassed to represent an object that the programmer wants to have observed.
void addObserver(Observer *observer)
Adds an observer to the set of observers for this object.
void setChanged() const
Indicates that this object has changed.
bool hasChanged() const
Tests if this object has changed.
virtual void notifyUnregisterObservers()
Notifies observable destruction to all observers and unregisters them.
void deleteObserver(Observer *observer)
Deletes an observer from the set of observers of this object.
virtual void notifyObservers(void *arg=0)
If this object has changed, as indicated by the hasChanged method, then notify all of its observers.
A class can implement the Observer interface when it wants to be informed of changes in observable ob...
virtual void update(const Observable *observable, void *arg)
This method is called whenever the observed object is changed.
static PaintActionSharedData * instance()
virtual ~PaintActionSharedData()
void fillRegion2D(const Point3d &seed, const Point3d &bmin, const Point3d &bmax, Point3d neighbour[], carto::VolumeRef< AObject * > &volumeOfLabels, AObject *final, std::list< std::pair< Point3d, ChangesItem > > &changes)
void copyPreviousSliceCurrentRegion()
void copyNextSliceCurrentRegion()
void notifyUnregisterObservers()
enum PaintStrategy::PaintType paintType()
void followingLinkedCursorOn()
void moveCursor(int x, int y, int globalX, int globalY)
void notifyObservers(void *arg=0)
virtual QWidget * actionView(QWidget *)
void copyPreviousSliceWholeSession()
virtual bool viewableAction() const
void eraseStart(int x, int y, int globalX, int globalY)
void addObserver(Observer *observer)
void change(bool forward)
void fill(int x, int y, int globalX, int globalY)
static Action * creator()
bool followingLinkedCursorMode()
void erase(int x, int y, int globalX, int globalY)
void deleteObserver(Observer *observer)
void changeCursor(bool cross)
void paint(int x, int y, int globalX, int globalY)
void changeRegionTransparency(float alpha)
void followingLinkedCursorOff()
void paintStart(int x, int y, int globalX, int globalY)
void validateChange(int x=0, int y=0, int globalX=0, int globalY=0)
void copyNextSliceWholeSession()
virtual std::string name() const
bool myPreviousPointExists
bool in(const carto::VolumeRef< AObject * > &o, Point3df p, const Point3df &offset)
static std::list< Point3d > drawFastLine(const Point3d &from, const Point3d &dep)
virtual PaintType paintType()=0
static std::list< Point3df > drawLine(const Point3df &from, const Point3df &dep)
static void brushPainter()
virtual void paint(AWindow3D *win, Transformation *transf, const Point3df &point, const AObject *originalLabel, AObject *finalLabel, float brushSize, bool lineMode, carto::VolumeRef< AObject * > &volumeOfLabels, const Point3df &vlOffset, aims::BucketMap< Void >::Bucket &deltaModifications, std::list< std::pair< Point3d, ChangesItem > > &changes, const Point3df &voxelSize, bool line, bool replace, bool mm)=0
Draw.
virtual PaintType paintType()
virtual ~PointPaintStrategy()
virtual void paint(AWindow3D *win, Transformation *transf, const Point3df &point, const AObject *originalLabel, AObject *finalLabel, float brushSize, bool lineMode, carto::VolumeRef< AObject * > &volumeOfLabels, const Point3df &vlOffset, aims::BucketMap< Void >::Bucket &deltaModifications, std::list< std::pair< Point3d, ChangesItem > > &changes, const Point3df &voxelSize, bool line, bool replace, bool mm)
Draw.
Referential: marker for transformations, with an associated color.
static RoiChangeProcessor * instance()
virtual PaintType paintType()
virtual void paint(AWindow3D *win, Transformation *transf, const Point3df &point, const AObject *originalLabel, AObject *finalLabel, float brushSize, bool lineMode, carto::VolumeRef< AObject * > &volumeOfLabels, const Point3df &vlOffset, aims::BucketMap< Void >::Bucket &deltaModifications, std::list< std::pair< Point3d, ChangesItem > > &changes, const Point3df &voxelSize, bool line, bool replace, bool mm)
Draw.
virtual ~SquarePaintStrategy()