VTK  9.2.6
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 "vtkObject.h"
31 #include "vtkRenderingContext2DModule.h" // For export macro
32 #include "vtkSmartPointer.h" // For SP ivars.
33 #include "vtkVector.h" // For the vector coordinates.
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  void PrintSelf(ostream& os, vtkIndent indent) override;
45 
49  static vtkContext3D* New();
50 
56  bool Begin(vtkContextDevice3D* device);
57 
61  vtkContextDevice3D* GetDevice();
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, unsigned char* colors, int nc_comps);
96 
100  void DrawTriangleMesh(const float* mesh, int n, const unsigned char* colors, int nc);
101 
107  void ApplyPen(vtkPen* pen);
108 
114  void ApplyBrush(vtkBrush* brush);
115 
121  void SetTransform(vtkTransform* transform);
122 
126  vtkTransform* GetTransform();
127 
134  void AppendTransform(vtkTransform* transform);
135 
137 
141  void PushMatrix();
142  void PopMatrix();
144 
146 
153  void EnableClippingPlane(int i, double* planeEquation);
154  void DisableClippingPlane(int i);
156 
157 protected:
158  vtkContext3D();
159  ~vtkContext3D() override;
160 
161  vtkSmartPointer<vtkContextDevice3D> Device; // The underlying device
163 
164 private:
165  vtkContext3D(const vtkContext3D&) = delete;
166  void operator=(const vtkContext3D&) = delete;
167 };
168 
169 #endif // VTKCONTEXT3D_H
abstract base class for most VTK objects
Definition: vtkObject.h:62
Abstract class for drawing 3D primitives.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
describes linear transformations via a 4x4 matrix
Definition: vtkTransform.h:60
vtkSmartPointer< vtkTransform > Transform
Definition: vtkContext3D.h:162
provides a brush that fills shapes drawn by vtkContext2D.
Definition: vtkBrush.h:40
a simple class to control print indentation
Definition: vtkIndent.h:39
provides a pen that draws the outlines of shapes drawn by vtkContext2D.
Definition: vtkPen.h:39
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
vtkSmartPointer< vtkContextDevice3D > Device
Definition: vtkContext3D.h:161
Class for drawing 3D primitives to a graphical context.
Definition: vtkContext3D.h:40