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
David Cazier
CGoGN
Commits
4c35b952
Commit
4c35b952
authored
Mar 26, 2012
by
Pierre Kraemer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
start debug copyFrom
parent
359cf623
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
37 additions
and
47 deletions
+37
-47
include/Algo/MC/marchingcube.hpp
include/Algo/MC/marchingcube.hpp
+3
-3
include/Topology/generic/genericmap.h
include/Topology/generic/genericmap.h
+14
-14
src/Container/attributeContainer.cpp
src/Container/attributeContainer.cpp
+0
-2
src/Container/holeblockref.cpp
src/Container/holeblockref.cpp
+3
-5
src/Topology/generic/genericmap.cpp
src/Topology/generic/genericmap.cpp
+17
-23
No files found.
include/Algo/MC/marchingcube.hpp
View file @
4c35b952
...
...
@@ -1262,9 +1262,9 @@ void MarchingCube<DataType, Windowing, PFP>::recalPoints(const Geom::Vec3f& orig
{
typename PFP::VEC3& P = m_positions[i];
P -= m_fOrigin;
P
[
0
]
=
(
P
[
0
]
-
0.5
f
)
*
m_fScal
[
0
];
P
[
1
]
=
(
P
[
1
]
-
0.5
f
)
*
m_fScal
[
1
];
P
[
2
]
=
(
P
[
2
]
-
0.5
f
)
*
m_fScal
[
2
];
P[0] = (P[0]
+
0.5f) * m_fScal[0];
P[1] = (P[1]
+
0.5f) * m_fScal[1];
P[2] = (P[2]
+
0.5f) * m_fScal[2];
P+=origin;
}
}
...
...
include/Topology/generic/genericmap.h
View file @
4c35b952
...
...
@@ -428,7 +428,7 @@ protected:
* @param name name of the relation
* @return the attribute multi-vector pointer
*/
AttributeMultiVector
<
Dart
>*
getRelation
(
const
std
::
string
&
name
);
AttributeMultiVector
<
Dart
>*
getRelation
(
const
std
::
string
&
name
)
;
/****************************************
* THREAD MANAGEMENT *
...
...
@@ -506,22 +506,22 @@ public:
/**
* copy from another map (of same type)
*/
bool
copyFrom
(
const
GenericMap
&
map
);
bool
copyFrom
(
const
GenericMap
&
map
)
;
/**
* Dump attributes types and names per orbit
*/
void
dumpAttributesAndMarkers
();
void
dumpAttributesAndMarkers
()
;
/**
* update topo relation after compacting the container:
*/
virtual
void
compactTopoRelations
(
const
std
::
vector
<
unsigned
int
>&
oldnew
)
=
0
;
virtual
void
compactTopoRelations
(
const
std
::
vector
<
unsigned
int
>&
oldnew
)
=
0
;
/**
* compact the map
*/
void
compact
();
void
compact
()
;
/****************************************
* DARTS TRAVERSALS *
...
...
@@ -531,13 +531,13 @@ public:
* Begin of map
* @return the first dart of the map
*/
Dart
begin
()
const
;
Dart
begin
()
const
;
/**
* End of map
* @return the end iterator (next of last) of the map
*/
Dart
end
()
const
;
Dart
end
()
const
;
/**
* allow to go from a dart to the next
...
...
@@ -590,39 +590,39 @@ public:
protected:
/// boundary marker
Mark
m_boundaryMarker
;
Mark
m_boundaryMarker
;
/**
* mark a dart as belonging to boundary
*/
void
boundaryMark
(
Dart
d
);
void
boundaryMark
(
Dart
d
)
;
/**
* unmark a dart from the boundary
*/
void
boundaryUnmark
(
Dart
d
);
void
boundaryUnmark
(
Dart
d
)
;
public:
/**
* test if a dart belong to the boundary
*/
bool
isBoundaryMarked
(
Dart
d
)
const
;
bool
isBoundaryMarked
(
Dart
d
)
const
;
protected:
/**
* mark an orbit of dart as belonging to boundary
*/
void
boundaryMarkOrbit
(
unsigned
int
orbit
,
Dart
d
);
void
boundaryMarkOrbit
(
unsigned
int
orbit
,
Dart
d
)
;
/**
* unmark an orbit of dart from the boundary
*/
void
boundaryUnmarkOrbit
(
unsigned
int
orbit
,
Dart
d
);
void
boundaryUnmarkOrbit
(
unsigned
int
orbit
,
Dart
d
)
;
/**
* clear all boundary markers
*/
void
boundaryUnmarkAll
();
void
boundaryUnmarkAll
()
;
}
;
//
...
...
src/Container/attributeContainer.cpp
View file @
4c35b952
...
...
@@ -690,7 +690,6 @@ bool AttributeContainer::loadBin(CGoGNistream& fs)
return
true
;
}
void
AttributeContainer
::
copyFrom
(
const
AttributeContainer
&
cont
)
{
// clear is done from the map
...
...
@@ -742,5 +741,4 @@ void AttributeContainer::copyFrom(const AttributeContainer& cont)
}
}
}
src/Container/holeblockref.cpp
View file @
4c35b952
...
...
@@ -40,8 +40,7 @@
namespace
CGoGN
{
HoleBlockRef
::
HoleBlockRef
()
:
m_nbfree
(
0
),
m_nbref
(
0
),
m_nb
(
0
)
HoleBlockRef
::
HoleBlockRef
()
:
m_nbfree
(
0
),
m_nbref
(
0
),
m_nb
(
0
)
{
m_tableFree
=
new
unsigned
int
[
_BLOCKSIZE_
+
10
];
m_refCount
=
new
unsigned
int
[
_BLOCKSIZE_
];
...
...
@@ -53,12 +52,11 @@ HoleBlockRef::HoleBlockRef(const HoleBlockRef& hb)
m_nbref
=
hb
.
m_nbref
;
m_nb
=
hb
.
m_nb
;
m_tableFree
=
new
unsigned
int
[
_BLOCKSIZE_
+
10
];
memcpy
(
m_tableFree
,
hb
.
m_tableFree
,
(
_BLOCKSIZE_
+
10
)
*
sizeof
(
unsigned
int
));
m_tableFree
=
new
unsigned
int
[
_BLOCKSIZE_
+
10
];
memcpy
(
m_tableFree
,
hb
.
m_tableFree
,
(
_BLOCKSIZE_
+
10
)
*
sizeof
(
unsigned
int
));
m_refCount
=
new
unsigned
int
[
_BLOCKSIZE_
];
memcpy
(
m_refCount
,
hb
.
m_refCount
,
_BLOCKSIZE_
*
sizeof
(
unsigned
int
));
}
HoleBlockRef
::~
HoleBlockRef
()
...
...
src/Topology/generic/genericmap.cpp
View file @
4c35b952
...
...
@@ -578,20 +578,16 @@ bool GenericMap::loadMapBin(const std::string& filename)
return
true
;
}
bool
GenericMap
::
copyFrom
(
const
GenericMap
&
map
)
{
if
(
mapTypeName
()
!=
map
.
mapTypeName
())
{
CGoGNerr <<"try to copy from incompatible type map" << CGoGNendl;
CGoGNerr
<<
"try to copy from incompatible type map"
<<
CGoGNendl
;
return
false
;
}
GenericMap
::
clear
(
true
);
// load attrib container
for
(
unsigned
int
i
=
0
;
i
<
NB_ORBITS
;
++
i
)
m_attribs
[
i
].
copyFrom
(
map
.
m_attribs
[
i
]);
...
...
@@ -601,13 +597,12 @@ bool GenericMap::copyFrom(const GenericMap& map)
m_mrattribs
.
copyFrom
(
map
.
m_mrattribs
);
m_mrCurrentLevel
=
map
.
m_mrCurrentLevel
;
unsigned int nb= map.m_mrNbDarts.size();
unsigned
int
nb
=
map
.
m_mrNbDarts
.
size
();
m_mrNbDarts
.
resize
(
nb
);
for (unsigned int i
=
0; i
<
nb; ++i)
for
(
unsigned
int
i
=
0
;
i
<
nb
;
++
i
)
m_mrNbDarts
[
i
]
=
map
.
m_mrNbDarts
[
i
];
}
// retrieve m_embeddings (from m_attribs)
update_m_emb_afterLoad
();
...
...
@@ -657,7 +652,7 @@ void GenericMap::update_topo_shortcuts()
// get thread number
unsigned
int
thread
=
listeNames
[
i
][
5
]
-
'0'
;
if
(
listeNames
[
i
].
size
()
>
6
)
// thread number is >9
thread = 10*thread + listeNames[i][6]-'0';
thread
=
10
*
thread
+
(
listeNames
[
i
][
6
]
-
'0'
)
;
AttributeMultiVector
<
Mark
>*
amvMark
=
cont
.
getDataVector
<
Mark
>
(
i
);
m_markTables
[
orbit
][
thread
]
=
amvMark
;
...
...
@@ -682,34 +677,34 @@ void GenericMap::update_topo_shortcuts()
{
std
::
vector
<
std
::
string
>
names
;
m_mrattribs
.
getAttributesNames
(
names
);
m_mrDarts.resize(names.size()
-
1);
for (unsigned int i
=
0; i
<
m_mrDarts.size(); ++i)
m_mrDarts
.
resize
(
names
.
size
()
-
1
);
for
(
unsigned
int
i
=
0
;
i
<
m_mrDarts
.
size
();
++
i
)
m_mrDarts
[
i
]
=
NULL
;
for
(
unsigned
int
i
=
0
;
i
<
names
.
size
();
++
i
)
{
std
::
string
sub
=
names
[
i
].
substr
(
0
,
7
);
if (sub=="MRLevel")
if
(
sub
==
"MRLevel"
)
m_mrLevels
=
m_mrattribs
.
getDataVector
<
unsigned
int
>
(
i
);
if (sub=="MRdart_")
if
(
sub
==
"MRdart_"
)
{
sub
=
names
[
i
].
substr
(
7
);
// compute number following MT_Dart_
unsigned int idx
=
0;
for (unsigned int j
=
0; j < sub.length(); j++)
idx = 10*idx
+
(sub[j]-'0');
if (idx < names.size()
-
1)
unsigned
int
idx
=
0
;
for
(
unsigned
int
j
=
0
;
j
<
sub
.
length
();
j
++
)
idx
=
10
*
idx
+
(
sub
[
j
]
-
'0'
);
if
(
idx
<
names
.
size
()
-
1
)
m_mrDarts
[
idx
]
=
m_mrattribs
.
getDataVector
<
unsigned
int
>
(
i
);
else
CGoGNerr<<"Warning problem updating MR_DARTS" << CGoGNendl;
CGoGNerr
<<
"Warning problem updating MR_DARTS"
<<
CGoGNendl
;
}
}
// check if all pointers are != NULL
for (unsigned int i
=
0; i
<
m_mrDarts.size(); ++i)
for
(
unsigned
int
i
=
0
;
i
<
m_mrDarts
.
size
();
++
i
)
{
if
(
m_mrDarts
[
i
]
==
NULL
)
CGoGNerr<<"Warning problem MR_DARTS = NULL" << CGoGNendl;
CGoGNerr
<<
"Warning problem MR_DARTS = NULL"
<<
CGoGNendl
;
}
}
}
...
...
@@ -804,17 +799,16 @@ void GenericMap::compact()
}
}
}
// delete allocated vectors
for
(
unsigned
int
orbit
=
0
;
orbit
<
NB_ORBITS
;
++
orbit
)
if
((
orbit
!=
DART
)
&&
(
isOrbitEmbedded
(
orbit
)))
delete
[]
oldnews
[
orbit
];
//compacting the topo
std
::
vector
<
unsigned
int
>
oldnew
;
m_attribs
[
DART
].
compact
(
oldnew
);
// update MR indices to attribs[DART]
if
(
m_isMultiRes
)
{
...
...
@@ -830,7 +824,7 @@ void GenericMap::compact()
}
}
// update topo relations from real map
// update topo relations from real map
compactTopoRelations
(
oldnewMR
);
// dumpAttributesAndMarkers();
...
...
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