Geant4 11.3.0
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
SoBox.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//
27//
28/*-----------------------------Hepvis----------------------------------------*/
29/* */
30/* Node: SoBox */
31/* Description: Represents the G4Box Geant Geometry entity */
32/* Author: Joe Boudreau Nov 11 1996 */
33/* */
34/*---------------------------------------------------------------------------*/
35#ifndef HEPVis_SoBox_h
36#define HEPVis_SoBox_h
37
38#include <Inventor/fields/SoSFFloat.h>
39#include <Inventor/fields/SoSFNode.h>
40#include <Inventor/nodes/SoShape.h>
41
42class SoSFNode;
43
44//! SoBox - Inventor version of the G4Box Geant Geometry entity
45/*!
46 * Node: SoBox
47 *
48 * Description: The Inventor version of the G4Box Geant Geometry entity
49 *
50 * Author: Joe Boudreau Nov 11 1996
51 *
52 * class G4Box
53 *
54 * A Box is a cuboid of given half lengths dx,dy,dz. The Box is
55 * centred on the origin with sides parallel to the x/y/z axes.
56 *
57 * Always use Inventor Fields. This allows Inventor to detect a change to
58 * the data field and take the appropriate action; e.g., redraw the scene.
59*/
60
61#define SoBox Geant4_SoBox
62
63class SoBox:public SoShape {
64
65 // The following is required:
66 SO_NODE_HEADER(SoBox);
67
68public:
69
70 //
71 //! Half-length along X
72 //
73 SoSFFloat fDx;
74 //
75 //! Half-length along Y
76 //
77 SoSFFloat fDy;
78 //
79 //! Half-length along Z
80 //
81 SoSFFloat fDz;
82 //
83 //! Alternate rep - for use by users without HEPVis shared objects
84 //
85 SoSFNode alternateRep;
86
87 //
88 //! Constructor, required
89 //
90 SoBox();
91
92 //
93 //! Class Initializer, required
94 //
95 static void initClass();
96
97 //
98 //! Generate AlternateRep, required. Generating an alternate representation
99 //! must be done upon users request. It allows an Inventor program to read
100 //! back the file without requiring *this* code to be dynamically linked.
101 //! If the users expects that *this* code will be dynamically linked, he
102 //! need not invoke this method.
103 //
104 virtual void generateAlternateRep();
105
106 //
107 //! We better be able to clear it, too!
108 //
109 virtual void clearAlternateRep();
110
111protected:
112
113 //
114 //! compute bounding Box, required
115 //
116 virtual void computeBBox(SoAction *action, SbBox3f &box, SbVec3f &center );
117
118 //
119 //! Generate Primitives, required
120 //
121 virtual void generatePrimitives(SoAction *action);
122
123 //
124 //! GetChildList, required whenever the class has hidden children
125 //
126 virtual SoChildList *getChildren() const;
127
128
129protected:
130 //
131 //! Destructor, required
132 //
133 virtual ~SoBox();
134
135private:
136
137 //
138 //! Generate Children. Used to create the hidden children. Required whenever
139 //! the node has hidden children.
140 //
141 void generateChildren();
142
143 //
144 //! Used to modify hidden children when a data field is changed. Required
145 //! whenever the class has hidden children.
146 //
147 void updateChildren();
148
149 //
150 //! ChildList. Required whenever the class has hidden children.
151 //
152 SoChildList *children;
153
154};
155
156#endif
#define SoBox
SoBox - Inventor version of the G4Box Geant Geometry entity.
Definition SoBox.h:61
virtual void generateAlternateRep()
Definition SoBox.cc:267
SoBox()
Constructor, required.
Definition SoBox.cc:58
SoSFFloat fDx
Half-length along X.
Definition SoBox.h:73
SoSFNode alternateRep
Alternate rep - for use by users without HEPVis shared objects.
Definition SoBox.h:85
SoSFFloat fDy
Half-length along Y.
Definition SoBox.h:77
virtual void clearAlternateRep()
We better be able to clear it, too!
Definition SoBox.cc:278
static void initClass()
Class Initializer, required.
Definition SoBox.cc:77
SoSFFloat fDz
Half-length along Z.
Definition SoBox.h:81
virtual SoChildList * getChildren() const
GetChildList, required whenever the class has hidden children.
Definition SoBox.cc:221
virtual void generatePrimitives(SoAction *action)
Generate Primitives, required.
Definition SoBox.cc:88
virtual void computeBBox(SoAction *action, SbBox3f &box, SbVec3f &center)
compute bounding Box, required
Definition SoBox.cc:227