14#ifndef vtkAnariPolyDataMapperNode_h
15#define vtkAnariPolyDataMapperNode_h
18#include "vtkRenderingAnariCoreModule.h"
20VTK_ABI_NAMESPACE_BEGIN
24class vtkAnariPolyDataMapperNodeInternals;
39 void Build(
bool prepass)
override;
73 template <
typename T,
typename... Args>
76 static_assert(std::is_base_of<vtkAnariPolyDataMapperInheritInterface, T>::value,
77 "vtkAnariPolyDataMapperNode::CreateInheritInterface, T should be a base of "
78 "vtkAnariPolyDataMapperInheritInterface");
79 std::shared_ptr<T>
interface = std::make_shared<T>(
std::forward<Args>(args)...);
80 this->SetInheritInterface(interface);
83 void
AnariRenderPoly(vtkAnariActorNode* anariActorNode, vtkPolyData* poly, double* diffuse,
84 double opacity, const std::string& materialName);
86 vtkAnariPolyDataMapperNodeInternals*
Internal{
nullptr };
97 void SetInheritInterface(
98 std::shared_ptr<vtkAnariPolyDataMapperInheritInterface> inheritInterface);
represents an object (geometry & properties) in a rendered scene
links vtkActor and vtkMapper to ANARI
Interface for inheriting classes for overriding mapper functionality.
links vtkActor and vtkMapper to ANARI
bool InheritInterfaceInitialized() const
Return true if the inherit interface is not a nullptr.
vtkAnariSceneGraph * RendererNode
void Render(bool prepass) override
Make ANARI calls to render me.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkAnariActorNode * GetAnariActorNode() const
void CreateInheritInterface(Args... args)
Convenience function to create an inherit interface.
vtkAnariPolyDataMapperNodeInternals * Internal
bool ActorWasModified() const
~vtkAnariPolyDataMapperNode() override
void Synchronize(bool prepass) override
Sync ANARIGeometry + ANARIMaterial parameters with vtkPolyData.
void AnariRenderPoly(vtkAnariActorNode *anariActorNode, vtkPolyData *poly, double *diffuse, double opacity, const std::string &materialName)
void RenderSurfaceModels()
static vtkAnariPolyDataMapperNode * New()
void Build(bool prepass) override
Ensure this node has been initialized.
void Invalidate(bool prepass) override
Invalidates cached rendering data.
vtkAnariPolyDataMapperNode()
vtkActor * GetVtkActor() const
links vtkRenderers to ANARI
a simple class to control print indentation
concrete dataset represents vertices, lines, polygons, and triangle strips
vtkTypeUInt32 vtkMTimeType