Bemsolver 2.0
Public Member Functions | Public Attributes | Protected Attributes

D3rectangle Class Reference

#include <bem.h>

Inheritance diagram for D3rectangle:
Inheritance graph
[legend]
Collaboration diagram for D3rectangle:
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 double GetSelfDoubleLayerPotential ()
virtual double GetDoubleLayerPotentialAt (double x, double y, double z)
virtual void GetPotentialAndFieldAt (double x, double y, double z, double &pot, double &ex, double &ey, double &ez)
virtual void GetRectangle (double *A, double *B, double *C, double *D, double *COL)
virtual void rotate (double phi_, double theta_, double psi_)
virtual void shift (double xs, double ys, double zs)
 D3rectangle (double xa_, double ya_, double xc_, double yc_, double x, double y, double z, double phi_, double theta_, double psi_, bool inversenorm=false, PD3element parent=NULL, bool subdivideInSqares=false)
 Creates a rectangle from 2 2-dimensional vectors, 1 3-dimensional center vector and 3 Euler angles.
 D3rectangle (double xa_, double ya_, double xb_, double yb_, double xc_, double yc_, double x, double y, double z, double phi_, double theta_, double psi_, bool inversenorm=false, PD3element parent=NULL)
 Creates a rectangle from 3 2-dimensional vectors, 1 center vector and 3 Euler angles.
 D3rectangle (char *str, double x1_, double y1_, double z1_, double x2_, double y2_, double z2_, double x3_, double y3_, double z3_, double x4_, double y4_, double z4_, bool inversenorm=false, PD3element parent=NULL)
 Creates a rectangle from coordinates for each corner.
 ~D3rectangle ()
virtual void createNewSubelements (double length)

Public Attributes

double x1
double y1
double z1
double x2
double y2
double z2
double x3
double y3
double z3
double x4
double y4
double z4

Protected Attributes

double xa
double ya
double xb
double yb
double xc
double yc

Constructor & Destructor Documentation

D3rectangle::D3rectangle ( double  xa_,
double  ya_,
double  xc_,
double  yc_,
double  x,
double  y,
double  z,
double  phi_,
double  theta_,
double  psi_,
bool  inversenorm = false,
PD3element  parent = NULL,
bool  subdivideInSqares = false 
)

Creates a rectangle 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 rectangle. 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 4. corner is determined by (xa_ + xb_ + x, ya_ + yb_ + y). This represents a vector addition of the vectors for the first 2 corners.

The ordering of the corners 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 rectangle

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'

D3rectangle::D3rectangle ( double  xa_,
double  ya_,
double  xb_,
double  yb_,
double  xc_,
double  yc_,
double  x,
double  y,
double  z,
double  phi_,
double  theta_,
double  psi_,
bool  inversenorm = false,
PD3element  parent = NULL 
)

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

The parameters x,y,z determine the 1. corner of the rectangle. 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 4. corner is not being calculated automatically, it is specified via (xc_,yc_)!

The ordering of the corners does not matter!!

If the 3 corner-vectors would result in a non-convex object only a triangle will be drawn!

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 rectangle

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'

D3rectangle::D3rectangle ( char *  str,
double  x1_,
double  y1_,
double  z1_,
double  x2_,
double  y2_,
double  z2_,
double  x3_,
double  y3_,
double  z3_,
double  x4_,
double  y4_,
double  z4_,
bool  inversenorm = false,
PD3element  parent = NULL 
)

Creates a rectangle from coordinates for each corner.

Parameters x1_, y1_, z1_ define the coordinates of the first corner
The remaining paramters define the other corners



wofür der string???--> nur wegen überladung?

D3rectangle::~D3rectangle ( ) [inline]

Member Function Documentation

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

Reimplemented from D3element.

virtual double D3rectangle::GetArea ( ) [virtual]

Reimplemented from D3element.

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

Reimplemented from D3element.

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

Reimplemented from D3element.

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

Reimplemented from D3element.

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

Reimplemented from D3element.

virtual void D3rectangle::GetRectangle ( double *  A,
double *  B,
double *  C,
double *  D,
double *  COL 
) [virtual]

Reimplemented from D3element.

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

Reimplemented from D3element.

virtual double D3rectangle::GetSelfDoubleLayerPotential ( ) [virtual]

Reimplemented from D3element.

virtual double D3rectangle::GetSelfPotential ( ) [virtual]

Reimplemented from D3element.

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

Reimplemented from D3element.

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

Reimplemented from D3element.

virtual void D3rectangle::rotate ( double  phi_,
double  theta_,
double  psi_ 
) [virtual]

Reimplemented from D3element.

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

Reimplemented from D3element.

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

Reimplemented from D3element.


Member Data Documentation

double D3rectangle::xa [protected]
double D3rectangle::xb [protected]
double D3rectangle::xc [protected]
double D3rectangle::ya [protected]
double D3rectangle::yb [protected]
double D3rectangle::yc [protected]

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