Geant4  v4-10.4-release
 모두 클래스 네임스페이스들 파일들 함수 변수 타입정의 열거형 타입 열거형 멤버 Friends 매크로 그룹들 페이지들
G4VisExtent.hh
이 파일의 문서화 페이지로 가기
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 // $Id: G4VisExtent.hh 102801 2017-02-22 15:17:53Z gcosmo $
28 //
29 //
30 // A.Walkden 28/11/95
31 
32 // Class Description:
33 // G4VisExtent defines a bounding box in a visualisable object's local
34 // coordinate system which includes the object.
35 // WARNING: it also attempts to support the concept of a bounding
36 // sphere. (This is used extensively in the G4 Visualisation System
37 // to calculate camera parameters, etc.) Be aware that this involves
38 // loss of information. Given a bounding box, one can calculate the
39 // bounding sphere; inverting this will produce a cube which *might*
40 // *not* include the object. E.g., a long thin object of length l
41 // will have a bounding sphere of diameter l; the corresponding cube
42 // will have side l/std::sqrt(3) so that the bounding sphere diameter is
43 // still l. Thus the long thin object will stick out of the cube.
44 // So, if you once use the concept of bounding sphere you must stick
45 // with it and abandon the concept of bounding box.
46 // Class Description - End:
47 
48 #ifndef G4VISEXTENT_HH
49 #define G4VISEXTENT_HH
50 
51 #include "globals.hh"
52 #include "G4Point3D.hh"
53 
55 {
56 public: // With description
57 
58  G4VisExtent (G4double xmin = 0., G4double xmax = 0.,
59  G4double ymin = 0., G4double ymax = 0.,
60  G4double zmin = 0., G4double zmax = 0.);
61  G4VisExtent (const G4Point3D& centre, G4double radius);
62  ~G4VisExtent ();
63  G4bool operator != (const G4VisExtent& e) const;
64  G4double GetXmin () const;
65  G4double GetXmax () const;
66  G4double GetYmin () const;
67  G4double GetYmax () const;
68  G4double GetZmin () const;
69  G4double GetZmax () const;
70  const G4Point3D& GetExtentCentre () const;
71  const G4Point3D& GetExtentCenter () const;
72  G4double GetExtentRadius () const;
73  void SetXmin (G4double xmin);
74  void SetXmax (G4double xmax);
75  void SetYmin (G4double ymin);
76  void SetYmax (G4double ymax);
77  void SetZmin (G4double zmin);
78  void SetZmax (G4double zmax);
79  friend std::ostream& operator << (std::ostream& os, const G4VisExtent& e);
80 
81 private:
84  mutable G4double fRadius;
85  mutable G4Point3D fCentre;
86 };
87 
88 inline G4double G4VisExtent::GetXmin () const { return fXmin; }
89 inline G4double G4VisExtent::GetXmax () const { return fXmax; }
90 inline G4double G4VisExtent::GetYmin () const { return fYmin; }
91 inline G4double G4VisExtent::GetYmax () const { return fYmax; }
92 inline G4double G4VisExtent::GetZmin () const { return fZmin; }
93 inline G4double G4VisExtent::GetZmax () const { return fZmax; }
94 
95 inline const G4Point3D& G4VisExtent::GetExtentCenter () const {
96  return GetExtentCentre ();
97 }
98 
99 inline void G4VisExtent::SetXmin (G4double xmin)
100 {fXmin = xmin; fRadiusCached = false; fCentreCached = false;}
101 inline void G4VisExtent::SetXmax (G4double xmax)
102 {fXmax = xmax; fRadiusCached = false; fCentreCached = false;}
104 {fYmin = ymin; fRadiusCached = false; fCentreCached = false;}
106 {fYmax = ymax; fRadiusCached = false; fCentreCached = false;}
107 inline void G4VisExtent::SetZmin (G4double zmin)
108 {fZmin = zmin; fRadiusCached = false; fCentreCached = false;}
109 inline void G4VisExtent::SetZmax (G4double zmax)
110 {fZmax = zmax; fRadiusCached = false; fCentreCached = false;}
111 
112 #endif
G4double fZmin
Definition: G4VisExtent.hh:82
void SetYmax(G4double ymax)
Definition: G4VisExtent.hh:105
G4double GetZmax() const
Definition: G4VisExtent.hh:93
G4Point3D fCentre
Definition: G4VisExtent.hh:85
G4double GetYmax() const
Definition: G4VisExtent.hh:91
void SetZmax(G4double zmax)
Definition: G4VisExtent.hh:109
G4double fZmax
Definition: G4VisExtent.hh:82
void SetZmin(G4double zmin)
Definition: G4VisExtent.hh:107
G4double fXmax
Definition: G4VisExtent.hh:82
G4bool fCentreCached
Definition: G4VisExtent.hh:83
const G4Point3D & GetExtentCentre() const
Definition: G4VisExtent.cc:61
G4double GetZmin() const
Definition: G4VisExtent.hh:92
void SetXmin(G4double xmin)
Definition: G4VisExtent.hh:99
void SetXmax(G4double xmax)
Definition: G4VisExtent.hh:101
G4double fYmax
Definition: G4VisExtent.hh:82
void SetYmin(G4double ymin)
Definition: G4VisExtent.hh:103
double G4double
Definition: G4Types.hh:76
bool G4bool
Definition: G4Types.hh:79
G4double fXmin
Definition: G4VisExtent.hh:82
G4double GetXmin() const
Definition: G4VisExtent.hh:88
Double_t radius
G4double fRadius
Definition: G4VisExtent.hh:84
const G4Point3D & GetExtentCenter() const
Definition: G4VisExtent.hh:95
G4double GetExtentRadius() const
Definition: G4VisExtent.cc:71
G4double GetYmin() const
Definition: G4VisExtent.hh:90
G4double fYmin
Definition: G4VisExtent.hh:82
G4bool fRadiusCached
Definition: G4VisExtent.hh:83
G4bool operator!=(const G4VisExtent &e) const
Definition: G4VisExtent.cc:89
G4double GetXmax() const
Definition: G4VisExtent.hh:89
G4VisExtent(G4double xmin=0., G4double xmax=0., G4double ymin=0., G4double ymax=0., G4double zmin=0., G4double zmax=0.)
Definition: G4VisExtent.cc:38
friend std::ostream & operator<<(std::ostream &os, const G4VisExtent &e)
Definition: G4VisExtent.cc:81