Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
Hurstel
CGoGN
Commits
adbc0c85
Commit
adbc0c85
authored
Apr 27, 2012
by
Pierre Kraemer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
orbit as template -> features
parent
6ab7e17b
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
74 additions
and
74 deletions
+74
-74
include/Algo/Geometry/feature.h
include/Algo/Geometry/feature.h
+35
-35
include/Algo/Geometry/feature.hpp
include/Algo/Geometry/feature.hpp
+37
-37
include/Algo/Geometry/normal.h
include/Algo/Geometry/normal.h
+1
-1
include/Algo/Geometry/normal.hpp
include/Algo/Geometry/normal.hpp
+1
-1
No files found.
include/Algo/Geometry/feature.h
View file @
adbc0c85
...
...
@@ -48,17 +48,17 @@ typedef NoMathIONameAttribute<e0segment> ridgeSegment ;
template
<
typename
PFP
>
void
featureEdgeDetection
(
typename
PFP
::
MAP
&
map
,
const
typename
PFP
::
T
VEC3
&
position
,
CellMarker
&
featureEdge
)
;
const
AttributeHandler
<
typename
PFP
::
VEC3
,
VERTEX
>
&
position
,
CellMarker
<
EDGE
>
&
featureEdge
)
;
template
<
typename
PFP
>
void
computeFaceGradient
(
typename
PFP
::
MAP
&
map
,
const
typename
PFP
::
T
VEC3
&
position
,
const
typename
PFP
::
T
VEC3
&
face_normal
,
const
typename
PFP
::
T
REAL
&
kmax
,
const
typename
PFP
::
T
REAL
&
face_area
,
typename
PFP
::
T
VEC3
&
face_gradient
,
const
AttributeHandler
<
typename
PFP
::
VEC3
,
VERTEX
>
&
position
,
const
AttributeHandler
<
typename
PFP
::
VEC3
,
FACE
>
&
face_normal
,
const
AttributeHandler
<
typename
PFP
::
REAL
,
VERTEX
>
&
kmax
,
const
AttributeHandler
<
typename
PFP
::
REAL
,
FACE
>
&
face_area
,
AttributeHandler
<
typename
PFP
::
VEC3
,
FACE
>
&
face_gradient
,
const
FunctorSelect
&
select
=
allDarts
,
unsigned
int
thread
=
0
)
;
...
...
@@ -66,17 +66,17 @@ template <typename PFP>
typename
PFP
::
VEC3
faceGradient
(
typename
PFP
::
MAP
&
map
,
Dart
d
,
const
typename
PFP
::
T
VEC3
&
position
,
const
typename
PFP
::
T
VEC3
&
face_normal
,
const
typename
PFP
::
T
REAL
&
kmax
,
const
typename
PFP
::
T
REAL
&
area
)
;
const
AttributeHandler
<
typename
PFP
::
VEC3
,
VERTEX
>
&
position
,
const
AttributeHandler
<
typename
PFP
::
VEC3
,
FACE
>
&
face_normal
,
const
AttributeHandler
<
typename
PFP
::
REAL
,
VERTEX
>
&
kmax
,
const
AttributeHandler
<
typename
PFP
::
REAL
,
FACE
>
&
area
)
;
template
<
typename
PFP
>
void
computeVertexGradient
(
typename
PFP
::
MAP
&
map
,
const
typename
PFP
::
T
VEC3
&
face_gradient
,
const
typename
PFP
::
T
REAL
&
face_area
,
typename
PFP
::
T
VEC3
&
vertex_gradient
,
const
AttributeHandler
<
typename
PFP
::
VEC3
,
FACE
>
&
face_gradient
,
const
AttributeHandler
<
typename
PFP
::
REAL
,
FACE
>
&
face_area
,
AttributeHandler
<
typename
PFP
::
VEC3
,
VERTEX
>
&
vertex_gradient
,
const
FunctorSelect
&
select
=
allDarts
,
unsigned
int
thread
=
0
)
;
...
...
@@ -84,42 +84,42 @@ template <typename PFP>
typename
PFP
::
VEC3
vertexGradient
(
typename
PFP
::
MAP
&
map
,
Dart
d
,
const
typename
PFP
::
T
VEC3
&
face_gradient
,
const
typename
PFP
::
T
REAL
&
area
)
;
const
AttributeHandler
<
typename
PFP
::
VEC3
,
FACE
>
&
face_gradient
,
const
AttributeHandler
<
typename
PFP
::
REAL
,
FACE
>
&
area
)
;
//template <typename PFP>
//typename PFP::REAL extremality(
// typename PFP::MAP& map,
// Dart d,
// const typename PFP::VEC3& K,
// const typename PFP::
T
VEC3& face_gradient,
// const typename PFP::
T
REAL& face_area) ;
// const
AttributeHandler<
typename PFP::VEC3
, FACE>
& face_gradient,
// const
AttributeHandler<
typename PFP::REAL
, FACE>
& face_area) ;
template
<
typename
PFP
>
void
computeTriangleType
(
typename
PFP
::
MAP
&
map
,
const
typename
PFP
::
T
VEC3
&
Kmax
,
CellMarker
&
regularMarker
,
const
AttributeHandler
<
typename
PFP
::
VEC3
,
VERTEX
>
&
Kmax
,
CellMarker
<
FACE
>
&
regularMarker
,
const
FunctorSelect
&
select
=
allDarts
,
unsigned
int
thread
=
0
)
;
template
<
typename
PFP
>
bool
isTriangleRegular
(
typename
PFP
::
MAP
&
map
,
Dart
d
,
const
typename
PFP
::
T
VEC3
&
Kmax
)
;
bool
isTriangleRegular
(
typename
PFP
::
MAP
&
map
,
Dart
d
,
const
AttributeHandler
<
typename
PFP
::
VEC3
,
VERTEX
>
&
Kmax
)
;
template
<
typename
PFP
>
void
initRidgeSegments
(
typename
PFP
::
MAP
&
map
,
AttributeHandler
<
ridgeSegment
>&
ridge_segments
,
AttributeHandler
<
ridgeSegment
,
FACE
>&
ridge_segments
,
const
FunctorSelect
&
select
=
allDarts
,
unsigned
int
thread
=
0
)
;
template
<
typename
PFP
>
void
computeRidgeLines
(
typename
PFP
::
MAP
&
map
,
CellMarker
&
regularMarker
,
const
typename
PFP
::
T
VEC3
&
vertex_gradient
,
const
typename
PFP
::
T
VEC3
&
K
,
AttributeHandler
<
ridgeSegment
>&
ridge_segments
,
CellMarker
<
FACE
>
&
regularMarker
,
const
AttributeHandler
<
typename
PFP
::
VEC3
,
VERTEX
>
&
vertex_gradient
,
const
AttributeHandler
<
typename
PFP
::
VEC3
,
VERTEX
>
&
K
,
AttributeHandler
<
ridgeSegment
,
FACE
>&
ridge_segments
,
const
FunctorSelect
&
select
=
allDarts
,
unsigned
int
thread
=
0
)
;
...
...
@@ -127,9 +127,9 @@ template <typename PFP>
void
ridgeLines
(
typename
PFP
::
MAP
&
map
,
Dart
d
,
const
typename
PFP
::
T
VEC3
&
K
,
const
typename
PFP
::
T
VEC3
&
vertex_gradient
,
AttributeHandler
<
ridgeSegment
>&
ridge_segments
)
;
const
AttributeHandler
<
typename
PFP
::
VEC3
,
VERTEX
>
&
K
,
const
AttributeHandler
<
typename
PFP
::
VEC3
,
VERTEX
>
&
vertex_gradient
,
AttributeHandler
<
ridgeSegment
,
FACE
>&
ridge_segments
)
;
template
<
typename
PFP
>
void
computeExtremalities
()
;
...
...
@@ -137,8 +137,8 @@ void computeExtremalities() ;
template
<
typename
PFP
>
void
computeSingularTriangle
(
typename
PFP
::
MAP
&
map
,
CellMarker
&
regularMarker
,
AttributeHandler
<
ridgeSegment
>&
ridge_segments
,
CellMarker
<
FACE
>
&
regularMarker
,
AttributeHandler
<
ridgeSegment
,
FACE
>&
ridge_segments
,
const
FunctorSelect
&
select
=
allDarts
,
unsigned
int
thread
=
0
)
;
...
...
@@ -146,8 +146,8 @@ template <typename PFP>
void
singularTriangle
(
typename
PFP
::
MAP
&
map
,
Dart
d
,
CellMarker
&
regularMarker
,
AttributeHandler
<
ridgeSegment
>&
ridge_segments
)
;
CellMarker
<
FACE
>
&
regularMarker
,
AttributeHandler
<
ridgeSegment
,
FACE
>&
ridge_segments
)
;
template
<
typename
PFP
>
bool
isEdgeInTriangle
(
typename
PFP
::
MAP
&
map
,
Dart
edge
,
Dart
triangle
)
;
...
...
@@ -156,8 +156,8 @@ template <typename PFP>
std
::
vector
<
typename
PFP
::
VEC3
>
occludingContoursDetection
(
typename
PFP
::
MAP
&
map
,
const
typename
PFP
::
VEC3
&
cameraPosition
,
const
typename
PFP
::
T
VEC3
&
position
,
const
typename
PFP
::
T
VEC3
&
normal
)
;
const
AttributeHandler
<
typename
PFP
::
VEC3
,
VERTEX
>
&
position
,
const
AttributeHandler
<
typename
PFP
::
VEC3
,
VERTEX
>
&
normal
)
;
}
// namespace Geometry
...
...
include/Algo/Geometry/feature.hpp
View file @
adbc0c85
...
...
@@ -38,17 +38,17 @@ namespace Geometry
template
<
typename
PFP
>
void
featureEdgeDetection
(
typename
PFP
::
MAP
&
map
,
typename
PFP
::
T
VEC3
&
position
,
CellMarker
&
featureEdge
)
AttributeHandler
<
typename
PFP
::
VEC3
,
VERTEX
>
&
position
,
CellMarker
<
EDGE
>
&
featureEdge
)
{
typedef
typename
PFP
::
VEC3
VEC3
;
typedef
typename
PFP
::
REAL
REAL
;
featureEdge
.
unmarkAll
()
;
AttributeHandler
<
VEC3
>
fNormal
=
map
.
template
getAttribute
<
VEC3
>(
FACE
,
"normal"
)
;
AttributeHandler
<
VEC3
,
FACE
>
fNormal
=
map
.
template
getAttribute
<
VEC3
,
FACE
>(
"normal"
)
;
if
(
!
fNormal
.
isValid
())
fNormal
=
map
.
template
addAttribute
<
VEC3
>(
FACE
,
"normal"
)
;
fNormal
=
map
.
template
addAttribute
<
VEC3
,
FACE
>(
"normal"
)
;
Algo
::
Geometry
::
computeNormalFaces
<
PFP
>
(
map
,
position
,
fNormal
)
;
TraversorE
<
typename
PFP
::
MAP
>
t
(
map
)
;
...
...
@@ -64,11 +64,11 @@ void featureEdgeDetection(
template
<
typename
PFP
>
void
computeFaceGradient
(
typename
PFP
::
MAP
&
map
,
const
typename
PFP
::
T
VEC3
&
position
,
const
typename
PFP
::
T
VEC3
&
face_normal
,
const
typename
PFP
::
T
REAL
&
kmax
,
const
typename
PFP
::
T
REAL
&
area
,
typename
PFP
::
T
VEC3
&
face_gradient
,
const
AttributeHandler
<
typename
PFP
::
VEC3
,
VERTEX
>
&
position
,
const
AttributeHandler
<
typename
PFP
::
VEC3
,
FACE
>
&
face_normal
,
const
AttributeHandler
<
typename
PFP
::
REAL
,
VERTEX
>
&
kmax
,
const
AttributeHandler
<
typename
PFP
::
REAL
,
FACE
>
&
area
,
AttributeHandler
<
typename
PFP
::
VEC3
,
FACE
>
&
face_gradient
,
const
FunctorSelect
&
select
,
unsigned
int
thread
)
{
...
...
@@ -81,10 +81,10 @@ template <typename PFP>
typename
PFP
::
VEC3
faceGradient
(
typename
PFP
::
MAP
&
map
,
Dart
d
,
const
typename
PFP
::
T
VEC3
&
position
,
const
typename
PFP
::
T
VEC3
&
face_normal
,
const
typename
PFP
::
T
REAL
&
kmax
,
const
typename
PFP
::
T
REAL
&
face_area
)
const
AttributeHandler
<
typename
PFP
::
VEC3
,
VERTEX
>
&
position
,
const
AttributeHandler
<
typename
PFP
::
VEC3
,
FACE
>
&
face_normal
,
const
AttributeHandler
<
typename
PFP
::
REAL
,
VERTEX
>
&
kmax
,
const
AttributeHandler
<
typename
PFP
::
REAL
,
FACE
>
&
face_area
)
{
typedef
typename
PFP
::
REAL
REAL
;
typedef
typename
PFP
::
VEC3
VEC3
;
...
...
@@ -116,9 +116,9 @@ typename PFP::VEC3 faceGradient(
template
<
typename
PFP
>
void
computeVertexGradient
(
typename
PFP
::
MAP
&
map
,
const
typename
PFP
::
T
VEC3
&
face_gradient
,
const
typename
PFP
::
T
REAL
&
face_area
,
typename
PFP
::
T
VEC3
&
vertex_gradient
,
const
AttributeHandler
<
typename
PFP
::
VEC3
,
FACE
>
&
face_gradient
,
const
AttributeHandler
<
typename
PFP
::
REAL
,
FACE
>
&
face_area
,
AttributeHandler
<
typename
PFP
::
VEC3
,
VERTEX
>
&
vertex_gradient
,
const
FunctorSelect
&
select
,
unsigned
int
thread
)
{
...
...
@@ -131,8 +131,8 @@ template <typename PFP>
typename
PFP
::
VEC3
vertexGradient
(
typename
PFP
::
MAP
&
map
,
Dart
d
,
const
typename
PFP
::
T
VEC3
&
face_gradient
,
const
typename
PFP
::
T
REAL
&
face_area
)
const
AttributeHandler
<
typename
PFP
::
VEC3
,
FACE
>
&
face_gradient
,
const
AttributeHandler
<
typename
PFP
::
REAL
,
FACE
>
&
face_area
)
{
typename
PFP
::
VEC3
G
(
0
)
;
typename
PFP
::
REAL
A
(
0
)
;
...
...
@@ -153,8 +153,8 @@ typename PFP::VEC3 vertexGradient(
// typename PFP::MAP& map,
// Dart d,
// const typename PFP::VEC3& K,
// const typename PFP::
T
VEC3& face_gradient,
// const typename PFP::
T
REAL& face_area)
// const
AttributeHandler<
typename PFP::VEC3
, FACE>
& face_gradient,
// const
AttributeHandler<
typename PFP::REAL
, FACE>
& face_area)
//{
// typedef typename PFP::REAL REAL ;
//
...
...
@@ -174,8 +174,8 @@ typename PFP::VEC3 vertexGradient(
template
<
typename
PFP
>
void
computeTriangleType
(
typename
PFP
::
MAP
&
map
,
const
typename
PFP
::
T
VEC3
&
Kmax
,
CellMarker
&
regularMarker
,
const
AttributeHandler
<
typename
PFP
::
VEC3
,
VERTEX
>
&
Kmax
,
CellMarker
<
FACE
>
&
regularMarker
,
const
FunctorSelect
&
select
,
unsigned
int
thread
)
{
...
...
@@ -197,7 +197,7 @@ bool mutuallyPositive(typename PFP::VEC3& v1, typename PFP::VEC3& v2, typename P
}
template
<
typename
PFP
>
bool
isTriangleRegular
(
typename
PFP
::
MAP
&
map
,
Dart
d
,
const
typename
PFP
::
T
VEC3
&
Kmax
)
bool
isTriangleRegular
(
typename
PFP
::
MAP
&
map
,
Dart
d
,
const
AttributeHandler
<
typename
PFP
::
VEC3
,
VERTEX
>
&
Kmax
)
{
typedef
typename
PFP
::
REAL
REAL
;
typedef
typename
PFP
::
VEC3
VEC3
;
...
...
@@ -238,7 +238,7 @@ bool isTriangleRegular(typename PFP::MAP& map, Dart d, const typename PFP::TVEC3
template
<
typename
PFP
>
void
initRidgeSegments
(
typename
PFP
::
MAP
&
map
,
AttributeHandler
<
ridgeSegment
>&
ridge_segments
,
AttributeHandler
<
ridgeSegment
,
FACE
>&
ridge_segments
,
const
FunctorSelect
&
select
,
unsigned
int
thread
)
{
...
...
@@ -250,10 +250,10 @@ void initRidgeSegments(
template
<
typename
PFP
>
void
computeRidgeLines
(
typename
PFP
::
MAP
&
map
,
CellMarker
&
regularMarker
,
const
typename
PFP
::
T
VEC3
&
vertex_gradient
,
const
typename
PFP
::
T
VEC3
&
K
,
AttributeHandler
<
ridgeSegment
>&
ridge_segments
,
CellMarker
<
FACE
>
&
regularMarker
,
const
AttributeHandler
<
typename
PFP
::
VEC3
,
VERTEX
>
&
vertex_gradient
,
const
AttributeHandler
<
typename
PFP
::
VEC3
,
VERTEX
>
&
K
,
AttributeHandler
<
ridgeSegment
,
FACE
>&
ridge_segments
,
const
FunctorSelect
&
select
,
unsigned
int
thread
)
{
...
...
@@ -269,9 +269,9 @@ template <typename PFP>
void
ridgeLines
(
typename
PFP
::
MAP
&
map
,
Dart
d
,
const
typename
PFP
::
T
VEC3
&
K
,
const
typename
PFP
::
T
VEC3
&
vertex_gradient
,
AttributeHandler
<
ridgeSegment
>&
ridge_segments
)
const
AttributeHandler
<
typename
PFP
::
VEC3
,
VERTEX
>
&
K
,
const
AttributeHandler
<
typename
PFP
::
VEC3
,
VERTEX
>
&
vertex_gradient
,
AttributeHandler
<
ridgeSegment
,
FACE
>&
ridge_segments
)
{
typedef
typename
PFP
::
REAL
REAL
;
typedef
typename
PFP
::
VEC3
VEC3
;
...
...
@@ -348,8 +348,8 @@ void ridgeLines(
template
<
typename
PFP
>
void
computeSingularTriangle
(
typename
PFP
::
MAP
&
map
,
CellMarker
&
regularMarker
,
AttributeHandler
<
ridgeSegment
>&
ridge_segments
,
CellMarker
<
FACE
>
&
regularMarker
,
AttributeHandler
<
ridgeSegment
,
FACE
>&
ridge_segments
,
const
FunctorSelect
&
select
,
unsigned
int
thread
)
{
...
...
@@ -365,8 +365,8 @@ template <typename PFP>
void
singularTriangle
(
typename
PFP
::
MAP
&
map
,
Dart
d
,
CellMarker
&
regularMarker
,
AttributeHandler
<
ridgeSegment
>&
ridge_segments
)
CellMarker
<
FACE
>
&
regularMarker
,
AttributeHandler
<
ridgeSegment
,
FACE
>&
ridge_segments
)
{
int
nbPoint
=
0
;
...
...
@@ -428,8 +428,8 @@ template <typename PFP>
std
::
vector
<
typename
PFP
::
VEC3
>
occludingContoursDetection
(
typename
PFP
::
MAP
&
map
,
const
typename
PFP
::
VEC3
&
cameraPosition
,
const
typename
PFP
::
T
VEC3
&
position
,
const
typename
PFP
::
T
VEC3
&
normal
)
const
AttributeHandler
<
typename
PFP
::
VEC3
,
VERTEX
>
&
position
,
const
AttributeHandler
<
typename
PFP
::
VEC3
,
VERTEX
>
&
normal
)
{
typedef
typename
PFP
::
VEC3
VEC3
;
typedef
typename
PFP
::
REAL
REAL
;
...
...
include/Algo/Geometry/normal.h
View file @
adbc0c85
...
...
@@ -69,7 +69,7 @@ template <typename PFP>
typename
PFP
::
REAL
computeAngleBetweenNormalsOnEdge
(
typename
PFP
::
MAP
&
map
,
Dart
d
,
AttributeHandler
<
typename
PFP
::
VEC3
,
VERTEX
>&
position
)
;
template
<
typename
PFP
>
void
computeAnglesBetweenNormalsOnEdges
(
typename
PFP
::
MAP
&
map
,
const
AttributeHandler
<
typename
PFP
::
VEC3
,
VERTEX
>&
position
,
AttributeHandler
<
typename
PFP
::
REAL
,
VERTEX
>&
angles
,
const
FunctorSelect
&
select
=
allDarts
,
unsigned
int
thread
=
0
)
;
void
computeAnglesBetweenNormalsOnEdges
(
typename
PFP
::
MAP
&
map
,
const
AttributeHandler
<
typename
PFP
::
VEC3
,
VERTEX
>&
position
,
AttributeHandler
<
typename
PFP
::
REAL
,
EDGE
>&
angles
,
const
FunctorSelect
&
select
=
allDarts
,
unsigned
int
thread
=
0
)
;
}
// namespace Geometry
...
...
include/Algo/Geometry/normal.hpp
View file @
adbc0c85
...
...
@@ -195,7 +195,7 @@ typename PFP::REAL computeAngleBetweenNormalsOnEdge(typename PFP::MAP& map, Dart
}
template
<
typename
PFP
>
void
computeAnglesBetweenNormalsOnEdges
(
typename
PFP
::
MAP
&
map
,
const
AttributeHandler
<
typename
PFP
::
VEC3
,
VERTEX
>&
position
,
AttributeHandler
<
typename
PFP
::
REAL
,
VERTEX
>&
angles
,
const
FunctorSelect
&
select
,
unsigned
int
thread
)
void
computeAnglesBetweenNormalsOnEdges
(
typename
PFP
::
MAP
&
map
,
const
AttributeHandler
<
typename
PFP
::
VEC3
,
VERTEX
>&
position
,
AttributeHandler
<
typename
PFP
::
REAL
,
EDGE
>&
angles
,
const
FunctorSelect
&
select
,
unsigned
int
thread
)
{
TraversorE
<
typename
PFP
::
MAP
>
trav
(
map
,
select
,
thread
);
for
(
Dart
d
=
trav
.
begin
();
d
!=
trav
.
end
();
d
=
trav
.
next
())
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a 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