Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
KennethVanhoey
CGoGN
Commits
d9d6bb63
Commit
d9d6bb63
authored
Apr 27, 2012
by
Pierre Kraemer
Browse files
orbit as template -> linear solving
parent
ef19be46
Changes
7
Hide whitespace changes
Inline
Side-by-side
include/Algo/Geometry/laplacian.h
View file @
d9d6bb63
...
...
@@ -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
::
T
REAL
&
edgeWeight
,
const
typename
PFP
::
T
REAL
&
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
::
T
REAL
&
edgeWeight
,
const
typename
PFP
::
T
REAL
&
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
::
T
VEC3
&
position
)
;
const
AttributeHandler
<
typename
PFP
::
VEC3
,
VERTEX
>
&
position
)
;
template
<
typename
PFP
>
void
computeCotanWeightEdges
(
typename
PFP
::
MAP
&
map
,
const
typename
PFP
::
T
VEC3
&
position
,
typename
PFP
::
T
REAL
&
edgeWeight
,
const
AttributeHandler
<
typename
PFP
::
VEC3
,
VERTEX
>
&
position
,
AttributeHandler
<
typename
PFP
::
REAL
,
EDGE
>
&
edgeWeight
,
const
FunctorSelect
&
select
=
allDarts
)
;
}
// namespace Geoemtry
...
...
include/Algo/Geometry/laplacian.hpp
View file @
d9d6bb63
...
...
@@ -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
::
T
REAL
&
edgeWeight
,
const
typename
PFP
::
T
REAL
&
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
::
T
REAL
&
edgeWeight
,
const
typename
PFP
::
T
REAL
&
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
::
T
VEC3
&
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
::
T
VEC3
&
position
,
typename
PFP
::
T
REAL
&
edgeWeight
,
const
AttributeHandler
<
typename
PFP
::
VEC3
,
VERTEX
>
&
position
,
AttributeHandler
<
typename
PFP
::
REAL
,
EDGE
>
&
edgeWeight
,
const
FunctorSelect
&
select
)
{
TraversorE
<
typename
PFP
::
MAP
>
t
(
map
,
select
)
;
...
...
include/Algo/LinearSolving/basic.h
View file @
d9d6bb63
...
...
@@ -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
::
T
REAL
&
edgeWeight
,
const
typename
PFP
::
T
REAL
&
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
::
T
REAL
&
edgeWeight
,
const
typename
PFP
::
T
REAL
&
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
::
T
REAL
&
edgeWeight
,
const
typename
PFP
::
T
REAL
&
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
...
...
include/Algo/LinearSolving/matrixSetup.h
View file @
d9d6bb63
...
...
@@ -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
::
T
REAL
&
edgeWeight
;
const
typename
PFP
::
T
REAL
&
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
::
T
REAL
&
eWeight
,
const
typename
PFP
::
T
REAL
&
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
::
T
REAL
&
edgeWeight
;
const
typename
PFP
::
T
REAL
&
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
::
T
REAL
&
eWeight
,
const
typename
PFP
::
T
REAL
&
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
::
T
REAL
&
edgeWeight
;
const
typename
PFP
::
T
REAL
&
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
::
T
REAL
&
eWeight
,
const
typename
PFP
::
T
REAL
&
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
)
{}
...
...
include/Algo/LinearSolving/variablesSetup.h
View file @
d9d6bb63
...
...
@@ -36,17 +36,17 @@ class FunctorMeshToSolver_Scalar : public FunctorType
{
protected:
LinearSolver
<
SOLVER_TRAITS
>*
solver
;