mirror of https://github.com/CGAL/cgal
Fix : Periodic_mesh didn't manage concurrency parameters.
This commit is contained in:
parent
f262c9f72c
commit
afc1cc7dc5
|
|
@ -23,8 +23,8 @@ if ( CGAL_FOUND )
|
||||||
|
|
||||||
include_directories (BEFORE "../../include")
|
include_directories (BEFORE "../../include")
|
||||||
|
|
||||||
create_single_source_cgal_program( "mesh_triply_periodic_minimal_surfaces.cpp" )
|
# create_single_source_cgal_program( "mesh_triply_periodic_minimal_surfaces.cpp" )
|
||||||
create_single_source_cgal_program( "mesh_implicit_multi_domain.cpp" )
|
# create_single_source_cgal_program( "mesh_implicit_multi_domain.cpp" )
|
||||||
create_single_source_cgal_program( "mesh_implicit_shape.cpp" )
|
create_single_source_cgal_program( "mesh_implicit_shape.cpp" )
|
||||||
# create_single_source_cgal_program( "mesh_implicit_shapes_bunch.cpp" )
|
# create_single_source_cgal_program( "mesh_implicit_shapes_bunch.cpp" )
|
||||||
# create_single_source_cgal_program( "mesh_implicit_shape_with_subdomains.cpp" )
|
# create_single_source_cgal_program( "mesh_implicit_shape_with_subdomains.cpp" )
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@
|
||||||
#ifndef CGAL_MESH_3_REFINE_FACETS_3_H
|
#ifndef CGAL_MESH_3_REFINE_FACETS_3_H
|
||||||
#define CGAL_MESH_3_REFINE_FACETS_3_H
|
#define CGAL_MESH_3_REFINE_FACETS_3_H
|
||||||
|
|
||||||
#include <CGAL/Mesher_level.h>
|
#include <CGAL/Mesh_3/Mesher_level.h>
|
||||||
#include <CGAL/Mesher_level_default_implementations.h>
|
#include <CGAL/Mesher_level_default_implementations.h>
|
||||||
#include <CGAL/Meshes/Double_map_container.h>
|
#include <CGAL/Meshes/Double_map_container.h>
|
||||||
#include <CGAL/Meshes/Triangulation_mesher_level_traits_3.h>
|
#include <CGAL/Meshes/Triangulation_mesher_level_traits_3.h>
|
||||||
|
|
@ -34,6 +34,7 @@
|
||||||
#include <boost/optional.hpp>
|
#include <boost/optional.hpp>
|
||||||
#include <boost/mpl/has_xxx.hpp>
|
#include <boost/mpl/has_xxx.hpp>
|
||||||
#include <CGAL/tuple.h>
|
#include <CGAL/tuple.h>
|
||||||
|
#include <CGAL/tags.h>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
|
||||||
namespace CGAL {
|
namespace CGAL {
|
||||||
|
|
@ -97,7 +98,8 @@ class Refine_facets_3
|
||||||
Previous_level_>,
|
Previous_level_>,
|
||||||
typename Tr::Facet,
|
typename Tr::Facet,
|
||||||
Previous_level_,
|
Previous_level_,
|
||||||
Triangulation_mesher_level_traits_3<Tr> >
|
Triangulation_mesher_level_traits_3<Tr>,
|
||||||
|
Sequential_tag >
|
||||||
, public Container_
|
, public Container_
|
||||||
, public No_after_no_insertion
|
, public No_after_no_insertion
|
||||||
, public No_before_conflicts
|
, public No_before_conflicts
|
||||||
|
|
@ -162,7 +164,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns the conflicts zone
|
/// Returns the conflicts zone
|
||||||
Zone conflicts_zone_impl(const Point& point, const Facet& facet) const;
|
Zone conflicts_zone_impl(const Point& point, const Facet& facet, bool &facet_is_in_its_cz) const;
|
||||||
|
|
||||||
/// Job to do before insertion
|
/// Job to do before insertion
|
||||||
void before_insertion_impl(const Facet& facet,
|
void before_insertion_impl(const Facet& facet,
|
||||||
|
|
@ -404,7 +406,7 @@ Refine_facets_3(Tr& triangulation,
|
||||||
P_& previous,
|
P_& previous,
|
||||||
C3T3& c3t3)
|
C3T3& c3t3)
|
||||||
: Mesher_level<Tr, Self, Facet, P_,
|
: Mesher_level<Tr, Self, Facet, P_,
|
||||||
Triangulation_mesher_level_traits_3<Tr> >(previous)
|
Triangulation_mesher_level_traits_3<Tr>, Sequential_tag >(previous)
|
||||||
, C_()
|
, C_()
|
||||||
, No_after_no_insertion()
|
, No_after_no_insertion()
|
||||||
, No_before_conflicts()
|
, No_before_conflicts()
|
||||||
|
|
@ -489,9 +491,10 @@ template<class Tr, class Cr, class MD, class C3T3_, class P_, class C_>
|
||||||
typename Refine_facets_3<Tr,Cr,MD,C3T3_,P_,C_>::Zone
|
typename Refine_facets_3<Tr,Cr,MD,C3T3_,P_,C_>::Zone
|
||||||
Refine_facets_3<Tr,Cr,MD,C3T3_,P_,C_>::
|
Refine_facets_3<Tr,Cr,MD,C3T3_,P_,C_>::
|
||||||
conflicts_zone_impl(const Point& point,
|
conflicts_zone_impl(const Point& point,
|
||||||
const Facet& facet) const
|
const Facet& facet, bool &facet_is_in_its_cz) const
|
||||||
{
|
{
|
||||||
Zone zone;
|
Zone zone;
|
||||||
|
facet_is_in_its_cz = false;
|
||||||
|
|
||||||
// TODO may be avoid the locate here
|
// TODO may be avoid the locate here
|
||||||
zone.cell = r_tr_.locate(point,
|
zone.cell = r_tr_.locate(point,
|
||||||
|
|
|
||||||
|
|
@ -42,6 +42,7 @@
|
||||||
#include <CGAL/IO/Complex_2_in_triangulation_3_file_writer.h>
|
#include <CGAL/IO/Complex_2_in_triangulation_3_file_writer.h>
|
||||||
|
|
||||||
#include <CGAL/Periodic_mesh_3/config.h>
|
#include <CGAL/Periodic_mesh_3/config.h>
|
||||||
|
#include <CGAL/tags.h>
|
||||||
|
|
||||||
namespace CGAL {
|
namespace CGAL {
|
||||||
|
|
||||||
|
|
@ -50,6 +51,18 @@ class Periodic_3_Delaunay_triangulation_3_Mesher_3 :
|
||||||
public Periodic_3_Delaunay_triangulation_3<Gt, Tds> {
|
public Periodic_3_Delaunay_triangulation_3<Gt, Tds> {
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
typedef Sequential_tag Concurrency_tag;
|
||||||
|
typedef void Lock_data_structure;
|
||||||
|
|
||||||
|
void *get_lock_data_structure() const
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void set_lock_data_structure(void *) const
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
typedef Periodic_3_Delaunay_triangulation_3<Gt, Tds> Base;
|
typedef Periodic_3_Delaunay_triangulation_3<Gt, Tds> Base;
|
||||||
typedef typename Base::Base Base_Base;
|
typedef typename Base::Base Base_Base;
|
||||||
|
|
||||||
|
|
@ -247,7 +260,7 @@ public:
|
||||||
std::pair<OutputIteratorBoundaryFacets, OutputIteratorCells>
|
std::pair<OutputIteratorBoundaryFacets, OutputIteratorCells>
|
||||||
find_conflicts(const Point &p, Cell_handle c,
|
find_conflicts(const Point &p, Cell_handle c,
|
||||||
OutputIteratorBoundaryFacets bfit,
|
OutputIteratorBoundaryFacets bfit,
|
||||||
OutputIteratorCells cit) const
|
OutputIteratorCells cit, bool*) const
|
||||||
{
|
{
|
||||||
Triple<OutputIteratorBoundaryFacets,
|
Triple<OutputIteratorBoundaryFacets,
|
||||||
OutputIteratorCells,
|
OutputIteratorCells,
|
||||||
|
|
@ -350,10 +363,16 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
using Base::locate;
|
using Base::locate;
|
||||||
|
|
||||||
|
Cell_handle locate(const Point& p, Locate_type& l, int& i, int& j, Cell_handle start = Cell_handle(), bool* could_lock_zone = NULL)
|
||||||
|
{
|
||||||
|
assert(could_lock_zone == NULL);
|
||||||
|
return Base::locate(p,l,i,j,start);
|
||||||
|
}
|
||||||
|
|
||||||
Cell_handle locate(const Point & p, Vertex_handle hint) const
|
Cell_handle locate(const Point & p, Vertex_handle hint) const
|
||||||
{
|
{
|
||||||
return locate(p, hint == Vertex_handle() ? infinite_cell() : hint->cell());
|
return Base::locate(p, hint == Vertex_handle() ? infinite_cell() : hint->cell());
|
||||||
|
|
||||||
assert(false); // not yet supported
|
assert(false); // not yet supported
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue