Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Data Fields
UVector3 Struct Reference

#include <UVector3.hh>

Public Member Functions

 UVector3 ()
 
 UVector3 (double xval, double yval, double zval)
 
 UVector3 (double theta, double phi)
 
 UVector3 (const double coord[3])
 
UVector3operator= (const UVector3 &v)
 
UVector3operator= (const double *vect)
 
bool operator== (const UVector3 &) const
 
bool operator!= (const UVector3 &) const
 
UVector3 operator- () const
 
UVector3operator+= (const UVector3 &)
 
UVector3operator-= (const UVector3 &)
 
double & operator[] (int index)
 
double operator[] (int index) const
 
UVector3operator*= (double)
 
UVector3operator/= (double)
 
double Dot (const UVector3 &) const
 
UVector3 Cross (const UVector3 &) const
 
double Angle (const UVector3 &) const
 
UVector3 Unit () const
 
bool IsNull () const
 
void SetNull ()
 
void Set (double xx, double yy, double zz)
 
void Set (double xx)
 
double Normalize ()
 
double Phi () const
 
double Theta () const
 
double CosTheta () const
 
double Mag2 () const
 
double Mag () const
 
double Perp2 () const
 
double Perp () const
 
void RotateX (double)
 
void RotateY (double)
 
void RotateZ (double)
 
UVector3MultiplyByComponents (const UVector3 &p)
 

Data Fields

double x
 
double y
 
double z
 

Detailed Description

Definition at line 28 of file UVector3.hh.

Constructor & Destructor Documentation

UVector3::UVector3 ( )
inline

Definition at line 31 of file UVector3.hh.

References x, y, and z.

Referenced by Cross(), and operator-().

32  {
33  x = y = z = 0.0;
34  }
double x
Definition: UVector3.hh:136
double z
Definition: UVector3.hh:138
double y
Definition: UVector3.hh:137
UVector3::UVector3 ( double  xval,
double  yval,
double  zval 
)
inline

Definition at line 35 of file UVector3.hh.

References x, y, and z.

36  {
37  x = xval;
38  y = yval;
39  z = zval;
40  }
double x
Definition: UVector3.hh:136
double z
Definition: UVector3.hh:138
double y
Definition: UVector3.hh:137
UVector3::UVector3 ( double  theta,
double  phi 
)

Definition at line 21 of file UVector3.cc.

References x, y, and z.

22 {
23  // Creates a unit vector based on theta and phi angles
24  x = std::sin(theta) * std::cos(phi);
25  y = std::sin(theta) * std::sin(phi);
26  z = std::cos(theta);
27 }
double x
Definition: UVector3.hh:136
double z
Definition: UVector3.hh:138
double y
Definition: UVector3.hh:137
UVector3::UVector3 ( const double  coord[3])
inline

Definition at line 42 of file UVector3.hh.

References x, y, and z.

43  {
44  x = coord[0];
45  y = coord[1];
46  z = coord[2];
47  }
double x
Definition: UVector3.hh:136
double z
Definition: UVector3.hh:138
double y
Definition: UVector3.hh:137

Member Function Documentation

double UVector3::Angle ( const UVector3 q) const

Definition at line 30 of file UVector3.cc.

References UUtils::ACos(), Dot(), and Mag2().

31 {
32  // return the angle w.r.t. another 3-vector
33  double ptot2 = Mag2() * q.Mag2();
34  if (ptot2 <= 0)
35  {
36  return 0.0;
37  }
38  else
39  {
40  double arg = Dot(q) / std::sqrt(ptot2);
41  if (arg > 1.0) arg = 1.0;
42  if (arg < -1.0) arg = -1.0;
43  return UUtils::ACos(arg);
44  }
45 }
double Mag2() const
Definition: UVector3.hh:267
double ACos(double)
Definition: UUtils.hh:218
double Dot(const UVector3 &) const
Definition: UVector3.hh:257
double UVector3::CosTheta ( ) const
inline

Definition at line 277 of file UVector3.hh.

References Mag(), and z.

278 {
279  double ptot = Mag();
280  return ptot == 0.0 ? 1.0 : z / ptot;
281 }
double Mag() const
Definition: UVector3.cc:48
double z
Definition: UVector3.hh:138
UVector3 UVector3::Cross ( const UVector3 p) const
inline

Definition at line 262 of file UVector3.hh.

References UVector3(), x, y, and z.

Referenced by UPolyhedraSide::Distance(), UPolyhedraSide::IntersectSidePlane(), UPolyconeSide::PointOnCone(), UPolyhedraSide::UPolyhedraSide(), and UTet::UTet().

263 {
264  return UVector3(y * p.z - p.y * z, z * p.x - p.z * x, x * p.y - p.x * y);
265 }
UVector3()
Definition: UVector3.hh:31
double x
Definition: UVector3.hh:136
double z
Definition: UVector3.hh:138
double y
Definition: UVector3.hh:137
double UVector3::Dot ( const UVector3 p) const
inline
bool UVector3::IsNull ( ) const
inline

Definition at line 234 of file UVector3.hh.

References x, y, and z.

235 {
236  return ((std::abs(x) + std::abs(y) + std::abs(z)) == 0.0) ? true : false;
237 }
double x
Definition: UVector3.hh:136
double z
Definition: UVector3.hh:138
double y
Definition: UVector3.hh:137
double UVector3::Mag ( ) const

Definition at line 48 of file UVector3.cc.

References Mag2().

Referenced by CosTheta(), UPolyhedraSide::UPolyhedraSide(), and UTet::UTet().

49 {
50  // return the magnitude (rho in spherical coordinate system)
51 
52  return std::sqrt(Mag2());
53 }
double Mag2() const
Definition: UVector3.hh:267
double UVector3::Mag2 ( ) const
inline

Definition at line 267 of file UVector3.hh.

References x, y, and z.

Referenced by Angle(), Mag(), Normalize(), Theta(), and Unit().

268 {
269  return x * x + y * y + z * z;
270 }
double x
Definition: UVector3.hh:136
double z
Definition: UVector3.hh:138
double y
Definition: UVector3.hh:137
UVector3 & UVector3::MultiplyByComponents ( const UVector3 p)
inline

Definition at line 157 of file UVector3.hh.

References x, y, and z.

158 {
159  // Assignment of a UVector3
160  x *= p.x;
161  y *= p.y;
162  z *= p.z;
163  return *this;
164 }
double x
Definition: UVector3.hh:136
double z
Definition: UVector3.hh:138
double y
Definition: UVector3.hh:137
double UVector3::Normalize ( )

Definition at line 89 of file UVector3.cc.

References Mag2(), x, y, and z.

Referenced by UTrd::Normal().

90 {
91  // Normalize to unit. Return normalization factor.
92  double mag = Mag2();
93  if (mag == 0.0) return mag;;
94  mag = std::sqrt(mag);
95  x /= mag;
96  y /= mag;
97  z /= mag;
98  return mag;
99 }
double Mag2() const
Definition: UVector3.hh:267
double x
Definition: UVector3.hh:136
double z
Definition: UVector3.hh:138
double y
Definition: UVector3.hh:137
bool UVector3::operator!= ( const UVector3 v) const
inline

Definition at line 191 of file UVector3.hh.

References x, y, and z.

192 {
193  return (v.x != x || v.y != y || v.z != z) ? true : false;
194 }
double x
Definition: UVector3.hh:136
double z
Definition: UVector3.hh:138
double y
Definition: UVector3.hh:137
UVector3 & UVector3::operator*= ( double  a)
inline

Definition at line 217 of file UVector3.hh.

References test::a, x, y, and z.

218 {
219  x *= a;
220  y *= a;
221  z *= a;
222  return *this;
223 }
double x
Definition: UVector3.hh:136
double z
Definition: UVector3.hh:138
double y
Definition: UVector3.hh:137
UVector3 & UVector3::operator+= ( const UVector3 p)
inline

Definition at line 196 of file UVector3.hh.

References x, y, and z.

197 {
198  x += p.x;
199  y += p.y;
200  z += p.z;
201  return *this;
202 }
double x
Definition: UVector3.hh:136
double z
Definition: UVector3.hh:138
double y
Definition: UVector3.hh:137
UVector3 UVector3::operator- ( ) const
inline

Definition at line 212 of file UVector3.hh.

References UVector3(), x, y, and z.

213 {
214  return UVector3(-x, -y, -z);
215 }
UVector3()
Definition: UVector3.hh:31
double x
Definition: UVector3.hh:136
double z
Definition: UVector3.hh:138
double y
Definition: UVector3.hh:137
UVector3 & UVector3::operator-= ( const UVector3 p)
inline

Definition at line 204 of file UVector3.hh.

References x, y, and z.

205 {
206  x -= p.x;
207  y -= p.y;
208  z -= p.z;
209  return *this;
210 }
double x
Definition: UVector3.hh:136
double z
Definition: UVector3.hh:138
double y
Definition: UVector3.hh:137
UVector3 & UVector3::operator/= ( double  a)
inline

Definition at line 225 of file UVector3.hh.

References test::a, x, y, and z.

226 {
227  a = 1. / a;
228  x *= a;
229  y *= a;
230  z *= a;
231  return *this;
232 }
double x
Definition: UVector3.hh:136
double z
Definition: UVector3.hh:138
double y
Definition: UVector3.hh:137
UVector3 & UVector3::operator= ( const UVector3 v)
inline

Definition at line 167 of file UVector3.hh.

References x, y, and z.

168 {
169  // Assignment of a UVector3
170  if (this == &p) { return *this; }
171  x = p.x;
172  y = p.y;
173  z = p.z;
174  return *this;
175 }
const char * p
Definition: xmltok.h:285
double x
Definition: UVector3.hh:136
double z
Definition: UVector3.hh:138
double y
Definition: UVector3.hh:137
UVector3& UVector3::operator= ( const double *  vect)
inline
bool UVector3::operator== ( const UVector3 v) const
inline

Definition at line 186 of file UVector3.hh.

References x, y, and z.

187 {
188  return (v.x == x && v.y == y && v.z == z) ? true : false;
189 }
double x
Definition: UVector3.hh:136
double z
Definition: UVector3.hh:138
double y
Definition: UVector3.hh:137
double & UVector3::operator[] ( int  index)
inline

Definition at line 284 of file UVector3.hh.

References x, y, and z.

285 {
286  switch (index)
287  {
288  case 0:
289  return x;
290  case 1:
291  return y;
292  case 2:
293  return z;
294  default:
295  return x;
296  }
297 }
double x
Definition: UVector3.hh:136
double z
Definition: UVector3.hh:138
double y
Definition: UVector3.hh:137
double UVector3::operator[] ( int  index) const
inline

Definition at line 299 of file UVector3.hh.

References x, y, and z.

300 {
301  // return operator()(index);
302 
303  // TODO: test performance of both versions on Linux
304  // => first version is slightly faster
305  if (true)
306  {
307  double vec[3] = {x, y, z};
308  return vec[index];
309  }
310 
311  switch (index)
312  {
313  case 0:
314  return x;
315  case 1:
316  return y;
317  case 2:
318  return z;
319  default:
320  return 0;
321  }
322 }
double x
Definition: UVector3.hh:136
double z
Definition: UVector3.hh:138
double y
Definition: UVector3.hh:137
double UVector3::Perp ( ) const

Definition at line 56 of file UVector3.cc.

References Perp2().

Referenced by UPolyconeSide::Distance(), UPolyconeSide::DistanceAway(), UPolyconeSide::Extent(), UPolyconeSide::Normal(), and UPolyconeSide::PointOnCone().

57 {
58  //return the transverse component (R in cylindrical coordinate system)
59 
60  return std::sqrt(Perp2());
61 }
double Perp2() const
Definition: UVector3.hh:272
double UVector3::Perp2 ( ) const
inline

Definition at line 272 of file UVector3.hh.

References x, and y.

Referenced by UPolyhedraSide::Extent(), UPolyconeSide::Extent(), UEnclosingCylinder::MustBeOutside(), Perp(), and UEnclosingCylinder::ShouldMiss().

273 {
274  return x * x + y * y;
275 }
double x
Definition: UVector3.hh:136
double y
Definition: UVector3.hh:137
double UVector3::Phi ( ) const

Definition at line 64 of file UVector3.cc.

References UUtils::ATan2(), x, and y.

Referenced by UPolyconeSide::GetPhi(), and UPolyhedraSide::GetPhi().

65 {
66  //return the azimuth angle. returns phi from -pi to pi
67  return x == 0.0 && y == 0.0 ? 0.0 : UUtils::ATan2(y, x);
68 }
double x
Definition: UVector3.hh:136
double ATan2(double, double)
Definition: UUtils.hh:226
double y
Definition: UVector3.hh:137
void UVector3::RotateX ( double  angle)

Definition at line 102 of file UVector3.cc.

References test::c, y, and z.

103 {
104  //rotate vector around X
105  double s = std::sin(angle);
106  double c = std::cos(angle);
107  double yy = y;
108  y = c * yy - s * z;
109  z = s * yy + c * z;
110 }
const XML_Char * s
double z
Definition: UVector3.hh:138
double y
Definition: UVector3.hh:137
void UVector3::RotateY ( double  angle)

Definition at line 113 of file UVector3.cc.

References test::c, x, and z.

114 {
115  //rotate vector around Y
116  double s = std::sin(angle);
117  double c = std::cos(angle);
118  double zz = z;
119  z = c * zz - s * x;
120  x = s * zz + c * x;
121 }
const XML_Char * s
double x
Definition: UVector3.hh:136
double z
Definition: UVector3.hh:138
void UVector3::RotateZ ( double  angle)

Definition at line 124 of file UVector3.cc.

References test::c, x, and y.

125 {
126  //rotate vector around Z
127  double s = std::sin(angle);
128  double c = std::cos(angle);
129  double xx = x;
130  x = c * xx - s * y;
131  y = s * xx + c * y;
132 }
const XML_Char * s
double x
Definition: UVector3.hh:136
double y
Definition: UVector3.hh:137
void UVector3::Set ( double  xx,
double  yy,
double  zz 
)
inline
void UVector3::Set ( double  xx)
inline

Definition at line 252 of file UVector3.hh.

References x, y, and z.

253 {
254  x = y = z = xx;
255 }
double x
Definition: UVector3.hh:136
double z
Definition: UVector3.hh:138
double y
Definition: UVector3.hh:137
void UVector3::SetNull ( )
inline
double UVector3::Theta ( ) const

Definition at line 71 of file UVector3.cc.

References UUtils::ACos(), Mag2(), and z.

72 {
73  //return the polar angle from 0 to pi
74  double mag2 = Mag2();
75  if (mag2 == 0.0) return 0.0;
76  return UUtils::ACos(z / std::sqrt(mag2));
77 }
double Mag2() const
Definition: UVector3.hh:267
double ACos(double)
Definition: UUtils.hh:218
double z
Definition: UVector3.hh:138
UVector3 UVector3::Unit ( ) const

Definition at line 80 of file UVector3.cc.

References Mag2(), x, y, and z.

Referenced by UTet::DistanceToIn(), UTet::DistanceToOut(), UCons::DistanceToOut(), UTet::Normal(), UPolyconeSide::Normal(), UTubs::Normal(), UCons::Normal(), USphere::Normal(), UPolyhedraSide::UPolyhedraSide(), UPolyPhiFace::UPolyPhiFace(), and UTet::UTet().

81 {
82  // return unit vector parallel to this.
83  double tot = Mag2();
84  UVector3 p(x, y, z);
85  return tot > 0.0 ? p *= (1.0 / std::sqrt(tot)) : p;
86 }
double Mag2() const
Definition: UVector3.hh:267
const char * p
Definition: xmltok.h:285
double x
Definition: UVector3.hh:136
double z
Definition: UVector3.hh:138
double y
Definition: UVector3.hh:137

Field Documentation

double UVector3::x

Definition at line 136 of file UVector3.hh.

Referenced by UTubs::ApproxSurfaceNormal(), UVoxelizer::BuildBoundingBox(), Cross(), UPolyhedraSide::Distance(), UPolyconeSide::Distance(), UOrb::DistanceToIn(), UVCSGfaceted::DistanceToIn(), UTrd::DistanceToIn(), UBox::DistanceToIn(), G4USolid::DistanceToIn(), UTubs::DistanceToIn(), UCons::DistanceToIn(), USphere::DistanceToIn(), UPolycone::DistanceToIn(), UOrb::DistanceToOut(), UTrd::DistanceToOut(), UBox::DistanceToOut(), G4USolid::DistanceToOut(), UTubs::DistanceToOut(), UCons::DistanceToOut(), USphere::DistanceToOut(), Dot(), VUSolid::EstimateCubicVolume(), VUSolid::EstimateSurfaceArea(), UTet::Extent(), UBox::Extent(), UPolyPhiFace::Extent(), UVoxelizer::GetCandidatesVoxelArray(), UTet::GetParametersList(), G4USolid::GetPointOnSurface(), UTransform3D::GlobalPoint(), UTransform3D::GlobalVector(), UOrb::Inside(), UTrd::Inside(), UBox::Inside(), G4USolid::Inside(), UTubs::Inside(), UPolyPhiFace::Inside(), USphere::Inside(), UPolycone::Inside(), UCons::Inside(), UPolyPhiFace::InsideEdgesExact(), UPolycone::InsideSection(), IsNull(), UIntersectingCone::LineHitsCone1(), UIntersectingCone::LineHitsCone1Optimized(), UIntersectingCone::LineHitsCone2(), UPolyhedraSide::LineHitsSegments(), UTransform3D::LocalPoint(), UTransform3D::LocalVector(), Mag2(), UVoxelizer::MinDistanceToBox(), MultiplyByComponents(), UEnclosingCylinder::MustBeOutside(), UOrb::Normal(), UTrd::Normal(), UBox::Normal(), UPolyconeSide::Normal(), UTubs::Normal(), UCons::Normal(), USphere::Normal(), UPolycone::Normal(), Normalize(), UPolycone::NormalSection(), operator!=(), operator*(), UTransform3D::operator*=(), operator*=(), operator+(), operator+=(), operator-(), operator-(), operator-=(), operator/(), operator/=(), operator<<(), operator=(), operator==(), operator[](), Perp2(), Phi(), UPolyconeSide::PointOnCone(), UTransform3D::RotateX(), UTransform3D::RotateY(), RotateY(), UTransform3D::RotateZ(), RotateZ(), UOrb::SafetyFromInside(), UTrd::SafetyFromInside(), UBox::SafetyFromInside(), UTubs::SafetyFromInside(), USphere::SafetyFromInside(), UCons::SafetyFromInside(), UTrd::SafetyFromInsideAccurate(), UPolycone::SafetyFromInsideSection(), UOrb::SafetyFromOutside(), UVCSGfaceted::SafetyFromOutside(), UTrd::SafetyFromOutside(), UBox::SafetyFromOutside(), UTubs::SafetyFromOutside(), UCons::SafetyFromOutside(), USphere::SafetyFromOutside(), UTrd::SafetyFromOutsideAccurate(), UPolycone::SafetyFromOutsideSection(), UUtils::SaveVectorToExternalFile(), UBox::Set(), Set(), UEnclosingCylinder::ShouldMiss(), G4USolid::SurfaceNormal(), UUtils::TransformLimits(), Unit(), UPolyPhiFace::UPolyPhiFace(), UTet::UTet(), and UVector3().

double UVector3::y

Definition at line 137 of file UVector3.hh.

Referenced by UTubs::ApproxSurfaceNormal(), UVoxelizer::BuildBoundingBox(), Cross(), UPolyhedraSide::Distance(), UPolyconeSide::Distance(), UOrb::DistanceToIn(), UVCSGfaceted::DistanceToIn(), UTrd::DistanceToIn(), UBox::DistanceToIn(), G4USolid::DistanceToIn(), UTubs::DistanceToIn(), UCons::DistanceToIn(), USphere::DistanceToIn(), UPolycone::DistanceToIn(), UOrb::DistanceToOut(), UTrd::DistanceToOut(), UBox::DistanceToOut(), G4USolid::DistanceToOut(), UTubs::DistanceToOut(), UCons::DistanceToOut(), USphere::DistanceToOut(), Dot(), VUSolid::EstimateCubicVolume(), VUSolid::EstimateSurfaceArea(), UTet::Extent(), UBox::Extent(), UPolyPhiFace::Extent(), UVoxelizer::GetCandidatesVoxelArray(), UTet::GetParametersList(), G4USolid::GetPointOnSurface(), UTransform3D::GlobalPoint(), UTransform3D::GlobalVector(), UOrb::Inside(), UTrd::Inside(), UBox::Inside(), G4USolid::Inside(), UTubs::Inside(), UPolyPhiFace::Inside(), USphere::Inside(), UPolycone::Inside(), UCons::Inside(), UPolyPhiFace::InsideEdgesExact(), UPolycone::InsideSection(), IsNull(), UIntersectingCone::LineHitsCone1(), UIntersectingCone::LineHitsCone1Optimized(), UIntersectingCone::LineHitsCone2(), UPolyhedraSide::LineHitsSegments(), UTransform3D::LocalPoint(), UTransform3D::LocalVector(), Mag2(), UVoxelizer::MinDistanceToBox(), MultiplyByComponents(), UEnclosingCylinder::MustBeOutside(), UOrb::Normal(), UTrd::Normal(), UBox::Normal(), UPolyconeSide::Normal(), UTubs::Normal(), UCons::Normal(), USphere::Normal(), UPolycone::Normal(), Normalize(), UPolycone::NormalSection(), operator!=(), operator*(), UTransform3D::operator*=(), operator*=(), operator+(), operator+=(), operator-(), operator-(), operator-=(), operator/(), operator/=(), operator<<(), operator=(), operator==(), operator[](), Perp2(), Phi(), UPolyconeSide::PointOnCone(), UTransform3D::RotateX(), RotateX(), UTransform3D::RotateY(), UTransform3D::RotateZ(), RotateZ(), UOrb::SafetyFromInside(), UTrd::SafetyFromInside(), UBox::SafetyFromInside(), UTubs::SafetyFromInside(), USphere::SafetyFromInside(), UCons::SafetyFromInside(), UTrd::SafetyFromInsideAccurate(), UPolycone::SafetyFromInsideSection(), UOrb::SafetyFromOutside(), UVCSGfaceted::SafetyFromOutside(), UTrd::SafetyFromOutside(), UBox::SafetyFromOutside(), UTubs::SafetyFromOutside(), UCons::SafetyFromOutside(), USphere::SafetyFromOutside(), UTrd::SafetyFromOutsideAccurate(), UPolycone::SafetyFromOutsideSection(), UUtils::SaveVectorToExternalFile(), UBox::Set(), Set(), UEnclosingCylinder::ShouldMiss(), G4USolid::SurfaceNormal(), UUtils::TransformLimits(), Unit(), UPolyPhiFace::UPolyPhiFace(), UTet::UTet(), and UVector3().

double UVector3::z

Definition at line 138 of file UVector3.hh.

