Class xlifepp::Parametrization#

class Parametrization#

Inheritence diagram for xlifepp::Parametrization:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "1" [label="xlifepp::Parametrization" tooltip="xlifepp::Parametrization" fillcolor="#BFBFBF"] "2" [label="xlifepp::PiecewiseParametrization" tooltip="xlifepp::PiecewiseParametrization"] "2" -> "1" [dir=forward tooltip="public-inheritance"] }

Collaboration diagram for xlifepp::Parametrization:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "21" [label="xlifepp::Collection< string_t >" tooltip="xlifepp::Collection< string_t >"] "14" [label="xlifepp::Matrix< real_t >" tooltip="xlifepp::Matrix< real_t >"] "18" [label="xlifepp::Vector< real_t >" tooltip="xlifepp::Vector< real_t >"] "29" [label="xlifepp::Vector< xlifepp::Vector< real_t > >" tooltip="xlifepp::Vector< xlifepp::Vector< real_t > >"] "38" [label="std::list< std::pair< number_t, real_t > >" tooltip="std::list< std::pair< number_t, real_t > >"] "10" [label="std::map< number_t, std::vector< number_t > >" tooltip="std::map< number_t, std::vector< number_t > >"] "8" [label="std::map< number_t, xlifepp::Geometry * >" tooltip="std::map< number_t, xlifepp::Geometry * >"] "37" [label="std::map< string_t, number_t >" tooltip="std::map< string_t, number_t >"] "39" [label="std::list< T >" tooltip="std::list< T >"] "9" [label="std::map< K, T >" tooltip="std::map< K, T >"] "5" [label="std::vector< T >" tooltip="std::vector< T >"] "24" [label="std::vector< T >" tooltip="std::vector< T >"] "17" [label="std::vector< K >" tooltip="std::vector< K >"] "4" [label="std::vector< RealPair >" tooltip="std::vector< RealPair >"] "20" [label="std::vector< const xlifepp::Transformation * >" tooltip="std::vector< const xlifepp::Transformation * >"] "25" [label="std::vector< number_t >" tooltip="std::vector< number_t >"] "15" [label="std::vector< real_t >" tooltip="std::vector< real_t >"] "34" [label="std::vector< std::vector< GeoNumPair > >" tooltip="std::vector< std::vector< GeoNumPair > >"] "11" [label="std::vector< std::vector< int_t > >" tooltip="std::vector< std::vector< int_t > >"] "22" [label="std::vector< string_t >" tooltip="std::vector< string_t >"] "33" [label="std::vector< xlifepp::GeomDomain * >" tooltip="std::vector< xlifepp::GeomDomain * >"] "32" [label="std::vector< xlifepp::GeomElement * >" tooltip="std::vector< xlifepp::GeomElement * >"] "36" [label="std::vector< xlifepp::Parameter * >" tooltip="std::vector< xlifepp::Parameter * >"] "7" [label="std::vector< xlifepp::Point >" tooltip="std::vector< xlifepp::Point >"] "26" [label="std::vector< xlifepp::Transformation * >" tooltip="std::vector< xlifepp::Transformation * >"] "30" [label="std::vector< xlifepp::Vector< real_t > >" tooltip="std::vector< xlifepp::Vector< real_t > >"] "3" [label="xlifepp::BoundingBox" tooltip="xlifepp::BoundingBox"] "23" [label="xlifepp::Collection< T >" tooltip="xlifepp::Collection< T >"] "12" [label="xlifepp::ExtrusionData" tooltip="xlifepp::ExtrusionData"] "28" [label="xlifepp::GeoNode" tooltip="xlifepp::GeoNode"] "2" [label="xlifepp::Geometry" tooltip="xlifepp::Geometry"] "16" [label="xlifepp::Matrix< K >" tooltip="xlifepp::Matrix< K >"] "31" [label="xlifepp::Mesh" tooltip="xlifepp::Mesh"] "6" [label="xlifepp::MinimalBox" tooltip="xlifepp::MinimalBox"] "35" [label="xlifepp::Parameters" tooltip="xlifepp::Parameters"] "1" [label="xlifepp::Parametrization" tooltip="xlifepp::Parametrization" fillcolor="#BFBFBF"] "27" [label="xlifepp::Point" tooltip="xlifepp::Point"] "13" [label="xlifepp::Transformation" tooltip="xlifepp::Transformation"] "19" [label="xlifepp::Vector< K >" tooltip="xlifepp::Vector< K >"] "21" -> "22" [dir=forward tooltip="public-inheritance"] "21" -> "23" [dir=forward tooltip="template-instance"] "14" -> "15" [dir=forward tooltip="public-inheritance"] "14" -> "16" [dir=forward tooltip="template-instance"] "18" -> "15" [dir=forward tooltip="public-inheritance"] "18" -> "19" [dir=forward tooltip="template-instance"] "29" -> "30" [dir=forward tooltip="public-inheritance"] "29" -> "19" [dir=forward tooltip="template-instance"] "38" -> "39" [dir=forward tooltip="template-instance"] "10" -> "9" [dir=forward tooltip="template-instance"] "8" -> "9" [dir=forward tooltip="template-instance"] "37" -> "9" [dir=forward tooltip="template-instance"] "17" -> "5" [dir=forward tooltip="template-instance"] "4" -> "5" [dir=forward tooltip="template-instance"] "20" -> "5" [dir=forward tooltip="template-instance"] "25" -> "5" [dir=forward tooltip="template-instance"] "15" -> "5" [dir=forward tooltip="template-instance"] "34" -> "5" [dir=forward tooltip="template-instance"] "11" -> "5" [dir=forward tooltip="template-instance"] "22" -> "5" [dir=forward tooltip="template-instance"] "33" -> "5" [dir=forward tooltip="template-instance"] "32" -> "5" [dir=forward tooltip="template-instance"] "36" -> "5" [dir=forward tooltip="template-instance"] "7" -> "5" [dir=forward tooltip="template-instance"] "26" -> "5" [dir=forward tooltip="template-instance"] "30" -> "5" [dir=forward tooltip="template-instance"] "3" -> "4" [dir=forward tooltip="usage"] "23" -> "24" [dir=forward tooltip="public-inheritance"] "12" -> "13" [dir=forward tooltip="usage"] "12" -> "21" [dir=forward tooltip="usage"] "12" -> "25" [dir=forward tooltip="usage"] "12" -> "15" [dir=forward tooltip="usage"] "12" -> "18" [dir=forward tooltip="usage"] "12" -> "26" [dir=forward tooltip="usage"] "12" -> "27" [dir=forward tooltip="usage"] "28" -> "28" [dir=forward tooltip="usage"] "28" -> "2" [dir=forward tooltip="usage"] "2" -> "3" [dir=forward tooltip="usage"] "2" -> "6" [dir=forward tooltip="usage"] "2" -> "8" [dir=forward tooltip="usage"] "2" -> "10" [dir=forward tooltip="usage"] "2" -> "11" [dir=forward tooltip="usage"] "2" -> "12" [dir=forward tooltip="usage"] "2" -> "1" [dir=forward tooltip="usage"] "2" -> "2" [dir=forward tooltip="usage"] "2" -> "28" [dir=forward tooltip="usage"] "16" -> "17" [dir=forward tooltip="public-inheritance"] "31" -> "2" [dir=forward tooltip="usage"] "31" -> "7" [dir=forward tooltip="usage"] "31" -> "32" [dir=forward tooltip="usage"] "31" -> "33" [dir=forward tooltip="usage"] "31" -> "25" [dir=forward tooltip="usage"] "31" -> "34" [dir=forward tooltip="usage"] "31" -> "31" [dir=forward tooltip="usage"] "6" -> "7" [dir=forward tooltip="usage"] "35" -> "36" [dir=forward tooltip="usage"] "35" -> "37" [dir=forward tooltip="usage"] "1" -> "2" [dir=forward tooltip="usage"] "1" -> "18" [dir=forward tooltip="usage"] "1" -> "29" [dir=forward tooltip="usage"] "1" -> "31" [dir=forward tooltip="usage"] "1" -> "35" [dir=forward tooltip="usage"] "1" -> "38" [dir=forward tooltip="usage"] "27" -> "15" [dir=forward tooltip="public-inheritance"] "13" -> "14" [dir=forward tooltip="usage"] "13" -> "18" [dir=forward tooltip="usage"] "13" -> "20" [dir=forward tooltip="usage"] "19" -> "17" [dir=forward tooltip="public-inheritance"] }

Subclassed by xlifepp::PiecewiseParametrization

Public Functions

Parametrization(const Geometry &g, const SymbolicFunction &f, const Parameters&, const string_t &na = "")#

1d parametrization from geometry (1D mapping)

parametrization from geometry and one symbolic function (1D -> 1D, only segment mapping)

Parametrization(const Geometry &g, const SymbolicFunction &f1, const SymbolicFunction &f2, const Parameters&, const string_t &na = "")#

parametrization from geometry to 2D space (2D curve or 2D mapping)

parametrization from Geometry and two symbolic functions (1D/2D -> 2D, 2D curve or 2D mapping)

Parametrization(const Geometry &g, const SymbolicFunction &f1, const SymbolicFunction &f2, const SymbolicFunction &f3, const Parameters&, const string_t &na = "")#

parametrization from geometry to 3D space (3D curve, 3D surface or 3D mapping)

parametrization from Geometry to 3D (3D curve, 3D surface or 3D mapping)

Parametrization(const Geometry &geo, par_fun, const Parameters&, const string_t &na = "", dimen_t dimp = 0)#

parametrization from a geometry and a function

Parametrization(const Parametrization&)#

copy constructor

Parametrization(Geometry *g = nullptr)#

parametrization from a geometry (composite) and default constructor

Parametrization(real_t a, real_t b, const SymbolicFunction &f, const Parameters&, const string_t &na = "")#

1d parametrization from segment [a,b] (1D mapping)

1d parametrization from segment [a,b] and one symbolic function (1D -> 1D, only segment mapping)

Parametrization(real_t a, real_t b, const SymbolicFunction &f1, const SymbolicFunction &f2, const Parameters&, const string_t &na = "")#

1d parametrization from segment [a,b] (2D curve)

1d parametrization from segment [a,b] and two symbolic functions (1D -> 2D, 2D curve)

Parametrization(real_t a, real_t b, const SymbolicFunction &f1, const SymbolicFunction &f2, const SymbolicFunction &f3, const Parameters&, const string_t &na = "")#

1d parametrization from segment [a,b] (3D curve)

Parametrization(real_t a, real_t b, par_fun, const Parameters&, const string_t &na = "", dimen_t dimp = 0)#

1d parametrization from segment [a,b] (1D mapping or 2D/3D curve)

Parametrization(real_t a, real_t b, par_fun, par_fun, const Parameters&, const string_t &na = "", dimen_t dimp = 0)#

1d parametrization from segment [a,b] (1D mapping or 2D/3D curve)

Parametrization(real_t a, real_t b, real_t c, real_t d, const SymbolicFunction &f1, const SymbolicFunction &f2, const Parameters&, const string_t &na = "")#

2d parametrization from rectangle [a,b]x[c,d] (2D mapping)

Parametrization(real_t a, real_t b, real_t c, real_t d, const SymbolicFunction &f1, const SymbolicFunction &f2, const SymbolicFunction &f3, const Parameters&, const string_t &na = "")#

2d parametrization from rectangle [a,b]x[c,d] (2D surface)

surface parametrization from rectangle [a,b]x[c,d] (3D surface)

Parametrization(real_t a, real_t b, real_t c, real_t d, par_fun, const Parameters&, const string_t &na = "", dimen_t dimp = 0)#

2d parametrization from rectangle [a,b]x[c,d] (2D mapping or 3D surface)

Parametrization(real_t a, real_t b, real_t c, real_t d, par_fun, par_fun, const Parameters&, const string_t &na = "", dimen_t dimp = 0)#

2d parametrization from rectangle [a,b]x[c,d] (2D mapping or 3D surface)

~Parametrization()#

destructor (clear pointers)

inline real_t bicurabc(const Point &P, DiffOpType d = _id) const#

< shortcut to the second curabc if few

inline real_t bicurabc(real_t t, DiffOpType d = _id) const#

< shortcut for 1D parametrization

inline real_t bicurabc(real_t u, real_t v, DiffOpType d = _id) const#

< shortcut for 2D parametrization

inline real_t bicurvature(const Point &P, DiffOpType d = _id) const#

< shortcut to the first curvature if few

inline real_t bicurvature(real_t t, DiffOpType d = _id) const#

< shortcut for 1D parametrization

inline real_t bicurvature(real_t u, real_t v, DiffOpType d = _id) const#

< shortcut for 2D parametrization

inline real_t bilength(const Point &P, DiffOpType d = _id) const#

< shortcut to the first length if few

inline real_t bilength(real_t t, DiffOpType d = _id) const#

< shortcut for 1D parametrization

