MURE
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
Private Member Functions | Private Attributes | List of all members
Brick Class Reference

A rectangular parallepipede Shape. More...

#include <Brick.hxx>

Inheritance diagram for Brick:
Shape TReference

Public Member Functions

Constructors
 Brick (double HalfX=0.01, double HalfY=0.01, double HalfZ=0.01, double Signe=-1)
 Build a Brick of size (2*HalfX,2*HalfY,2*HalfZ) at origin (0,0,0). More...
 
 Brick (double *Origin, double *Ux, double *Uy, double *Uz, double HalfX=0.01, double HalfY=0.01, double HalfZ=0.01, double Signe=-1)
 Build a Brick of size (2*HalfX,2*HalfY,2*HalfZ) centered at Origin, with Ux, Uy, Uz, normal vectors to its faces. More...
 
 Brick (const char *Infinite, double HalfX=0.01, double HalfY=0.01, double Signe=-1)
 Build a Brick of size (2*HalfX,2*HalfY) and of infinite height at origin (0,0,0). More...
 
unsigned IsBrick ()
 return 1 for a Brick More...
 
Shape parameters
double GetHalfX ()
 return the half width More...
 
double GetHalfY ()
 return the half length More...
 
double GetHalfZ ()
 return the half height (if it exists) More...
 
const double * GetOrigin ()
 return the origin More...
 
double * GetUx ()
 return the 3 components of normal vector to the 2 X planes More...
 
double * GetUy ()
 return the 3 components of normal vector to the 2 Y planes More...
 
double * GetUz ()
 return the 3 components of normal vector to the 2 Z planes (or the axis vector if infinite) More...
 
void SetPeriodicBoundary (bool state=true, string TopBottPlaneBC="mirror")
 Periodic boundary (WARNING: only for Brick and Hexagon). More...
 
Shape transformations
virtual void Translate (double dx, double dy, double dz, int count=0)
 Translate the Shape by (dx,dy,dz). More...
 
virtual void Rotate (double phi, double theta=0, double psi=0, double *center=0, int count=0)
 Rotate the Shape clockwise. More...
 
Relations with other shapes
unsigned Inclus (Shape_ptr OtherShape)
 return 1 if the Brick is included in OtherShape otherwise 0 More...
 
unsigned Disjoint (Shape_ptr OtherShape)
 return 1 if the Brick is Disjointed of OtherShape otherwise 0 More...
 
bool PointInShape (double *P, int border)
 True if the point P is in the Shape. More...
 
Miscellaneous methods
string Print ()
 Print the Brick surface in a MCNP cell. More...
 
void DefineSurface ()
 Define surface in MCNP format. More...
 
double MinDistanceFrom2OppositeFace (double *N, int whichplane, double *S)
 
Shape_ptr Clone (int count=0)
 Clone a Shape. More...
 
void Copy (Shape_ptr B)
 Copy all attributes of a Shape (but not attributes of the ancestor classes). More...
 
virtual int NumberOfShapes ()
 Number of shapes/surfaces this shape consists of. More...
 
- Public Member Functions inherited from Shape
 Shape ()
 Default constructor. The interior of a Shape is built. More...
 
 Shape (const Shape &s)
 Copy constructor. More...
 
virtual ~Shape ()
 Normal destructor. More...
 
double GetSigne ()
 Return -1 if the Shape exterior is considered, +1 otherwise. More...
 
void SetSigne (double s)
 
void SetOutermostShape (bool flag=true)
 Say that this Shape is the most outer one. More...
 
bool IsInfinite ()
 Return 1 if the Shape is an axially infinite one (??? why not resolve thru inheritance as same as shape type?) More...
 
virtual unsigned IsCylinder ()
 1 if Shape is a Cylinder More...
 
virtual unsigned IsFullVoid ()
 1 if Shape is Full (whole space) or Void (empty set) More...
 
virtual unsigned IsHexagon ()
 1 if Shape is a Hexagon More...
 
virtual unsigned IsNode ()
 1 if Shape is a Node More...
 
virtual unsigned IsPlane ()
 1 if Shape is a Plane More...
 
virtual unsigned IsSphere ()
 1 if Shape is a Sphere More...
 
virtual unsigned IsTube ()
 1 if Shape is a Tube More...
 
virtual unsigned IsFull ()
 1 if Shape is Full (whole space) More...
 
virtual unsigned IsVoid ()
 1 if Shape is Void (empty set) More...
 
virtual double GetVolume ()
 Get the Volume of a Shape. More...
 
