Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/visualization/OpenInventor/include/private/HEPVis/nodes/SoTrd.h

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

  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 
 43 class 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 
 62 class SoTrd:public SoShape {
 63 
 64   //
 65   //! This is required
 66   //
 67   SO_NODE_HEADER(SoTrd);
 68  
 69 public:
 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 
125 protected:
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 
143 protected:
144 
145   //
146   //! Destructor, required
147   //
148   virtual ~SoTrd();
149 
150 private: 
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
171