47 vector<pair<int, int> > GetRepeatLimits(
const CYarn &Yarn)
const;
49 vector<XYZ> GetTranslations(
const CYarn &Yarn)
const;
75 virtual double GetVolume()
const;
77 virtual void Grow(
double dDistance) = 0;
91 static vector<pair<int, int> > ConvertLimitsToInt(
const vector<pair<double, double> > &RepeatLimits);
102 pair<double, double> GetLimits(
XYZ RepeatVector,
const CMesh &Mesh)
const;
109 bool MeshIntersectsDomain(
const CMesh &Mesh)
const;
Abstract base class representing the domain in which a textile cell may lie.
virtual bool PointInDomain(const XYZ &Point) const =0
Check if a point lies inside the domain.
virtual void ClipMeshToDomain(CMesh &Mesh, bool bFillGaps=true) const =0
Clip the surface elements to the domain.
virtual void Translate(XYZ Vector)=0
Translate the domain by given vector.
virtual string GetType() const =0
Derived class should return the class name.
virtual bool ClipMeshToDomain(CMesh &Mesh, vector< CMesh > &DomainMeshes, bool bFillGaps=true) const =0
Clip the surface elements to the domain.
virtual void Grow(double dDistance)=0
Make the domain larger (used mainly for rendering purposes)
const CMesh & GetMesh() const
Get the mesh representing the domain as a surface mesh.
virtual CDomain * Copy() const =0
virtual void Deform(CLinearTransformation Transformation)=0
Deform the domain by given linear transformation.
virtual void Rotate(WXYZ Rotation)=0
Rotate the domain by given rotation quaternion.
CMesh m_Mesh
A mesh representing the domain as a surface mesh.
Domain implementation described using extrusion of a polygon outline.
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 quaternion.
Struct for representing points in 3D space.