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: SoBox 31 /* Description: Represents the G4Box Gean 32 /* Author: Joe Boudreau Nov 11 1996 33 /* 34 /*-------------------------------------------- 35 #ifndef HEPVis_SoBox_h 36 #define HEPVis_SoBox_h 37 38 #include <Inventor/fields/SoSFFloat.h> 39 #include <Inventor/fields/SoSFNode.h> 40 #include <Inventor/nodes/SoShape.h> 41 42 class SoSFNode; 43 44 //! SoBox - Inventor version of the G4Box Gean 45 /*! 46 * Node: SoBox 47 * 48 * Description: The Inventor version of t 49 * 50 * Author: Joe Boudreau Nov 11 1996 51 * 52 * class G4Box 53 * 54 * A Box is a cuboid of given half lengths dx, 55 * centred on the origin with sides parallel t 56 * 57 * Always use Inventor Fields. This allows Inv 58 * the data field and take the appropriate act 59 */ 60 61 #define SoBox Geant4_SoBox 62 63 class SoBox:public SoShape { 64 65 // The following is required: 66 SO_NODE_HEADER(SoBox); 67 68 public: 69 70 // 71 //! Half-length along X 72 // 73 SoSFFloat fDx; 74 // 75 //! Half-length along Y 76 // 77 SoSFFloat fDy; 78 // 79 //! Half-length along Z 80 // 81 SoSFFloat fDz; 82 // 83 //! Alternate rep - for use by users without 84 // 85 SoSFNode alternateRep; 86 87 // 88 //! Constructor, required 89 // 90 SoBox(); 91 92 // 93 //! Class Initializer, required 94 // 95 static void initClass(); 96 97 // 98 //! Generate AlternateRep, required. Genera 99 //! must be done upon users request. It all 100 //! back the file without requiring *this* c 101 //! If the users expects that *this* code wi 102 //! need not invoke this method. 103 // 104 virtual void generateAlternateRep(); 105 106 // 107 //! We better be able to clear it, too! 108 // 109 virtual void clearAlternateRep(); 110 111 protected: 112 113 // 114 //! compute bounding Box, required 115 // 116 virtual void computeBBox(SoAction *action, S 117 118 // 119 //! Generate Primitives, required 120 // 121 virtual void generatePrimitives(SoAction *ac 122 123 // 124 //! GetChildList, required whenever the clas 125 // 126 virtual SoChildList *getChildren() const; 127 128 129 protected: 130 // 131 //! Destructor, required 132 // 133 virtual ~SoBox(); 134 135 private: 136 137 // 138 //! Generate Children. Used to create the hi 139 //! the node has hidden children. 140 // 141 void generateChildren(); 142 143 // 144 //! Used to modify hidden children when a da 145 //! whenever the class has hidden children. 146 // 147 void updateChildren(); 148 149 // 150 //! ChildList. Required whenever the class h 151 // 152 SoChildList *children; 153 154 }; 155 156 #endif 157