TexGen
Classes | Typedefs | Enumerations | Functions | Variables
TexGen Namespace Reference

Namespace containing a series of customised math operations not found in the standard c++ library. More...

Classes

class  CAdjustMeshInterference
 Class used to adjust small interferences in the fibre volume mesh. More...
 
class  CBasicVolumes
 Class for meshing fabric unit cells. More...
 
class  CBendingPeriodicBoundaries
 Class used to generate Abaqus input file for periodic boundary conditions for a unit cell in tension and bending. More...
 
class  CDomain
 Abstract base class representing the domain in which a textile cell may lie. More...
 
class  CDomainPlanes
 Domain implementation described using planes, the simplest of which would be a box. More...
 
class  CDomainPrism
 Domain implementation described using extrusion of a polygon outline. More...
 
class  CElement
 Base class for representing finite elements. More...
 
class  CElementsOctree
 Class to assist in storing mesh elements in an octree. More...
 
class  CElementTri
 Base class for representing triangular elements. More...
 
class  CElementTriBending
 Triangular element which represents yarn bending. More...
 
class  CElementTriTension
 Triangular element which represents fibre tension. More...
 
class  CExporter
 Class to re-create geometry in OpenCASCADE and in turn export to IGES or STEP. More...
 
class  CFibreDistribution
 Abstract base class that defines how the fibres are distributed within a yarn. More...
 
class  CFibreDistribution1DQuad
 Fibre volume fraction is defined as a quadratic equation varying only along the X axis. More...
 
class  CFibreDistributionConst
 Fibre volume fraction is constant throughout the yarn. More...
 
class  CGeometrySolver
 Class for creating realistic fabric geometry using FE. More...
 
class  CInterpolation
 Abstract base class for describing the yarn path interpolations. More...
 
class  CInterpolationAdjusted
 Bezier interpolation for yarn paths. More...
 
class  CInterpolationBezier
 Bezier interpolation for yarn paths. More...
 
class  CInterpolationCubic
 Cubic spline interpolation for yarn paths. More...
 
class  CInterpolationLinear
 Bezier interpolation for yarn paths. More...
 
class  CLinearTransformation
 Represents a linear transformation as a 3x3 matrix. More...
 
class  CLogger
 Abstract base class to act as an interface between texgen and the logger. More...
 
class  CLoggerNull
 Logger used to send all log and error messages into a black hole. More...
 
class  CLoggerScreen
 Logger used to print all log and error messages to the screen. More...
 
class  CLogIndent
 Class to handle log indenting. More...
 
class  CMaterial
 Abstract base class to represent a material definition. More...
 
class  CMatrix
 Class to represent a matrix and perform various operations on it. More...
 
class  CMesh
 Defines the nodes and elements of a surface or volume mesh. More...
 
class  CMeshData
 
class  CMeshDataBase
 
class  CMeshDomainPlane
 
class  CMesher
 Class for meshing fabric unit cells. More...
 
class  CMesherBase
 
class  CMeshIntersectionData
 Class which holds the information related to each intersection point, used for adjusting the mesh. More...
 
class  CNode
 Represents a point on the centreline of a yarn. More...
 
class  CObjectContainer
 Object container to help handle memory management issues. More...
 
class  COctreeAgentElement
 Octree agent used to add elements to an octree. More...
 
class  COctreeAgentNode
 Octree agent used to add indexed nodes to an octree. More...
 
class  COctreeVisitorElementNearLine
 Octree visitor used to get a list of elements near given line. More...
 
class  COctreeVisitorMergeNodes
 Octree visitor used to merge nodes together within a given tolerance. More...
 
class  COctreeVoxelMesh
 Class used to generate octree-refine voxel mesh for output to ABAQUS. More...
 
struct  COLOR
 
class  CPatternDraft
 
class  CPeriodicBoundaries
 Class used to generate Abaqus output for periodic boundary conditions. More...
 
class  CPrismVoxelMesh
 Class used to generate voxel mesh of prism domain for output to ABAQUS. More...
 
class  CProperties
 Class to store properties related to a textile and/or yarn. More...
 
class  CPropertiesTextile
 Class to store properties related to a textile. More...
 
class  CPropertiesYarn
 Class to store properties related to a textile. More...
 
class  CProperty
 
class  CRectangularVoxelMesh
 Class used to generate voxel mesh for output to ABAQUS. More...
 
class  CReedData
 
class  CRotatedPeriodicBoundaries
 Class used to generate Abaqus input file for periodic boundary conditions for a textile with rotated domain. More...
 
class  CRotatedVoxelMesh
 Class used to generate voxel mesh of rotated domain for output to ABAQUS. More...
 
class  CSection
 Abstract base class respresenting a yarn cross-section. More...
 
class  CSectionBezier
 Section made up of bezier curves. More...
 
class  CSectionEllipse
 Elliptical Section. More...
 
class  CSectionHybrid
 Hybrid of any number of other sections. More...
 
class  CSectionLenticular
 Lenticular Section. More...
 
class  CSectionMesh
 Abstract base class to create a 2D mesh of a section. More...
 
class  CSectionMeshRectangleSection
 Create a rectangular mesh, the number of layers can be specified or set as -1 for automatic determination. More...
 
class  CSectionMeshRectangular
 Create a rectangular mesh, the number of layers can be specified or set as -1 for automatic determination. More...
 
class  CSectionMeshTriangulate
 Creates a mesh of a section using open source package triangle http://www.cs.cmu.edu/~quake/triangle.html. More...
 
class  CSectionPolygon
 Creates a polygonal section, where a list of points are given to form the closed polygon. More...
 
class  CSectionPowerEllipse
 Power ellipse section. More...
 
class  CSectionRectangle
 Rectangle section. More...
 
class  CSectionRotated
 Section which represents a rotation of another section angle given in radians. More...
 
class  CSectionScaled
 Section which represents a scaled version of another section. More...
 
class  CShearedPeriodicBoundaries
 Class used to generate Abaqus input file for periodic boundary conditions for a textile with sheared domain. Note that equations are only valid for xy shear. More...
 
class  CShearedTextileWeave2D
 Respresents a 2d woven textile with shear applied. More...
 
class  CShearedVoxelMesh
 Class used to generate voxel mesh for output to ABAQUS. More...
 
class  CShellElementExport
 Class for exporting surface mesh to ABAQUS. More...
 
class  CSimulation
 Represents a textile cell containing yarns. More...
 
class  CSimulationAbaqus
 Class used to generate an abaqus input deck for textile mechanics simulations. More...
 
class  CSingleton
 Template used as a base class for creating singletons. More...
 
class  CSlaveNode
 A derivation of the CNode class which contains data specific to slave nodes such as sections. More...
 
class  CStaggeredPeriodicBoundaries
 Class used to generate Abaqus input file for periodic boundary conditions for a textile with staggered offset. Gives reduced unit cell size. More...
 
class  CStaggeredVoxelMesh
 Class used to generate voxel mesh for output to ABAQUS where a reduced unit cell is obtained by use of a staggered offset repeat. More...
 
class  CSurfaceMesh
 Class which generates a surface mesh with triangulated domain boundaries. More...
 
class  CTetgenMesh
 Class which tetrahedralizes a textile using Tetgen software. More...
 
class  CTexGen
 Singleton class holding the Textiles in a database. More...
 
class  CTexGenRenderer
 Used for rendering stuff using VTK http://www.vtk.org/. More...
 
class  CTextile
 Represents a textile cell containing yarns. More...
 
class  CTextile3DWeave
 Represents a 3D woven textile. More...
 
class  CTextileAngleInterlock
 Represents a 3D angle interlock woven textile. More...
 
class  CTextileDecoupledLToL
 
class  CTextileDeformer
 A virtual base class which can be used to deform textiles. More...
 
class  CTextileDeformerVolumeMesh
 Deform the geometry of a textile given a volume mesh. More...
 
class  CTextileLayered
 Represents a textile made up from several layers of weaves. More...
 
class  CTextileLayerToLayer
 
class  CTextileMaterials
 
class  CTextileOffsetAngleInterlock
 Represents a 3D angle interlock woven textile. More...
 
class  CTextileOrthogonal
 Represents a 3D orthogonal woven textile. More...
 
class  CTextileWeave
 Represents a woven textile. More...
 
class  CTextileWeave2D
 Respresents a 2d woven textile. More...
 
class  CTextileWeave3D
 Respresents a 3d woven textile. More...
 
class  CTimer
 Class used to meaure the amount of time it takes to perform a certain task. More...
 
class  CUMAT
 Represents a UMAT material definition. More...
 
class  CVoxelMesh
 Class used to generate voxel mesh for output to ABAQUS. More...
 
class  CWeakPointer
 Weak pointer that acts as normal pointer except when copied. More...
 
class  CYarn
 Represents a yarn consisting of master nodes, section and interpolation function. More...
 
class  CYarnSection
 Abstract base class used to define the sections along the length of a yarn. More...
 
class  CYarnSectionAdjusted
 Bezier interpolation for yarn paths. More...
 
class  CYarnSectionConstant
 Creates a section which is constant all along the yarn. More...
 
