mirror of https://github.com/CGAL/cgal
More CGAL_STATIC_THREAD_LOCAL_VARIABLE
This commit is contained in:
parent
d5523f80c0
commit
faa2866763
|
|
@ -36,6 +36,7 @@
|
||||||
|
|
||||||
#include <CGAL/config.h>
|
#include <CGAL/config.h>
|
||||||
#include <CGAL/tags.h>
|
#include <CGAL/tags.h>
|
||||||
|
#include <CGAL/tss.h>
|
||||||
#include <CGAL/intersections.h>
|
#include <CGAL/intersections.h>
|
||||||
#include <CGAL/Arr_tags.h>
|
#include <CGAL/Arr_tags.h>
|
||||||
#include <CGAL/Arr_enums.h>
|
#include <CGAL/Arr_enums.h>
|
||||||
|
|
@ -93,7 +94,7 @@ protected:
|
||||||
*/
|
*/
|
||||||
inline static const Direction_3& pos_pole()
|
inline static const Direction_3& pos_pole()
|
||||||
{
|
{
|
||||||
static const Direction_3 d(0, 0, 1);
|
CGAL_STATIC_THREAD_LOCAL_VARIABLE_3(Direction_3, d, 0, 0, 1);
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -135,11 +136,11 @@ protected:
|
||||||
inline static const Direction_3& identification_normal()
|
inline static const Direction_3& identification_normal()
|
||||||
{
|
{
|
||||||
#if (CGAL_IDENTIFICATION_XY == CGAL_X_MINUS_1_Y_0)
|
#if (CGAL_IDENTIFICATION_XY == CGAL_X_MINUS_1_Y_0)
|
||||||
static const Direction_3 d(0, 1, 0);
|
CGAL_STATIC_THREAD_LOCAL_VARIABLE_3(Direction_3, d, 0, 1, 0);
|
||||||
#elif (CGAL_IDENTIFICATION_XY == CGAL_X_MINUS_8_Y_6)
|
#elif (CGAL_IDENTIFICATION_XY == CGAL_X_MINUS_8_Y_6)
|
||||||
static const Direction_3 d(6, 8, 0);
|
CGAL_STATIC_THREAD_LOCAL_VARIABLE_3(Direction_3, d, 6, 8, 0);
|
||||||
#elif (CGAL_IDENTIFICATION_XY == CGAL_X_MINUS_11_Y_7)
|
#elif (CGAL_IDENTIFICATION_XY == CGAL_X_MINUS_11_Y_7)
|
||||||
static const Direction_3 d(7, 11, 0);
|
CGAL_STATIC_THREAD_LOCAL_VARIABLE_3(Direction_3, d,7, 11, 0);
|
||||||
#else
|
#else
|
||||||
#error CGAL_IDENTIFICATION_XY is not defined
|
#error CGAL_IDENTIFICATION_XY is not defined
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -151,7 +152,7 @@ protected:
|
||||||
*/
|
*/
|
||||||
inline static const Direction_2& neg_x_2()
|
inline static const Direction_2& neg_x_2()
|
||||||
{
|
{
|
||||||
static const Direction_2 d(-1, 0);
|
CGAL_STATIC_THREAD_LOCAL_VARIABLE_2(Direction_2, d, -1, 0);
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -160,7 +161,7 @@ protected:
|
||||||
*/
|
*/
|
||||||
inline static const Direction_2& neg_y_2()
|
inline static const Direction_2& neg_y_2()
|
||||||
{
|
{
|
||||||
static const Direction_2 d(0, -1);
|
CGAL_STATIC_THREAD_LOCAL_VARIABLE_2(Direction_2, d, 0, -1);
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,7 @@
|
||||||
|
|
||||||
|
|
||||||
#include <ostream>
|
#include <ostream>
|
||||||
|
#include <CGAL/tss.h>
|
||||||
|
|
||||||
#include <CGAL/Arr_rat_arc/Base_rational_arc_ds_1.h>
|
#include <CGAL/Arr_rat_arc/Base_rational_arc_ds_1.h>
|
||||||
#include <CGAL/Arr_rat_arc/Cache.h>
|
#include <CGAL/Arr_rat_arc/Cache.h>
|
||||||
|
|
@ -349,15 +350,15 @@ public:
|
||||||
private:
|
private:
|
||||||
static Self& get_default_instance()
|
static Self& get_default_instance()
|
||||||
{
|
{
|
||||||
static Algebraic_kernel_d_1 kernel;
|
CGAL_STATIC_THREAD_LOCAL_VARIABLE_0(Algebraic_kernel_d_1, kernel);
|
||||||
static typename Rational_function::Polynomial_1 numer(0);
|
typedef typename Rational_function::Polynomial_1 Poly;
|
||||||
static typename Rational_function::Polynomial_1 denom(1);
|
CGAL_STATIC_THREAD_LOCAL_VARIABLE(Poly, numer,0);
|
||||||
static Rational_function rational_function(numer, denom, &kernel);
|
CGAL_STATIC_THREAD_LOCAL_VARIABLE(Poly, denom, 1);
|
||||||
|
CGAL_STATIC_THREAD_LOCAL_VARIABLE_3(Rational_function, rational_function, numer, denom, &kernel);
|
||||||
|
|
||||||
static Algebraic_real_1 x_coordinate =
|
CGAL_STATIC_THREAD_LOCAL_VARIABLE(Algebraic_real_1, x_coordinate,kernel.construct_algebraic_real_1_object()(Rational(0)));
|
||||||
kernel.construct_algebraic_real_1_object()(Rational(0));
|
|
||||||
|
|
||||||
static Self default_instance(rational_function,x_coordinate);
|
CGAL_STATIC_THREAD_LOCAL_VARIABLE_2(Self, default_instance, rational_function, x_coordinate);
|
||||||
|
|
||||||
return default_instance;
|
return default_instance;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,7 @@
|
||||||
#include <CGAL/license/Arrangement_on_surface_2.h>
|
#include <CGAL/license/Arrangement_on_surface_2.h>
|
||||||
|
|
||||||
|
|
||||||
|
#include <CGAL/tss.h>
|
||||||
#include <CGAL/Arr_rat_arc/Base_rational_arc_ds_1.h>
|
#include <CGAL/Arr_rat_arc/Base_rational_arc_ds_1.h>
|
||||||
#include <CGAL/Handle_with_policy.h>
|
#include <CGAL/Handle_with_policy.h>
|
||||||
namespace CGAL {
|
namespace CGAL {
|
||||||
|
|
@ -213,8 +214,8 @@ public:
|
||||||
private:
|
private:
|
||||||
static Self& get_default_instance()
|
static Self& get_default_instance()
|
||||||
{
|
{
|
||||||
static Algebraic_kernel_d_1 kernel;
|
CGAL_STATIC_THREAD_LOCAL_VARIABLE_0(Algebraic_kernel_d_1, kernel);
|
||||||
static Self x = Self(Polynomial_1(0), Polynomial_1(1), &kernel);
|
CGAL_STATIC_THREAD_LOCAL_VARIABLE_3(Self, x, Polynomial_1(0), Polynomial_1(1), &kernel);
|
||||||
return x;
|
return x;
|
||||||
}
|
}
|
||||||
public:
|
public:
|
||||||
|
|
|
||||||
|
|
@ -67,12 +67,14 @@
|
||||||
#define STILL_ALIVE std::cout << __LINE__ << "\n";
|
#define STILL_ALIVE std::cout << __LINE__ << "\n";
|
||||||
|
|
||||||
#include <CGAL/basic.h>
|
#include <CGAL/basic.h>
|
||||||
|
#include <CGAL/tss.h>
|
||||||
#include <CGAL/Bbox_2.h>
|
#include <CGAL/Bbox_2.h>
|
||||||
#include <CGAL/Arithmetic_kernel.h>
|
#include <CGAL/Arithmetic_kernel.h>
|
||||||
|
|
||||||
#include <boost/array.hpp>
|
#include <boost/array.hpp>
|
||||||
#include <CGAL/Curved_kernel_via_analysis_2/gfx/Curve_renderer_2.h>
|
#include <CGAL/Curved_kernel_via_analysis_2/gfx/Curve_renderer_2.h>
|
||||||
|
|
||||||
|
|
||||||
namespace CGAL {
|
namespace CGAL {
|
||||||
|
|
||||||
template <class CurvedKernelViaAnalysis_2, class Float_>
|
template <class CurvedKernelViaAnalysis_2, class Float_>
|
||||||
|
|
@ -98,7 +100,7 @@ public:
|
||||||
Interval_double > Curve_renderer;
|
Interval_double > Curve_renderer;
|
||||||
|
|
||||||
static Curve_renderer& instance() {
|
static Curve_renderer& instance() {
|
||||||
static Curve_renderer _this;
|
CGAL_STATIC_THREAD_LOCAL_VARIABLE_0(Curve_renderer, _this);
|
||||||
return _this;
|
return _this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -177,20 +179,20 @@ public:
|
||||||
#ifdef CGAL_CKVA_USE_STATIC_RENDERER
|
#ifdef CGAL_CKVA_USE_STATIC_RENDERER
|
||||||
static Default_renderer_2& renderer()
|
static Default_renderer_2& renderer()
|
||||||
{
|
{
|
||||||
static Default_renderer_2 rend;
|
CGAL_STATIC_THREAD_LOCAL_VARIABLE_0(Default_renderer_2, rend);
|
||||||
return rend;
|
return rend;
|
||||||
}
|
}
|
||||||
#ifdef CGAL_CKVA_USE_MULTIPREC_ARITHMETIC
|
#ifdef CGAL_CKVA_USE_MULTIPREC_ARITHMETIC
|
||||||
static Bigfloat_renderer_2& bigfloat_renderer()
|
static Bigfloat_renderer_2& bigfloat_renderer()
|
||||||
{
|
{
|
||||||
static Bigfloat_renderer_2 rend;
|
CGAL_STATIC_THREAD_LOCAL_VARIABLE_0(Bigfloat_renderer_2, rend);
|
||||||
return rend;
|
return rend;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef CGAL_CKVA_USE_RATIONAL_ARITHMETIC
|
#ifdef CGAL_CKVA_USE_RATIONAL_ARITHMETIC
|
||||||
static Exact_renderer_2& exact_renderer()
|
static Exact_renderer_2& exact_renderer()
|
||||||
{
|
{
|
||||||
static Exact_renderer_2 rend;
|
CGAL_STATIC_THREAD_LOCAL_VARIABLE_0(Exact_renderer_2, rend);
|
||||||
return rend;
|
return rend;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,7 @@
|
||||||
|
|
||||||
#include <CGAL/config.h>
|
#include <CGAL/config.h>
|
||||||
|
|
||||||
|
#include <CGAL/tss.h>
|
||||||
#include <CGAL/Arr_enums.h>
|
#include <CGAL/Arr_enums.h>
|
||||||
#include <CGAL/Arr_tags.h>
|
#include <CGAL/Arr_tags.h>
|
||||||
#include <CGAL/Curved_kernel_via_analysis_2/Point_2.h>
|
#include <CGAL/Curved_kernel_via_analysis_2/Point_2.h>
|
||||||
|
|
@ -185,8 +186,8 @@ public:
|
||||||
static NewCKvA& set_instance(
|
static NewCKvA& set_instance(
|
||||||
const NewCKvA& ckva
|
const NewCKvA& ckva
|
||||||
) {
|
) {
|
||||||
static NewCKvA instance;
|
CGAL_STATIC_THREAD_LOCAL_VARIABLE_0(NewCKvA, instance);
|
||||||
static NewCKvA binstance;
|
CGAL_STATIC_THREAD_LOCAL_VARIABLE_0(NewCKvA, binstance);
|
||||||
|
|
||||||
if (&ckva == &_reset_instance()) {
|
if (&ckva == &_reset_instance()) {
|
||||||
instance = binstance;
|
instance = binstance;
|
||||||
|
|
@ -210,7 +211,7 @@ private:
|
||||||
* sets instance to default for internal purposes
|
* sets instance to default for internal purposes
|
||||||
*/
|
*/
|
||||||
static NewCKvA& _set_instance() {
|
static NewCKvA& _set_instance() {
|
||||||
static NewCKvA instance;
|
CGAL_STATIC_THREAD_LOCAL_VARIABLE_0(NewCKvA, instance);
|
||||||
return instance;
|
return instance;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -219,7 +220,7 @@ private:
|
||||||
* sets instance to default for internal purposes
|
* sets instance to default for internal purposes
|
||||||
*/
|
*/
|
||||||
static NewCKvA& _reset_instance() {
|
static NewCKvA& _reset_instance() {
|
||||||
static NewCKvA instance;
|
CGAL_STATIC_THREAD_LOCAL_VARIABLE_0(NewCKvA, instance);
|
||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue