#include <glRenderer.h>
Classes |
|
class | WrongModes |
WrongModes Exception class.
More... |
|
Public Types |
|
enum | StereoMode { NO_STEREO = 0, ACTIVE_STEREO, DUAL_VIEW_STEREO, DUAL_VIEW_DIFFERENT_DISPLAY_STEREO } |
enum | RenderMode { RENDER_MODE_UNDEFINED = 0, RENDER_MODE_SOLID, RENDER_MODE_TRANSPARENT, RENDER_MODE_ALWAYS_FRONT } |
enum | BufferMode { DIRECT_RENDERING = 0, DISPLAY_LISTS_RENDERING, REBUILD_DISPLAY_LISTS } |
typedef unsigned int | Name |
Typedef for OPENGL names. |
|
Public Member Functions |
|
GLRenderer () | |
Default Constructor. |
|
virtual | ~GLRenderer () |
Destructor. |
|
virtual void | clear () |
Explicit default
initialization. |
|
void | dump (std::ostream &s, Size depth) const |
Name | getName (const GeometricObject &object) |
GeometricObject * | getObject (GLRenderer::Name name) const |
virtual bool | init (Scene &scene) |
Initialization routines. |
|
virtual bool | init (const Stage &stage, float width, float height) |
Initialise the renderer, e.g. the
display lists. |
|
virtual void | setLights (bool reset_all=false) |
Set the light sources according to
the stage. |
|
virtual void | setSmoothLines (bool smooth_lines) |
Should the lines in the line
representation and the wireframe models be
smoothed? |
|
virtual bool | getSmoothLines () |
Vector3 | mapViewportTo3D (Position x, Position y) |
Compute the 3D position on the view
plane corresponding to point (x,y) on the view
port. |
|
Vector2 | map3DToViewport (const Vector3 &vec) |
Compute the 2D position on the
screen corresponding to the 3D point vec. |
|
void | pickObjects1 (Position x1, Position y1, Position x2, Position y2) |
Pick geometric objects. |
|
void | pickObjects2 (List< GeometricObject * > &objects) |
Pick geometric objects method2.
|
|
void | enterPickingMode () |
void | exitPickingMode () |
void | setSize (float width, float height) |
Set the size of the
display. |
|
float | getXScale () const |
float | getYScale () const |
virtual void | updateBackgroundColor () |
Update the background color from the
stage. |
|
void | initTransparent () |
void | initSolid () |
void | initAlwaysFront () |
void | setAntialiasing (bool state) |
Enable or disable
antialiasing. |
|
void | removeRepresentation (const Representation &rep) |
Remove all VertexBuffer and
DisplayLists for the given
Representation. |
|
void | bufferRepresentation (const Representation &rep) |
Buffer the visualisation for the
given
Representation into OpenGL VertexBuffer Objects and
DisplayLists. |
|
void | drawBuffered (const Representation &rep) |
Draw the visualisation of the given
Representation from the VertexBuffers and a
DisplayList. |
|
bool | hasDisplayListFor (const Representation &rep) const |
Test if a
Representation has a DisplayList. |
|
void | setStereoMode (StereoMode state) |
StereoMode | getStereoMode () const |
RenderMode | getRenderMode () const |
void | setRenderMode (RenderMode mode) |
virtual void | renderToBuffer (RenderTarget *renderTarget, BufferMode) |
This function renders into the
buffer of the RenderTarget which has to be made current
before this function is called. |
|
virtual bool | render (const Representation &representation, bool for_display_list=false) |
virtual void | bufferingDependentRender_ (const Representation &repr, BufferMode mode) |
bool | isExtensionSupported (const String &extension) const |
Test if a given opengl extension is
supported by the current driver. |
|
void | clearVertexBuffersFor (Representation &rep) |
bool | vertexBuffersSupported () const |
String | getVendor () |
String | getRenderer () |
String | getOpenGLVersion () |
vector< String > | getExtensions () |
bool | enableVertexBuffers (bool state) |
bool | vertexBuffersEnabled () const |
DrawingMode | getDrawingMode () const |
void | initPerspective () |
void | setColorRGBA_ (const ColorRGBA &color) |
void | vertexVector3_ (const Vector3 &v) |
void | updateCamera (const Camera *camera=0) |
Update the camera position either
from a given Camera,
or from the default
Stage. |
|
void | setupStereo (float eye_separation, float focal_length) |
Sets this renderer as a part of a
stereo setup. |
|
Position | createTextureFromGrid (const RegularData3D &grid, const ColorMap &map) |
void | removeTextureFor_ (const RegularData3D &grid) |
void | getFrustum (float &near, float &far, float &left, float &right, float &top, float &bottom) |
Protected Types |
|
typedef HashMap< const GeometricObject *, Name > |
NameHashMap |
typedef HashMap<
Name, const GeometricObject * > |
GeometricObjectHashMap |
typedef HashMap< const Representation *, GLDisplayList * > |
DisplayListHashMap |
typedef HashMap< const Representation *, vector < MeshBuffer * > > |
MeshBufferHashMap |
Protected Member Functions |
|
bool | mapViewplaneToScreen_ () |
Maps the current viewplane to screen
coordinates. |
|
void | renderRepresentation_ (const Representation &representation, bool for_display_list) |
void | renderRepresentations_ (BufferMode mode) |
virtual void | renderLabel_ (const Label &) |
virtual void | renderLine_ (const Line &) |
Render a line. |
|
virtual void | renderMultiLine_ (const MultiLine &line) |
Render an illuminated
line. |
|
virtual void | renderMesh_ (const Mesh &) |
Render a surface mesh. |
|
virtual void | renderQuadMesh_ (const QuadMesh &) |
Render a quad mesh. |
|
void | initDrawingMeshes_ () |
void | initDrawingOthers_ () |
virtual void | renderRuler () |
Render a ruler. |
|
virtual void | renderPoint_ (const Point &) |
Render a single point. |
|
virtual void | renderSimpleBox_ (const SimpleBox &) |
Render a simple box (parallel to the
axes). |
|
virtual void | renderBox_ (const Box &) |
Render a box. |
|
virtual void | renderSphere_ (const Sphere &) |
Render a sphere. |
|
virtual void | renderDisc_ (const Disc &) |
Render a disc. |
|
virtual void | renderTube_ (const Tube &) |
Render a tube. |
|
virtual void | renderTwoColoredLine_ (const TwoColoredLine &) |
Render a line with two
colors. |
|
virtual void | renderTwoColoredTube_ (const TwoColoredTube &) |
Render a tube with two
colors. |
|
virtual void | renderClippingPlane_ (const ClippingPlane &plane) |
virtual void | renderGridVisualisation_ (const GridVisualisation &vol) |
Render a grid slice. |
|
void | setColor4ub_ (const GeometricObject &object) |
void | createSpheres_ () |
void | createTubes_ () |
void | createBoxes_ () |
void | createDottedSphere_ (int precision) |
void | subdivideTriangle_ (Vector3 &v1, Vector3 &v2, Vector3 &v3, int precision) |
void | createLineBox_ () |
void | createDotBox_ () |
void | createSolidBox_ () |
void | clearNames_ () |
void | normalVector3_ (const Vector3 &v) |
void | translateVector3_ (const Vector3 &v) |
void | texCoordVector3_ (const Vector3 &v) |
void | scaleVector3_ (const Vector3 &v) |
void | rotateVector3Angle_ (const Vector3 &v, Real angle) |
void | scale_ (float f) |
void | initGLU_ (DrawingMode mode) |
void | generateIlluminationTexture_ (float ka, float kd, float kr, float shininess) |
Position | getTextureIndex_ (Position x, Position y, Position z, Size width, Size height) |
void | setupGridClipPlanes_ (const GridVisualisation &slice) |
Protected Attributes |
|
DrawingMode | drawing_mode_ |
Index | drawing_precision_ |
float | near_ |
float | far_ |
float | left_ |
float | right_ |
float | top_ |
float | bottom_ |
float | x_scale_ |
float | y_scale_ |
GLDisplayList * | GL_spheres_list_ |
GLDisplayList * | GL_tubes_list_ |
GLDisplayList * | GL_boxes_list_ |
GLDisplayList * | sphere_list_ |
GLDisplayList | line_list_ |
GLuint | line_texture_bind_ |
GLubyte | line_tex_ [128][128][4] |
GeometricObjectHashMap | name_to_object_ |
NameHashMap | object_to_name_ |
DisplayListHashMap | display_lists_ |
MeshBufferHashMap | rep_to_buffers_ |
Name | all_names_ |
GLuint | object_buffer_ [BALL_GLRENDERER_PICKING_NUMBER_OF_MAX_OBJECTS] |
Vector3 | normal_vector_ |
StereoMode | stereo_ |
RenderMode | render_mode_ |
bool | use_vertex_buffer_ |
bool | smooth_lines_ |
bool | picking_mode_ |
ModelType | model_type_ |
Position | display_lists_index_ |
bool | single_pick_ |
bool | drawed_other_object_ |
bool | drawed_mesh_ |
GLUquadricObj * | GLU_quadric_obj_ |
HashMap< const RegularData3D *, Position > |
grid_to_texture_ |
GLuint | cel_texture_ |
Friends |
|
class | Scene |
DIRECT_RENDERING | Render without display lists, directly to the Scene. |
DISPLAY_LISTS_RENDERING | Render the contents of the display lists. |
REBUILD_DISPLAY_LISTS | Rebuild the contents of the display lists and redraw them. |
virtual bool BALL::VIEW::GLRenderer::init | ( | Scene & | scene | ) | [virtual] |
Initialization routines.
This method is called by Scene::initializeGL.
Reimplemented from BALL::VIEW::Renderer.
bool BALL::VIEW::GLRenderer::isExtensionSupported | ( | const String & | extension | ) | const |
Test if a given opengl extension is supported by the current driver.
Call this only after Scene::initializeGL();
bool BALL::VIEW::GLRenderer::mapViewplaneToScreen_ | ( | ) | [protected] |
Maps the current viewplane to screen coordinates.
Returns false if the projection matrix is not correctly initialized.
void BALL::VIEW::GLRenderer::pickObjects1 | ( | Position | x1, | |
Position | y1, | |||
Position | x2, | |||
Position | y2 | |||
) |
Pick geometric objects.
x1,y1,x2,y2 | the rectangle of the selection |
void BALL::VIEW::GLRenderer::pickObjects2 | ( | List< GeometricObject * > & | objects | ) |
Pick geometric objects method2.
Call this method after pickObjects1 and rendering the representations.
objects | returns the picked objects |
virtual void BALL::VIEW::GLRenderer::renderRuler | ( | ) | [protected, virtual] |
Render a ruler.
If supported by the renderer implementation, this function will produce a simple ruler that is rendered together with the other representations. The main use of this function is in the edit mode, where it can help to straighten-up structures and to correctly estimate angles and distances.
Reimplemented from BALL::VIEW::Renderer.
virtual void BALL::VIEW::GLRenderer::renderToBuffer | ( | RenderTarget * | renderTarget, | |
BufferMode | ||||
) | [virtual] |
This function renders into the buffer of the RenderTarget which has to be made current before this function is called.
Buffers are not automatically swapped afterwards!
void BALL::VIEW::GLRenderer::setupStereo | ( | float | eye_separation, | |
float | focal_length | |||
) | [virtual] |
Sets this renderer as a part of a stereo setup.
eye_separation denotes the distance along the right vector used by this "eye".
Reimplemented from BALL::VIEW::Renderer.