19#ifndef _MathHEXAGON_HXX_
20#define _MathHEXAGON_HXX_
67 MathHexagon(
double HalfHeight = 0.005,
double Side = 0.01,
int Sign = - 1);
80 MathHexagon(
const char *Infinite,
double Side = 0.01,
int Sign = - 1);
97 return fSide * sqrt(3.);
152 void Translate(
double dx,
double dy,
double dz,
int count = 0)
override;
161 void Rotate(
double phi,
double theta = 0,
double psi = 0,
double *center =
nullptr,
int count = 0)
override;
172 string Print()
override;
182 MathHexagon(
double HalfHeight,
double Side,
int Sign,
bool Infinite);
#define sign(a)
Definition GenericReactorAssembly.cxx:43
Header file for Monte-Carlo Source abstract class.
bool IsHexagonInHexagon(double Xh1[2], Shape_ptr hexa1, Shape_ptr hexa2)
Definition MathHexagon.cxx:857
bool IsHexagonInTube(double Xh[2], Shape_ptr hexa, double Rmax, double Rmin=0, double *Xt=nullptr)
Definition MathHexagon.cxx:811
bool IsCylinderInHexagon(Shape_ptr cylinder, Shape_ptr hexagon)
Definition MathHexagon.cxx:951
Header file for MathNode class.
Regular hexagon Shape of a given height.
Definition MathHexagon.hxx:49
unsigned IsHexagon() override
Definition MathHexagon.hxx:91
vector< double > NormalVector2XRightPlane()
Definition MathHexagon.cxx:793
double GetOrigin(int i)
Definition MathHexagon.hxx:107
double fSide
length of Hexagon side.
Definition MathHexagon.hxx:186
double fHalfHeight
Half height of the Hexagon.
Definition MathHexagon.hxx:185
MathHexagon * CreateNewInstance(int sign=1) override
a new MathHexagon instance.
Definition MathHexagon.cxx:777
unsigned IsDisjoint(Shape_ptr OtherShape) override
+1 this is disjoint in OtherShape, 0 not included or don't know.
Definition MathHexagon.cxx:552
double GetVirtualSphereRadius() override
returns the radius of a Sphere containing the Shape
Definition MathHexagon.cxx:735
vector< double > fOrigin
Origin of the Hexagon.
Definition MathHexagon.hxx:187
void Rotate(double phi, double theta=0, double psi=0, double *center=nullptr, int count=0) override
Rotate the Shape clockwise.
Definition MathHexagon.cxx:276
bool IsSameAxis(MathHexagon *hexagon)
whether or not 2 hexagons have same z-axis and planes
Definition MathHexagon.cxx:709
vector< double > GetOrigin()
Definition MathHexagon.hxx:111
Shape_ptr Clone(int count=0) override
Clone a Shape.
Definition MathHexagon.cxx:569
double GetWidth()
Definition MathHexagon.hxx:95
void Copy(Shape_ptr S) override
Copy all attributs of a Shape S (but not attributs of the father classes).
Definition MathHexagon.cxx:691
double GetHalfHeight()
Definition MathHexagon.hxx:103
void SetSidePlanesOpen() override
The side planes are NOT mirrors.
Definition MathHexagon.cxx:765
double * GetVirtualSphereCenter() override
returns the center of a Sphere containing the Shape
Definition MathHexagon.cxx:785
void CalculNot() override
Allocates and calculs the complement of Shape.
Definition MathHexagon.cxx:285
Shape_ptr GetIncludedShape()
Returns the included shape of the hexagon, even if null.
Definition MathHexagon.cxx:750
void Translate(double dx, double dy, double dz, int count=0) override
Translate the Shape by (dx, dy, dz).
Definition MathHexagon.cxx:263
void SetPeriodicBoundary(bool state=true, string TopBottPlaneBC="mirror") override
Periodic boundary (WARNING: only for Brick and Hexagon).
Definition MathHexagon.cxx:255
string Print() override
Print the Node surface in MCNP cell.
Definition MathHexagon.cxx:627
unsigned IsIncluded(Shape_ptr OtherShape) override
+1 this is included in OtherShape, 0 not included or don't know.
Definition MathHexagon.cxx:345
Shape_ptr GetBoundingShape()
Returns the bounding shape of the hexagon, even if null.
Definition MathHexagon.cxx:743
void SetTopBottomPlanesOpen() override
The top/bottom planes are NOT mirrors.
Definition MathHexagon.cxx:757
double GetSide()
Definition MathHexagon.hxx:99
MathNode allows to construct Union or Intersection of Shape.
Definition MathNode.hxx:50
bool fHexagon
true if the Node is an Hexagon
Definition MathNode.hxx:230
the namespace of the Standard C++