VTK  9.7.1
vtkOpenGLPropItem.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 
15 #ifndef vtkOpenGLPropItem_h
16 #define vtkOpenGLPropItem_h
17 
18 #include "vtkNew.h" // for vtkNew
19 #include "vtkPropItem.h"
20 #include "vtkRenderingContextOpenGL2Module.h" // For export macro
21 #include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
22 
23 VTK_ABI_NAMESPACE_BEGIN
24 class vtkCamera;
25 
26 class VTKRENDERINGCONTEXTOPENGL2_EXPORT VTK_MARSHALAUTO vtkOpenGLPropItem : public vtkPropItem
27 {
28 public:
29  static vtkOpenGLPropItem* New();
31  void PrintSelf(ostream& os, vtkIndent indent) override;
32 
33  bool Paint(vtkContext2D* painter) override;
34 
35 protected:
37  ~vtkOpenGLPropItem() override;
38 
39  // Sync the active vtkCamera with the GL state set by the painter.
40  void UpdateTransforms() override;
41 
42  // Restore the vtkCamera state.
43  void ResetTransforms() override;
44 
45 private:
46  vtkNew<vtkCamera> CameraCache;
47  vtkContext2D* Painter;
48 
49  vtkOpenGLPropItem(const vtkOpenGLPropItem&) = delete;
50  void operator=(const vtkOpenGLPropItem&) = delete;
51 };
52 
53 VTK_ABI_NAMESPACE_END
54 #endif // vtkOpenGLPropItem_h
Sync Context2D state with vtk camera.
bool Paint(vtkContext2D *painter) override
Paint event for the item, called whenever the item needs to be drawn.
Embed a vtkProp in a vtkContextScene.
Definition: vtkPropItem.h:27
static vtkPropItem * New()
Class for drawing 2D primitives to a graphical context.
Definition: vtkContext2D.h:49
a simple class to control print indentation
Definition: vtkIndent.h:28
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
a virtual camera for 3D rendering
Definition: vtkCamera.h:41
virtual void ResetTransforms()
virtual void UpdateTransforms()
#define VTK_MARSHALAUTO