Geant4 10.7.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
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 //
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
Definition: SoTrd.h:62
virtual void computeBBox(SoAction *action, SbBox3f &box, SbVec3f &center)
compute bounding Box, required
SoSFFloat fDx2
half-length of x, at +fDz
Definition: SoTrd.h:79
virtual void generateAlternateRep()
virtual void clearAlternateRep()
We better be able to clear it, too!
SoTrd()
Constructor, required.
virtual void generatePrimitives(SoAction *action)
Generate Primitives, required.
virtual ~SoTrd()
Destructor, required.
SoSFFloat fDy2
half-length of y, at +fDz
Definition: SoTrd.h:89
SoSFFloat fDy1
half-length of y, at -fDz
Definition: SoTrd.h:84
SoSFNode alternateRep
Alternate rep - required.
Definition: SoTrd.h:99
static void initClass()
Class Initializer, required.
SoSFFloat fDx1
half-length of x, at -fDz
Definition: SoTrd.h:74
virtual SoChildList * getChildren() const
GetChildList, required whenever the class has hidden children.
SoSFFloat fDz
half-length along Z
Definition: SoTrd.h:94