Geant4 Cross Reference |
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 ¢er ); 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