anatomist  5.1.2
3D neuroimaging data viewer
anatomist::GLComponent Class Reference

Base class for all OpenGL objects in Anatomist (with OpenGL display lists) More...

#include <anatomist/surface/glcomponent.h>

Inheritance diagram for anatomist::GLComponent:

Classes

struct  TexExtrema
 
struct  TexInfo
 Semi-private structure. More...
 

Public Types

enum  glTextureMode {
  glGEOMETRIC , glLINEAR , glREPLACE , glDECAL ,
  glBLEND , glADD , glCOMBINE , glLINEAR_A_IF_A ,
  glLINEAR_ON_DEFINED , glLINEAR_A_IF_B = glLINEAR_ON_DEFINED , glLINEAR_A_IF_NOT_A , glLINEAR_A_IF_NOT_B ,
  glLINEAR_B_IF_A , glLINEAR_B_IF_B , glLINEAR_B_IF_NOT_A , glLINEAR_B_IF_NOT_B ,
  glLINEAR_A_IF_A_ALPHA , glLINEAR_A_IF_NOT_B_ALPHA , glLINEAR_B_IF_B_ALPHA , glLINEAR_B_IF_NOT_A_ALPHA ,
  glMAX_CHANNEL , glMIN_CHANNEL , glMAX_ALPHA , glMIN_ALPHA ,
  glGEOMETRIC_SQRT , glGEOMETRIC_LIGHTEN
}
 
enum  glTextureFiltering { glFILT_NEAREST , glFILT_LINEAR }
 
enum  glPart {
  glGENERAL , glBODY , glMATERIAL , glGEOMETRY ,
  glPALETTE , glREFERENTIAL , glTEXIMAGE , glTEXENV ,
  glNOPART , glTEXIMAGE_NUM , glTEXENV_NUM
}
 GL object parts, each driving a GL list. More...
 
enum  glAutoTexturingMode {
  glTEX_MANUAL , glTEX_OBJECT_LINEAR , glTEX_EYE_LINEAR , glTEX_SPHERE_MAP ,
  glTEX_REFLECTION_MAP , glTEX_NORMAL_MAP
}
 
typedef ViewState::glSelectRenderMode glSelectRenderMode
 

Public Member Functions

 GLComponent ()
 
virtual ~GLComponent ()
 
void clearLists ()
 
virtual const GLComponentglAPI () const
 
virtual GLComponentglAPI ()
 
virtual const SliceablesliceableAPI () const
 
virtual SliceablesliceableAPI ()
 
virtual void glClearHasChangedFlags () const
 
virtual void glSetChanged (glPart, bool=true) const
 
virtual bool glHasChanged (glPart) const
 
void setShader (const Shader &shader)
 
void removeShader ()
 
void setupShader ()
 create, setup, or remove the shader More...
 
const ShadergetShader () const
 
ShadergetShader ()
 
virtual void setShaderParameters (const Shader &shader, const ViewState &state) const
 
virtual const MaterialglMaterial () const
 
virtual const AObjectPaletteglPalette (unsigned tex=0) 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 void glSetTexImageChanged (bool x=true, unsigned tex=0) const
 
virtual void glSetTexEnvChanged (bool x=true, unsigned tex=0) const
 
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 glDimTex (const ViewState &, unsigned tex=0) const
 texture dimension (1, 2 [or 3]) More...
 
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 const TexExtremaglTexExtrema (unsigned tex=0) const
 