Referenced by UTubs::ApproxSurfaceNormal(), UVoxelizer::BuildBoundingBox(), CosTheta(), Cross(), UPolyPhiFace::Distance(), UPolyconeSide::DistanceAway(), UOrb::DistanceToIn(), UVCSGfaceted::DistanceToIn(), UTrd::DistanceToIn(), UBox::DistanceToIn(), G4USolid::DistanceToIn(), UTubs::DistanceToIn(), UCons::DistanceToIn(), USphere::DistanceToIn(), UPolycone::DistanceToIn(), UOrb::DistanceToOut(), UVCSGfaceted::DistanceToOut(), UTrd::DistanceToOut(), UBox::DistanceToOut(), G4USolid::DistanceToOut(), UTubs::DistanceToOut(), UCons::DistanceToOut(), USphere::DistanceToOut(), UPolycone::DistanceToOut(), Dot(), VUSolid::EstimateCubicVolume(), VUSolid::EstimateSurfaceArea(), UTet::Extent(), UPolyhedraSide::Extent(), UBox::Extent(), UPolyconeSide::Extent(), UPolyPhiFace::Extent(), UVoxelizer::GetCandidatesVoxelArray(), UTet::GetParametersList(), G4USolid::GetPointOnSurface(), UTransform3D::GlobalPoint(), UTransform3D::GlobalVector(), UOrb::Inside(), UVCSGfaceted::Inside(), UTrd::Inside(), UBox::Inside(), G4USolid::Inside(), UTubs::Inside(), UPolyPhiFace::Inside(), USphere::Inside(), UPolycone::Inside(), UCons::Inside(), UPolyPhiFace::InsideEdgesExact(), UPolycone::InsideSection(), IsNull(), UIntersectingCone::LineHitsCone1(), UIntersectingCone::LineHitsCone1Optimized(), UIntersectingCone::LineHitsCone2(), UTransform3D::LocalPoint(), UTransform3D::LocalVector(), Mag2(), UVoxelizer::MinDistanceToBox(), MultiplyByComponents(), UEnclosingCylinder::MustBeOutside(), UVCSGfaceted::Normal(), UOrb::Normal(), UTrd::Normal(), UBox::Normal(), UTubs::Normal(), UCons::Normal(), UPolyPhiFace::Normal(), USphere::Normal(), UPolycone::Normal(), Normalize(), UPolycone::NormalSection(), operator!=(), operator*(), UTransform3D::operator*=(), operator*=(), operator+(), operator+=(), operator-(), operator-(), operator-=(), operator/(), operator/=(), operator<<(), operator=(), operator==(), operator[](), UPolyconeSide::PointOnCone(), UTransform3D::RotateX(), RotateX(), UTransform3D::RotateY(), RotateY(), UTransform3D::RotateZ(), UPolyPhiFace::Safety(), UOrb::SafetyFromInside(), UTrd::SafetyFromInside(), UBox::SafetyFromInside(), UVCSGfaceted::SafetyFromInside(), UTubs::SafetyFromInside(), USphere::SafetyFromInside(), UCons::SafetyFromInside(), UPolycone::SafetyFromInside(), UTrd::SafetyFromInsideAccurate(), UPolycone::SafetyFromInsideSection(), UOrb::SafetyFromOutside(), UVCSGfaceted::SafetyFromOutside(), UTrd::SafetyFromOutside(), UBox::SafetyFromOutside(), UTubs::SafetyFromOutside(), UCons::SafetyFromOutside(), USphere::SafetyFromOutside(), UPolycone::SafetyFromOutside(), UTrd::SafetyFromOutsideAccurate(), UPolycone::SafetyFromOutsideSection(), UUtils::SaveVectorToExternalFile(), UBox::Set(), Set(), G4USolid::SurfaceNormal(), Theta(), UUtils::TransformLimits(), Unit(), UTet::UTet(), and UVector3().


The documentation for this struct was generated from the following files: