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