Geant4 11.2.2
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4VtkPolydataInstancePipeline.cc
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25
27
28#include <vtkDoubleArray.h>
29#include <vtkPoints.h>
30
32 const G4VtkVisContext& vcIn)
33 : G4VtkPolydataPipeline(nameIn, vcIn)
34{
35 // Set pipeline type
36 SetTypeName(G4String("G4VtkPolydataInstancePipeline"));
37
39 instanceColour->SetName("colours");
40 instanceColour->SetNumberOfComponents(4);
41
43
45 instanceTransform->SetName("transform");
46 instanceTransform->SetNumberOfComponents(9);
47}
48
50 G4double r01, G4double r02, G4double r10,
51 G4double r11, G4double r12, G4double r20,
52 G4double r21, G4double r22, const G4String& nameIn)
53{
54 // add the instance without colour or alpha
55 addInstance(dx, dy, dz, r00, r01, r02, r10, r11, r12, r20, r21, r22, 0, 0, 0, 0, nameIn);
56}
57
59 G4double r01, G4double r02, G4double r10,
60 G4double r11, G4double r12, G4double r20,
61 G4double r21, G4double r22, G4double r, G4double g,
62 G4double b, G4double a, const G4String& nameIn)
63{
64 instanceColour->InsertNextTuple4(r, g, b, a);
65 auto idp = instancePosition->InsertNextPoint(dx, dy, dz);
66 instanceTransform->InsertNextTuple9(r00, r01, r02, r10, r11, r12, r20, r21, r22);
67 instanceMap[nameIn] = idp;
68}
69
71{
72 // remove from instanceColour, instancePosition and instanceTransform
73}
double G4double
Definition G4Types.hh:83
void SetTypeName(G4String typeNameIn)
G4VtkPolydataInstancePipeline(G4String name, const G4VtkVisContext &vc)
vtkSmartPointer< vtkPoints > instancePosition
virtual void addInstance(G4double dx, G4double dy, G4double dz, G4double r00, G4double r01, G4double r02, G4double r10, G4double r11, G4double r12, G4double r20, G4double r21, G4double r22, const G4String &name)
virtual void removeInstance(const G4String &name)
std::map< G4String, vtkIdType > instanceMap
vtkSmartPointer< vtkDoubleArray > instanceColour
vtkSmartPointer< vtkDoubleArray > instanceTransform