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

Base class to define shapes. More...

#include <Shape.hxx>

Inheritance diagram for Shape:
TReference Brick Cylinder Node Plane Sphere Hexagon Tube

Public Member Functions

Constructors
 Shape ()
 Default constructor. The interior of a Shape is built. More...
 
 Shape (const Shape &s)
 Copy constructor. More...
 
virtual ~Shape ()
 Normal destructor. More...
 
Interior/exterior, infinity, problem boundary
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...
 
Shape type recognition
virtual unsigned IsBrick ()
 1 if Shape is a Brick 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...
 
Shape parameters
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 void SetPeriodicBoundary (bool state=true, string TopBottPlaneBC="mirror")
 Periodic boundary (WARNING: only for Brick and Hexagon). 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 transformations
Shape_ptr Not ()
 Return the complementary Shape (i.e. the other side) More...
 
virtual void Rotate (double phi, double theta=0, double psi=0, double *center=0, int count=0)
 Rotate the Shape clockwise. More...
 
virtual void Translate (double dx, double dy, double dz, int count=0)
 Translate the Shape of (dx,dy,dz). 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...
 
Relations with other shapes
virtual unsigned Inclus (Shape_ptr OtherShape)
 return 1 if a shape is included in OtherShape. More...
 
virtual unsigned Disjoint (Shape_ptr OtherShape)
 return 1 if a shape is disjointed in OtherShape. More...
 
Shape simplification methods
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...
 
"Put in" operator (>>) related methods
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...
 
Miscellaneous methods
virtual string Print ()
 Print the Shape surface in MCNP cell. More...
 
virtual string PrintSurface ()
 Print the Shape surfaces in MCNP surface block. More...
 
virtual Shape_ptr Clone (int count=0)
 Clone a Shape. More...
 
void SetClone (Shape_ptr clone)
 Set the CloneShape to clone. More...
 
void SetClone2Not ()
 Set the CloneShape to a Not. More...
 
virtual void Copy (Shape_ptr S)
 Copy all attributs of a Shape S (but not attributs of the father classes). 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 DefineSurface ()
 Define MCNP surfaces for this 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 double GetVirtualSphereRadius ()
 returns the radius of a Sphere containing the Shape More...
 
virtual double * GetVirtualSphereCenter ()
 returns the center of a Sphere containing the Shape 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...
 
virtual void CalculNot ()
 Allocates and calculs the complement of a Shape. More...
 
void NewNot ()
 Update the Not. More...
 
virtual bool PointInShape (double *P, int border)
 true if the point P is in the Shape. 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...
 
virtual int NumberOfShapes ()
 returns the number of Shape 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...
 

Protected Member Functions

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

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

Base class to define shapes.

Simple Shapes are: Plane, Sphere, Cylinder and Brick. More complex Shapes may be built using Node or classes Tube and Hexagon.

Warning
The user may ONLY used Shape_ptr:
Shape_ptr MyShape(new Sphere());
See Also
Sphere
Cylinder
Plane
Brick
Node
Tube
Hexagon
Author
WEC
PTO
Version
0.5

Constructor & Destructor Documentation

Shape::Shape ( )

Default constructor. The interior of a Shape is built.

Shape::Shape ( const Shape s)

Copy constructor.

Shape::~Shape ( )
virtual

Normal destructor.

Member Function Documentation

virtual unsigned Shape::Add ( Shape_ptr  OtherShape)
inlinevirtual

Add a new Shape (in fact a Shape_ptr) to a Node.

Reimplemented in Node.

unsigned Shape::AddInsideShape ( Shape_ptr  OtherShape)

Add a Shape in fInsideShape each time a "put in" is done.

This is usefull to translate/rotate all the Shape that were put in by translating only this.

See Also
the "put in" operator >>
unsigned Shape::AddOriginalInsideShape ( Shape_ptr  OtherShape)
inline

This method is called by Shape::AddInsideShape.

 Allows user to keep a trace of the InsideShape to feel the Cell.

@ see the "put in" operator >>

void Shape::AddSurfaceNumber ( int  i)
inline

Give the vector of Surface of the Shape.

void Shape::AlreadyDefine ( bool  state = true)
virtual

Set a flag to know wheter a surface is already defined.

Reimplemented in Node.

virtual void Shape::CalculNot ( )
inlinevirtual

Allocates and calculs the complement of a Shape.

Reimplemented in Brick, Node, Hexagon, Cylinder, Plane, Sphere, and Tube.

void Shape::ClearInsideShape ( )
inline

Clear all Inside Shapes.

void Shape::ClearOriginalInsideShape ( )
inline

Clear all Inside Shapes.

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

Clone a Shape.

Reimplemented in Brick, Cylinder, Tube, Hexagon, Plane, Sphere, and Node.

virtual void Shape::Copy ( Shape_ptr  S)
inlinevirtual

Copy all attributs of a Shape S (but not attributs of the father classes).

Reimplemented in Brick, Cylinder, Tube, Hexagon, Plane, and Sphere.

virtual void Shape::DefineSurface ( )
inlinevirtual

Define MCNP surfaces for this Shape.

Called by Print() and only there. ??? why not private? Must be overriden

Reimplemented in Brick, Cylinder, Sphere, and Plane.

virtual void Shape::DevElague ( int  count = 0,
bool  violent = false 
)
inlinevirtual

Developps and Trims a tree of Node.

Must be overriden

Reimplemented in Node.

virtual unsigned Shape::Disjoint ( Shape_ptr  OtherShape)
inlinevirtual

return 1 if a shape is disjointed in OtherShape.

+1 this is disjointed in OtherShape, 0 not included or don't know. Must be overriden

Reimplemented in Brick, Node, Hexagon, Cylinder, Sphere, Tube, and Plane.

int Shape::GetFill ( )
inline

return the Univers number that fills the Shape.

Shape_ptr Shape::GetInsideShape ( int  i)
inline

return the ith InsideShape put in this

unsigned Shape::GetInsideShapeSize ( )
inline

return the number of Shape put in this

virtual Shape_ptr Shape::GetLeaf ( int  i)
inlinevirtual

returns the i-th leaf (Shape) of a Node

Reimplemented in Node.

bool Shape::GetMouvement ( )
inline

returns fMouvement flag;

string Shape::GetName ( )

returns the Shape name

virtual int Shape::GetNumberOfLeaves ( )
inlinevirtual

returns the number of leaves (Shape) of a Node

Reimplemented in Node.

Shape_ptr Shape::GetOriginalInsideShape ( int  i)
inline

return the ith Original InsideShape put in this

unsigned Shape::GetOriginalInsideShapeSize ( )
inline

return the number of Original Shape put in this

virtual bool Shape::GetSidePlanesOpen ( )
inlinevirtual

GetThe side planes are NOT mirrors.

Reimplemented in Node.

double Shape::GetSigne ( )
inline

Return -1 if the Shape exterior is considered, +1 otherwise.

virtual double Shape::GetSurface ( )
inlinevirtual

Get the Surface of a Shape.

Returns -1 when not able to calculate Surface

vector< int > Shape::GetSurfaceNumber ( )

Give the vector of Surface of the Shape.

virtual bool Shape::GetTopBottomPlanesOpen ( )
inlinevirtual

GetThe top/bottom planes are NOT mirrors.

Reimplemented in Node.

int Shape::GetUniverse ( )
inline

return the Univers number if exists.

virtual double* Shape::GetVirtualSphereCenter ( )
inlinevirtual

returns the center of a Sphere containing the Shape

Reimplemented in Brick, Node, Hexagon, Cylinder, Sphere, and Tube.

virtual double Shape::GetVirtualSphereRadius ( )
inlinevirtual

returns the radius of a Sphere containing the Shape

Reimplemented in Brick, Node, Hexagon, Sphere, and Tube.

virtual double Shape::GetVolume ( )
inlinevirtual

Get the Volume of a Shape.

Returns -1 when not able to calculate volume

Reimplemented in Node.

int Shape::GetZone ( )
inline

get test flag for complex geometries

virtual unsigned Shape::Inclus ( Shape_ptr  OtherShape)
inlinevirtual

return 1 if a shape is included in OtherShape.

+1 this is included in OtherShape, 0 not included or don't know. Must be overriden

Reimplemented in Brick, Node, Hexagon, Cylinder, Sphere, Tube, and Plane.

void Shape::IncrementSurface ( double  S)
inline

Increment the surface of a Shape of S.

virtual unsigned Shape::IsBrick ( )
inlinevirtual

1 if Shape is a Brick

Reimplemented in Brick.

virtual unsigned Shape::IsCylinder ( )
inlinevirtual

1 if Shape is a Cylinder

Reimplemented in Cylinder.

virtual unsigned Shape::IsFull ( )
inlinevirtual

1 if Shape is Full (whole space)

Reimplemented in Node.

virtual unsigned Shape::IsFullVoid ( )
inlinevirtual

1 if Shape is Full (whole space) or Void (empty set)

Reimplemented in Node.

virtual unsigned Shape::IsHexagon ( )
inlinevirtual

1 if Shape is a Hexagon

Reimplemented in Hexagon.

bool Shape::IsInfinite ( )
inline

Return 1 if the Shape is an axially infinite one (??? why not resolve thru inheritance as same as shape type?)

virtual bool Shape::IsMirrorBoundary ( )
inlinevirtual

mirror a particle on the surface

virtual unsigned Shape::IsNode ( )
inlinevirtual

1 if Shape is a Node

Reimplemented in Node.

virtual bool Shape::IsPeriodicBoundary ( )
inlinevirtual

Periodic boundary (only for Brick or Hexagon)

virtual unsigned Shape::IsPlane ( )
inlinevirtual

1 if Shape is a Plane

Reimplemented in Plane.

virtual unsigned Shape::IsSphere ( )
inlinevirtual

1 if Shape is a Sphere

Reimplemented in Sphere.

virtual unsigned Shape::IsTube ( )
inlinevirtual

1 if Shape is a Tube

Reimplemented in Tube.

virtual unsigned Shape::IsVoid ( )
inlinevirtual

1 if Shape is Void (empty set)

Reimplemented in Node.

virtual bool Shape::IsWhiteBoundary ( )
inlinevirtual

mirror a particle on the surface with a cosine distribution

void Shape::NewNot ( )
inline

Update the Not.

Shape_ptr Shape::Not ( )

Return the complementary Shape (i.e. the other side)

virtual int Shape::NumberOfShapes ( )
inlinevirtual

returns the number of Shape

Reimplemented in Node, and Brick.

virtual bool Shape::PointInShape ( double *  P,
int  border 
)
inlinevirtual

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
border: =+1 : if P is at the Shape surface then P is outside

Reimplemented in Node, Brick, Plane, Cylinder, and Sphere.

string Shape::Print ( )
virtual

Print the Shape surface in MCNP cell.

Reimplemented in Brick, Node, and Hexagon.

virtual string Shape::PrintSurface ( )
inlinevirtual

Print the Shape surfaces in MCNP surface block.

void Shape::PrintX ( int  count = 0)
virtual

Debug method: Print the shape surface when fMouvement=true.

Reimplemented in Node.

void Shape::PrintY ( int  count = 0)
virtual

Debug method: Print the shape surfaces, InsideShape,...

Reimplemented in Node.

double Shape::PS ( double *  U,
double *  V 
)

Scalar product of 3D vectors U and V.

void Shape::RemoveSurface ( )
virtual

Reimplemented in Node.

virtual void Shape::ReplaceNode ( Shape_ptr  C)
inlinevirtual

Replace a Node by an other (C must be a Node)

Reimplemented in Node.

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

Rotate the Shape clockwise.

Parameters
phi: arround z axis
theta: arround y axis
psi: arround x axis
center: the center of rotation (Default=origin)
count: normal used is default (=0) ; usefull to know the recursion depth

Reimplemented in Brick, Hexagon, Node, Plane, Cylinder, and Sphere.

void Shape::RotatePoint ( double *  P,
double  phi,
double  theta = 0,
double  psi = 0,
double *  center = 0 
)

Rotate a Point clockwise.??? why a shape member?

Parameters
P: 3D point
phi: angle around z axis
theta: angle around y axis
psi: arround x axis
center: the center of rotation (Default=origin)
void Shape::RotateVector ( double *  V,
double  phi,
double  theta = 0,
double  psi = 0 
)

Rotate a Vector clockwise. ??? why a shape member?

Parameters
V: 3D vector
phi: arround z axis
theta: arround y axis
psi: arround x axis
void Shape::SetClone ( Shape_ptr  clone)
inline

Set the CloneShape to clone.

void Shape::SetClone2Not ( )

Set the CloneShape to a Not.

virtual void Shape::SetFill ( int  f)
inlinevirtual

Set the Universe number filling a Shape.

void Shape::SetInsideShape ( int  i,
Shape_ptr  S 
)
inline

set the ith InsideShape put in to S

virtual void Shape::SetLinkedPlane ( Shape_ptr  P)
inlinevirtual

linked plane for periodic boundary

void Shape::SetMirrorBoundary ( bool  state = true)
virtual

mirror a particle on the surface

Reimplemented in Node.

virtual void Shape::SetMouvement ( bool  state = true)
inlinevirtual

Set the fMouvement flag to state;.

void Shape::SetNot ( Shape Not)
inlineprotected

Allocates and calculs the complement of Shape.

Must be overriden

void Shape::SetNotofNot ( )
inlineprotected

Give a Not to the Not.

void Shape::SetOriginalInsideShape ( int  i,
Shape_ptr  S 
)
inline

set the ith Original InsideShape put in to S

void Shape::SetOutermostShape ( bool  flag = true)
inline

Say that this Shape is the most outer one.

The most outer shape has to be defined when using for example poison control ; indeed, a keff evaluation is done using formula keff=(creation)/(absorption+leakage). The leakage are evaluated using F2 tally on the most outer shape of the geometry (i.e. the whole exterior).

void Shape::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 in Brick, and Hexagon.

virtual void Shape::SetSidePlanesOpen ( )
inlinevirtual

The side planes are NOT mirrors.

Reimplemented in Tube, Hexagon, and Node.

void Shape::SetSigne ( double  s)
inline

Set the fSigne to s (-1 if the Shape exterior is considered, +1 otherwise)

void Shape::SetSurface ( double  S)
inline

Set the surface of a Shape to S.

virtual void Shape::SetTopBottomPlanesOpen ( )
inlinevirtual

The top/bottom planes are NOT mirrors.

Reimplemented in Tube, Hexagon, and Node.

void Shape::SetUniverse ( int  u = 0)
virtual

Set the Universe number for a shape used in a lattice.

Overriden in Node

Parameters
u: universe number. if u<=0 (default) a universe number is automatically given.

Reimplemented in Node.

void Shape::SetVolume ( double  V)
inline

Set the volume of a Shape to V.

void Shape::SetWhiteBoundary ( bool  state = true)
virtual

mirror a particle on the surface with a cosine distribution

Reimplemented in Node.

void Shape::SetZone ( int  z)
inline

set test flag for complex geometries

virtual void Shape::Simplify ( bool  violent = false)
inlinevirtual

Simplify a tree of Node.

Must be overriden

Reimplemented in Node.

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

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

Parameters
dx: translation along x-axis
dy: translation along y-axis
dz: translation along z-axis
count: normal used is default (=0) ; usefull to know the recursion depth

Reimplemented in Brick, Hexagon, Node, Plane, Cylinder, and Sphere.

void Shape::UnSetMouvement ( )
virtual

Set the fMouvement flag to false;.

Reimplemented in Node.

void Shape::UpdateSurface ( Surface *&  S)
protected

Add (if not exists) the surface S to MURE::fSurfaceVector.

This function store a new Surface in MURE::fSurfaceVector in order to write only once the same surface. If S has been already stored, S is deleted and set to the stored surface

Member Data Documentation

bool Shape::fAlreadyDefine
protected

Flag to know whether a surface is already defined.

Shape_ptr Shape::fCloneShape
protected

the clone of a Shape

int Shape::fFill
protected

Universe number that fill the Shape.

bool Shape::fInfinite
protected

Determines whether the shape is infinite or not.

vector<Shape_ptr> Shape::fInsideShape
protected

a vector to remember which Shapes are inside the current one.Clear at each ">>"

Shape_ptr Shape::fLinkedPlane
protected

the Plane linked to an this for periodic boundary

bool Shape::fMirrorBoundary
protected

wether or not mirror a particle on the surface

bool Shape::fMouvement
protected

Flag that indicate a Shape is in mouvement (translation,..) in a tree.

string Shape::fName
protected

Name of a Shape.

Shape* Shape::fNot
protected

pointer on complementary Shape if exists, else 0.

bool Shape::fOpenXYPlanes
protected

whether the side planes are not mirrors (default=false)

bool Shape::fOpenZPlanes
protected

whether the top/bottom planes are not mirrors (default=false)

vector<Shape_ptr> Shape::fOriginalInsideShape
protected

a vector to remember which Shapes are inside the current one.

bool Shape::fOutermostShape
protected

wether or not this Shape is the limit to the exterior world (for calculating particle losses).

bool Shape::fPeriodicBoundary
protected

wether or not Periodic boundary are applied (only for plane)

double Shape::fSigne
protected

Define whether the interior (-1) or the exterior (+1) of the Shape is considered.

double Shape::fSurface
protected

the Surface of a Shape;

vector<int> Shape::fSurfaceNumber
protected

number(s) of Surface(s) defining the Shape

string Shape::fTopBottPlaneBoundaryCondition
protected

wether the top(bottom) plane of a periodic boundary Shape is white or mirror

int Shape::fUniverse
protected

Universe number (for lattice filling)

double* Shape::fVirtualSphereO
protected

the center of a Sphere containing the Shape

double Shape::fVirtualSphereR
protected

the radius of a Sphere containing the Shape

double Shape::fVolume
protected

the Volume of a Shape;

bool Shape::fWhiteBoundary
protected

wether or not mirror a particle on the surface with a cosine distribution

int Shape::fZone
protected

flag for identifying complex geometries (test fms)


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

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