Geant4 Cross Reference |
>> 1 // This code implementation is the intellectual property of >> 2 // the GEANT4 collaboration. 1 // 3 // 2 // ******************************************* << 4 // By copying, distributing or modifying the Program (or any work 3 // * License and Disclaimer << 5 // based on the Program) you indicate your acceptance of this statement, 4 // * << 6 // and all its terms. 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 // 7 // >> 8 // $Id: G4ViewParameters.hh,v 1.6 1999/12/15 14:54:20 gunter Exp $ >> 9 // GEANT4 tag $Name: geant4-01-01 $ 27 // 10 // 28 // 11 // 29 // John Allison 19th July 1996 12 // John Allison 19th July 1996 30 // 13 // 31 // Class description 14 // Class description 32 // 15 // 33 // View parameters and options. 16 // View parameters and options. 34 // 17 // 35 // THE STANDARD VIEW AND ALL THAT. 18 // THE STANDARD VIEW AND ALL THAT. 36 // 19 // 37 // In GEANT4 visualization, we have the concep << 20 // In GEANT4 visualization, we have the concept of a ``Standard 38 // View". This is the view when the complete << 21 // View''. This is the view when the complete set of objects being 39 // viewed is comfortably in view from any view 22 // viewed is comfortably in view from any viewpoint. It is defined by 40 // the "Bounding Extent" of "visible" objects << 23 // the ``Bounding Sphere'' of ``visible'' objects when initially 41 // registered in the scene, and by the View Pa 24 // registered in the scene, and by the View Parameters. 42 // 25 // 43 // There is also the "Standard Target Point", << 26 // There is also the ``Standard Target Point'', which is the centre of 44 // the Bounding Extent (note that this belongs << 27 // the Bounding Sphere (note that this belongs to the scene and is 45 // stored in the G4Scene object). The "Curren << 28 // stored in the G4Scene object). The ``Current Target Point'', initially 46 // relative to the Standard Target Point, is c << 29 // set to the Standard Target Point, is incremented by the ``dolly'' 47 // "dolly" and "zoom" commands, and can be res << 30 // and ``zoom'' commands, and can be reset to the Standard Target 48 // Target Point with the "/vis/viewer/reset" c << 31 // Point with the {\tt /vis~/camera/reset} command. 49 // 32 // 50 // Also, the "Standard Camera Position" is the << 33 // Also, the ``Standard Camera Position'' is the ``Standard Camera 51 // Distance" along the Viewpoint Direction vec << 34 // Distance'' along the Viewpoint Direction vector from the Standard 52 // Target Point. The Standard Camera Distance 35 // Target Point. The Standard Camera Distance is the radius of the 53 // Bounding Extent divided by fFieldHalfAngle. << 36 // Bounding Sphere divided by {\tt fFieldHalfAngle}. It is not stored 54 // explicitly because of the singularity at fF << 37 // explicitly because of the singularity at {\tt fFieldHalfAngle} = 0, 55 // which implies parallel projection. 38 // which implies parallel projection. 56 // 39 // 57 // Similarly, the "Current Camera Position" is << 40 // Similarly, the ``Current Camera Position'' is the ``Current Camera 58 // Distance" along the Viewpoint Direction vec << 41 // Distance'' along the Viewpoint Direction vector from the Current 59 // Target Point. The Current Camera Distance 42 // Target Point. The Current Camera Distance is given by the formulae 60 // below, but note that it can be negative, me 43 // below, but note that it can be negative, meaning that the camera 61 // has moved *beyond* the Current Target Point << 44 // has moved {\em beyond} the Current Target Point, which is 62 // conceptually possible, but which might give 45 // conceptually possible, but which might give some problems when 63 // setting up the view matrix - see, for examp << 46 // setting up the view matrix --- see, for example, {\tt >> 47 // G4OpenGLView::SetView ()}. >> 48 // >> 49 // All viewers are expected to keep the ``Up Vector'' vertical. 64 // 50 // 65 // All viewers are expected to keep the "Up Ve << 51 // Finally, the view is magnified by the ``Zoom Factor'' which is 66 // RotationStyle is freeRotation. << 52 // reset to 1 by the \linebreak {\tt /vis~/camera/reset} command. 67 // 53 // 68 // Finally, the view is magnified by the "Zoom << 54 // Note: the camera movements pan, dolly and zoom, are currently coded 69 // reset to 1 by the "/vis/viewer/reset" comma << 55 // in \linebreak {\tt G4VisManMessenger.cc}. 70 // 56 // 71 // The algorithms for calculating various usef 57 // The algorithms for calculating various useful quantities from the 72 // View Parameters, such as GetCameraDistance, << 58 // View Parameters are encapsulated in the functions described in >> 59 // Appendix \ref{ap:useful}. 73 60 74 #ifndef G4VIEWPARAMETERS_HH 61 #ifndef G4VIEWPARAMETERS_HH 75 #define G4VIEWPARAMETERS_HH 62 #define G4VIEWPARAMETERS_HH 76 63 77 #include <CLHEP/Units/SystemOfUnits.h> << 64 #include "g4rw/tvordvec.h" 78 #include "G4Vector3D.hh" 65 #include "G4Vector3D.hh" 79 #include "G4Point3D.hh" 66 #include "G4Point3D.hh" 80 #include "G4Plane3D.hh" 67 #include "G4Plane3D.hh" 81 #include "G4VisAttributes.hh" 68 #include "G4VisAttributes.hh" 82 #include "G4VMarker.hh" 69 #include "G4VMarker.hh" 83 #include "G4ModelingParameters.hh" << 84 70 85 #include <vector> << 71 typedef G4RWTValOrderedVector<G4Plane3D> G4Planes; 86 #include <utility> << 87 << 88 typedef std::vector<G4Plane3D> G4Planes; << 89 72 90 class G4ViewParameters { 73 class G4ViewParameters { 91 74 92 public: // With description 75 public: // With description 93 76 >> 77 friend G4std::ostream& operator << (G4std::ostream& os, const G4ViewParameters& v); >> 78 94 enum DrawingStyle { 79 enum DrawingStyle { 95 wireframe, // Draw edges - no hidden l 80 wireframe, // Draw edges - no hidden line removal. 96 hlr, // Draw edges - hidden line 81 hlr, // Draw edges - hidden lines removed. 97 hsr, // Draw surfaces - hidden surf 82 hsr, // Draw surfaces - hidden surfaces removed. 98 hlhsr, // Draw surfaces and edges - h << 83 hlhsr // Draw surfaces and edges - hidden removed. 99 cloud // Draw volume as a cloud of d << 100 }; << 101 << 102 enum CutawayMode { << 103 cutawayUnion, // Union (addition) of << 104 cutawayIntersection // Intersection (multi << 105 }; << 106 << 107 enum RotationStyle { << 108 constrainUpDirection, // Standard, HEP co << 109 freeRotation // Free, Google-lik << 110 }; 84 }; 111 85 112 enum SMROption { // Special Mesh Rendering << 86 enum RepStyle { 113 meshAsDefault, << 87 polyhedron, // Use G4Polyhedron. 114 meshAsDots, << 88 nurbs // Use G4NURBS. 115 meshAsSurfaces << 116 }; 89 }; 117 90 118 friend std::ostream& operator << << 119 (std::ostream&, DrawingStyle); << 120 << 121 friend std::ostream& operator << << 122 (std::ostream&, SMROption); << 123 << 124 friend std::ostream& operator << << 125 (std::ostream&, const G4ViewParameters&); << 126 << 127 G4ViewParameters (); 91 G4ViewParameters (); 128 ~G4ViewParameters (); 92 ~G4ViewParameters (); 129 93 130 // Note: uses default assignment operator an 94 // Note: uses default assignment operator and copy constructor. 131 95 132 G4bool operator != (const G4ViewParameters&) 96 G4bool operator != (const G4ViewParameters&) const; 133 97 134 // Get and Is functions. 98 // Get and Is functions. 135 DrawingStyle GetDrawingStyle 99 DrawingStyle GetDrawingStyle () const; 136 G4int GetNumberOfCloudPoint << 100 RepStyle GetRepStyle () const; 137 G4bool IsAuxEdgeVisible << 138 G4bool IsCulling 101 G4bool IsCulling () const; 139 G4bool IsCullingInvisible 102 G4bool IsCullingInvisible () const; 140 G4bool IsDensityCulling 103 G4bool IsDensityCulling () const; 141 G4double GetVisibleDensity 104 G4double GetVisibleDensity () const; 142 G4bool IsCullingCovered 105 G4bool IsCullingCovered () const; 143 G4int GetCBDAlgorithmNumber << 144 const std::vector<G4double>& GetCBDParameter << 145 G4bool IsSection 106 G4bool IsSection () const; 146 const G4Plane3D& GetSectionPlane 107 const G4Plane3D& GetSectionPlane () const; 147 G4bool IsCutaway 108 G4bool IsCutaway () const; 148 CutawayMode GetCutawayMode << 149 const G4Planes& GetCutawayPlanes 109 const G4Planes& GetCutawayPlanes () const; 150 G4bool IsExplode 110 G4bool IsExplode () const; 151 G4double GetExplodeFactor 111 G4double GetExplodeFactor () const; 152 const G4Point3D& GetExplodeCentre << 153 G4int GetNoOfSides 112 G4int GetNoOfSides () const; 154 const G4Vector3D& GetViewpointDirection 113 const G4Vector3D& GetViewpointDirection () const; 155 const G4Vector3D& GetUpVector 114 const G4Vector3D& GetUpVector () const; 156 G4double GetFieldHalfAngle 115 G4double GetFieldHalfAngle () const; 157 G4double GetZoomFactor 116 G4double GetZoomFactor () const; 158 const G4Vector3D& GetScaleFactor << 159 const G4Point3D& GetCurrentTargetPoint 117 const G4Point3D& GetCurrentTargetPoint () const; 160 G4double GetDolly 118 G4double GetDolly () const; 161 G4bool GetLightsMoveWithCame 119 G4bool GetLightsMoveWithCamera () const; 162 const G4Vector3D& GetLightpointDirectio 120 const G4Vector3D& GetLightpointDirection () const; // Relative... 163 G4Vector3D& GetActualLightpointDi 121 G4Vector3D& GetActualLightpointDirection (); // Actual... 164 // ... depending on GetLightsMoveWithCamera. 122 // ... depending on GetLightsMoveWithCamera. >> 123 G4bool IsViewGeom () const; >> 124 G4bool IsViewHits () const; >> 125 G4bool IsViewDigis () const; 165 const G4VisAttributes* GetDefaultVisAttribut 126 const G4VisAttributes* GetDefaultVisAttributes () const; 166 const G4VisAttributes* GetDefaultTextVisAttr 127 const G4VisAttributes* GetDefaultTextVisAttributes () const; 167 const G4VMarker& GetDefaultMarker 128 const G4VMarker& GetDefaultMarker () const; 168 G4double GetGlobalMarkerScale 129 G4double GetGlobalMarkerScale () const; 169 G4double GetGlobalLineWidthSca << 170 G4bool IsMarkerNotHidden 130 G4bool IsMarkerNotHidden () const; 171 unsigned int GetWindowSizeHintX << 131 G4int GetWindowSizeHintX () const; 172 unsigned int GetWindowSizeHintY << 132 G4int GetWindowSizeHintY () const; 173 G4int GetWindowAbsoluteLoca << 174 G4int GetWindowAbsoluteLoca << 175 G4int GetWindowLocationHint << 176 G4int GetWindowLocationHint << 177 G4bool IsWindowLocationHintX << 178 G4bool IsWindowLocationHintY << 179 const G4String& GetXGeometryString << 180 // GetXGeometryString is intended to be pars << 181 // It contains the size information, as in G << 182 // may also contain the window position, e.g << 183 // viewer should use this in preference to G << 184 // it contains more information. (The size << 185 // GetXGeometryString and GetWindowSizeHint << 186 // identical.) << 187 bool IsWindowSizeHintX << 188 bool IsWindowSizeHintY << 189 bool IsWindowLocationHintX << 190 bool IsWindowLocationHintY << 191 G4bool IsAutoRefresh << 192 const G4Colour& GetBackgroundColour << 193 G4bool IsPicking << 194 RotationStyle GetRotationStyle << 195 const std::vector<G4ModelingParameters::VisA << 196 GetVisAttributesModif << 197 G4double GetStartTime << 198 G4double GetEndTime << 199 G4double GetFadeFactor << 200 G4bool IsDisplayHeadTime << 201 G4double GetDisplayHeadTimeX << 202 G4double GetDisplayHeadTimeY << 203 G4double GetDisplayHeadTimeSiz << 204 G4double GetDisplayHeadTimeRed << 205 G4double GetDisplayHeadTimeGre << 206 G4double GetDisplayHeadTimeBlu << 207 G4bool IsDisplayLightFront << 208 G4double GetDisplayLightFrontX << 209 G4double GetDisplayLightFrontY << 210 G4double GetDisplayLightFrontZ << 211 G4double GetDisplayLightFrontT << 212 G4double GetDisplayLightFrontR << 213 G4double GetDisplayLightFrontG << 214 G4double GetDisplayLightFrontB << 215 G4bool IsSpecialMeshRenderin << 216 SMROption GetSpecialMeshRenderi << 217 const std::vector<G4ModelingParameters::PVNa << 218 133 219 // Here Follow functions to evaluate useful << 134 // Here Follow functions to evaluate the above algorithms as a 220 // function of the radius of the Bounding Ex << 135 // function of the radius of the Bounding Sphere of the object being 221 // viewed. Call them in the order given - f 136 // viewed. Call them in the order given - for efficiency, later 222 // functions depend on the results of earlie 137 // functions depend on the results of earlier ones (Store the 223 // results of earlier functions in your own 138 // results of earlier functions in your own temporary variables - 224 // see, for example, G4OpenGLView::SetView ( 139 // see, for example, G4OpenGLView::SetView ().) 225 G4double GetCameraDistance (G4double radius 140 G4double GetCameraDistance (G4double radius) const; 226 G4double GetNearDistance (G4double camera 141 G4double GetNearDistance (G4double cameraDistance, G4double radius) const; 227 G4double GetFarDistance (G4double camera 142 G4double GetFarDistance (G4double cameraDistance, 228 G4double nearDistance, G4double r 143 G4double nearDistance, G4double radius) const; 229 G4double GetFrontHalfHeight (G4double nearDi 144 G4double GetFrontHalfHeight (G4double nearDistance, G4double radius) const; 230 145 231 // Set, Add, Multiply, Increment, Unset and 146 // Set, Add, Multiply, Increment, Unset and Clear functions. 232 void SetDrawingStyle (G4ViewParamete 147 void SetDrawingStyle (G4ViewParameters::DrawingStyle style); 233 G4int SetNumberOfCloudPoints (G4int); // Re << 148 void SetRepStyle (G4ViewParameters::RepStyle style); 234 void SetAuxEdgeVisible (G4bool); << 235 void SetCulling (G4bool); 149 void SetCulling (G4bool); 236 void SetCullingInvisible (G4bool); 150 void SetCullingInvisible (G4bool); 237 void SetDensityCulling (G4bool); 151 void SetDensityCulling (G4bool); 238 void SetVisibleDensity (G4double visib 152 void SetVisibleDensity (G4double visibleDensity); 239 void SetCullingCovered (G4bool); 153 void SetCullingCovered (G4bool); 240 void SetCBDAlgorithmNumber (G4int); << 241 void SetCBDParameters (const std::vec << 242 void SetSectionPlane (const G4Plane3 154 void SetSectionPlane (const G4Plane3D& sectionPlane); 243 void UnsetSectionPlane (); 155 void UnsetSectionPlane (); 244 void SetCutawayMode (CutawayMode); << 245 void AddCutawayPlane (const G4Plane3 156 void AddCutawayPlane (const G4Plane3D& cutawayPlane); 246 void ChangeCutawayPlane (size_t index, << 247 void ClearCutawayPlanes (); 157 void ClearCutawayPlanes (); 248 void SetExplodeFactor (G4double explo 158 void SetExplodeFactor (G4double explodeFactor); 249 void UnsetExplodeFactor (); 159 void UnsetExplodeFactor (); 250 void SetExplodeCentre (const G4Point3 << 160 void SetNoOfSides (G4int nSides); 251 G4int SetNoOfSides (G4int nSides); << 252 void SetViewpointDirection (const G4Vector 161 void SetViewpointDirection (const G4Vector3D& viewpointDirection); 253 // Calls the following to get lightpoint dir << 162 // Prefer the following to get lightpoint direction right too. 254 void SetViewAndLights (const G4Vector 163 void SetViewAndLights (const G4Vector3D& viewpointDirection); 255 // Also sets lightpoint direction according 164 // Also sets lightpoint direction according to G4bool fLightsMoveWithCamera. 256 void SetUpVector (const G4Vector 165 void SetUpVector (const G4Vector3D& upVector); 257 void SetFieldHalfAngle (G4double field 166 void SetFieldHalfAngle (G4double fieldHalfAngle); 258 void SetOrthogonalProjection (); // This an << 259 void SetPerspectiveProjection(G4double field << 260 void SetZoomFactor (G4double zoomF 167 void SetZoomFactor (G4double zoomFactor); 261 void MultiplyZoomFactor (G4double zoomF 168 void MultiplyZoomFactor (G4double zoomFactorMultiplier); 262 void SetScaleFactor (const G4Vector << 263 void MultiplyScaleFactor (const G4Vector << 264 void SetCurrentTargetPoint (const G4Point3 169 void SetCurrentTargetPoint (const G4Point3D& currentTargetPoint); 265 void SetDolly (G4double dolly 170 void SetDolly (G4double dolly); 266 void IncrementDolly (G4double dolly 171 void IncrementDolly (G4double dollyIncrement); 267 void SetLightpointDirection (const G4Vector 172 void SetLightpointDirection (const G4Vector3D& lightpointDirection); 268 void SetLightsMoveWithCamera (G4bool moves); 173 void SetLightsMoveWithCamera (G4bool moves); 269 void SetPan (G4double right << 174 void SetViewGeom (); 270 void IncrementPan (G4double right << 175 void UnsetViewGeom (); 271 // Increment currentTarget point perpendicul << 176 void SetViewHits (); 272 void IncrementPan (G4double right << 177 void UnsetViewHits (); 273 // Increment currentTarget point also along << 178 void SetViewDigis (); >> 179 void UnsetViewDigis (); 274 void SetDefaultVisAttributes (const G4VisAtt 180 void SetDefaultVisAttributes (const G4VisAttributes&); 275 void SetDefaultColour (const G4Colour << 276 void SetDefaultTextVisAttributes (const G4Vi 181 void SetDefaultTextVisAttributes (const G4VisAttributes&); 277 void SetDefaultTextColour (const G4Colour << 278 void SetDefaultMarker (const G4VMarke 182 void SetDefaultMarker (const G4VMarker& defaultMarker); 279 void SetGlobalMarkerScale (G4double globa 183 void SetGlobalMarkerScale (G4double globalMarkerScale); 280 void SetGlobalLineWidthScale (G4double globa << 281 void SetMarkerHidden (); 184 void SetMarkerHidden (); 282 void SetMarkerNotHidden (); 185 void SetMarkerNotHidden (); 283 void SetWindowSizeHint (G4int xHint, G 186 void SetWindowSizeHint (G4int xHint, G4int yHint); 284 void SetWindowLocationHint (G4int xHint, G << 285 void SetXGeometryString (const G4String << 286 void SetAutoRefresh (G4bool); << 287 void SetBackgroundColour (const G4Colour << 288 void SetPicking (G4bool); << 289 void SetRotationStyle (RotationStyle) << 290 void ClearVisAttributesModifiers (); << 291 void AddVisAttributesModifier(const G4Modeli << 292 void SetStartTime (G4double); << 293 void SetEndTime (G4double); << 294 void SetFadeFactor (G4double); << 295 void SetDisplayHeadTime (G4bool); << 296 void SetDisplayHeadTimeX (G4double); << 297 void SetDisplayHeadTimeY (G4double); << 298 void SetDisplayHeadTimeSize (G4double); << 299 void SetDisplayHeadTimeRed (G4double); << 300 void SetDisplayHeadTimeGreen (G4double); << 301 void SetDisplayHeadTimeBlue (G4double); << 302 void SetDisplayLightFront (G4bool); << 303 void SetDisplayLightFrontX (G4double); << 304 void SetDisplayLightFrontY (G4double); << 305 void SetDisplayLightFrontZ (G4double); << 306 void SetDisplayLightFrontT (G4double); << 307 void SetDisplayLightFrontRed (G4double); << 308 void SetDisplayLightFrontGreen (G4double); << 309 void SetDisplayLightFrontBlue (G4double); << 310 void SetSpecialMeshRendering (G4bool); << 311 void SetSpecialMeshRenderingOption (SMROptio << 312 void SetSpecialMeshVolumes (const std::vec << 313 << 314 // Command dumping functions. << 315 // For camera commands we need to provide th << 316 // the current scene. << 317 G4String CameraAndLightingCommands(const G4P << 318 G4String DrawingStyleCommands () const; << 319 G4String SceneModifyingCommands() const; << 320 G4String TouchableCommands () const; << 321 G4String TimeWindowCommands () const; << 322 187 323 // Other functions. << 188 void Pan (G4double right, G4double up); 324 void PrintDifferences (const G4ViewParameter << 189 // Note: the result of above "pan"operation is always an Increment >> 190 // relative to the current target point and also depends on the >> 191 // veiwpoint and up directions. 325 192 326 // Interpolation << 193 void PrintDifferences (const G4ViewParameters& v) const; 327 // Returns a null pointer when no more to be << 328 // do { << 329 // G4ViewParameters* vp = << 330 // G4ViewParameters::CatmullRomCubicSpline << 331 // if (!vp) break; << 332 // ... << 333 // } while (true); << 334 // Assumes equal intervals << 335 static G4ViewParameters* CatmullRomCubicSpli << 336 (const std::vector<G4ViewParameters>& views, << 337 G4int nInterpolationPoints = 50); // No of << 338 194 339 private: 195 private: 340 << 341 G4int ParseGeometry ( const char *string, G4 << 342 G4int ReadInteger(char *string, char **NextS << 343 196 344 DrawingStyle fDrawingStyle; // Drawing st 197 DrawingStyle fDrawingStyle; // Drawing style. 345 G4int fNumberOfCloudPoints; // For dr << 198 RepStyle fRepStyle; // Representation style. 346 // <= 0 m << 347 G4bool fAuxEdgeVisible; // Auxiliary << 348 G4bool fCulling; // Culling re 199 G4bool fCulling; // Culling requested. 349 G4bool fCullInvisible; // Cull (don' 200 G4bool fCullInvisible; // Cull (don't Draw) invisible objects. 350 G4bool fDensityCulling; // Density cu 201 G4bool fDensityCulling; // Density culling requested. If so... 351 G4double fVisibleDensity; // ...density 202 G4double fVisibleDensity; // ...density lower than this not drawn. 352 G4bool fCullCovered; // Cull daugh 203 G4bool fCullCovered; // Cull daughters covered by opaque mothers. 353 G4int fCBDAlgorithmNumber; // Colour << 354 std::vector<G4double> fCBDParameters; // Col << 355 G4bool fSection; // Section dr 204 G4bool fSection; // Section drawing requested (DCUT in GEANT3). 356 G4Plane3D fSectionPlane; // Cut plane 205 G4Plane3D fSectionPlane; // Cut plane for section drawing (DCUT). 357 CutawayMode fCutawayMode; // Cutaway mo << 206 G4bool fCutaway; // Cutaway flag. 358 G4Planes fCutawayPlanes; // Set of pla 207 G4Planes fCutawayPlanes; // Set of planes used for cutaway. 359 G4double fExplodeFactor; // Explode al << 208 G4bool fExplode; // Explode flag. 360 G4Point3D fExplodeCentre; // ...about t << 209 G4double fExplodeFactor; 361 G4int fNoOfSides; // ...if poly 210 G4int fNoOfSides; // ...if polygon approximates circle. 362 G4Vector3D fViewpointDirection; 211 G4Vector3D fViewpointDirection; 363 G4Vector3D fUpVector; // Up vector. 212 G4Vector3D fUpVector; // Up vector. (Warning: MUST NOT be parallel 364 // to fViewpo 213 // to fViewpointDirection!) 365 G4double fFieldHalfAngle; // Radius / c 214 G4double fFieldHalfAngle; // Radius / camara distance, 0 for parallel. 366 G4double fZoomFactor; // Magnificat 215 G4double fZoomFactor; // Magnification relative to Standard View. 367 G4Vector3D fScaleFactor; // (Non-unifo << 216 G4Point3D fCurrentTargetPoint; 368 G4Point3D fCurrentTargetPoint; // Relati << 369 G4double fDolly; // Distance t 217 G4double fDolly; // Distance towards current target point. 370 G4bool fLightsMoveWithCamera; 218 G4bool fLightsMoveWithCamera; 371 G4Vector3D fRelativeLightpointDirection; 219 G4Vector3D fRelativeLightpointDirection; 372 // i.e., rel. to object or camera accoding t << 220 // i.e., rel. to object or camera accoding to G4bool LightsMoveWithCamera. 373 G4Vector3D fActualLightpointDirection; 221 G4Vector3D fActualLightpointDirection; >> 222 G4bool fViewGeom; // View geometry objects. >> 223 G4bool fViewHits; // View hits, if any. >> 224 G4bool fViewDigis; // View digis, if any. 374 G4VisAttributes fDefaultVisAttributes; 225 G4VisAttributes fDefaultVisAttributes; 375 G4VisAttributes fDefaultTextVisAttributes; 226 G4VisAttributes fDefaultTextVisAttributes; 376 G4VMarker fDefaultMarker; 227 G4VMarker fDefaultMarker; 377 G4double fGlobalMarkerScale; 228 G4double fGlobalMarkerScale; 378 G4double fGlobalLineWidthScale; << 379 G4bool fMarkerNotHidden; 229 G4bool fMarkerNotHidden; 380 // True if transients are to be drawn and no 230 // True if transients are to be drawn and not hidden by 381 // hidden-line-hidden-surface removal algori 231 // hidden-line-hidden-surface removal algorithms, e.g., z-buffer 382 // testing; false if they are to be hidden-l 232 // testing; false if they are to be hidden-line-hidden-surface 383 // removed. 233 // removed. 384 G4int fWindowSizeHintX; // Size hints 234 G4int fWindowSizeHintX; // Size hints for pixel-based window systems. 385 G4int fWindowSizeHintY; 235 G4int fWindowSizeHintY; 386 G4int fWindowLocationHintX; // Locati << 387 G4int fWindowLocationHintY; << 388 G4bool fWindowLocationHintXNegative; / << 389 G4bool fWindowLocationHintYNegative; << 390 G4String fXGeometryString; // If non-nul << 391 G4int fGeometryMask; // Correspond << 392 G4bool fAutoRefresh; // ...after c << 393 G4Colour fBackgroundColour; << 394 G4bool fPicking; // Request pi << 395 RotationStyle fRotationStyle; // Rotation s << 396 std::vector<G4ModelingParameters::VisAttribu << 397 G4double fStartTime, fEndTime; // Time << 398 G4double fFadeFactor; // 0: no fade; 1: << 399 G4bool fDisplayHeadTime; // Display h << 400 G4double fDisplayHeadTimeX, fDisplayHead << 401 G4double fDisplayHeadTimeSize; // Scree << 402 G4double fDisplayHeadTimeRed, fDisplayHe << 403 G4bool fDisplayLightFront;// Display l << 404 G4double fDisplayLightFrontX, fDisplayLi << 405 fDisplayLightFrontT; << 406 G4double fDisplayLightFrontRed, fDisplay << 407 G4bool fSpecialMeshRendering; // Requ << 408 SMROption fSpecialMeshRenderingOption; / << 409 std::vector<G4ModelingParameters::PVNameCopy << 410 << 411 enum { // Constants for geometry mask in Par << 412 fNoValue = 0, << 413 fXValue = 0x0001, << 414 fYValue = 0x0002, << 415 fWidthValue = 0x0004, << 416 fHeightValue = 0x0008, << 417 fAllValues = 0x000F, << 418 fXNegative = 0x0010, << 419 fYNegative = 0x0020 << 420 }; << 421 }; 236 }; 422 237 423 #include "G4ViewParameters.icc" 238 #include "G4ViewParameters.icc" 424 239 425 #endif 240 #endif >> 241 426 242