class  CYarnSectionInterp
 Abstract base class to handle interpolation for derived classes. More...
 
class  CYarnSectionInterpNode
 Creates a section which is linearly interpolated between sections defined at the nodes. More...
 
class  CYarnSectionInterpPosition
 Interpolate sections between arbritrary positions along the length of the yarn. More...
 
struct  ELEMENT_INDICES
 
struct  LessPairDoubleInt
 Used to sort double-int pairs. More...
 
struct  LessPairDoubleObjectRef
 Used to sort double-objectref pairs. More...
 
struct  LessPairDoubleXYZ
 Used to sort double-XYZ pairs. More...
 
struct  MESH_ELEMENT
 Elements of a given, is used in conjunction with COctreeAgentElement. More...
 
struct  MESHER_ELEMENT_DATA
 
struct  PLANE
 Struct for representing a Plane. More...
 
struct  PLANEPARAMS
 Structure which contains information for transformation from 3D to 2D plane. More...
 
struct  POINT_INFO
 Structure used to retreive information about a particular point in space. More...
 
struct  PROP_IMAGE_INFO
 
struct  PROP_INFO
 
struct  PROP_NODE_INFO
 
struct  PROP_YARN_INFO
 
struct  WXYZ
 Struct for representing a quaternion. More...
 
struct  XY
 Struct for representing points in 2D space. More...
 
struct  XYZ
 Struct for representing points in 3D space. More...
 
struct  YARN_POSITION_INFORMATION
 Structure used to represent the position along the length of a yarn. More...
 
struct  YARNDATA
 Data structure to keep track of yarn parameters. More...
 

Typedefs

typedef int PATTERN3D
 
typedef bool PATTERN2D
 

Enumerations

enum  FACE {
  FACE_A , FACE_B , FACE_C , FACE_D ,
  FACE_E , FACE_F
}
 
enum  OUTPUT_TYPE { OUTPUT_MINIMAL , OUTPUT_STANDARD , OUTPUT_FULL }
 
enum  EXPORT_TYPE { INP_EXPORT , VTU_EXPORT , SCIRUN_EXPORT }
 
enum  DOMAIN_TYPE { BOX_DOMAIN , SHEARED_DOMAIN , ROTATED_DOMAIN , PRISM_DOMAIN }
 
enum  PERIODIC_BOUNDARY_CONDITIONS {
  MATERIAL_CONTINUUM , SINGLE_LAYER_RVE , STAGGERED_BC , SHEARED_BC ,
  ROTATED_BC , BENDING_BC , NO_BOUNDARY_CONDITIONS
}
 
enum  { PATTERN3D_YYARN , PATTERN3D_XYARN , PATTERN3D_NOYARN }
 
enum  { WARP , BINDER , WEFT }
 
enum  { BOTTOM_TO_TOP , TOP_TO_BOTTOM , ALTERNATE_WEFT_STACK }
 
enum  { PATTERN_XYARN = 1 , PATTERN_YYARN = 0 }
 

Functions

CLoggerGetLogger ()
 
ostream & operator<< (ostream &output, CMatrix &Matrix)
 
CMatrix ConvertRotation (WXYZ Q)
 
XYZ operator* (const CMatrix &Transform, const XYZ &Vector)
 
COLOR GetIndexedColor (int iIndex)
 
void CopyToRange (vector< XYZ > &Offsets, XYZ Vector, int iLowerLimit, int iUpperLimit)
 
double ConvertUnits (double dValue, std::string SourceUnits, std::string TargetUnits)
 
bool CompatibleUnits (std::string SourceUnits, std::string TargetUnits, std::string *pErrorMessage)
 
std::string ReduceUnits (std::string Units)
 
void AddNewUnits (std::string NewUnit, std::string BaseUnits)
 
std::string StripPath (std::string Filename)
 Strip the path from the filename (e.g. "c:\folder\file.ext -> file.ext") More...
 
void AddExtensionIfMissing (std::string &Filename, std::string Extension)
 Adds an extension to the filename if it is missing otherwise do nothing (e.g. picture -> picture.png) More...
 
std::string RemoveExtension (std::string &Filename, std::string Extension)
 Strip the extension from the filename. More...
 
std::string ReplaceFilenameSpaces (std::string Filename)
 Replaces spaces in filename with underscore. More...
 
void WriteOrientationsHeader (std::ostream &Output)
 Write orientations header for ABAQUS .ori files. More...
 
void WriteElementsHeader (std::ostream &Output)
 Write elements header for ABAQUS .eld files. More...
 
template<typename T >
std::string stringify (const T &x, int iPrecision=12, bool bScientific=true)
 Function to convert a value (e.g. int, double, etc...) to a string. More...
 
template<typename T >
valueify (const std::string &x)
 Function to convert a string to a value (e.g. int, double, etc...) More...
 
template<typename T >
valueify (const char *x)
 Function to convert a string to a value (e.g. int, double, etc...) More...
 
template<typename T >
GetInterpedValue (const std::vector< std::pair< double, T > > &InterpValues, double fraction)
 Get an interpolated value. More...
 
template<typename T >
std::pair< double, std::pair< T, T > > GetClosestValues (const std::vector< std::pair< double, T > > &InterpValues, double fraction)
 Get the two closest values to fraction in the vector InterpValues. More...
 
void GetMinMaxXY (const std::vector< XY > &Points, XY &Min, XY &Max)
 
template<typename T >
void WriteValues (std::ostream &Output, T &Values, int iMaxPerLine)
 
XY Convert (const XYZ &Val)
 
bool operator== (const XYZ &left, const XYZ &right)
 
bool operator== (const XYZ &left, const double &value)
 
bool operator== (const XYZ &left, const int &value)
 
WXYZ operator+ (const WXYZ &left, const WXYZ &right)
 
XYZ operator+ (const XYZ &left, const XYZ &right)
 
XY operator+ (const XY &left, const XY &right)
 
WXYZoperator+= (WXYZ &left, const WXYZ &right)
 
XYZoperator+= (XYZ &left, const XYZ &right)
 
XYoperator+= (XY &left, const XY &right)
 
WXYZ operator- (const WXYZ &left, const WXYZ &right)
 
XYZ operator- (const XYZ &left, const XYZ &right)
 
XY operator- (const XY &left, const XY &right)
 
WXYZoperator-= (WXYZ &left, const WXYZ &right)
 
XYZoperator-= (XYZ &left, const XYZ &right)
 
XYoperator-= (XY &left, const XY &right)
 
WXYZ operator* (const WXYZ &left, const WXYZ &right)
 Grassmann product multiplication between two quaternions. More...
 
XYZ operator* (const XYZ &left, const XYZ &right)
 
XY operator* (const XY &left, const XY &right)
 
XYZ operator/ (const XYZ &left, const XYZ &right)
 Do a simple divide of all members, perhaps not mathematically correct but usefull. More...
 
WXYZoperator*= (WXYZ &left, const WXYZ &right)
 Grassmann product multiplication between two quaternions. More...
 
XYZoperator*= (XYZ &left, const XYZ &right)
 
XYoperator*= (XY &left, const XY &right)
 
XYZ operator* (const XYZ &left, const double &right)
 
XYZ operator* (const XYZ &left, const float &right)
 
XYZ operator* (const XYZ &left, const int &right)
 
XY operator* (const XY &left, const double &right)
 
XYZ operator* (const double &left, const XYZ &right)
 
XYZ operator* (const float &left, const XYZ &right)
 
XYZ operator* (const int &left, const XYZ &right)
 
XY operator* (const double &left, const XY &right)
 
XYZ operator/ (const XYZ &left, const double &right)
 
XY operator/ (const XY &left, const double &right)
 
WXYZoperator/= (WXYZ &left, const double &right)
 
XYZoperator/= (XYZ &left, const double &right)
 
XYoperator/= (XY &left, const double &right)
 
XYZoperator*= (XYZ &left, const double &right)
 
XYoperator*= (XY &left, const double &right)
 
XYZ operator/ (const XYZ &left, const int &right)
 
std::ostream & operator<< (std::ostream &output, const WXYZ &Quat)
 
std::ostream & operator<< (std::ostream &output, const XYZ &Vector)
 
std::ostream & operator<< (std::ostream &output, const XY &Vector)
 
std::istream & operator>> (std::istream &input, WXYZ &Quat)
 
std::istream & operator>> (std::istream &input, XYZ &Vector)
 
std::istream & operator>> (std::istream &input, XY &Vector)
 
double DotProduct (const XYZ &left, const XYZ &right)
 Get the dot product of two vectors. More...
 
double DotProduct (const XY &left, const XY &right)
 Get the dot product of two vectors. More...
 
XYZ CrossProduct (const XYZ &left, const XYZ &right)
 Get the cross product of two vectors. More...
 
double RandomNumber (double dMin, double dMax)
 Generate a random number between the limits given. More...
 
double GetLength (const XYZ &Point1, const XYZ &Point2)
 Get the length between two points. More...
 
double GetLengthSquared (const XYZ &Point1, const XYZ &Point2)
 Get the length squared between two points. More...
 
double GetLength (const XY &Point1, const XY &Point2)
 Get the length between two points. More...
 
double GetLengthSquared (const XY &Point1, const XY &Point2)
 Get the length squared between two points. More...
 
double GetLength (const WXYZ &Quaternion)
 Get the length of a quaternion. More...
 
double GetLength (const XYZ &Vector)
 Get the length of a vector. More...
 
double GetLength (const XY &Vector)
 Get the length of a vector. More...
 
double GetLengthSquared (const XYZ &Point)
 Get the length squared of a vector. More...
 
double GetLengthSquared (const XY &Point)
 Get the length squared of a vector. More...
 
WXYZNormalise (WXYZ &Quaternion)
 Normalise the quaternion and return it. More...
 
XYZNormalise (XYZ &Vector)
 Normalise the vector and return it. More...
 
XYNormalise (XY &Vector)
 Normalise the vector and return it. More...
 
double Max (XYZ &Vector)
 Get maximum element of vector and return it. More...
 
XYZ operator* (const WXYZ &left, const XYZ &right)
 Rotate a vector by given Quaternion. More...
 
bool SphereSphereIntersect (const XYZ &p1, const XYZ &p2, double dRadii)
 Check if two spheres intersect given their center points and combined radii. More...
 
XYZ ShortestDistPointLine (const XYZ &Point, const XYZ &LineStart, const XYZ &LineEnd, double &dU)
 
bool SphereCylinderIntersect (const XYZ &Point, const XYZ &LineStart, const XYZ &LineEnd, double dRadii, double *pdUReturn=NULL)
 
bool LineLineIntersect2D (const XY &p1, const XY &p2, const XY &p3, const XY &p4, double &dU1, double &dU2)
 
bool ShortestDistLineLine (const XYZ &p1, const XYZ &p2, const XYZ &p3, const XYZ &p4, double &dU1, double &dU2, XYZ &pa, XYZ &pb)
 
bool RoundedCylinderIntersect (const XYZ &p1, const XYZ &p2, const XYZ &p3, const XYZ &p4, double dRadii, double *pdU1=NULL, double *pdU2=NULL)
 
bool BoundingBoxIntersect (const XYZ &BBox1Min, const XYZ &BBox1Max, const XYZ &BBox2Min, const XYZ &BBox2Max, double dTolerance=0)
 Find if two AABBs intersect with given tolerance. More...
 
bool PointInsideBox (const XYZ &Point, const XYZ &BoxMin, const XYZ &BoxMax, double dTolerance=0)
 Find if a point is inside an Axis Aligned Bounding Box with given tolerance. More...
 
void GetLocalCoordinateSystem (XYZ &LocalX, XYZ &LocalY, XYZ &LocalZ, const XYZ &Point1, const XYZ &Point2)
 
bool GetIntersectionLinePlane (const XYZ &p1, const XYZ &p2, const XYZ &p3, const XYZ &N, XYZ &Intersection, double *pdU=NULL)
 P1 and P2 are two points on the line, P3 is a point on the plane, N is the plane normal, Intersection is the returned intersection. More...
 
void GetRandomColor (double &r, double &g, double &b)
 Create a random color from a set of pre-defined colors. More...
 
void GetFractionColor (double dFraction, double &r, double &g, double &b)
 
bool GetCircleCenter (const XYZ &A, const XYZ &B, const XYZ &C, XYZ &Center)
 
XYZ Max (const XYZ &P1, const XYZ &P2)
 Given two points, return a new point who's coordinates are the greater of the two. More...
 
XYZ Min (const XYZ &P1, const XYZ &P2)
 Given two points, return a new point who's coordinates are the smaller of the two. More...
 
XY Max (const XY &P1, const XY &P2)
 Given two points, return a new point who's coordinates are the greater of the two. More...
 
XY Min (const XY &P1, const XY &P2)
 Given two points, return a new point who's coordinates are the smaller of the two. More...
 
int Round (double dValue)
 
template<typename T >
CalculateBezierPoint (T p1, T p2, T p3, T p4, double mu)
 
template<typename T >
CalculateBezierTangent (T p1, T p2, T p3, T p4, double mu)
 
double RandomNormalDistribution (double dStandrdDeviation=1, double dAverage=0)
 
double GetArea (XYZ Points[], int iNumPoints)
 
bool PointInsideTriangle (const XYZ &P1, const XYZ &P2, const XYZ &P3, const XYZ &P)
 P1, P2, P3 are the three triangle corners, P is the points to be tested. More...
 
bool PointInsideTriangle (const XYZ &P1, const XYZ &P2, const XYZ &P3, const XYZ &P, const XYZ &N)
 P1, P2, P3 are the three triangle corners, P is the points to be tested, N is the normal to the triangle. More...
 
double PointInsideTriangleAccuracy (const XYZ &P1, const XYZ &P2, const XYZ &P3, const XYZ &P, const XYZ &N)
 P1, P2, P3 are the three triangle corners, P is the points to be tested, N is the normal to the triangle. More...
 
bool PointInsideTriangle2D (const XYZ &P1, const XYZ &P2, const XYZ &P3, const XYZ &P, const XYZ *pNormal=NULL)
 P1, P2, P3 are the three triangle corners, P is the points to be tested, ignoring the z component. More...
 
double ShortestDistPointTriangle (const XYZ &P1, const XYZ &P2, const XYZ &P3, const XYZ &P, XYZ *pTrianglePoint=NULL, XYZ *pNormal=NULL)
 P1, P2, P3 are the three triangle corners, P is the points to be tested. More...
 
XYZ GetBarycentricCoordinates (const XY &P1, const XY &P2, const XY &P3, const XY &P)
 Get the barycentric coordinates of a point lying on a triangle. More...
 
int GetClosestPointIndex (const std::vector< XY > &Points, const XY Position)
 
int GetClosestPointWithinTol (const std::vector< XY > &Points, const XY Position, double dTol)
 
XY GetClosestPoint (const std::vector< XY > &Points, const XY Position)
 
int GetClosestPointIndex (const std::vector< XYZ > &Points, const XYZ Position)
 
int GetClosestPointWithinTol (const std::vector< XYZ > &Points, const XYZ Position, double dTol)
 
XYZ GetClosestPoint (const std::vector< XYZ > &Points, const XYZ Position)
 
bool PointInside (const XY &Point, const std::vector< XY > &Nodes)
 
bool PointInside (const XY &Point, std::vector< XYZ > &Nodes)
 
std::ostream & operator<< (std::ostream &os, CTimer &t)
 
bool operator< (const PROP_YARN_INFO &left, const PROP_YARN_INFO &right)
 Used for sorting algorithms. More...
 
bool operator< (const PROP_NODE_INFO &left, const PROP_NODE_INFO &right)
 Used for sorting algorithms. More...
 

Variables

static double ReedThickness [NUM_REED_SIZES]
 

Detailed Description

Namespace containing a series of customised math operations not found in the standard c++ library.

Typedef Documentation

◆ PATTERN2D

typedef bool TexGen::PATTERN2D

Definition at line 37 of file TextileWeave.h.

◆ PATTERN3D

typedef int TexGen::PATTERN3D

Definition at line 54 of file Textile3DWeave.h.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
PATTERN3D_YYARN 
PATTERN3D_XYARN 
PATTERN3D_NOYARN 

Definition at line 33 of file Textile3DWeave.h.

◆ anonymous enum

anonymous enum
Enumerator
WARP 
BINDER 
WEFT 

Definition at line 40 of file Textile3DWeave.h.

◆ anonymous enum

anonymous enum
Enumerator
BOTTOM_TO_TOP 
TOP_TO_BOTTOM 
ALTERNATE_WEFT_STACK 

Definition at line 47 of file Textile3DWeave.h.

◆ anonymous enum

anonymous enum
Enumerator
PATTERN_XYARN 
PATTERN_YYARN 

Definition at line 31 of file TextileWeave.h.

◆ DOMAIN_TYPE

Enumerator
BOX_DOMAIN 
SHEARED_DOMAIN 
ROTATED_DOMAIN 
PRISM_DOMAIN 

Definition at line 118 of file Misc.h.

◆ EXPORT_TYPE

Enumerator
INP_EXPORT 
VTU_EXPORT 
SCIRUN_EXPORT 

Definition at line 111 of file Misc.h.

◆ FACE

Enumerator
FACE_A 
FACE_B 
FACE_C 
FACE_D 
FACE_E 
FACE_F 

Definition at line 37 of file Mesher.h.

◆ OUTPUT_TYPE

Enumerator
OUTPUT_MINIMAL 
OUTPUT_STANDARD 
OUTPUT_FULL 

Definition at line 104 of file Misc.h.

◆ PERIODIC_BOUNDARY_CONDITIONS

Enumerator
MATERIAL_CONTINUUM 
SINGLE_LAYER_RVE 
STAGGERED_BC 
SHEARED_BC 
ROTATED_BC 
BENDING_BC 
NO_BOUNDARY_CONDITIONS 

Definition at line 262 of file Misc.h.

Function Documentation

◆ AddExtensionIfMissing()

CLASS_DECLSPEC void TexGen::AddExtensionIfMissing ( std::string &  Filename,
std::string  Extension 
)

◆ AddNewUnits()

