Go to the documentation of this file.
40 #ifndef NURBS3DCurve_H
41 #define NURBS3DCurve_H
77 label nrmOrientation_;
83 label sgn(
const scalar val)
const;
85 scalar abs(
const scalar val)
const;
87 label mod(
const label
x,
const label interval)
const;
105 const label spacingCorrInterval,
106 const scalar tolerance
205 const label lenAcc = 25,
206 const label maxIter = 10,
207 const label spacingCorrInterval = -1,
208 const scalar tolerance = 1.
e-5
221 const vector& targetPoint,
222 const label maxIter = 1000,
223 const scalar tolerance = 1.
e-13
230 const vector& targetPoint,
231 const scalar initGuess,
232 const label maxIter = 1000,
233 const scalar tolerance = 1.
e-13
239 const vector nrm2D(
const scalar zVal,
const scalar u)
const;
245 const label nPts = 100,
246 const label lenAcc = 25,
247 const label maxIter = 10,
248 const label spacingCorrInterval=-1,
249 const scalar tolerance = 1.
e-5
356 inline label nrmOrientation()
const
358 return nrmOrientation_;
364 return givenInitNrm_;
380 const fileName dirName,
381 const fileName fileName
393 const fileName dirName,
394 const fileName fileName
scalar lengthDerivativeU(const scalar uStart, const scalar uEnd, const label nPts)
vector curveDerivativeUU(const scalar u) const
const vector nrm2D(const scalar zVal, const scalar u) const
A class for handling words, derived from Foam::string.
A class for handling file names.
scalarList genEquidistant(const label nPts=100, const label lenAcc=25, const label maxIter=10, const label spacingCorrInterval=-1, const scalar tolerance=1.e-5)
NURBS3DCurve(const NURBSbasis &basis, const List< vector > &CPs, const List< scalar > &weights, const scalarField &u, const label nPts, const word name="NURBS3DCurve")
NURBSbasis function. Used to construct NURBS curves, surfaces and volumes.
void setCPs(const List< vector > &CPs)
const vector nrm3D(const vector &refTan, const scalar u) const
vector curveDerivativeU(const scalar u) const
vector curvePoint(const scalar u) const
void setName(const word &name)
void makeEquidistant(const label lenAcc=25, const label maxIter=10, const label spacingCorrInterval=-1, const scalar tolerance=1.e-5)
Generic templated field type.
scalar curveDerivativeCP(const scalar u, const label CPI)
void setNrm3DOrientation(const vector &givenNrm, const vector &givenTan)
scalar findClosestCurvePoint(const vector &targetPoint, const label maxIter=1000, const scalar tolerance=1.e-13)
const NURBSbasis & getBasisFunction() const
const vector & givenInitNrm() const
bool checkRange(const scalar u, const label CPI, const label degree) const
void setNrm2DOrientation(const vector &givenNrm, const scalar zVal)
const List< scalar > & getParametricCoordinates() const
const dimensionedScalar e
const word & getName() const
word name(const expressions::valueTypeCode typeCode)
void setWeights(const List< scalar > &weights)
label nrmOrientation() const
const List< vector > & getCPs() const
void flipNrmOrientation()
vector curveDerivativeWeight(const scalar u, const label CPI)
void insertKnot(const scalarField &oldKnots, const scalar uBar, const label kInsert)
const List< scalar > & getWeights() const