24class 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)
gsHalfEdgeMesh is a gsMesh implementation that handles Halfedges
Definition gsHalfEdgeMesh.h:47
A matrix with arbitrary coefficient type and fixed or dynamic size.
Definition gsMatrix.h:41
Class Representing a triangle mesh with 3D vertices.
Definition gsMesh.h:32
Class which holds a list of parameters/options, and provides easy access to them.
Definition gsOptionList.h:33
Class that maintains parametrization This class Parametrization stores the mesh information and the t...
Definition gsParametrization.h:47
Nested class for plotting flat meshes restricted to [0, 1]^2.
Definition gsPeriodicParametrization.h:33
gsHalfEdgeMesh< T > m_unfolded
flat mesh possibly intersecting the domain boundaries
Definition gsPeriodicParametrization.h:79
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
gsMesh< T > createRestrictedFlatMesh() const
Trims the mesh to [0, 1]^2.
Definition gsPeriodicParametrization.hpp:154
real_t correspondingV(const VertexHandle &v0, const VertexHandle &v1, real_t u) const
Definition gsPeriodicParametrization.hpp:23
FlatMesh(const gsMesh< T > &unfolded)
Definition gsPeriodicParametrization.h:39
void addThreeFlatTrianglesOneOut(gsMesh< T > &mesh, const VertexHandle &v0, const VertexHandle &v1, const VertexHandle &v2) const
Definition gsPeriodicParametrization.hpp:38
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:27
#define index_t
Definition gsConfig.h:32
#define GISMO_ASSERT(cond, message)
Definition gsDebug.h:89
Class that maintains parametrization.
The G+Smo namespace, containing all definitions for the library.