26 #ifndef INTERSECTIONOFWALLS_H
27 #define INTERSECTIONOFWALLS_H
136 const Mdouble& Thickness,
int wallidentifier);
185 Vec3D& normal_return)
const;
196 void read(std::istream& is)
override;
201 void write(std::ostream& os)
const override;
206 std::string
getName()
const override;
227 std::vector<Vec3D>
A_;
242 std::vector<Vec3D>
C_;
const unsigned n
Definition: CG3DPackingUnitTest.cpp:32
#define MERCURYDPM_DEPRECATED
Definition: GeneralDefine.h:37
Definition: BaseParticle.h:54
Basic class for walls.
Definition: BaseWall.h:49
A IntersectionOfWalls is convex polygon defined as an intersection of InfiniteWall's.
Definition: IntersectionOfWalls.h:59
void read(std::istream &is) override
Move the IntersectionOfWalls to a new position, which is a Vec3D from the old position.
Definition: IntersectionOfWalls.cc:746
void clear()
Removes all parts of the walls.
Definition: IntersectionOfWalls.cc:102
void writeVTK(VTKContainer &vtk) const override
Definition: IntersectionOfWalls.cc:794
std::vector< Vec3D > AB_
A vector that stores the direction of the intersecting lines between two different InfiniteWall.
Definition: IntersectionOfWalls.h:234
void addObject(Vec3D normal, Vec3D point)
Adds a wall to the set of infinite walls, given a normal vector pointing into the wall (i....
Definition: IntersectionOfWalls.cc:138
std::vector< InfiniteWall > wallObjects_
The wall "segments"/directions that together make up the finite wall.
Definition: IntersectionOfWalls.h:219
std::vector< Vec3D > A_
A vector that stores a point for each intersecting line between two different InfiniteWall.
Definition: IntersectionOfWalls.h:227
void setPointsAndLines(unsigned int n)
Definition: IntersectionOfWalls.cc:351
void addTetraSTL(Vec3D PointA, Vec3D PointB, Vec3D PointC, Vec3D WallNormal, Mdouble Thickness, int wallidentifier)
constructs a tetrahedron for an STL file input
Definition: IntersectionOfWalls.cc:191
~IntersectionOfWalls() override
Destructor.
Definition: IntersectionOfWalls.cc:67
void createPrism(std::vector< Vec3D > points, Vec3D prismAxis)
Creates an open prism which is a polygon between the points and extends infinitely in the PrismAxis d...
Definition: IntersectionOfWalls.cc:482
void createOpenPrism(std::vector< Vec3D > points, Vec3D prismAxis)
Creates an open prism which is a polygon between the points, except the first and last point,...
Definition: IntersectionOfWalls.cc:467
unsigned int getNumberOfObjects()
Returns the number of objects.
Definition: IntersectionOfWalls.cc:125
IntersectionOfWalls * copy() const override
Wall copy method. It calls the copy constructor of this Wall, useful for polymorphism.
Definition: IntersectionOfWalls.cc:97
std::string getName() const override
Returns the name of the object, here the string "IntersectionOfWalls".
Definition: IntersectionOfWalls.cc:789
std::vector< Vec3D > C_
A vector that stores the intersection point of three different InfiniteWall.
Definition: IntersectionOfWalls.h:242
IntersectionOfWalls & operator=(const IntersectionOfWalls &other)
Definition: IntersectionOfWalls.cc:84
void addTetra(const Vec3D &PointA, const Vec3D &PointB, const Vec3D &PointC, Mdouble &Thickness)
constructs a tetrahedron from 3 input coordinates
Definition: IntersectionOfWalls.cc:260
void addPlate(const Vec3D &PointA, const Vec3D &PointB, const Vec3D &PointC, const Vec3D &WallNormal, const Mdouble &Thickness, int wallidentifier)
Definition: IntersectionOfWalls.cc:297
IntersectionOfWalls()
Default constructor.
Definition: IntersectionOfWalls.cc:33
void setHandler(WallHandler *wallHandler) override
A function which sets the WallHandler for this BaseWall.
Definition: IntersectionOfWalls.cc:111
bool getDistanceAndNormal(const BaseParticle &p, Mdouble &distance, Vec3D &normal_return) const override
Compute the distance from the wall for a given BaseParticle and return if there is a collision....
Definition: IntersectionOfWalls.cc:532
void setSpecies(const ParticleSpecies *species)
sets species of subwalls as well
Definition: IntersectionOfWalls.cc:72
void write(std::ostream &os) const override
Writes an IntersectionOfWalls to an output stream, for example a restart file.
Definition: IntersectionOfWalls.cc:776
void add3PointObject(Vec3D PointA, Vec3D PointB, Vec3D PointC)
Definition: IntersectionOfWalls.cc:159
Definition: ParticleSpecies.h:37
This class contains the 4 components of a quaternion and the standard operators and functions needed ...
Definition: Quaternion.h:63
Container to store all BaseWall.
Definition: WallHandler.h:44
Definition: IntersectionOfWalls.h:62
Vec3D normal
Definition: IntersectionOfWalls.h:63
Vec3D position
Definition: IntersectionOfWalls.h:64
Definition: BaseWall.h:38