Geant4 11.2.2
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
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
Definition SoBox.h:63
virtual void generateAlternateRep()
Definition SoBox.cc:267
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