35 #ifndef ANA_MOBJECT_MOBJECT_H 36 #define ANA_MOBJECT_MOBJECT_H 43 class ObjectListIterator;
44 class const_ObjectListIterator;
45 class ObjectVectorIterator;
46 class const_ObjectVectorIterator;
48 class const_AGraphIterator;
49 class Fusion2DIterator;
50 class const_Fusion2DIterator;
51 class Fusion3DIterator;
52 class const_Fusion3DIterator;
53 class ATexSurfaceIterator;
54 class const_ATexSurfaceIterator;
81 virtual bool operator != (
const const_Fusion2DIterator & )
const 85 virtual bool operator != (
const const_Fusion3DIterator & )
const 97 inline bool BaseIterator::operator ==
101 return( ! (
operator != (x)) );
105 inline bool BaseIterator::operator !=
108 return( i.operator != ( *
this ) );
168 if(
this == &i )
return( *
this );
244 virtual const MObject* mObjectAPI()
const;
251 virtual int MType()
const = 0;
254 virtual void setReferentialInheritance(
AObject* );
258 virtual size_t size()
const = 0;
259 virtual iterator begin() = 0;
260 virtual const_iterator begin()
const = 0;
261 virtual iterator end() = 0;
262 virtual const_iterator end()
const = 0;
263 virtual void insert(
AObject * ) = 0;
264 virtual const_iterator find(
const AObject * )
const = 0;
265 virtual void erase( iterator & ) = 0;
266 void eraseObject(
AObject *obj );
269 virtual float MinT()
const;
270 virtual float MaxT()
const;
272 virtual bool boundingBox2D( std::vector<float> & bmin,
273 std::vector<float> & bmax )
const;
275 virtual std::vector<float> voxelSize()
const;
276 virtual bool boundingBox( std::vector<float> & bmin,
277 std::vector<float> & bmax )
const;
284 virtual AObject* objectAt(
const std::vector<float> & pos,
float tol = 0 );
291 virtual bool renderingIsObserverDependent()
const;
293 virtual bool Is2DObject();
295 virtual bool Is3DObject();
296 virtual bool isTransparent()
const;
305 virtual void update(
const Observable* observable,
void* arg);
308 virtual bool CanRemove(
AObject *obj );
313 virtual void setContentChanged()
const;
314 bool hasContentChanged()
const;
320 virtual void clearHasChangedFlags()
const;
323 virtual void SetMaterial(
const Material & mat );
327 virtual bool shouldRemoveChildrenWithMe()
const;
336 virtual std::list<AObject *> generativeChildren()
const;
340 virtual void _insertObject(
AObject* o );
342 virtual void _eraseObject(
AObject* o );
343 virtual void updateSubObjectReferential(
const AObject* o );
344 virtual void clearReferentialInheritance();
367 std::cout <<
"unable to erase object " << obj->
name()
369 <<
name() <<
" : object not found\n";
virtual AObject * operator*() const =0
virtual bool operator!=(const BaseIterator &) const
ViewState holds information about how a view wants to see an object.
Base Anatomist object (abstract)
Multi-object generic iterator.
std::list< carto::rc_ptr< GLItem > > PrimList
BaseIterator * _iterator
Underlying specific iterator.
Multi-object : base abstract class for objects that contain others.
void datatype
Data storage type, to be redefined by children classes.
This class can be subclassed to represent an object that the programmer wants to have observed...
void eraseObject(AObject *obj)
std::string name() const
Name shown in control window.
This class has to be rewritten, it's really really a shame.......
virtual bool CanRemove(AObject *obj)
virtual BaseIterator & operator--()=0
virtual const_iterator find(const AObject *) const =0
Textured surface iterator.
Textured surface const_iterator.
void setChanged() const
Indicates that this object has changed.
bool operator==(const AIterator &) const
bool operator==(const BaseIterator &) const
virtual void erase(iterator &)=0
virtual BaseIterator & operator++()=0
int isMultiObject() const
maybe not necessary ?: we can use dynamic_cast instead
Referential: marker for transformations, with an associated color.
bool operator!=(const AIterator &) const
virtual BaseIterator * clone() const =0
AIterator & operator=(const AIterator &)
BaseIterator & subIterator()
AObject * operator*() const
reference_wrapper< T > ref(T &ref)