inline real_t bilength(real_t u, real_t v, DiffOpType d = _id) const#

< shortcut for 2D parametrization

virtual Vector<real_t> binormal(const Point &P, DiffOpType d = _id) const#

shortcut to the second normal vector (if exists)

binormal vector (only for 3D curve)

tangent vectors

inline Vector<real_t> binormal(real_t t, DiffOpType d = _id) const#

< shortcut for 1D parametrization

inline Vector<real_t> binormal(real_t u, real_t v, DiffOpType d = _id) const#

< shortcut for 2D parametrization

virtual Vector<real_t> bitangent(const Point &P, DiffOpType d = _id) const#

shortcut to the second tangent vector

inline Vector<real_t> bitangent(real_t t, DiffOpType d = _id) const#

< shortcut for 1D parametrization

inline Vector<real_t> bitangent(real_t u, real_t v, DiffOpType d = _id) const#

< shortcut for 1D parametrization

RealPair bounds(VariableName v = _x1) const#

return bounds of geometry in v direction (_x1,_x2,_x3)

Vector<real_t> christoffel(const Point &t, DiffOpType d = _id) const#

the Christoffel symbols

the Christophel symbols are given by Cijk = 1/2*inv(g)ku*(giu_j + gju_i - gij_u) + 1/2*inv(g)kv*(giv_j + gjv_i - gij_v) where g = |guu, gvu| is the metric tensor (guv=gvu) |guv, gvv| C is the vector:[Guuu Guvu Gvuu Gvvu Guuv Guvv Gvuv Gvvv]

inline Vector<real_t> christoffel(real_t u, DiffOpType d = _id) const#

< shortcut for 1D parametrization

inline Vector<real_t> christoffel(real_t u, real_t v, DiffOpType d = _id) const#

< shortcut for 2D parametrization

void createMesh(real_t hs = 0., ShapeType sh = _noShape)#

create a mesh of the geometry

inline real_t curabc(const Point &P, DiffOpType d = _id) const#

< shortcut to the first curabc if few

inline real_t curabc(real_t t, DiffOpType d = _id) const#

< shortcut for 1D parametrization

inline real_t curabc(real_t u, real_t v, DiffOpType d = _id) const#

< shortcut for 2D parametrization

Vector<real_t> curabcs(const Point&, DiffOpType = _id) const#

curvilinear abcissa (1 or 2)

curvilinear abcissa curve: s(t)=int_0^t length(r)dr surface: s1(t)=int_0^t length1(r)dr, s2(t)=int_0^t length2(r)dr

inline Vector<real_t> curabcs(real_t t, DiffOpType d = _id) const#

< shortcut for 1D parametrization

inline Vector<real_t> curabcs(real_t u, real_t v, DiffOpType d = _id) const#

< shortcut for 2D parametrization

inline real_t curvature(const Point &P, DiffOpType d = _id) const#

< shortcut to the first curvature if few

inline real_t curvature(real_t t, DiffOpType d = _id) const#

< shortcut for 1D parametrization

inline real_t curvature(real_t u, real_t v, DiffOpType d = _id) const#

< shortcut for 2D parametrization

virtual Vector<real_t> curvatures(const Point&, DiffOpType = _id) const#

curvatures (1 or 2)

curvature 2D/3D curve: ||x”(t) ^ x’(t)||/||x’(t)||^3 3D surface: eigen values of the weingarten map (principal curvatures)

Vector<real_t> curvatures(const Point &uv, const Vector<real_t> &d) const#

Gauss curvature, mean curvature, normal curvature related to a given tangent direction (3D surface)

inline Vector<real_t> curvatures(real_t t, DiffOpType d = _id) const#

< shortcut for 1D parametrization

inline Vector<real_t> curvatures(real_t u, real_t v, DiffOpType d = _id) const#

< shortcut for 1D parametrization

inline real_t gaussCurvature(real_t u, real_t v, DiffOpType d = _id) const#

Gauss curvature (3D surface)

bool isPeriodic() const#

true if there exists at least one periodic direction

Matrix<real_t> jacobian(const Point &t, DiffOpType d = _id) const#

jacobian matrix

Jacobian matrix n x m: Jij = djP_i, i=1,n; j=1,m.

inline Matrix<real_t> jacobian(real_t u, DiffOpType d = _id) const#

< shortcut for 1D parametrization

inline Matrix<real_t> jacobian(real_t u, real_t v, DiffOpType d = _id) const#

