Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
Geant4_SoPolyhedron.h
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//
26#ifndef Geant4_SoPolyhedron_h
27#define Geant4_SoPolyhedron_h
28
29// Inheritance :
30#include <Inventor/nodes/SoShape.h>
31
32#include <Inventor/fields/SoSFBool.h>
33#include <Inventor/fields/SoSFNode.h>
34
35class G4Polyhedron;
36
37/**
38 * SoPolyhedron is an Inventor encapsulation of the G4Polyedron
39 * class written by E.Chernyaev. In particular SoPolyhedron permits
40 * to represent boolean operations over solids.
41 * To avoid clashes with other libraries (Geant4) where the G4Polyhedron
42 * classes may be found, the G4Polyhedron (through usage of CPP macros)
43 * had been renamed G4Polyhedron in the HEPVis lib.
44 * The solids are modeled with G4Polyedron objects. The G4Polyhedron
45 * permits to produce a new G4Polyhedron according to the boolean
46 * operation done on them. The resulting G4Polyhedron is then given
47 * to an SoPolyhedron for rendering.
48 * Note that a boolean operation could be rendered in wire frame
49 * by drawing the contour of the resulting solid (not by drawing
50 * the wire frame of a triangulation).
51 * See the applications/Polyhedron example.
52 */
53
54class Geant4_SoPolyhedron : public SoShape {
55 SO_NODE_HEADER(Geant4_SoPolyhedron);
56private:
59public:
60 SoSFBool solid;
62 SoSFNode alternateRep;
63public:
67 virtual void generateAlternateRep();
68 virtual void clearAlternateRep();
69public:
70 static void initClass();
71protected:
72 virtual void computeBBox(SoAction*,SbBox3f&,SbVec3f&);
73 virtual void generatePrimitives(SoAction*);
74 virtual void doAction(SoAction*);
75protected:
77private:
78 G4Polyhedron* fPolyhedron;
79};
80
81#endif
virtual void generateAlternateRep()
static void initClass()
virtual void computeBBox(SoAction *, SbBox3f &, SbVec3f &)
virtual ~Geant4_SoPolyhedron()
Geant4_SoPolyhedron(const G4Polyhedron &)
virtual void generatePrimitives(SoAction *)
virtual void doAction(SoAction *)
Geant4_SoPolyhedron(G4Polyhedron *)
virtual void clearAlternateRep()