virtual TexExtremaglTexExtrema (unsigned tex=0)
 
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 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 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< AimsRGBAglBuildTexImage (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 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 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< glTextureModeglAllowedTexModes (unsigned tex=0) const
 List of actually allowed texturing modes for this particular object. More...
 
virtual std::set< glTextureFilteringglAllowedTexFilterings (unsigned tex=0) const
 
virtual std::set< glAutoTexturingModeglAllowedAutoTexModes (unsigned tex=0) const
 
virtual bool glAllowedTexRGBInterpolation (unsigned tex=0) const
 
virtual bool glAllowedTexRate (unsigned tex=0) const
 
virtual std::string viewStateID (glPart part, const ViewState &) const
 Makes a unique ID from a viewstate. More...
 
virtual carto::Object debugInfo () const
 
int glObjectID () const
 
virtual TexInfoglTexInfo (unsigned tex=0) const
 

Static Public Member Functions

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

void glAddTextures (unsigned ntex=1)
 

Detailed Description

Base class for all OpenGL objects in Anatomist (with OpenGL display lists)

This object represents the virtual API which allows Anatomist to use objects geometric properties, and to render in 3D OpenGL views.

For a general explanation on how it is organized and works, see the Anatomist Objects and OpenGL rendering page.

Definition at line 66 of file glcomponent.h.

Member Typedef Documentation

◆ glSelectRenderMode

Member Enumeration Documentation

◆ glAutoTexturingMode

Enumerator
glTEX_MANUAL 
glTEX_OBJECT_LINEAR 
glTEX_EYE_LINEAR 
glTEX_SPHERE_MAP 
glTEX_REFLECTION_MAP 
glTEX_NORMAL_MAP 

Definition at line 157 of file glcomponent.h.

◆ glPart

GL object parts, each driving a GL list.

Each may be updated / rebuilt at different times.

GL lists of parts are rebuilt when the object has changed for the selected part, or when a different view on the same objet is asked. Anatomist holds internal caches for such lists, which are identified using the viewStateID() method.

Enumerator
glGENERAL 

General list, this one calls the others, so should be rebuilt when any other part changes.

This is ensured by the internal mechanisms of GLComponent (in glMainGLL() method).

glBODY 

Body part: gathers vertices, polygons, normals, textures alltogether.

glMATERIAL 

Material / coloring list.

Also handles rendering properties.

glGEOMETRY 

Geometry is the polygons, normals arrays.

The geometry is not really handled by the GLComponent now, it is rather reserved for future use. The glBODY part is the one used currently. However, changing glGEOMETRY involves also changing glBODY.

glPALETTE 

Palette settings.

The colormap itself (when used) is generally in a texture image.

glREFERENTIAL 

Coordinates transformations list.

glTEXIMAGE 

Texture image part.

This is stored in a GL texture object, which is used by the glTEXENV part, so rebuilding a glTEXIMAGE (either because of a change or a different view) generally also requires rebuilding the glTEXENV part, but this implication is not hard-coded.

glTEXENV 

Texture environment part: activate texture units, bind textures, setup their properties.

glNOPART 
glTEXIMAGE_NUM 

glTEXIMAGE_NUM + 2* texnum flags texture #texnum, reserved for Observable pattern

glTEXENV_NUM 

glTEXENV_NUM + 2* texnum flags texture #texnum, reserved for Observable pattern

Definition at line 113 of file glcomponent.h.

◆ glTextureFiltering

Enumerator
glFILT_NEAREST 
glFILT_LINEAR 

Definition at line 99 of file glcomponent.h.

◆ glTextureMode

Enumerator
glGEOMETRIC 
glLINEAR 
glREPLACE 
glDECAL 
glBLEND 
glADD 
glCOMBINE 
glLINEAR_A_IF_A 
glLINEAR_ON_DEFINED 
glLINEAR_A_IF_B 
glLINEAR_A_IF_NOT_A 
glLINEAR_A_IF_NOT_B 
glLINEAR_B_IF_A 
glLINEAR_B_IF_B 
glLINEAR_B_IF_NOT_A 
glLINEAR_B_IF_NOT_B 
glLINEAR_A_IF_A_ALPHA 
glLINEAR_A_IF_NOT_B_ALPHA 
glLINEAR_B_IF_B_ALPHA 
glLINEAR_B_IF_NOT_A_ALPHA 
glMAX_CHANNEL 
glMIN_CHANNEL 
glMAX_ALPHA 
glMIN_ALPHA 
glGEOMETRIC_SQRT 
glGEOMETRIC_LIGHTEN 

Definition at line 69 of file glcomponent.h.

Constructor & Destructor Documentation

◆ GLComponent()

anatomist::GLComponent::GLComponent ( )

◆ ~GLComponent()

virtual anatomist::GLComponent::~GLComponent ( )
virtual

Member Function Documentation

◆ clearLists()

void anatomist::GLComponent::clearLists ( )

◆ debugInfo()

virtual carto::Object anatomist::GLComponent::debugInfo ( ) const
virtual

◆ getShader() [1/2]

Shader * anatomist::GLComponent::getShader ( )
inline

Definition at line 397 of file glcomponent.h.

◆ getShader() [2/2]

const Shader * anatomist::GLComponent::getShader ( ) const
inline

Definition at line 396 of file glcomponent.h.

◆ glAddTextures()

void anatomist::GLComponent::glAddTextures ( unsigned  ntex = 1)
protected

◆ glAfterBodyGLL()

virtual void anatomist::GLComponent::glAfterBodyGLL ( const ViewState state,
GLPrimitives pl 
) const
virtual

GL list to execute after the body is rendered.

Reimplemented in anatomist::VectorField, and anatomist::Fusion2DMesh.

◆ glAllowedAutoTexModes()

virtual std::set<glAutoTexturingMode> anatomist::GLComponent::glAllowedAutoTexModes ( unsigned  tex = 0) const
virtual

◆ glAllowedTexFilterings()

virtual std::set<glTextureFiltering> anatomist::GLComponent::glAllowedTexFilterings ( unsigned  tex = 0) const
virtual

◆ glAllowedTexModes()

virtual std::set<glTextureMode> anatomist::GLComponent::glAllowedTexModes ( unsigned  tex = 0) const
virtual

List of actually allowed texturing modes for this particular object.

Reimplemented in anatomist::Fusion2D.

◆ glAllowedTexRate()

virtual bool anatomist::GLComponent::glAllowedTexRate ( unsigned  tex = 0) const
virtual

◆ glAllowedTexRGBInterpolation()

virtual bool anatomist::GLComponent::glAllowedTexRGBInterpolation ( unsigned  tex = 0) const
virtual

Reimplemented in anatomist::Sliceable.

◆ glAPI() [1/2]

◆ glAPI() [2/2]

◆ glAutoTexMode()

virtual glAutoTexturingMode anatomist::GLComponent::glAutoTexMode ( unsigned  tex = 0) const
virtual

◆ glAutoTexParams()

virtual const float* anatomist::GLComponent::glAutoTexParams ( unsigned  coord = 0,
unsigned  tex = 0 
) const
virtual

◆ glBeforeBodyGLL()

virtual void anatomist::GLComponent::glBeforeBodyGLL ( const ViewState state,
GLPrimitives pl 
) const
virtual

GL list to execute before the body is rendered.

Reimplemented in anatomist::VectorField, and anatomist::Fusion2DMesh.

◆ glBodyGLL()

virtual GLPrimitives anatomist::GLComponent::glBodyGLL ( const ViewState state) const
virtual

◆ glBuildTexImage()

virtual carto::VolumeRef<AimsRGBA> anatomist::GLComponent::glBuildTexImage ( const ViewState state,
unsigned  tex,
int  dimx = -1,
int  dimy = -1,
bool  useTexScale = true 
) const
virtual

If you make non-standard textures (ie not from a palette), overload this function.

New in Anatomist 4.5, it is used by glMakeTexImage, and may also be used to save the texture data of an arbitrary object.

Parameters
dimxand dimy are target texture sizes. If left to -1 (default), the size is calculated internally.
useTexScaleif true (default), allow using OpenGL scaling in texture space. Otherwise the palette image will be adapted to fit the scale.

Reimplemented in anatomist::PlanarFusion3D, and anatomist::Sliceable.

◆ glClearHasChangedFlags()

virtual void anatomist::GLComponent::glClearHasChangedFlags ( ) const
virtual

◆ glDimTex()

unsigned anatomist::GLComponent::glDimTex ( const ViewState ,
unsigned  tex = 0 
) const
inlinevirtual

◆ glGarbageCollector()

virtual void anatomist::GLComponent::glGarbageCollector ( int  nkept = -1)
virtual

Frees unused display lists.

Display lists are created when requested by views, according to a view state, and are stored in the object. As several view states will probably be needed by different views, they are all kept internally (by a reference counter). When a display list is no longer used by views, it is still not destroyed because it could be costy to re-crete it for another view later.

To avoid objects to grow and eat all memory, this function will be called from time to time (when creating new lists) to free some lists which are not currently used by any view.

Parameters
nkeptif negative, glStateMemory() unused items are kept in the object, otherwise the specified number are kept

Reimplemented in anatomist::AMTexture, anatomist::GLMObject, and anatomist::Fusion3D.

◆ glGlobalMaxNumDisplayedPolygons()

static unsigned long anatomist::GLComponent::glGlobalMaxNumDisplayedPolygons ( )
static

◆ glGLTexFiltering()

virtual GLint anatomist::GLComponent::glGLTexFiltering ( unsigned  tex = 0) const
virtual

◆ glGLTexMode()

virtual GLint anatomist::GLComponent::glGLTexMode ( unsigned  tex = 0) const
virtual

◆ glHandleTransformation()

static GLPrimitives anatomist::GLComponent::glHandleTransformation ( const ViewState vs,
const Referential myref 
)
static

helper function used in AObject::render()

◆ glHasChanged()

virtual bool anatomist::GLComponent::glHasChanged ( glPart  ) const
virtual

◆ glMainGLL()

virtual GLPrimitives anatomist::GLComponent::glMainGLL ( const ViewState )
virtual

◆ glMakeBodyGLL()

virtual bool anatomist::GLComponent::glMakeBodyGLL ( const ViewState state,
const GLList gllist 
) const
virtual

If you want to make a non-standard GL display list for the body geometry, overload this function to fill gllist.

Returns
true on success, false if the list could not be created

Reimplemented in anatomist::VolRenderShader, anatomist::VolRender, anatomist::ASurface< D >, anatomist::ASurface< 2 >, and anatomist::ASurface< 3 >.

Referenced by anatomist::ASurface< 2 >::surfaceOfTime().

◆ glMakeTexEnvGLL()

virtual bool anatomist::GLComponent::glMakeTexEnvGLL ( const ViewState state,
const GLList gllist,
unsigned  tex 
) const
virtual

Reimplemented in anatomist::GLMObject.

◆ glMakeTexImage()

virtual bool anatomist::GLComponent::glMakeTexImage ( const ViewState state,
const GLTexture gltex,
unsigned  tex 
) const
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.

Returns
true on success, false if a texture could not be created

Reimplemented in anatomist::TextObject, anatomist::PlanarFusion3D, anatomist::VolRenderShader, anatomist::VolRender, anatomist::Sliceable, and anatomist::GLMObject.

◆ glMaterial()

const Material * anatomist::GLComponent::glMaterial ( ) const
inlinevirtual

◆ glMaterialGLL()

virtual GLPrimitives anatomist::GLComponent::glMaterialGLL ( const ViewState state) const
virtual

Reimplemented in anatomist::GLMObject.

◆ glMaxNumDisplayedPolygons()

virtual unsigned long anatomist::GLComponent::glMaxNumDisplayedPolygons ( ) const
virtual

Limit to the number of displayed polygons (default: 0, unlimited or ) global default value)

