Replace LINKED_WITH_TBB by CGAL_LINKED_WITH_TBB.

This commit is contained in:
Clément Jamin 2012-06-13 09:33:08 +00:00
parent 298e56aa92
commit b268598665
24 changed files with 123 additions and 110 deletions

View File

@ -38,7 +38,7 @@
#include <algorithm>
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
# ifdef CGAL_MESH_3_WORKSHARING_USES_TASK_SCHEDULER
# include <tbb/task.h>
# endif
@ -137,7 +137,7 @@ protected:
};
// Parallel
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
template <>
class Mesher_level_base <Parallel_tag>
{
@ -170,7 +170,7 @@ protected:
tbb::task *m_empty_root_task;
#endif
};
#endif // LINKED_WITH_TBB
#endif // CGAL_LINKED_WITH_TBB
/************************************************
@ -537,13 +537,13 @@ public:
previous_level.refine(visitor.previous_level());
if(! no_longer_element_to_refine() )
{
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
// Parallel
if (boost::is_base_of<Parallel_tag, Concurrency_tag>::value)
process_a_batch_of_elements(visitor);
// Sequential
else
#endif // LINKED_WITH_TBB
#endif // CGAL_LINKED_WITH_TBB
process_one_element(visitor);
}
}
@ -564,7 +564,7 @@ public:
refine_sequentially_up_to_N_vertices(Mesh_visitor visitor,
int approx_max_num_mesh_vertices)
{
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
// Parallel
if (boost::is_base_of<Parallel_tag, Concurrency_tag>::value)
{
@ -573,7 +573,7 @@ public:
CGAL_assertion_msg(triangulation().get_lock_data_structure() == 0,
"In refine_sequentially_up_to_N_vertices, the triangulation's locking data structure should be NULL");
}
#endif // LINKED_WITH_TBB
#endif // CGAL_LINKED_WITH_TBB
int count = 0;
@ -588,7 +588,7 @@ public:
}
#ifdef CGAL_MESH_3_TASK_SCHEDULER_WITH_LOCALIZATION_IDS
# ifdef LINKED_WITH_TBB
# ifdef CGAL_LINKED_WITH_TBB
// Parallel
if (boost::is_base_of<Parallel_tag, Concurrency_tag>::value)
{
@ -626,7 +626,7 @@ public:
}
// Sequential
else
#endif // LINKED_WITH_TBB
#endif // CGAL_LINKED_WITH_TBB
{
return 0;
}
@ -728,7 +728,7 @@ public:
}
#endif
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
/**
* This function takes N elements from the queue, and try to refine
* it in parallel.
@ -1007,7 +1007,7 @@ public:
//=======================================================
}
#endif // LINKED_WITH_TBB
#endif // CGAL_LINKED_WITH_TBB
template <class Mesh_visitor>
Mesher_level_conflict_status
@ -1023,7 +1023,7 @@ public:
Zone zone;
#ifdef CGAL_MESH_3_LOCKING_STRATEGY_SIMPLE_GRID_LOCKING
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
//=========================================
//==== Simple Grid locking
//=========================================
@ -1043,7 +1043,7 @@ public:
result = test_point_conflict(p, zone, visitor);
}
else
#endif // LINKED_WITH_TBB
#endif // CGAL_LINKED_WITH_TBB
#endif // CGAL_MESH_3_LOCKING_STRATEGY_SIMPLE_GRID_LOCKING
{
//=========================================
@ -1052,7 +1052,7 @@ public:
before_conflicts(e, p, visitor);
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
//=========== Concurrent? =============
if (boost::is_base_of<Parallel_tag, Concurrency_tag>::value)
{
@ -1068,7 +1068,7 @@ public:
}
//=========== or not? =================
else
#endif // LINKED_WITH_TBB
#endif // CGAL_LINKED_WITH_TBB
{
bool facet_not_in_its_cz = false;
zone = conflicts_zone(p, e, facet_not_in_its_cz);
@ -1111,7 +1111,7 @@ public:
Vertex_handle vh = insert(p, zone);
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
// Parallel
if (boost::is_base_of<Parallel_tag, Concurrency_tag>::value)
{
@ -1127,7 +1127,7 @@ public:
}
// Sequential
else
#endif // LINKED_WITH_TBB
#endif // CGAL_LINKED_WITH_TBB
{
after_insertion(vh, visitor);
}
@ -1283,13 +1283,13 @@ public:
else
if( ! no_longer_element_to_refine() )
{
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
// Parallel
if (boost::is_base_of<Parallel_tag, Concurrency_tag>::value)
process_a_batch_of_elements(visitor);
// Sequential
else
#endif // LINKED_WITH_TBB
#endif // CGAL_LINKED_WITH_TBB
process_one_element(visitor);
}
return ! is_algorithm_done();

View File

@ -76,7 +76,7 @@ if ( CGAL_FOUND )
endif()
if( TBB_FOUND )
add_definitions( -DNOMINMAX -DLINKED_WITH_TBB )
add_definitions( -DNOMINMAX -DCGAL_LINKED_WITH_TBB )
include_directories ( ${TBB_INCLUDE_DIRS} )
link_directories( ${TBB_LIBRARY_DIRS} )
endif( TBB_FOUND )

View File

@ -1,5 +1,5 @@
//#undef LINKED_WITH_TBB
//#undef CGAL_LINKED_WITH_TBB
#include <iostream>
#include <string>
@ -17,6 +17,12 @@ const char * const BENCHMARK_SCRIPT_FILENAME =
"D:/INRIA/CGAL/workingcopy/Mesh_3/benchmark/Mesh_3/concurrency_script.txt";
// ==========================================================================
// BENCHMARK GENERAL PARAMETERS
// ==========================================================================
//#define MESH_3_WITH_FEATURES
// ==========================================================================
// MESH_3 GENERAL PARAMETERS
// ==========================================================================
@ -24,7 +30,6 @@ const char * const BENCHMARK_SCRIPT_FILENAME =
//#define CGAL_MESH_3_USE_OLD_SURFACE_RESTRICTED_DELAUNAY_UPDATE
//#define CGAL_MESH_3_VERBOSE
//#define CGAL_MESH_3_VERY_VERBOSE
//#define CGAL_MESH_3_USE_LAZY_SORTED_REFINEMENT_QUEUE
#define CGAL_MESH_3_INITIAL_POINTS_NO_RANDOM_SHOOTING
const int FACET_ANGLE = 25;
@ -37,8 +42,8 @@ const int TET_SHAPE = 3;
#ifdef CONCURRENT_MESH_3
# ifndef LINKED_WITH_TBB
//# error("LINKED_WITH_TBB not defined.") // CJTODO TEMP
# ifndef CGAL_LINKED_WITH_TBB
//# error("CGAL_LINKED_WITH_TBB not defined.") // CJTODO TEMP
# endif
// ==========================================================================
@ -51,22 +56,23 @@ const int TET_SHAPE = 3;
//#define CGAL_CONCURRENT_MESH_3_VERY_VERBOSE
// ==========================================================================
// Concurrent refinement
// Concurrency config
// ==========================================================================
const char * const CONFIG_FILENAME =
"D:/INRIA/CGAL/workingcopy/Mesh_3/demo/Mesh_3/concurrent_mesher_config.cfg";
//# define CGAL_MESH_3_USE_LAZY_SORTED_REFINEMENT_QUEUE
# define CGAL_MESH_3_ADD_OUTSIDE_POINTS_ON_A_FAR_SPHERE
//# define CGAL_MESH_3_ACTIVATE_GRID_INDEX_CACHE_IN_VERTEX // DOES NOT WORK YET
// =================
// Locking strategy
// =================
# define CGAL_MESH_3_ADD_OUTSIDE_POINTS_ON_A_FAR_SPHERE
# define CGAL_MESH_3_LOCKING_STRATEGY_SIMPLE_GRID_LOCKING
//# define CGAL_MESH_3_CONCURRENT_REFINEMENT_LOCK_ADJ_CELLS // USELESS, FOR TESTS ONLY
//# define CGAL_MESH_3_ACTIVATE_GRID_INDEX_CACHE_IN_VERTEX // DOES NOT WORK YET
// =====================
// Worksharing strategy
@ -82,7 +88,7 @@ const int TET_SHAPE = 3;
//# endif
//# define CGAL_MESH_3_LOAD_BASED_WORKSHARING // Not recommended
//# define CGAL_MESH_3_TASK_SCHEDULER_SORTED_BATCHES_WITH_MULTISET
//# define CGAL_MESH_3_TASK_SCHEDULER_SORTED_BATCHES_WITH_SORT
# define CGAL_MESH_3_TASK_SCHEDULER_SORTED_BATCHES_WITH_SORT
# endif
// ==========================================================================
@ -113,14 +119,13 @@ const int TET_SHAPE = 3;
# define CGAL_MESH_3_IF_UNSORTED_QUEUE_JUST_SORT_AFTER_SCAN
// For better performance on meshes like fandisk
//# define CGAL_MESH_3_ADD_OUTSIDE_POINTS_ON_A_FAR_SPHERE
# define CGAL_MESH_3_ADD_OUTSIDE_POINTS_ON_A_FAR_SPHERE
#endif // CONCURRENT_MESH_3
#define MESH_3_PROFILING
//#define CHECK_AND_DISPLAY_THE_NUMBER_OF_BAD_ELEMENTS_IN_THE_END
//#define MESH_3_WITH_FEATURES
// ==========================================================================
// ==========================================================================

View File

@ -75,7 +75,7 @@ else( ACTIVATE_CONCURRENT_MESH_3 )
endif()
if( TBB_FOUND )
add_definitions( -DNOMINMAX -DLINKED_WITH_TBB )
add_definitions( -DNOMINMAX -DCGAL_LINKED_WITH_TBB )
include_directories ( ${TBB_INCLUDE_DIRS} )
link_directories( ${TBB_LIBRARY_DIRS} )
endif( TBB_FOUND )

View File

@ -38,8 +38,8 @@
#ifdef CONCURRENT_MESH_3
# ifndef LINKED_WITH_TBB
# pragma error("LINKED_WITH_TBB not defined.")
# ifndef CGAL_LINKED_WITH_TBB
# pragma error("CGAL_LINKED_WITH_TBB not defined.")
# endif
# define CGAL_MESH_3_USE_LAZY_SORTED_REFINEMENT_QUEUE

View File

@ -56,7 +56,7 @@ if ( CGAL_FOUND )
endif()
if( TBB_FOUND )
add_definitions( -DNOMINMAX -DLINKED_WITH_TBB )
add_definitions( -DNOMINMAX -DCGAL_LINKED_WITH_TBB )
include_directories ( ${TBB_INCLUDE_DIRS} )
link_directories( ${TBB_LIBRARY_DIRS} )
endif( TBB_FOUND )

View File

@ -20,7 +20,7 @@
#ifndef CGAL_MESH_3_LOCKING_DATA_STRUCTURES_H
#define CGAL_MESH_3_LOCKING_DATA_STRUCTURES_H
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
#include <CGAL/Mesh_3/Concurrent_mesher_config.h>
@ -502,12 +502,12 @@ typedef Simple_grid_locking_ds_with_thread_ids LockDataStructureType;
} } //namespace CGAL::Mesh_3
#else // !LINKED_WITH_TBB
#else // !CGAL_LINKED_WITH_TBB
namespace CGAL { namespace Mesh_3 {
typedef void LockDataStructureType;
} } //namespace CGAL::Mesh_3
#endif // LINKED_WITH_TBB
#endif // CGAL_LINKED_WITH_TBB
#endif // CGAL_MESH_3_LOCKING_DATA_STRUCTURES_H

View File

@ -31,7 +31,7 @@
#include <CGAL/Bbox_3.h>
#include <iostream>
#include <fstream>
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
#include <tbb/atomic.h>
#endif
@ -492,14 +492,14 @@ private:
{
typedef size_type type;
};
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
// Parallel: atomic
template<>
struct Number_of_elements<Parallel_tag>
{
typedef tbb::atomic<size_type> type;
};
#endif // LINKED_WITH_TBB
#endif // CGAL_LINKED_WITH_TBB
// Private date members
Triangulation tr_;

View File

@ -80,7 +80,7 @@ protected:
char bits_;
};
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
// Parallel
template<>
class Mesh_surface_cell_base_3_base<Parallel_tag>
@ -119,7 +119,7 @@ protected:
/// Stores visited facets (4 first bits)
bool visited_facets[4];
};
#endif // LINKED_WITH_TBB
#endif // CGAL_LINKED_WITH_TBB
/**

View File

@ -44,7 +44,7 @@
#include <CGAL/Mesh_3/Profiling_tools.h>
#endif
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
# include <tbb/compat/thread>
#endif
@ -73,7 +73,7 @@ protected:
void set_bbox(const Bbox_3 &) {}
};
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
// Parallel
template <>
class Mesher_3_base<Parallel_tag>
@ -104,7 +104,7 @@ protected:
/// Worksharing data structure
WorksharingDataStructureType m_worksharing_ds;
};
#endif // LINKED_WITH_TBB
#endif // CGAL_LINKED_WITH_TBB
/************************************************
@ -399,7 +399,7 @@ void
Mesher_3<C3T3,MC,MD>::
initialize()
{
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
// Parallel
if (boost::is_base_of<Parallel_tag, Concurrency_tag>::value)
{
@ -480,7 +480,7 @@ initialize()
}
// Sequential
else
#endif // LINKED_WITH_TBB
#endif // CGAL_LINKED_WITH_TBB
{
facets_mesher_.scan_triangulation();

View File

@ -26,7 +26,7 @@
#define CGAL_MESH_3_PROFILING_TOOLS_H
// TBB timers
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
#include <tbb/tick_count.h>
struct WallClockTimer
{

View File

@ -25,7 +25,7 @@
#include <CGAL/Mesher_level.h>
#include <CGAL/Mesher_level_default_implementations.h>
#include <CGAL/Meshes/Triangulation_mesher_level_traits_3.h>
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
#include <tbb/tbb.h>
#endif
@ -115,7 +115,7 @@ protected:
mutable Index m_last_vertex_index;
};
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
// Parallel
template <typename Index>
class Refine_cells_3_base<Index, Parallel_tag>
@ -136,7 +136,7 @@ protected:
/// Stores index of vertex that may be inserted into triangulation
mutable tbb::enumerable_thread_specific<Index> m_last_vertex_index;
};
#endif // LINKED_WITH_TBB
#endif // CGAL_LINKED_WITH_TBB
/************************************************
// Class Refine_cells_3
@ -155,7 +155,7 @@ template<class Tr,
class Complex3InTriangulation3,
class Previous_,
class Concurrency_tag, // CJTODO => change to Sequential_tag
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
class Container_ = typename boost::mpl::if_c // (parallel/sequential?)
<
boost::is_base_of<Parallel_tag, Concurrency_tag>::value,
@ -195,7 +195,7 @@ template<class Tr,
# endif
>::type // boost::if (parallel/sequential)
#else // !LINKED_WITH_TBB
#else // !CGAL_LINKED_WITH_TBB
// Sequential
class Container_ =
@ -220,7 +220,7 @@ template<class Tr,
typename Criteria::Cell_quality>
# endif
#endif // LINKED_WITH_TBB
#endif // CGAL_LINKED_WITH_TBB
>
class Refine_cells_3
: public Refine_facets_3_base<typename MeshDomain::Index, Concurrency_tag>
@ -407,7 +407,9 @@ private:
/// Computes badness and add to queue if needed
void compute_badness_internal(const Cell_handle& cell, Sequential_tag);
#ifdef CGAL_LINKED_WITH_TBB
void compute_badness_internal(const Cell_handle& cell, Parallel_tag);
#endif
void compute_badness(const Cell_handle& cell);
// Updates cells incident to vertex, and add them to queue if needed
@ -520,7 +522,7 @@ scan_triangulation_impl()
#endif
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
// Parallel
if (boost::is_base_of<Parallel_tag, Ct>::value)
{
@ -571,7 +573,7 @@ scan_triangulation_impl()
}
// Sequential
else
#endif // LINKED_WITH_TBB
#endif // CGAL_LINKED_WITH_TBB
{
std::cerr << "Scanning triangulation for bad cells (sequential)... ";
@ -808,6 +810,7 @@ compute_badness_internal(const Cell_handle& cell, Sequential_tag)
}
}
#ifdef CGAL_LINKED_WITH_TBB
template<class Tr, class Cr, class MD, class C3T3_, class P_, class Ct, class C_>
void
Refine_cells_3<Tr,Cr,MD,C3T3_,P_,Ct,C_>::
@ -819,13 +822,18 @@ compute_badness_internal(const Cell_handle& cell, Parallel_tag)
this->add_bad_element(std::make_pair(cell, cell->get_erase_counter()), *is_cell_bad);
}
}
#endif
template<class Tr, class Cr, class MD, class C3T3_, class P_, class Ct, class C_>
void
Refine_cells_3<Tr,Cr,MD,C3T3_,P_,Ct,C_>::
compute_badness(const Cell_handle& cell)
{
#ifdef CGAL_LINKED_WITH_TBB
compute_badness_internal(cell, Ct());
#else
compute_badness_internal(cell, Sequential_tag());
#endif
}
template<class Tr, class Cr, class MD, class C3T3_, class P_, class Ct, class C_>

View File

@ -28,7 +28,7 @@
#include <CGAL/Mesher_level.h>
#include <CGAL/Mesher_level_default_implementations.h>
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
#include <tbb/tbb.h>
#endif
@ -138,7 +138,7 @@ protected:
mutable Index m_last_vertex_index;
};
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
// Parallel
template <typename Index>
class Refine_facets_3_base<Index, Parallel_tag>
@ -159,7 +159,7 @@ protected:
/// Stores index of vertex that may be inserted into triangulation
mutable tbb::enumerable_thread_specific<Index> m_last_vertex_index;
};
#endif // LINKED_WITH_TBB
#endif // CGAL_LINKED_WITH_TBB
/************************************************
// Class Refine_facets_3
@ -179,7 +179,7 @@ template<class Tr,
class Complex3InTriangulation3,
class Previous_level_,
class Concurrency_tag,
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
class Container_ = typename boost::mpl::if_c // (parallel/sequential?)
<
boost::is_base_of<Parallel_tag, Concurrency_tag>::value,
@ -221,7 +221,7 @@ template<class Tr,
# endif
>::type // boost::if (parallel/sequential)
#else // !LINKED_WITH_TBB
#else // !CGAL_LINKED_WITH_TBB
// Sequential
class Container_ =
@ -247,7 +247,7 @@ template<class Tr,
Meshes::Double_map_container<typename Tr::Facet,
typename Criteria::Facet_quality>
# endif
#endif // LINKED_WITH_TBB
#endif // CGAL_LINKED_WITH_TBB
>
class Refine_facets_3
: public Refine_facets_3_base<typename MeshDomain::Index, Concurrency_tag>
@ -558,7 +558,7 @@ private:
/// Insert facet into refinement queue
void insert_bad_facet(Facet& facet, const Quality& quality)
{
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
// Parallel
if (boost::is_base_of<Parallel_tag, Concurrency_tag>::value)
{
@ -572,7 +572,7 @@ private:
}
// Sequential
else
#endif // LINKED_WITH_TBB
#endif // CGAL_LINKED_WITH_TBB
{
#if defined(CGAL_MESH_3_USE_LAZY_SORTED_REFINEMENT_QUEUE) \
|| defined(CGAL_MESH_3_USE_LAZY_UNSORTED_REFINEMENT_QUEUE)
@ -608,11 +608,11 @@ private:
this->remove_element(canonical_facet);
#endif
}
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
/// Removes facet from refinement queue
// Parallel: it's always lazy, so do nothing
void remove_bad_facet(Facet& facet, Parallel_tag) {}
#endif // LINKED_WITH_TBB
#endif // CGAL_LINKED_WITH_TBB
/**
* Action to perform on a facet inside the conflict zone before insertion
@ -727,7 +727,7 @@ scan_triangulation_impl()
<< "Tets : " << r_c3t3_.triangulation().number_of_cells() << std::endl;
#endif
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
// Parallel
if (boost::is_base_of<Parallel_tag, Ct>::value)
{
@ -745,7 +745,7 @@ scan_triangulation_impl()
}
// Sequential
else
#endif // LINKED_WITH_TBB
#endif // CGAL_LINKED_WITH_TBB
{
std::cerr << "Scanning triangulation for bad facets (sequential)...";
for(Finite_facet_iterator facet_it = r_tr_.finite_facets_begin();

View File

@ -20,7 +20,7 @@
#ifndef CGAL_MESH_3_WORKSHARING_DATA_STRUCTURES_H
#define CGAL_MESH_3_WORKSHARING_DATA_STRUCTURES_H
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
#include <CGAL/Mesh_3/Concurrent_mesher_config.h>
@ -1001,12 +1001,12 @@ inline tbb::task* WorkBatchTask::execute()
} } //namespace CGAL::Mesh_3
#else // !LINKED_WITH_TBB
#else // !CGAL_LINKED_WITH_TBB
namespace CGAL { namespace Mesh_3 {
typedef void WorksharingDataStructureType;
} } //namespace CGAL::Mesh_3
#endif // LINKED_WITH_TBB
#endif // CGAL_LINKED_WITH_TBB
#endif // CGAL_MESH_3_WORKSHARING_DATA_STRUCTURES_H

View File

@ -48,7 +48,7 @@ class Mesh_complex_3_in_triangulation_3 :
public Mesh_3::Mesh_complex_3_in_triangulation_3_base
<
Tr,
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
typename boost::mpl::if_c
<
Tr::Is_for_parallel_mesh_3,
@ -57,11 +57,11 @@ class Mesh_complex_3_in_triangulation_3 :
>::type
#else
Sequential_tag
#endif // LINKED_WITH_TBB
#endif // CGAL_LINKED_WITH_TBB
>
{
public:
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
typedef typename boost::mpl::if_c
<
Tr::Is_for_parallel_mesh_3,
@ -70,7 +70,7 @@ public:
>::type Concurrency_tag;
#else
typedef Sequential_tag Concurrency_tag;
#endif // LINKED_WITH_TBB
#endif // CGAL_LINKED_WITH_TBB
private:
typedef Mesh_complex_3_in_triangulation_3<

View File

@ -86,9 +86,9 @@ template< class MD,
CGAL::Triangulation_cell_base_with_circumcenter_3
<
GT
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
, Triangulation_lazy_ds_cell_base_3<Parallel_tag>
#endif // LINKED_WITH_TBB
#endif // CGAL_LINKED_WITH_TBB
>
>
>
@ -98,18 +98,18 @@ private:
typedef GT Geom_traits;
typedef Mesh_vertex_base_3<Geom_traits, MD> Vertex_base;
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
typedef Mesh_cell_base_3<Geom_traits, MD, Cb, Parallel_tag> Cell_base;
typedef Triangulation_data_structure_3<
Vertex_base,Cell_base, true> Tds;
typedef Regular_triangulation_3<Geom_traits, Tds, true> Triangulation;
#else // !LINKED_WITH_TBB
#else // !CGAL_LINKED_WITH_TBB
typedef Mesh_cell_base_3<Geom_traits, MD, Cb, Sequential_tag> Cell_base;
typedef Triangulation_data_structure_3<
Vertex_base,Cell_base> Tds;
typedef Regular_triangulation_3<Geom_traits, Tds> Triangulation;
#endif // LINKED_WITH_TBB
#endif // CGAL_LINKED_WITH_TBB
public:
typedef Triangulation type;

View File

@ -24,7 +24,7 @@
#include <algorithm>
#include <utility>
#include <deque>
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
#include <tbb/enumerable_thread_specific.h>
#endif
@ -75,7 +75,7 @@ namespace Meshes {
}
};
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
// Parallel
template <typename Element, typename Quality>
class Filtered_deque_container_base<Element, Quality, Parallel_tag>
@ -170,7 +170,7 @@ namespace Meshes {
LocalList m_local_lists;
bool m_add_to_TLS_lists;
};
#endif // LINKED_WITH_TBB
#endif // CGAL_LINKED_WITH_TBB
/************************************************
// Class Filtered_deque_container

View File

@ -23,7 +23,7 @@
#include <map>
#include <deque>
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
#include <tbb/enumerable_thread_specific.h>
#endif
@ -74,7 +74,7 @@ namespace CGAL {
}
};
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
// Parallel
template <typename Element, typename Quality>
class Filtered_multimap_container_base<Element, Quality, Parallel_tag>
@ -167,7 +167,7 @@ namespace CGAL {
LocalList m_local_lists;
bool m_add_to_TLS_lists;
};
#endif // LINKED_WITH_TBB
#endif // CGAL_LINKED_WITH_TBB
/************************************************
// Class Filtered_multimap_container

View File

@ -24,7 +24,7 @@
#include <CGAL/Triangulation_ds_cell_base_3.h>
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
# include <tbb/atomic.h>
#endif
@ -42,7 +42,7 @@ protected:
Erase_counter_type m_erase_counter;
};
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
// Specialized version (Parallel)
template <>
class Triangulation_lazy_ds_cell_base_3_base<Parallel_tag>
@ -72,7 +72,7 @@ protected:
int m_localization_id;
#endif
};
#endif // LINKED_WITH_TBB
#endif // CGAL_LINKED_WITH_TBB
template < typename Concurrency_tag = Sequential_tag, typename TDS = void >
class Triangulation_lazy_ds_cell_base_3

View File

@ -42,7 +42,7 @@ if ( CGAL_FOUND )
endif()
if( TBB_FOUND )
add_definitions( -DNOMINMAX -DLINKED_WITH_TBB )
add_definitions( -DNOMINMAX -DCGAL_LINKED_WITH_TBB )
include_directories ( ${TBB_INCLUDE_DIRS} )
link_directories( ${TBB_LIBRARY_DIRS} )
endif( TBB_FOUND )

View File

@ -17,7 +17,7 @@
//
// Author(s) : Clement Jamin
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
#ifndef CGAL_CONCURRENT_COMPACT_CONTAINER_H
#define CGAL_CONCURRENT_COMPACT_CONTAINER_H
@ -960,4 +960,4 @@ namespace internal {
#endif // CGAL_CONCURRENT_COMPACT_CONTAINER_H
#endif // LINKED_WITH_TBB
#endif // CGAL_LINKED_WITH_TBB

View File

@ -26,7 +26,7 @@
#include <CGAL/basic.h>
#include <set>
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
# include <tbb/enumerable_thread_specific.h>
#endif
@ -901,7 +901,7 @@ namespace CGAL {
}
};
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
// Parallel version specialization
template<>
class Hidden_point_visitor<true>
@ -963,7 +963,7 @@ namespace CGAL {
c->hide_point(p);
}
};
#endif // LINKED_WITH_TBB
#endif // CGAL_LINKED_WITH_TBB
Hidden_point_visitor<used_by_parallel_mesh_3> &get_hidden_point_visitor()
{

View File

@ -111,7 +111,7 @@ public:
}
};
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
// Parallel
template <>
class Triangulation_3_base<true>
@ -141,7 +141,7 @@ public:
protected:
Mesh_3::LockDataStructureType *m_lock_ds;
};
#endif // LINKED_WITH_TBB
#endif // CGAL_LINKED_WITH_TBB
/************************************************
*
@ -169,7 +169,7 @@ class Triangulation_3
<
GT
// Force lazy cells if used by parallel Mesh_3
#if defined(LINKED_WITH_TBB) \
#if defined(CGAL_LINKED_WITH_TBB) \
&& !defined(CGAL_MESH_3_USE_LAZY_SORTED_REFINEMENT_QUEUE) \
&& !defined(CGAL_MESH_3_USE_LAZY_UNSORTED_REFINEMENT_QUEUE)
,typename boost::mpl::if_c
@ -606,7 +606,7 @@ public:
bool try_lock_vertex(Vertex_handle vh, int lock_radius = 0) const
{
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
// Parallel Mesh_3
if (used_by_parallel_mesh_3)
{
@ -636,7 +636,7 @@ public:
#endif
}
}
#endif // LINKED_WITH_TBB
#endif // CGAL_LINKED_WITH_TBB
return true;
}
@ -644,7 +644,7 @@ public:
{
bool success = true;
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
# ifdef CGAL_MESH_3_LOCKING_STRATEGY_SIMPLE_GRID_LOCKING
if (used_by_parallel_mesh_3)
{
@ -657,7 +657,7 @@ public:
}
}
# endif
#endif // LINKED_WITH_TBB
#endif // CGAL_LINKED_WITH_TBB
return success;
}
@ -665,7 +665,7 @@ public:
{
bool success = true;
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
# ifdef CGAL_MESH_3_LOCKING_STRATEGY_SIMPLE_GRID_LOCKING
if (used_by_parallel_mesh_3)
{
@ -679,7 +679,7 @@ public:
}
}
#endif // CGAL_MESH_3_LOCKING_STRATEGY_SIMPLE_GRID_LOCKING
#endif // LINKED_WITH_TBB
#endif // CGAL_LINKED_WITH_TBB
return success;
}

View File

@ -52,7 +52,7 @@
#include <CGAL/internal/Triangulation_ds_circulators_3.h>
#ifdef CGAL_HAS_THREADS
# ifdef LINKED_WITH_TBB
# ifdef CGAL_LINKED_WITH_TBB
# include <tbb/enumerable_thread_specific.h>
# else
# include <boost/thread/tss.hpp>
@ -121,7 +121,7 @@ private:
public:
#ifdef LINKED_WITH_TBB
#ifdef CGAL_LINKED_WITH_TBB
// Cells
typedef typename boost::mpl::if_c
<
@ -147,7 +147,7 @@ public:
Compact_container<Vertex>
>::type Vertex_range;
#else // !LINKED_WITH_TBB
#else // !CGAL_LINKED_WITH_TBB
// Cells
# if defined(CGAL_MESH_3_USE_LAZY_SORTED_REFINEMENT_QUEUE) \
@ -161,7 +161,7 @@ public:
// Vertices
typedef Compact_container<Vertex> Vertex_range;
#endif // LINKED_WITH_TBB
#endif // CGAL_LINKED_WITH_TBB
typedef typename Cell_range::size_type size_type;
typedef typename Cell_range::difference_type difference_type;
@ -1243,7 +1243,7 @@ create_star_3(Vertex_handle v, Cell_handle c, int li,
set_adjacency(cnew, li, c_li, c_li->index(c));
#ifdef CGAL_HAS_THREADS
# ifdef LINKED_WITH_TBB
# ifdef CGAL_LINKED_WITH_TBB
static tbb::enumerable_thread_specific< std::vector<iAdjacency_info> > stack_safe_ptr;
std::vector<iAdjacency_info>& adjacency_info_stack = stack_safe_ptr.local();