![]() |
anatomist
5.1.2
3D neuroimaging data viewer
|
Multi-object : base abstract class for objects that contain others. More...
#include <anatomist/mobject/MObject.h>
Public Types | |
typedef AIterator | iterator |
typedef AIterator | const_iterator |
![]() | |
enum | ObjectType { VOLUME , BUCKET , FACET , TRIANG , LIST , VECTOR , MAP , SET , GRAPH , GRAPHOBJECT , VOLSURF , MULTISURF , MULTIBUCKET , MULTIVOLUME , FUSION2D , FUSION3D , FASCICLE , FASCICLEGRAPH , TEXTURE , TEXSURFACE , FUSION2DMESH , VECTORFIELD , OTHER } |
Base object type identifiers. More... | |
typedef std::set< MObject * > | ParentList |
Storage type for parent objects (multi-objects containing this one) More... | |
typedef ObjectMenu *(* | ObjectMenuRegistrerFunction) (const AObject *objtype, ObjectMenu *menu) |
dynamic menu registration function More... | |
![]() | |
typedef int | RefCounterType |
Public Member Functions | |
MObject () | |
virtual | ~MObject () |
virtual const MObject * | mObjectAPI () const |
virtual MObject * | mObjectAPI () |
Identification handling functions | |
int | isMultiObject () const |
maybe not necessary ?: we can use dynamic_cast instead More... | |
virtual int | MType () const =0 |
Precise type of multi-object. More... | |
virtual void | setReferential (Referential *ref) |
virtual void | setReferentialInheritance (AObject *) |
Container methods | |
virtual size_t | size () const =0 |
virtual iterator | begin ()=0 |
virtual const_iterator | begin () const =0 |
virtual iterator | end ()=0 |
virtual const_iterator | end () const =0 |
virtual void | insert (AObject *)=0 |
virtual const_iterator | find (const AObject *) const =0 |
virtual void | erase (iterator &)=0 |
void | eraseObject (AObject *obj) |
virtual float | MinT () const |
Obsolete, deprecated. More... | |
virtual float | MaxT () const |
Obsolete, deprecated. More... | |
virtual bool | boundingBox2D (std::vector< float > &bmin, std::vector< float > &bmax) const |
Bounding box in 2D views mode. More... | |
virtual std::vector< float > | voxelSize () const |
Returns at least 4 sizes. For 3D objects, returns (1, 1, 1, 1) More... | |
virtual bool | boundingBox (std::vector< float > &bmin, std::vector< float > &bmax) const |
Fills bmin and bmax with the N-D bounding box extrema in the object's referential coordinates. More... | |
Contents / volume of labels handling | |
virtual AObject * | objectAt (const std::vector< float > &pos, float tol=0) |
Find the object (sub-object) at given postion with a tolerence. More... | |
Graphics rendering inherited functions | |
virtual std::list< AObject * > | renderedSubObjects (const ViewState &) const |
lis of objects displayed in render() in a default implementation More... | |
virtual bool | render (PrimList &, const ViewState &) |
rendering (generally 2D or 3D using OpenGL). More... | |
virtual bool | renderingIsObserverDependent () const |
true only if the rendering (openGL) of the object changes with the observer position/orientation of the view (which is rare, but typically needed for Volume Rendering) More... | |
virtual bool | Is2DObject () |
Can be display in 2D windows. More... | |
virtual bool | Is3DObject () |
Can be display in 3D windows. More... | |
virtual bool | isTransparent () const |
Observer inherited functions | |
virtual void | update (const Observable *observable, void *arg) |
This class is an Observer of each of the AObject it groups. More... | |
virtual bool | CanRemove (AObject *obj) |
![]() | |
AObject (const std::string &filename="") | |
virtual | ~AObject () |
AObject subclasses must call cleanup() in their destructor. More... | |
virtual AObject * | clone (bool shallow=true) |
Makes a copy of the object, with a duplicated object structure, palette and material, but which may share the underlying low-level data object (Aims object). More... | |
virtual const GLComponent * | glAPI () const |
OpenGL objects const API. More... | |
virtual GLComponent * | glAPI () |
OpenGL objects API. More... | |
int | type () const |
Object type identifier. More... | |
void | setType (int type) |
Method to set type id, because type() is not virtual. More... | |
int | id () const |
Unique ID assigned upon construction, but somewhat unused now... More... | |
std::string | name () const |
Name shown in control window. More... | |
std::string | fileName () const |
File name (if any) for loaded objects. More... | |
void | setName (const std::string &n) |
void | setFileName (const std::string &filename) |
void | setId (int id) |
virtual void | setVoxelSize (const std::vector< float > &) |
virtual void | internalUpdate () |
Updates the state of the object. More... | |
virtual void | adjustPalette () |
Creates or updates object palette according to object values (if needed) More... | |
virtual AObjectPalette * | palette () |
Normally, getOrCreatePalette() should be used instead of this function in most cases. More... | |
virtual const AObjectPalette * | palette () const |
virtual const AObjectPalette * | getOrCreatePalette () const |
User normally calls this function. More... | |
virtual void | createDefaultPalette (const std::string &name="") |
function called by getOrCreatePalette() - overloadable, need not be called directly More... | |
virtual Material & | GetMaterial () |
virtual const Material & | material () const |
Referential * | getReferential () const |
AObject * | referentialInheritance () const |
if not null, the object referential is inherited from this object More... | |
virtual AObject * | fallbackReferentialInheritance () const |
object to take referential from when no ref is assigned More... | |
const Referential * | previousReferential () const |
Referential that the object was in before the last change. More... | |
virtual Tree * | optionTree () const |
Menu tree for new options, see object/optionMatcher.h. More... | |
virtual ObjectMenu * | optionMenu () const |
int | InMemory () const |
For objects loading only when needed (not used yet...) More... | |
int | Visible () const |
Visibility in control window. More... | |
void | SetVisibility (int v) |
ParentList & | Parents () |
List of multi-objects containing this one. Obsolete: use parents() More... | |
ParentList & | parents () |
List of multi-objects containing this one. More... | |
const ParentList & | parents () const |
List of multi-objects containing this one. More... | |
virtual void | RegisterParent (MObject *pob) |
virtual void | UnregisterParent (MObject *pob) |
const std::set< AWindow * > & | WinList () |
List of windows showing this object. More... | |
virtual void | registerWindow (AWindow *window) |
virtual void | unregisterWindow (AWindow *window) |
virtual bool | IsFusion2DAllowed () |
virtual bool | textured2D () const |
true if 2D rendering uses a textured plane (not a full openGL object) More... | |
virtual int | CanBeDestroyed () |
Allows / unallows destruction of object. More... | |
virtual void | setReferenceChanged () |
bool | hasReferenceChanged () const |
virtual void | setInternalsChanged () |
Notifies some underlying lower-level objects have changed. More... | |
bool | userModified () const |
if the object has been modified by user interaction, and needs saving More... | |
void | setUserModified (bool state=true) |
if the object has been modified by user interaction, and needs saving More... | |
virtual AObject * | objectAt (const std::vector< float > &pos, float tol, const Referential *orgref, const Point3df &orggeom) |
Same with origin window referential. More... | |
virtual void | setGeomExtrema () |
Scans the object internals and determines its geometry extrema. More... | |
virtual void | SetExtrema () |
Scans the object internals and determines its (texture) extrema values. More... | |
virtual bool | hasTexture () const |
Textured objects have values associated with a geometric coordinate. More... | |
virtual unsigned | dimTexture () const |
Number of texture values for a point. More... | |
virtual float | mixedTexValue (const std::vector< float > &pos, const Referential *orgRef) const |
Gets a "mixed" texture value at a given space / time location. More... | |
virtual float | mixedTexValue (const std::vector< float > &pos) const |
Same as above except that coordinates are not transformed but taken in object coordinates system. More... | |
virtual std::vector< float > | texValues (const std::vector< float > &pos, const Referential *orgRef) const |
Gets the array of texture values at a given location. More... | |
virtual std::vector< float > | texValues (const std::vector< float > &pos) const |
virtual bool | loadable () const |
virtual bool | savable () const |
virtual bool | reload (const std::string &filename) |
Re-reads objects from disk. More... | |
virtual std::string | objectFullTypeName (void) const |
Get Object Full Type Name. More... | |
bool | save (const std::string &filename, bool onlyIfModified) |
virtual bool | save (const std::string &filename) |
virtual bool | printTalairachCoord (const Point3df &, const Referential *) const |
should be replaced by a real referential More... | |
void | setHeaderOptions () |
Set some object properties according to the header (.minf), such as material, palette etc. More... | |
virtual void | setProperties (carto::Object options) |
Same as setHeaderOptions() and used by it, allows passing a dictionary. More... | |
virtual void | storeHeaderOptions () |
Store some object properties into the header (.minf), such as material, palette etc before saving the object. More... | |
virtual carto::Object | makeHeaderOptions () const |
get object properties into a generic object, such as material, palette etc before saving the object More... | |
long | loadDate () const |
Time the object was created, loaded or reloaded. More... | |
void | setLoadDate (long t) |
bool | isCopy () const |
void | setCopyFlag (bool x=true) |
virtual std::string | toolTip () const |
tooltip displayed in 3D views (HTML). More... | |
carto::Object | aimsMeshFromGLComponent () |
![]() | |
Observable () | |
Construct an Observable with zero observers. More... | |
virtual | ~Observable () |
does nothing More... | |
void | addObserver (Observer *observer) |
Adds an observer to the set of observers for this object. More... | |
void | deleteObserver (Observer *observer) |
Deletes an observer from the set of observers of this object. More... | |
void | deleteObservers () |
Clears the observer list so that this object no longer has any observers (doesn't call any observer method - see notifyUnregisterObservers() for this ) More... | |
int | countObservers () const |
Returns the number of observers of this object. More... | |
virtual void | notifyObservers (void *arg=0) |
If this object has changed, as indicated by the hasChanged method, then notify all of its observers. More... | |
virtual void | notifyUnregisterObservers () |
Notifies observable destruction to all observers and unregisters them. More... | |
bool | hasChanged () const |
Tests if this object has changed. More... | |
bool | obsHasChanged (int) const |
only valid during an Observer::update() More... | |
bool | obsHasChanged (const std::string &) const |
only valid during an Observer::update() More... | |
void | setChanged () const |
Indicates that this object has changed. More... | |
![]() | |
SharedObject () | |
SharedObject (const SharedObject &x) | |
virtual | ~SharedObject () |
SharedObject & | operator= (const SharedObject &) |
bool | testDeletable () |
bool | tryDelete () |
![]() | |
void | attachWeakPtr (weak_ptr< T > &) const |
void | detachWeakPtr (weak_ptr< T > &) const |
void | attachWeakPtr (weak_shared_ptr< T > &) const |
void | detachWeakPtr (weak_shared_ptr< T > &) const |
virtual | ~WeakObject () |
![]() | |
RCObject () | |
RCObject (const RCObject &) | |
RCObject & | operator= (const RCObject &) |
virtual | ~RCObject () |
![]() | |
virtual | ~Observer () |
Handling has-changed flags <br> | |
bool | _contentHasChanged |
virtual void | setContentChanged () const |
bool | hasContentChanged () const |
virtual void | clearHasChangedFlags () const |
virtual void | SetMaterial (const Material &mat) |
virtual void | setPalette (const AObjectPalette &pal) |
virtual bool | shouldRemoveChildrenWithMe () const |
tells whether children objects should be removed from views when this MObject is removed from a view. More... | |
virtual std::list< AObject * > | generativeChildren () const |
Children objects which have been used to build the current MObject. More... | |
virtual void | _insertObject (AObject *o) |
must be called by all subclasses in their insert() implementation More... | |
virtual void | _eraseObject (AObject *o) |
must be called by all subclasses if they reimplement erase() More... | |
virtual void | updateSubObjectReferential (const AObject *o) |
virtual void | clearReferentialInheritance () |
sets the object to get referential from to null, unregister it More... | |
Additional Inherited Members | |
![]() | |
static std::list< AObject * > | load (const std::string &filename) |
Static object loader: creates an objects, loads its contents. More... | |
static bool | reload (AObject *object, bool onlyoutdated=false) |
Reads from disk again. More... | |
static int | registerObjectType (const std::string &id) |
Creates a new object type number and returns it. More... | |
static std::string | objectTypeName (int type) |
static void | setObjectMenu (std::string type, carto::rc_ptr< ObjectMenu > om) |
static carto::rc_ptr< ObjectMenu > | getObjectMenu (std::string type) |
static std::map< std::string, carto::rc_ptr< ObjectMenu > > & | getObjectMenuMap () |
static void | addObjectMenuRegistration (ObjectMenuRegistrerFunction) |
static void | addObjectMenuRegistration (ObjectMenuRegistrerClass *) |
static void | cleanStatic () |
cleanup static global variables (called when quitting anatomist) More... | |
![]() | |
const PrimList & | primitives () const |
PrimList & | primitives () |
virtual void | cleanup () |
must be called by objects destructors - Must be explicitly called by each object destructor since it can call virtual functions More... | |
AObject *& | _referentialInheritance () |
provide access to derived classes More... | |
virtual void | unregisterObservable (Observable *) |
Called when an observable is destroyed, only called by Observable: don't use this function directly. More... | |
AObject (const AObject &) | |
copy constructor, protected and used only to reimplement clone() More... | |
![]() | |
void | clearChanged () const |
Indicates that this object has no longer changed, or that it has already notified all of its observers of its most recent change. More... | |
void | obsSetChanged (int, bool=true) const |
int-based change flags (use enums to address them) More... | |
void | obsSetChanged (const std::string &, bool=true) const |
string-based change flags More... | |
![]() | |
void | disableRefCount () |
![]() | |
WeakObject () | |
WeakObject (const WeakObject &) | |
WeakObject & | operator= (const WeakObject &) |
![]() | |
virtual void | cleanupObserver () |
call this function from inherited classes destructors. More... | |
virtual void | registerObservable (Observable *) |
only called by Observable: don't use this function directly More... | |
const std::set< Observable * > & | observed () const |
![]() | |
int | _type |
Should be static in each object class. More... | |
int | _id |
std::string | _name |
std::string | _filename |
std::set< AWindow * > | _winList |
int | _inMemory |
int | _visible |
ParentList | _parents |
Material | _material |
Should be a pointer: some objects don't have a material (2D objects) More... | |
Referential * | _referential |
Referentiel. More... | |
bool | _referenceHasChanged |
Reference has-changed flag. More... | |
AObjectPalette * | _palette |
Palette. More... | |
![]() | |
static std::map< std::string, int > | _objectTypes |
name-to-type map More... | |
static std::map< int, std::string > | _objectTypeNames |
type-to-name map More... | |
static std::map< std::string, carto::rc_ptr< ObjectMenu > > | _objectmenu_map |
Object Menu Map. More... | |
Multi-object : base abstract class for objects that contain others.
|
inline |
Definition at line 352 of file MObject.h.
References _contentHasChanged.
|
virtual |
|
protectedvirtual |
must be called by all subclasses if they reimplement erase()
Referenced by anatomist::ObjectList::erase().
|
protectedvirtual |
must be called by all subclasses in their insert() implementation
Referenced by anatomist::GLObjectList::insert(), anatomist::GLObjectVector::insert(), anatomist::ObjectList::insert(), and anatomist::ObjectVector::insert().
|
pure virtual |
|
pure virtual |
|
virtual |
Fills bmin and bmax with the N-D bounding box extrema in the object's referential coordinates.
Changed in Anatomist 4.6. The older API was using Point3df instead of vector and informed only the spatial dimensions.
An object with no spatial information (a texture for instance) may still have time information. For this reason, the resulting bounding box should always have 4 components (at least), then 4th and additional ones should be valid, even if the function returns false (no spatial bounding box).
Reimplemented from anatomist::AObject.
Reimplemented in anatomist::AVolumeView< T >, anatomist::ATexSurface, anatomist::PlanarFusion3D, anatomist::CutMesh, anatomist::AConnectivityMatrix, anatomist::Fusion3D, and anatomist::AGraph.
Referenced by anatomist::Fusion2DMesh::boundingBox2D().
|
virtual |
Bounding box in 2D views mode.
In mm, may be the same as boundingBox() if the object field of view is the same in 3D and 2D modes. It normally includes voxels size (for a volume, bmin will be -vs/2 where vs is the voxel size, for the 3 first coordinates).
The default implementation just calls boundingBox().
Reimplemented from anatomist::AObject.
Reimplemented in anatomist::AVolumeView< T >, anatomist::Fusion2DMesh, and anatomist::AGraph.
|
inlinevirtual |
Reimplemented in anatomist::Slice, anatomist::ASurfMatcher, anatomist::TesselatedMesh, anatomist::PlanarFusion3D, anatomist::AMTexture, anatomist::CutMesh, anatomist::ClippedObject, anatomist::ObjectVector, anatomist::ObjectList, anatomist::GLObjectVector, anatomist::GLObjectList, anatomist::Fusion3D, anatomist::Fusion2D, anatomist::AVolumeView< T >, anatomist::ATexSurface, anatomist::VolRenderShader, anatomist::VolRender, and anatomist::AInterpoler.
|
virtual |
Reset has-changed flags Must be called after a call to notifyObservers function
to reset changes
Reimplemented from anatomist::AObject.
Reimplemented in anatomist::CutMesh.
|
protectedvirtual |
sets the object to get referential from to null, unregister it
Reimplemented from anatomist::AObject.
|
pure virtual |
|
pure virtual |
Implemented in anatomist::ATexSurface, anatomist::ObjectVector, anatomist::ObjectList, anatomist::GLObjectVector, anatomist::GLObjectList, and anatomist::AGraph.
Referenced by eraseObject().
|
pure virtual |
Implemented in anatomist::ObjectVector, anatomist::ObjectList, anatomist::GLObjectVector, anatomist::GLObjectList, and anatomist::AGraph.
Referenced by eraseObject().
|
inline |
Definition at line 358 of file MObject.h.
References _contentHasChanged, end(), erase(), find(), anatomist::AObject::name(), and anatomist::Observable::setChanged().
|
pure virtual |
Implemented in anatomist::ATexSurface, anatomist::ObjectVector, anatomist::ObjectList, anatomist::GLObjectVector, anatomist::GLObjectList, and anatomist::AGraph.
Referenced by eraseObject().
|
virtual |
Children objects which have been used to build the current MObject.
Typically in a fusion, some objects have been used to generate the fusion object, but the fusion may have additional children which are built to hold intermediate data.
The default implementation returns all children.
Reimplemented in anatomist::CutMesh.
bool anatomist::MObject::hasContentChanged | ( | ) | const |
|
pure virtual |
Implemented in anatomist::ObjectVector, anatomist::ObjectList, anatomist::GLObjectVector, anatomist::GLObjectList, and anatomist::AGraph.
|
virtual |
Can be display in 2D windows.
Implements anatomist::AObject.
Reimplemented in anatomist::AVolumeView< T >, anatomist::Slice, anatomist::VectorField, anatomist::ATexSurface, anatomist::TesselatedMesh, anatomist::PlanarFusion3D, anatomist::AMTexture, anatomist::Fusion2DMesh, anatomist::CutMesh, anatomist::ASparseMatrix, anatomist::VolRenderShader, anatomist::VolRender, anatomist::ClippedObject, anatomist::Fusion3D, anatomist::Fusion2D, anatomist::AInterpoler, and anatomist::AGraph.
|
virtual |
Can be display in 3D windows.
Implements anatomist::AObject.
Reimplemented in anatomist::AVolumeView< T >, anatomist::Slice, anatomist::VectorField, anatomist::ATexSurface, anatomist::TesselatedMesh, anatomist::PlanarFusion3D, anatomist::AMTexture, anatomist::CutMesh, anatomist::ASparseMatrix, anatomist::VolRenderShader, anatomist::VolRender, anatomist::ClippedObject, anatomist::Fusion3D, anatomist::Fusion2D, anatomist::AInterpoler, and anatomist::AGraph.
|
inlinevirtual |
maybe not necessary ?: we can use dynamic_cast instead
Reimplemented from anatomist::AObject.
|
virtual |
Reimplemented from anatomist::AObject.
Reimplemented in anatomist::AVolumeView< T >, anatomist::VolRenderShader, anatomist::VolRender, and anatomist::Fusion2D.
|
virtual |
Obsolete, deprecated.
Reimplemented from anatomist::AObject.
Reimplemented in anatomist::AVolumeView< T >.
|
virtual |
Obsolete, deprecated.
Reimplemented from anatomist::AObject.
Reimplemented in anatomist::AVolumeView< T >.
|
virtual |
Reimplemented from anatomist::AObject.
|
virtual |
Reimplemented from anatomist::AObject.
|
pure virtual |
Precise type of multi-object.
Implemented in anatomist::AVolumeView< T >, anatomist::Slice, anatomist::ASurfMatcher, anatomist::ATexSurface, anatomist::TesselatedMesh, anatomist::PlanarFusion3D, anatomist::AMTexture, anatomist::CutMesh, anatomist::AConnectivityMatrix, anatomist::ClippedObject, anatomist::ObjectVector, anatomist::ObjectList, anatomist::GLObjectVector, anatomist::GLObjectList, anatomist::Fusion3D, anatomist::Fusion2D, anatomist::AGraphObject, and anatomist::AGraph.
|
virtual |
Find the object (sub-object) at given postion with a tolerence.
Reimplemented from anatomist::AObject.
Reimplemented in anatomist::AGraph.
rendering (generally 2D or 3D using OpenGL).
Calls GLComponent API ig glAPI() is not null, otherwise nothing is done and this method should be overloaded.
Reimplemented from anatomist::AObject.
Reimplemented in anatomist::AVolumeView< T >, anatomist::ANormalsMesh, anatomist::GLMObject, anatomist::Slice, anatomist::VectorField, anatomist::TransformedObject, anatomist::TesselatedMesh, anatomist::Fusion2DMesh, anatomist::CutMesh, anatomist::AConnectivityMatrix, anatomist::VolRenderShader, anatomist::VolRender, anatomist::ClippedObject, anatomist::Fusion3D, anatomist::Fusion2D, and anatomist::AGraph.
|
virtual |
lis of objects displayed in render() in a default implementation
Reimplemented in anatomist::CutMesh, anatomist::AGraphObject, and anatomist::AGraph.
|
virtual |
true only if the rendering (openGL) of the object changes with the observer position/orientation of the view (which is rare, but typically needed for Volume Rendering)
Reimplemented from anatomist::AObject.
Reimplemented in anatomist::TransformedObject, anatomist::VolRenderShader, and anatomist::VolRender.
|
virtual |
|
virtual |
Reimplemented from anatomist::AObject.
Reimplemented in anatomist::Slice, anatomist::VolRenderShader, anatomist::VolRender, anatomist::ClippedObject, anatomist::AGraphObject, anatomist::AGraph, anatomist::VectorField, anatomist::TesselatedMesh, anatomist::Fusion2DMesh, and anatomist::CutMesh.
|
virtual |
Reimplemented from anatomist::AObject.
Reimplemented in anatomist::Slice, anatomist::VectorField, anatomist::ClippedObject, anatomist::VolRenderShader, anatomist::VolRender, and anatomist::AGraph.
|
virtual |
Reimplemented from anatomist::AObject.
|
virtual |
Reimplemented from anatomist::AObject.
|
virtual |
tells whether children objects should be removed from views when this MObject is removed from a view.
Useful for graphs.
Reimplemented in anatomist::AGraph.
|
pure virtual |
|
virtual |
This class is an Observer of each of the AObject it groups.
Reimplemented from anatomist::AObject.
Reimplemented in anatomist::AVolumeView< T >, anatomist::Slice, anatomist::ATexSurface, anatomist::TesselatedMesh, anatomist::ANormalsMesh, anatomist::PlanarFusion3D, anatomist::CutMesh, anatomist::AConnectivityMatrix, anatomist::VolRenderShader, anatomist::VolRender, anatomist::ClippedObject, anatomist::Fusion3D, anatomist::Fusion2D, anatomist::AInterpoler, anatomist::VectorField, anatomist::AMTexture, anatomist::Fusion2DMesh, and anatomist::GLMObject.
|
protectedvirtual |
|
virtual |
Returns at least 4 sizes. For 3D objects, returns (1, 1, 1, 1)
Reimplemented from anatomist::AObject.
Reimplemented in anatomist::AVolumeView< T >, anatomist::VectorField, anatomist::Fusion2DMesh, anatomist::VolRender, anatomist::Fusion2D, and anatomist::AGraph.
|
mutableprotected |
Definition at line 348 of file MObject.h.
Referenced by eraseObject(), and MObject().