Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
CGoGN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Thomas Pitiot
CGoGN
Commits
7594d4f2
Commit
7594d4f2
authored
Feb 11, 2014
by
Pierre Kraemer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
on continue avec les gcartes
parent
630fb1fd
Changes
17
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
411 additions
and
746 deletions
+411
-746
include/Topology/generic/mapMono.hpp
include/Topology/generic/mapMono.hpp
+9
-9
include/Topology/gmap/basegmap.h
include/Topology/gmap/basegmap.h
+0
-249
include/Topology/gmap/gmap0.h
include/Topology/gmap/gmap0.h
+4
-6
include/Topology/gmap/gmap0.hpp
include/Topology/gmap/gmap0.hpp
+29
-46
include/Topology/gmap/gmap1.h
include/Topology/gmap/gmap1.h
+3
-12
include/Topology/gmap/gmap1.hpp
include/Topology/gmap/gmap1.hpp
+103
-121
include/Topology/gmap/gmap2.h
include/Topology/gmap/gmap2.h
+3
-17
include/Topology/gmap/gmap2.hpp
include/Topology/gmap/gmap2.hpp
+94
-112
include/Topology/gmap/gmap3.h
include/Topology/gmap/gmap3.h
+3
-8
include/Topology/gmap/gmap3.hpp
include/Topology/gmap/gmap3.hpp
+85
-73
include/Topology/map/embeddedMap2.h
include/Topology/map/embeddedMap2.h
+3
-3
include/Topology/map/embeddedMap3.h
include/Topology/map/embeddedMap3.h
+2
-4
include/Topology/map/map1.h
include/Topology/map/map1.h
+1
-2
include/Topology/map/map2.h
include/Topology/map/map2.h
+2
-1
include/Topology/map/map2.hpp
include/Topology/map/map2.hpp
+1
-3
include/Topology/map/map3.h
include/Topology/map/map3.h
+0
-6
include/Topology/map/map3.hpp
include/Topology/map/map3.hpp
+69
-74
No files found.
include/Topology/generic/mapMono.hpp
View file @
7594d4f2
...
...
@@ -29,7 +29,7 @@ namespace CGoGN
* DARTS MANAGEMENT *
****************************************/
inline
virtual
Dart
MapMono
::
newDart
()
inline
Dart
MapMono
::
newDart
()
{
Dart
d
=
GenericMap
::
newDart
()
;
...
...
@@ -70,19 +70,19 @@ inline void MapMono::addPermutation()
}
template
<
int
I
>
inline
Dart
MapMono
::
getInvolution
(
Dart
d
)
inline
Dart
MapMono
::
getInvolution
(
Dart
d
)
const
{
return
(
*
m_involution
[
I
])[
d
.
index
];
}
template
<
int
I
>
inline
Dart
MapMono
::
getPermutation
(
Dart
d
)
inline
Dart
MapMono
::
getPermutation
(
Dart
d
)
const
{
return
(
*
m_permutation
[
I
])[
d
.
index
];
}
template
<
int
I
>
inline
Dart
MapMono
::
getPermutationInv
(
Dart
d
)
inline
Dart
MapMono
::
getPermutationInv
(
Dart
d
)
const
{
return
(
*
m_permutation_inv
[
I
])[
d
.
index
];
}
...
...
@@ -112,8 +112,8 @@ inline void MapMono::permutationUnsew(Dart d)
template
<
int
I
>
inline
void
MapMono
::
involutionSew
(
Dart
d
,
Dart
e
)
{
assert
((
*
m_
phi2
)[
d
.
index
]
==
d
)
;
assert
((
*
m_
phi2
)[
e
.
index
]
==
e
)
;
assert
((
*
m_
involution
[
I
]
)[
d
.
index
]
==
d
)
;
assert
((
*
m_
involution
[
I
]
)[
e
.
index
]
==
e
)
;
(
*
m_involution
[
I
])[
d
.
index
]
=
e
;
(
*
m_involution
[
I
])[
e
.
index
]
=
d
;
}
...
...
@@ -130,17 +130,17 @@ inline void MapMono::involutionUnsew(Dart d)
* DARTS TRAVERSALS *
****************************************/
inline
virtual
Dart
MapMono
::
begin
()
const
inline
Dart
MapMono
::
begin
()
const
{
return
Dart
::
create
(
m_attribs
[
DART
].
begin
())
;
}
inline
virtual
Dart
MapMono
::
end
()
const
inline
Dart
MapMono
::
end
()
const
{
return
Dart
::
create
(
m_attribs
[
DART
].
end
())
;
}
inline
v
irtual
v
oid
MapMono
::
next
(
Dart
&
d
)
const
inline
void
MapMono
::
next
(
Dart
&
d
)
const
{
m_attribs
[
DART
].
next
(
d
.
index
)
;
}
...
...
include/Topology/gmap/basegmap.h
deleted
100644 → 0
View file @
630fb1fd
/*******************************************************************************
* CGoGN: Combinatorial and Geometric modeling with Generic N-dimensional Maps *
* version 0.1 *
* Copyright (C) 2009-2012, IGG Team, LSIIT, University of Strasbourg *
* *
* This library is free software; you can redistribute it and/or modify it *
* under the terms of the GNU Lesser General Public License as published by the *
* Free Software Foundation; either version 2.1 of the License, or (at your *
* option) any later version. *
* *
* This library is distributed in the hope that it will be useful, but WITHOUT *
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or *
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License *
* for more details. *
* *
* You should have received a copy of the GNU Lesser General Public License *
* along with this library; if not, write to the Free Software Foundation, *
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *
* *
* Web site: http://cgogn.unistra.fr/ *
* Contact information: cgogn@unistra.fr *
* *
*******************************************************************************/
#ifndef __BASEGMAP_H__
#define __BASEGMAP_H__
#include <iostream>
#include <sstream>
#include <fstream>
#include <iomanip>
#include <list>
#include <vector>
#include "Topology/generic/genericmap.h"
namespace
CGoGN
{
template
<
typename
DART
>
class
tBaseGMap
:
public
tGenericMap
<
DART
>
{
public:
typedef
typename
tGenericMap
<
DART
>::
Dart
Dart
;
public:
tBaseGMap
()
{
}
tBaseGMap
(
const
tBaseGMap
<
DART
>&
bm
)
:
tGenericMap
<
DART
>
(
bm
)
{
}
~
tBaseGMap
()
{
while
(
this
->
begin
()
!=
this
->
end
())
{
deleteDart
(
this
->
begin
(),
false
);
}
}
void
deleteDart
(
Dart
d
,
bool
warning
=
true
)
{
if
(
warning
&&
!
isFree
(
d
))
{
CGoGNout
<<
"Warning: erasing a linked dart"
<<
CGoGNendl
;
}
tGenericMap
<
DART
>::
deleteDart
(
d
);
}
//! Test if the dart is free of topological links
/*! @param d an iterator to the current dart
*/
bool
isFree
(
Dart
d
)
{
for
(
unsigned
i
=
0
;
i
<
DART
::
nbRelations
();
++
i
)
if
(
beta
(
i
,
d
)
!=
d
)
return
false
;
return
true
;
}
private:
/* A set of private basic topological operators.
* Translate topological links to combinatorial links.
*/
Dart
beta_internal
(
Dart
a
,
int
i
)
const
{
// assert(????() || !"Only use with gmap darts");
// ajouter qqchose dans DP pour identifier les Gcartes
assert
(
((
i
>=
0
)
&&
(
i
<
DART
::
nbInvolutions
()))
||
"Indices out of bounds"
);
return
a
->
getInvolution
(
i
);
}
void
betaSew_internal
(
Dart
a
,
unsigned
i
,
Dart
d
)
{
assert
(
i
<
DART
::
nbInvolutions
()
||
!
"Out of bounds"
);
if
(
beta_internal
(
a
,
i
)
!=
d
)
{
a
->
setInvolution
(
i
,
d
);
}
else
{
CGoGNerr
<<
"Warning: darts already linked with beta"
<<
i
<<
CGoGNendl
;
}
}
void
betaUnsew_internal
(
Dart
a
,
unsigned
i
)
{
assert
(
i
<
DART
::
nbInvolutions
()
||
!
"Out of bounds"
);
a
->
unsetInvolution
(
i
);
}
public:
Dart
beta
(
unsigned
int
i
,
Dart
d
)
{
return
beta_internal
(
d
,
i
);
}
void
betaSew
(
unsigned
int
i
,
Dart
d
,
Dart
e
)
{
// verification GMAP ???
betaSew_internal
(
d
,
i
,
e
);
}
void
betaUnsew
(
unsigned
int
i
,
Dart
d
)
{
// verification GMAP ???
betaUnsew_internal
(
d
,
i
);
}
Dart
beta0
(
Dart
d
)
{
return
beta
(
0
,
d
);
}
Dart
beta1
(
Dart
d
)
{
return
beta
(
1
,
d
);
}
Dart
beta2
(
Dart
d
)
{
return
beta
(
2
,
d
);
}
Dart
beta3
(
Dart
d
)
{
return
beta
(
3
,
d
);
}
void
beta0Sew
(
Dart
d
,
Dart
e
)
{
betaSew
(
0
,
d
,
e
);
}
void
beta1Sew
(
Dart
d
,
Dart
e
)
{
betaSew
(
1
,
d
,
e
);
}
void
beta2Sew
(
Dart
d
,
Dart
e
)
{
betaSew
(
2
,
d
,
e
);
}
void
beta3Sew
(
Dart
d
,
Dart
e
)
{
betaSew
(
3
,
d
,
e
);
}
Dart
phi
(
int
i
,
const
Dart
d
)
{
if
(
i
>=
0
)
return
beta
(
i
,
beta
(
0
,
d
))
;
else
{
unsigned
j
=
-
i
;
return
beta
(
0
,
beta
(
j
,
d
))
;
}
}
Dart
phi1
(
const
Dart
d
)
{
return
phi
(
1
,
d
);
}
Dart
phi_1
(
const
Dart
d
)
{
return
phi_1
(
d
);
}
Dart
phi2
(
const
Dart
d
)
{
return
phi
(
2
,
d
);
}
Dart
phi_2
(
const
Dart
d
)
{
return
phi
(
-
2
,
d
);
}
Dart
phi3
(
const
Dart
d
)
{
return
phi
(
3
,
d
);
}
Dart
phi_3
(
const
Dart
d
)
{
return
phi
(
-
3
,
d
);
}
Dart
alpha
(
int
i
,
const
Dart
d
)
{
if
(
i
>=
0
)
return
beta
(
i
,
beta
(
DART
::
nbInvolutions
(),
d
))
;
else
{
unsigned
j
=
-
i
;
return
beta
(
DART
::
nbInvolutions
(),
beta
(
i
,
d
))
;
}
}
Dart
alpha1
(
const
Dart
d
)
{
return
alpha
(
1
,
d
);
}
Dart
alpha_1
(
const
Dart
d
)
{
return
alpha
(
-
1
,
d
);
}
Dart
alpha2
(
const
Dart
d
)
{
return
alpha
(
2
,
d
);
}
Dart
alpha_2
(
const
Dart
d
)
{
return
alpha
(
-
2
,
d
);
}
Dart
alpha3
(
const
Dart
d
)
{
return
alpha
(
3
,
d
);
}
Dart
alpha_3
(
const
Dart
d
)
{
return
alpha
(
-
3
,
d
);
}
template
<
int
N
>
Dart
beta
(
const
Dart
d
)
{
if
(
N
<
10
)
return
beta
(
N
,
d
);
return
beta
(
N
%
10
,
beta
<
N
/
10
>
(
d
));
}
template
<
int
I
,
int
J
>
Dart
beta
(
const
Dart
d
)
{
return
beta
(
J
,
beta
(
I
,
d
));
}
template
<
int
I
,
int
J
,
int
K
>
Dart
beta
(
const
Dart
d
)
{
return
beta
(
K
,
beta
(
J
,
beta
(
I
,
d
)));
}
template
<
int
I
,
int
J
,
int
K
,
int
L
>
Dart
beta
(
const
Dart
d
)
{
return
beta
(
L
,
beta
(
K
,
beta
(
J
,
beta
(
I
,
d
))));
}
template
<
int
N
>
Dart
phi
(
const
Dart
d
)
{
assert
(
(
N
>
0
)
||
!
"negative parameters not allowed in template multi-phi"
);
if
(
N
<
10
)
return
phi
(
N
,
d
);
return
phi
(
N
%
10
,
phi
<
N
/
10
>
(
d
));
}
template
<
int
I
,
int
J
>
Dart
phi
(
const
Dart
d
)
{
return
phi
(
J
,
phi
(
I
,
d
));
}
template
<
int
I
,
int
J
,
int
K
>
Dart
phi
(
const
Dart
d
)
{
return
phi
(
K
,
phi
(
J
,
phi
(
I
,
d
)));
}
template
<
int
I
,
int
J
,
int
K
,
int
L
>
Dart
phi
(
const
Dart
d
)
{
return
phi
(
L
,
phi
(
K
,
phi
(
J
,
phi
(
I
,
d
))));
}
};
}
//namespace CGoGN
#endif
include/Topology/gmap/gmap0.h
View file @
7594d4f2
...
...
@@ -25,7 +25,7 @@
#ifndef __GMAP0_H__
#define __GMAP0_H__
#include "Topology/generic/
attribmap
.h"
#include "Topology/generic/
mapMono
.h"
#include "Topology/generic/dartmarker.h"
#include "Topology/generic/cellmarker.h"
...
...
@@ -36,15 +36,15 @@ namespace CGoGN
* The class of 0-GMap
* Warning here we use beta instead of classic alpha
*/
class
GMap0
:
public
AttribMap
template
<
class
MAP
=
MapMono
>
class
GMap0
:
public
MAP
{
protected:
AttributeMultiVector
<
Dart
>*
m_beta0
;
void
init
()
;
public:
GMap0
();
static
const
unsigned
int
DIMENSION
=
0
;
virtual
std
::
string
mapTypeName
()
const
;
...
...
@@ -97,14 +97,12 @@ public:
* @param f the functor to apply
*/
bool
foreach_dart_of_vertex
(
Dart
d
,
FunctorType
&
f
,
unsigned
int
thread
=
0
)
const
;
// bool foreach_dart_of_vertex(Dart d, FunctorConstType& f, unsigned int thread = 0) const;
//! Apply a functor on every dart of an edge
/*! @param d a dart of the edge
* @param f the functor to apply
*/
bool
foreach_dart_of_edge
(
Dart
d
,
FunctorType
&
f
,
unsigned
int
thread
=
0
)
const
;
// bool foreach_dart_of_edge(Dart d, FunctorConstType& f, unsigned int thread = 0) const;
// bool foreach_dart_of_cc(Dart d, FunctorType& f, unsigned int thread = 0);
//@}
...
...
include/Topology/gmap/gmap0.hpp
View file @
7594d4f2
...
...
@@ -27,85 +27,79 @@ namespace CGoGN
/// INLINE FUNCTIONS
inline
void
GMap0
::
init
()
template
<
class
MAP
>
inline
void
GMap0
<
MAP
>::
init
()
{
m_beta0
=
addRelation
(
"beta0"
)
;
MAP
::
addInvolution
(
)
;
}
inline
GMap0
::
GMap0
()
:
AttribMap
()
template
<
class
MAP
>
inline
GMap0
<
MAP
>::
GMap0
()
:
MAP
()
{
init
()
;
}
inline
std
::
string
GMap0
::
mapTypeName
()
const
template
<
class
MAP
>
inline
std
::
string
GMap0
<
MAP
>::
mapTypeName
()
const
{
return
"GMap0"
;
}
inline
unsigned
int
GMap0
::
dimension
()
const
template
<
class
MAP
>
inline
unsigned
int
GMap0
<
MAP
>::
dimension
()
const
{
return
0
;
}
inline
void
GMap0
::
clear
(
bool
removeAttrib
)
template
<
class
MAP
>
inline
void
GMap0
<
MAP
>::
clear
(
bool
removeAttrib
)
{
AttribMap
::
clear
(
removeAttrib
)
;
MAP
::
clear
(
removeAttrib
)
;
if
(
removeAttrib
)
init
()
;
}
inline
void
GMap0
::
update_topo_shortcuts
()
template
<
class
MAP
>
inline
void
GMap0
<
MAP
>::
update_topo_shortcuts
()
{
GenericMap
::
update_topo_shortcuts
();
m_beta0
=
getRelation
(
"beta0"
);
MAP
::
update_topo_shortcuts
();
//
m_beta0 = getRelation("beta0");
}
/*! @name Basic Topological Operators
* Access and Modification
*************************************************************************/
inline
Dart
GMap0
::
newDart
()
template
<
class
MAP
>
inline
Dart
GMap0
<
MAP
>::
beta0
(
Dart
d
)
const
{
Dart
d
=
GenericMap
::
newDart
()
;
(
*
m_beta0
)[
d
.
index
]
=
d
;
return
d
;
return
MAP
::
getInvolution
<
0
>
(
d
);
}
inline
Dart
GMap0
::
beta0
(
Dart
d
)
const
template
<
class
MAP
>
inline
void
GMap0
<
MAP
>::
beta0sew
(
Dart
d
,
Dart
e
)
{
return
(
*
m_beta0
)[
d
.
index
]
;
MAP
::
involutionSew
<
0
>
(
d
,
e
)
;
}
inline
void
GMap0
::
beta0sew
(
Dart
d
,
Dart
e
)
template
<
class
MAP
>
inline
void
GMap0
<
MAP
>::
beta0unsew
(
Dart
d
)
{
assert
((
*
m_beta0
)[
d
.
index
]
==
d
)
;
assert
((
*
m_beta0
)[
e
.
index
]
==
e
)
;
(
*
m_beta0
)[
d
.
index
]
=
e
;
(
*
m_beta0
)[
e
.
index
]
=
d
;
}
inline
void
GMap0
::
beta0unsew
(
Dart
d
)
{
Dart
e
=
(
*
m_beta0
)[
d
.
index
]
;
(
*
m_beta0
)[
d
.
index
]
=
d
;
(
*
m_beta0
)[
e
.
index
]
=
e
;
MAP
::
involutionUnsew
<
0
>
(
d
);
}
/*! @name Cell Functors
* Apply functors to all darts of a cell
*************************************************************************/
inline
bool
GMap0
::
foreach_dart_of_vertex
(
Dart
d
,
FunctorType
&
f
,
unsigned
int
/*thread*/
)
const
template
<
class
MAP
>
inline
bool
GMap0
<
MAP
>::
foreach_dart_of_vertex
(
Dart
d
,
FunctorType
&
f
,
unsigned
int
/*thread*/
)
const
{
return
f
(
d
)
;
}
//inline bool GMap0::foreach_dart_of_vertex(Dart d, FunctorConstType& f, unsigned int /*thread*/) const
//{
// return f(d) ;
//}
inline
bool
GMap0
::
foreach_dart_of_edge
(
Dart
d
,
FunctorType
&
f
,
unsigned
int
/*thread*/
)
const
template
<
class
MAP
>
inline
bool
GMap0
<
MAP
>::
foreach_dart_of_edge
(
Dart
d
,
FunctorType
&
f
,
unsigned
int
/*thread*/
)
const
{
if
(
f
(
d
))
return
true
;
Dart
d1
=
beta0
(
d
);
...
...
@@ -113,15 +107,4 @@ inline bool GMap0::foreach_dart_of_edge(Dart d, FunctorType& f, unsigned int /*t
return
false
;
}
//inline bool GMap0::foreach_dart_of_edge(Dart d, FunctorConstType& f, unsigned int /*thread*/)
//{
// if (f(d)) return true;
// Dart d1 = beta0(d);
// if (d1 != d) return f(d1);
// return false;
//}
}
// namespace CGoGN
include/Topology/gmap/gmap1.h
View file @
7594d4f2
...
...
@@ -33,20 +33,17 @@ namespace CGoGN
/**
* The class of 1-GMap
*/
class
GMap1
:
public
GMap0
template
<
class
MAP
>
class
GMap1
:
public
GMap0
<
MAP
>
{
protected:
AttributeMultiVector
<
Dart
>*
m_beta1
;
void
init
()
;
public:
typedef
GMap0
ParentMap
;
typedef
GMap0
<
MAP
>
ParentMap
;
static
const
unsigned
int
DIMENSION
=
1
;
GMap1
();
virtual
std
::
string
mapTypeName
()
const
;
...
...
@@ -63,8 +60,6 @@ public:
* Access and Modification
*************************************************************************/
virtual
Dart
newDart
();
Dart
beta1
(
const
Dart
d
)
const
;
template
<
int
N
>
...
...
@@ -205,7 +200,6 @@ public:
* @param fonct functor obj ref
*/
bool
foreach_dart_of_vertex
(
Dart
d
,
FunctorType
&
fonct
,
unsigned
int
thread
=
0
)
const
;
// bool foreach_dart_of_vertex(Dart d, FunctorConstType& fonct, unsigned int thread=0);
/**
* Apply a functor on each dart of an edge
...
...
@@ -213,7 +207,6 @@ public:
* @param fonct functor obj ref
*/
bool
foreach_dart_of_edge
(
Dart
d
,
FunctorType
&
fonct
,
unsigned
int
thread
=
0
)
const
;
// bool foreach_dart_of_edge(Dart d, FunctorConstType& fonct, unsigned int thread=0);
/**
* Apply a functor on each dart of an oriented cc (face)
...
...
@@ -221,14 +214,12 @@ public:
* @param fonct functor obj ref
*/
bool
foreach_dart_of_oriented_cc
(
Dart
d
,
FunctorType
&
f
,
unsigned
int
thread
=
0
)
const
;
// bool foreach_dart_of_oriented_cc(Dart d, FunctorConstType& f, unsigned int thread=0);
//! Apply a functor on every dart of a cc (face)
/*! @param d a dart of the cc
* @param f the functor to apply
*/
bool
foreach_dart_of_cc
(
Dart
d
,
FunctorType
&
fonct
,
unsigned
int
thread
=
0
)
const
;
// bool foreach_dart_of_cc(Dart d, FunctorConstType& fonct, unsigned int thread=0);
//@}
};
...
...
include/Topology/gmap/gmap1.hpp
View file @
7594d4f2
...
...
@@ -25,88 +25,92 @@
namespace
CGoGN
{
inline
void
GMap1
::
init
()
template
<
class
MAP
>
inline
void
GMap1
<
MAP
>::
init
()
{
m_beta1
=
addRelation
(
"beta1"
)
;
MAP
::
addInvolution
(
)
;
}
inline
GMap1
::
GMap1
()
:
GMap0
()
template
<
class
MAP
>
inline
GMap1
<
MAP
>::
GMap1
()
:
GMap0
<
MAP
>
()
{
init
()
;
}
inline
std
::
string
GMap1
::
mapTypeName
()
const
template
<
class
MAP
>
inline
std
::
string
GMap1
<
MAP
>::
mapTypeName
()
const
{
return
"GMap1"
;
}
inline
unsigned
int
GMap1
::
dimension
()
const
template
<
class
MAP
>
inline
unsigned
int
GMap1
<
MAP
>::
dimension
()
const
{
return
1
;
}
inline
void
GMap1
::
clear
(
bool
removeAttrib
)
template
<
class
MAP
>
inline
void
GMap1
<
MAP
>::
clear
(
bool
removeAttrib
)
{
GMap0
::
clear
(
removeAttrib
)
;
ParentMap
::
clear
(
removeAttrib
)
;
if
(
removeAttrib
)
init
()
;
}
inline
void
GMap1
::
update_topo_shortcuts
()
template
<
class
MAP
>
inline
void
GMap1
<
MAP
>::
update_topo_shortcuts
()
{
GMap0
::
update_topo_shortcuts
();
m_beta1
=
getRelation
(
"beta1"
);
ParentMap
::
update_topo_shortcuts
();
//
m_beta1 = getRelation("beta1");
}
/*! @name Basic Topological Operators
* Access and Modification
*************************************************************************/
inline
Dart
GMap1
::
newDart
()
template
<
class
MAP
>
inline
Dart
GMap1
<
MAP
>::
beta1
(
Dart
d
)
const
{
Dart
d
=
GMap0
::
newDart
()
;
(
*
m_beta1
)[
d
.
index
]
=
d
;
return
d
;
}
inline
Dart
GMap1
::
beta1
(
Dart
d
)
const