< shortcut for 2D parametrization

inline real_t length(const Point &P, DiffOpType d = _id) const#

< shortcut to the first length if few

inline real_t length(real_t t, DiffOpType d = _id) const#

< shortcut for 1D parametrization

inline real_t length(real_t u, real_t v, DiffOpType d = _id) const#

< shortcut for 2D parametrization

virtual Vector<real_t> lengths(const Point&, DiffOpType = _id) const#

local lengths of a curve: sqrt(x1’(t)^2+x2’(t)^2+…)

inline Vector<real_t> lengths(real_t t, DiffOpType d = _id) const#

< shortcut for 1D parametrization

inline Vector<real_t> lengths(real_t u, real_t v, DiffOpType d = _id) const#

< shortcut for 2D parametrization

Geometry *locateGeometry(Point &t) const#

locate canonical geometry when parametrization of a piecewise geometry

locate canonical geometry when parametrization of a piecewise geometry 1D: assuming global parametrization t from 0 to 1 (n=nbParts number of canonical geometries) use the connectedParts_ structure (vector<vector<number_t>>) that provides a collection of connected parts each parts being a sorted collection of canonical geometries connectedParts_[0] : geom01 geom02 … n0 canonical geometries parametrized from 0 to n0/n connectedParts_[1] : geom11 geom12 … n1 canonical geometries parametrized from n0 to (n0+n1)/n connectedParts_[m] : geom11 geom12 … nm canonical geometries parametrized from (n0+n1..+nm-1)/n to 1

inline real_t meanCurvature(real_t u, real_t v, DiffOpType d = _id) const#

mean curvature (3D surface)

Vector<real_t> metricTensor(const Point &t, DiffOpType d = _id) const#

metric tensor

metric tensor given by G=Jt*J stored as a vector (G11,G21,G22,[G31,G32,G33]), size = dimg*(dimg+1)/2

inline Vector<real_t> metricTensor(real_t u, DiffOpType d = _id) const#

< shortcut for 1D parametrization

inline Vector<real_t> metricTensor(real_t u, real_t v, DiffOpType d = _id) const#

< shortcut for 2D parametrization

virtual Vector<real_t> normal(const Point &P, DiffOpType d = _id) const#

shortcut to the first normal vector

< shortcut to the first normal vector

inline Vector<real_t> normal(real_t t, DiffOpType d = _id) const#

< shortcut for 1D parametrization

inline Vector<real_t> normal(real_t u, real_t v, DiffOpType d = _id) const#

< shortcut for 1D parametrization

real_t normalCurvature(const Point &uv, const Vector<real_t> &d) const#

normal curvature related to a given tangent direction (3D surface)

Vector<real_t> normals(const Point&, DiffOpType = _id) const#

normal vectors (1 or 2)

inline Vector<real_t> normals(real_t t, DiffOpType d = _id) const#

< shortcut for 1D parametrization

inline Vector<real_t> normals(real_t u, real_t v, DiffOpType d = _id) const#

< shortcut for 2D parametrization

bool onSingularSide(const Point &p) const#

true if p is located on singular side

true if there exists at least one periodic direction

Point operator()(const Point &t, DiffOpType d = _id) const#

compute parametrization

inverse function of the parametrization

Parametrization &operator=(const Parametrization&)#

assign operator

virtual void print(std::ostream&) const#

print utility

void setCurabc(const SymbolicFunction&)#

associate symbolic function to curvilinear abcissa (2D curve)

void setCurabcs(const SymbolicFunction&, const SymbolicFunction&)#

associate symbolic function to curvilinear abcissa (3D surface)

void setCurvature(const SymbolicFunction&)#

associate symbolic function to curvature (2D curve)

void setCurvatures(const SymbolicFunction&, const SymbolicFunction&)#

associate symbolic function to curvatures (3D curve/surface)

void setinvParametrization(const SymbolicFunction&)#

associate symbolic function to invParametrization (1D parametrization)

void setinvParametrization(const SymbolicFunction&, const SymbolicFunction&)#

associate symbolic function to invParametrization (2D parametrization)

void setLength(const SymbolicFunction&)#

associate symbolic function to length/surface element

void setNormal(const SymbolicFunction&, const SymbolicFunction&)#

associate symbolic function to normal (2D curve)

void setNormal(const SymbolicFunction&, const SymbolicFunction&, const SymbolicFunction&)#

associate symbolic function to normal (3D surface)

