35 CInterpolation(
bool bPeriodic,
bool bForceInPlaneTangent,
bool bForceMasterNodeTangent);
53 virtual void PopulateTiXmlElement(TiXmlElement &Element,
OUTPUT_TYPE OutputType)
const;
56 vector<CSlaveNode> GetSlaveNodes(
const vector<CNode> &MasterNodes,
int iNumPoints,
bool bEquiSpaced =
true)
const;
60 virtual void Initialise(
const vector<CNode> &MasterNodes)
const {};
70 virtual CSlaveNode GetNode(
const vector<CNode> &MasterNodes,
int iIndex,
double t)
const = 0;
79 CSlaveNode GetNode(
const vector<CNode> &MasterNodes,
double t)
const;
92 void CreateSlaveNodes(vector<CSlaveNode> &SlaveNodes,
const vector<CNode> &MasterNodes,
int iNumPoints)
const;
95 bool CreateEquiSpacedSlaveNodes(vector<CSlaveNode> &SlaveNodes,
const vector<CNode> &MasterNodes,
int iNumPoints)
const;
97 static void InterpolateUp(
const CNode &Node1,
const CNode &Node2,
CSlaveNode &SlaveNode,
double t);
98 static void InterpolateAngle(
const CNode &Node1,
const CNode &Node2,
CSlaveNode &SlaveNode,
double t);
102 void CalculateNodeCoordinateSystem(
const vector<CNode> &MasterNodes, vector<XYZ> &Tangents)
const;
105 vector<CSlaveNode> CalcSlaveNodePositions(
const vector<CNode> &MasterNodes, vector<double> &LValues, vector<double> &TValues,
double dL,
int iNumNodes,
int iNumPoints )
const;
Abstract base class for describing the yarn path interpolations.
virtual string GetType() const =0
Derived class should return the class name.
virtual void Initialise(const vector< CNode > &MasterNodes) const
virtual CInterpolation * Copy() const =0
This is a function to allow copying of derived classes correctly.
virtual CSlaveNode GetNode(const vector< CNode > &MasterNodes, int iIndex, double t) const =0
Get a node from parametric function. Initialise should be called first.
void SetPeriodic(bool bPeriodic)
void SetForceInPlaneTangent(bool bForceInPlaneTangent)
bool m_bForceInPlaneTangent
bool GetForceInPlaneTangent() const
bool m_bForceMasterNodeTangent
Represents a point on the centreline of a yarn.
Object container to help handle memory management issues.
A derivation of the CNode class which contains data specific to slave nodes such as sections.
Namespace containing a series of customised math operations not found in the standard c++ library.