VTK  9.7.1
vtkAnariPolyDataMapperNode.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
14 #ifndef vtkAnariPolyDataMapperNode_h
15 #define vtkAnariPolyDataMapperNode_h
16 
17 #include "vtkPolyDataMapperNode.h"
18 #include "vtkRenderingAnariModule.h" // For export macro
19 
20 VTK_ABI_NAMESPACE_BEGIN
21 
22 class vtkActor;
24 class vtkAnariPolyDataMapperNodeInternals;
25 class vtkAnariActorNode;
26 class vtkAnariSceneGraph;
27 class vtkPolyData;
28 
29 class VTKRENDERINGANARI_EXPORT vtkAnariPolyDataMapperNode : public vtkPolyDataMapperNode
30 {
31 public:
34  void PrintSelf(ostream& os, vtkIndent indent) override;
35 
39  void Build(bool prepass) override;
43  void Synchronize(bool prepass) override;
47  void Render(bool prepass) override;
51  void Invalidate(bool prepass) override;
52 
53 protected:
55  ~vtkAnariPolyDataMapperNode() override;
56 
57  vtkActor* GetVtkActor() const;
58  vtkAnariActorNode* GetAnariActorNode() const;
59  bool ActorWasModified() const;
60  void RenderSurfaceModels();
61  void ClearSurfaces();
62  void SetActorNodeName();
63 
64  void SetInheritInterface(vtkAnariPolyDataMapperInheritInterface* inheritInterface);
65 
66  void AnariRenderPoly(vtkAnariActorNode* anariActorNode, vtkPolyData* poly, double* diffuse,
67  double opacity, const std::string& materialName);
68 
69  vtkAnariPolyDataMapperNodeInternals* Internal{ nullptr };
70  vtkAnariSceneGraph* RendererNode{ nullptr };
71 
72 private:
74  void operator=(const vtkAnariPolyDataMapperNode&) = delete;
75 };
76 
77 VTK_ABI_NAMESPACE_END
78 #endif
virtual void Build(bool)
Builds myself.
Definition: vtkViewNode.h:46
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:41
vtkViewNode specialized for vtkPolyDataMappers
links vtkActor and vtkMapper to ANARI
virtual void Synchronize(bool)
Ensures that my state agrees with my Renderable's.
Definition: vtkViewNode.h:51
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:71
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
a simple class to control print indentation
Definition: vtkIndent.h:28
static vtkPolyDataMapperNode * New()
virtual void Render(bool)
Makes calls to make self visible.
Definition: vtkViewNode.h:56
Interface for inheriting classes for overriding mapper functionality.
virtual void Invalidate(bool)
Clear any cached data.
Definition: vtkViewNode.h:61
links vtkActor and vtkMapper to ANARI
links vtkRenderers to ANARI