![]() |
anatomist
5.0.5
3D neuroimaging data viewer
|
#include <anatomist/object/volrendershader.h>
Public Member Functions | |
VolRenderShader (AObject *vol) | |
virtual | ~VolRenderShader () |
virtual bool | render (PrimList &, const ViewState &) |
rendering (generally 2D or 3D using OpenGL). More... | |
virtual bool | Is2DObject () |
Can be display in 2D windows. More... | |
virtual bool | Is3DObject () |
Can be display in 3D windows. More... | |
virtual Tree * | optionTree () const |
Menu tree for new options, see object/optionMatcher.h. More... | |
virtual bool | CanRemove (AObject *) |
void | createDefaultPalette (const std::string &name="") |
function called by getOrCreatePalette() - overloadable, need not be called directly More... | |
virtual AObjectPalette * | palette () |
Normally, getOrCreatePalette() should be used instead of this function in most cases. More... | |
virtual const AObjectPalette * | palette () const |
virtual void | setPalette (const AObjectPalette &pal) |
virtual Material & | GetMaterial () |
virtual const Material & | material () const |
virtual const Material * | glMaterial () const |
virtual void | SetMaterial (const Material &mat) |
virtual bool | isTransparent () const |
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 void | glSetChanged (glPart, bool=true) const |
virtual void | glSetTexImageChanged (bool=true, unsigned tex=0) const |
virtual void | glSetTexEnvChanged (bool=true, unsigned tex=0) const |
virtual const GLComponent * | glAPI () const |
virtual GLComponent * | glAPI () |
virtual const AObjectPalette * | glPalette (unsigned tex=0) const |
virtual unsigned | glDimTex (const ViewState &, unsigned tex=0) const |
texture dimension (1, 2 [or 3]) More... | |
virtual bool | glMakeTexImage (const ViewState &state, const GLTexture &gltex, unsigned tex) const |
If you make non-standard textures (ie not from a palette), overload this function to fill gltex . More... | |
virtual bool | glMakeBodyGLL (const ViewState &state, const GLList &gllist) const |
If you want to make a non-standard GL display list for the body geometry, overload this function to fill gllist . More... | |
virtual const GLComponent::TexExtrema & | glTexExtrema (unsigned tex=0) const |
virtual GLComponent::TexExtrema & | glTexExtrema (unsigned tex=0) |
virtual void | update (const Observable *observable, void *arg) |
This class is an Observer of each of the AObject it groups. More... | |
bool | checkObject () const |
std::string | shaderType () const |
bool | setShaderType (const std::string &) |
![]() | |
ObjectVector () | |
virtual | ~ObjectVector () |
virtual int | MType () const |
Precise type of multi-object. More... | |
virtual size_t | size () const |
virtual iterator | begin () |
virtual const_iterator | begin () const |
virtual iterator | end () |
virtual const_iterator | end () const |
virtual void | insert (AObject *) |
virtual void | insert (AObject *, int pos) |
virtual void | insert (const carto::shared_ptr< AObject > &, int pos=-1) |
virtual const_iterator | find (const AObject *) const |
virtual const_iterator | find (const carto::shared_ptr< AObject > &) const |
virtual void | erase (iterator &) |
![]() | |
MObject () | |
virtual | ~MObject () |
virtual const MObject * | mObjectAPI () const |
virtual MObject * | mObjectAPI () |
virtual void | setReferential (Referential *ref) |
virtual void | setReferentialInheritance (AObject *) |
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... | |
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... | |
int | isMultiObject () const |
maybe not necessary ?: we can use dynamic_cast instead More... | |
void | eraseObject (AObject *obj) |
virtual AObject * | objectAt (const std::vector< float > &pos, float tol=0) |
Find the object (sub-object) at given postion with a tolerence. More... | |
virtual void | setContentChanged () const |
bool | hasContentChanged () const |
virtual void | clearHasChangedFlags () const |
Reset has-changed flags Must be called after a call to notifyObservers function to reset changes More... | |
![]() | |
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... | |
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 const AObjectPalette * | getOrCreatePalette () const |
User normally calls this function. More... | |
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 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 | 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... | |
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... | |
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 () |
![]() | |
GLComponent () | |
virtual | ~GLComponent () |
virtual const Sliceable * | sliceableAPI () const |
virtual Sliceable * | sliceableAPI () |
virtual void | glClearHasChangedFlags () const |
virtual bool | glHasChanged (glPart) const |
void | setShader (const Shader &shader) |
void | removeShader () |
void | setupShader () |
create, setup, or remove the shader More... | |
const Shader * | getShader () const |
Shader * | getShader () |
virtual void | setShaderParameters (const Shader &shader, const ViewState &state) const |
virtual unsigned | glNumVertex (const ViewState &) const |
virtual const GLfloat * | glVertexArray (const ViewState &) const |
virtual const GLfloat * | glNormalArray (const ViewState &) const |
normals array (optional), default=0 (no normals, flat shaded faces) More... | |
virtual unsigned | glPolygonSize (const ViewState &) const |
number of vertices per polygon (default = 3: triangles) More... | |
virtual unsigned | glNumPolygon (const ViewState &) const |
virtual const GLuint * | glPolygonArray (const ViewState &) const |
virtual unsigned long | glMaxNumDisplayedPolygons () const |
Limit to the number of displayed polygons (default: 0, unlimited or ) global default value) More... | |
virtual void | glSetMaxNumDisplayedPolygons (unsigned long n) |
virtual unsigned | glNumTextures () const |
virtual unsigned | glNumTextures (const ViewState &) const |
virtual glTextureMode | glTexMode (unsigned tex=0) const |
virtual void | glSetTexMode (glTextureMode mode, unsigned tex=0) |
virtual float | glTexRate (unsigned tex=0) const |
virtual void | glSetTexRate (float rate, unsigned tex=0) |
virtual glTextureFiltering | glTexFiltering (unsigned tex=0) const |
virtual void | glSetTexFiltering (glTextureFiltering x, unsigned tex=0) |
virtual glAutoTexturingMode | glAutoTexMode (unsigned tex=0) const |
virtual void | glSetAutoTexMode (glAutoTexturingMode mode, unsigned tex=0) |
virtual const float * | glAutoTexParams (unsigned coord=0, unsigned tex=0) const |
virtual void | glSetAutoTexParams (const float *params, unsigned coord=0, unsigned tex=0) |
virtual bool | glTexImageChanged (unsigned tex=0) const |
virtual bool | glTexEnvChanged (unsigned tex=0) const |
virtual GLint | glGLTexMode (unsigned tex=0) const |
virtual GLint | glGLTexFiltering (unsigned tex=0) const |
virtual void | glSetTexRGBInterpolation (bool x, unsigned tex=0) |
virtual bool | glTexRGBInterpolation (unsigned tex=0) const |
virtual unsigned | glTexCoordSize (const ViewState &, unsigned tex=0) const |
texture array size (must be >= numVertex to work), defalut=0 More... | |
virtual const GLfloat * | glTexCoordArray (const ViewState &, unsigned tex=0) const |
virtual GLPrimitives | glMainGLL (const ViewState &) |
virtual void | glGarbageCollector (int nkept=-1) |
Frees unused display lists. More... | |
unsigned | glStateMemory () const |
Number of unused display lists in different states kept in memory (default: 4) More... | |
virtual void | glSetStateMemory (unsigned n) |
virtual void | glBeforeBodyGLL (const ViewState &state, GLPrimitives &pl) const |
GL list to execute before the body is rendered. More... | |
virtual void | glAfterBodyGLL (const ViewState &state, GLPrimitives &pl) const |
GL list to execute after the body is rendered. More... | |
virtual carto::VolumeRef< AimsRGBA > | glBuildTexImage (const ViewState &state, unsigned tex, int dimx=-1, int dimy=-1, bool useTexScale=true) const |
If you make non-standard textures (ie not from a palette), overload this function. More... | |
virtual bool | glMakeTexEnvGLL (const ViewState &state, const GLList &gllist, unsigned tex) const |
virtual GLPrimitives | glBodyGLL (const ViewState &state) const |
virtual GLPrimitives | glMaterialGLL (const ViewState &state) const |
virtual GLPrimitives | glTexNameGLL (const ViewState &, unsigned tex=0) const |
virtual GLPrimitives | glTexEnvGLL (const ViewState &, unsigned tex=0) const |
virtual void | glSetMainGLL (const std::string &state, GLPrimitives x) |
virtual void | glSetBodyGLL (const std::string &state, RefGLItem x) |
virtual void | glSetMaterialGLL (const std::string &state, RefGLItem x) |
virtual void | glSetTexNameGLL (const std::string &state, RefGLItem x, unsigned tex=0) |
virtual std::set< glTextureMode > | glAllowedTexModes (unsigned tex=0) const |
List of actually allowed texturing modes for this particular object. More... | |
virtual std::set< glTextureFiltering > | glAllowedTexFilterings (unsigned tex=0) const |
virtual std::set< glAutoTexturingMode > | glAllowedAutoTexModes (unsigned tex=0) const |
virtual bool | glAllowedTexRGBInterpolation (unsigned tex=0) const |
virtual bool | glAllowedTexRate (unsigned tex=0) const |
virtual carto::Object | debugInfo () const |
int | glObjectID () const |
virtual TexInfo & | glTexInfo (unsigned tex=0) const |
Static Public Member Functions | |
static int | classType () |
![]() | |
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... | |
![]() | |
static unsigned long | glGlobalMaxNumDisplayedPolygons () |
static void | glSetGlobalMaxNumDisplayedPolygons (unsigned long n) |
static GLPrimitives | glHandleTransformation (const ViewState &vs, const Referential *myref) |
helper function used in AObject::render() More... | |
static GLPrimitives | glPopTransformation (const ViewState &vs, const Referential *myref) |
called after glHandleTransformation() and glMainGLL() to pop the transformation matrix More... | |
Protected Member Functions | |
virtual std::string | viewStateID (glPart part, const ViewState &) const |
Makes a unique ID from a viewstate. More... | |
void | initializeShader () |
void | genTextures () |
void | loadTransferFunction () |
void | createRenderTextures (int width, int height) |
void | vertex (float x, float y, float z) const |
void | drawQuads (float x, float y, float z) const |
![]() | |
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... | |
![]() | |
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 |
![]() | |
void | glAddTextures (unsigned ntex=1) |
Static Protected Member Functions | |
static std::string | loadShaderFile (const std::string &filename) |
Definition at line 48 of file volrendershader.h.
anatomist::VolRenderShader::VolRenderShader | ( | AObject * | vol | ) |
|
virtual |
|
inlinevirtual |
Reimplemented from anatomist::ObjectVector.
Definition at line 60 of file volrendershader.h.
References checkObject(), classType(), createDefaultPalette(), createRenderTextures(), drawQuads(), genTextures(), GetMaterial(), glAPI(), glDimTex(), glMakeBodyGLL(), glMakeTexImage(), glMaterial(), glPalette(), glSetChanged(), glSetTexEnvChanged(), glSetTexImageChanged(), glTexExtrema(), initializeShader(), isTransparent(), loadShaderFile(), loadTransferFunction(), material(), anatomist::AObject::name(), palette(), renderingIsObserverDependent(), SetMaterial(), setPalette(), setShaderType(), shaderType(), update(), vertex(), and viewStateID().
bool anatomist::VolRenderShader::checkObject | ( | ) | const |
Referenced by CanRemove().
|
static |
Referenced by CanRemove().
|
virtual |
function called by getOrCreatePalette() - overloadable, need not be called directly
Reimplemented from anatomist::AObject.
Referenced by CanRemove().
|
protected |
Referenced by CanRemove().
|
protected |
Referenced by CanRemove().
|
protected |
Referenced by CanRemove().
|
virtual |
Reimplemented from anatomist::AObject.
Referenced by CanRemove().
|
virtual |
Reimplemented from anatomist::GLComponent.
Referenced by CanRemove().
|
virtual |
Reimplemented from anatomist::GLComponent.
|
virtual |
texture dimension (1, 2 [or 3])
Reimplemented from anatomist::GLComponent.
Referenced by CanRemove().
|
virtual |
If you want to make a non-standard GL display list for the body geometry, overload this function to fill gllist
.
Reimplemented from anatomist::GLComponent.
Referenced by CanRemove().
|
virtual |
If you make non-standard textures (ie not from a palette), overload this function to fill gltex
.
Since Anatomist 4.5, glMakeTexImage calls glBuildTexImage, which is actually the method to be overloaded by subclasses.
Reimplemented from anatomist::GLComponent.
Referenced by CanRemove().
|
virtual |
Reimplemented from anatomist::GLComponent.
Referenced by CanRemove().
|
virtual |
Reimplemented from anatomist::GLComponent.
Referenced by CanRemove().
|
virtual |
Reimplemented from anatomist::GLComponent.
Referenced by CanRemove().
|
virtual |
Reimplemented from anatomist::GLComponent.
Referenced by CanRemove().
|
virtual |
Reimplemented from anatomist::GLComponent.
Referenced by CanRemove().
|
virtual |
Reimplemented from anatomist::GLComponent.
Referenced by CanRemove().
|
virtual |
Reimplemented from anatomist::GLComponent.
|
protected |
Referenced by CanRemove().
|
inlinevirtual |
Can be display in 2D windows.
Reimplemented from anatomist::MObject.
Definition at line 57 of file volrendershader.h.
|
inlinevirtual |
Can be display in 3D windows.
Reimplemented from anatomist::MObject.
Definition at line 58 of file volrendershader.h.
References optionTree().
|
virtual |
Reimplemented from anatomist::MObject.
Referenced by CanRemove().
|
staticprotected |
Referenced by CanRemove().
|
protected |
Referenced by CanRemove().
|
virtual |
Reimplemented from anatomist::AObject.
Referenced by CanRemove().
|
virtual |
Menu tree for new options, see object/optionMatcher.h.
Reimplemented from anatomist::ObjectVector.
Referenced by Is3DObject().
|
virtual |
Normally, getOrCreatePalette() should be used instead of this function in most cases.
Reimplemented from anatomist::AObject.
Referenced by CanRemove().
|
virtual |
Reimplemented from anatomist::AObject.
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::MObject.
|
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::MObject.
Referenced by CanRemove().
|
virtual |
Reimplemented from anatomist::MObject.
Referenced by CanRemove().
|
virtual |
Reimplemented from anatomist::MObject.
Referenced by CanRemove().
bool anatomist::VolRenderShader::setShaderType | ( | const std::string & | ) |
Referenced by CanRemove().
std::string anatomist::VolRenderShader::shaderType | ( | ) | const |
Referenced by CanRemove().
|
virtual |
This class is an Observer of each of the AObject it groups.
Reimplemented from anatomist::MObject.
Referenced by CanRemove().
|
protected |
Referenced by CanRemove().
|
protectedvirtual |
Makes a unique ID from a viewstate.
The ID must be unique within the GLComponent instance and for the part part
. Depending on the aspects of the viewstate to take into account, subclasses may have to overload it.
For instance, a mesh may build an ID only taking time into account, whereas a volume slice must also code the slice position and orientation into the ID.
Reimplemented from anatomist::GLComponent.
Referenced by CanRemove().