Bemsolver 2.0
Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes

D3triangle Class Reference

#include <bem.h>

Inheritance diagram for D3triangle:
Inheritance graph
[legend]
Collaboration diagram for D3triangle:
Collaboration graph
[legend]

List of all members.

Public Member Functions

virtual void InsertTGeoVolume (TGeoVolume *top, TGeoMedium *matVak, TGeoMedium *mat, TGeoManager *geom)
virtual bool IntersectWithRay (double x0, double y0, double z0, double xdir, double ydir, double zdir, double &mul)
virtual void SetNormTowards (double x, double y, double z, bool towards)
virtual void GetReferencePoint (double &x, double &y, double &z)
virtual double GetArea ()
virtual void GetCenter (double &x, double &y, double &z)
virtual double GetSelfPotential ()
virtual double GetPotentialAt (double x, double y, double z)
virtual void GetPotentialAndFieldAt (double x, double y, double z, double &pot, double &ex, double &ey, double &ez)
virtual double GetSelfDoubleLayerPotential ()
virtual double GetDoubleLayerPotentialAt (double x, double y, double z)
 D3triangle (double xa_, double ya_, double xb_, double yb_, double x, double y, double z, double phi_, double theta_, double psi_, bool inversenorm=false, PD3element parent=NULL, bool stripeit=true)
 Creates a triangle from 2 2-dimensional vectors, 1 3-dimensional center vector and 3 Euler-angles.
 D3triangle (double x1_, double y1_, double z1_, double x2_, double y2_, double z2_, double x3_, double y3_, double z3_, bool inversenorm=false, PD3element parent=NULL, bool stripeit=true)
 Creates a triangle from 3 3-dimensional vectors.
 ~D3triangle ()
virtual void rotate (double phi_, double theta_, double psi_)
virtual void shift (double xs, double ys, double zs)
virtual void GetTriangle (double *A, double *B, double *C, double *COL)
virtual void createNewSubelements (double length)

Static Public Member Functions

static bool IntersectWithRay (double ax, double ay, double az, double bx, double by, double bz, double cx, double cy, double cz, double xdir, double ydir, double zdir, double &mul)

Public Attributes

double x1
double y1
double z1
double x2
double y2
double z2
double x3
double y3
double z3

Protected Member Functions

void Stripeit (double length)
void Newtriangles (double length)

Protected Attributes

bool stripeit
double xa
double ya
double xb
double yb

Constructor & Destructor Documentation

D3triangle::D3triangle ( double  xa_,
double  ya_,
double  xb_,
double  yb_,
double  x,
double  y,
double  z,
double  phi_,
double  theta_,
double  psi_,
bool  inversenorm = false,
PD3element  parent = NULL,
bool  stripeit = true 
)

Creates a triangle from 2 2-dimensional vectors, 1 3-dimensional center vector and 3 Euler-angles.

The parameters x,y,z determine the 1. corner of the triangle. The Euler-rotations are also performed with respect to this corner.
(x,y,z) can also be interpreted as a center of a coordinate system.

The 2. corner is determined by (xa_ + x, ya_ + y). The 3. corner is determined by (xb_ + x, yb_ + y). The ordering does not matter!!

The angles phi_, theta_ and psi_ can be declared in degrees and represent Euler-angles.
The Center (x,y,z) specifies the center of the Euler-rotations

They can be used to generate z-coordinates for the triangle

The Euler-rotations occur in the following order:

phi_:..........Rotation around z-axis...................................x -> x'......y -> y'.......z -> z
theta_:......Rotation around the rotated x-axis (x'):.........x'-> x'......y' -> y''......z -> z'
psi_:..........Rotation around z'-axis:.................................x'-> x''......y''-> y'''.....z'-> z'

D3triangle::D3triangle ( double  x1_,
double  y1_,
double  z1_,
double  x2_,
double  y2_,
double  z2_,
double  x3_,
double  y3_,
double  z3_,
bool  inversenorm = false,
PD3element  parent = NULL,
bool  stripeit = true 
)

Creates a triangle from 3 3-dimensional vectors.

(x1_,y1_z1_), (x2_,y2_,z2_), (x3_,y3_,z3_) define the corners of the triangle. The ordering does not matter!!

D3triangle::~D3triangle ( )

Member Function Documentation

virtual void D3triangle::createNewSubelements ( double  length) [virtual]

Reimplemented from D3element.

virtual double D3triangle::GetArea ( ) [virtual]

Reimplemented from D3element.

virtual void D3triangle::GetCenter ( double &  x,
double &  y,
double &  z 
) [virtual]

Reimplemented from D3element.

virtual double D3triangle::GetDoubleLayerPotentialAt ( double  x,
double  y,
double  z 
) [inline, virtual]

Reimplemented from D3element.

virtual void D3triangle::GetPotentialAndFieldAt ( double  x,
double  y,
double  z,
double &  pot,
double &  ex,
double &  ey,
double &  ez 
) [virtual]

Reimplemented from D3element.

virtual double D3triangle::GetPotentialAt ( double  x,
double  y,
double  z 
) [inline, virtual]

Reimplemented from D3element.

virtual void D3triangle::GetReferencePoint ( double &  x,
double &  y,
double &  z 
) [virtual]

Reimplemented from D3element.

virtual double D3triangle::GetSelfDoubleLayerPotential ( ) [virtual]

Reimplemented from D3element.

virtual double D3triangle::GetSelfPotential ( ) [virtual]

Reimplemented from D3element.

virtual void D3triangle::GetTriangle ( double *  A,
double *  B,
double *  C,
double *  COL 
) [virtual]

Reimplemented from D3element.

virtual void D3triangle::InsertTGeoVolume ( TGeoVolume *  top,
TGeoMedium *  matVak,
TGeoMedium *  mat,
TGeoManager *  geom 
) [virtual]

Reimplemented from D3element.

virtual bool D3triangle::IntersectWithRay ( double  x0,
double  y0,
double  z0,
double  xdir,
double  ydir,
double  zdir,
double &  mul 
) [virtual]

Reimplemented from D3element.

static bool D3triangle::IntersectWithRay ( double  ax,
double  ay,
double  az,
double  bx,
double  by,
double  bz,
double  cx,
double  cy,
double  cz,
double  xdir,
double  ydir,
double  zdir,
double &  mul 
) [static]
void D3triangle::Newtriangles ( double  length) [protected]
virtual void D3triangle::rotate ( double  phi_,
double  theta_,
double  psi_ 
) [virtual]

Reimplemented from D3element.

virtual void D3triangle::SetNormTowards ( double  x,
double  y,
double  z,
bool  towards 
) [virtual]

Reimplemented from D3element.

virtual void D3triangle::shift ( double  xs,
double  ys,
double  zs 
) [virtual]

Reimplemented from D3element.

void D3triangle::Stripeit ( double  length) [protected]

Member Data Documentation

bool D3triangle::stripeit [protected]
double D3triangle::xa [protected]
double D3triangle::xb [protected]
double D3triangle::ya [protected]
double D3triangle::yb [protected]

The documentation for this class was generated from the following file:
 All Classes Files Functions Variables Typedefs Friends Defines