#include <vtkOpenGLContextDevice2D.h>
This class takes care of drawing the 2D primitives for the vtkContext2D class. In general this class should not be used directly, but called by vtkContext2D which takes care of many of the higher level details.
Definition at line 44 of file vtkOpenGLContextDevice2D.h.
Public Types | |
typedef vtkContextDevice2D | Superclass |
Public Member Functions | |
virtual const char * | GetClassName () |
virtual int | IsA (const char *type) |
virtual void | PrintSelf (ostream &os, vtkIndent indent) |
virtual void | DrawQuad (float *points, int n) |
virtual void | DrawQuadStrip (float *points, int n) |
virtual void | DrawPolygon (float *, int) |
virtual void | DrawString (float *point, const vtkStdString &string) |
virtual void | DrawString (float *point, const vtkUnicodeString &string) |
virtual void | DrawImage (float p[2], float scale, vtkImageData *image) |
void | DrawImage (const vtkRectf &pos, vtkImageData *image) |
virtual void | SetColor4 (unsigned char color[4]) |
virtual void | SetColor (unsigned char color[3]) |
virtual void | SetTexture (vtkImageData *image, int properties=0) |
virtual void | SetPointSize (float size) |
virtual void | SetLineWidth (float width) |
virtual void | SetLineType (int type) |
virtual void | MultiplyMatrix (vtkMatrix3x3 *m) |
virtual void | SetMatrix (vtkMatrix3x3 *m) |
virtual void | GetMatrix (vtkMatrix3x3 *m) |
virtual void | PushMatrix () |
virtual void | PopMatrix () |
virtual void | SetClipping (int *x) |
virtual void | DisableClipping () |
virtual void | Begin (vtkViewport *viewport) |
virtual void | End () |
virtual void | BufferIdModeBegin (vtkAbstractContextBufferId *bufferId) |
virtual void | BufferIdModeEnd () |
bool | SetStringRendererToFreeType () |
bool | SetStringRendererToQt () |
bool | HasGLSL () |
virtual void | ReleaseGraphicsResources (vtkWindow *window) |
virtual void | DrawPoly (float *f, int n, unsigned char *colors=0, int nc_comps=0) |
virtual void | DrawPoints (float *points, int n, unsigned char *colors=0, int nc_comps=0) |
virtual void | DrawPointSprites (vtkImageData *sprite, float *points, int n, unsigned char *colors=0, int nc_comps=0) |
virtual void | DrawEllipseWedge (float x, float y, float outRx, float outRy, float inRx, float inRy, float startAngle, float stopAngle) |
virtual void | DrawEllipticArc (float x, float y, float rX, float rY, float startAngle, float stopAngle) |
virtual void | ComputeStringBounds (const vtkStdString &string, float bounds[4]) |
virtual void | ComputeStringBounds (const vtkUnicodeString &string, float bounds[4]) |
virtual vtkOpenGLRenderWindow * | GetRenderWindow () |
Static Public Member Functions | |
static int | IsTypeOf (const char *type) |
static vtkOpenGLContextDevice2D * | SafeDownCast (vtkObject *o) |
static vtkOpenGLContextDevice2D * | New () |
Protected Member Functions | |
vtkOpenGLContextDevice2D () | |
virtual | ~vtkOpenGLContextDevice2D () |
virtual bool | LoadExtensions (vtkOpenGLExtensionManager *m) |
int | GetNumberOfArcIterations (float rX, float rY, float startAngle, float stopAngle) |
Protected Attributes | |
int | Geometry [2] |
vtkRenderer * | Renderer |
vtkStringToImage * | TextRenderer |
bool | InRender |
vtkOpenGLRenderWindow * | RenderWindow |
Private * | Storage |
Classes | |
class | Private |
Reimplemented from vtkContextDevice2D.
Reimplemented in vtkOpenGL2ContextDevice2D.
Definition at line 47 of file vtkOpenGLContextDevice2D.h.
vtkOpenGLContextDevice2D::vtkOpenGLContextDevice2D | ( | ) | [protected] |
virtual vtkOpenGLContextDevice2D::~vtkOpenGLContextDevice2D | ( | ) | [protected, virtual] |
virtual const char* vtkOpenGLContextDevice2D::GetClassName | ( | ) | [virtual] |
static int vtkOpenGLContextDevice2D::IsTypeOf | ( | const char * | name | ) | [static] |
Return 1 if this class type is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.
Reimplemented from vtkContextDevice2D.
Reimplemented in vtkOpenGL2ContextDevice2D.
virtual int vtkOpenGLContextDevice2D::IsA | ( | const char * | name | ) | [virtual] |
Return 1 if this class is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.
Reimplemented from vtkContextDevice2D.
Reimplemented in vtkOpenGL2ContextDevice2D.
static vtkOpenGLContextDevice2D* vtkOpenGLContextDevice2D::SafeDownCast | ( | vtkObject * | o | ) | [static] |
virtual void vtkOpenGLContextDevice2D::PrintSelf | ( | ostream & | os, | |
vtkIndent | indent | |||
) | [virtual] |
Methods invoked by print to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.
Reimplemented from vtkContextDevice2D.
Reimplemented in vtkOpenGL2ContextDevice2D.
static vtkOpenGLContextDevice2D* vtkOpenGLContextDevice2D::New | ( | ) | [static] |
Creates a 2D Painter object.
Reimplemented from vtkObject.
Reimplemented in vtkOpenGL2ContextDevice2D.
virtual void vtkOpenGLContextDevice2D::DrawPoly | ( | float * | f, | |
int | n, | |||
unsigned char * | colors = 0 , |
|||
int | nc_comps = 0 | |||
) | [virtual] |
Draw a poly line using the points - fastest code path due to memory layout of the coordinates. The line will be colored by colors array which has nc_comps components
Implements vtkContextDevice2D.
virtual void vtkOpenGLContextDevice2D::DrawPoints | ( | float * | points, | |
int | n, | |||
unsigned char * | colors = 0 , |
|||
int | nc_comps = 0 | |||
) | [virtual] |
Draw a series of points - fastest code path due to memory layout of the coordinates. Points are colored by colors array which has nc_comps components
Implements vtkContextDevice2D.
virtual void vtkOpenGLContextDevice2D::DrawPointSprites | ( | vtkImageData * | sprite, | |
float * | points, | |||
int | n, | |||
unsigned char * | colors = 0 , |
|||
int | nc_comps = 0 | |||
) | [virtual] |
Draw a series of point sprites, images centred at the points supplied. The supplied vtkImageData is the sprite to be drawn, only squares will be drawn and the size is set using SetPointSize. Points are colored by colors array which has nc_comps components - this part is optional.
Implements vtkContextDevice2D.
Reimplemented in vtkOpenGL2ContextDevice2D.
virtual void vtkOpenGLContextDevice2D::DrawQuad | ( | float * | points, | |
int | n | |||
) | [virtual] |
Draws a rectangle
Reimplemented from vtkContextDevice2D.
virtual void vtkOpenGLContextDevice2D::DrawQuadStrip | ( | float * | points, | |
int | n | |||
) | [virtual] |
Draws a rectangle
Reimplemented from vtkContextDevice2D.
virtual void vtkOpenGLContextDevice2D::DrawPolygon | ( | float * | , | |
int | ||||
) | [virtual] |
Draw a polygon using the specified number of points.
Reimplemented from vtkContextDevice2D.
virtual void vtkOpenGLContextDevice2D::DrawEllipseWedge | ( | float | x, | |
float | y, | |||
float | outRx, | |||
float | outRy, | |||
float | inRx, | |||
float | inRy, | |||
float | startAngle, | |||
float | stopAngle | |||
) | [virtual] |
Draw an elliptic wedge with center at x, y, outer radii outRx, outRy, inner radii inRx, inRy between angles startAngle and stopAngle (expressed in degrees).
positive_outRy: outRy>=0
positive_inRx: inRx>=0
positive_inRy: inRy>=0
ordered_rx: inRx<=outRx
ordered_ry: inRy<=outRy
Implements vtkContextDevice2D.
virtual void vtkOpenGLContextDevice2D::DrawEllipticArc | ( | float | x, | |
float | y, | |||
float | rX, | |||
float | rY, | |||
float | startAngle, | |||
float | stopAngle | |||
) | [virtual] |
Draw an elliptic arc with center at x,y with radii rX and rY between angles startAngle and stopAngle (expressed in degrees).
positive_rY: rY>=0
Implements vtkContextDevice2D.
virtual void vtkOpenGLContextDevice2D::DrawString | ( | float * | point, | |
const vtkStdString & | string | |||
) | [virtual] |
Draw some text to the screen!
Implements vtkContextDevice2D.
virtual void vtkOpenGLContextDevice2D::ComputeStringBounds | ( | const vtkStdString & | string, | |
float | bounds[4] | |||
) | [virtual] |
Compute the bounds of the supplied string. The bounds will be copied to the supplied bounds variable, the first two elements are the bottom corner of the string, and the second two elements are the width and height of the bounding box. NOTE: This function does not take account of the text rotation.
Implements vtkContextDevice2D.
virtual void vtkOpenGLContextDevice2D::DrawString | ( | float * | point, | |
const vtkUnicodeString & | string | |||
) | [virtual] |
Draw some text to the screen.
Implements vtkContextDevice2D.
virtual void vtkOpenGLContextDevice2D::ComputeStringBounds | ( | const vtkUnicodeString & | string, | |
float | bounds[4] | |||
) | [virtual] |
Compute the bounds of the supplied string. The bounds will be copied to the supplied bounds variable, the first two elements are the bottom corner of the string, and the second two elements are the width and height of the bounding box. NOTE: This function does not take account of the text rotation.
Implements vtkContextDevice2D.
virtual void vtkOpenGLContextDevice2D::DrawImage | ( | float | p[2], | |
float | scale, | |||
vtkImageData * | image | |||
) | [virtual] |
Draw the supplied image at the given x, y (p[0], p[1]) (bottom corner), scaled by scale (1.0 would match the image).
Implements vtkContextDevice2D.
Reimplemented in vtkOpenGL2ContextDevice2D.
void vtkOpenGLContextDevice2D::DrawImage | ( | const vtkRectf & | pos, | |
vtkImageData * | image | |||
) | [virtual] |
Draw the supplied image at the given position. The origin, width, and height are specified by the supplied vtkRectf variable pos. The image will be drawn scaled to that size.
Implements vtkContextDevice2D.
Reimplemented in vtkOpenGL2ContextDevice2D.
virtual void vtkOpenGLContextDevice2D::SetColor4 | ( | unsigned char | color[4] | ) | [virtual] |
Set the color for the device using unsigned char of length 4, RGBA.
Implements vtkContextDevice2D.
virtual void vtkOpenGLContextDevice2D::SetColor | ( | unsigned char | color[3] | ) | [virtual] |
Set the color for the device using unsigned char of length 3, RGB.
virtual void vtkOpenGLContextDevice2D::SetTexture | ( | vtkImageData * | image, | |
int | properties = 0 | |||
) | [virtual] |
Set the texture for the device, it is used to fill the polygons
Implements vtkContextDevice2D.
virtual void vtkOpenGLContextDevice2D::SetPointSize | ( | float | size | ) | [virtual] |
Set the point size for glyphs/sprites.
Implements vtkContextDevice2D.
virtual void vtkOpenGLContextDevice2D::SetLineWidth | ( | float | width | ) | [virtual] |
Set the line width for glyphs/sprites.
Implements vtkContextDevice2D.
virtual void vtkOpenGLContextDevice2D::SetLineType | ( | int | type | ) | [virtual] |
Set the line type type (using anonymous enum in vtkPen).
Implements vtkContextDevice2D.
virtual void vtkOpenGLContextDevice2D::MultiplyMatrix | ( | vtkMatrix3x3 * | m | ) | [virtual] |
Multiply the current model view matrix by the supplied one.
Implements vtkContextDevice2D.
virtual void vtkOpenGLContextDevice2D::SetMatrix | ( | vtkMatrix3x3 * | m | ) | [virtual] |
Set the model view matrix for the display
Implements vtkContextDevice2D.
virtual void vtkOpenGLContextDevice2D::GetMatrix | ( | vtkMatrix3x3 * | m | ) | [virtual] |
Set the model view matrix for the display
Implements vtkContextDevice2D.
virtual void vtkOpenGLContextDevice2D::PushMatrix | ( | ) | [virtual] |
Push the current matrix onto the stack.
Implements vtkContextDevice2D.
virtual void vtkOpenGLContextDevice2D::PopMatrix | ( | ) | [virtual] |
Pop the current matrix off of the stack.
Implements vtkContextDevice2D.
virtual void vtkOpenGLContextDevice2D::SetClipping | ( | int * | x | ) | [virtual] |
Supply an int array of length 4 with x1, y1, x2, y2 specifying clipping for the display.
Implements vtkContextDevice2D.
virtual void vtkOpenGLContextDevice2D::DisableClipping | ( | ) | [virtual] |
Disable clipping of the display.
Implements vtkContextDevice2D.
virtual void vtkOpenGLContextDevice2D::Begin | ( | vtkViewport * | viewport | ) | [virtual] |
Begin drawing, pass in the viewport to set up the view.
Reimplemented from vtkContextDevice2D.
virtual void vtkOpenGLContextDevice2D::End | ( | ) | [virtual] |
End drawing, clean up the view.
Reimplemented from vtkContextDevice2D.
virtual void vtkOpenGLContextDevice2D::BufferIdModeBegin | ( | vtkAbstractContextBufferId * | bufferId | ) | [virtual] |
Start BufferId creation Mode. The default implementation is empty.
bufferId_exists: bufferId!=0
Reimplemented from vtkContextDevice2D.
virtual void vtkOpenGLContextDevice2D::BufferIdModeEnd | ( | ) | [virtual] |
Finalize BufferId creation Mode. It makes sure that the content of the bufferId passed in argument of BufferIdModeBegin() is correctly set. The default implementation is empty.
Reimplemented from vtkContextDevice2D.
bool vtkOpenGLContextDevice2D::SetStringRendererToFreeType | ( | ) |
Force the use of the freetype based render strategy. If Qt is available then freetype will be used preferentially, otherwise this has no effect. Returns true on success.
bool vtkOpenGLContextDevice2D::SetStringRendererToQt | ( | ) |
Force the use of the Qt based string render strategy. If Qt is not available then freetype will be used and this will return false.
bool vtkOpenGLContextDevice2D::HasGLSL | ( | ) |
Check whether the current context device has support for GLSL.
virtual vtkOpenGLRenderWindow* vtkOpenGLContextDevice2D::GetRenderWindow | ( | ) | [virtual] |
Get the active RenderWindow of the device. Will return null if not active.
virtual void vtkOpenGLContextDevice2D::ReleaseGraphicsResources | ( | vtkWindow * | window | ) | [virtual] |
Release any graphics resources that are being consumed by this device. The parameter window could be used to determine which graphic resources to release.
Reimplemented in vtkOpenGL2ContextDevice2D.
int vtkOpenGLContextDevice2D::GetNumberOfArcIterations | ( | float | rX, | |
float | rY, | |||
float | startAngle, | |||
float | stopAngle | |||
) | [protected] |
Factorized code called by DrawEllipseWedge() and DrawEllipticArc() to figure out the number of iterations required to make an arc smooth.
positive_rY: rY>=0.0f
not_both_null: rX>0.0 || rY>0.0
virtual bool vtkOpenGLContextDevice2D::LoadExtensions | ( | vtkOpenGLExtensionManager * | m | ) | [protected, virtual] |
Load the OpenGL extensions we need.
Reimplemented in vtkOpenGL2ContextDevice2D.
int vtkOpenGLContextDevice2D::Geometry[2] [protected] |
Store the width and height of the display devicen (in pixels).
Reimplemented from vtkContextDevice2D.
Definition at line 241 of file vtkOpenGLContextDevice2D.h.
vtkRenderer* vtkOpenGLContextDevice2D::Renderer [protected] |
We need to store a pointer to the renderer for the text rendering
Definition at line 244 of file vtkOpenGLContextDevice2D.h.
vtkStringToImage* vtkOpenGLContextDevice2D::TextRenderer [protected] |
We also need a label render strategy
Definition at line 247 of file vtkOpenGLContextDevice2D.h.
bool vtkOpenGLContextDevice2D::InRender [protected] |
Is the device currently rendering? Prevent multiple End() calls.
Definition at line 250 of file vtkOpenGLContextDevice2D.h.
Private* vtkOpenGLContextDevice2D::Storage [protected] |
Definition at line 254 of file vtkOpenGLContextDevice2D.h.
The OpenGL render window being used by the device
Definition at line 262 of file vtkOpenGLContextDevice2D.h.