GEE_GlRenderer Class Reference

An OpenGL renderer for various GEE objects. More...

#include <gee_gl_renderer.h>

Inheritance diagram for GEE_GlRenderer:

Inheritance graph
[legend]
Collaboration diagram for GEE_GlRenderer:

Collaboration graph
[legend]
List of all members.

Public Member Functions

Static Public Member Functions

Protected Types

Protected Member Functions

Protected Attributes

Static Protected Attributes


Detailed Description

An OpenGL renderer for various GEE objects.

About particle rendering: Particles are a pain to render. They must be rendered as billboards that are in the world coordinates. The user may how-ever apply any transformation before we get to rendering the particles. These transformations must be undone if we are to get the particle alignments correct. For this reason we must take copy of the modelview matrix before we do any OpenGL matrix operations. When rendering particles the matrix in the stack is replaced with the original modelview matrix. Then everything is ok again.

Author:
Tommi Ilmonen


Member Enumeration Documentation

enum GEE_GlRenderer::ListMode [protected]
 

Enumerator:
RENDERED_LIST 
GENERATE_LIST 
NO_LIST 

enum GEE_GlRenderer::SelectionRender [protected]
 

NS -> Nearly Selected.

HIGH1 -> highlight color for the primary component of the primitive (faces is polygons, lines is lines). HIGH2 -> secondary color for the primitive (edges for polygons, points for lines).

Enumerator:
RENDER_USUAL 
RENDER_FACES_NS_HIGH1 
RENDER_FACES_IS_HIGH1 
RENDER_EDGES_NS_HIGH1 
RENDER_EDGES_IS_HIGH1 
RENDER_EDGES_NS_HIGH2 
RENDER_EDGES_IS_HIGH2 
RENDER_POINTS_NS_HIGH2 
RENDER_POINTS_IS_HIGH2 


Constructor & Destructor Documentation

GEE_GlRenderer::GEE_GlRenderer  ) 
 

GEE_GlRenderer::~GEE_GlRenderer  )  [virtual]
 


Member Function Documentation

void GEE_GlRenderer::renderGroupStructure GEE_Group  )  [virtual]
 

Implements GEE_Renderer.

void GEE_GlRenderer::renderLines3D GEE_Lines3D  )  [virtual]
 

Implements GEE_Renderer.

void GEE_GlRenderer::renderPath3D GEE_Path3D path  )  [virtual]
 

This method renders a path with two alternating colors.

You cannot adjust the colors (except in code) - sorry.

Implements GEE_Renderer.

void GEE_GlRenderer::renderParticleObject GEE_ParticleObject  )  [virtual]
 

Implements GEE_Renderer.

void GEE_GlRenderer::renderPolygonMesh GEE_PolygonMesh  )  [virtual]
 

Implements GEE_Renderer.

void GEE_GlRenderer::renderProfile GEE_Profile  )  [virtual]
 

Implements GEE_Renderer.

void GEE_GlRenderer::renderSphere GEE_Sphere  )  [virtual]
 

Implements GEE_Renderer.

void GEE_GlRenderer::renderTriangleMesh GEE_TriangleMesh  )  [virtual]
 

Implements GEE_Renderer.

void GEE_GlRenderer::renderVeeObject VEE_Object ,
const VEE_Matrix4 m = 0,
float  scale = 0.0f
[virtual]
 

Implements GEE_Renderer.

void GEE_GlRenderer::pushTransform const VEE_Matrix4d  )  [virtual]
 

Implements GEE_Renderer.

void GEE_GlRenderer::pushTransform const VEE_Matrix4  )  [virtual]
 

Implements GEE_Renderer.

void GEE_GlRenderer::popTransform  )  [virtual]
 

Implements GEE_Renderer.

void GEE_GlRenderer::enableTransforms bool  enable  )  [virtual]
 

Implements GEE_Renderer.

bool GEE_GlRenderer::enableTransforms  )  [virtual]
 

Implements GEE_Renderer.

void GEE_GlRenderer::setDisplayLists GEE_GlDisplayLists lists  )  [inline]
 

void GEE_GlRenderer::setHighlightDisplayLists GEE_GlDisplayLists lists  )  [inline]
 

void GEE_GlRenderer::setMaterials GEE_GlMaterialBank materials  )  [inline]
 

void GEE_GlRenderer::setTextures VEE_GlTexture2DBank textures  )  [inline]
 

void GEE_GlRenderer::addLights const GEE_GlLights lights  ) 
 

void GEE_GlRenderer::loadLights const char *  nameBase = "lights-%d",
int  maximum = 100
 

uint GEE_GlRenderer::lightCount  )  const [inline]
 

GEE_GlLights& GEE_GlRenderer::light int  i  )  [inline]
 

void GEE_GlRenderer::selectLights uint  i  )  [inline]
 

void GEE_GlRenderer::clearLights  ) 
 

void GEE_GlRenderer::initGlState  )  [virtual]
 

Initializes the OpenGL state machine for rendering the objects.

