43 Brick(
double HalfX=0.01,
double HalfY=0.01,
double HalfZ=0.01,
double Signe=-1);
57 Brick(
double *Origin,
double *Ux,
double *Uy,
double *Uz,
double HalfX=0.01,
double HalfY=0.01,
double HalfZ=0.01,
double Signe=-1);
67 Brick(
const char* Infinite,
double HalfX=0.01,
double HalfY=0.01,
double Signe=-1);
92 void SetPeriodicBoundary(
bool state=
true,
string TopBottPlaneBC=
"mirror");
106 virtual void Translate(
double dx,
double dy,
double dz,
int count=0);
115 virtual void Rotate(
double phi,
double theta=0,
double psi=0,
double *center=0,
int count=0);
130 bool PointInShape(
double *P,
int border);
138 void DefineSurface();
146 double MinDistanceFrom2OppositeFace(
double *N,
int whichplane,
double *S);
155 Brick(
double HalfX,
double HalfY,
double HalfZ,
double Signe,
bool Infinite);
156 void Init(
double HalfX,
double HalfY,
double HalfZ);
163 unsigned CornerInBrick(
Brick *brick,
int all,
int border);
170 unsigned CornerInCylinder(
Cylinder *cyl,
int all,
int border);
172 double Dist2Segment(
Cylinder *cyl,
double Segment[6][2],
double C0[6][2],
int &segmentNum);
181 void FindBrickProjection(
Cylinder *cyl,
double Segment[6][2],
double C0[6][2],
double Origin[2]);
183 unsigned GeneralIntersectionOf2Brick(
Brick *brick);
193 unsigned LineCrossPlane(
double *X,
double *N,
double *P,
double *U,
double *D);
199 unsigned CylinderCrossBrick(
Cylinder *Cyl);
207 unsigned PointInSegment(
double *X,
double *A,
double *B,
int border);
218 unsigned TwoFaces3Segments(
Brick *brick,
double *N,
int whichSize,
double *C0,
double C1[3][3]);
229 unsigned TwoFaces2Segments(
Brick *brick,
double *N,
int whichSize,
double *C0,
double C1[2][3]);
231 double GetVirtualSphereRadius();
245 double MinDist1Point2Face(
double *U0,
double *U1,
double *U2,
double *P0,
double *S,
int whichplane);
254 double MinDist1Point2FaceInfinite(
double *U0,
double *U1,
double *P0,
double *S,
int whichplane);
257 Surface* DefinePlane(
double *N,
double D);
virtual int NumberOfShapes()
Number of shapes/surfaces this shape consists of.
Definition: Brick.hxx:152
double * GetUz()
return the 3 components of normal vector to the 2 Z planes (or the axis vector if infinite) ...
Definition: Brick.hxx:81
A rectangular parallepipede Shape.
Definition: Brick.hxx:28
Surface class is design to define MCNP surface format.
Definition: Surface.hxx:26
Header file for Cylinder class.
const double * GetOrigin()
return the origin
Definition: Brick.hxx:78
Infinite cylinder Shape.
Definition: Cylinder.hxx:20
unsigned IsBrick()
return 1 for a Brick
Definition: Brick.hxx:68
double * GetUy()
return the 3 components of normal vector to the 2 Y planes
Definition: Brick.hxx:80
double * GetVirtualSphereCenter()
returns the center of a Sphere containing the Shape
Definition: Brick.hxx:232
double GetHalfY()
return the half length
Definition: Brick.hxx:76
double GetHalfZ()
return the half height (if it exists)
Definition: Brick.hxx:77
double GetHalfX()
return the half width
Definition: Brick.hxx:75
Base class to define shapes.
Definition: Shape.hxx:54
double * GetUx()
return the 3 components of normal vector to the 2 X planes
Definition: Brick.hxx:79