VTK  9.3.20240425
vtkContext3D.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-License-Identifier: BSD-3-Clause
3
34#ifndef vtkContext3D_h
35#define vtkContext3D_h
36
37#include "vtkObject.h"
38#include "vtkRenderingContext2DModule.h" // For export macro
39#include "vtkSmartPointer.h" // For SP ivars.
40#include "vtkVector.h" // For the vector coordinates.
41
42#include <cstdint> // For std::uintptr_t
43
44VTK_ABI_NAMESPACE_BEGIN
46class vtkPen;
47class vtkDataArray;
48class vtkBrush;
49class vtkTransform;
51
52class VTKRENDERINGCONTEXT2D_EXPORT vtkContext3D : public vtkObject
53{
54public:
55 vtkTypeMacro(vtkContext3D, vtkObject);
56 void PrintSelf(ostream& os, vtkIndent indent) override;
57
61 static vtkContext3D* New();
62
69
74
80 bool End();
81
85 void DrawLine(const vtkVector3f& start, const vtkVector3f& end);
86
90 void DrawPoly(const float* points, int n);
91
95 void DrawPoint(const vtkVector3f& point);
96
100 void DrawPoints(const float* points, int n);
101
107 void DrawPoints(const float* points, int n, unsigned char* colors, int nc_comps);
109 vtkDataArray* positions, vtkUnsignedCharArray* colors, std::uintptr_t cacheIdentifier);
110
114 void DrawTriangleMesh(const float* mesh, int n, const unsigned char* colors, int nc);
116 vtkDataArray* positions, vtkUnsignedCharArray* colors, std::uintptr_t cacheIdentifier);
117
123 void ApplyPen(vtkPen* pen);
124
130 void ApplyBrush(vtkBrush* brush);
131
137 void SetTransform(vtkTransform* transform);
138
143
151
153
158 void PopMatrix();
160
162
169 void EnableClippingPlane(int i, double* planeEquation);
172
173protected:
175 ~vtkContext3D() override;
176
179
180private:
181 vtkContext3D(const vtkContext3D&) = delete;
182 void operator=(const vtkContext3D&) = delete;
183};
184
185VTK_ABI_NAMESPACE_END
186#endif // VTKCONTEXT3D_H
provides a brush that fills shapes drawn by vtkContext2D.
Definition vtkBrush.h:89
Class for drawing 3D primitives to a graphical context.
~vtkContext3D() override
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
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.
void EnableClippingPlane(int i, double *planeEquation)
Enable/Disable the specified clipping plane.
vtkSmartPointer< vtkTransform > Transform
vtkTransform * GetTransform()
Compute the current transform applied to the context.
void SetTransform(vtkTransform *transform)
Set the transform for the context, the underlying device will use the matrix of the transform.
vtkContextDevice3D * GetDevice()
Get access to the underlying 3D context.
static vtkContext3D * New()
Creates a 3D context object.
void DrawTriangleMesh(vtkDataArray *positions, vtkUnsignedCharArray *colors, std::uintptr_t cacheIdentifier)
void DrawPoints(vtkDataArray *positions, vtkUnsignedCharArray *colors, std::uintptr_t cacheIdentifier)
void DisableClippingPlane(int i)
Enable/Disable the specified clipping plane.
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()
Push/pop the transformation matrix for the painter (sets the underlying matrix for the device when av...
vtkSmartPointer< vtkContextDevice3D > Device
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...
void ApplyPen(vtkPen *pen)
Apply the supplied pen which controls the outlines of shapes, as well as lines, points and related pr...
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.
abstract superclass for arrays of numeric data
a simple class to control print indentation
Definition vtkIndent.h:108
abstract base class for most VTK objects
Definition vtkObject.h:162
provides a pen that draws the outlines of shapes drawn by vtkContext2D.
Definition vtkPen.h:78
Hold a reference to a vtkObjectBase instance.
describes linear transformations via a 4x4 matrix
dynamic, self-adjusting array of unsigned char