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

◆ debugInfo()

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

Referenced by sliceableAPI().

◆ getShader() [1/2]

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

Definition at line 394 of file glcomponent.h.

Referenced by sliceableAPI().

◆ getShader() [2/2]

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

Definition at line 395 of file glcomponent.h.

◆ glAddTextures()

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

Referenced by sliceableAPI().

◆ 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.

Referenced by sliceableAPI().

◆ glAllowedAutoTexModes()

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

Referenced by sliceableAPI().

◆ glAllowedTexFilterings()

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

Referenced by sliceableAPI().

◆ 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.

Referenced by sliceableAPI().

◆ glAllowedTexRate()

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

Referenced by sliceableAPI().

◆ glAllowedTexRGBInterpolation()

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

Reimplemented in anatomist::Sliceable.

Referenced by sliceableAPI().

◆ 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.

Referenced by sliceableAPI().

◆ glBodyGLL()

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

Referenced by sliceableAPI().

◆ 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.

Referenced by sliceableAPI().

◆ 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::Fusion3D, anatomist::GLMObject, and anatomist::AMTexture.

Referenced by sliceableAPI().

◆ glGlobalMaxNumDisplayedPolygons()

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

Referenced by sliceableAPI().

◆ glGLTexFiltering()

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

Referenced by sliceableAPI().

◆ glGLTexMode()

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

Referenced by sliceableAPI().

◆ glHandleTransformation()

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

helper function used in AObject::render()

Referenced by sliceableAPI().

◆ glHasChanged()

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

Referenced by sliceableAPI().

◆ glMainGLL()

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

Reimplemented in anatomist::AGraphObject.

Referenced by sliceableAPI().

◆ 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 sliceableAPI().

◆ glMakeTexEnvGLL()

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

Reimplemented in anatomist::GLMObject.

Referenced by sliceableAPI().

◆ 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::GLMObject, anatomist::PlanarFusion3D, anatomist::Sliceable, anatomist::VolRenderShader, anatomist::VolRender, and anatomist::TextObject.

Referenced by sliceableAPI().

◆ glMaterial()

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

◆ glMaterialGLL()

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

Reimplemented in anatomist::GLMObject.

Referenced by sliceableAPI().

◆ glMaxNumDisplayedPolygons()

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

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

Referenced by sliceableAPI().

◆ glNormalArray()

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

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

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

Definition at line 403 of file glcomponent.h.

Referenced by sliceableAPI().

◆ 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

Referenced by sliceableAPI().

◆ glPalette()

◆ glPolygonArray()

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

◆ glPolygonSize()

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

number of vertices per polygon (default = 3: triangles)

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

Definition at line 405 of file glcomponent.h.

Referenced by sliceableAPI().

◆ glPopTransformation()

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

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

Referenced by sliceableAPI().

◆ 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

Referenced by sliceableAPI().

◆ glSetChanged()

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

◆ glSetGlobalMaxNumDisplayedPolygons()

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

Referenced by sliceableAPI().

◆ glSetMainGLL()

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

Referenced by sliceableAPI().

◆ glSetMaterialGLL()

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

Reimplemented in anatomist::GLMObject.

Referenced by sliceableAPI().

◆ glSetMaxNumDisplayedPolygons()

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

Referenced by sliceableAPI().

◆ glSetStateMemory()

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

Referenced by sliceableAPI().

◆ 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.

Referenced by sliceableAPI().

◆ glSetTexRate()

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

◆ glSetTexRGBInterpolation()

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

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

Referenced by sliceableAPI().

◆ glStateMemory()

unsigned anatomist::GLComponent::glStateMemory ( ) const

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

Referenced by sliceableAPI().

◆ 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::Fusion3D, anatomist::GLMObject, anatomist::PlanarFusion3D, anatomist::AInterpoler, anatomist::Sliceable, anatomist::AMTexture, anatomist::ATexture, and anatomist::TextObject.

Definition at line 414 of file glcomponent.h.

Referenced by sliceableAPI().

◆ glTexEnvChanged()

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

Reimplemented in anatomist::GLMObject.

Referenced by sliceableAPI().

◆ glTexEnvGLL()

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

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

Referenced by sliceableAPI().

◆ glTexExtrema() [1/2]

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

◆ glTexExtrema() [2/2]

virtual TexExtrema& anatomist::GLComponent::glTexExtrema ( unsigned  tex = 0)
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.

Referenced by sliceableAPI().

◆ glTexInfo()

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

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

Referenced by sliceableAPI().

◆ 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

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

Referenced by sliceableAPI().

◆ glVertexArray()

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

◆ removeShader()

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

Definition at line 384 of file glcomponent.h.

References glBODY, and glSetChanged().

Referenced by sliceableAPI().

◆ setShader()

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

Definition at line 378 of file glcomponent.h.

References glBODY, and glSetChanged().

Referenced by sliceableAPI().

◆ setShaderParameters()

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

◆ setupShader()

void anatomist::GLComponent::setupShader ( )

create, setup, or remove the shader

Referenced by sliceableAPI().

◆ sliceableAPI() [1/2]

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

◆ sliceableAPI() [2/2]

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

Reimplemented in anatomist::SliceableObject, anatomist::Fusion2D, anatomist::Sliceable, anatomist::Fusion2DMesh, and anatomist::VectorField.

Definition at line 192 of file glcomponent.h.

References debugInfo(), getShader(), glAddTextures(), glAfterBodyGLL(), glAllowedAutoTexModes(), glAllowedTexFilterings(), glAllowedTexModes(), glAllowedTexRate(), glAllowedTexRGBInterpolation(), glAutoTexMode(), glAutoTexParams(), glBeforeBodyGLL(), glBodyGLL(), glBuildTexImage(), glClearHasChangedFlags(), glDimTex(), glGarbageCollector(), glGlobalMaxNumDisplayedPolygons(), glGLTexFiltering(), glGLTexMode(), glHandleTransformation(), glHasChanged(), glMainGLL(), glMakeBodyGLL(), glMakeTexEnvGLL(), glMakeTexImage(), glMaterial(), glMaterialGLL(), glMaxNumDisplayedPolygons(), glNormalArray(), glNumPolygon(), glNumTextures(), glNumVertex(), glObjectID(), glPalette(), glPolygonArray(), glPolygonSize(), glPopTransformation(), glSetAutoTexMode(), glSetAutoTexParams(), glSetBodyGLL(), glSetChanged(), glSetGlobalMaxNumDisplayedPolygons(), glSetMainGLL(), glSetMaterialGLL(), glSetMaxNumDisplayedPolygons(), glSetStateMemory(), glSetTexEnvChanged(), glSetTexFiltering(), glSetTexImageChanged(), glSetTexMode(), glSetTexNameGLL(), glSetTexRate(), glSetTexRGBInterpolation(), glStateMemory(), glTexCoordArray(), glTexCoordSize(), glTexEnvChanged(), glTexEnvGLL(), glTexExtrema(), glTexFiltering(), glTexImageChanged(), glTexInfo(), glTexMode(), glTexNameGLL(), glTexRate(), glTexRGBInterpolation(), glVertexArray(), removeShader(), setShader(), setShaderParameters(), setupShader(), and viewStateID().

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

Referenced by sliceableAPI().


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