Class xlifepp::PiecewiseParameterization#

class PiecewiseParameterization : public xlifepp::Parameterization#

PiecewiseParameterization class handles a global parameterization of multiple patches: basically a list of standard parameterizations Main data members: map<Parameterization*, vector<pair<Parameterization*,number_t> > > neighborParsMap: map Parameterization* -> neighbor Parameterizations vector vector<Point> vertices: list of all vertices of parameterizations (stored once) map<Parameterization*, vector<number_t> > vertexIndexes: map Parameterization* -> vertex numbers with parameters correspondance index: u=0->1, u=1->2, v=0->3, v=1->4, w=0->5, w=1->6 the neighbor parameterization and vertexIndexes vector are stored according to the parameters correspondance.

EXPERIMENTAL: global C0 parameterization, additional structures Vector <number_t> ns: the numbers n1, n2, n3 map<Triplet, pair<Parameterization*, Transformation*>>> parsMap: map (i,j,k) -> (Parameterization*, Transformation*) (i=1,n1, ,j=1,n2, k=1,n3) map<Parameterization*, Triplet> parsRMap: reverse map Parameterization* -> i,j,k u in [0,1] if curve, (u,v) in [0,1]x[0,1] if surface, (u,v,w) in [0,1]x[0,1]x[0,1] if volume u-interval [0,1] is split in n1 parts [0,1/n1],[1/n1,2/n1], … [(n1-1)/n1,1] defined if curve v-interval [0,1] is split in n2 parts [0,1/n2],[1/n2,2/n2], … [(n2-1)/n2,1] defined if surface w-interval [0,1] is split in n3 parts [0,1/n3],[1/n3,2/n3], … [(n3-1)/n3,1] defined if volume if defines n1 x n2 x n3 cells (Cijk)on which may be attached a parameterization Pijk or not and a tranfer fuction that maps (u,v,w) -> Tijk(n1*u-i+1, n2*v-j+1, n3*w-k+1) in [0,1]x[0,1]x[0,1] where T: [0,1]x[0,1]x[0,1] -> [0,1]x[0,1]x[0,1] is a linear transformation that maps parameters of Pijk the global parameterization may be discontinuous at interfaces except if the algorithm build continous parameterization by matching parameters on interfaces Note: Parameterization* involved here are shared pointers (no clone), null Transformation pointer means no transformation (say id) transformation pointers should be deleted as they are built on memory stack