Class xlifepp::Parametrization#

class Parametrization#

Inheritance 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 > >"] "39" [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 * >"] "38" [label="std::map< string_t, number_t >" tooltip="std::map< string_t, number_t >"] "40" [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 >"] "35" [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 >"] "34" [label="std::vector< xlifepp::GeomDomain * >" tooltip="std::vector< xlifepp::GeomDomain * >"] "33" [label="std::vector< xlifepp::GeomElement * >" tooltip="std::vector< xlifepp::GeomElement * >"] "37" [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"] "32" [label="xlifepp::MeshData" tooltip="xlifepp::MeshData"] "6" [label="xlifepp::MinimalBox" tooltip="xlifepp::MinimalBox"] "36" [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"] "39" -> "40" [dir=forward tooltip="template-instance"] "10" -> "9" [dir=forward tooltip="template-instance"] "8" -> "9" [dir=forward tooltip="template-instance"] "38" -> "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"] "35" -> "5" [dir=forward tooltip="template-instance"] "11" -> "5" [dir=forward tooltip="template-instance"] "22" -> "5" [dir=forward tooltip="template-instance"] "34" -> "5" [dir=forward tooltip="template-instance"] "33" -> "5" [dir=forward tooltip="template-instance"] "37" -> "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" -> "32" [dir=forward tooltip="usage"] "31" -> "7" [dir=forward tooltip="usage"] "31" -> "33" [dir=forward tooltip="usage"] "31" -> "34" [dir=forward tooltip="usage"] "31" -> "25" [dir=forward tooltip="usage"] "31" -> "35" [dir=forward tooltip="usage"] "31" -> "31" [dir=forward tooltip="usage"] "6" -> "7" [dir=forward tooltip="usage"] "36" -> "37" [dir=forward tooltip="usage"] "36" -> "38" [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" -> "36" [dir=forward tooltip="usage"] "1" -> "39" [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

void toParameters(const std::vector<Point*> &nodes, number_t &mapIndex, std::vector<Point*> &parnodes) const#

parameters associated to a set of points

extended inversion of parametrization constructs parameters Pi associated to nodes Mi, i.e G(Pi) = Mi when parametrization is a multi-map parametrization : all Pi must be associated to the same map and the map index is returned if (Pi) may be associated to several maps, the best one is selected according to criteria handled by the parametrization dmin = min(dist(Pi,parametrization ‘singular’ points)) choose parametrization such that dmin is maximum

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

number_t nbOfMaps = 1#

number of maps associated to the parametrization

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)

mutable 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)