void setNormals(const SymbolicFunction&, const SymbolicFunction&, const SymbolicFunction&, const SymbolicFunction&, const SymbolicFunction&, const SymbolicFunction&)#

associate symbolic function to normal (3D curve/surface)

void setTangent(const SymbolicFunction&, const SymbolicFunction&)#

associate symbolic function to tangent (2D curve)

void setTangent(const SymbolicFunction&, const SymbolicFunction&, const SymbolicFunction&)#

associate symbolic function to tangent (3D curve)

void setTangents(const SymbolicFunction&, const SymbolicFunction&, const SymbolicFunction&, const SymbolicFunction&, const SymbolicFunction&, const SymbolicFunction&)#

associate symbolic function to tangent (3D surface)

virtual Vector<real_t> tangent(const Point &P, DiffOpType d = _id) const#

shortcut to the first tangent vector

< shortcut to the first tangent vector

second tangent vector (only for 3D surface )

inline Vector<real_t> tangent(real_t t, DiffOpType d = _id) const#

< shortcut for 1D parametrization

inline Vector<real_t> tangent(real_t u, real_t v, DiffOpType d = _id) const#

< shortcut for 2D parametrization

Vector<real_t> tangents(const Point&, DiffOpType = _id) const#

tangent vectors (1 or 2)

inline Vector<real_t> tangents(real_t t, DiffOpType d = _id) const#

< shortcut for 1D parametrization

inline Vector<real_t> tangents(real_t u, real_t v, DiffOpType d = _id) const#

< shortcut for 2D parametrization

Point toDerParameter(const Point &t, const Point &dp) const#

compute parameter derivatives dt related to dp

local length of a curve: sqrt(d1f1^2+d1f2^2+[d1f3^2]) and sqrt(d2f1^2+d2f2^2+[d2f3^2]) if 2D parametrization

virtual Point toParameter(const Point &p) const#

inverse function of the parametrization

inline real_t toRealParameter(const Point &p) const#

< inverse function of the parametrization (restricted to curve)

real_t torsion(const Point &t, DiffOpType d) const#

torsion (only for 3D curve, requires third derivatives)

torsion only for 3D curve: det(d1f, d11f, d111f)/|d1f x d11f|

normal vector

Matrix<real_t> weingarten(const Point &t) const#

Weingarten matrix (only for 3D surface)

first fundamental form |E F| E = d1f.d1f G=d2f.d2f second fundamental form |L M| L = -d1f.d1n = d11f.n N = -d2f.d2n = d22f.n |F G| F = d1f.d2f |M N| M = -(d1f.d2n+d2f.d1n) = d12f.n 1 |LG-MF MG-NF| k1,k2 eigenvalues of W -> main curvatures Weingarten matrix W = –&#8212; | | Gauss curvature K = k1*k2 = (LN-MM)/((EG-FF) EG-FF |ME-LF NE-MF| mean curvature H =(k1+k2)/2 = (LG+EN-2MF)/2(EG-FF)

< Weingarten matrix (only for 3D surface)

inline Matrix<real_t> weingarten(real_t u, real_t v) const#

< Weingarten matrix (only for 3D surface)

Public Members

par_fun christoffel_p#

pointer to the cristoffel symbols function (may be 0)

ContinuityOrder contOrder#

continuity order (by default _Cinf), to be set by user if not _Cinf

par_fun curabc_p#

pointer to the curvilinear abcissa function (may be 0)

par_fun curvature_p#

pointer to a curvature function (may be 0)

dimen_t dim#

dimension of the arrival space, set by init()

dimen_t dimg#

dimension of the geometry, set by init()

par_fun invParametrization_p#

pointer to the inverse function (may be 0)

par_fun length_p#

pointer to a length function (may be 0)

string_t name#

a parametrization name useful for printing

par_fun normal_p#

pointer to the normal function (may be 0)

number_t np#

number of parameters used when approximating curvilinear abcissa (default=1000)

Parameters params#

optional parameter list

Vector<real_t> periods#

(u,v,w) period value (0 means non periodic)

real_t s1#

starting curvilinear abcissas (default 0)

std::list<std::pair<number_t, real_t>> singularSide#

singular side (parameter index, value); in 2D:(1,0-1)->u=0-1 or (2,0-1)->v=0-1 in 3D: two of (i,a) defining face parametrization

par_fun tangent_p#

pointer to the tangent function (may be 0)