virtual double GetSurface ()
 Get the Surface of a Shape. More...
 
void SetVolume (double V)
 Set the volume of a Shape to V. More...
 
void SetSurface (double S)
 Set the surface of a Shape to S. More...
 
virtual void SetMirrorBoundary (bool state=true)
 mirror a particle on the surface More...
 
virtual void SetTopBottomPlanesOpen ()
 The top/bottom planes are NOT mirrors. More...
 
virtual bool GetTopBottomPlanesOpen ()
 GetThe top/bottom planes are NOT mirrors. More...
 
virtual void SetSidePlanesOpen ()
 The side planes are NOT mirrors. More...
 
virtual bool GetSidePlanesOpen ()
 GetThe side planes are NOT mirrors. More...
 
virtual void SetWhiteBoundary (bool state=true)
 mirror a particle on the surface with a cosine distribution More...
 
virtual bool IsMirrorBoundary ()
 mirror a particle on the surface More...
 
virtual bool IsWhiteBoundary ()
 mirror a particle on the surface with a cosine distribution More...
 
virtual bool IsPeriodicBoundary ()
 Periodic boundary (only for Brick or Hexagon) More...
 
Shape_ptr Not ()
 Return the complementary Shape (i.e. the other side) More...
 
void RotateVector (double *V, double phi, double theta=0, double psi=0)
 Rotate a Vector clockwise. ??? why a shape member? More...
 
void RotatePoint (double *P, double phi, double theta=0, double psi=0, double *center=0)
 Rotate a Point clockwise.??? why a shape member? More...
 
virtual unsigned Add (Shape_ptr OtherShape)
 Add a new Shape (in fact a Shape_ptr) to a Node. More...
 
virtual void SetMouvement (bool state=true)
 Set the fMouvement flag to state;. More...
 
virtual void UnSetMouvement ()
 Set the fMouvement flag to false;. More...
 
bool GetMouvement ()
 returns fMouvement flag; More...
 
virtual void Simplify (bool violent=false)
 Simplify a tree of Node. More...
 
virtual void DevElague (int count=0, bool violent=false)
 Developps and Trims a tree of Node. More...
 
unsigned AddInsideShape (Shape_ptr OtherShape)
 Add a Shape in fInsideShape each time a "put in" is done. More...
 
unsigned AddOriginalInsideShape (Shape_ptr OtherShape)
 This method is called by Shape::AddInsideShape. More...
 
void ClearOriginalInsideShape ()
 Clear all Inside Shapes. More...
 
void ClearInsideShape ()
 Clear all Inside Shapes. More...
 
unsigned GetInsideShapeSize ()
 return the number of Shape put in this More...
 
unsigned GetOriginalInsideShapeSize ()
 return the number of Original Shape put in this More...
 
void SetInsideShape (int i, Shape_ptr S)
 set the ith InsideShape put in to S More...
 
void SetOriginalInsideShape (int i, Shape_ptr S)
 set the ith Original InsideShape put in to S More...
 
Shape_ptr GetInsideShape (int i)
 return the ith InsideShape put in this More...
 
Shape_ptr GetOriginalInsideShape (int i)
 return the ith Original InsideShape put in this More...
 
virtual string PrintSurface ()
 Print the Shape surfaces in MCNP surface block. More...
 
void SetClone (Shape_ptr clone)
 Set the CloneShape to clone. More...
 
void SetClone2Not ()
 Set the CloneShape to a Not. More...
 
virtual Shape_ptr GetLeaf (int i)
 returns the i-th leaf (Shape) of a Node More...
 
virtual int GetNumberOfLeaves ()
 returns the number of leaves (Shape) of a Node More...
 
void AddSurfaceNumber (int i)
 Give the vector of Surface of the Shape. More...
 
vector< int > GetSurfaceNumber ()
 Give the vector of Surface of the Shape. More...
 
virtual void AlreadyDefine (bool state=true)
 Set a flag to know wheter a surface is already defined. More...
 
virtual void SetUniverse (int u=0)
 Set the Universe number for a shape used in a lattice. More...
 
virtual void SetFill (int f)
 Set the Universe number filling a Shape. More...
 
int GetUniverse ()
 return the Univers number if exists. More...
 
int GetFill ()
 return the Univers number that fills the Shape. More...
 
void IncrementSurface (double S)
 Increment the surface of a Shape of S. More...
 
virtual void RemoveSurface ()
 
virtual void PrintX (int count=0)
 Debug method: Print the shape surface when fMouvement=true. More...
 
virtual void PrintY (int count=0)
 Debug method: Print the shape surfaces, InsideShape,... More...
 
void NewNot ()
 Update the Not. More...
 
virtual void SetLinkedPlane (Shape_ptr P)
 linked plane for periodic boundary More...
 
virtual void ReplaceNode (Shape_ptr C)
 Replace a Node by an other (C must be a Node) More...
 
double PS (double *U, double *V)
 Scalar product of 3D vectors U and V. More...
 
string GetName ()
 returns the Shape name More...
 
void SetZone (int z)
 set test flag for complex geometries More...
 
int GetZone ()
 get test flag for complex geometries More...
 
- Public Member Functions inherited from TReference
 TReference ()
 Default constructor. Number of references is set to 0. More...
 
virtual ~TReference ()
 Destructor. More...
 
void AddReference (unsigned n=1)
 Add n references to an object. More...
 
unsigned DelReference (unsigned n=1)
 Remove n references to an object. More...
 
unsigned Reference ()
 returns the Number of references to an object More...
 

Private Member Functions

 Brick (double HalfX, double HalfY, double HalfZ, double Signe, bool Infinite)
 Private constructor needed to copy a Brick in methods. More...
 
void Init (double HalfX, double HalfY, double HalfZ)
 
unsigned CornerInBrick (Brick *brick, int all, int border)
 Return 1 if corner(s) of this shape are in a brick. More...
 
unsigned CornerInCylinder (Cylinder *cyl, int all, int border)
 Return 1 if corner(s) of this shape are in a cylinder. More...
 
double Dist2Segment (Cylinder *cyl, double Segment[6][2], double C0[6][2], int &segmentNum)
 
void FindBrickProjection (Cylinder *cyl, double Segment[6][2], double C0[6][2], double Origin[2])
 
unsigned GeneralIntersectionOf2Brick (Brick *brick)
 return 1 if there is an intersection of the segment of this with the Brick brick More...
 
unsigned LineCrossPlane (double *X, double *N, double *P, double *U, double *D)
 
unsigned CylinderCrossBrick (Cylinder *Cyl)
 
unsigned PointInSegment (double *X, double *A, double *B, int border)
 
unsigned TwoFaces3Segments (Brick *brick, double *N, int whichSize, double *C0, double C1[3][3])
 
unsigned TwoFaces2Segments (Brick *brick, double *N, int whichSize, double *C0, double C1[2][3])
 
double GetVirtualSphereRadius ()
 returns the radius of a Sphere containing the Shape More...
 
double * GetVirtualSphereCenter ()
 returns the center of a Sphere containing the Shape More...
 
void CalculNot ()
 Allocates and calculs the complement of a brick. More...
 
double MinDist1Point2Face (double *U0, double *U1, double *U2, double *P0, double *S, int whichplane)
 
double MinDist1Point2FaceInfinite (double *U0, double *U1, double *P0, double *S, int whichplane)
 
SurfaceDefinePlane (double *N, double D)
 Print a Brick Plane choosing beetween P, PX, PY or PZ. More...
 

Private Attributes

double fHalfSize [3]
 Half sizes of the brick. More...
 
double fOrigin [3]
 Origin of the brick. More...
 
double fUx [3]
 Normal vector to the 2 X planes. More...
 
double fUy [3]
 Normal vector to the 2 Y planes. More...
 
double fUz [3]
 Normal vector to the 2 Z planes. More...
 

Additional Inherited Members

- Protected Member Functions inherited from Shape
void SetNot (Shape *Not)
 Allocates and calculs the complement of Shape. More...
 
void SetNotofNot ()
 Give a Not to the Not. More...
 
void UpdateSurface (Surface *&S)
 Add (if not exists) the surface S to MURE::fSurfaceVector. More...
 
- Protected Attributes inherited from Shape
vector< int > fSurfaceNumber
 number(s) of Surface(s) defining the Shape More...
 
vector< Shape_ptrfInsideShape
 a vector to remember which Shapes are inside the current one.Clear at each ">>" More...
 
vector< Shape_ptrfOriginalInsideShape
 a vector to remember which Shapes are inside the current one. More...
 
double fSigne
 Define whether the interior (-1) or the exterior (+1) of the Shape is considered. More...
 
bool fInfinite
 Determines whether the shape is infinite or not. More...
 
ShapefNot
 pointer on complementary Shape if exists, else 0. More...
 
bool fAlreadyDefine
 Flag to know whether a surface is already defined. More...
 
bool fMouvement
 Flag that indicate a Shape is in mouvement (translation,..) in a tree. More...
 
int fUniverse
 Universe number (for lattice filling) More...
 
int fFill
 Universe number that fill the Shape. More...
 
double fVolume
 the Volume of a Shape; More...
 
double fSurface
 the Surface of a Shape; More...
 
string fName
 Name of a Shape. More...
 
double fVirtualSphereR
 the radius of a Sphere containing the Shape More...
 
double * fVirtualSphereO
 the center of a Sphere containing the Shape More...
 
Shape_ptr fCloneShape
 the clone of a Shape More...
 
bool fMirrorBoundary
 wether or not mirror a particle on the surface More...
 
bool fOpenZPlanes
 whether the top/bottom planes are not mirrors (default=false) More...
 
bool fOpenXYPlanes
 whether the side planes are not mirrors (default=false) More...
 
bool fWhiteBoundary
 wether or not mirror a particle on the surface with a cosine distribution More...
 
bool fPeriodicBoundary
 wether or not Periodic boundary are applied (only for plane) More...
 
string fTopBottPlaneBoundaryCondition
 wether the top(bottom) plane of a periodic boundary Shape is white or mirror More...
 
Shape_ptr fLinkedPlane
 the Plane linked to an this for periodic boundary More...
 
bool fOutermostShape
 wether or not this Shape is the limit to the exterior world (for calculating particle losses). More...
 
int fZone
 flag for identifying complex geometries (test fms) More...
 

Detailed Description

A rectangular parallepipede Shape.

A Brick is a rectangular parallepipede defined by half width, half length, half height (HalfX,HalfY,HalfZ).

Signe=-1 for Brick interior and Signe=+1 for its exterior.

Default: interior of a 0.01*0.01*0.01 cube, perpendicular to (x,y,z) basis and center at origin.

Author
PTO
Version
1.0

Constructor & Destructor Documentation

Brick::Brick ( double  HalfX = 0.01,
double  HalfY = 0.01,
double  HalfZ = 0.01,
double  Signe = -1 
)

Build a Brick of size (2*HalfX,2*HalfY,2*HalfZ) at origin (0,0,0).

Default: Cube center at origin of 0.01*0.01*0.01 = 1 cm3

Parameters
HalfX: half of X-dimension of the brick
HalfY: half of Y-dimension of the brick
HalfZ: half of Z-dimension of the brick
Signe: -1 (default) for interior and +1 for exterior
Brick::Brick ( double *  Origin,
double *  Ux,
double *  Uy,
double *  Uz,
double  HalfX = 0.01,
double  HalfY = 0.01,
double  HalfZ = 0.01,
double  Signe = -1 
)

Build a Brick of size (2*HalfX,2*HalfY,2*HalfZ) centered at Origin, with Ux, Uy, Uz, normal vectors to its faces.

Default: Cube of 0.01*0.01*0.01 = 1 cm3

Parameters
Origin: Center point of the brick (double[3])
Ux: normal vector of face normally perpendicular to x-axis (double[3])
Uy: normal vector of face normally perpendicular to y-axis (double[3])
Uz: normal vector of face normally perpendicular to z-axis (double[3])
HalfX: half of X-dimension of the brick
HalfY: half of Y-dimension of the brick
HalfZ: half of Z-dimension of the brick
Signe: -1 (default) for interior and +1 for exterior
Brick::Brick ( const char *  Infinite,
double  HalfX = 0.01,
double  HalfY = 0.01,
double  Signe = -1 
)

Build a Brick of size (2*HalfX,2*HalfY) and of infinite height at origin (0,0,0).

Default: Cube center at origin of 0.01*0.01 = 1 cm2 rectangular basis

Parameters
Infinite: any string between "" (for resolution of overload)
HalfX: half of X-dimension of the brick
HalfY: half of Y-dimension of the brick
Signe: -1 (default) for interior and +1 for exterior
Brick::Brick ( double  HalfX,
double  HalfY,
double  HalfZ,
double  Signe,
bool  Infinite 
)
private

Private constructor needed to copy a Brick in methods.

Member Function Documentation

void Brick::CalculNot ( )
privatevirtual

Allocates and calculs the complement of a brick.

Reimplemented from Shape.

Shape_ptr Brick::Clone ( int  count = 0)
virtual

Clone a Shape.

Reimplemented from Shape.

void Brick::Copy ( Shape_ptr  B)
virtual

Copy all attributes of a Shape (but not attributes of the ancestor classes).

Reimplemented from Shape.

unsigned Brick::CornerInBrick ( Brick brick,
int  all,
int  border 
)
private

Return 1 if corner(s) of this shape are in a brick.

Parameters
all: Ask about all (all=1) or at least one (all=0) corner of this shape.
border: Resolve border: if a corner of this shape is at the surface of brick, it is considered inside (-1) or outside (+1)
brick: The brick which we try to fit in.
unsigned Brick::CornerInCylinder ( Cylinder cyl,
int  all,
int  border 
)
private

Return 1 if corner(s) of this shape are in a cylinder.

Parameters
all: Ask about all (all=1) or at least one (all=0) corner of this shape.
border: Resolve border: if a corner of this shape is at the surface of cyl, it is considered inside (-1) or outside (+1)
cyl: The cylinder which we try to fit in.
unsigned Brick::CylinderCrossBrick ( Cylinder Cyl)
private

Return 1 if a cylinder and a brick cut together. Find (if exist) the cross-point of the axis cylinder with on brick face.

Parameters
Cyl: The cylinder
Surface * Brick::DefinePlane ( double *  N,
double  D 
)
private

Print a Brick Plane choosing beetween P, PX, PY or PZ.

void Brick::DefineSurface ( )
virtual

Define surface in MCNP format.

Reimplemented from Shape.

unsigned Brick::Disjoint ( Shape_ptr  OtherShape)
virtual

return 1 if the Brick is Disjointed of OtherShape otherwise 0

Reimplemented from Shape.

double Brick::Dist2Segment ( Cylinder cyl,
double  Segment[6][2],
double  C0[6][2],
int &  segmentNum 
)
private
void Brick::FindBrickProjection ( Cylinder cyl,
double  Segment[6][2],
double  C0[6][2],
double  Origin[2] 
)
private

Projection of a brick in a plane perpendicular to the cylinder axis. THIS METHOD IS NO MORE USED BECAUSE IT GIVES WRONG ANWSER (how to join the hexagon corners?)

Parameters
cyl: cylinder
Segment: the segments of the result hexagon of the projection (2D); they are order in such way that C0[i] is linked to C0[i+1]
C0: the corners of the result hexagon of the projection (2D)
Origin: origin
unsigned Brick::GeneralIntersectionOf2Brick ( Brick brick)
private

return 1 if there is an intersection of the segment of this with the Brick brick

double Brick::GetHalfX ( )
inline

return the half width

double Brick::GetHalfY ( )
inline

return the half length

double Brick::GetHalfZ ( )
inline

return the half height (if it exists)

const double* Brick::GetOrigin ( )
inline

return the origin

double* Brick::GetUx ( )
inline

return the 3 components of normal vector to the 2 X planes

double* Brick::GetUy ( )
inline

return the 3 components of normal vector to the 2 Y planes

double* Brick::GetUz ( )
inline

return the 3 components of normal vector to the 2 Z planes (or the axis vector if infinite)

double* Brick::GetVirtualSphereCenter ( )
inlineprivatevirtual

returns the center of a Sphere containing the Shape

Reimplemented from Shape.

double Brick::GetVirtualSphereRadius ( )
privatevirtual

returns the radius of a Sphere containing the Shape

Reimplemented from Shape.

unsigned Brick::Inclus ( Shape_ptr  OtherShape)
virtual

return 1 if the Brick is included in OtherShape otherwise 0

Reimplemented from Shape.

void Brick::Init ( double  HalfX,
double  HalfY,
double  HalfZ 
)
private

Set half sizes, origin, and normal vectors, needed by constructors

unsigned Brick::IsBrick ( )
inlinevirtual

return 1 for a Brick

Reimplemented from Shape.

unsigned Brick::LineCrossPlane ( double *  X,
double *  N,
double *  P,
double *  U,
double *  D 
)
private

Find the intersection of a plane and a line. 0=no intersection, 1=at least 1 intesection.

Parameters
P: a point of the plane
N: the normal vector of the plane
D: a point of the line
U: a vector of the line
X: (output) the intersection point if exists
double Brick::MinDist1Point2Face ( double *  U0,
double *  U1,
double *  U2,
double *  P0,
double *  S,
int  whichplane 
)
private

Calculates the minimum distance from point S to faces of normal vector U0 and center P0

Parameters
U1: the other faces, in x->y->z->x order
U2: the other faces, in x->y->z->x order
S: point
P0: center
U0: normal vector
whichplane: indicates which plane is considered (for fHalfSize)
double Brick::MinDist1Point2FaceInfinite ( double *  U0,
double *  U1,
double *  P0,
double *  S,
int  whichplane 
)
private

Calculates the minimum distance from point S to face of normal vector U0 and center P0, in case of infinite brick

Parameters
S: point
P0: center
U0: normal vector
U1: the other face
whichplane: indicates which plane is considered (for fHalfSize)
double Brick::MinDistanceFrom2OppositeFace ( double *  N,
int  whichplane,
double *  S 
)

return the minimum distance of 2 opposite faces of a brick to the point S.

Parameters
N: normal vector defining the 2 surfaces (either fUx,fUy or fUz).
whichplane: used to know if N is fUx,fUy or fUz
S: The point
virtual int Brick::NumberOfShapes ( )
inlinevirtual

Number of shapes/surfaces this shape consists of.

Reimplemented from Shape.

unsigned Brick::PointInSegment ( double *  X,
double *  A,
double *  B,
int  border 
)
private

returns 1 if the point X is in (A,B) otherwise 0.

Parameters
X: point
A: point
B: point
border: -1 => X is in [A,B], +1 => X is in ]A,B[
bool Brick::PointInShape ( double *  P,
int  border 
)
virtual

True if the point P is in the Shape.

Parameters
P: a (x,y,z) point of space
border: =-1 if P is at the Shape surface then P is inside, =+1 : if P is at the Shape surface then P is outside

Reimplemented from Shape.

string Brick::Print ( )
virtual

Print the Brick surface in a MCNP cell.

Reimplemented from Shape.

void Brick::Rotate ( double  phi,
double  theta = 0,
double  psi = 0,
double *  center = 0,
int  count = 0 
)
virtual

Rotate the Shape clockwise.

Parameters
phi: around z axis
theta: around y axis
psi: around x axis
center: pivot of rotation (Default=origin)
count: recursive transformation depth counter

Reimplemented from Shape.

void Brick::SetPeriodicBoundary ( bool  state = true,
string  TopBottPlaneBC = "mirror" 
)
virtual

Periodic boundary (WARNING: only for Brick and Hexagon).

Please read carefully the MCNP user guide before using these conditions.

Parameters
state: true or false to allow periodic condition
TopBottPlaneBC: The Top/Bottom planes of the Brick or Hexagon boundary conditions ; Possible values are
  • TopBottPlaneBC="mirror" : The Top/Bottom planes are reflecting surfaces (Default)
  • TopBottPlaneBC="white" : The Top/Bottom planes are white boundaries
  • TopBottPlaneBC="infinite" : The Top/Bottom planes are infinite (not yet implemented)

Reimplemented from Shape.

void Brick::Translate ( double  dx,
double  dy,
double  dz,
int  count = 0 
)
virtual

Translate the Shape by (dx,dy,dz).

Parameters
dx: translation along x-axis
dy: translation along y-axis
dz: translation along z-axis
count: recursive transformation depth counter

Reimplemented from Shape.

unsigned Brick::TwoFaces2Segments ( Brick brick,
double *  N,
int  whichSize,
double *  C0,
double  C1[2][3] 
)
private

return 1 if there is an intersection of 2 segments of a Brick's rectangular basis with at least one of 2 opposite face of an other Brick.

Parameters
brick: the other Brick
N: the 2 opposite faces of the Brick brick
whichSize: which length of brick faces to used
C0: defining the 2 segment of this (by [C0,C1[i]])
C1: endpoints
unsigned Brick::TwoFaces3Segments ( Brick brick,
double *  N,
int  whichSize,
double *  C0,
double  C1[3][3] 
)
private

return 1 if there is an intersection of 3 segments of a Brick with at least one of 2 opposite face of an other Brick.

Parameters
brick,:the other Brick
N: the 2 opposite faces of the Brick brick
whichSize: which length of brick faces to used
C0: defining the 3 segment of this (by [C0,C1[i]])
C1: points of the segments

Member Data Documentation

double Brick::fHalfSize[3]
private

Half sizes of the brick.

double Brick::fOrigin[3]
private

Origin of the brick.

double Brick::fUx[3]
private

Normal vector to the 2 X planes.

double Brick::fUy[3]
private

Normal vector to the 2 Y planes.

double Brick::fUz[3]
private

Normal vector to the 2 Z planes.


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

MURE Project, documentation generated by Doxygen 1.8.5 - Mon Nov 17 2014