VTK  9.4.20250205
vtkWebGPUCompositePolyDataMapperDelegator.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
14#ifndef vtkWebGPUCompositePolyDataMapperDelegator_h
15#define vtkWebGPUCompositePolyDataMapperDelegator_h
16
18
19#include "vtkRenderingWebGPUModule.h" // for export macro
20
21VTK_ABI_NAMESPACE_BEGIN
22
24
25class VTKRENDERINGWEBGPU_EXPORT vtkWebGPUCompositePolyDataMapperDelegator
27{
28public:
31 void PrintSelf(ostream& os, vtkIndent indent) override;
32
34
36
39 // Copy array names used for selection. Ex: PointIdArrayName, CompositeIdArrayName, ..
42 void UnmarkBatchElements() override;
44
45protected:
48
50
53 std::vector<vtkPolyData*> GetRenderedList() const override;
54 void SetParent(vtkCompositePolyDataMapper* mapper) override;
55 void Insert(BatchElement&& item) override;
56 BatchElement* Get(vtkPolyData* polydata) override;
57 void Clear() override;
59
60 // The actual mapper which renders multiple vtkPolyData.
61 // Constructor assigns it to vtkBatchedPolyDataMapperDelegator::Delegate.
62 // From that point on, parent class manages lifetime of this WebGPUDelegate.
63 // Instead of repeatedly downcasting the abstract Delegate, we trampoline
64 // calls to WebGPUDelegate.
65 vtkWebGPUBatchedPolyDataMapper* WebGPUDelegate = nullptr;
66
67private:
70 void operator=(const vtkWebGPUCompositePolyDataMapperDelegator&) = delete;
71};
72
73VTK_ABI_NAMESPACE_END
74#endif
Delegates rendering of multiple polydata that share similar signatures.
a class that renders hierarchical polygonal data
a simple class to control print indentation
Definition vtkIndent.h:108
concrete dataset represents vertices, lines, polygons, and triangle strips
A WebGPU mapper for batched rendering of vtkPolyData.
An OpenGL delegator for batched rendering of multiple polydata with similar structure.
void SetParent(vtkCompositePolyDataMapper *mapper) override
Implement parent class API.
BatchElement * Get(vtkPolyData *polydata) override
Implement parent class API.
std::vector< vtkPolyData * > GetRenderedList() const override
Implement parent class API.
void Insert(BatchElement &&item) override
Implement parent class API.
void UnmarkBatchElements() override
Implement parent class API.
static vtkWebGPUCompositePolyDataMapperDelegator * New()
void ClearUnmarkedBatchElements() override
Implement parent class API.
void ShallowCopy(vtkCompositePolyDataMapper *mapper) override
Implement parent class API.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void Clear() override
Implement parent class API.