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
Hurstel
CGoGN
Commits
e0307c22
Commit
e0307c22
authored
Jan 15, 2013
by
untereiner
Browse files
changing some namespace path
parent
97325e21
Changes
12
Hide whitespace changes
Inline
Side-by-side
Apps/Tuto/tuto_dual2.cpp
View file @
e0307c22
...
...
@@ -70,24 +70,86 @@ int main(int argc, char **argv)
//
// Dual
//
// FaceAttribute<PFP::VEC3> positionF = myMap.getAttribute<PFP::VEC3, FACE>("position") ;
// if(!positionF.isValid())
// positionF = myMap.addAttribute<PFP::VEC3, FACE>("position") ;
//
// Algo::Surface::Geometry::computeCentroidFaces<PFP>(myMap, position, positionF) ;
// myMap.computeDual();
// position = positionF ;
// FaceAttribute<PFP::VEC3> positionF = myMap.getAttribute<PFP::VEC3, FACE>("position") ;
// if(!positionF.isValid())
// positionF = myMap.addAttribute<PFP::VEC3, FACE>("position") ;
// AttributeHandler<PFP::VEC3, PFP::MAP::EDGE_OF_PARENT> positionE = myMap.getAttribute<PFP::VEC3, PFP::MAP::EDGE_OF_PARENT>("position") ;
// if(!positionE.isValid())
// positionE = myMap.addAttribute<PFP::VEC3, PFP::MAP::EDGE_OF_PARENT>("position") ;
//
// SelectorDartBoundary<PFP::MAP> sdb(myMap);
// TraversorE<PFP::MAP> te(myMap, sdb);
// for(Dart dit = te.begin() ; dit != te.end() ; dit = te.next())
// {
// positionE[dit] = (position[dit] + position[myMap.phi1(dit)]) * PFP::REAL(0.5);
// }
//
// std::cout << "boundary edges centroids : ok" << std::endl;
//
// //triangule old boundary faces
// std::vector<Dart> oldb;
//
// std::cout << "nb darts : " << myMap.getNbDarts() << std::endl;
//
// CellMarker<FACE> cmf(myMap);
// for(Dart d = myMap.begin(); d != myMap.end(); myMap.next(d))
// {
// if(!cmf.isMarked(d) && myMap.isBoundaryMarked2(d))
// {
// oldb.push_back(d);
// cmf.mark(d);
// std::cout << "d = " << d << std::endl;
// }
// }
//
// for(std::vector<Dart>::iterator it = oldb.begin() ; it != oldb.end() ; ++it)
// {
// Dart db = *it;
// Dart d1 = myMap.phi1(db);
// myMap.splitFace(db, d1) ;
// myMap.cutEdge(myMap.phi_1(db)) ;
// Dart x = myMap.phi2(myMap.phi_1(db)) ;
// Dart dd = myMap.phi1(myMap.phi1(myMap.phi1(x)));
// while(dd != x)
// {
// Dart next = myMap.phi1(dd) ;
// myMap.splitFace(dd, myMap.phi1(x)) ;
// dd = next ;
// }
//
// }
//
// std::cout << "boundary face triangulation : ok" << std::endl;
//
// myMap.swapEmbeddingContainers(FACE, PFP::MAP::EDGE_OF_PARENT) ;
//
// std::cout << "swap containers : ok" << std::endl;
//
// FaceAttribute<PFP::VEC3> positionF;
// positionF = positionE;
//
// Algo::Surface::Geometry::computeCentroidFaces<PFP>(myMap, position, positionF) ;
//
// for(std::vector<Dart>::iterator it = oldb.begin() ; it != oldb.end() ; ++it)
// {
// myMap.fillHole(*it);
// }
//
// std::cout << "fillHole : ok" << std::endl;
//
// myMap.computeDual();
//
// //myMap.closeMap();
//
// position = positionF ;
EdgeAttribute
<
PFP
::
VEC3
>
positionE
=
myMap
.
getAttribute
<
PFP
::
VEC3
,
Edge
>
(
"position"
)
;
if
(
!
positionE
.
isValid
())
positionE
=
myMap
.
addAttribute
<
PFP
::
VEC3
,
EDGE
>
(
"position"
)
;
Algo
::
Surface
::
Geometry
::
computeCentroidEdges
<
PFP
>
(
myMap
,
position
,
positionF
)
;
myMap
.
computeDual
();
position
=
positionF
;
myMap
.
check
();
//
// myMap.check();
Algo
::
Surface
::
Export
::
exportOFF
<
PFP
>
(
myMap
,
position
,
"result.off"
);
std
::
cout
<<
"Exported"
<<
std
::
endl
;
...
...
include/Algo/Multiresolution/Map2MR/Filters/Dual/catmullClark.h
View file @
e0307c22
...
...
@@ -46,7 +46,7 @@ namespace Filters
{
template
<
typename
PFP
>
class
CCVertexSynthesisFilter
:
public
Filter
class
CCVertexSynthesisFilter
:
public
Algo
::
MR
::
Filter
{
protected:
typename
PFP
::
MAP
&
m_map
;
...
...
include/Algo/Multiresolution/Map2MR/Filters/bertram.h
View file @
e0307c22
...
...
@@ -54,7 +54,7 @@ namespace Filters
//w-lift(a)
template
<
typename
PFP
>
class
Ber02OddSynthesisFilter
:
public
Filter
class
Ber02OddSynthesisFilter
:
public
Algo
::
MR
::
Filter
{
protected:
typename
PFP
::
MAP
&
m_map
;
...
...
@@ -175,7 +175,7 @@ public:
// s-lift(a)
template
<
typename
PFP
>
class
Ber02EvenSynthesisFilter
:
public
Filter
class
Ber02EvenSynthesisFilter
:
public
Algo
::
MR
::
Filter
{
protected:
typename
PFP
::
MAP
&
m_map
;
...
...
@@ -356,7 +356,7 @@ public:
// s-scale(a)
template
<
typename
PFP
>
class
Ber02ScaleSynthesisFilter
:
public
Filter
class
Ber02ScaleSynthesisFilter
:
public
Algo
::
MR
::
Filter
{
protected:
typename
PFP
::
MAP
&
m_map
;
...
...
@@ -418,7 +418,7 @@ public:
//w-lift(a)
template
<
typename
PFP
>
class
Ber02OddAnalysisFilter
:
public
Filter
class
Ber02OddAnalysisFilter
:
public
Algo
::
MR
::
Filter
{
protected:
typename
PFP
::
MAP
&
m_map
;
...
...
@@ -480,7 +480,7 @@ public:
// s-lift(a)
template
<
typename
PFP
>
class
Ber02EvenAnalysisFilter
:
public
Filter
class
Ber02EvenAnalysisFilter
:
public
Algo
::
MR
::
Filter
{
protected:
typename
PFP
::
MAP
&
m_map
;
...
...
@@ -571,7 +571,7 @@ public:
// s-scale(a)
template
<
typename
PFP
>
class
Ber02ScaleAnalysisFilter
:
public
Filter
class
Ber02ScaleAnalysisFilter
:
public
Algo
::
MR
::
Filter
{
protected:
typename
PFP
::
MAP
&
m_map
;
...
...
include/Algo/Multiresolution/Map2MR/Filters/catmullClark.h
View file @
e0307c22
...
...
@@ -68,7 +68,7 @@ namespace Filters
* Lazy Wavelet
*********************************************************************************/
template
<
typename
PFP
>
class
CCInitEdgeSynthesisFilter
:
public
Filter
class
CCInitEdgeSynthesisFilter
:
public
Algo
::
MR
::
Filter
{
protected:
typename
PFP
::
MAP
&
m_map
;
...
...
@@ -101,7 +101,7 @@ public:
}
;
template
<
typename
PFP
>
class
CCInitFaceSynthesisFilter
:
public
Filter
class
CCInitFaceSynthesisFilter
:
public
Algo
::
MR
::
Filter
{
protected:
typename
PFP
::
MAP
&
m_map
;
...
...
@@ -134,7 +134,7 @@ public:
}
;
template
<
typename
PFP
>
class
CCEdgeSynthesisFilter
:
public
Filter
class
CCEdgeSynthesisFilter
:
public
Algo
::
MR
::
Filter
{
protected:
typename
PFP
::
MAP
&
m_map
;
...
...
@@ -165,7 +165,7 @@ public:
}
;
template
<
typename
PFP
>
class
CCFaceSynthesisFilter
:
public
Filter
class
CCFaceSynthesisFilter
:
public
Algo
::
MR
::
Filter
{
protected:
typename
PFP
::
MAP
&
m_map
;
...
...
@@ -218,7 +218,7 @@ public:
}
;
template
<
typename
PFP
>
class
CCVertexSynthesisFilter
:
public
Filter
class
CCVertexSynthesisFilter
:
public
Algo
::
MR
::
Filter
{
protected:
typename
PFP
::
MAP
&
m_map
;
...
...
@@ -275,7 +275,7 @@ public:
}
;
template
<
typename
PFP
>
class
CCScalingSynthesisFilter
:
public
Filter
class
CCScalingSynthesisFilter
:
public
Algo
::
MR
::
Filter
{
protected:
typename
PFP
::
MAP
&
m_map
;
...
...
@@ -313,7 +313,7 @@ public:
}
;
template
<
typename
PFP
>
class
CCScalingAnalysisFilter
:
public
Filter
class
CCScalingAnalysisFilter
:
public
Algo
::
MR
::
Filter
{
protected:
typename
PFP
::
MAP
&
m_map
;
...
...
@@ -351,7 +351,7 @@ public:
}
;
template
<
typename
PFP
>
class
CCVertexAnalysisFilter
:
public
Filter
class
CCVertexAnalysisFilter
:
public
Algo
::
MR
::
Filter
{
protected:
typename
PFP
::
MAP
&
m_map
;
...
...
@@ -410,7 +410,7 @@ public:
}
;
template
<
typename
PFP
>
class
CCFaceAnalysisFilter
:
public
Filter
class
CCFaceAnalysisFilter
:
public
Algo
::
MR
::
Filter
{
protected:
typename
PFP
::
MAP
&
m_map
;
...
...
@@ -463,7 +463,7 @@ public:
}
;
template
<
typename
PFP
>
class
CCEdgeAnalysisFilter
:
public
Filter
class
CCEdgeAnalysisFilter
:
public
Algo
::
MR
::
Filter
{
protected:
typename
PFP
::
MAP
&
m_map
;
...
...
include/Algo/Multiresolution/Map2MR/Filters/lerp.h
View file @
e0307c22
...
...
@@ -52,7 +52,7 @@ namespace Filters
// Quad refinement
template
<
typename
PFP
>
class
LerpQuadOddSynthesisFilter
:
public
Filter
class
LerpQuadOddSynthesisFilter
:
public
Algo
::
MR
::
Filter
{
protected:
typename
PFP
::
MAP
&
m_map
;
...
...
@@ -106,7 +106,7 @@ public:
// Tri/quad refinement
template
<
typename
PFP
>
class
LerpTriQuadOddSynthesisFilter
:
public
Filter
class
LerpTriQuadOddSynthesisFilter
:
public
Algo
::
MR
::
Filter
{
protected:
typename
PFP
::
MAP
&
m_map
;
...
...
@@ -167,7 +167,7 @@ public:
// Quad refinement
template
<
typename
PFP
>
class
LerpQuadOddAnalysisFilter
:
public
Filter
class
LerpQuadOddAnalysisFilter
:
public
Algo
::
MR
::
Filter
{
protected:
typename
PFP
::
MAP
&
m_map
;
...
...
@@ -221,7 +221,7 @@ public:
// Tri/quad refinement
template
<
typename
PFP
>
class
LerpTriQuadOddAnalysisFilter
:
public
Filter
class
LerpTriQuadOddAnalysisFilter
:
public
Algo
::
MR
::
Filter
{
protected:
typename
PFP
::
MAP
&
m_map
;
...
...
include/Algo/Multiresolution/Map2MR/Filters/loop.h
View file @
e0307c22
...
...
@@ -99,7 +99,7 @@ typename PFP::VEC3 loopEvenVertex(typename PFP::MAP& map, const VertexAttribute<
*********************************************************************************/
template
<
typename
PFP
>
class
LoopOddAnalysisFilter
:
public
Filter
class
LoopOddAnalysisFilter
:
public
Algo
::
MR
::
Filter
{
protected:
typename
PFP
::
MAP
&
m_map
;
...
...
@@ -132,7 +132,7 @@ public:
}
;
template
<
typename
PFP
>
class
LoopEvenAnalysisFilter
:
public
Filter
class
LoopEvenAnalysisFilter
:
public
Algo
::
MR
::
Filter
{
protected:
typename
PFP
::
MAP
&
m_map
;
...
...
@@ -159,7 +159,7 @@ public:
}
;
template
<
typename
PFP
>
class
LoopNormalisationAnalysisFilter
:
public
Filter
class
LoopNormalisationAnalysisFilter
:
public
Algo
::
MR
::
Filter
{
protected:
typename
PFP
::
MAP
&
m_map
;
...
...
@@ -193,7 +193,7 @@ public:
*********************************************************************************/
template
<
typename
PFP
>
class
LoopOddSynthesisFilter
:
public
Filter
class
LoopOddSynthesisFilter
:
public
Algo
::
MR
::
Filter
{
protected:
typename
PFP
::
MAP
&
m_map
;
...
...
@@ -226,7 +226,7 @@ public:
}
;
template
<
typename
PFP
>
class
LoopEvenSynthesisFilter
:
public
Filter
class
LoopEvenSynthesisFilter
:
public
Algo
::
MR
::
Filter
{
protected:
typename
PFP
::
MAP
&
m_map
;
...
...
@@ -253,7 +253,7 @@ public:
}
;
template
<
typename
PFP
>
class
LoopNormalisationSynthesisFilter
:
public
Filter
class
LoopNormalisationSynthesisFilter
:
public
Algo
::
MR
::
Filter
{
protected:
typename
PFP
::
MAP
&
m_map
;
...
...
include/Algo/Multiresolution/Map2MR/Filters/sqrt2.h
View file @
e0307c22
...
...
@@ -52,7 +52,7 @@ namespace Filters
template
<
typename
PFP
>
class
Sqrt2FaceSynthesisFilter
:
public
Filter
class
Sqrt2FaceSynthesisFilter
:
public
Algo
::
MR
::
Filter
{
protected:
typename
PFP
::
MAP
&
m_map
;
...
...
include/Algo/Multiresolution/Map2MR/Filters/sqrt3.h
View file @
e0307c22
...
...
@@ -103,7 +103,7 @@ inline double omega0(unsigned int n)
*********************************************************************************/
template
<
typename
PFP
>
class
Sqrt3FaceSynthesisFilter
:
public
Filter
class
Sqrt3FaceSynthesisFilter
:
public
Algo
::
MR
::
Filter
{
protected:
typename
PFP
::
MAP
&
m_map
;
...
...
@@ -152,7 +152,7 @@ public:
}
;
template
<
typename
PFP
>
class
Sqrt3VertexSynthesisFilter
:
public
Filter
class
Sqrt3VertexSynthesisFilter
:
public
Algo
::
MR
::
Filter
{
protected:
typename
PFP
::
MAP
&
m_map
;
...
...
@@ -241,7 +241,7 @@ public:
}
;
template
<
typename
PFP
>
class
Sqrt3VertexAnalysisFilter
:
public
Filter
class
Sqrt3VertexAnalysisFilter
:
public
Algo
::
MR
::
Filter
{
protected:
typename
PFP
::
MAP
&
m_map
;
...
...
@@ -296,7 +296,7 @@ public:
}
;
template
<
typename
PFP
>
class
Sqrt3FaceAnalysisFilter
:
public
Filter
class
Sqrt3FaceAnalysisFilter
:
public
Algo
::
MR
::
Filter
{
protected:
typename
PFP
::
MAP
&
m_map
;
...
...
include/Algo/Multiresolution/Map2MR/map2MR_DualRegular.h
View file @
e0307c22
...
...
@@ -59,8 +59,8 @@ protected:
MAP
&
m_map
;
bool
shareVertexEmbeddings
;
std
::
vector
<
Filter
*>
synthesisFilters
;
std
::
vector
<
Filter
*>
analysisFilters
;
std
::
vector
<
Algo
::
MR
::
Filter
*>
synthesisFilters
;
std
::
vector
<
Algo
::
MR
::
Filter
*>
analysisFilters
;
public:
Map2MR
(
MAP
&
map
);
...
...
@@ -70,8 +70,8 @@ public:
//if true : tri and quad else quad
void
addNewLevel
(
bool
embedNewVertices
=
true
)
;
void
addSynthesisFilter
(
Filter
*
f
)
{
synthesisFilters
.
push_back
(
f
)
;
}
void
addAnalysisFilter
(
Filter
*
f
)
{
analysisFilters
.
push_back
(
f
)
;
}
void
addSynthesisFilter
(
Algo
::
MR
::
Filter
*
f
)
{
synthesisFilters
.
push_back
(
f
)
;
}
void
addAnalysisFilter
(
Algo
::
MR
::
Filter
*
f
)
{
analysisFilters
.
push_back
(
f
)
;
}
void
clearSynthesisFilters
()
{
synthesisFilters
.
clear
()
;
}
void
clearAnalysisFilters
()
{
analysisFilters
.
clear
()
;
}
...
...
include/Algo/Multiresolution/Map2MR/map2MR_PrimalRegular.h
View file @
e0307c22
...
...
@@ -67,8 +67,8 @@ protected:
MAP
&
m_map
;
bool
shareVertexEmbeddings
;
std
::
vector
<
Filter
*>
synthesisFilters
;
std
::
vector
<
Filter
*>
analysisFilters
;
std
::
vector
<
Algo
::
MR
::
Filter
*>
synthesisFilters
;
std
::
vector
<
Algo
::
MR
::
Filter
*>
analysisFilters
;
FilterType
filter
;
unsigned
int
thresholdLow
;
...
...
@@ -86,8 +86,8 @@ public:
void
addNewLevelSqrt2
();
void
addSynthesisFilter
(
Filter
*
f
)
{
synthesisFilters
.
push_back
(
f
)
;
}
void
addAnalysisFilter
(
Filter
*
f
)
{
analysisFilters
.
push_back
(
f
)
;
}
void
addSynthesisFilter
(
Algo
::
MR
::
Filter
*
f
)
{
synthesisFilters
.
push_back
(
f
)
;
}
void
addAnalysisFilter
(
Algo
::
MR
::
Filter
*
f
)
{
analysisFilters
.
push_back
(
f
)
;
}
void
clearSynthesisFilters
()
{
synthesisFilters
.
clear
()
;
}
void
clearAnalysisFilters
()
{
analysisFilters
.
clear
()
;
}
...
...
include/Topology/generic/attributeHandler.h
View file @
e0307c22
...
...
@@ -265,6 +265,7 @@ public:
FaceAttribute
(
GenericMap
*
m
,
AttributeMultiVector
<
T
>*
amv
)
:
AttributeHandler
<
T
,
FACE
>
(
m
,
amv
)
{}
FaceAttribute
<
T
>&
operator
=
(
const
AttributeHandler
<
T
,
FACE
>&
ah
)
{
this
->
AttributeHandler
<
T
,
FACE
>::
operator
=
(
ah
);
return
*
this
;
}
FaceAttribute
<
T
>&
operator
=
(
const
AttributeHandler
<
T
,
VERTEX
>&
ah
)
{
this
->
AttributeHandler
<
T
,
FACE
>::
operator
=
(
ah
);
return
*
this
;
}
FaceAttribute
<
T
>&
operator
=
(
const
AttributeHandler
<
T
,
EDGE
>&
ah
)
{
this
->
AttributeHandler
<
T
,
FACE
>::
operator
=
(
ah
);
return
*
this
;
}
//TODO dangerous
};
/**
...
...
src/Topology/map/map2.cpp
View file @
e0307c22
...
...
@@ -942,14 +942,14 @@ void Map2::computeDual()
reverseOrientation
()
;
//boundary management
for
(
Dart
d
=
begin
();
d
!=
end
();
next
(
d
))
{
if
(
isBoundaryMarked2
(
d
))
{
boundaryMarkOrbit
<
FACE
,
2
>
(
deleteVertex
(
phi2
(
d
)));
}
}
//
//boundary management
//
for(Dart d = begin(); d != end(); next(d))
//
{
//
if(isBoundaryMarked2(d))
//
{
//
boundaryMarkOrbit<FACE,2>(deleteVertex(phi2(d)));
//
}
//
}
}
//TODO triangulation of the boundary face to compute correctly the dual(dual(T)) of mesh T
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment