VTK
vtkContext3D.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkContext3D.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
15 
27 #ifndef vtkContext3D_h
28 #define vtkContext3D_h
29 
30 #include "vtkRenderingContext2DModule.h" // For export macro
31 #include "vtkObject.h"
32 #include "vtkVector.h" // For the vector coordinates.
33 #include "vtkSmartPointer.h" // For SP ivars.
34 
35 class vtkContextDevice3D;
36 class vtkPen;
37 class vtkBrush;
38 class vtkTransform;
39 
40 class VTKRENDERINGCONTEXT2D_EXPORT vtkContext3D : public vtkObject
41 {
42 public:
43  vtkTypeMacro(vtkContext3D, vtkObject);
44  virtual void PrintSelf(ostream &os, vtkIndent indent);
45 
49  static vtkContext3D *New();
50 
56  bool Begin(vtkContextDevice3D *device);
57 
62 
68  bool End();
69 
73  void DrawLine(const vtkVector3f &start, const vtkVector3f &end);
74 
78  void DrawPoly(const float *points, int n);
79 
83  void DrawPoint(const vtkVector3f &point);
84 
88  void DrawPoints(const float *points, int n);
89 
95  void DrawPoints(const float *points, int n,
96  unsigned char *colors, int nc_comps);
97 
101  void DrawTriangleMesh(const float *mesh, int n,
102  const unsigned char *colors, int nc);
103 
109  void ApplyPen(vtkPen *pen);
110 
116  void ApplyBrush(vtkBrush *brush);
117 
123  void SetTransform(vtkTransform *transform);
124 
129 
136  void AppendTransform(vtkTransform *transform);
137 
139 
143  void PushMatrix();
144  void PopMatrix();
146 
148 
155  void EnableClippingPlane(int i, double *planeEquation);
156  void DisableClippingPlane(int i);
158 
159 protected:
162 
163  vtkSmartPointer<vtkContextDevice3D> Device; // The underlying device
165 
166 private:
167  vtkContext3D(const vtkContext3D &) VTK_DELETE_FUNCTION;
168  void operator=(const vtkContext3D &) VTK_DELETE_FUNCTION;
169 };
170 
171 #endif // VTKCONTEXT3D_H
provides a brush that fills shapes drawn by vtkContext2D.
Definition: vtkBrush.h:38
Class for drawing 3D primitives to a graphical context.
Definition: vtkContext3D.h:41
bool Begin(vtkContextDevice3D *device)
Begin painting on a vtkContextDevice3D, no painting can occur before this call has been made.
void DrawLine(const vtkVector3f &start, const vtkVector3f &end)
Draw a line between the specified points.
void DrawPoly(const float *points, int n)
Draw a poly line between the specified points.
vtkContextDevice3D * GetDevice()
Get access to the underlying 3D context.
vtkTransform * GetTransform()
Compute the current transform applied to the context.
void EnableClippingPlane(int i, double *planeEquation)
Enable/Disable the specified clipping plane.
vtkSmartPointer< vtkTransform > Transform
Definition: vtkContext3D.h:164
void SetTransform(vtkTransform *transform)
Set the transform for the context, the underlying device will use the matrix of the transform.
void DisableClippingPlane(int i)
void AppendTransform(vtkTransform *transform)
Append the transform for the context, the underlying device will use the matrix of the transform.
void DrawPoints(const float *points, int n)
Draw a sequence of points at the specified locations.
void PopMatrix()
vtkSmartPointer< vtkContextDevice3D > Device
Definition: vtkContext3D.h:163
void PushMatrix()
Push/pop the transformation matrix for the painter (sets the underlying matrix for the device when av...
void DrawTriangleMesh(const float *mesh, int n, const unsigned char *colors, int nc)
Draw triangles to generate the specified mesh.
void DrawPoints(const float *points, int n, unsigned char *colors, int nc_comps)
Draw a sequence of points at the specified locations.
bool End()
Ends painting on the device, you would not usually need to call this as it should be called by the de...
virtual void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
void ApplyPen(vtkPen *pen)
Apply the supplied pen which controls the outlines of shapes, as well as lines, points and related pr...
static vtkContext3D * New()
Creates a 3D context object.
void ApplyBrush(vtkBrush *brush)
Apply the supplied brush which controls the outlines of shapes, as well as lines, points and related ...
void DrawPoint(const vtkVector3f &point)
Draw a point at the point in 3D space.
Abstract class for drawing 3D primitives.
a simple class to control print indentation
Definition: vtkIndent.h:40
abstract base class for most VTK objects
Definition: vtkObject.h:60
provides a pen that draws the outlines of shapes drawn by vtkContext2D.
Definition: vtkPen.h:40
describes linear transformations via a 4x4 matrix
Definition: vtkTransform.h:61
@ point
Definition: vtkX3D.h:236
@ points
Definition: vtkX3D.h:446