◆ glNormalArray()

const GLfloat * anatomist::GLComponent::glNormalArray ( const ViewState ) const
inlinevirtual

normals array (optional), default=0 (no normals, flat shaded faces)

Reimplemented in anatomist::Sliceable, anatomist::TesselatedMesh, anatomist::ASurface< D >, anatomist::ASurface< 2 >, anatomist::ASurface< 3 >, anatomist::Fusion2DMesh, anatomist::GLMObject, and anatomist::Bucket.

Definition at line 405 of file glcomponent.h.

◆ glNumPolygon()

unsigned anatomist::GLComponent::glNumPolygon ( const ViewState ) const
inlinevirtual

◆ glNumTextures() [1/2]

virtual unsigned anatomist::GLComponent::glNumTextures ( ) const
virtual

◆ glNumTextures() [2/2]

virtual unsigned anatomist::GLComponent::glNumTextures ( const ViewState ) const
virtual

◆ glNumVertex()

unsigned anatomist::GLComponent::glNumVertex ( const ViewState ) const
inlinevirtual

◆ glObjectID()

int anatomist::GLComponent::glObjectID ( ) const

◆ glPalette()

◆ glPolygonArray()

const GLuint * anatomist::GLComponent::glPolygonArray ( const ViewState ) const
inlinevirtual

◆ glPolygonSize()

unsigned anatomist::GLComponent::glPolygonSize ( const ViewState ) const
inlinevirtual

◆ glPopTransformation()

static GLPrimitives anatomist::GLComponent::glPopTransformation ( const ViewState vs,
const Referential myref 
)
static

called after glHandleTransformation() and glMainGLL() to pop the transformation matrix

◆ glSetAutoTexMode()

virtual void anatomist::GLComponent::glSetAutoTexMode ( glAutoTexturingMode  mode,
unsigned  tex = 0 
)
virtual

◆ glSetAutoTexParams()

virtual void anatomist::GLComponent::glSetAutoTexParams ( const float *  params,
unsigned  coord = 0,
unsigned  tex = 0 
)
virtual

◆ glSetBodyGLL()

virtual void anatomist::GLComponent::glSetBodyGLL ( const std::string &  state,
RefGLItem  x 
)
virtual

◆ glSetChanged()

virtual void anatomist::GLComponent::glSetChanged ( glPart  ,
bool  = true 
) const
virtual

◆ glSetGlobalMaxNumDisplayedPolygons()

static void anatomist::GLComponent::glSetGlobalMaxNumDisplayedPolygons ( unsigned long  n)
static

◆ glSetMainGLL()

virtual void anatomist::GLComponent::glSetMainGLL ( const std::string &  state,
GLPrimitives  x 
)
virtual

