source: trunk/source/geometry/management/include/G4VoxelLimits.icc@ 831

Last change on this file since 831 was 831, checked in by garnier, 17 years ago

import all except CVS

File size: 3.8 KB
RevLine 
[831]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: G4VoxelLimits.icc,v 1.4 2006/06/29 18:33:15 gunter Exp $
28// GEANT4 tag $Name: $
29//
30//
31// G4VoxelLimits Inline implementation
32//
33// --------------------------------------------------------------------
34
35inline
36G4double G4VoxelLimits::GetMaxXExtent() const
37{
38 return fxAxisMax;
39}
40
41inline
42G4double G4VoxelLimits::GetMaxYExtent() const
43{
44 return fyAxisMax;
45}
46
47inline
48G4double G4VoxelLimits::GetMaxZExtent() const
49{
50 return fzAxisMax;
51}
52
53inline
54G4double G4VoxelLimits::GetMinXExtent() const
55{
56 return fxAxisMin;
57}
58
59inline
60G4double G4VoxelLimits::GetMinYExtent() const
61{
62 return fyAxisMin;
63}
64
65inline
66G4double G4VoxelLimits::GetMinZExtent() const
67{
68 return fzAxisMin;
69}
70
71inline
72G4double G4VoxelLimits::GetMaxExtent(const EAxis pAxis) const
73{
74 if (pAxis==kXAxis)
75 {
76 return GetMaxXExtent();
77 }
78 else if (pAxis==kYAxis)
79 {
80 return GetMaxYExtent();
81 }
82 else
83 {
84 assert(pAxis==kZAxis);
85 return GetMaxZExtent();
86 }
87}
88
89inline
90G4double G4VoxelLimits::GetMinExtent(const EAxis pAxis) const
91{
92 if (pAxis==kXAxis)
93 {
94 return GetMinXExtent();
95 }
96 else if (pAxis==kYAxis)
97 {
98 return GetMinYExtent();
99 }
100 else
101 {
102 assert(pAxis==kZAxis);
103 return GetMinZExtent();
104 }
105}
106
107inline
108G4bool G4VoxelLimits::IsXLimited() const
109{
110 return (fxAxisMin==-kInfinity&&fxAxisMax==kInfinity) ? false : true;
111}
112
113inline
114G4bool G4VoxelLimits::IsYLimited() const
115{
116 return (fyAxisMin==-kInfinity&&fyAxisMax==kInfinity) ? false : true;
117}
118
119inline
120G4bool G4VoxelLimits::IsZLimited() const
121{
122 return (fzAxisMin==-kInfinity&&fzAxisMax==kInfinity) ? false : true;
123}
124
125inline
126G4bool G4VoxelLimits::IsLimited() const
127{
128 return (IsXLimited()||IsYLimited()||IsZLimited());
129}
130
131inline
132G4bool G4VoxelLimits::IsLimited(const EAxis pAxis) const
133{
134 if (pAxis==kXAxis)
135 {
136 return IsXLimited();
137 }
138 else if (pAxis==kYAxis)
139 {
140 return IsYLimited();
141 }
142 else
143 {
144 assert(pAxis==kZAxis);
145 return IsZLimited();
146 }
147}
148
149inline
150G4bool G4VoxelLimits::Inside(const G4ThreeVector& pVec) const
151{
152 return ((GetMinXExtent()<=pVec.x()) &&
153 (GetMaxXExtent()>=pVec.x()) &&
154 (GetMinYExtent()<=pVec.y()) &&
155 (GetMaxYExtent()>=pVec.y()) &&
156 (GetMinZExtent()<=pVec.z()) &&
157 (GetMaxZExtent()>=pVec.z()) ) ? true : false;
158}
Note: See TracBrowser for help on using the repository browser.