CLASS_DECLSPEC void TexGen::AddNewUnits ( std::string  NewUnit,
std::string  BaseUnits 
)

Definition at line 98 of file Misc.cpp.

References TGERROR.

Referenced by TexGen::CTexGen::CTexGen().

◆ BoundingBoxIntersect()

bool TexGen::BoundingBoxIntersect ( const XYZ BBox1Min,
const XYZ BBox1Max,
const XYZ BBox2Min,
const XYZ BBox2Max,
double  dTolerance = 0 
)
inline

Find if two AABBs intersect with given tolerance.

Definition at line 970 of file mymath.h.

References TexGen::XYZ::x, TexGen::XYZ::y, and TexGen::XYZ::z.

Referenced by TexGen::CAdjustMeshInterference::AdjustIntersections(), TexGen::CTextile::DetectInterference(), and TexGen::CDomain::MeshIntersectsDomain().

◆ CalculateBezierPoint()

template<typename T >
T TexGen::CalculateBezierPoint ( p1,
p2,
p3,
p4,
double  mu 
)
inline

◆ CalculateBezierTangent()

template<typename T >
T TexGen::CalculateBezierTangent ( p1,
p2,
p3,
p4,
double  mu 
)
inline

Definition at line 1183 of file mymath.h.

Referenced by TexGen::CInterpolationBezier::GetNode().

◆ CompatibleUnits()

CLASS_DECLSPEC bool TexGen::CompatibleUnits ( std::string  SourceUnits,
std::string  TargetUnits,
std::string *  pErrorMessage 
)

◆ Convert()

XY TexGen::Convert ( const XYZ Val)
inline

◆ ConvertRotation()

CMatrix TexGen::ConvertRotation ( WXYZ  Q)
inline

◆ ConvertUnits()

CLASS_DECLSPEC double TexGen::ConvertUnits ( double  dValue,
std::string  SourceUnits,
std::string  TargetUnits 
)

◆ CopyToRange()

CLASS_DECLSPEC void TexGen::CopyToRange ( vector< XYZ > &  Offsets,
XYZ  Vector,
int  iLowerLimit,
int  iUpperLimit 
)

Definition at line 47 of file Misc.cpp.

Referenced by TexGen::CDomain::GetTranslations().

◆ CrossProduct()

XYZ TexGen::CrossProduct ( const XYZ left,
const XYZ right 
)
inline

◆ DotProduct() [1/2]

double TexGen::DotProduct ( const XY left,
const XY right 
)
inline

Get the dot product of two vectors.

Definition at line 518 of file mymath.h.

References TexGen::XY::x, and TexGen::XY::y.

◆ DotProduct() [2/2]

double TexGen::DotProduct ( const XYZ left,
const XYZ right 
)
inline

Get the dot product of two vectors.

Definition at line 512 of file mymath.h.

References TexGen::XYZ::x, TexGen::XYZ::y, and TexGen::XYZ::z.

Referenced by TexGen::CAdjustMeshInterference::AdjustSectionMeshes(), TexGen::CDomainPlanes::BuildMesh(), TexGen::CShearedTextileWeave2D::CalculateModifiers(), TexGen::CDomainPrism::ClipIntersectMeshToDomain(), TexGen::CDomainPlanes::ClipMeshToDomain(), TexGen::CMeshDomainPlane::Convert3DTo2DCoordinates(), TexGen::CExporter::ConvertSection(), TexGen::CTextileOrthogonal::CorrectCrimpInterference(), TexGen::CTextileWeave::CorrectInterference(), TexGen::CTextileWeave::CorrectYarnWidths(), TexGen::CBasicVolumes::CreateProjectedAreas(), TexGen::CDomainPlanes::Deform(), TexGen::CTextileDeformer::DeformTextile(), TexGen::CDomainPlanes::FillGaps(), TexGen::CDomainPrism::FillGaps(), TexGen::CYarn::FindClosestEdgeDistance(), TexGen::CYarn::FindPlaneContainingPoint(), TexGen::CTextile::GetDomainVolumeFraction(), GetIntersectionLinePlane(), TexGen::CDomain::GetLimits(), TexGen::CDomainPrism::GetPlane(), TexGen::CBasicVolumes::MergeStraightLines(), TexGen::CMesh::MeshClosedLoop(), TexGen::CMesh::MeshConvexHull(), TexGen::CMeshDomainPlane::MeshDomainPlanes(), TexGen::CDomainPlanes::PointInDomain(), PointInsideTriangle(), PointInsideTriangleAccuracy(), TexGen::CYarn::PointInsideYarn(), TexGen::CNode::ProjectUp(), ShortestDistLineLine(), ShortestDistPointLine(), ShortestDistPointTriangle(), TexGen::CYarn::StraightenYarn(), and TexGen::CDomainPlanes::Translate().

◆ GetArea()

double TexGen::GetArea ( XYZ  Points[],
int  iNumPoints 
)
inline

Definition at line 1245 of file mymath.h.

References TexGen::XYZ::x, and TexGen::XYZ::y.

Referenced by TexGen::CBasicVolumes::GetRegionArea().

◆ GetBarycentricCoordinates()

XYZ TexGen::GetBarycentricCoordinates ( const XY P1,
const XY P2,
const XY P3,
const XY P 
)
inline

Get the barycentric coordinates of a point lying on a triangle.

Definition at line 1421 of file mymath.h.

References TexGen::XYZ::x, TexGen::XY::x, TexGen::XYZ::y, TexGen::XY::y, and TexGen::XYZ::z.

Referenced by TexGen::CGeometrySolver::GetDisplacement().

◆ GetCircleCenter()

bool TexGen::GetCircleCenter ( const XYZ A,
const XYZ B,
const XYZ C,
XYZ Center 
)
inline

Given three points lying on the edge of a circle, find the center point. false is returned if there is an error calculating them (e.g. all 3 points lie on a straight line).

Definition at line 1109 of file mymath.h.

References CrossProduct(), GetLength(), Normalise(), and ShortestDistLineLine().

◆ GetClosestPoint() [1/2]

XY TexGen::GetClosestPoint ( const std::vector< XY > &  Points,
const XY  Position 
)
inline

Returns the closest point to the lines joining the vector of 2D Points from the specified point, Position Assumes that the points are ordered

Definition at line 1480 of file mymath.h.

References GetClosestPointIndex(), GetLength(), ShortestDistPointLine(), TexGen::XYZ::x, TexGen::XY::x, TexGen::XYZ::y, and TexGen::XY::y.

◆ GetClosestPoint() [2/2]

XYZ TexGen::GetClosestPoint ( const std::vector< XYZ > &  Points,
const XYZ  Position 
)
inline

Returns the closest point to the lines joining the vector of 3D Points from the specified point, Position Assumes that the points are ordered

Definition at line 1549 of file mymath.h.

References GetClosestPointIndex(), GetLength(), and ShortestDistPointLine().

◆ GetClosestPointIndex() [1/2]

int TexGen::GetClosestPointIndex ( const std::vector< XY > &  Points,
const XY  Position 
)
inline

Get the point in a vector of 2D points which is closest to the specified position Returns the index of the point

Definition at line 1439 of file mymath.h.

References GetLengthSquared().

Referenced by TexGen::CYarn::FindClosestSurfacePoint(), and GetClosestPoint().

◆ GetClosestPointIndex() [2/2]

int TexGen::GetClosestPointIndex ( const std::vector< XYZ > &  Points,
const XYZ  Position 
)
inline

Get the point in a vector of 3D points which is closest to the specified position Returns the index of the point

Definition at line 1508 of file mymath.h.

References GetLengthSquared().

◆ GetClosestPointWithinTol() [1/2]

int TexGen::GetClosestPointWithinTol ( const std::vector< XY > &  Points,
const XY  Position,
double  dTol 
)
inline

Get the index of the point in a vector of 2D points which is within a given tolerance of a specified position Returns index, or -1 if no point found within tolerance

Definition at line 1459 of file mymath.h.

References GetLengthSquared().

◆ GetClosestPointWithinTol() [2/2]

int TexGen::GetClosestPointWithinTol ( const std::vector< XYZ > &  Points,
const XYZ  Position,
double  dTol 
)
inline

Get the index of the point in a vector of 3D points which is within a given tolerance of a specified position Returns index, or -1 if no point found within tolerance

Definition at line 1528 of file mymath.h.

References GetLengthSquared().

◆ GetClosestValues()

template<typename T >
std::pair< double, std::pair< T, T > > TexGen::GetClosestValues ( const std::vector< std::pair< double, T > > &  InterpValues,
double  fraction 
)

Get the two closest values to fraction in the vector InterpValues.

Definition at line 179 of file Misc.h.

Referenced by TexGen::CYarnSectionAdjusted::GetSection().

◆ GetFractionColor()

void TexGen::GetFractionColor ( double  dFraction,
double &  r,
double &  g,
double &  b 
)
inline

Given a fraction between 0 and 1, create an rgb color where 0 is blue, 0.5 is green and 1 is red anything in between is a mixture of the three colors.

Definition at line 1077 of file mymath.h.

◆ GetIndexedColor()

CLASS_DECLSPEC COLOR TexGen::GetIndexedColor ( int  iIndex)

◆ GetInterpedValue()

template<typename T >
T TexGen::GetInterpedValue ( const std::vector< std::pair< double, T > > &  InterpValues,
double  fraction 
)

Get an interpolated value.

Definition at line 151 of file Misc.h.

Referenced by TexGen::CInterpolationAdjusted::GetNode(), and TexGen::CYarnSectionAdjusted::GetSection().

◆ GetIntersectionLinePlane()

bool TexGen::GetIntersectionLinePlane ( const XYZ p1,
const XYZ p2,
const XYZ p3,
const XYZ N,
XYZ Intersection,
double *  pdU = NULL 
)
inline

P1 and P2 are two points on the line, P3 is a point on the plane, N is the plane normal, Intersection is the returned intersection.

Definition at line 1025 of file mymath.h.

References DotProduct().

Referenced by TexGen::CMesh::IntersectLine().

◆ GetLength() [1/5]

double TexGen::GetLength ( const WXYZ Quaternion)
inline

Get the length of a quaternion.

Definition at line 570 of file mymath.h.

References TexGen::WXYZ::w, TexGen::WXYZ::x, TexGen::WXYZ::y, and TexGen::WXYZ::z.

◆ GetLength() [2/5]

double TexGen::GetLength ( const XY Point1,
const XY Point2 
)
inline

Get the length between two points.

Definition at line 556 of file mymath.h.

References TexGen::XY::x, and TexGen::XY::y.

◆ GetLength() [3/5]

double TexGen::GetLength ( const XY Vector)
inline

Get the length of a vector.

Definition at line 587 of file mymath.h.

References TexGen::XY::x, and TexGen::XY::y.

◆ GetLength() [4/5]

double TexGen::GetLength ( const XYZ Point1,
const XYZ Point2 
)
inline

Get the length between two points.

Definition at line 540 of file mymath.h.

References TexGen::XYZ::x, TexGen::XYZ::y, and TexGen::XYZ::z.

Referenced by TexGen::CAdjustMeshInterference::AdjustIntersections(), TexGen::CShearedTextileWeave2D::AdjustSectionsForRotation(), TexGen::CYarn::BuildSlaveNodes(), TexGen::CSectionPolygon::CalcTValues(), TexGen::CInterpolation::CalculateNodeCoordinateSystem(), TexGen::CRotatedVoxelMesh::CalculateVoxelSizes(), TexGen::CShearedVoxelMesh::CalculateVoxelSizes(), TexGen::CNode::CNode(), TexGen::CAdjustMeshInterference::CompareSections(), TexGen::CMesh::ConvertTriToQuad(), TexGen::CTextileWeave::CorrectEdgeInterference(), TexGen::CShearedTextileWeave2D::CorrectInterference(), TexGen::CTextileWeave::CorrectYarnWidths(), TexGen::CSection::CreateEquiSpacedSection(), TexGen::CInterpolation::CreateEquiSpacedSlaveNodes(), TexGen::CSectionMeshRectangular::CreateMesh(), TexGen::CYarn::FindClosestSurfacePoint(), TexGen::CTextile::GetApproximateSize(), TexGen::CGeometrySolver::GetAverageLength(), TexGen::CMesher::GetBestSeed(), GetCircleCenter(), TexGen::CSection::GetCircumference(), GetClosestPoint(), TexGen::CDomain::GetLimits(), TexGen::CInterpolationBezier::GetNode(), TexGen::CDomainPrism::GetPlane(), TexGen::CYarn::GetRawRepeatArea(), TexGen::CSimulationAbaqus::GetSectionArea(), TexGen::CYarnSectionInterp::InterpolatePoints(), TexGen::CTextileLayered::MaxNestLayers(), TexGen::CMesh::MeshClosedLoop(), TexGen::CMeshDomainPlane::MeshDomainPlanes(), TexGen::CMeshIntersectionData::MoveNode(), TexGen::CTextileLayered::NestLayers(), Normalise(), TexGen::PLANE::PLANE(), TexGen::CDomainPrism::PlaneEqual(), TexGen::CNode::ProjectUp(), TexGen::CTexGenRenderer::RenderDomain(), TexGen::CTexGenRenderer::RenderGrid(), TexGen::CYarn::RepeatMatchesEnds(), RoundedCylinderIntersect(), TexGen::CMesh::SaveToABAQUS(), TexGen::CBasicVolumes::SeedOuterBoundary(), TexGen::CMeshDomainPlane::SeedSides(), TexGen::CRotatedPeriodicBoundaries::SetDomainSize(), TexGen::CShearedPeriodicBoundaries::SetDomainSize(), ShortestDistPointTriangle(), and SphereSphereIntersect().

◆ GetLength() [5/5]

double TexGen::GetLength ( const XYZ Vector)
inline

Get the length of a vector.

Definition at line 579 of file mymath.h.

References TexGen::XYZ::x, TexGen::XYZ::y, and TexGen::XYZ::z.

◆ GetLengthSquared() [1/4]

double TexGen::GetLengthSquared ( const XY Point)
inline

Get the length squared of a vector.

Definition at line 602 of file mymath.h.

References TexGen::XY::x, and TexGen::XY::y.

◆ GetLengthSquared() [2/4]

double TexGen::GetLengthSquared ( const XY Point1,
const XY Point2 
)
inline

Get the length squared between two points.

Definition at line 563 of file mymath.h.

References TexGen::XY::x, and TexGen::XY::y.

◆ GetLengthSquared() [3/4]

double TexGen::GetLengthSquared ( const XYZ Point)
inline

Get the length squared of a vector.

Definition at line 594 of file mymath.h.

References TexGen::XYZ::x, TexGen::XYZ::y, and TexGen::XYZ::z.

◆ GetLengthSquared() [4/4]

double TexGen::GetLengthSquared ( const XYZ Point1,
const XYZ Point2 
)
inline

◆ GetLocalCoordinateSystem()

void TexGen::GetLocalCoordinateSystem ( XYZ LocalX,
XYZ LocalY,
XYZ LocalZ,
const XYZ Point1,
const XYZ Point2 
)
inline

Get a local coordinate system for given 2 points, where the z axis corresponds to the line between points 1 and 2. The X and Y axis will be perpendicalar to this one, with Y pointing upwards

Definition at line 1007 of file mymath.h.

References CrossProduct(), and Normalise().

◆ GetLogger()

CLASS_DECLSPEC CLogger & TexGen::GetLogger ( )

Definition at line 63 of file Logger.cpp.

References TEXGEN.

◆ GetMinMaxXY()

void TexGen::GetMinMaxXY ( const std::vector< XY > &  Points,
XY Min,
XY Max 
)
inline

◆ GetRandomColor()

void TexGen::GetRandomColor ( double &  r,
double &  g,
double &  b 
)
inline

Create a random color from a set of pre-defined colors.

Definition at line 1043 of file mymath.h.

References RandomNumber().

◆ LineLineIntersect2D()

bool TexGen::LineLineIntersect2D ( const XY p1,
const XY p2,
const XY p3,
const XY p4,
double &  dU1,
double &  dU2 
)
inline

Definition at line 797 of file mymath.h.

References TexGen::XY::x, and TexGen::XY::y.

Referenced by TexGen::CBasicVolumes::SplitLinesByLines().

◆ Max() [1/3]

XY TexGen::Max ( const XY P1,
const XY P2 
)
inline

Given two points, return a new point who's coordinates are the greater of the two.

Definition at line 1152 of file mymath.h.

References TexGen::XY::x, and TexGen::XY::y.

◆ Max() [2/3]

XYZ TexGen::Max ( const XYZ P1,
const XYZ P2 
)
inline

Given two points, return a new point who's coordinates are the greater of the two.

Definition at line 1132 of file mymath.h.

References TexGen::XYZ::x, TexGen::XYZ::y, and TexGen::XYZ::z.

◆ Max() [3/3]

double TexGen::Max ( XYZ Vector)
inline

◆ Min() [1/2]

XY TexGen::Min ( const XY P1,
const XY P2 
)
inline

Given two points, return a new point who's coordinates are the smaller of the two.

Definition at line 1161 of file mymath.h.

References TexGen::XY::x, and TexGen::XY::y.

◆ Min() [2/2]

XYZ TexGen::Min ( const XYZ P1,
const XYZ P2 
)
inline

◆ Normalise() [1/3]

WXYZ & TexGen::Normalise ( WXYZ Quaternion)
inline

◆ Normalise() [2/3]

XY & TexGen::Normalise ( XY Vector)
inline

Normalise the vector and return it.

Definition at line 631 of file mymath.h.

References GetLength().

◆ Normalise() [3/3]

XYZ & TexGen::Normalise ( XYZ Vector)
inline

Normalise the vector and return it.

Definition at line 620 of file mymath.h.

References GetLength().

◆ operator*() [1/13]

XYZ TexGen::operator* ( const CMatrix Transform,
const XYZ Vector 
)
inline

◆ operator*() [2/13]

XY TexGen::operator* ( const double &  left,
const XY right 
)
inline

Definition at line 393 of file mymath.h.

References TexGen::XY::x, and TexGen::XY::y.

◆ operator*() [3/13]

XYZ TexGen::operator* ( const double &  left,
const XYZ right 
)
inline

Definition at line 366 of file mymath.h.

References TexGen::XYZ::x, TexGen::XYZ::y, and TexGen::XYZ::z.

◆ operator*() [4/13]

XYZ TexGen::operator* ( const float &  left,
const XYZ right 
)
inline

Definition at line 375 of file mymath.h.

References TexGen::XYZ::x, TexGen::XYZ::y, and TexGen::XYZ::z.

◆ operator*() [5/13]

XYZ TexGen::operator* ( const int &  left,
const XYZ right 
)
inline

Definition at line 384 of file mymath.h.

References TexGen::XYZ::x, TexGen::XYZ::y, and TexGen::XYZ::z.

◆ operator*() [6/13]

WXYZ TexGen::operator* ( const WXYZ left,
const WXYZ right 
)
inline

Grassmann product multiplication between two quaternions.

Definition at line 267 of file mymath.h.

References TexGen::WXYZ::w, TexGen::WXYZ::x, TexGen::WXYZ::y, and TexGen::WXYZ::z.

◆ operator*() [7/13]

XYZ TexGen::operator* ( const WXYZ left,
const XYZ right 
)
inline

Rotate a vector by given Quaternion.

Definition at line 727 of file mymath.h.

References CrossProduct(), TexGen::WXYZ::w, TexGen::WXYZ::x, TexGen::WXYZ::y, and TexGen::WXYZ::z.

◆ operator*() [8/13]

XY TexGen::operator* ( const XY left,
const double &  right 
)
inline

Definition at line 358 of file mymath.h.

References TexGen::XY::x, and TexGen::XY::y.

◆ operator*() [9/13]

XY TexGen::operator* ( const XY left,
const XY right 
)
inline

Definition at line 286 of file mymath.h.

References TexGen::XY::x, and TexGen::XY::y.

◆ operator*() [10/13]

XYZ TexGen::operator* ( const XYZ left,
const double &  right 
)
inline

Definition at line 331 of file mymath.h.

References TexGen::XYZ::x, TexGen::XYZ::y, and TexGen::XYZ::z.

◆ operator*() [11/13]

XYZ TexGen::operator* ( const XYZ left,
const float &  right 
)
inline

Definition at line 340 of file mymath.h.

References TexGen::XYZ::x, TexGen::XYZ::y, and TexGen::XYZ::z.

◆ operator*() [12/13]

XYZ TexGen::operator* ( const XYZ left,
const int &  right 
)
inline

Definition at line 349 of file mymath.h.

References TexGen::XYZ::x, TexGen::XYZ::y, and TexGen::XYZ::z.

◆ operator*() [13/13]

XYZ TexGen::operator* ( const XYZ left,
const XYZ right 
)
inline

Definition at line 277 of file mymath.h.

References TexGen::XYZ::x, TexGen::XYZ::y, and TexGen::XYZ::z.

◆ operator*=() [1/5]

WXYZ & TexGen::operator*= ( WXYZ left,
const WXYZ right 
)
inline

Grassmann product multiplication between two quaternions.

Definition at line 305 of file mymath.h.

References TexGen::WXYZ::w, TexGen::WXYZ::x, TexGen::WXYZ::y, and TexGen::WXYZ::z.

◆ operator*=() [2/5]

XY & TexGen::operator*= ( XY left,
const double &  right 
)
inline

Definition at line 453 of file mymath.h.

References TexGen::XY::x, and TexGen::XY::y.

◆ operator*=() [3/5]

XY & TexGen::operator*= ( XY left,
const XY right 
)
inline

Definition at line 324 of file mymath.h.

References TexGen::XY::x, and TexGen::XY::y.

◆ operator*=() [4/5]

XYZ & TexGen::operator*= ( XYZ left,
const double &  right 
)
inline

Definition at line 445 of file mymath.h.

References TexGen::XYZ::x, TexGen::XYZ::y, and TexGen::XYZ::z.

◆ operator*=() [5/5]

XYZ & TexGen::operator*= ( XYZ left,
const XYZ right 
)
inline

Definition at line 316 of file mymath.h.

References TexGen::XYZ::x, TexGen::XYZ::y, and TexGen::XYZ::z.

◆ operator+() [1/3]

WXYZ TexGen::operator+ ( const WXYZ left,
const WXYZ right 
)
inline

Definition at line 164 of file mymath.h.

References TexGen::WXYZ::w, TexGen::WXYZ::x, TexGen::WXYZ::y, and TexGen::WXYZ::z.

◆ operator+() [2/3]

XY TexGen::operator+ ( const XY left,
const XY right 
)
inline

Definition at line 183 of file mymath.h.

References TexGen::XY::x, and TexGen::XY::y.

◆ operator+() [3/3]

XYZ TexGen::operator+ ( const XYZ left,
const XYZ right 
)
inline

Definition at line 174 of file mymath.h.

References TexGen::XYZ::x, TexGen::XYZ::y, and TexGen::XYZ::z.

◆ operator+=() [1/3]

WXYZ & TexGen::operator+= ( WXYZ left,
const WXYZ right 
)
inline

Definition at line 191 of file mymath.h.

References TexGen::WXYZ::w, TexGen::WXYZ::x, TexGen::WXYZ::y, and TexGen::WXYZ::z.

◆ operator+=() [2/3]

XY & TexGen::operator+= ( XY left,
const XY right 
)
inline

Definition at line 208 of file mymath.h.

References TexGen::XY::x, and TexGen::XY::y.

◆ operator+=() [3/3]

XYZ & TexGen::operator+= ( XYZ left,
const XYZ right 
)
inline

Definition at line 200 of file mymath.h.

References TexGen::XYZ::x, TexGen::XYZ::y, and TexGen::XYZ::z.

◆ operator-() [1/3]

WXYZ TexGen::operator- ( const WXYZ left,
const WXYZ right 
)
inline

Definition at line 215 of file mymath.h.

References TexGen::WXYZ::w, TexGen::WXYZ::x, TexGen::WXYZ::y, and TexGen::WXYZ::z.

◆ operator-() [2/3]

XY TexGen::operator- ( const XY left,
const XY right 
)
inline

Definition at line 234 of file mymath.h.

References TexGen::XY::x, and TexGen::XY::y.

◆ operator-() [3/3]

XYZ TexGen::operator- ( const XYZ left,
const XYZ right 
)
inline

Definition at line 225 of file mymath.h.

References TexGen::XYZ::x, TexGen::XYZ::y, and TexGen::XYZ::z.

◆ operator-=() [1/3]

WXYZ & TexGen::operator-= ( WXYZ left,
const WXYZ right 
)
inline

Definition at line 242 of file mymath.h.

References TexGen::WXYZ::w, TexGen::WXYZ::x, TexGen::WXYZ::y, and TexGen::WXYZ::z.

◆ operator-=() [2/3]

XY & TexGen::operator-= ( XY left,
const XY right 
)
inline

Definition at line 259 of file mymath.h.

References TexGen::XY::x, and TexGen::XY::y.

◆ operator-=() [3/3]

XYZ & TexGen::operator-= ( XYZ left,
const XYZ right 
)
inline

Definition at line 251 of file mymath.h.

References TexGen::XYZ::x, TexGen::XYZ::y, and TexGen::XYZ::z.

◆ operator/() [1/4]

XY TexGen::operator/ ( const XY left,
const double &  right 
)
inline

Definition at line 410 of file mymath.h.

References TexGen::XY::x, and TexGen::XY::y.

◆ operator/() [2/4]

XYZ TexGen::operator/ ( const XYZ left,
const double &  right 
)
inline

Definition at line 401 of file mymath.h.

References TexGen::XYZ::x, TexGen::XYZ::y, and TexGen::XYZ::z.

◆ operator/() [3/4]

XYZ TexGen::operator/ ( const XYZ left,
const int &  right 
)
inline

Definition at line 460 of file mymath.h.

References TexGen::XYZ::x, TexGen::XYZ::y, and TexGen::XYZ::z.

◆ operator/() [4/4]

XYZ TexGen::operator/ ( const XYZ left,
const XYZ right 
)
inline

Do a simple divide of all members, perhaps not mathematically correct but usefull.

Definition at line 295 of file mymath.h.

References TexGen::XYZ::x, TexGen::XYZ::y, and TexGen::XYZ::z.

◆ operator/=() [1/3]

WXYZ & TexGen::operator/= ( WXYZ left,
const double &  right 
)
inline

Definition at line 418 of file mymath.h.

References TexGen::WXYZ::w, TexGen::WXYZ::x, TexGen::WXYZ::y, and TexGen::WXYZ::z.

◆ operator/=() [2/3]

XY & TexGen::operator/= ( XY left,
const double &  right 
)
inline

Definition at line 437 of file mymath.h.

References TexGen::XY::x, and TexGen::XY::y.

◆ operator/=() [3/3]

XYZ & TexGen::operator/= ( XYZ left,
const double &  right 
)
inline

Definition at line 428 of file mymath.h.

References TexGen::XYZ::x, TexGen::XYZ::y, and TexGen::XYZ::z.

◆ operator<() [1/2]

bool TexGen::operator< ( const PROP_NODE_INFO left,
const PROP_NODE_INFO right 
)
inline

Used for sorting algorithms.

Definition at line 57 of file TexGenRenderer.h.

References TexGen::PROP_NODE_INFO::iNode, TexGen::PROP_NODE_INFO::iYarn, and TexGen::PROP_NODE_INFO::TextileName.

◆ operator<() [2/2]

bool TexGen::operator< ( const PROP_YARN_INFO left,
const PROP_YARN_INFO right 
)
inline

Used for sorting algorithms.

Definition at line 46 of file TexGenRenderer.h.

References TexGen::PROP_YARN_INFO::iYarn, and TexGen::PROP_YARN_INFO::TextileName.

◆ operator<<() [1/5]

ostream & TexGen::operator<< ( ostream &  output,
CMatrix Matrix 
)
inline

Definition at line 455 of file Matrix.h.

References TexGen::CMatrix::PrintMatrix().

◆ operator<<() [2/5]

std::ostream & TexGen::operator<< ( std::ostream &  os,
CTimer t 
)
inline

Definition at line 110 of file Timer.h.

◆ operator<<() [3/5]

std::ostream & TexGen::operator<< ( std::ostream &  output,
const WXYZ Quat 
)
inline

Definition at line 469 of file mymath.h.

References TexGen::WXYZ::w, TexGen::WXYZ::x, TexGen::WXYZ::y, and TexGen::WXYZ::z.

◆ operator<<() [4/5]

std::ostream & TexGen::operator<< ( std::ostream &  output,
const XY Vector 
)
inline

Definition at line 481 of file mymath.h.

References TexGen::XY::x, and TexGen::XY::y.

◆ operator<<() [5/5]

std::ostream & TexGen::operator<< ( std::ostream &  output,
const XYZ Vector 
)
inline

Definition at line 475 of file mymath.h.

References TexGen::XYZ::x, TexGen::XYZ::y, and TexGen::XYZ::z.

◆ operator==() [1/3]

bool TexGen::operator== ( const XYZ left,
const double &  value 
)
inline

Definition at line 154 of file mymath.h.

References TexGen::XYZ::x, TexGen::XYZ::y, and TexGen::XYZ::z.

◆ operator==() [2/3]

bool TexGen::operator== ( const XYZ left,
const int &  value 
)
inline

Definition at line 159 of file mymath.h.

References TexGen::XYZ::x, TexGen::XYZ::y, and TexGen::XYZ::z.

◆ operator==() [3/3]

bool TexGen::operator== ( const XYZ left,
const XYZ right 
)
inline

Definition at line 149 of file mymath.h.

References TexGen::XYZ::x, TexGen::XYZ::y, and TexGen::XYZ::z.

◆ operator>>() [1/3]

std::istream & TexGen::operator>> ( std::istream &  input,
WXYZ Quat 
)
inline

Definition at line 487 of file mymath.h.

References TexGen::WXYZ::w, TexGen::WXYZ::x, TexGen::WXYZ::y, and TexGen::WXYZ::z.

◆ operator>>() [2/3]

std::istream & TexGen::operator>> ( std::istream &  input,
XY Vector 
)
inline

Definition at line 504 of file mymath.h.

References TexGen::XY::x, and TexGen::XY::y.

◆ operator>>() [3/3]

std::istream & TexGen::operator>> ( std::istream &  input,
XYZ Vector 
)
inline

Definition at line 496 of file mymath.h.

References TexGen::XYZ::x, TexGen::XYZ::y, and TexGen::XYZ::z.

◆ PointInside() [1/2]

bool TexGen::PointInside ( const XY Point,
const std::vector< XY > &  Nodes 
)
inline

◆ PointInside() [2/2]

bool TexGen::PointInside ( const XY Point,
std::vector< XYZ > &  Nodes 
)
inline

Definition at line 1610 of file mymath.h.

References TexGen::XYZ::x, TexGen::XY::x, TexGen::XYZ::y, and TexGen::XY::y.

◆ PointInsideBox()

bool TexGen::PointInsideBox ( const XYZ Point,
const XYZ BoxMin,
const XYZ BoxMax,
double  dTolerance = 0 
)
inline

Find if a point is inside an Axis Aligned Bounding Box with given tolerance.

Definition at line 988 of file mymath.h.

References TexGen::XYZ::x, TexGen::XYZ::y, and TexGen::XYZ::z.

Referenced by TexGen::CYarn::PointInsideYarn().

◆ PointInsideTriangle() [1/2]

bool TexGen::PointInsideTriangle ( const XYZ P1,
const XYZ P2,
const XYZ P3,
const XYZ P 
)
inline

P1, P2, P3 are the three triangle corners, P is the points to be tested.

Definition at line 1260 of file mymath.h.

References CrossProduct(), and DotProduct().

Referenced by ShortestDistPointTriangle().

◆ PointInsideTriangle() [2/2]

bool TexGen::PointInsideTriangle ( const XYZ P1,
const XYZ P2,
const XYZ P3,
const XYZ P,
const XYZ N 
)
inline

P1, P2, P3 are the three triangle corners, P is the points to be tested, N is the normal to the triangle.

Definition at line 1273 of file mymath.h.

References CrossProduct(), and DotProduct().

◆ PointInsideTriangle2D()

bool TexGen::PointInsideTriangle2D ( const XYZ P1,
const XYZ P2,
const XYZ P3,
const XYZ P,
const XYZ pNormal = NULL 
)
inline

P1, P2, P3 are the three triangle corners, P is the points to be tested, ignoring the z component.

Definition at line 1296 of file mymath.h.

References TexGen::XYZ::x, and TexGen::XYZ::y.

◆ PointInsideTriangleAccuracy()

double TexGen::PointInsideTriangleAccuracy ( const XYZ P1,
const XYZ P2,
const XYZ P3,
const XYZ P,
const XYZ N 
)
inline

P1, P2, P3 are the three triangle corners, P is the points to be tested, N is the normal to the triangle.

Definition at line 1285 of file mymath.h.

References CrossProduct(), and DotProduct().

Referenced by TexGen::CMesh::IntersectLine().

◆ RandomNormalDistribution()

double TexGen::RandomNormalDistribution ( double  dStandrdDeviation = 1,
double  dAverage = 0 
)
inline

Definition at line 1190 of file mymath.h.

References RandomNumber().

◆ RandomNumber()

double TexGen::RandomNumber ( double  dMin,
double  dMax 
)
inline

Generate a random number between the limits given.

Definition at line 534 of file mymath.h.

Referenced by TexGen::CBasicVolumes::CreateProjectedCenters(), GetRandomColor(), and RandomNormalDistribution().

◆ ReduceUnits()

CLASS_DECLSPEC std::string TexGen::ReduceUnits ( std::string  Units)

Definition at line 88 of file Misc.cpp.

References TGERROR.

◆ RemoveExtension()

CLASS_DECLSPEC std::string TexGen::RemoveExtension ( std::string &  Filename,
std::string  Extension 
)

Strip the extension from the filename.

Definition at line 122 of file Misc.cpp.

Referenced by TexGen::CMesh::SaveToSCIRun(), and TexGen::CVoxelMesh::SaveToSCIRun().

◆ ReplaceFilenameSpaces()

CLASS_DECLSPEC std::string TexGen::ReplaceFilenameSpaces ( std::string  Filename)

◆ Round()

int TexGen::Round ( double  dValue)
inline

Definition at line 1169 of file mymath.h.

Referenced by TexGen::CMesh::BuildGrid().

◆ RoundedCylinderIntersect()

bool TexGen::RoundedCylinderIntersect ( const XYZ p1,
const XYZ p2,
const XYZ p3,
const XYZ p4,
double  dRadii,
double *  pdU1 = NULL,
double *  pdU2 = NULL 
)
inline

http://astronomy.swin.edu.au/~pbourke/geometry/lineline3d/ Finds the intersection between two rounded cylinders given the center of the ends of each cylinder and the combined radii of the two cylinders. pdU1 is set to the fraction along the length of cylinder 1 where intersection occurs, similarly pdU2 is set to the fraction along the length of cylinder2 where the intersection occurs. Either or both of these parameters can be set to null/omitted if the information is not needed.

Definition at line 862 of file mymath.h.

References GetLength(), ShortestDistLineLine(), SphereCylinderIntersect(), and SphereSphereIntersect().

◆ ShortestDistLineLine()

bool TexGen::ShortestDistLineLine ( const XYZ p1,
const XYZ p2,
const XYZ p3,
const XYZ p4,
double &  dU1,
double &  dU2,
XYZ pa,
XYZ pb 
)
inline

http://astronomy.swin.edu.au/~pbourke/geometry/lineline3d/ Find the shortest distance between two lines given two points on each line p1, p2 and p3, p4. dU1 is the fraction along the length of the first line which is closest to the second line, similarly dU2 is the fraction along the length of the second line closest to the first line. Returns true if the function succeded, returns false if there was an error such as lines are parallel. pa and pb return the two closest points lying on the lines 1 and 2 respectively.