◆ glSetMaterialGLL()

virtual void anatomist::GLComponent::glSetMaterialGLL ( const std::string &  state,
RefGLItem  x 
)
virtual

Reimplemented in anatomist::GLMObject.

◆ glSetMaxNumDisplayedPolygons()

virtual void anatomist::GLComponent::glSetMaxNumDisplayedPolygons ( unsigned long  n)
virtual

◆ glSetStateMemory()

virtual void anatomist::GLComponent::glSetStateMemory ( unsigned  n)
virtual

◆ glSetTexEnvChanged()

virtual void anatomist::GLComponent::glSetTexEnvChanged ( bool  x = true,
unsigned  tex = 0 
) const
virtual

◆ glSetTexFiltering()

virtual void anatomist::GLComponent::glSetTexFiltering ( glTextureFiltering  x,
unsigned  tex = 0 
)
virtual

◆ glSetTexImageChanged()

virtual void anatomist::GLComponent::glSetTexImageChanged ( bool  x = true,
unsigned  tex = 0 
) const
virtual

◆ glSetTexMode()

virtual void anatomist::GLComponent::glSetTexMode ( glTextureMode  mode,
unsigned  tex = 0 
)
virtual

◆ glSetTexNameGLL()

virtual void anatomist::GLComponent::glSetTexNameGLL ( const std::string &  state,
RefGLItem  x,
unsigned  tex = 0 
)
virtual

Reimplemented in anatomist::GLMObject.

◆ glSetTexRate()

virtual void anatomist::GLComponent::glSetTexRate ( float  rate,
unsigned  tex = 0 
)
virtual

◆ glSetTexRGBInterpolation()

virtual void anatomist::GLComponent::glSetTexRGBInterpolation ( bool  x,
unsigned  tex = 0 
)
virtual

◆ glStateMemory()

unsigned anatomist::GLComponent::glStateMemory ( ) const

Number of unused display lists in different states kept in memory (default: 4)

◆ glTexCoordArray()

