34 #ifndef ANA_SURFACE_GLCOMPONENT_H 35 #define ANA_SURFACE_GLCOMPONENT_H 227 unsigned tex = 0 )
const ;
233 virtual float glTexRate(
unsigned tex = 0 )
const;
234 virtual void glSetTexRate(
float rate,
unsigned tex = 0 );
241 unsigned tex = 0 )
const;
246 virtual GLint
glGLTexMode(
unsigned tex = 0)
const;
254 unsigned tex = 0 )
const;
256 unsigned tex = 0 )
const;
288 const GLList & gllist )
const;
309 const ViewState & state,
unsigned tex,
int dimx = -1,
310 int dimy = -1,
bool useTexScale =
true )
const;
320 const GLTexture & gltex,
unsigned tex )
const;
322 const GLList & gllist,
unsigned tex )
const;
327 unsigned tex = 0 )
const;
329 unsigned tex = 0 )
const;
336 virtual std::set<glTextureMode>
338 virtual std::set<glTextureFiltering>
340 virtual std::set<glAutoTexturingMode>
380 if (_shader)
delete _shader;
381 _shader =
new Shader(shader);
virtual const AObjectPalette * glPalette(unsigned tex=0) const
ViewState::glSelectRenderMode glSelectRenderMode
virtual const Sliceable * sliceableAPI() const
ViewState holds information about how a view wants to see an object.
static GLPrimitives glHandleTransformation(const ViewState &vs, const Referential *myref)
helper function used in AObject::render()
virtual glTextureFiltering glTexFiltering(unsigned tex=0) const
virtual bool glMakeTexEnvGLL(const ViewState &state, const GLList &gllist, unsigned tex) const
virtual void glSetStateMemory(unsigned n)
virtual TexInfo & glTexInfo(unsigned tex=0) const
virtual void glSetTexFiltering(glTextureFiltering x, unsigned tex=0)
virtual bool glAllowedTexRGBInterpolation(unsigned tex=0) const
virtual void glSetAutoTexMode(glAutoTexturingMode mode, unsigned tex=0)
virtual GLComponent * glAPI()
Texture environment part: activate texture units, bind textures, setup their properties.
virtual GLint glGLTexFiltering(unsigned tex=0) const
std::vector< float > maxquant
General list, this one calls the others, so should be rebuilt when any other part changes...
virtual void glSetTexNameGLL(const std::string &state, RefGLItem x, unsigned tex=0)
virtual glAutoTexturingMode glAutoTexMode(unsigned tex=0) const
virtual GLPrimitives glMaterialGLL(const ViewState &state) const
virtual unsigned long glMaxNumDisplayedPolygons() const
Limit to the number of displayed polygons (default: 0, unlimited or ) global default value) ...
glTEXENV_NUM + 2* texnum flags texture #texnum, reserved for Observable pattern
virtual void glAfterBodyGLL(const ViewState &state, GLPrimitives &pl) const
GL list to execute after the body is rendered.
virtual GLPrimitives glMainGLL(const ViewState &)
virtual const Material * glMaterial() const
virtual std::set< glTextureFiltering > glAllowedTexFilterings(unsigned tex=0) const
static void glSetGlobalMaxNumDisplayedPolygons(unsigned long n)
virtual void glClearHasChangedFlags() const
Material / coloring list.
void glAddTextures(unsigned ntex=1)
virtual bool glTexEnvChanged(unsigned tex=0) const
virtual void glSetMaterialGLL(const std::string &state, RefGLItem x)
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.
virtual void glSetBodyGLL(const std::string &state, RefGLItem x)
virtual void glBeforeBodyGLL(const ViewState &state, GLPrimitives &pl) const
GL list to execute before the body is rendered.
virtual void glSetTexRate(float rate, unsigned tex=0)
virtual float glTexRate(unsigned tex=0) const
Body part: gathers vertices, polygons, normals, textures alltogether.
This class has to be rewritten, it's really really a shame.......
virtual GLPrimitives glTexNameGLL(const ViewState &, unsigned tex=0) const
virtual std::string viewStateID(glPart part, const ViewState &) const
Makes a unique ID from a viewstate.
virtual const TexExtrema & glTexExtrema(unsigned tex=0) const
virtual void glSetTexEnvChanged(bool x=true, unsigned tex=0) const
virtual glTextureMode glTexMode(unsigned tex=0) const
virtual const GLComponent * glAPI() const
virtual unsigned glNumPolygon(const ViewState &) const
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...
virtual unsigned glPolygonSize(const ViewState &) const
number of vertices per polygon (default = 3: triangles)
virtual const float * glAutoTexParams(unsigned coord=0, unsigned tex=0) const
virtual const GLfloat * glTexCoordArray(const ViewState &, unsigned tex=0) const
virtual GLint glGLTexMode(unsigned tex=0) const
virtual const GLfloat * glNormalArray(const ViewState &) const
normals array (optional), default=0 (no normals, flat shaded faces)
void setupShader()
create, setup, or remove the shader
virtual carto::Object debugInfo() const
virtual bool glHasChanged(glPart) const
virtual Sliceable * sliceableAPI()
Coordinates transformations list.
static unsigned long glGlobalMaxNumDisplayedPolygons()
virtual void glSetTexMode(glTextureMode mode, unsigned tex=0)
virtual void glSetAutoTexParams(const float *params, unsigned coord=0, 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])
std::list< RefGLItem > GLPrimitives
Base class for all OpenGL objects in Anatomist (with OpenGL display lists)
virtual void glSetTexRGBInterpolation(bool x, unsigned tex=0)
void setShaderParameters(const GLComponent &obj, const ViewState &state) const
virtual unsigned glTexCoordSize(const ViewState &, unsigned tex=0) const
texture array size (must be >= numVertex to work), defalut=0
virtual unsigned glNumVertex(const ViewState &) const
const Shader * getShader() const
virtual unsigned glNumTextures() const
glPart
GL object parts, each driving a GL list.
virtual bool glAllowedTexRate(unsigned tex=0) const
virtual void glSetMaxNumDisplayedPolygons(unsigned long n)
virtual void glSetTexImageChanged(bool x=true, unsigned tex=0) const
virtual const GLfloat * glVertexArray(const ViewState &) const
virtual std::set< glTextureMode > glAllowedTexModes(unsigned tex=0) const
List of actually allowed texturing modes for this particular object.
virtual void glSetMainGLL(const std::string &state, GLPrimitives x)
Geometry is the polygons, normals arrays.
void setShader(const Shader &shader)
virtual bool glTexImageChanged(unsigned tex=0) const
virtual GLPrimitives glBodyGLL(const ViewState &state) const
virtual void glSetChanged(glPart, bool=true) const
Referential: marker for transformations, with an associated color.
static GLPrimitives glPopTransformation(const ViewState &vs, const Referential *myref)
called after glHandleTransformation() and glMainGLL() to pop the transformation matrix ...
glTEXIMAGE_NUM + 2* texnum flags texture #texnum, reserved for Observable pattern ...
std::vector< float > minquant
unsigned glStateMemory() const
Number of unused display lists in different states kept in memory (default: 4)
virtual const GLuint * glPolygonArray(const ViewState &) const
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 f...
virtual void glGarbageCollector(int nkept=-1)
Frees unused display lists.
Sliceable objects can draw themselves in a 2D texture.
virtual std::set< glAutoTexturingMode > glAllowedAutoTexModes(unsigned tex=0) const
virtual void setShaderParameters(const Shader &shader, const ViewState &state) const
virtual GLPrimitives glTexEnvGLL(const ViewState &, unsigned tex=0) const