24 class gsPeriodicParametrization :
public gsParametrization<T>
29 typedef memory::shared_ptr<gsPeriodicParametrization<T> > uPtr;
51 const VertexHandle& v1,
59 const VertexHandle& v0,
60 const VertexHandle& v1,
61 const VertexHandle& v2)
const;
68 const VertexHandle& v0,
69 const VertexHandle& v1,
70 const VertexHandle& v2)
const;
74 const VertexHandle& v0,
75 const VertexHandle& v1,
76 const VertexHandle& v2)
const;
92 gsPeriodicParametrization(
const gsMesh<T>& mesh,
99 m_paramsV0(paramsV0), m_paramsV1(paramsV1),
100 m_indicesV0(this->indices(verticesV0)),
101 m_indicesV1(this->indices(verticesV1))
103 GISMO_ASSERT(this->m_paramsV0.rows() == 1,
"one row expected in paramsV0");
104 GISMO_ASSERT(this->m_paramsV1.rows() == 1,
"one row expected in paramsV1");
107 "paramsV0 and valuesV0 are required to have the same number of cols");
109 "paramsV1 and valuesV1 are required to have the same number of cols");
122 real_t uMin = 0, real_t uMax = 1)
const;
125 virtual void compute() = 0;
133 void initParameterPoints();
139 const std::vector<size_t> m_indicesV0;
140 const std::vector<size_t> m_indicesV1;
146 #ifndef GISMO_BUILD_LIB
147 #include GISMO_HPP_HEADER(gsPeriodicParametrization.hpp)
Class that maintains parametrization This class Parametrization stores the mesh information and the t...
Definition: gsParametrization.h:46
real_t correspondingV(const VertexHandle &v0, const VertexHandle &v1, real_t u) const
Definition: gsPeriodicParametrization.hpp:23
gsHalfEdgeMesh< T > m_unfolded
flat mesh possibly intersecting the domain boundaries
Definition: gsPeriodicParametrization.h:79
#define index_t
Definition: gsConfig.h:32
gsMesh< T > createRestrictedFlatMesh() const
Trims the mesh to [0, 1]^2.
Definition: gsPeriodicParametrization.hpp:154
#define GISMO_ASSERT(cond, message)
Definition: gsDebug.h:89
Class Representing a triangle mesh with 3D vertices.
Definition: gsMesh.h:31
void addOneFlatTriangleNotIntersectingBoundary(gsMesh< T > &mesh, const VertexHandle &v0, const VertexHandle &v1, const VertexHandle &v2) const
Adds a flat triangle and shifts it inside the domain if necessary.
Definition: gsPeriodicParametrization.hpp:109
Class that maintains parametrization.
FlatMesh(const gsMesh< T > &unfolded)
Definition: gsPeriodicParametrization.h:39
Nested class for plotting flat meshes restricted to [0, 1]^2.
Definition: gsPeriodicParametrization.h:32
void addThreeFlatTrianglesOneOut(gsMesh< T > &mesh, const VertexHandle &v0, const VertexHandle &v1, const VertexHandle &v2) const
Definition: gsPeriodicParametrization.hpp:38
Class which holds a list of parameters/options, and provides easy access to them. ...
Definition: gsOptionList.h:32
gsHalfEdgeMesh is a gsMesh implementation that handles Halfedges
Definition: gsHalfEdgeMesh.h:46
void addThreeFlatTrianglesTwoOut(gsMesh< T > &mesh, const VertexHandle &v0, const VertexHandle &v1, const VertexHandle &v2) const
Definition: gsPeriodicParametrization.hpp:84
gsVertex class that represents a 3D vertex for a gsMesh.
Definition: gsVertex.h:26