47 double dXHeight,
double dYHeight,
bool bRefine =
false,
bool bWeavePattern =
false );
52 virtual string GetType()
const {
return "CTextileOrthogonal"; }
53 virtual void PopulateTiXmlElement(TiXmlElement &Element,
OUTPUT_TYPE OutputType);
59 void SwapBinderPosition(
int x,
int y );
70 virtual void SetupLayers(
int iNumWarpLayers,
int iNumWeftLayers,
int iNumBinderLayers = 1 );
75 virtual bool BuildTextile()
const;
76 void ShapeWeftYarns()
const;
78 virtual void ConvertToPatternDraft(
int iWeftOrder =
BOTTOM_TO_TOP );
80 virtual void SetupWeftRow( vector<int>& Layers, vector<int>& Row,
int NumWarps,
int Weft );
81 void ConsolidateCells();
85 void CheckBinderWidths()
const;
87 void ShapeBinderYarns()
const;
89 int AddBinderNodes(
int CurrentNode,
int i,
int j )
const;
91 void AdjustBinderYarns()
const;
93 void AdjustBinderYarnSection(
int i,
int j )
const;
94 void AdjustBinderYarnSection(
int i,
int j,
int BinderYarnIndex,
int WeftYarnIndex,
int OppositeWeftYarnIndex,
bool IsTop )
const;
96 bool AdjustMidLayerHeights()
const;
98 void AdjustOuterWeftYarns()
const;
100 void ChangeWeftSection(
CSection& TopHalf,
CSection&BottomHalf,
int YarnIndex,
int Node,
double Offset)
const;
101 void AdjustWeftToFitBinderHeight(
int i,
int j,
CSectionPowerEllipse& PowerEllipseSection,
double& MaxWidth,
double& TargetArea,
double& MaxVolumeFraction,
double& FibreArea )
const;
102 bool AdjustWeftHeight(
CSectionPowerEllipse& PowerEllipseSection,
double& MaxWidth,
double& TargetArea,
double& MaxVolumeFraction,
double& FibreArea,
double TargetHeight )
const;
103 void AdjustBinderPosition(
int iCellIndex,
int i,
int j,
double dHeight,
bool bIsTop )
const;
104 void ChangeBinderSection(
CSection& TopHalf,
CSection&BottomHalf,
int YarnIndex,
int Node,
double Offset)
const;
106 void OffsetYarn(
int i,
int j,
int k,
double dHeight,
int YarnType )
const;
113 void ReplaceYarnSection(
int YarnIndex,
int Node,
CSection& Section )
const;
115 void ReplaceThroughBinderSection(
int BinderYarnIndex,
int Node,
CSection& Section, map<pair<int, int>,
YARNDATA>::iterator& itBinderData )
const;
117 void ChangePowerEllipseSection(
double& TargetArea,
CSectionPowerEllipse* YarnSection,
double FibreArea )
const;
119 int FindNextBinderIndex(
int StartIndex )
const;
122 int FindBinderHeight(
const vector<PATTERN3D>& Cell )
const;
125 void MoveBinderYarnPosition( vector<PATTERN3D> &Cell );
128 XY GetSectionPoint(
CSection* YarnSection,
double t )
const;
131 void CorrectCrimpInterference(
int i,
int j,
int WeftYarnIndex,
bool IsTop)
const;
133 double GetHybridSectionWidth(
int WarpIndex,
int WeftIndex )
const;
135 int GetWeavePatternYarnIndex(
int x,
int y,
int z)
const;
145 int AddWeftNodes(
int CurrentNode,
int i,
int j,
int WeftIndex)
const;
147 vector<int> &GetYarnCell(
int x,
int y);
148 const vector<int> &GetYarnCell(
int x,
int y)
const;
149 void RemoveYarnCell(
int x,
int y);
152 int GetWeftYarnIndex(
const vector<int> &YarnCell,
int n)
const;
154 int FindWeftYarnHeight(
const vector<PATTERN3D>& YarnCell,
int WeftIndex)
const;
159 int FindWeftYarnIndex(
int WeftIndex)
const;
161 bool BuildWeavePatternTextile()
const;
Abstract base class respresenting a yarn cross-section.
Hybrid of any number of other sections.
Represents a 3D woven textile.
Represents a textile cell containing yarns.
Represents a 3D orthogonal woven textile.
virtual string GetType() const
Derived class should return the class name.
virtual CTextile * Copy() const
vector< vector< int > > m_WeftYarns
bool m_bWeavePattern
Indicates whether textile is loaded from weave pattern.
map< pair< int, int >, YARNDATA > m_BinderData
Namespace containing a series of customised math operations not found in the standard c++ library.
Struct for representing points in 2D space.
Data structure to keep track of yarn parameters.