Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2014-01-27 15:00:05 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2014-01-27 15:04:06 +0400
commit31d679b667cd121a9bcbe32fedc8ab768611b963 (patch)
tree47c5ae514d9772dff1086b8eed8cf8ffb191f11f /extern/carve/lib/intersect.cpp
parent184294782e16dd7ed2bfdef064fc9c4351fe5507 (diff)
Update Carve to latest update
Fixes some issues with NaN vertices in special cases. Also adds edge interpolation routines which are currently unused but which are requires to implement edge CD interpolation.
Diffstat (limited to 'extern/carve/lib/intersect.cpp')
-rw-r--r--extern/carve/lib/intersect.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/extern/carve/lib/intersect.cpp b/extern/carve/lib/intersect.cpp
index 8e377664748..3bfbb40e402 100644
--- a/extern/carve/lib/intersect.cpp
+++ b/extern/carve/lib/intersect.cpp
@@ -433,12 +433,16 @@ void carve::csg::CSG::Hooks::unregisterHook(Hook *hook) {
}
void carve::csg::CSG::Hooks::reset() {
+ std::set<Hook *> to_delete;
for (unsigned i = 0; i < HOOK_MAX; ++i) {
for (std::list<Hook *>::iterator j = hooks[i].begin(); j != hooks[i].end(); ++j) {
- delete (*j);
+ to_delete.insert(*j);
}
hooks[i].clear();
}
+ for (std::set<Hook *>::iterator i = to_delete.begin(); i != to_delete.end(); ++i) {
+ delete *i;
+ }
}
carve::csg::CSG::Hooks::Hooks() : hooks() {
@@ -1374,9 +1378,9 @@ void carve::csg::CSG::calc(meshset_t *a,
* @param result_list
* @param shared_edge_ptr
*/
-void returnSharedEdges(carve::csg::V2Set &shared_edges,
- std::list<carve::mesh::MeshSet<3> *> &result_list,
- carve::csg::V2Set *shared_edge_ptr) {
+static void returnSharedEdges(carve::csg::V2Set &shared_edges,
+ std::list<carve::mesh::MeshSet<3> *> &result_list,
+ carve::csg::V2Set *shared_edge_ptr) {
// need to convert shared edges to point into result
typedef std::map<carve::geom3d::Vector, carve::mesh::MeshSet<3>::vertex_t *> remap_type;
remap_type remap;