19#include <gsUnstructuredSplines/src/gsApproxC1GluingData.h>
27template<
short_t d,
class T>
32 typedef gsContainerBasis<d, T> Basis;
33 typedef typename std::vector<Basis> BasisContainer;
34 typedef typename std::vector<gsPatchReparameterized<d,T>> C1AuxPatchContainer;
37 typedef memory::shared_ptr<gsApproxC1Edge> Ptr;
40 typedef memory::unique_ptr<gsApproxC1Edge> uPtr;
49 BasisContainer & bases,
53 : m_mp(mp), m_bases(bases), m_optionList(optionList)
58 m_auxPatches.push_back(gsPatchReparameterized<d,T>(m_mp.patch(item.
first().
patch), m_bases[item.
first().
patch]));
59 m_auxPatches.push_back(gsPatchReparameterized<d,T>(m_mp.patch(item.
second().
patch), m_bases[item.
second().
patch]));
61 std::vector<patchSide> sidesContainer(2);
62 sidesContainer[0] = item.
first();
63 sidesContainer[1] = item.
second();
65 reparametrizeInterfacePatches(sidesContainer);
67 compute(sidesContainer);
96 BasisContainer & bases,
100 : m_mp(mp), m_bases(bases), m_optionList(optionList)
104 m_auxPatches.clear();
105 m_auxPatches.push_back(gsPatchReparameterized<d,T>(m_mp.patch(item.
patch), m_bases[item.
patch]));
107 std::vector<patchSide> sidesContainer(1);
108 sidesContainer[0] = item;
110 reparametrizeSinglePatch(item.side().
index());
112 compute(sidesContainer);
131 std::vector<gsMultiPatch<T>> getEdgeBasis() {
return basisEdgeResult; };
137 BasisContainer & m_bases;
142 C1AuxPatchContainer m_auxPatches;
145 std::vector<gsMultiPatch<T>> basisEdgeResult;
153 void computeAuxTopology();
155 void reparametrizeInterfacePatches(std::vector<patchSide> & sidesContainer);
157 void reparametrizeSinglePatch(index_t side);
159 void compute(std::vector<patchSide> & sidesContainer);
165#ifndef GISMO_BUILD_LIB
166#include GISMO_HPP_HEADER(gsApproxC1Edge.hpp)
short_t index() const
Returns the index (as specified in boundary::side) of the box side.
Definition gsBoundary.h:140
Container class for a set of geometry patches and their topology, that is, the interface connections ...
Definition gsMultiPatch.h:100
Class which holds a list of parameters/options, and provides easy access to them.
Definition gsOptionList.h:33
Provides declaration of Basis abstract interface.
Provides declaration of Basis abstract interface. Similar to gsMultiBasis, but without topology.
#define GISMO_UNUSED(x)
Definition gsDebug.h:112
The G+Smo namespace, containing all definitions for the library.
Struct which represents an interface between two patches.
Definition gsBoundary.h:650
patchSide & first()
first, returns the first patchSide of this interface
Definition gsBoundary.h:776
patchSide & second()
second, returns the second patchSide of this interface
Definition gsBoundary.h:782
Struct which represents a certain side of a patch.
Definition gsBoundary.h:232
index_t patch
The index of the patch.
Definition gsBoundary.h:234