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