mirror of https://github.com/CGAL/cgal
add a way to disable at runtime polygon assertions
some algorithms works with strictly simple polygons but implementation such a check function is hard
This commit is contained in:
parent
e1dd96414d
commit
a5c5a618d2
|
|
@ -32,6 +32,31 @@
|
|||
#undef CGAL_polygon_assertion_msg
|
||||
#undef CGAL_polygon_assertion_code
|
||||
|
||||
|
||||
#ifndef CGAL_POLYGON_ASSERTIONS_H
|
||||
#define CGAL_POLYGON_ASSERTIONS_H
|
||||
#if defined(CGAL_POLYGON_NO_ASSERTIONS) || defined(CGAL_NO_ASSERTIONS) \
|
||||
|| defined(NDEBUG)
|
||||
namespace CGAL{
|
||||
inline void set_use_polygon_assertions(bool){}
|
||||
inline bool get_use_polygon_assertions(){return true;}
|
||||
}
|
||||
#else
|
||||
#include <CGAL/tss.h>
|
||||
namespace CGAL{
|
||||
inline bool& get_use_polygon_assertions()
|
||||
{
|
||||
CGAL_STATIC_THREAD_LOCAL_VARIABLE(bool, b, true);
|
||||
return b;
|
||||
}
|
||||
inline void set_use_polygon_assertions(bool b)
|
||||
{
|
||||
get_use_polygon_assertions() = b;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#endif // CGAL_POLYGON_ASSERTIONS_H
|
||||
|
||||
#if defined(CGAL_POLYGON_NO_ASSERTIONS) || defined(CGAL_NO_ASSERTIONS) \
|
||||
|| defined(NDEBUG)
|
||||
# define CGAL_polygon_assertion(EX) (static_cast<void>(0))
|
||||
|
|
@ -39,9 +64,9 @@
|
|||
# define CGAL_polygon_assertion_code(CODE)
|
||||
#else
|
||||
# define CGAL_polygon_assertion(EX) \
|
||||
(CGAL::possibly(EX)?(static_cast<void>(0)): ::CGAL::assertion_fail( # EX , __FILE__, __LINE__))
|
||||
((!get_use_polygon_assertions() || CGAL::possibly(EX))?(static_cast<void>(0)): ::CGAL::assertion_fail( # EX , __FILE__, __LINE__))
|
||||
# define CGAL_polygon_assertion_msg(EX,MSG) \
|
||||
(CGAL::possibly(EX)?(static_cast<void>(0)): ::CGAL::assertion_fail( # EX , __FILE__, __LINE__, MSG))
|
||||
((!get_use_polygon_assertions() || CGAL::possibly(EX))?(static_cast<void>(0)): ::CGAL::assertion_fail( # EX , __FILE__, __LINE__, MSG))
|
||||
# define CGAL_polygon_assertion_code(CODE) CODE
|
||||
# define CGAL_polygon_assertions 1
|
||||
#endif // CGAL_POLYGON_NO_ASSERTIONS
|
||||
|
|
@ -59,9 +84,9 @@
|
|||
# define CGAL_polygon_exactness_assertion_code(CODE)
|
||||
#else
|
||||
# define CGAL_polygon_exactness_assertion(EX) \
|
||||
(CGAL::possibly(EX)?(static_cast<void>(0)): ::CGAL::assertion_fail( # EX , __FILE__, __LINE__))
|
||||
((!get_use_polygon_assertions() || CGAL::possibly(EX))?(static_cast<void>(0)): ::CGAL::assertion_fail( # EX , __FILE__, __LINE__))
|
||||
# define CGAL_polygon_exactness_assertion_msg(EX,MSG) \
|
||||
(CGAL::possibly(EX)?(static_cast<void>(0)): ::CGAL::assertion_fail( # EX , __FILE__, __LINE__, MSG))
|
||||
((!get_use_polygon_assertions() || CGAL::possibly(EX))?(static_cast<void>(0)): ::CGAL::assertion_fail( # EX , __FILE__, __LINE__, MSG))
|
||||
# define CGAL_polygon_exactness_assertion_code(CODE) CODE
|
||||
# define CGAL_polygon_exactness_assertions 1
|
||||
#endif // CGAL_POLYGON_NO_ASSERTIONS
|
||||
|
|
@ -80,9 +105,9 @@
|
|||
# define CGAL_polygon_expensive_assertion_code(CODE)
|
||||
#else
|
||||
# define CGAL_polygon_expensive_assertion(EX) \
|
||||
(CGAL::possibly(EX)?(static_cast<void>(0)): ::CGAL::assertion_fail( # EX , __FILE__, __LINE__))
|
||||
((!get_use_polygon_assertions() || CGAL::possibly(EX))?(static_cast<void>(0)): ::CGAL::assertion_fail( # EX , __FILE__, __LINE__))
|
||||
# define CGAL_polygon_expensive_assertion_msg(EX,MSG) \
|
||||
(CGAL::possibly(EX)?(static_cast<void>(0)): ::CGAL::assertion_fail( # EX , __FILE__, __LINE__, MSG))
|
||||
((!get_use_polygon_assertions() || CGAL::possibly(EX))?(static_cast<void>(0)): ::CGAL::assertion_fail( # EX , __FILE__, __LINE__, MSG))
|
||||
# define CGAL_polygon_expensive_assertion_code(CODE) CODE
|
||||
# define CGAL_polygon_expensive_assertions 1
|
||||
#endif // CGAL_POLYGON_NO_ASSERTIONS
|
||||
|
|
@ -101,9 +126,9 @@
|
|||
# define CGAL_polygon_expensive_exactness_assertion_code(CODE)
|
||||
#else
|
||||
# define CGAL_polygon_expensive_exactness_assertion(EX) \
|
||||
(CGAL::possibly(EX)?(static_cast<void>(0)): ::CGAL::assertion_fail( # EX , __FILE__, __LINE__))
|
||||
((!get_use_polygon_assertions() || CGAL::possibly(EX))?(static_cast<void>(0)): ::CGAL::assertion_fail( # EX , __FILE__, __LINE__))
|
||||
# define CGAL_polygon_expensive_exactness_assertion_msg(EX,MSG) \
|
||||
(CGAL::possibly(EX)?(static_cast<void>(0)): ::CGAL::assertion_fail( # EX , __FILE__, __LINE__, MSG))
|
||||
((!get_use_polygon_assertions() || CGAL::possibly(EX))?(static_cast<void>(0)): ::CGAL::assertion_fail( # EX , __FILE__, __LINE__, MSG))
|
||||
# define CGAL_polygon_expensive_exactness_assertion_code(CODE) CODE
|
||||
# define CGAL_polygon_expensive_exactness_assertions 1
|
||||
#endif // CGAL_POLYGON_NO_ASSERTIONS
|
||||
|
|
@ -123,9 +148,9 @@
|
|||
# define CGAL_polygon_precondition_code(CODE)
|
||||
#else
|
||||
# define CGAL_polygon_precondition(EX) \
|
||||
(CGAL::possibly(EX)?(static_cast<void>(0)): ::CGAL::precondition_fail( # EX , __FILE__, __LINE__))
|
||||
((!get_use_polygon_assertions() || CGAL::possibly(EX))?(static_cast<void>(0)): ::CGAL::precondition_fail( # EX , __FILE__, __LINE__))
|
||||
# define CGAL_polygon_precondition_msg(EX,MSG) \
|
||||
(CGAL::possibly(EX)?(static_cast<void>(0)): ::CGAL::precondition_fail( # EX , __FILE__, __LINE__, MSG))
|
||||
((!get_use_polygon_assertions() || CGAL::possibly(EX))?(static_cast<void>(0)): ::CGAL::precondition_fail( # EX , __FILE__, __LINE__, MSG))
|
||||
# define CGAL_polygon_precondition_code(CODE) CODE
|
||||
# define CGAL_polygon_preconditions 1
|
||||
#endif // CGAL_POLYGON_NO_PRECONDITIONS
|
||||
|
|
@ -143,9 +168,9 @@
|
|||
# define CGAL_polygon_exactness_precondition_code(CODE)
|
||||
#else
|
||||
# define CGAL_polygon_exactness_precondition(EX) \
|
||||
(CGAL::possibly(EX)?(static_cast<void>(0)): ::CGAL::precondition_fail( # EX , __FILE__, __LINE__))
|
||||
((!get_use_polygon_assertions() || CGAL::possibly(EX))?(static_cast<void>(0)): ::CGAL::precondition_fail( # EX , __FILE__, __LINE__))
|
||||
# define CGAL_polygon_exactness_precondition_msg(EX,MSG) \
|
||||
(CGAL::possibly(EX)?(static_cast<void>(0)): ::CGAL::precondition_fail( # EX , __FILE__, __LINE__, MSG))
|
||||
((!get_use_polygon_assertions() || CGAL::possibly(EX))?(static_cast<void>(0)): ::CGAL::precondition_fail( # EX , __FILE__, __LINE__, MSG))
|
||||
# define CGAL_polygon_exactness_precondition_code(CODE) CODE
|
||||
# define CGAL_polygon_exactness_preconditions 1
|
||||
#endif // CGAL_POLYGON_NO_PRECONDITIONS
|
||||
|
|
@ -163,9 +188,9 @@
|
|||
# define CGAL_polygon_expensive_precondition_code(CODE)
|
||||
#else
|
||||
# define CGAL_polygon_expensive_precondition(EX) \
|
||||
(CGAL::possibly(EX)?(static_cast<void>(0)): ::CGAL::precondition_fail( # EX , __FILE__, __LINE__))
|
||||
((!get_use_polygon_assertions() || CGAL::possibly(EX))?(static_cast<void>(0)): ::CGAL::precondition_fail( # EX , __FILE__, __LINE__))
|
||||
# define CGAL_polygon_expensive_precondition_msg(EX,MSG) \
|
||||
(CGAL::possibly(EX)?(static_cast<void>(0)): ::CGAL::precondition_fail( # EX , __FILE__, __LINE__, MSG))
|
||||
((!get_use_polygon_assertions() || CGAL::possibly(EX))?(static_cast<void>(0)): ::CGAL::precondition_fail( # EX , __FILE__, __LINE__, MSG))
|
||||
# define CGAL_polygon_expensive_precondition_code(CODE) CODE
|
||||
# define CGAL_polygon_expensive_preconditions 1
|
||||
#endif // CGAL_POLYGON_NO_PRECONDITIONS
|
||||
|
|
@ -184,9 +209,9 @@
|
|||
# define CGAL_polygon_expensive_exactness_precondition_code(CODE)
|
||||
#else
|
||||
# define CGAL_polygon_expensive_exactness_precondition(EX) \
|
||||
(CGAL::possibly(EX)?(static_cast<void>(0)): ::CGAL::precondition_fail( # EX , __FILE__, __LINE__))
|
||||
((!get_use_polygon_assertions() || CGAL::possibly(EX))?(static_cast<void>(0)): ::CGAL::precondition_fail( # EX , __FILE__, __LINE__))
|
||||
# define CGAL_polygon_expensive_exactness_precondition_msg(EX,MSG) \
|
||||
(CGAL::possibly(EX)?(static_cast<void>(0)): ::CGAL::precondition_fail( # EX , __FILE__, __LINE__, MSG))
|
||||
((!get_use_polygon_assertions() || CGAL::possibly(EX))?(static_cast<void>(0)): ::CGAL::precondition_fail( # EX , __FILE__, __LINE__, MSG))
|
||||
# define CGAL_polygon_expensive_exactness_precondition_code(CODE) CODE
|
||||
# define CGAL_polygon_expensive_exactness_preconditions 1
|
||||
#endif // CGAL_POLYGON_NO_PRECONDITIONS
|
||||
|
|
@ -206,9 +231,9 @@
|
|||
# define CGAL_polygon_postcondition_code(CODE)
|
||||
#else
|
||||
# define CGAL_polygon_postcondition(EX) \
|
||||
(CGAL::possibly(EX)?(static_cast<void>(0)): ::CGAL::postcondition_fail( # EX , __FILE__, __LINE__))
|
||||
((!get_use_polygon_assertions() || CGAL::possibly(EX))?(static_cast<void>(0)): ::CGAL::postcondition_fail( # EX , __FILE__, __LINE__))
|
||||
# define CGAL_polygon_postcondition_msg(EX,MSG) \
|
||||
(CGAL::possibly(EX)?(static_cast<void>(0)): ::CGAL::postcondition_fail( # EX , __FILE__, __LINE__, MSG))
|
||||
((!get_use_polygon_assertions() || CGAL::possibly(EX))?(static_cast<void>(0)): ::CGAL::postcondition_fail( # EX , __FILE__, __LINE__, MSG))
|
||||
# define CGAL_polygon_postcondition_code(CODE) CODE
|
||||
# define CGAL_polygon_postconditions 1
|
||||
#endif // CGAL_POLYGON_NO_POSTCONDITIONS
|
||||
|
|
@ -226,9 +251,9 @@
|
|||
# define CGAL_polygon_exactness_postcondition_code(CODE)
|
||||
#else
|
||||
# define CGAL_polygon_exactness_postcondition(EX) \
|
||||
(CGAL::possibly(EX)?(static_cast<void>(0)): ::CGAL::postcondition_fail( # EX , __FILE__, __LINE__))
|
||||
((!get_use_polygon_assertions() || CGAL::possibly(EX))?(static_cast<void>(0)): ::CGAL::postcondition_fail( # EX , __FILE__, __LINE__))
|
||||
# define CGAL_polygon_exactness_postcondition_msg(EX,MSG) \
|
||||
(CGAL::possibly(EX)?(static_cast<void>(0)): ::CGAL::postcondition_fail( # EX , __FILE__, __LINE__, MSG))
|
||||
((!get_use_polygon_assertions() || CGAL::possibly(EX))?(static_cast<void>(0)): ::CGAL::postcondition_fail( # EX , __FILE__, __LINE__, MSG))
|
||||
# define CGAL_polygon_exactness_postcondition_code(CODE) CODE
|
||||
# define CGAL_polygon_exactness_postconditions 1
|
||||
#endif // CGAL_POLYGON_NO_POSTCONDITIONS
|
||||
|
|
@ -246,9 +271,9 @@
|
|||
# define CGAL_polygon_expensive_postcondition_code(CODE)
|
||||
#else
|
||||
# define CGAL_polygon_expensive_postcondition(EX) \
|
||||
(CGAL::possibly(EX)?(static_cast<void>(0)): ::CGAL::postcondition_fail( # EX , __FILE__, __LINE__))
|
||||
((!get_use_polygon_assertions() || CGAL::possibly(EX))?(static_cast<void>(0)): ::CGAL::postcondition_fail( # EX , __FILE__, __LINE__))
|
||||
# define CGAL_polygon_expensive_postcondition_msg(EX,MSG) \
|
||||
(CGAL::possibly(EX)?(static_cast<void>(0)): ::CGAL::postcondition_fail( # EX , __FILE__, __LINE__, MSG))
|
||||
((!get_use_polygon_assertions() || CGAL::possibly(EX))?(static_cast<void>(0)): ::CGAL::postcondition_fail( # EX , __FILE__, __LINE__, MSG))
|
||||
# define CGAL_polygon_expensive_postcondition_code(CODE) CODE
|
||||
# define CGAL_polygon_expensive_postconditions 1
|
||||
#endif // CGAL_POLYGON_NO_POSTCONDITIONS
|
||||
|
|
@ -267,9 +292,9 @@
|
|||
# define CGAL_polygon_expensive_exactness_postcondition_code(CODE)
|
||||
#else
|
||||
# define CGAL_polygon_expensive_exactness_postcondition(EX) \
|
||||
(CGAL::possibly(EX)?(static_cast<void>(0)): ::CGAL::postcondition_fail( # EX , __FILE__, __LINE__))
|
||||
((!get_use_polygon_assertions() || CGAL::possibly(EX))?(static_cast<void>(0)): ::CGAL::postcondition_fail( # EX , __FILE__, __LINE__))
|
||||
# define CGAL_polygon_expensive_exactness_postcondition_msg(EX,MSG) \
|
||||
(CGAL::possibly(EX)?(static_cast<void>(0)): ::CGAL::postcondition_fail( # EX , __FILE__, __LINE__, MSG))
|
||||
((!get_use_polygon_assertions() || CGAL::possibly(EX))?(static_cast<void>(0)): ::CGAL::postcondition_fail( # EX , __FILE__, __LINE__, MSG))
|
||||
# define CGAL_polygon_expensive_exactness_postcondition_code(CODE) CODE
|
||||
# define CGAL_polygon_expensive_exactness_postconditions 1
|
||||
#endif // CGAL_POLYGON_NO_POSTCONDITIONS
|
||||
|
|
@ -289,9 +314,9 @@
|
|||
# define CGAL_polygon_warning_code(CODE)
|
||||
#else
|
||||
# define CGAL_polygon_warning(EX) \
|
||||
(CGAL::possibly(EX)?(static_cast<void>(0)): ::CGAL::warning_fail( # EX , __FILE__, __LINE__))
|
||||
((!get_use_polygon_assertions() || CGAL::possibly(EX))?(static_cast<void>(0)): ::CGAL::warning_fail( # EX , __FILE__, __LINE__))
|
||||
# define CGAL_polygon_warning_msg(EX,MSG) \
|
||||
(CGAL::possibly(EX)?(static_cast<void>(0)): ::CGAL::warning_fail( # EX , __FILE__, __LINE__, MSG))
|
||||
((!get_use_polygon_assertions() || CGAL::possibly(EX))?(static_cast<void>(0)): ::CGAL::warning_fail( # EX , __FILE__, __LINE__, MSG))
|
||||
# define CGAL_polygon_warning_code(CODE) CODE
|
||||
# define CGAL_polygon_warnings 1
|
||||
#endif // CGAL_POLYGON_NO_WARNINGS
|
||||
|
|
@ -309,9 +334,9 @@
|
|||
# define CGAL_polygon_exactness_warning_code(CODE)
|
||||
#else
|
||||
# define CGAL_polygon_exactness_warning(EX) \
|
||||
(CGAL::possibly(EX)?(static_cast<void>(0)): ::CGAL::warning_fail( # EX , __FILE__, __LINE__))
|
||||
((!get_use_polygon_assertions() || CGAL::possibly(EX))?(static_cast<void>(0)): ::CGAL::warning_fail( # EX , __FILE__, __LINE__))
|
||||
# define CGAL_polygon_exactness_warning_msg(EX,MSG) \
|
||||
(CGAL::possibly(EX)?(static_cast<void>(0)): ::CGAL::warning_fail( # EX , __FILE__, __LINE__, MSG))
|
||||
((!get_use_polygon_assertions() || CGAL::possibly(EX))?(static_cast<void>(0)): ::CGAL::warning_fail( # EX , __FILE__, __LINE__, MSG))
|
||||
# define CGAL_polygon_exactness_warning_code(CODE) CODE
|
||||
# define CGAL_polygon_exactness_warnings 1
|
||||
#endif // CGAL_POLYGON_NO_WARNINGS
|
||||
|
|
@ -329,9 +354,9 @@
|
|||
# define CGAL_polygon_expensive_warning_code(CODE)
|
||||
#else
|
||||
# define CGAL_polygon_expensive_warning(EX) \
|
||||
(CGAL::possibly(EX)?(static_cast<void>(0)): ::CGAL::warning_fail( # EX , __FILE__, __LINE__))
|
||||
((!get_use_polygon_assertions() || CGAL::possibly(EX))?(static_cast<void>(0)): ::CGAL::warning_fail( # EX , __FILE__, __LINE__))
|
||||
# define CGAL_polygon_expensive_warning_msg(EX,MSG) \
|
||||
(CGAL::possibly(EX)?(static_cast<void>(0)): ::CGAL::warning_fail( # EX , __FILE__, __LINE__, MSG))
|
||||
((!get_use_polygon_assertions() || CGAL::possibly(EX))?(static_cast<void>(0)): ::CGAL::warning_fail( # EX , __FILE__, __LINE__, MSG))
|
||||
# define CGAL_polygon_expensive_warning_code(CODE) CODE
|
||||
# define CGAL_polygon_expensive_warnings 1
|
||||
#endif // CGAL_POLYGON_NO_WARNINGS
|
||||
|
|
@ -350,9 +375,9 @@
|
|||
# define CGAL_polygon_expensive_exactness_warning_code(CODE)
|
||||
#else
|
||||
# define CGAL_polygon_expensive_exactness_warning(EX) \
|
||||
(CGAL::possibly(EX)?(static_cast<void>(0)): ::CGAL::warning_fail( # EX , __FILE__, __LINE__))
|
||||
((!get_use_polygon_assertions() || CGAL::possibly(EX))?(static_cast<void>(0)): ::CGAL::warning_fail( # EX , __FILE__, __LINE__))
|
||||
# define CGAL_polygon_expensive_exactness_warning_msg(EX,MSG) \
|
||||
(CGAL::possibly(EX)?(static_cast<void>(0)): ::CGAL::warning_fail( # EX , __FILE__, __LINE__, MSG))
|
||||
((!get_use_polygon_assertions() || CGAL::possibly(EX))?(static_cast<void>(0)): ::CGAL::warning_fail( # EX , __FILE__, __LINE__, MSG))
|
||||
# define CGAL_polygon_expensive_exactness_warning_code(CODE) CODE
|
||||
# define CGAL_polygon_expensive_exactness_warnings 1
|
||||
#endif // CGAL_POLYGON_NO_WARNINGS
|
||||
|
|
|
|||
Loading…
Reference in New Issue