Commit d9d6bb63 authored by Pierre Kraemer's avatar Pierre Kraemer

orbit as template -> linear solving

parent ef19be46
......@@ -40,43 +40,43 @@ template <typename PFP, typename ATTR_TYPE>
ATTR_TYPE computeLaplacianTopoVertex(
typename PFP::MAP& map,
Dart d,
const AttributeHandler<ATTR_TYPE>& attr) ;
const AttributeHandler<ATTR_TYPE, VERTEX>& attr) ;
template <typename PFP, typename ATTR_TYPE>
ATTR_TYPE computeLaplacianCotanVertex(
typename PFP::MAP& map,
Dart d,
const typename PFP::TREAL& edgeWeight,
const typename PFP::TREAL& vertexArea,
const AttributeHandler<ATTR_TYPE>& attr) ;
const AttributeHandler<typename PFP::REAL, EDGE>& edgeWeight,
const AttributeHandler<typename PFP::REAL, VERTEX>& vertexArea,
const AttributeHandler<ATTR_TYPE, VERTEX>& attr) ;
template <typename PFP, typename ATTR_TYPE>
void computeLaplacianTopoVertices(
typename PFP::MAP& map,
const AttributeHandler<ATTR_TYPE>& attr,
AttributeHandler<ATTR_TYPE>& laplacian,
const AttributeHandler<ATTR_TYPE, VERTEX>& attr,
AttributeHandler<ATTR_TYPE, VERTEX>& laplacian,
const FunctorSelect& select = allDarts) ;
template <typename PFP, typename ATTR_TYPE>
void computeLaplacianCotanVertices(
typename PFP::MAP& map,
const typename PFP::TREAL& edgeWeight,
const typename PFP::TREAL& vertexArea,
const AttributeHandler<ATTR_TYPE>& attr,
AttributeHandler<ATTR_TYPE>& laplacian,
const AttributeHandler<typename PFP::REAL, EDGE>& edgeWeight,
const AttributeHandler<typename PFP::REAL, VERTEX>& vertexArea,
const AttributeHandler<ATTR_TYPE, VERTEX>& attr,
AttributeHandler<ATTR_TYPE, VERTEX>& laplacian,
const FunctorSelect& select = allDarts) ;
template <typename PFP>
typename PFP::REAL computeCotanWeightEdge(
typename PFP::MAP& map,
Dart d,
const typename PFP::TVEC3& position) ;
const AttributeHandler<typename PFP::VEC3, VERTEX>& position) ;
template <typename PFP>
void computeCotanWeightEdges(
typename PFP::MAP& map,
const typename PFP::TVEC3& position,
typename PFP::TREAL& edgeWeight,
const AttributeHandler<typename PFP::VEC3, VERTEX>& position,
AttributeHandler<typename PFP::REAL, EDGE>& edgeWeight,
const FunctorSelect& select = allDarts) ;
} // namespace Geoemtry
......
......@@ -39,7 +39,7 @@ template <typename PFP, typename ATTR_TYPE>
ATTR_TYPE computeLaplacianTopoVertex(
typename PFP::MAP& map,
Dart d,
const AttributeHandler<ATTR_TYPE>& attr)
const AttributeHandler<ATTR_TYPE, VERTEX>& attr)
{
ATTR_TYPE l(0) ;
ATTR_TYPE value = attr[d] ;
......@@ -60,9 +60,9 @@ template <typename PFP, typename ATTR_TYPE>
ATTR_TYPE computeLaplacianCotanVertex(
typename PFP::MAP& map,
Dart d,
const typename PFP::TREAL& edgeWeight,
const typename PFP::TREAL& vertexArea,
const AttributeHandler<ATTR_TYPE>& attr)
const AttributeHandler<typename PFP::REAL, EDGE>& edgeWeight,
const AttributeHandler<typename PFP::REAL, VERTEX>& vertexArea,
const AttributeHandler<ATTR_TYPE, VERTEX>& attr)
{
ATTR_TYPE l(0) ;
typename PFP::REAL vArea = vertexArea[d] ;
......@@ -84,8 +84,8 @@ ATTR_TYPE computeLaplacianCotanVertex(
template <typename PFP, typename ATTR_TYPE>
void computeLaplacianTopoVertices(
typename PFP::MAP& map,
const AttributeHandler<ATTR_TYPE>& attr,
AttributeHandler<ATTR_TYPE>& laplacian,
const AttributeHandler<ATTR_TYPE, VERTEX>& attr,
AttributeHandler<ATTR_TYPE, VERTEX>& laplacian,
const FunctorSelect& select)
{
TraversorV<typename PFP::MAP> t(map, select) ;
......@@ -96,10 +96,10 @@ void computeLaplacianTopoVertices(
template <typename PFP, typename ATTR_TYPE>
void computeLaplacianCotanVertices(
typename PFP::MAP& map,
const typename PFP::TREAL& edgeWeight,
const typename PFP::TREAL& vertexArea,
const AttributeHandler<ATTR_TYPE>& attr,
AttributeHandler<ATTR_TYPE>& laplacian,
const AttributeHandler<typename PFP::REAL, EDGE>& edgeWeight,
const AttributeHandler<typename PFP::REAL, VERTEX>& vertexArea,
const AttributeHandler<ATTR_TYPE, VERTEX>& attr,
AttributeHandler<ATTR_TYPE, VERTEX>& laplacian,
const FunctorSelect& select)
{
TraversorV<typename PFP::MAP> t(map, select) ;
......@@ -111,7 +111,7 @@ template <typename PFP>
typename PFP::REAL computeCotanWeightEdge(
typename PFP::MAP& map,
Dart d,
const typename PFP::TVEC3& position)
const AttributeHandler<typename PFP::VEC3, VERTEX>& position)
{
if(map.isBoundaryEdge(d))
{
......@@ -138,8 +138,8 @@ typename PFP::REAL computeCotanWeightEdge(
template <typename PFP>
void computeCotanWeightEdges(
typename PFP::MAP& map,
const typename PFP::TVEC3& position,
typename PFP::TREAL& edgeWeight,
const AttributeHandler<typename PFP::VEC3, VERTEX>& position,
AttributeHandler<typename PFP::REAL, EDGE>& edgeWeight,
const FunctorSelect& select)
{
TraversorE<typename PFP::MAP> t(map, select) ;
......
......@@ -65,25 +65,25 @@ template <typename PFP, typename ATTR_TYPE, class SOLVER_TRAITS>
void setupVariables(
typename PFP::MAP& m,
LinearSolver<SOLVER_TRAITS>* s,
const AttributeHandler<unsigned int> index,
CellMarker& lm,
const AttributeHandler<ATTR_TYPE>& attr)
const AttributeHandler<unsigned int, VERTEX>& index,
CellMarker<VERTEX>& lm,
const AttributeHandler<ATTR_TYPE, VERTEX>& attr)
{
FunctorMeshToSolver_Scalar<PFP, ATTR_TYPE, SOLVER_TRAITS> fmts(s, index, lm, attr) ;
m.foreach_orbit(VERTEX, fmts) ;
m.template foreach_orbit<VERTEX>(fmts) ;
}
template <typename PFP, typename ATTR_TYPE, class SOLVER_TRAITS>
void setupVariables(
typename PFP::MAP& m,
LinearSolver<SOLVER_TRAITS>* s,
const AttributeHandler<unsigned int> index,
CellMarker& lm,
const AttributeHandler<ATTR_TYPE>& attr,
const AttributeHandler<unsigned int, VERTEX>& index,
CellMarker<VERTEX>& lm,
const AttributeHandler<ATTR_TYPE, VERTEX>& attr,
unsigned int coord)
{
FunctorMeshToSolver_Vector<PFP, ATTR_TYPE, SOLVER_TRAITS> fmts(s, index, lm, attr, coord) ;
m.foreach_orbit(VERTEX, fmts) ;
m.template foreach_orbit<VERTEX>(fmts) ;
}
/*******************************************************************************
......@@ -104,50 +104,50 @@ template <typename PFP, typename ATTR_TYPE, class SOLVER_TRAITS>
void addRowsRHS_Equality(
typename PFP::MAP& m,
LinearSolver<SOLVER_TRAITS>* s,
const AttributeHandler<unsigned int> index,
const AttributeHandler<ATTR_TYPE>& attr,
const AttributeHandler<typename PFP::REAL>& weight)
const AttributeHandler<unsigned int, VERTEX>& index,
const AttributeHandler<ATTR_TYPE, VERTEX>& attr,
const AttributeHandler<typename PFP::REAL, VERTEX>& weight)
{
FunctorEquality_PerVertexWeight_Scalar<PFP, ATTR_TYPE, SOLVER_TRAITS> ec(s, index, attr, weight) ;
m.foreach_orbit(VERTEX, ec) ;
m.template foreach_orbit<VERTEX>(ec) ;
}
template <typename PFP, typename ATTR_TYPE, class SOLVER_TRAITS>
void addRowsRHS_Equality(
typename PFP::MAP& m,
LinearSolver<SOLVER_TRAITS>* s,
const AttributeHandler<unsigned int> index,
const AttributeHandler<ATTR_TYPE>& attr,
const AttributeHandler<unsigned int, VERTEX>& index,
const AttributeHandler<ATTR_TYPE, VERTEX>& attr,
float weight)
{
FunctorEquality_UniformWeight_Scalar<PFP, ATTR_TYPE, SOLVER_TRAITS> ec(s, index, attr, weight) ;
m.foreach_orbit(VERTEX, ec) ;
m.template foreach_orbit<VERTEX>(ec) ;
}
template <typename PFP, typename ATTR_TYPE, class SOLVER_TRAITS>
void addRowsRHS_Equality(
typename PFP::MAP& m,
LinearSolver<SOLVER_TRAITS>* s,
const AttributeHandler<unsigned int> index,
const AttributeHandler<ATTR_TYPE>& attr,
const AttributeHandler<typename PFP::REAL>& weight,
const AttributeHandler<unsigned int, VERTEX>& index,
const AttributeHandler<ATTR_TYPE, VERTEX>& attr,
const AttributeHandler<typename PFP::REAL, VERTEX>& weight,
unsigned int coord)
{
FunctorEquality_PerVertexWeight_Vector<PFP, ATTR_TYPE, SOLVER_TRAITS> ec(s, index, attr, weight, coord) ;
m.foreach_orbit(VERTEX, ec) ;
m.template foreach_orbit<VERTEX>(ec) ;
}
template <typename PFP, typename ATTR_TYPE, class SOLVER_TRAITS>
void addRowsRHS_Equality(
typename PFP::MAP& m,
LinearSolver<SOLVER_TRAITS>* s,
const AttributeHandler<unsigned int> index,
const AttributeHandler<ATTR_TYPE>& attr,
const AttributeHandler<unsigned int, VERTEX>& index,
const AttributeHandler<ATTR_TYPE, VERTEX>& attr,
float weight,
unsigned int coord)
{
FunctorEquality_UniformWeight_Vector<PFP, ATTR_TYPE, SOLVER_TRAITS> ec(s, index, attr, weight, coord) ;
m.foreach_orbit(VERTEX, ec) ;
m.template foreach_orbit<VERTEX>(ec) ;
}
/*******************************************************************************
......@@ -158,33 +158,33 @@ template <typename PFP, class SOLVER_TRAITS>
void addRows_Laplacian_Topo(
typename PFP::MAP& m,
LinearSolver<SOLVER_TRAITS>* s,
const AttributeHandler<unsigned int> index)
const AttributeHandler<unsigned int, VERTEX> index)
{
FunctorLaplacianTopo<PFP, SOLVER_TRAITS> flt(m, s, index) ;
m.foreach_orbit(VERTEX, flt) ;
m.template foreach_orbit<VERTEX>(flt) ;
}
template <typename PFP, typename ATTR_TYPE, class SOLVER_TRAITS>
void addRowsRHS_Laplacian_Topo(
typename PFP::MAP& m,
LinearSolver<SOLVER_TRAITS>* s,
const AttributeHandler<unsigned int> index,
const AttributeHandler<ATTR_TYPE>& attr)
const AttributeHandler<unsigned int, VERTEX> index,
const AttributeHandler<ATTR_TYPE, VERTEX>& attr)
{
FunctorLaplacianTopoRHS_Scalar<PFP, ATTR_TYPE, SOLVER_TRAITS> flt(m, s, index, attr) ;
m.foreach_orbit(VERTEX, flt) ;
m.template foreach_orbit<VERTEX>(flt) ;
}
template <typename PFP, typename ATTR_TYPE, class SOLVER_TRAITS>
void addRowsRHS_Laplacian_Topo(
typename PFP::MAP& m,
LinearSolver<SOLVER_TRAITS>* s,
const AttributeHandler<unsigned int> index,
const AttributeHandler<ATTR_TYPE>& attr,
const AttributeHandler<unsigned int, VERTEX> index,
const AttributeHandler<ATTR_TYPE, VERTEX>& attr,
unsigned int coord)
{
FunctorLaplacianTopoRHS_Vector<PFP, ATTR_TYPE, SOLVER_TRAITS> flt(m, s, index, attr, coord) ;
m.foreach_orbit(VERTEX, flt) ;
m.template foreach_orbit<VERTEX>(flt) ;
}
/*******************************************************************************
......@@ -195,39 +195,39 @@ template <typename PFP, class SOLVER_TRAITS>
void addRows_Laplacian_Cotan(
typename PFP::MAP& m,
LinearSolver<SOLVER_TRAITS>* s,
const AttributeHandler<unsigned int> index,
const typename PFP::TREAL& edgeWeight,
const typename PFP::TREAL& vertexArea)
const AttributeHandler<unsigned int, VERTEX> index,
const AttributeHandler<typename PFP::REAL, EDGE>& edgeWeight,
const AttributeHandler<typename PFP::REAL, VERTEX>& vertexArea)
{
FunctorLaplacianCotan<PFP, SOLVER_TRAITS> flc(m, s, index, edgeWeight, vertexArea) ;
m.foreach_orbit(VERTEX, flc) ;
m.template foreach_orbit<VERTEX>(flc) ;
}
template <typename PFP, typename ATTR_TYPE, class SOLVER_TRAITS>
void addRowsRHS_Laplacian_Cotan(
typename PFP::MAP& m,
LinearSolver<SOLVER_TRAITS>* s,
const AttributeHandler<unsigned int> index,
const typename PFP::TREAL& edgeWeight,
const typename PFP::TREAL& vertexArea,
const AttributeHandler<ATTR_TYPE>& attr)
const AttributeHandler<unsigned int, VERTEX> index,
const AttributeHandler<typename PFP::REAL, EDGE>& edgeWeight,
const AttributeHandler<typename PFP::REAL, VERTEX>& vertexArea,
const AttributeHandler<ATTR_TYPE, VERTEX>& attr)
{
FunctorLaplacianCotanRHS_Scalar<PFP, ATTR_TYPE, SOLVER_TRAITS> flc(m, s, index, edgeWeight, vertexArea, attr) ;
m.foreach_orbit(VERTEX, flc) ;
m.template foreach_orbit<VERTEX>(flc) ;
}
template <typename PFP, typename ATTR_TYPE, class SOLVER_TRAITS>
void addRowsRHS_Laplacian_Cotan(
typename PFP::MAP& m,
LinearSolver<SOLVER_TRAITS>* s,
const AttributeHandler<unsigned int> index,
const typename PFP::TREAL& edgeWeight,
const typename PFP::TREAL& vertexArea,
const AttributeHandler<ATTR_TYPE>& attr,
const AttributeHandler<unsigned int, VERTEX> index,
const AttributeHandler<typename PFP::REAL, EDGE>& edgeWeight,
const AttributeHandler<typename PFP::REAL, VERTEX>& vertexArea,
const AttributeHandler<ATTR_TYPE, VERTEX>& attr,
unsigned int coord)
{
FunctorLaplacianCotanRHS_Vector<PFP, ATTR_TYPE, SOLVER_TRAITS> flc(m, s, index, edgeWeight, vertexArea, attr, coord) ;
m.foreach_orbit(VERTEX, flc) ;
m.template foreach_orbit<VERTEX>(flc) ;
}
/*******************************************************************************
......@@ -268,23 +268,23 @@ template <typename PFP, typename ATTR_TYPE, class SOLVER_TRAITS>
void getResult(
typename PFP::MAP& m,
LinearSolver<SOLVER_TRAITS>* s,
const AttributeHandler<unsigned int> index,
AttributeHandler<ATTR_TYPE>& attr)
const AttributeHandler<unsigned int, VERTEX> index,
AttributeHandler<ATTR_TYPE, VERTEX>& attr)
{
FunctorSolverToMesh_Scalar<PFP, ATTR_TYPE, SOLVER_TRAITS> fstm(s, index, attr) ;
m.foreach_orbit(VERTEX, fstm) ;
m.template foreach_orbit<VERTEX>(fstm) ;
}
template <typename PFP, typename ATTR_TYPE, class SOLVER_TRAITS>
void getResult(
typename PFP::MAP& m,
LinearSolver<SOLVER_TRAITS>* s,
const AttributeHandler<unsigned int> index,
AttributeHandler<ATTR_TYPE>& attr,
const AttributeHandler<unsigned int, VERTEX> index,
AttributeHandler<ATTR_TYPE, VERTEX>& attr,
unsigned int coord)
{
FunctorSolverToMesh_Vector<PFP, ATTR_TYPE, SOLVER_TRAITS> fstm(s, index, attr, coord) ;
m.foreach_orbit(VERTEX, fstm) ;
m.template foreach_orbit<VERTEX>(fstm) ;
}
} // namespace LinearSolving
......
......@@ -40,16 +40,16 @@ class FunctorEquality_PerVertexWeight_Scalar : public FunctorType
{
protected:
LinearSolver<SOLVER_TRAITS>* solver ;
const AttributeHandler<unsigned int>& indexTable ;
const AttributeHandler<ATTR_TYPE>& attrTable ;
const AttributeHandler<typename PFP::REAL>& weightTable ;
const AttributeHandler<unsigned int, VERTEX>& indexTable ;
const AttributeHandler<ATTR_TYPE, VERTEX>& attrTable ;
const AttributeHandler<typename PFP::REAL, VERTEX>& weightTable ;
public:
FunctorEquality_PerVertexWeight_Scalar(
LinearSolver<SOLVER_TRAITS>* s,
const AttributeHandler<unsigned int>& index,
const AttributeHandler<ATTR_TYPE>& attr,
const AttributeHandler<typename PFP::REAL>& weight
const AttributeHandler<unsigned int, VERTEX>& index,
const AttributeHandler<ATTR_TYPE, VERTEX>& attr,
const AttributeHandler<typename PFP::REAL, VERTEX>& weight
) : solver(s), indexTable(index), attrTable(attr), weightTable(weight)
{}
......@@ -69,15 +69,15 @@ class FunctorEquality_UniformWeight_Scalar : public FunctorType
{
protected:
LinearSolver<SOLVER_TRAITS>* solver ;
const AttributeHandler<unsigned int>& indexTable ;
const AttributeHandler<ATTR_TYPE>& attrTable ;
const AttributeHandler<unsigned int, VERTEX>& indexTable ;
const AttributeHandler<ATTR_TYPE, VERTEX>& attrTable ;
float weight ;
public:
FunctorEquality_UniformWeight_Scalar(
LinearSolver<SOLVER_TRAITS>* s,
const AttributeHandler<unsigned int>& index,
const AttributeHandler<ATTR_TYPE>& attr,
const AttributeHandler<unsigned int, VERTEX>& index,
const AttributeHandler<ATTR_TYPE, VERTEX>& attr,
float w
) : solver(s), indexTable(index), attrTable(attr), weight(w)
{}
......@@ -102,17 +102,17 @@ class FunctorEquality_PerVertexWeight_Vector : public FunctorType
{
protected:
LinearSolver<SOLVER_TRAITS>* solver ;
const AttributeHandler<unsigned int>& indexTable ;
const AttributeHandler<ATTR_TYPE>& attrTable ;
const AttributeHandler<typename PFP::REAL>& weightTable ;
const AttributeHandler<unsigned int, VERTEX>& indexTable ;
const AttributeHandler<ATTR_TYPE, VERTEX>& attrTable ;
const AttributeHandler<typename PFP::REAL, VERTEX>& weightTable ;
unsigned int coord ;
public:
FunctorEquality_PerVertexWeight_Vector(
LinearSolver<SOLVER_TRAITS>* s,
const AttributeHandler<unsigned int>& index,
const AttributeHandler<ATTR_TYPE>& attr,
const AttributeHandler<typename PFP::REAL>& weight,
const AttributeHandler<unsigned int, VERTEX>& index,
const AttributeHandler<ATTR_TYPE, VERTEX>& attr,
const AttributeHandler<typename PFP::REAL, VERTEX>& weight,
unsigned int c
) : solver(s), indexTable(index), attrTable(attr), weightTable(weight), coord(c)
{}
......@@ -133,16 +133,16 @@ class FunctorEquality_UniformWeight_Vector : public FunctorType
{
protected:
LinearSolver<SOLVER_TRAITS>* solver ;
const AttributeHandler<unsigned int>& indexTable ;
const AttributeHandler<ATTR_TYPE>& attrTable ;
const AttributeHandler<unsigned int, VERTEX>& indexTable ;
const AttributeHandler<ATTR_TYPE, VERTEX>& attrTable ;
float weight ;
unsigned int coord ;
public:
FunctorEquality_UniformWeight_Vector(
LinearSolver<SOLVER_TRAITS>* s,
const AttributeHandler<unsigned int>& index,
const AttributeHandler<ATTR_TYPE>& attr,
const AttributeHandler<unsigned int, VERTEX>& index,
const AttributeHandler<ATTR_TYPE, VERTEX>& attr,
float w,
unsigned int c
) : solver(s), indexTable(index), attrTable(attr), weight(w), coord(c)
......@@ -168,7 +168,7 @@ class FunctorLaplacianTopo : public FunctorMap<typename PFP::MAP>
{
protected:
LinearSolver<SOLVER_TRAITS>* solver ;
const AttributeHandler<unsigned int>& indexTable ;
const AttributeHandler<unsigned int, VERTEX>& indexTable ;
public:
typedef typename PFP::MAP MAP ;
......@@ -177,7 +177,7 @@ public:
FunctorLaplacianTopo(
MAP& m,
LinearSolver<SOLVER_TRAITS>* s,
const AttributeHandler<unsigned int>& index
const AttributeHandler<unsigned int, VERTEX>& index
) : FunctorMap<MAP>(m), solver(s), indexTable(index)
{}
......@@ -209,8 +209,8 @@ class FunctorLaplacianTopoRHS_Scalar : public FunctorMap<typename PFP::MAP>
{
protected:
LinearSolver<SOLVER_TRAITS>* solver ;
const AttributeHandler<unsigned int>& indexTable ;
const AttributeHandler<ATTR_TYPE>& attrTable ;
const AttributeHandler<unsigned int, VERTEX>& indexTable ;
const AttributeHandler<ATTR_TYPE, VERTEX>& attrTable ;
public:
typedef typename PFP::MAP MAP ;
......@@ -219,8 +219,8 @@ public:
FunctorLaplacianTopoRHS_Scalar(
MAP& m,
LinearSolver<SOLVER_TRAITS>* s,
const AttributeHandler<unsigned int>& index,
const AttributeHandler<ATTR_TYPE>& attr
const AttributeHandler<unsigned int, VERTEX>& index,
const AttributeHandler<ATTR_TYPE, VERTEX>& attr
) : FunctorMap<MAP>(m), solver(s), indexTable(index), attrTable(attr)
{}
......@@ -252,8 +252,8 @@ class FunctorLaplacianTopoRHS_Vector : public FunctorMap<typename PFP::MAP>
{
protected:
LinearSolver<SOLVER_TRAITS>* solver ;
const AttributeHandler<unsigned int>& indexTable ;
const AttributeHandler<ATTR_TYPE>& attrTable ;
const AttributeHandler<unsigned int, VERTEX>& indexTable ;
const AttributeHandler<ATTR_TYPE, VERTEX>& attrTable ;
unsigned int coord ;
public:
......@@ -263,8 +263,8 @@ public:
FunctorLaplacianTopoRHS_Vector(
MAP& m,
LinearSolver<SOLVER_TRAITS>* s,
const AttributeHandler<unsigned int>& index,
const AttributeHandler<ATTR_TYPE>& attr,
const AttributeHandler<unsigned int, VERTEX>& index,
const AttributeHandler<ATTR_TYPE, VERTEX>& attr,
unsigned int c
) : FunctorMap<MAP>(m), solver(s), indexTable(index), attrTable(attr), coord(c)
{}
......@@ -297,9 +297,9 @@ class FunctorLaplacianCotan : public FunctorMap<typename PFP::MAP>
{
protected:
LinearSolver<SOLVER_TRAITS>* solver ;
const AttributeHandler<unsigned int>& indexTable ;
const typename PFP::TREAL& edgeWeight ;
const typename PFP::TREAL& vertexArea ;
const AttributeHandler<unsigned int, VERTEX>& indexTable ;
const AttributeHandler<typename PFP::REAL, EDGE>& edgeWeight ;
const AttributeHandler<typename PFP::REAL, VERTEX>& vertexArea ;
public:
typedef typename PFP::MAP MAP ;
......@@ -308,9 +308,9 @@ public:
FunctorLaplacianCotan(
MAP& m,
LinearSolver<SOLVER_TRAITS>* s,
const AttributeHandler<unsigned int>& index,
const typename PFP::TREAL& eWeight,
const typename PFP::TREAL& vArea
const AttributeHandler<unsigned int, VERTEX>& index,
const AttributeHandler<typename PFP::REAL, EDGE>& eWeight,
const AttributeHandler<typename PFP::REAL, VERTEX>& vArea
) : FunctorMap<MAP>(m), solver(s), indexTable(index), edgeWeight(eWeight), vertexArea(vArea)
{}
......@@ -346,10 +346,10 @@ class FunctorLaplacianCotanRHS_Scalar : public FunctorMap<typename PFP::MAP>
{
protected:
LinearSolver<SOLVER_TRAITS>* solver ;
const AttributeHandler<unsigned int>& indexTable ;
const typename PFP::TREAL& edgeWeight ;
const typename PFP::TREAL& vertexArea ;
const AttributeHandler<ATTR_TYPE>& attrTable ;
const AttributeHandler<unsigned int, VERTEX>& indexTable ;
const AttributeHandler<typename PFP::REAL, EDGE>& edgeWeight ;
const AttributeHandler<typename PFP::REAL, VERTEX>& vertexArea ;
const AttributeHandler<ATTR_TYPE, VERTEX>& attrTable ;
public:
typedef typename PFP::MAP MAP ;
......@@ -358,10 +358,10 @@ public:
FunctorLaplacianCotanRHS_Scalar(
MAP& m,
LinearSolver<SOLVER_TRAITS>* s,
const AttributeHandler<unsigned int>& index,
const typename PFP::TREAL& eWeight,
const typename PFP::TREAL& vArea,
const AttributeHandler<ATTR_TYPE>& attr
const AttributeHandler<unsigned int, VERTEX>& index,
const AttributeHandler<typename PFP::REAL, EDGE>& eWeight,
const AttributeHandler<typename PFP::REAL, VERTEX>& vArea,
const AttributeHandler<ATTR_TYPE, VERTEX>& attr
) : FunctorMap<MAP>(m), solver(s), indexTable(index), edgeWeight(eWeight), vertexArea(vArea), attrTable(attr)
{}
......@@ -394,10 +394,10 @@ class FunctorLaplacianCotanRHS_Vector : public FunctorMap<typename PFP::MAP>
{
protected:
LinearSolver<SOLVER_TRAITS>* solver ;
const AttributeHandler<unsigned int>& indexTable ;
const typename PFP::TREAL& edgeWeight ;
const typename PFP::TREAL& vertexArea ;
const AttributeHandler<ATTR_TYPE>& attrTable ;
const AttributeHandler<unsigned int, VERTEX>& indexTable ;
const AttributeHandler<typename PFP::REAL, EDGE>& edgeWeight ;
const AttributeHandler<typename PFP::REAL, VERTEX>& vertexArea ;
const AttributeHandler<ATTR_TYPE, VERTEX>& attrTable ;
unsigned int coord ;
public:
......@@ -407,10 +407,10 @@ public:
FunctorLaplacianCotanRHS_Vector(
MAP& m,
LinearSolver<SOLVER_TRAITS>* s,
const AttributeHandler<unsigned int>& index,
const typename PFP::TREAL& eWeight,
const typename PFP::TREAL& vArea,
const AttributeHandler<ATTR_TYPE>& attr,
const AttributeHandler<unsigned int, VERTEX>& index,
const AttributeHandler<typename PFP::REAL, EDGE>& eWeight,
const AttributeHandler<typename PFP::REAL, VERTEX>& vArea,
const AttributeHandler<ATTR_TYPE, VERTEX>& attr,
unsigned int c
) : FunctorMap<MAP>(m), solver(s), indexTable(index), edgeWeight(eWeight), vertexArea(vArea), attrTable(attr), coord(c)
{}
......
......@@ -36,17 +36,17 @@ class FunctorMeshToSolver_Scalar : public FunctorType
{
protected:
LinearSolver<SOLVER_TRAITS>* solver ;
const AttributeHandler<unsigned int>& indexTable ;
CellMarker& lockingMarker ;
const AttributeHandler<ATTR_TYPE>& attrTable ;
const AttributeHandler<unsigned int, VERTEX>& indexTable ;
CellMarker<VERTEX>& lockingMarker ;
const AttributeHandler<ATTR_TYPE, VERTEX>& attrTable ;
bool lockedVertices ;
public:
FunctorMeshToSolver_Scalar(
LinearSolver<SOLVER_TRAITS>* s,
const AttributeHandler<unsigned int> index,
CellMarker& lm,
const AttributeHandler<ATTR_TYPE>& attr
const AttributeHandler<unsigned int, VERTEX>& index,
CellMarker<VERTEX>& lm,
const AttributeHandler<ATTR_TYPE, VERTEX>& attr
) : solver(s), indexTable(index), lockingMarker(lm), attrTable(attr), lockedVertices(false)
{}
......@@ -68,18 +68,18 @@ class FunctorMeshToSolver_Vector : public FunctorType
{