VGM Version 5.3
Loading...
Searching...
No Matches
MultiUnion.h
Go to the documentation of this file.
1// $Id$
2
3// -----------------------------------------------------------------------
4// The Geant4GM package of the Virtual Geometry Model
5// Copyright (C) 2007, Ivana Hrivnacova
6// All rights reserved.
7//
8// For the licensing terms see vgm/LICENSE.
9// Contact: ivana@ipno.in2p3.fr
10// -----------------------------------------------------------------------
11
13//
19
20#ifndef GEANT4_GM_MULTI_UNION_H
21#define GEANT4_GM_MULTI_UNION_H
22
24
26
27#include "G4Transform3D.hh"
28#include "G4Types.hh"
29
30#include <iostream>
31#include <vector>
32
33class G4VSolid;
34class G4MultiUnion;
35class G4ReflectedSolid;
36
37namespace Geant4GM {
38
40{
41 public:
42 MultiUnion(const std::string& name, std::vector<VGM::ISolid*> constituents,
43 std::vector<G4Transform3D> transforms);
44 MultiUnion(G4MultiUnion* MultiUnion, G4ReflectedSolid* reflected);
45 virtual ~MultiUnion();
46
47 // methods
48 virtual std::string Name() const;
49
50 virtual int NofSolids() const;
51 virtual ISolid* ConstituentSolid(G4int index) const;
52 virtual VGM::Transform Transformation(G4int index) const;
53 virtual bool ToBeReflected() const;
54
55 protected:
56 MultiUnion();
57 MultiUnion(const MultiUnion& rhs);
58
59 private:
60 G4MultiUnion* fMultiUnion;
61 bool fToBeReflected;
62};
63
64} // namespace Geant4GM
65
67{
68 return fToBeReflected;
69}
70
71#endif // GEANT4_GM_MULTI_UNION_H
The ABC for Boolean solids.
Definition VMultiUnion.h:30
VGM implementation for Geant4 Boolean solid.
Definition MultiUnion.h:40
virtual VGM::Transform Transformation(G4int index) const
virtual ISolid * ConstituentSolid(G4int index) const
virtual int NofSolids() const
Return the number of constituent solids.
virtual bool ToBeReflected() const
Return true if the solid has to be first reflected before being placed.
Definition MultiUnion.h:66
virtual std::string Name() const
Return the name of this solid.
VGM implementation for Geant4.
Definition Element.h:29
std::vector< double > Transform
Definition Transform.h:40