Geant4  10.01.p03
UQuadrangularFacet Class Reference

#include <UQuadrangularFacet.hh>

+ Inheritance diagram for UQuadrangularFacet:
+ Collaboration diagram for UQuadrangularFacet:

Public Member Functions

 UQuadrangularFacet (const UVector3 &Pt0, const UVector3 &vt1, const UVector3 &vt2, const UVector3 &vt3, UFacetVertexType)
 
virtual ~UQuadrangularFacet ()
 
 UQuadrangularFacet (const UQuadrangularFacet &right)
 
UQuadrangularFacetoperator= (const UQuadrangularFacet &right)
 
VUFacetGetClone ()
 
UVector3 Distance (const UVector3 &p)
 
double Distance (const UVector3 &p, const double minDist)
 
double Distance (const UVector3 &p, const double minDist, const bool outgoing)
 
double Extent (const UVector3 axis)
 
bool Intersect (const UVector3 &p, const UVector3 &v, const bool outgoing, double &distance, double &distFromSurface, UVector3 &normal)
 
double GetArea ()
 
UVector3 GetPointOnFace () const
 
virtual UGeometryType GetEntityType () const
 
int GetNumberOfVertices () const
 
UVector3 GetVertex (int i) const
 
UVector3 GetSurfaceNormal () const
 
double GetRadius () const
 
UVector3 GetCircumcentre () const
 
void SetVertex (int i, const UVector3 &val)
 
void SetVertices (std::vector< UVector3 > *v)
 
bool IsDefined () const
 
- Public Member Functions inherited from VUFacet
virtual ~VUFacet ()
 
bool operator== (const VUFacet &right) const
 
void ApplyTranslation (const UVector3 v)
 
std::ostream & StreamInfo (std::ostream &os) const
 
bool IsInside (const UVector3 &p) const
 

Private Member Functions

int GetVertexIndex (int i) const
 
void SetVertexIndex (int i, int val)
 
int AllocatedMemory ()
 

Private Attributes

double fRadius
 
UVector3 fCircumcentre
 
UTriangularFacet fFacet1
 
UTriangularFacet fFacet2
 

Additional Inherited Members

- Static Protected Attributes inherited from VUFacet
static const double dirTolerance = 1.0E-14
 
static const double kCarTolerance = VUSolid::Tolerance()
 

Detailed Description

Definition at line 45 of file UQuadrangularFacet.hh.

Constructor & Destructor Documentation

UQuadrangularFacet::UQuadrangularFacet ( const UVector3 Pt0,
const UVector3 vt1,
const UVector3 vt2,
const UVector3 vt3,
UFacetVertexType  vertexType 
)

Definition at line 28 of file UQuadrangularFacet.cc.

References UVector3::Cross(), UVector3::Dot(), e1, e2, e3, UUtils::Exception(), UTriangularFacet::GetSurfaceNormal(), UVector3::Mag(), UVector3::Mag2(), CLHEP::normal(), VUSolid::Tolerance(), UABSOLUTE, UVector3::Unit(), and UWarning.

Referenced by GetClone().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

UQuadrangularFacet::~UQuadrangularFacet ( )
virtual

Definition at line 107 of file UQuadrangularFacet.cc.

UQuadrangularFacet::UQuadrangularFacet ( const UQuadrangularFacet right)

Definition at line 113 of file UQuadrangularFacet.cc.

References fFacet1, fFacet2, and fRadius.

Member Function Documentation

int UQuadrangularFacet::AllocatedMemory ( )
inlineprivatevirtual

Implements VUFacet.

Definition at line 160 of file UQuadrangularFacet.hh.

References UTriangularFacet::AllocatedMemory(), fFacet1, and fFacet2.

+ Here is the call graph for this function:

UVector3 UQuadrangularFacet::Distance ( const UVector3 p)

Definition at line 145 of file UQuadrangularFacet.cc.

References UTriangularFacet::Distance(), fFacet1, fFacet2, and UVector3::Mag2().

Referenced by Distance().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double UQuadrangularFacet::Distance ( const UVector3 p,
const double  minDist 
)
virtual

Implements VUFacet.

Definition at line 156 of file UQuadrangularFacet.cc.

References Distance(), and UVector3::Mag().

+ Here is the call graph for this function:

double UQuadrangularFacet::Distance ( const UVector3 p,
const double  minDist,
const bool  outgoing 
)
virtual

Implements VUFacet.

Definition at line 165 of file UQuadrangularFacet.cc.

References VUFacet::dirTolerance, Distance(), UVector3::Dot(), GetSurfaceNormal(), UUtils::kInfinity, and UVector3::Mag().

+ Here is the call graph for this function:

double UQuadrangularFacet::Extent ( const UVector3  axis)
virtual

Implements VUFacet.

Definition at line 178 of file UQuadrangularFacet.cc.

References UVector3::Dot(), GetVertex(), and G4InuclParticleNames::sp.

+ Here is the call graph for this function:

double UQuadrangularFacet::GetArea ( )
virtual

Implements VUFacet.

Definition at line 210 of file UQuadrangularFacet.cc.

References fFacet1, fFacet2, and UTriangularFacet::GetArea().

+ Here is the call graph for this function:

UVector3 UQuadrangularFacet::GetCircumcentre ( ) const
inlinevirtual

Implements VUFacet.

Definition at line 90 of file UQuadrangularFacet.hh.

References fCircumcentre.

VUFacet * UQuadrangularFacet::GetClone ( )
virtual

Implements VUFacet.

Definition at line 137 of file UQuadrangularFacet.cc.

References GetVertex(), UABSOLUTE, and UQuadrangularFacet().

+ Here is the call graph for this function:

std::string UQuadrangularFacet::GetEntityType ( ) const
virtual

Implements VUFacet.

Definition at line 216 of file UQuadrangularFacet.cc.

int UQuadrangularFacet::GetNumberOfVertices ( ) const
inlinevirtual

Implements VUFacet.

Definition at line 73 of file UQuadrangularFacet.hh.

UVector3 UQuadrangularFacet::GetPointOnFace ( ) const
virtual

Implements VUFacet.

Definition at line 203 of file UQuadrangularFacet.cc.

References fFacet1, fFacet2, UTriangularFacet::GetPointOnFace(), and UUtils::Random().

+ Here is the call graph for this function:

double UQuadrangularFacet::GetRadius ( ) const
inlinevirtual

Implements VUFacet.

Definition at line 85 of file UQuadrangularFacet.hh.

References fRadius.

UVector3 UQuadrangularFacet::GetSurfaceNormal ( ) const
virtual

Implements VUFacet.

Definition at line 221 of file UQuadrangularFacet.cc.

References fFacet1, and UTriangularFacet::GetSurfaceNormal().

Referenced by Distance().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

UVector3 UQuadrangularFacet::GetVertex ( int  i) const
inlinevirtual

Implements VUFacet.

Definition at line 78 of file UQuadrangularFacet.hh.

References fFacet1, fFacet2, and UTriangularFacet::GetVertex().

Referenced by Extent(), and GetClone().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int UQuadrangularFacet::GetVertexIndex ( int  i) const
inlineprivatevirtual

Implements VUFacet.

Definition at line 130 of file UQuadrangularFacet.hh.

References fFacet1, fFacet2, and UTriangularFacet::GetVertexIndex().

+ Here is the call graph for this function:

bool UQuadrangularFacet::Intersect ( const UVector3 p,
const UVector3 v,
const bool  outgoing,
double &  distance,
double &  distFromSurface,
UVector3 normal 
)
virtual

Implements VUFacet.

Definition at line 190 of file UQuadrangularFacet.cc.

References fFacet1, fFacet2, UTriangularFacet::Intersect(), UUtils::kInfinity, and UVector3::Set().

+ Here is the call graph for this function:

bool UQuadrangularFacet::IsDefined ( ) const
inlinevirtual

Implements VUFacet.

Definition at line 122 of file UQuadrangularFacet.hh.

References fFacet1, and UTriangularFacet::IsDefined().

+ Here is the call graph for this function:

UQuadrangularFacet & UQuadrangularFacet::operator= ( const UQuadrangularFacet right)

Definition at line 122 of file UQuadrangularFacet.cc.

References fFacet1, fFacet2, and fRadius.

void UQuadrangularFacet::SetVertex ( int  i,
const UVector3 val 
)
inlinevirtual

Implements VUFacet.

Definition at line 95 of file UQuadrangularFacet.hh.

References fFacet1, fFacet2, and UTriangularFacet::SetVertex().

+ Here is the call graph for this function:

void UQuadrangularFacet::SetVertexIndex ( int  i,
int  val 
)
inlineprivatevirtual

Implements VUFacet.

Definition at line 135 of file UQuadrangularFacet.hh.

References fFacet1, fFacet2, and UTriangularFacet::SetVertexIndex().

+ Here is the call graph for this function:

void UQuadrangularFacet::SetVertices ( std::vector< UVector3 > *  v)
inlinevirtual

Implements VUFacet.

Definition at line 116 of file UQuadrangularFacet.hh.

References fFacet1, fFacet2, and UTriangularFacet::SetVertices().

+ Here is the call graph for this function:

Member Data Documentation

UVector3 UQuadrangularFacet::fCircumcentre
private

Definition at line 158 of file UQuadrangularFacet.hh.

Referenced by GetCircumcentre().

double UQuadrangularFacet::fRadius
private

Definition at line 156 of file UQuadrangularFacet.hh.

Referenced by GetRadius(), operator=(), and UQuadrangularFacet().


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