ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
PBRRenderer.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - CloudViewer: www.cloudViewer.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2024 www.cloudViewer.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 
8 #pragma once
9 
10 #include <memory>
11 
14 
15 namespace PclUtils {
16 namespace renders {
17 
31 public:
32  PBRRenderer();
33  ~PBRRenderer() override = default;
34 
35  bool CanHandle(size_t material_count,
36  bool has_pbr_textures,
37  bool has_multiple_map_kd) const override;
38 
39  RenderingMode GetMode() const override;
40 
41  bool Apply(vtkLODActor* actor,
42  const class ccMaterialSet* materials,
43  vtkPolyData* polydata,
44  vtkRenderer* renderer) override;
45 
46  bool Update(vtkActor* actor,
47  const class ccMaterialSet* materials,
48  vtkPolyData* polydata,
49  vtkRenderer* renderer) override;
50 
51  std::string GetName() const override;
52 
53 private:
54  std::unique_ptr<VtkUtils::VtkMultiTextureRenderer> vtk_renderer_;
55 };
56 
57 } // namespace renders
58 } // namespace PclUtils
Unified PBR (Physically Based Rendering) renderer.
Definition: PBRRenderer.h:30
bool Apply(vtkLODActor *actor, const class ccMaterialSet *materials, vtkPolyData *polydata, vtkRenderer *renderer) override
Apply rendering to actor.
Definition: PBRRenderer.cpp:48
std::string GetName() const override
Get renderer name for logging.
RenderingMode GetMode() const override
Get the rendering mode this renderer implements.
Definition: PBRRenderer.cpp:46
~PBRRenderer() override=default
bool CanHandle(size_t material_count, bool has_pbr_textures, bool has_multiple_map_kd) const override
Check if this renderer can handle the given material.
Definition: PBRRenderer.cpp:30
bool Update(vtkActor *actor, const class ccMaterialSet *materials, vtkPolyData *polydata, vtkRenderer *renderer) override
Update existing actor with new materials.
Definition: PBRRenderer.cpp:96
Base class for all texture renderers.
Mesh (triangle) material.
RenderingMode
Rendering mode enumeration.