const GLfloat * anatomist::GLComponent::glTexCoordArray ( const ViewState ,
unsigned  tex = 0 
) const
inlinevirtual

◆ glTexCoordSize()

unsigned anatomist::GLComponent::glTexCoordSize ( const ViewState ,
unsigned  tex = 0 
) const
inlinevirtual

texture array size (must be >= numVertex to work), defalut=0

Reimplemented in anatomist::PlanarFusion3D, anatomist::Fusion3D, anatomist::ATexture, anatomist::TextObject, anatomist::AMTexture, anatomist::Sliceable, anatomist::GLMObject, and anatomist::AInterpoler.

Definition at line 416 of file glcomponent.h.

◆ glTexEnvChanged()

virtual bool anatomist::GLComponent::glTexEnvChanged ( unsigned  tex = 0) const
virtual

Reimplemented in anatomist::GLMObject.

◆ glTexEnvGLL()

virtual GLPrimitives anatomist::GLComponent::glTexEnvGLL ( const ViewState ,
unsigned  tex = 0 
) const
virtual

Reimplemented in anatomist::GLMObject, and anatomist::Fusion3D.

◆ glTexExtrema() [1/2]

virtual TexExtrema& anatomist::GLComponent::glTexExtrema ( unsigned  tex = 0)
virtual

◆ glTexExtrema() [2/2]

virtual const TexExtrema& anatomist::GLComponent::glTexExtrema ( unsigned  tex = 0) const
virtual

◆ glTexFiltering()

virtual glTextureFiltering anatomist::GLComponent::glTexFiltering ( unsigned  tex = 0) const
virtual

◆ glTexImageChanged()

virtual bool anatomist::GLComponent::glTexImageChanged ( unsigned  tex = 0) const
virtual

Reimplemented in anatomist::GLMObject.

◆ glTexInfo()

virtual TexInfo& anatomist::GLComponent::glTexInfo ( unsigned  tex = 0) const
virtual

◆ glTexMode()

virtual glTextureMode anatomist::GLComponent::glTexMode ( unsigned  tex = 0) const
virtual

◆ glTexNameGLL()

virtual GLPrimitives anatomist::GLComponent::glTexNameGLL ( const ViewState ,
unsigned  tex = 0 
) const
virtual

◆ glTexRate()

virtual float anatomist::GLComponent::glTexRate ( unsigned  tex = 0) const
virtual

◆ glTexRGBInterpolation()

virtual bool anatomist::GLComponent::glTexRGBInterpolation ( unsigned  tex = 0) const
virtual

◆ glVertexArray()

const GLfloat * anatomist::GLComponent::glVertexArray ( const ViewState ) const
inlinevirtual

◆ removeShader()

void anatomist::GLComponent::removeShader ( void  )
inline

Definition at line 386 of file glcomponent.h.

References glBODY, and glSetChanged().

◆ setShader()

void anatomist::GLComponent::setShader ( const Shader shader)
inline

Definition at line 380 of file glcomponent.h.

References glBODY, and glSetChanged().

◆ setShaderParameters()

void anatomist::GLComponent::setShaderParameters ( const Shader shader,
const ViewState state 
) const
inlinevirtual

◆ setupShader()

void anatomist::GLComponent::setupShader ( )

create, setup, or remove the shader

◆ sliceableAPI() [1/2]

virtual Sliceable* anatomist::GLComponent::sliceableAPI ( )
inlinevirtual

◆ sliceableAPI() [2/2]

virtual const Sliceable* anatomist::GLComponent::sliceableAPI ( ) const
inlinevirtual

◆ viewStateID()

virtual std::string anatomist::GLComponent::viewStateID ( glPart  part,
const ViewState  
) const
virtual

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 in anatomist::PlanarFusion3D, anatomist::AMTexture, anatomist::AGLObject, anatomist::VolRenderShader, anatomist::VolRender, anatomist::Sliceable, anatomist::GLMObject, anatomist::Fusion3D, anatomist::AInterpoler, and anatomist::Bucket.


The documentation for this class was generated from the following file: