281 virtual void Rotate(
double phi,
double theta = 0,
double psi = 0,
double *center =
nullptr,
int count = 0) = 0;
289 virtual void Translate(
double dx,
double dy,
double dz,
int count = 0) = 0;
441 return "Oups! Print function of shape should not be called";
443 virtual void PrintX(
int count = 0);
444 virtual void PrintY(
int count = 0);
447 virtual void PrintLatex(
int count = 0);
448 static void AddLatexLine(
char *txt)
451 DEBUGFILE << txt <<
"\\\\ " << endl;
453 static void BeginLatex();
454 static void EndLatex();
506 virtual void DevElague(
int count = 0,
bool violent =
false) {}
#define sign(a)
Definition GenericReactorAssembly.cxx:43
Shape_ptr & operator&=(Shape_ptr &A, Shape_ptr B)
Definition Shape.cxx:302
Shape_ptr & operator|=(Shape_ptr &A, Shape_ptr B)
Definition Shape.cxx:309
Shape_ptr operator!(Shape_ptr A)
!A is an other way to obtain A->Not().
Definition Shape.cxx:437
Reference_ptr< Shape > Shape_ptr
Definition Shape.hxx:54
Header file for SurfaceCard class.
Header file for TReference class and Reference_ptr template.
MathNode allows to construct Union or Intersection of Shape.
Definition MathNode.hxx:50
Abstract class to define geometrical shapes.
Definition Shape.hxx:85
virtual void CalculNot()
Allocates and calculs the complement of a Shape.
Definition Shape.hxx:102
void SetNotofNot()
Definition Shape.hxx:538
virtual unsigned IsCylinder()
Definition Shape.hxx:147
string fShapeName
Name of a Shape.
Definition Shape.hxx:556
string GetDebugName()
Definition Shape.hxx:399
int GetSign()
Definition Shape.hxx:118
virtual Shape_ptr GetLeaf(int i)
Definition Shape.hxx:380
virtual unsigned IsSphere()
Definition Shape.hxx:167
virtual unsigned IsFullVoid()
Definition Shape.hxx:151
bool fMouvement
Flag that indicate a Shape is in mouvement (translation, ..) in a tree.
Definition Shape.hxx:551
void NewNot()
Definition Shape.hxx:103
string fTopBottPlaneBoundaryCondition
whether the top(bottom) plane of a periodic boundary Shape is white or mirror
Definition Shape.hxx:566
virtual bool IsSidePlanesOpen()
Definition Shape.hxx:235
virtual void SetSidePlanesOpen()
Definition Shape.hxx:231
virtual unsigned IsZTorus()
Definition Shape.hxx:183
unsigned GetOriginalInsideShapeSize()
Definition Shape.hxx:352
~Shape() override
Normal destructor.
Definition Shape.cxx:94
virtual unsigned IsBrick()
Definition Shape.hxx:143
virtual void SetPeriodicBoundary(bool state=true, string TopBottPlaneBC="mirror")
Periodic boundary (WARNING: only for Brick and Hexagon).
Definition Shape.hxx:253
vector< Shape_ptr > fInsideShape
a vector to remember which Shapes are inside the current one.Clear at each ">>"
Definition Shape.hxx:545
void SetNot(Shape *aNot)
Allocates and calculs the complement of Shape.
Definition Shape.hxx:532
bool fMirrorBoundary
whether or not mirror a particle on the surface
Definition Shape.hxx:561
virtual int GetNumberOfLeaves()
Definition Shape.hxx:385
virtual bool IsWhiteBoundary()
Definition Shape.hxx:258
virtual Shape * CreateNewInstance(int sign=1)=0
Create a new Shape instance.
virtual Shape_ptr Clone(int count=0)=0
Clone a Shape.
int fFill
Universe number that fill the Shape.
Definition Shape.hxx:553
string GetShapeName()
returns the Shape name
Definition Shape.cxx:227
virtual bool IsMirrorBoundary()
Definition Shape.hxx:254
virtual unsigned IsFull()
Definition Shape.hxx:175
bool fOpenZPlanes
whether the top/bottom planes are not mirrors (default=false)
Definition Shape.hxx:562
int GetUniverse()
Definition Shape.hxx:418
double fVolume
the Volume of a Shape;
Definition Shape.hxx:554
virtual string Print()
Definition Shape.hxx:439
virtual unsigned Add(Shape_ptr OtherShape)
Add a new Shape (in fact a Shape_ptr) to a Node.
Definition Shape.hxx:292
unsigned GetInsideShapeSize()
Definition Shape.hxx:348
virtual void SetMirrorBoundary(bool state=true)
mirror a particle on the surface
Definition Shape.cxx:274
unsigned AddOriginalInsideShape(Shape_ptr OtherShape)
This method is called by Shape::AddInsideShape.
Definition Shape.hxx:335
virtual void SetUniverse(int u=- 1)
Set the Universe number for a Shape .
Definition Shape.cxx:145
virtual void ResetIsDefinedSurfaceCalled()
Definition Shape.hxx:481
virtual bool PointInShape(double *P, int border)
true if the point P is in the Shape.
Definition Shape.hxx:462
virtual void DevElague(int count=0, bool violent=false)
Developps and Trims a tree of Node.
Definition Shape.hxx:506
void SetInsideShape(int i, Shape_ptr S)
Definition Shape.hxx:356
friend Shape_ptr operator|(Shape_ptr A, Shape_ptr B)
Definition Shape.cxx:316
virtual void Rotate(double phi, double theta=0, double psi=0, double *center=nullptr, int count=0)=0
Rotate the Shape clockwise.
virtual unsigned IsIncluded(Shape_ptr OtherShape)=0
return 1 if a shape is included in OtherShape.
virtual void SetWhiteBoundary(bool state=true)
Definition Shape.hxx:239
unsigned AddInsideShape(Shape_ptr OtherShape)
Add a Shape in fInsideShape each time a "put in" is done.
Definition Shape.cxx:219
virtual void Translate(double dx, double dy, double dz, int count=0)=0
Translate the Shape of (dx, dy, dz).
void SetArea(double S)
Definition Shape.hxx:217
virtual void SetTopBottomPlanesOpen()
Definition Shape.hxx:223
bool fOpenXYPlanes
whether the side planes are not mirrors (default=false)
Definition Shape.hxx:563
virtual void RemoveSurface()
Definition Shape.cxx:238
virtual void ReplaceLeaf(int i, Shape_ptr OtherShape)
Definition Shape.hxx:296
virtual unsigned IsPlane()
Definition Shape.hxx:163
friend Shape_ptr & operator>>(Shape_ptr &B, Shape_ptr &A)
Definition Shape.cxx:332
void SetOriginalInsideShape(int i, Shape_ptr S)
Definition Shape.hxx:360
void SetClone2Not()
Set the CloneShape to a Not.
Definition Shape.cxx:135
virtual void SetMouvement(bool state=true)
Definition Shape.hxx:493
int fUniverse
Universe number (for lattice filling)
Definition Shape.hxx:552
int GetFill()
Definition Shape.hxx:414
virtual SurfaceCard * GetSurfaceCard()
Definition Shape.hxx:473
virtual double GetVolume()
Get the Volume of a Shape.
Definition Shape.hxx:200
vector< Shape_ptr > fOriginalInsideShape
a vector to remember which Shapes are inside the current one.
Definition Shape.hxx:546
virtual unsigned IsHexagon()
Definition Shape.hxx:155
virtual void PrintX(int count=0)
Debug method: Print the shape surface when fMouvement=true.
Definition Shape.cxx:154
int fSign
Define whether the interior (-1) or the exterior (+1) of the Shape is considered.
Definition Shape.hxx:548
virtual bool IsPeriodicBoundary()
Definition Shape.hxx:262
bool fFreezeSimplify
disable any Node simplification (for serpent in ReactorAssembly)
Definition Shape.hxx:570
double fVirtualSphereR
the radius of a Sphere containing the Shape
Definition Shape.hxx:558
bool fOutermostShape
whether or not this Shape is the limit to the exterior world (for calculating particle losses).
Definition Shape.hxx:569
virtual void SetLinkedPlane(Shape_ptr P)
Definition Shape.hxx:467
Shape * fNot
pointer on complementary Shape if exists, else 0.
Definition Shape.hxx:550
Shape()
Default constructor. The interior of a Shape is built.
Definition Shape.cxx:35
virtual void MinimumCopy(Shape *S)
Copy all attributs of a Shape S (but not attributs of the father classes).
Definition Shape.cxx:244
double fArea
the area of a Shape;
Definition Shape.hxx:555
virtual int NumberOfShapes()
Definition Shape.hxx:390
void SetClone(Shape_ptr clone)
Definition Shape.hxx:107
Shape_ptr fCloneShape
the clone of a Shape
Definition Shape.hxx:560
bool fIsViolentSimplifyAllowed
whether or not a "violent simplification is allowed (ie a Node or a Brick are allowed to be separated...
Definition Shape.hxx:568
virtual unsigned IsDisjoint(Shape_ptr OtherShape)=0
return 1 if a shape is disjoint of OtherShape.
string fDebugName
Debug Name of a Shape.
Definition Shape.hxx:557
Shape_ptr Not()
Return the complementary Shape (i.e. the other side)
Definition Shape.cxx:106
virtual unsigned IsNode()
Definition Shape.hxx:159
virtual void SetFill(int f)
Definition Shape.hxx:410
virtual void ReplaceNode(Shape_ptr C)
Replace a Node by an other (C must be a Node)
Definition Shape.hxx:471
virtual void Copy(Shape_ptr S)
Copy all attributs of a Shape S (but not attributs of the father classes).
Definition Shape.hxx:379
void IncrementSurface(double S)
Definition Shape.hxx:423
virtual bool IsTopBottomPlanesOpen()
Definition Shape.hxx:227
double * fVirtualSphereO
the center of a Sphere containing the Shape
Definition Shape.hxx:559
virtual unsigned IsTube()
Definition Shape.hxx:171
virtual SurfaceCard * GetSurfaceCard(int i)
Definition Shape.hxx:477
virtual void PrintY(int count=0)
Debug method: Print the shape surfaces, InsideShape, ...
Definition Shape.cxx:176
Shape_ptr fLinkedPlane
the Plane linked to an this for periodic boundary
Definition Shape.hxx:567
void SetFreezeSimplify(bool flag=true)
Enable/disable simplification a certain nodes to avoid "union" (for Serpent outside)
Definition Shape.hxx:508
virtual void UnSetMouvement()
Set the fMouvement flag to false;.
Definition Shape.cxx:167
void ClearOriginalInsideShape()
Definition Shape.hxx:340
virtual double * GetVirtualSphereCenter()
Definition Shape.hxx:432
void SetOutermostShape(bool flag=true)
Say that this Shape is the most outer one.
Definition Shape.hxx:132
friend Shape_ptr operator&(Shape_ptr A, Shape_ptr B)
Intersection of A and B.
Definition Shape.cxx:286
void SetInfinite()
Definition Shape.hxx:517
virtual unsigned IsVoid()
Definition Shape.hxx:179
bool GetMouvement()
Definition Shape.hxx:498
bool IsViolentSimplifyAllowed()
Definition Shape.hxx:509
bool fInfinite
Determines whether the shape is infinite or not.
Definition Shape.hxx:549
bool fPeriodicBoundary
whether or not Periodic boundary are applied (only for plane)
Definition Shape.hxx:565
Shape_ptr GetInsideShape(int i)
Definition Shape.hxx:364
void SetDebugName(string str)
Definition Shape.hxx:395
virtual int GetMonoSurfaceType()
Definition Shape.hxx:513
bool IsInfinite()
Definition Shape.hxx:187
Shape_ptr GetOriginalInsideShape(int i)
Definition Shape.hxx:368
void SetVolume(double V)
Definition Shape.hxx:204
bool fWhiteBoundary
whether or not mirror a particle on the surface with a cosine distribution
Definition Shape.hxx:564
void SetSign(int s)
Definition Shape.hxx:122
void SetViolentSimplify(bool Allowed=true)
Enable/disable violent simplification a certain shapes to avoid "union" (for Serpent outside)
Definition Shape.cxx:266
virtual double GetArea()
Get the Area of a Shape.
Definition Shape.hxx:213
virtual double GetVirtualSphereRadius()
Definition Shape.hxx:428
void ClearInsideShape()
Definition Shape.hxx:344
virtual void Simplify(bool violent=false)
Simplify a tree of Node.
Definition Shape.hxx:487
SurfaceCard class is used to define geometrical math surface for MC output format.
Definition SurfaceCard.hxx:42
Base class to reference all Shape objects and some nucleus.
Definition TReference.hxx:38
the namespace of the Standard C++