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
Thomas Pitiot
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
;