Geant4 Cross Reference |
1 // 1 2 // ******************************************* 3 // * License and Disclaimer 4 // * 5 // * The Geant4 software is copyright of th 6 // * the Geant4 Collaboration. It is provided 7 // * conditions of the Geant4 Software License 8 // * LICENSE and available at http://cern.ch/ 9 // * include a list of copyright holders. 10 // * 11 // * Neither the authors of this software syst 12 // * institutes,nor the agencies providing fin 13 // * work make any representation or warran 14 // * regarding this software system or assum 15 // * use. Please see the license in the file 16 // * for the full disclaimer and the limitatio 17 // * 18 // * This code implementation is the result 19 // * technical work of the GEANT4 collaboratio 20 // * By using, copying, modifying or distri 21 // * any work based on the software) you ag 22 // * use in resulting scientific publicati 23 // * acceptance of all terms of the Geant4 Sof 24 // ******************************************* 25 // 26 // 27 // 28 /*-----------------------------Hepvis--------- 29 /* 30 /* Node: SoTrd 31 /* Description: Represents the G4Trd Gean 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 Gean 46 /*! 47 * Node: SoTrd 48 * 49 * Description: Inventor version of the G4 50 * 51 * Author: Joe Boudreau Nov 11 1996 52 * 53 * A Trd is a trapezoid with the x and y dimen 54 * 55 * Always use Inventor Fields. This allows Inv 56 * the data field and take the appropriate act 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. Genera 113 //! must be done upon users request. It all 114 //! back the file without requiring *this* c 115 //! If the users expects that *this* code wi 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, S 131 132 // 133 //! Generate Primitives, required 134 // 135 virtual void generatePrimitives(SoAction *ac 136 137 // 138 //! GetChildList, required whenever the clas 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 hi 154 //! the node has hidden children. 155 // 156 void generateChildren(); 157 158 // 159 //! Used to modify hidden children when a da 160 //! whenever the class has hidden children. 161 // 162 void updateChildren(); 163 164 // 165 //! ChildList. Required whenever the class h 166 // 167 SoChildList *children; 168 }; 169 170 #endif 171