Definition at line 818 of file mymath.h.

References DotProduct().

Referenced by GetCircleCenter(), and RoundedCylinderIntersect().

◆ ShortestDistPointLine()

XYZ TexGen::ShortestDistPointLine ( const XYZ Point,
const XYZ LineStart,
const XYZ LineEnd,
double &  dU 
)
inline

http://http://paulbourke.net/geometry/pointlineplane/ Find the shortest distance between a point and a line. Return the closest point on the line and set dU to be the fraction along the line where the intersection occurs

Definition at line 749 of file mymath.h.

References DotProduct(), and GetLengthSquared().

Referenced by GetClosestPoint(), ShortestDistPointTriangle(), SphereCylinderIntersect(), and TexGen::CBasicVolumes::SplitLinesByNodes().

◆ ShortestDistPointTriangle()

double TexGen::ShortestDistPointTriangle ( const XYZ P1,
const XYZ P2,
const XYZ P3,
const XYZ P,
XYZ pTrianglePoint = NULL,
XYZ pNormal = NULL 
)
inline

P1, P2, P3 are the three triangle corners, P is the points to be tested.

Definition at line 1316 of file mymath.h.

References CrossProduct(), DotProduct(), GetLength(), Normalise(), PointInsideTriangle(), and ShortestDistPointLine().

◆ SphereCylinderIntersect()

bool TexGen::SphereCylinderIntersect ( const XYZ Point,
const XYZ LineStart,
const XYZ LineEnd,
double  dRadii,
double *  pdUReturn = NULL 
)
inline

http://astronomy.swin.edu.au/~pbourke/geometry/pointline/ Find if a sphere and rounded cylinder intersect given the center of the sphere, the centers of the two end points of the cylinder and the combined radii of the sphere and clyinder. Return true if there is intersection else false. pdUReturn will be set to the fraction along the line at which the intersection occurs, this can be set to NULL if the information is not needed.

Definition at line 768 of file mymath.h.

References ShortestDistPointLine(), and SphereSphereIntersect().

Referenced by RoundedCylinderIntersect().

◆ SphereSphereIntersect()

bool TexGen::SphereSphereIntersect ( const XYZ p1,
const XYZ p2,
double  dRadii 
)
inline

Check if two spheres intersect given their center points and combined radii.

Definition at line 741 of file mymath.h.

References GetLength().

Referenced by RoundedCylinderIntersect(), and SphereCylinderIntersect().

◆ stringify()

template<typename T >
std::string TexGen::stringify ( const T &  x,
int  iPrecision = 12,
bool  bScientific = true 
)
inline

Function to convert a value (e.g. int, double, etc...) to a string.

Definition at line 50 of file Misc.h.

Referenced by TexGen::CTexGen::AddTextile(), TexGen::CAdjustMeshInterference::AdjustInitialIntersections(), TexGen::CAdjustMeshInterference::AdjustMesh(), TexGen::CSimulationAbaqus::CreateAbaqusInputFile(), TexGen::CSimulationAbaqus::CreateContacts(), TexGen::CSection::CreateEquiSpacedSection(), TexGen::CSimulationAbaqus::CreatePeriodicBoundaries(), TexGen::CSimulationAbaqus::CreateSurfaceDefinitions(), TexGen::CShellElementExport::CreateSurfaceDefinitions(), TexGen::CSectionBezier::GetDefaultName(), TexGen::CSectionEllipse::GetDefaultName(), TexGen::CSectionHybrid::GetDefaultName(), TexGen::CSectionLenticular::GetDefaultName(), TexGen::CSectionPolygon::GetDefaultName(), TexGen::CSectionPowerEllipse::GetDefaultName(), TexGen::CSectionRectangle::GetDefaultName(), TexGen::CSectionRotated::GetDefaultName(), TexGen::CSectionScaled::GetDefaultName(), TexGen::CTextile3DWeave::GetDefaultName(), TexGen::CTextileLayered::GetDefaultName(), TexGen::CTextileWeave::GetDefaultName(), TexGen::CTextileWeave2D::GetDefaultName(), TexGen::CTextileWeave3D::GetDefaultName(), TexGen::CProperty::GetString(), TexGen::CTexGen::GetVersion(), TexGen::CMeshData< T >::GetVTKDataType(), TexGen::CTextileLayered::MaxNestLayers(), TexGen::CTextileLayered::NestLayers(), TexGen::CShellElementExport::OutputContacts(), TexGen::CSimulationAbaqus::OutputContacts(), TexGen::CPeriodicBoundaries::OutputEdgeSets(), TexGen::CPeriodicBoundaries::OutputVertexSets(), TexGen::CProperties::PopulateTiXmlElement(), TexGen::CPropertiesTextile::PopulateTiXmlElement(), TexGen::CShearedTextileWeave2D::PopulateTiXmlElement(), TexGen::CTextile3DWeave::PopulateTiXmlElement(), TexGen::CTextileLayered::PopulateTiXmlElement(), TexGen::CTextileWeave::PopulateTiXmlElement(), TexGen::CTextileWeave2D::PopulateTiXmlElement(), TexGen::CYarn::PopulateTiXmlElement(), TexGen::CInterpolationAdjusted::PopulateTiXmlElement(), TexGen::CMesh::PopulateTiXmlElement(), TexGen::CNode::PopulateTiXmlElement(), TexGen::CSection::PopulateTiXmlElement(), TexGen::CSectionBezier::PopulateTiXmlElement(), TexGen::CSectionEllipse::PopulateTiXmlElement(), TexGen::CSectionHybrid::PopulateTiXmlElement(), TexGen::CSectionLenticular::PopulateTiXmlElement(), TexGen::CSectionMeshRectangular::PopulateTiXmlElement(), TexGen::CSectionMeshTriangulate::PopulateTiXmlElement(), TexGen::CSectionPolygon::PopulateTiXmlElement(), TexGen::CSectionPowerEllipse::PopulateTiXmlElement(), TexGen::CSectionRectangle::PopulateTiXmlElement(), TexGen::CSectionRotated::PopulateTiXmlElement(), TexGen::CSectionScaled::PopulateTiXmlElement(), TexGen::CSlaveNode::PopulateTiXmlElement(), TexGen::CYarnSection::PopulateTiXmlElement(), TexGen::CYarnSectionAdjusted::PopulateTiXmlElement(), TexGen::CYarnSectionInterp::PopulateTiXmlElement(), TexGen::CYarnSectionInterpNode::PopulateTiXmlElement(), TexGen::CYarnSectionInterpPosition::PopulateTiXmlElement(), TexGen::CDomainPlanes::PopulateTiXmlElement(), TexGen::CMesh::SaveToVTK(), TexGen::CSimulationAbaqus::SetStaticStepParameters(), TexGen::CTextileMaterials::SetupMaterials(), and TexGen::CProperty::WriteAttribute().

◆ StripPath()

CLASS_DECLSPEC std::string TexGen::StripPath ( std::string  Filename)

Strip the path from the filename (e.g. "c:\folder\file.ext -> file.ext")

Definition at line 107 of file Misc.cpp.

Referenced by TexGen::CSimulationAbaqus::CreateMaterials(), TexGen::CVoxelMesh::OutputOrientationsAndElementSets(), and TexGen::CMesh::SaveToABAQUS().

◆ valueify() [1/2]

template<typename T >
T TexGen::valueify ( const char *  x)
inline

Function to convert a string to a value (e.g. int, double, etc...)

Definition at line 72 of file Misc.h.

◆ valueify() [2/2]

template<typename T >
T TexGen::valueify ( const std::string &  x)
inline

Function to convert a string to a value (e.g. int, double, etc...)

Definition at line 61 of file Misc.h.

◆ WriteElementsHeader()

CLASS_DECLSPEC void TexGen::WriteElementsHeader ( std::ostream &  Output)

Write elements header for ABAQUS .eld files.

Definition at line 167 of file Misc.cpp.

Referenced by TexGen::CSimulationAbaqus::CreateMaterials(), TexGen::CVoxelMesh::OutputOrientationsAndElementSets(), and TexGen::CMesh::SaveToABAQUS().

◆ WriteOrientationsHeader()

CLASS_DECLSPEC void TexGen::WriteOrientationsHeader ( std::ostream &  Output)

Write orientations header for ABAQUS .ori files.

Definition at line 157 of file Misc.cpp.

Referenced by TexGen::CVoxelMesh::OutputOrientationsAndElementSets(), and TexGen::CMesh::SaveToABAQUS().

◆ WriteValues()

template<typename T >
void TexGen::WriteValues ( std::ostream &  Output,
T &  Values,
int  iMaxPerLine 
)

Variable Documentation

◆ ReedThickness

double TexGen::ReedThickness[NUM_REED_SIZES]
static
Initial value:
= { 0.1, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.2,
0.22, 0.24, 0.26, 0.28, 0.31, 0.32, 0.34,
0.36, 0.37, 0.4, 0.45, 0.5, 0.6,
0.65, 0.7, 0.8,
1.0, 1.25, 1.6 }

Definition at line 27 of file ReedData.h.

Referenced by TexGen::CReedData::GetClosestReedThickness().