Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/visualization/modeling/include/G4ModelingParameters.hh

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 ]

Diff markup

Differences between /visualization/modeling/include/G4ModelingParameters.hh (Version 11.3.0) and /visualization/modeling/include/G4ModelingParameters.hh (Version ReleaseNotes)


** Warning: Cannot open xref database.

  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 //                                                
 29 // John Allison  31st December 1997.              
 30 //                                                
 31 // Class Description:                             
 32 //                                                
 33 // Parameters associated with the modeling of     
 34                                                   
 35 #ifndef G4MODELINGPARAMETERS_HH                   
 36 #define G4MODELINGPARAMETERS_HH                   
 37                                                   
 38 #include "globals.hh"                             
 39 #include "G4VisExtent.hh"                         
 40 #include "G4VisAttributes.hh"                     
 41 #include "G4VPhysicalVolume.hh"                   
 42                                                   
 43 #include <vector>                                 
 44 #include <utility>                                
 45                                                   
 46 class G4LogicalVolume;                            
 47 class G4VisAttributes;                            
 48 class G4VSolid;                                   
 49 class G4DisplacedSolid;                           
 50 class G4Event;                                    
 51                                                   
 52 class G4ModelingParameters {                      
 53                                                   
 54 public: // With description                       
 55                                                   
 56   // Currently requested drawing style.           
 57   enum DrawingStyle {                             
 58     wf,         // Draw edges    - no hidden l    
 59     hlr,        // Draw edges    - hidden line    
 60     hsr,        // Draw surfaces - hidden surf    
 61     hlhsr,      // Draw surfaces and edges - h    
 62     cloud       // Draw as a cloud of points      
 63   };                                              
 64                                                   
 65   enum CutawayMode {                              
 66     cutawayUnion,       // Union (addition) of    
 67     cutawayIntersection // Intersection (multi    
 68   };                                              
 69                                                   
 70   // enums and nested class for communicating     
 71   // attributes for a specfic touchable define    
 72   enum VisAttributesSignifier {                   
 73     VASVisibility,                                
 74     VASDaughtersInvisible,                        
 75     VASColour,                                    
 76     VASLineStyle,                                 
 77     VASLineWidth,                                 
 78     VASForceWireframe,                            
 79     VASForceSolid,                                
 80     VASForceCloud,                                
 81     VASForceNumberOfCloudPoints,                  
 82     VASForceAuxEdgeVisible,                       
 83     VASForceLineSegmentsPerCircle                 
 84   };                                              
 85                                                   
 86   class PVNameCopyNo {                            
 87   public:                                         
 88     // Normal constructor                         
 89     PVNameCopyNo(const G4String& name, G4int c    
 90     : fName(name), fCopyNo(copyNo) {}             
 91     const G4String& GetName() const {return fN    
 92     G4int GetCopyNo() const {return fCopyNo;}     
 93     G4bool operator!=(const PVNameCopyNo&) con    
 94     G4bool operator==(const PVNameCopyNo& rhs)    
 95   private:                                        
 96     G4String fName;                               
 97     G4int fCopyNo;                                
 98   };                                              
 99   typedef std::vector<PVNameCopyNo> PVNameCopy    
100   typedef PVNameCopyNoPath::const_iterator PVN    
101                                                   
102   class PVPointerCopyNo {                         
103   public:                                         
104     // Normal constructor                         
105     PVPointerCopyNo(G4VPhysicalVolume* pPV, G4    
106     : fpPV(pPV), fCopyNo(copyNo) {}               
107     const G4String& GetName() const;              
108     const G4VPhysicalVolume* GetPVPointer() co    
109     G4int GetCopyNo() const {return fCopyNo;}     
110     G4bool operator!=(const PVPointerCopyNo&)     
111     G4bool operator==(const PVPointerCopyNo& r    
112   private:                                        
113     G4VPhysicalVolume* fpPV;                      
114     G4int fCopyNo;                                
115   };                                              
116   typedef std::vector<PVPointerCopyNo> PVPoint    
117   typedef PVPointerCopyNoPath::const_iterator     
118                                                   
119   class VisAttributesModifier {                   
120   public:                                         
121     VisAttributesModifier                         
122     (const G4VisAttributes& visAtts,              
123      VisAttributesSignifier signifier,            
124      const PVNameCopyNoPath& path):               
125     fVisAtts(visAtts), fSignifier(signifier),     
126     const G4VisAttributes& GetVisAttributes()     
127     {return fVisAtts;}                            
128     VisAttributesSignifier GetVisAttributesSig    
129     {return fSignifier;}                          
130     const PVNameCopyNoPath& GetPVNameCopyNoPat    
131     {return fPVNameCopyNoPath;}                   
132     void SetVisAttributes(const G4VisAttribute    
133     {fVisAtts = visAtts;}                         
134     void SetVisAttributesSignifier(VisAttribut    
135     {fSignifier = signifier;}                     
136     void SetPVNameCopyNoPath(const PVNameCopyN    
137     {fPVNameCopyNoPath = PVNameCopyNoPath;}       
138     G4bool operator!=(const VisAttributesModif    
139     G4bool operator==(const VisAttributesModif    
140     {return !operator!=(rhs);}                    
141   private:                                        
142     G4VisAttributes fVisAtts;                     
143     VisAttributesSignifier fSignifier;            
144     PVNameCopyNoPath fPVNameCopyNoPath;           
145   };                                              
146                                                   
147   G4ModelingParameters ();                        
148                                                   
149   G4ModelingParameters (const G4VisAttributes*    
150                         DrawingStyle drawingSt    
151       G4bool isCulling,                           
152       G4bool isCullingInvisible,                  
153       G4bool isDensityCulling,                    
154       G4double visibleDensity,                    
155       G4bool isCullingCovered,                    
156       G4int noOfSides);                           
157   // Culling and clipping policy for G4Physica    
158                                                   
159   ~G4ModelingParameters ();                       
160                                                   
161   // Note: uses default assignment operator an    
162                                                   
163   G4bool operator != (const G4ModelingParamete    
164                                                   
165   // Get and Is functions...                      
166   G4bool           IsWarning                      
167   const G4VisAttributes* GetDefaultVisAttribut    
168   DrawingStyle     GetDrawingStyle                
169   G4int            GetNumberOfCloudPoints         
170   G4bool           IsCulling                      
171   G4bool           IsCullingInvisible             
172   G4bool           IsDensityCulling               
173   G4double         GetVisibleDensity              
174   G4bool           IsCullingCovered               
175   G4int            GetCBDAlgorithmNumber          
176   const std::vector<G4double>& GetCBDParameter    
177   G4bool           IsExplode                      
178   G4double         GetExplodeFactor               
179   const G4Point3D& GetExplodeCentre               
180   G4int            GetNoOfSides                   
181   G4DisplacedSolid* GetSectionSolid               
182   CutawayMode      GetCutawayMode                 
183   G4DisplacedSolid* GetCutawaySolid               
184   const G4Event*   GetEvent                       
185   const std::vector<VisAttributesModifier>& Ge    
186   G4bool           IsSpecialMeshRendering         
187   const std::vector<PVNameCopyNo>& GetSpecialM    
188                                                   
189   // Set functions...                             
190   void SetWarning              (G4bool);          
191   void SetDefaultVisAttributes (const G4VisAtt    
192   void SetDrawingStyle         (DrawingStyle);    
193   void SetNumberOfCloudPoints  (G4int);           
194   void SetCulling              (G4bool);          
195   void SetCullingInvisible     (G4bool);          
196   void SetDensityCulling       (G4bool);          
197   void SetVisibleDensity       (G4double);        
198   void SetCullingCovered       (G4bool);          
199   void SetCBDAlgorithmNumber   (G4int);           
200   void SetCBDParameters        (const std::vec    
201   void SetExplodeFactor        (G4double explo    
202   void SetExplodeCentre        (const G4Point3    
203   G4int SetNoOfSides           (G4int);  // Re    
204   void SetSectionSolid         (G4DisplacedSol    
205   void SetCutawayMode          (CutawayMode);     
206   void SetCutawaySolid         (G4DisplacedSol    
207   void SetEvent                (const G4Event*    
208   void SetVisAttributesModifiers(const std::ve    
209   void SetSpecialMeshRendering (G4bool);          
210   void SetSpecialMeshVolumes   (const std::vec    
211                                                   
212   friend std::ostream& operator <<                
213   (std::ostream& os, const G4ModelingParameter    
214                                                   
215   friend std::ostream& operator <<                
216   (std::ostream& os, const PVNameCopyNoPath&);    
217                                                   
218   friend std::ostream& operator <<                
219   (std::ostream& os, const PVPointerCopyNoPath    
220                                                   
221   friend std::ostream& operator <<                
222   (std::ostream& os,                              
223    const std::vector<VisAttributesModifier>&);    
224                                                   
225 private:                                          
226                                                   
227   // Data members...                              
228   G4bool       fWarning;         // Print warn    
229   const G4VisAttributes* fpDefaultVisAttribute    
230   DrawingStyle fDrawingStyle;    // Drawing st    
231   G4int        fNumberOfCloudPoints;  // For d    
232                                       // <= 0     
233   G4bool       fCulling;         // Culling re    
234   G4bool       fCullInvisible;   // Cull (don'    
235   G4bool       fDensityCulling;  // Density cu    
236   G4double     fVisibleDensity;  // ...density    
237   G4bool       fCullCovered;     // Cull daugh    
238   G4int        fCBDAlgorithmNumber; // Colour     
239   std::vector<G4double> fCBDParameters; // Col    
240   G4double     fExplodeFactor;   // Explode al    
241   G4Point3D    fExplodeCentre;   // ...about t    
242   G4int        fNoOfSides;       // ...if poly    
243   G4DisplacedSolid* fpSectionSolid;  // For ge    
244   CutawayMode  fCutawayMode;     // Cutaway mo    
245   G4DisplacedSolid* fpCutawaySolid;  // For ge    
246   const G4Event* fpEvent;        // Event bein    
247   std::vector<VisAttributesModifier> fVisAttri    
248   G4bool       fSpecialMeshRendering;  // Requ    
249   std::vector<PVNameCopyNo> fSpecialMeshVolume    
250 };                                                
251                                                   
252 std::ostream& operator <<                         
253 (std::ostream& os, const G4ModelingParameters&    
254                                                   
255 std::ostream& operator <<                         
256 (std::ostream& os, const G4ModelingParameters:    
257                                                   
258 std::ostream& operator <<                         
259 (std::ostream& os, const G4ModelingParameters:    
260                                                   
261 std::ostream& operator <<                         
262 (std::ostream& os,                                
263  const std::vector<G4ModelingParameters::VisAt    
264                                                   
265 #include "G4ModelingParameters.icc"               
266                                                   
267 #endif                                            
268