60 void ClipMeshToDomain(
CMesh &Mesh,
bool bFillGaps =
true)
const;
64 void ClipIntersectMeshToDomain(
CMesh &Mesh,
bool bFillGaps =
true)
const;
66 bool ClipMeshToDomain(
CMesh &Mesh, vector<CMesh> &DomainMeshes,
bool bFillGaps =
true)
const;
67 bool ClipIntersectMeshToDomain(
CMesh &Mesh, vector<CMesh> &DomainMeshes,
bool bFillGaps)
const;
68 string GetType()
const {
return "CDomainPrism"; }
70 const vector<XY> &
GetPoints()
const {
return m_Points; }
73 void Grow(
double dDistance) {};
85 void GeneratePlanes();
86 void GetMeshWithPolygonEnd(
CMesh &Mesh);
88 void GetPolygonLimits(
XYZ &StartPoint,
XYZ *SizeVecs);
113 bool GetPlane(
XYZ *points,
PLANE &plane);
115 void RemoveDuplicatePlanes();
121 static bool FillGaps(
CMesh &Mesh,
const PLANE &Plane, vector<int> &Polygon,
bool bMeshGaps =
true);
Abstract base class representing the domain in which a textile cell may lie.
Domain implementation described using extrusion of a polygon outline.
vector< pair< int, int > > GetRepeatLimits(const CYarn &Yarn) const
vector< PLANE > m_ElementPlanes
Planes corresponding to mesh elements.
vector< XYZ > GetTranslations(const CYarn &Yarn) const
Get the translation vectors necessary to fully fill the domain.
void Grow(double dDistance)
Move all the planes by given distance along their normal.
string GetType() const
Derived class should return the class name.
bool PointInDomain(const XYZ &Point) const
Check if a point lies within the domain.
const vector< XY > & GetPoints() const
void Rotate(WXYZ Rotation)
Rotate the domain by given rotation quaternion.
CYarn m_Yarn
Create the domain as yarn with constant polygon section and two nodes.
void Deform(CLinearTransformation Transformation)
Deform the domain by given linear transformation.
void Translate(XYZ Vector)
Translate the domain by given vector.
vector< XY > m_Points
Prism section points.
Defines the nodes and elements of a surface or volume mesh.
Represents a yarn consisting of master nodes, section and interpolation function.
Namespace containing a series of customised math operations not found in the standard c++ library.
Struct for representing a Plane.
Struct for representing a quaternion.
Struct for representing points in 3D space.