27 class CTextile3DWeave;
28 class CTextileLayered;
29 class CTextileOrthogonal;
30 class CTextileLayerToLayer;
31 class CTextileDecoupledLToL;
32 class CTextileAngleInterlock;
33 class CTextileWeave2D;
42 CTextile(
const vector<CYarn> &Yarns);
51 virtual string GetType()
const {
return "CTextile"; }
56 virtual void PopulateTiXmlElement(TiXmlElement &Element,
OUTPUT_TYPE OutputType);
59 int AddYarn(
const CYarn &Yarn);
66 bool DeleteYarn(
int iIndex);
72 void AddNodesToMesh(
CMesh &Mesh);
75 void AddPathToMesh(
CMesh &Mesh);
82 void AddSurfaceToMesh(
CMesh &Mesh,
bool bTrimToDomain =
false);
91 bool AddSurfaceToMesh(
CMesh &Mesh, vector<CMesh> &DomainMeshes,
bool bTrimToDomain =
false);
98 void AddVolumeToMesh(vector<CMesh> &YarnMeshes,
bool bTrimToDomain =
false);
106 void AddVolumeToMesh(
CMesh &Mesh,
bool bTrimToDomain =
false);
113 void AddCentrePlaneToMesh(
CMesh &Mesh,
bool bTrimToDomain =
false);
128 void GetPointInformation(
const vector<XYZ> &Points, vector<POINT_INFO> &PointsInfo,
double dTolerance = 1e-9);
134 void GetPointInformation(
const vector<XYZ> &Points, vector<POINT_INFO> &PointsInfo,
int iYarn,
double dTolerance = 1e-9,
bool bSurface =
false);
140 void SavePointInformationToVTK(
string Filename,
const CMesh &Mesh,
double dTolerance = 1e-9);
147 double GetApproximateSize();
150 int DetectInterference(vector<float> &DistanceToSurface, vector<int> &YarnIndex,
bool bTrimToDomain,
CMesh *pInterferingPoints =
NULL );
153 void Rotate(
WXYZ Rotation,
XYZ Origin =
XYZ(0,0,0));
156 void Translate(
XYZ Vector);
165 string GetName()
const;
168 void AssignDomain(
const CDomain &Domain);
174 bool SetResolution(
int Resolution);
184 double GetYarnLength(
string Units =
"m");
192 double GetYarnLengthPerUnitArea(
string Units =
"/m");
200 double GetYarnVolume(
string Units =
"m^3");
210 double GetYarnVolumePerUnitArea(
string Units =
"m");
217 double GetFibreVolume(
string Units =
"m^3");
225 double GetFibreVolumePerUnitArea(
string Units =
"m");
232 double GetFibreYarnVolumeFraction();
239 double GetQuickDomainVolumeFraction();
242 double GetDomainVolumeFraction();
245 void SetAllYarnsYoungsModulusX(
double dValue,
string Units =
"MPa");
246 void SetAllYarnsYoungsModulusY(
double dValue,
string Units =
"MPa");
247 void SetAllYarnsYoungsModulusZ(
double dValue,
string Units =
"MPa");
249 void SetAllYarnsShearModulusXY(
double dValue,
string Units =
"MPa");
250 void SetAllYarnsShearModulusXZ(
double dValue,
string Units =
"MPa");
251 void SetAllYarnsShearModulusYZ(
double dValue,
string Units =
"MPa");
253 void SetAllYarnsAlphaX(
double dValue,
string Units =
"/K");
254 void SetAllYarnsAlphaY(
double dValue,
string Units =
"/K");
255 void SetAllYarnsAlphaZ(
double dValue,
string Units =
"/K");
257 void SetAllYarnsPoissonsRatioX(
double dValue);
258 void SetAllYarnsPoissonsRatioY(
double dValue);
259 void SetAllYarnsPoissonsRatioZ(
double dValue);
263 bool ConvertToInterpNodes()
const;
282 int GetNumYarns()
const;
283 const CYarn *GetYarn(
int iIndex)
const;
284 CYarn *GetYarn(
int iIndex);
285 const vector<CYarn> &GetYarns()
const;
286 vector<CYarn> &GetYarns();
298 bool BuildTextileIfNeeded()
const;
313 int AddYarn(
const CYarn &Yarn)
const;
Abstract base class representing the domain in which a textile cell may lie.
Defines the nodes and elements of a surface or volume mesh.
Object container to help handle memory management issues.
Class to store properties related to a textile.
Represents a 3D woven textile.
Represents a 3D angle interlock woven textile.
Represents a textile cell containing yarns.
virtual bool BuildTextile() const
Build the textile even if it is already built (virtual function which does nothing by default)
const CDomain * GetDomain() const
vector< CYarn > m_Yarns
Vector of yarns contained within this cell.
virtual string GetType() const
Derived class should return the class name.
virtual string GetDefaultName() const
Get the default name to assign to a textile.
bool m_bNeedsBuilding
Variable which keeps track of wether the textile needs building or not.
CObjectContainer< CDomain > m_pDomain
virtual CTextile * Copy() const
Represents a textile made up from several layers of weaves.
Represents a 3D orthogonal woven textile.
Respresents a 2d woven textile.
Represents a woven textile.
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.