This method needs to be called if the OpenGL state is wrong for the rendering.

void GEE_GlRenderer::closeGlState  )  [virtual]
 

void GEE_GlRenderer::applyGlTexture2D GLuint  tex  ) 
 

This method switches OpenGL to a new 2D texture.

If the texture is the same as the previous texture, then no operation is performed.

  • tex The OpenGL texture id. If the texture id equals -1, then this method disables textures.

void GEE_GlRenderer::applyGlBlend bool  blend  ) 
 

This method enables/disables blending of the OpenGL state machine.

void GEE_GlRenderer::applyGlLighting bool  lighting  ) 
 

Switch OpenGL lights on/off.

void GEE_GlRenderer::applyGlSmooth bool  smooth  ) 
 

void GEE_GlRenderer::applyGlTwoSided bool  twoSided  ) 
 

void GEE_GlRenderer::applyMaterial GEE_Material  ) 
 

void GEE_GlRenderer::setShowroupSructure bool  show  )  [inline]
 

long GEE_GlRenderer::renderCount  )  const [inline]
 

Returns the list of rendered things.

long GEE_GlRenderer::renderDisplayListCount  )  const [inline]
 

Returns the number of times a display list was used to render a thing.

long GEE_GlRenderer::generateDisplayListCount  )  const [inline]
 

void GEE_GlRenderer::setVeeRenderer VEE_GlRenderer r  )  [inline]
 

long GEE_GlRenderer::vertexCount  )  const [inline]
 

long GEE_GlRenderer::triangleCount  )  const [inline]
 

long GEE_GlRenderer::polygonCount  )  const [inline]
 

long GEE_GlRenderer::particleCount  )  const [inline]
 

long GEE_GlRenderer::geometryCount  )  const [inline]
 

void GEE_GlRenderer::resetCounters  ) 
 

Resets the vertex, triangle etc.

counters.

static void GEE_GlRenderer::setDebug bool  d  )  [inline, static]
 

void GEE_GlRenderer::renderLines3DInternal GEE_Lines3D  )  [protected]
 

void GEE_GlRenderer::renderTriangleMeshInternal GEE_TriangleMesh  )  [protected]
 

void GEE_GlRenderer::preRender GEE_Geometry  )  [protected, virtual]
 

GEE_GlRenderer::ListMode GEE_GlRenderer::renderDisplayList GEE_Geometry g  )  [protected]
 

Checks if there is a diplay list for this graphic.

If there is no list storage, then no list-related stuff is done and NO_LIST is returned. If the list exists, then it is rendered. If the the list does not exist, but there is a list storage, then its recording is began.

void GEE_GlRenderer::enterVee  )  [protected]
 

void GEE_GlRenderer::exitVee  )  [protected]
 


Member Data Documentation

GEE_GlDisplayLists* GEE_GlRenderer::m_displayLists [protected]
 

GEE_GlDisplayLists* GEE_GlRenderer::m_highlightDisplayLists [protected]
 

GEE_GlMaterialBank* GEE_GlRenderer::m_materials [protected]
 

const GEE_Material* GEE_GlRenderer::m_currentMaterial [protected]
 

std::vector<GEE_GlLights> GEE_GlRenderer::m_lights [protected]
 

GEE_GlLights* GEE_GlRenderer::m_currentLight [protected]
 

VEE_GlRenderer* GEE_GlRenderer::m_veeRenderer [protected]
 

VEE_GlTexture2DBank* GEE_GlRenderer::m_textures [protected]
 

GLuint GEE_GlRenderer::m_currentTexture [protected]
 

bool GEE_GlRenderer::m_blend [protected]
 

bool GEE_GlRenderer::m_lighting [protected]
 

bool GEE_GlRenderer::m_smooth [protected]
 

bool GEE_GlRenderer::m_twoSided [protected]
 

bool GEE_GlRenderer::m_inVee [protected]
 

bool GEE_GlRenderer::m_ignoreTransforms [protected]
 

bool GEE_GlRenderer::m_showGroups [protected]
 

long GEE_GlRenderer::m_renderCount [protected]
 

long GEE_GlRenderer::m_renderDisplayListCount [protected]
 

long GEE_GlRenderer::m_generateDisplayListCount [protected]
 

long GEE_GlRenderer::m_vertexCount [protected]
 

long GEE_GlRenderer::m_triangleCount [protected]
 

long GEE_GlRenderer::m_polygonCount [protected]
 

long GEE_GlRenderer::m_particleCount [protected]
 

long GEE_GlRenderer::m_geometryCount [protected]
 

SelectionRender GEE_GlRenderer::m_selectionRender [protected]
 

VEE_Matrix4 GEE_GlRenderer::m_worldMatrix [protected]
 

GLUquadric* GEE_GlRenderer::m_quadric [protected]
 

bool GEE_GlRenderer::m_debug = false [static, protected]
 


The documentation for this class was generated from the following files:
Generated on Mon Mar 12 21:09:05 2007 for VEE - The Visual Effects Engine by  doxygen 1.4.6