26#ifndef G4VTKUNSTRUCTUREDGRIDPIPELINE_HH
27#define G4VTKUNSTRUCTUREDGRIDPIPELINE_HH
35#include <vtkSmartPointer.h>
37#include <vtkCharArray.h>
38#include <vtkDoubleArray.h>
39#include <vtkUnstructuredGrid.h>
40#if VTK_MINOR_VERSION >= 2
41#include <vtkStaticCleanUnstructuredGrid.h>
43#include <vtkLookupTable.h>
44#include <vtkDiscretizableColorTransferFunction.h>
47class vtkDataSetMapper;
48class vtkUnstructuredGridVolumeMapper;
49class vtkUnstructuredGridVolumeRayCastMapper;
50class vtkUnstructuredGridVolumeZSweepMapper;
51class vtkOpenGLProjectedTetrahedraMapper;
83 vtkDoubleArray *pointColourValues,
84 vtkDoubleArray *cellColourValues,
85 vtkDoubleArray *pointColourIndices,
86 vtkDoubleArray *cellColourIndices,
87 vtkDiscretizableColorTransferFunction *colourLUT,
88 vtkUnstructuredGrid *unstructuredGrid)
132 vtkDoubleArray *pointColourValues,
133 vtkDoubleArray *cellColourValues,
134 vtkDoubleArray *pointColourIndices,
135 vtkDoubleArray *cellColourIndices,
136 vtkDiscretizableColorTransferFunction *colourLUT,
137 vtkUnstructuredGrid *unstructuredGrid)
139 pointColourIndices, cellColourIndices, colourLUT, unstructuredGrid)
143 void AddSolid(
const G4VSolid& solid)
override;
144 void ProcessVolume(
const G4VSolid&)
override {}
151 vtkDoubleArray *pointColourValues,
152 vtkDoubleArray *cellColourValues,
153 vtkDoubleArray *pointColourIndices,
154 vtkDoubleArray *cellColourIndices,
155 vtkDiscretizableColorTransferFunction *colourLUT,
156 vtkUnstructuredGrid *unstructuredGrid)
158 pointColourIndices,cellColourIndices,colourLUT, unstructuredGrid)
162 void AddSolid(
const G4Box& box)
override;
163 void ProcessVolume(
const G4VSolid&)
override {}
175 std::vector<vtkSmartPointer<vtkUnstructuredGridAlgorithm>> filters;
176#if VTK_MINOR_VERSION >= 2
G4GLOB_DLL std::ostream G4cout
void AddSolid(const G4Box &solid)
PseudoSceneForCubicalCells(G4PhysicalVolumeModel *pvModel, G4int depth, vtkPoints *points, vtkDoubleArray *pointColourValues, vtkDoubleArray *cellColourValues, vtkDoubleArray *pointColourIndices, vtkDoubleArray *cellColourIndices, vtkDiscretizableColorTransferFunction *colourLUT, vtkUnstructuredGrid *unstructuredGrid)
PseudoSceneForTetCells(G4PhysicalVolumeModel *pvModel, G4int depth, vtkPoints *points, vtkDoubleArray *pointColourValues, vtkDoubleArray *cellColourValues, vtkDoubleArray *pointColourIndices, vtkDoubleArray *cellColourIndices, vtkDiscretizableColorTransferFunction *colourLUT, vtkUnstructuredGrid *unstructuredGrid)
vtkSmartPointer< vtkDoubleArray > fpPointColourValues
void AddSolid(const G4VSolid &) override
G4int GetNumberOfAddedCells()
void ProcessVolume(const G4VSolid &) override
vtkSmartPointer< vtkDoubleArray > fpCellColourValues
vtkSmartPointer< vtkUnstructuredGrid > fpGrid
std::vector< G4ThreeVector > fpPointVector
vtkSmartPointer< vtkDiscretizableColorTransferFunction > fpColourLUT
vtkSmartPointer< vtkDoubleArray > fpPointColourIndices
void AddSolid(const G4Box &) override
vtkSmartPointer< vtkDoubleArray > fpCellColourIndices
G4PhysicalVolumeModel * fpPVModel
G4int GetNumberOfPoints()
std::map< std::size_t, double > fpColourMap
std::map< std::size_t, std::size_t > fpPointMap
PseudoSceneVtkBase(G4PhysicalVolumeModel *pvModel, G4int depth, vtkPoints *points, vtkDoubleArray *pointColourValues, vtkDoubleArray *cellColourValues, vtkDoubleArray *pointColourIndices, vtkDoubleArray *cellColourIndices, vtkDiscretizableColorTransferFunction *colourLUT, vtkUnstructuredGrid *unstructuredGrid)
vtkSmartPointer< vtkPoints > fpPoints
void SetUnstructuredGridData(const G4Mesh &mesh)
G4VtkUnstructuredGridPipeline(G4String name, const G4VtkVisContext &vc)
void AddFilter(vtkSmartPointer< vtkUnstructuredGridAlgorithm > f)
~G4VtkUnstructuredGridPipeline()=default
std::size_t GetNumberOfFilters()
vtkSmartPointer< vtkUnstructuredGridAlgorithm > GetFinalFilter()
vtkSmartPointer< vtkUnstructuredGridAlgorithm > GetFilter(G4int iFilter)