Morte replacements

This commit is contained in:
Andreas Fabri 2019-06-05 08:39:55 +02:00
parent 5532b84b4f
commit 4581f1b7a8
306 changed files with 2259 additions and 2259 deletions

View File

@ -487,7 +487,7 @@ public:
if( size() > 1 ) {
delete [] m_p_root_node;
}
m_p_root_node = NULL;
m_p_root_node = nullptr;
}
// clears internal KD tree
@ -495,9 +495,9 @@ public:
{
if ( m_search_tree_constructed )
{
CGAL_assertion( m_p_search_tree!=NULL );
CGAL_assertion( m_p_search_tree!=nullptr );
delete m_p_search_tree;
m_p_search_tree = NULL;
m_p_search_tree = nullptr;
m_search_tree_constructed = false;
}
}
@ -607,8 +607,8 @@ public:
AABB_tree<Tr>::AABB_tree(const Tr& traits)
: m_traits(traits)
, m_primitives()
, m_p_root_node(NULL)
, m_p_search_tree(NULL)
, m_p_root_node(nullptr)
, m_p_search_tree(nullptr)
, m_search_tree_constructed(false)
, m_default_search_tree_constructed(false)
, m_need_build(false)
@ -621,8 +621,8 @@ public:
T&& ... t)
: m_traits()
, m_primitives()
, m_p_root_node(NULL)
, m_p_search_tree(NULL)
, m_p_root_node(nullptr)
, m_p_search_tree(nullptr)
, m_search_tree_constructed(false)
, m_default_search_tree_constructed(false)
, m_need_build(false)
@ -687,10 +687,10 @@ public:
// allocates tree nodes
m_p_root_node = new Node[m_primitives.size()-1]();
if(m_p_root_node == NULL)
if(m_p_root_node == nullptr)
{
std::cerr << "Unable to allocate memory for AABB tree" << std::endl;
CGAL_assertion(m_p_root_node != NULL);
CGAL_assertion(m_p_root_node != nullptr);
m_primitives.clear();
clear();
}
@ -738,7 +738,7 @@ public:
{
m_p_search_tree = new Search_tree(first, beyond);
m_default_search_tree_constructed = true;
if(m_p_search_tree != NULL)
if(m_p_search_tree != nullptr)
{
m_search_tree_constructed = true;
return true;

View File

@ -47,8 +47,8 @@ public:
/// Constructor
AABB_node()
: m_bbox()
, m_p_left_child(NULL)
, m_p_right_child(NULL) { };
, m_p_left_child(nullptr)
, m_p_right_child(nullptr) { };
/// Non virtual Destructor
/// Do not delete children because the tree hosts and delete them

View File

@ -107,7 +107,7 @@ namespace CGAL
public:
template <class ConstPointIterator>
AABB_search_tree(ConstPointIterator begin, ConstPointIterator beyond)
: m_p_tree(NULL)
: m_p_tree(nullptr)
{
typedef typename Add_decorated_point<Traits, typename Traits::Primitive::Id>::Point_3 Decorated_point;
std::vector<Decorated_point> points;
@ -117,7 +117,7 @@ namespace CGAL
++begin;
}
m_p_tree = new Tree(points.begin(), points.end());
if(m_p_tree != NULL)
if(m_p_tree != nullptr)
m_p_tree->build();
else
std::cerr << "unable to build the search tree!" << std::endl;

View File

@ -66,13 +66,13 @@ struct Cstr_shared_data<Graph, Base, ObjectPropertyMap, PointPropertyMap, ::CGAL
typedef void* Shared_data;
static Shared_data construct_shared_data(Graph&)
{
return NULL;
return nullptr;
}
template <class VertexPmap>
static Shared_data construct_shared_data(Graph&, VertexPmap)
{
return NULL;
return nullptr;
}
};

View File

@ -88,7 +88,7 @@ namespace CGAL {
}
Advancing_front_surface_reconstruction_boundary_iterator(const Surface& S_)
: S(S_), pos(NULL)
: S(S_), pos(nullptr)
{}
Advancing_front_surface_reconstruction_boundary_iterator(const Self& s)
@ -108,7 +108,7 @@ namespace CGAL {
Self operator++()
{
if(pos == NULL) {
if(pos == nullptr) {
return *this;
}
if(first){
@ -134,7 +134,7 @@ namespace CGAL {
void advance_on_boundary()
{
if(pos == NULL) {
if(pos == nullptr) {
return;
}
pos = pos->first_incident()->first;
@ -143,7 +143,7 @@ namespace CGAL {
void advance_to_next_boundary()
{
if(pos == NULL) {
if(pos == nullptr) {
return;
}
do {
@ -157,7 +157,7 @@ namespace CGAL {
CGAL_assertion(pos->is_on_border());
} else {
pos = NULL;
pos = nullptr;
}
}
};
@ -400,18 +400,18 @@ namespace CGAL {
Intern_successors_type* ret = &ist_pool.back();
ret->first->first = NULL;
ret->second->first = NULL;
ret->first->first = nullptr;
ret->second->first = nullptr;
return ret;
}
inline bool is_on_border(Vertex_handle vh, const int& i) const
{
if (vh->m_incident_border == NULL) return false; //vh is interior
if (vh->m_incident_border->first->first != NULL)
if (vh->m_incident_border == nullptr) return false; //vh is interior
if (vh->m_incident_border->first->first != nullptr)
{
if (vh->m_incident_border->second->first != NULL)
if (vh->m_incident_border->second->first != nullptr)
return ((vh->m_incident_border->first->second.second == i)||
(vh->m_incident_border->second->second.second == i));
return (vh->m_incident_border->first->second.second == i);
@ -422,28 +422,28 @@ namespace CGAL {
void remove_border_edge(Vertex_handle w, Vertex_handle v)
{
if (w->m_incident_border != NULL)
if (w->m_incident_border != nullptr)
{
if (w->m_incident_border->second->first == v)
{
w->m_incident_border->second->first = NULL;
w->m_incident_border->second->first = nullptr;
set_interior_edge(w,v);
return;
}
if (w->m_incident_border->first->first == v)
{
if (w->m_incident_border->second->first != NULL)
if (w->m_incident_border->second->first != nullptr)
{
Next_border_elt* tmp = w->m_incident_border->first;
w->m_incident_border->first = w->m_incident_border->second;
w->m_incident_border->second = tmp;
w->m_incident_border->second->first = NULL;
w->m_incident_border->second->first = nullptr;
set_interior_edge(w,v);
return;
}
else
{
w->m_incident_border->first->first = NULL;
w->m_incident_border->first->first = nullptr;
set_interior_edge(w,v);
return;
}
@ -571,7 +571,7 @@ namespace CGAL {
void re_init(Vertex_handle w)
{
if (w->m_incident_border != NULL)
if (w->m_incident_border != nullptr)
{
w->delete_border();
}
@ -629,7 +629,7 @@ namespace CGAL {
void clear_vertex(Vertex_handle w)
{
if (w->m_incident_border != NULL)
if (w->m_incident_border != nullptr)
{
w->delete_border();
}
@ -956,14 +956,14 @@ namespace CGAL {
bool is_border_elt(Edge_like& key, Border_elt& result) const
{
Next_border_elt* it12 = border_elt(key.first, key.second);
if (it12 != NULL)
if (it12 != nullptr)
{
result = it12->second;
return true;
}
Next_border_elt* it21 = border_elt(key.second, key.first);
if (it21 != NULL)
if (it21 != nullptr)
{
result = it21->second;
std::swap(key.first, key.second);
@ -975,13 +975,13 @@ namespace CGAL {
//---------------------------------------------------------------------
bool is_border_elt(Edge_like& key) const {
Next_border_elt* it12 = border_elt(key.first, key.second);
if (it12 != NULL)
if (it12 != nullptr)
{
return true;
}
Next_border_elt* it21 = border_elt(key.second, key.first);
if (it21 != NULL)
if (it21 != nullptr)
{
std::swap(key.first, key.second);
return true;
@ -993,7 +993,7 @@ namespace CGAL {
bool is_ordered_border_elt(const Edge_like& key, Border_elt& result) const
{
Next_border_elt* it12 = border_elt(key.first, key.second);
if (it12 != NULL)
if (it12 != nullptr)
{
result = it12->second;
return true;
@ -1015,7 +1015,7 @@ namespace CGAL {
Vertex_handle v1 = e.first;
Next_border_elt* it12 = border_elt(v1, e.second);
if (it12 != NULL)
if (it12 != nullptr)
{
ptr = &it12->second.first.second;
return true;
@ -1047,7 +1047,7 @@ namespace CGAL {
coord_type lazy_squared_radius(const Cell_handle& c)
{
if (c->lazy_squared_radius() != NULL)
if (c->lazy_squared_radius() != nullptr)
return *(c->lazy_squared_radius());
c->set_lazy_squared_radius
@ -1060,7 +1060,7 @@ namespace CGAL {
Point lazy_circumcenter(const Cell_handle& c)
{
if (c->lazy_circumcenter() != NULL)
if (c->lazy_circumcenter() != nullptr)
return *(c->lazy_circumcenter());
c->set_lazy_circumcenter

View File

@ -75,9 +75,9 @@ namespace CGAL {
Advancing_front_surface_reconstruction_cell_base_3()
: Cb(),
_smallest_radius_facet_tab(NULL), selected_facet(0)
_smallest_radius_facet_tab(nullptr), selected_facet(0)
#ifdef AFSR_LAZY
, _circumcenter(NULL), _squared_radius(NULL)
, _circumcenter(nullptr), _squared_radius(nullptr)
#endif
{
#ifdef AFSR_FACET_NUMBER
@ -89,9 +89,9 @@ namespace CGAL {
Advancing_front_surface_reconstruction_cell_base_3(Vertex_handle v0, Vertex_handle v1, Vertex_handle v2, Vertex_handle v3)
: Cb( v0, v1, v2, v3),
_smallest_radius_facet_tab(NULL), selected_facet(0)
_smallest_radius_facet_tab(nullptr), selected_facet(0)
#ifdef AFSR_LAZY
, _circumcenter(NULL), _squared_radius(NULL)
, _circumcenter(nullptr), _squared_radius(nullptr)
#endif
{
#ifdef FACET_NUMBER
@ -105,9 +105,9 @@ namespace CGAL {
Cell_handle n0, Cell_handle n1, Cell_handle n2, Cell_handle n3)
: Cb(v0, v1, v2, v3,
n0, n1, n2, n3),
_smallest_radius_facet_tab(NULL), selected_facet(0)
_smallest_radius_facet_tab(nullptr), selected_facet(0)
#ifdef AFSR_LAZY
, _circumcenter(NULL), _squared_radius(NULL)
, _circumcenter(nullptr), _squared_radius(nullptr)
#endif
{
#ifdef AFSR_FACET_NUMBER
@ -121,12 +121,12 @@ namespace CGAL {
inline ~Advancing_front_surface_reconstruction_cell_base_3()
{
if (_smallest_radius_facet_tab != NULL)
if (_smallest_radius_facet_tab != nullptr)
delete[] _smallest_radius_facet_tab;
#ifdef AFSR_LAZY
if (_circumcenter != NULL)
if (_circumcenter != nullptr)
delete _circumcenter;
if (_squared_radius != NULL)
if (_squared_radius != nullptr)
delete _squared_radius;
#endif
}
@ -136,31 +136,31 @@ namespace CGAL {
inline void clear()
{
if (_smallest_radius_facet_tab != NULL)
if (_smallest_radius_facet_tab != nullptr)
delete[] _smallest_radius_facet_tab;
_smallest_radius_facet_tab = NULL;
_smallest_radius_facet_tab = nullptr;
selected_facet = 0;
#ifdef AFSR_LAZY
if (_circumcenter != NULL)
if (_circumcenter != nullptr)
delete _circumcenter;
_circumcenter = NULL;
if (_squared_radius != NULL)
_circumcenter = nullptr;
if (_squared_radius != nullptr)
delete _squared_radius;
_squared_radius = NULL;
_squared_radius = nullptr;
#endif
}
//-------------------------------------------------------------------
inline coord_type smallest_radius(const int& i)
{
if (_smallest_radius_facet_tab == NULL)
if (_smallest_radius_facet_tab == nullptr)
return -1;
return _smallest_radius_facet_tab[i];
}
inline void set_smallest_radius(const int& i, const coord_type& c)
{
if (_smallest_radius_facet_tab == NULL)
if (_smallest_radius_facet_tab == nullptr)
{
_smallest_radius_facet_tab = new coord_type[4];
for(int i = 0; i < 4; i++)
@ -172,7 +172,7 @@ namespace CGAL {
// pour un controle de l'allocation memoire... utile???
inline bool alloc_smallest_radius_tab(coord_type* ptr)
{
if (_smallest_radius_facet_tab==NULL)
if (_smallest_radius_facet_tab==nullptr)
{
_smallest_radius_facet_tab = ptr;
return true;

View File

@ -174,20 +174,20 @@ namespace CGAL {
void delete_border()
{
m_incident_border = NULL;
m_incident_border = nullptr;
}
inline Next_border_elt* next_on_border(const int& i) const
{
if (m_incident_border == NULL) return NULL; //vh is interior
if (m_incident_border->first->first != NULL)
if (m_incident_border == nullptr) return nullptr; //vh is interior
if (m_incident_border->first->first != nullptr)
if (m_incident_border->first->second.second == i)
return m_incident_border->first;
if (m_incident_border->second->first != NULL)
if (m_incident_border->second->first != nullptr)
if (m_incident_border->second->second.second == i)
return m_incident_border->second;
return NULL;
return nullptr;
}
@ -195,40 +195,40 @@ namespace CGAL {
inline bool is_border_edge(Vertex_handle v) const
{
if (m_incident_border == NULL) return false;
if (m_incident_border == nullptr) return false;
return ((m_incident_border->first->first == v)||
(m_incident_border->second->first == v));
}
inline Next_border_elt* border_elt(Vertex_handle v) const
{
if (m_incident_border == NULL) return NULL;
if (m_incident_border == nullptr) return nullptr;
if (m_incident_border->first->first == v) return m_incident_border->first;
if (m_incident_border->second->first == v) return m_incident_border->second;
return NULL;
return nullptr;
}
public:
inline Next_border_elt* first_incident() const
{
if (m_incident_border == NULL) return NULL;
if (m_incident_border == nullptr) return nullptr;
return m_incident_border->first;
}
private:
inline Next_border_elt* second_incident() const
{
if (m_incident_border == NULL) return NULL;
if (m_incident_border == nullptr) return nullptr;
return m_incident_border->second;
}
inline void set_next_border_elt(const Next_border_elt& elt)
{
if (m_incident_border->first->first == NULL)
if (m_incident_border->first->first == nullptr)
*m_incident_border->first = elt;
else
{
if (m_incident_border->second->first != NULL)
if (m_incident_border->second->first != nullptr)
std::cerr << "+++probleme de MAJ du bord <Vertex_base>" << std::endl;
*m_incident_border->second = elt;
}

View File

@ -417,7 +417,7 @@ void test_algebraic_structure_intern(
assert( a != AS (0));
assert( b != AS (0));
assert( c != AS (0));
// AS (0) == NULL of IntegralDomain
// AS (0) == nullptr of IntegralDomain
assert(a* AS (0)== AS (0));
assert(a+ AS (0)==a);
assert(b* AS (0)== AS (0));

View File

@ -1333,7 +1333,7 @@ Alpha_shape_2<Dt,EACT>::number_of_solid_components(const Type_of_alpha& alpha) c
++face_it)
{
Face_handle pFace = face_it;
CGAL_triangulation_postcondition( pFace != NULL);
CGAL_triangulation_postcondition( pFace != nullptr);
if (classify(pFace, alpha) == INTERIOR){
Data& data = marked_face_set[pFace];
@ -1367,7 +1367,7 @@ Alpha_shape_2<Dt,EACT>::traverse(const Face_handle& pFace,
for (int i=0; i<3; i++)
{
pNeighbor = fh->neighbor(i);
CGAL_triangulation_assertion(pNeighbor != NULL);
CGAL_triangulation_assertion(pNeighbor != nullptr);
if (classify(pNeighbor, alpha) == INTERIOR){
Data& data = marked_face_set[pNeighbor];
if(data == false){

View File

@ -260,26 +260,26 @@ public:
: exact_(Exact_nt(0)), approx_(0)
{
data().nbpts=0;
data().p0=NULL;
data().p1=NULL;
data().p2=NULL;
data().p0=nullptr;
data().p1=nullptr;
data().p2=nullptr;
}
Lazy_alpha_nt_2(double d)
: exact_(Exact_nt(d)), approx_(d)
{
data().nbpts=0;
data().p0=NULL;
data().p1=NULL;
data().p2=NULL;
data().p0=nullptr;
data().p1=nullptr;
data().p2=nullptr;
}
Lazy_alpha_nt_2(const Input_point& wp0)
{
data().nbpts=1;
data().p0=&wp0;
data().p1=NULL;
data().p2=NULL;
data().p1=nullptr;
data().p2=nullptr;
set_approx();
}
@ -289,7 +289,7 @@ public:
data().nbpts=2;
data().p0=&wp0;
data().p1=&wp1;
data().p2=NULL;
data().p2=nullptr;
set_approx();
}

View File

@ -1731,7 +1731,7 @@ Alpha_shape_3<Dt,EACT>::number_of_solid_components(const NT& alpha) const
for( cell_it = finite_cells_begin(); cell_it != done; ++cell_it)
{
Cell_handle pCell = cell_it;
CGAL_triangulation_assertion(pCell != NULL);
CGAL_triangulation_assertion(pCell != nullptr);
if (classify(pCell, alpha) == INTERIOR){
Data& data = marked_cell_set[pCell];
@ -1763,7 +1763,7 @@ void Alpha_shape_3<Dt,EACT>::traverse(Cell_handle pCell,
for (int i=0; i<=3; i++)
{
pNeighbor = pCell->neighbor(i);
CGAL_triangulation_assertion(pNeighbor != NULL);
CGAL_triangulation_assertion(pNeighbor != nullptr);
if (classify(pNeighbor, alpha) == INTERIOR){
Data& data = marked_cell_set[pNeighbor];
if(data == false){

View File

@ -253,29 +253,29 @@ public:
: exact_(Exact_nt(0)),approx_(0)
{
data().nbpts=0;
data().p0=NULL;
data().p1=NULL;
data().p2=NULL;
data().p3=NULL;
data().p0=nullptr;
data().p1=nullptr;
data().p2=nullptr;
data().p3=nullptr;
}
Lazy_alpha_nt_3(double d)
: exact_(Exact_nt(d)),approx_(d)
{
data().nbpts=0;
data().p0=NULL;
data().p1=NULL;
data().p2=NULL;
data().p3=NULL;
data().p0=nullptr;
data().p1=nullptr;
data().p2=nullptr;
data().p3=nullptr;
}
Lazy_alpha_nt_3(const Input_point& wp1)
{
data().nbpts=1;
data().p0=&wp1;
data().p1=NULL;
data().p2=NULL;
data().p3=NULL;
data().p1=nullptr;
data().p2=nullptr;
data().p3=nullptr;
set_approx();
}
@ -285,8 +285,8 @@ public:
data().nbpts=2;
data().p0=&wp1;
data().p1=&wp2;
data().p2=NULL;
data().p3=NULL;
data().p2=nullptr;
data().p3=nullptr;
set_approx();
}
@ -298,7 +298,7 @@ public:
data().p0=&wp1;
data().p1=&wp2;
data().p2=&wp3;
data().p3=NULL;
data().p3=nullptr;
set_approx();
}

View File

@ -63,7 +63,7 @@ ApolloniusGraphHierarchyVertexBase_2(Site_2 s, Face_handle f).;
/*!
Returns a handle to the corresponding
vertex of the next level Apollonius graph. If such a vertex does not
exist `Vertex_handle(NULL)` is returned.
exist `Vertex_handle(nullptr)` is returned.
*/
Vertex_handle up();

View File

@ -72,7 +72,7 @@ bool is_unbounded() const;
/*!
returns an incident halfedge along the outer boundary of the face.
If `f` has no outer boundary, the function returns `NULL`.
If `f` has no outer boundary, the function returns `nullptr`.
*/
Halfedge* halfedge();

View File

@ -102,7 +102,7 @@ void read_arrangement_end ();
/*!
reads a size value, which is supposed to be preceded by the given label.
*/
Size read_size (const char *label = NULL);
Size read_size (const char *label = nullptr);
/*!
reads a message indicating the beginning of the vertex records.

View File

@ -167,8 +167,8 @@ public:
delete p_cache;
delete p_inter_map;
}
p_cache = NULL;
p_inter_map = NULL;
p_cache = nullptr;
p_inter_map = nullptr;
}
//@}

View File

@ -167,7 +167,7 @@ public:
DHalfedge* he = p_arr->_locate_around_vertex(p_arr->_vertex (vh), cv, ind);
CGAL_assertion(he != NULL);
CGAL_assertion(he != nullptr);
return (p_arr->_handle_for (he));
}
@ -198,7 +198,7 @@ public:
DHalfedge* he = p_arr->topology_traits()->
locate_around_boundary_vertex(p_arr->_vertex (vh), cv, ind, ps_x, ps_y);
CGAL_assertion(he != NULL);
CGAL_assertion(he != nullptr);
return (p_arr->_handle_for (he));
}
@ -219,10 +219,10 @@ public:
if (he1 == he2) return (0);
const DInner_ccb* ic1 = (he1->is_on_inner_ccb()) ? he1->inner_ccb() : NULL;
const DOuter_ccb* oc1 = (ic1 == NULL) ? he1->outer_ccb() : NULL;
const DInner_ccb* ic2 = (he2->is_on_inner_ccb()) ? he2->inner_ccb() : NULL;
const DOuter_ccb* oc2 = (ic2 == NULL) ? he2->outer_ccb() : NULL;
const DInner_ccb* ic1 = (he1->is_on_inner_ccb()) ? he1->inner_ccb() : nullptr;
const DOuter_ccb* oc1 = (ic1 == nullptr) ? he1->outer_ccb() : nullptr;
const DInner_ccb* ic2 = (he2->is_on_inner_ccb()) ? he2->inner_ccb() : nullptr;
const DOuter_ccb* oc2 = (ic2 == nullptr) ? he2->outer_ccb() : nullptr;
if ((oc1 != oc2) || (ic1 != ic2)) return (-1);
@ -305,7 +305,7 @@ public:
Vertex_handle create_vertex(const Point_2& p)
{
DVertex* v = p_arr->_create_vertex (p);
CGAL_assertion(v != NULL);
CGAL_assertion(v != nullptr);
return (p_arr->_handle_for (v));
}
@ -328,7 +328,7 @@ public:
{
DVertex* v = p_arr->_create_boundary_vertex (cv, ind, ps_x, ps_y);
CGAL_assertion(v != NULL);
CGAL_assertion(v != nullptr);
// Notify the topology traits on the creation of the boundary vertex.
if (notify)
@ -359,7 +359,7 @@ public:
DVertex* v = p_arr->_place_and_set_curve_end(p_arr->_face (f), cv, ind,
ps_x, ps_y, &pred);
if (pred == NULL)
if (pred == nullptr)
// No predecessor halfedge, return just the vertex:
return (std::make_pair(p_arr->_handle_for(v), Halfedge_handle()));
@ -401,7 +401,7 @@ public:
new_face, swapped_predecessors,
allow_swap_of_predecessors);
CGAL_assertion(he != NULL);
CGAL_assertion(he != nullptr);
return (p_arr->_handle_for(he));
}
@ -438,7 +438,7 @@ public:
DHalfedge* he =
p_arr->_insert_from_vertex(p_arr->_halfedge(he_to), cv, cv_dir, p_v);
CGAL_assertion(he != NULL);
CGAL_assertion(he != nullptr);
return (p_arr->_handle_for (he));
}
@ -485,7 +485,7 @@ public:
DHalfedge* he = p_arr->_insert_in_face_interior(p_arr->_face (f),
cv, cv_dir, p_v1, p_v2);
CGAL_assertion(he != NULL);
CGAL_assertion(he != nullptr);
return (p_arr->_handle_for (he));
}
@ -613,7 +613,7 @@ public:
{
DHalfedge* he = p_arr->_split_edge (p_arr->_halfedge(e), p, cv1, cv2);
CGAL_assertion(he != NULL);
CGAL_assertion(he != nullptr);
return (p_arr->_handle_for(he));
}
@ -636,7 +636,7 @@ public:
DHalfedge* he = p_arr->_split_edge(p_arr->_halfedge(e), p_arr->_vertex(v),
cv1, cv2);
CGAL_assertion (he != NULL);
CGAL_assertion (he != nullptr);
return (p_arr->_handle_for(he));
}
@ -673,7 +673,7 @@ public:
{
DFace* f =
p_arr->_remove_edge(p_arr->_halfedge (e), remove_source, remove_target);
CGAL_assertion(f != NULL);
CGAL_assertion(f != nullptr);
return (p_arr->_handle_for(f));
}
@ -687,9 +687,9 @@ public:
{
DHalfedge* he1 = p_arr->_halfedge(e1);
DHalfedge* he2 = p_arr->_halfedge(e2);
const DInner_ccb* ic1 = (he1->is_on_inner_ccb()) ? he1->inner_ccb() : NULL;
if (ic1 == NULL) return (false);
const DInner_ccb* ic2 = (he2->is_on_inner_ccb()) ? he2->inner_ccb() : NULL;
const DInner_ccb* ic1 = (he1->is_on_inner_ccb()) ? he1->inner_ccb() : nullptr;
if (ic1 == nullptr) return (false);
const DInner_ccb* ic2 = (he2->is_on_inner_ccb()) ? he2->inner_ccb() : nullptr;
return (ic1 == ic2);
}
@ -703,9 +703,9 @@ public:
{
DHalfedge* he1 = p_arr->_halfedge(e1);
DHalfedge* he2 = p_arr->_halfedge(e2);
const DOuter_ccb* oc1 = (he1->is_on_outer_ccb()) ? he1->outer_ccb() : NULL;
if (oc1 == NULL) return (false);
const DOuter_ccb* oc2 = (he2->is_on_outer_ccb()) ? he2->outer_ccb() : NULL;
const DOuter_ccb* oc1 = (he1->is_on_outer_ccb()) ? he1->outer_ccb() : nullptr;
if (oc1 == nullptr) return (false);
const DOuter_ccb* oc2 = (he2->is_on_outer_ccb()) ? he2->outer_ccb() : nullptr;
return (oc1 == oc2);
}
//@}
@ -797,7 +797,7 @@ public:
/*!
* Create a new vertex.
* \param p A pointer to the point (may be NULL in case of a vertex at
* \param p A pointer to the point (may be nullptr in case of a vertex at
* infinity).
* \param ps_x The boundary condition at x.
* \param ps_y The boundary condition at y.
@ -807,14 +807,14 @@ public:
Arr_parameter_space ps_x, Arr_parameter_space ps_y)
{
Dcel_vertex* new_v = p_arr->_dcel().new_vertex();
if (p != NULL) {
if (p != nullptr) {
typename Dcel::Vertex::Point* p_pt = p_arr->_new_point(*p);
new_v->set_point(p_pt);
}
else
{
CGAL_precondition (p_arr->is_open(ps_x, ps_y));
new_v->set_point (NULL);
new_v->set_point (nullptr);
}
new_v->set_boundary (ps_x, ps_y);
@ -823,7 +823,7 @@ public:
/*!
* Create a new edge (halfedge pair), associated with the given curve.
* \param cv A pointer to the x-monotone curve (may be NULL in case of
* \param cv A pointer to the x-monotone curve (may be nullptr in case of
* a fictitious edge).
* \return A pointer to one of the created DCEL halfedge.
*/
@ -831,11 +831,11 @@ public:
{
Dcel_halfedge* new_he = p_arr->_dcel().new_edge();
if (cv != NULL) {
if (cv != nullptr) {
typename Dcel::Halfedge::X_monotone_curve* p_cv = p_arr->_new_curve(*cv);
new_he->set_curve(p_cv);
}
else new_he->set_curve(NULL);
else new_he->set_curve(nullptr);
return new_he;
}

View File

@ -132,13 +132,13 @@ public:
/*! Default constructor. */
Arr_bounded_planar_topology_traits_2() :
Base(),
unb_face(NULL)
unb_face(nullptr)
{}
/*! Constructor from a geometry-traits object. */
Arr_bounded_planar_topology_traits_2(const Gt2* traits) :
Base(traits),
unb_face(NULL)
unb_face(nullptr)
{}
/*! Assign the contents of another topology-traits class. */
@ -347,7 +347,7 @@ public:
Arr_parameter_space /* ps_y */) const
{
CGAL_error();
return NULL;
return nullptr;
}
/*! Locate a DCEL feature that contains the given curve end.
@ -379,7 +379,7 @@ public:
{
// This function should never be called:
CGAL_error();
return NULL;
return nullptr;
}
/*! Determine whether the given face is unbounded.
@ -406,7 +406,7 @@ public:
{
// This function should never be called:
CGAL_error();
return NULL;
return nullptr;
}
//! reference_face (const version).

View File

@ -137,13 +137,13 @@ public:
base_objects.begin(); it != base_objects.end(); ++it)
{
base_x_curve = object_cast<Base_x_monotone_curve_2>(&(*it));
if (base_x_curve != NULL) {
if (base_x_curve != nullptr) {
// Current object is an x-monotone curve: Attach data to it.
*oi++ = make_object(X_monotone_curve_2(*base_x_curve, xdata));
}
else {
// Current object is an isolated point: Leave it as is.
CGAL_assertion(object_cast<Point_2>(&(*it)) != NULL);
CGAL_assertion(object_cast<Point_2>(&(*it)) != nullptr);
*oi++ = *it;
}
}
@ -219,7 +219,7 @@ public:
for (typename std::list<CGAL::Object>::const_iterator it =
base_objects.begin(); it != base_objects.end(); ++it)
{
if ((base_cv = object_cast<Base_x_monotone_curve_2>(&(*it))) != NULL) {
if ((base_cv = object_cast<Base_x_monotone_curve_2>(&(*it))) != nullptr) {
// The current intersection object is an overlapping x-monotone
// curve: Merge the data fields of both intersecting curves and
// associate the result with the overlapping curve.

View File

@ -92,31 +92,31 @@ protected:
public:
/*! Default constructor. */
Arr_vertex_base() :
p_inc(NULL),
p_pt(NULL)
p_inc(nullptr),
p_pt(nullptr)
{ pss[0] = pss[1] = static_cast<char>(CGAL::ARR_INTERIOR); }
/*! Destructor. */
virtual ~Arr_vertex_base() {}
/*! Check if the point pointer is NULL. */
bool has_null_point() const { return (p_pt == NULL); }
/*! Check if the point pointer is nullptr. */
bool has_null_point() const { return (p_pt == nullptr); }
/*! Get the point (const version). */
const Point& point() const
{
CGAL_assertion(p_pt != NULL);
CGAL_assertion(p_pt != nullptr);
return (*p_pt);
}
/*! Get the point (non-const version). */
Point& point()
{
CGAL_assertion(p_pt != NULL);
CGAL_assertion(p_pt != nullptr);
return (*p_pt);
}
/*! Set the point (may be a NULL point). */
/*! Set the point (may be a nullptr point). */
void set_point(Point* p) { p_pt = p; }
/*! Get the boundary type in x. */
@ -175,31 +175,31 @@ protected:
public:
/*! Default constructor */
Arr_halfedge_base() :
p_opp(NULL),
p_prev(NULL),
p_next(NULL),
p_v(NULL),
p_comp(NULL),
p_cv(NULL)
p_opp(nullptr),
p_prev(nullptr),
p_next(nullptr),
p_v(nullptr),
p_comp(nullptr),
p_cv(nullptr)
{}
/*! Destructor. */
virtual ~Arr_halfedge_base() {}
/*! Check if the curve pointer is NULL. */
bool has_null_curve() const { return (p_cv == NULL); }
/*! Check if the curve pointer is nullptr. */
bool has_null_curve() const { return (p_cv == nullptr); }
/*! Get the x-monotone curve (const version). */
const X_monotone_curve& curve() const
{
CGAL_precondition(p_cv != NULL);
CGAL_precondition(p_cv != nullptr);
return (*p_cv);
}
/*! Get the x-monotone curve (non-const version). */
X_monotone_curve& curve()
{
CGAL_precondition(p_cv != NULL);
CGAL_precondition(p_cv != nullptr);
return (*p_cv);
}
@ -712,7 +712,7 @@ private:
public:
/*! Default constructor. */
Arr_outer_ccb() : p_f(NULL), iter_is_not_singular(false) {}
Arr_outer_ccb() : p_f(nullptr), iter_is_not_singular(false) {}
/*! Copy constructor. */
Arr_outer_ccb(const Arr_outer_ccb& other) :
@ -778,7 +778,7 @@ private:
public:
/*! Default constructor. */
Arr_inner_ccb() : p_f(NULL), iter_is_not_singular(false) {}
Arr_inner_ccb() : p_f(nullptr), iter_is_not_singular(false) {}
/*! Copy constructor. */
Arr_inner_ccb(const Arr_inner_ccb& other) :
@ -843,7 +843,7 @@ private:
public:
/*! Default constructor. */
Arr_isolated_vertex() : p_f(NULL), iter_is_not_singular(false) {}
Arr_isolated_vertex() : p_f(nullptr), iter_is_not_singular(false) {}
/*! Copy constructor. */
Arr_isolated_vertex(const Arr_isolated_vertex& other) :

View File

@ -117,10 +117,10 @@ public:
/*! Default constructor. */
_Bezier_curve_2_rep () :
_no_self_inter (true),
p_polyX(NULL),
p_normX(NULL),
p_polyY(NULL),
p_normY(NULL)
p_polyX(nullptr),
p_normX(nullptr),
p_polyY(nullptr),
p_normY(nullptr)
{}
/*! Copy constructor (isn't really used). */
@ -128,18 +128,18 @@ public:
_ctrl_pts(other._ctrl_pts),
_bbox(other._bbox),
_no_self_inter(other._no_self_inter),
p_polyX(NULL),
p_normX(NULL),
p_polyY(NULL),
p_normY(NULL)
p_polyX(nullptr),
p_normX(nullptr),
p_polyY(nullptr),
p_normY(nullptr)
{
if (other.p_polyX != NULL)
if (other.p_polyX != nullptr)
p_polyX = new Polynomial(*(other.p_polyX));
if (other.p_polyY != NULL)
if (other.p_polyY != nullptr)
p_polyY = new Polynomial(*(other.p_polyY));
if (other.p_normX != NULL)
if (other.p_normX != nullptr)
p_normX = new Integer(*(other.p_normX));
if (other.p_normY != NULL)
if (other.p_normY != nullptr)
p_normY = new Integer(*(other.p_normY));
}
@ -152,10 +152,10 @@ public:
*/
template <class InputIterator>
_Bezier_curve_2_rep (InputIterator pts_begin, InputIterator pts_end) :
p_polyX(NULL),
p_normX(NULL),
p_polyY(NULL),
p_normY(NULL)
p_polyX(nullptr),
p_normX(nullptr),
p_polyY(nullptr),
p_normY(nullptr)
{
// Copy the control points and compute their bounding box.
const int pts_size = static_cast<int>(std::distance (pts_begin, pts_end));
@ -218,13 +218,13 @@ public:
/*! Destructor. */
~_Bezier_curve_2_rep ()
{
if (p_polyX != NULL)
if (p_polyX != nullptr)
delete p_polyX;
if (p_normX != NULL)
if (p_normX != nullptr)
delete p_normX;
if (p_polyY != NULL)
if (p_polyY != nullptr)
delete p_polyY;
if (p_normY != NULL)
if (p_normY != nullptr)
delete p_normY;
}
@ -234,14 +234,14 @@ public:
/*! Check if the polynomials are already constructed. */
bool has_polynomials () const
{
return (p_polyX != NULL && p_normX != NULL &&
p_polyY != NULL && p_normY != NULL);
return (p_polyX != nullptr && p_normX != nullptr &&
p_polyY != nullptr && p_normY != nullptr);
}
/*! Get the polynomial X(t). */
const Polynomial& x_polynomial () const
{
if (p_polyX == NULL)
if (p_polyX == nullptr)
_construct_polynomials ();
return (*p_polyX);
@ -250,7 +250,7 @@ public:
/*! Get the normalizing factor for X(t). */
const Integer& x_norm () const
{
if (p_normX == NULL)
if (p_normX == nullptr)
_construct_polynomials ();
return (*p_normX);
@ -259,7 +259,7 @@ public:
/*! Get the polynomial Y(t). */
const Polynomial& y_polynomial () const
{
if (p_polyY == NULL)
if (p_polyY == nullptr)
_construct_polynomials ();
return (*p_polyY);
@ -268,7 +268,7 @@ public:
/*! Get the normalizing factor for Y(t). */
const Integer& y_norm () const
{
if (p_normY == NULL)
if (p_normY == nullptr)
_construct_polynomials ();
return (*p_normY);

View File

@ -108,7 +108,7 @@ private:
Originator (const Curve_2& c, const Algebraic& t) :
_curve (c),
_xid (0),
p_t (NULL)
p_t (nullptr)
{
set_parameter (t);
}
@ -118,7 +118,7 @@ private:
const Algebraic& t) :
_curve (c),
_xid (xid),
p_t (NULL)
p_t (nullptr)
{
set_parameter (t);
}
@ -128,7 +128,7 @@ private:
_curve (c),
_xid (0),
_bpb (bpb),
p_t (NULL)
p_t (nullptr)
{}
/*! Constructor with bounding information and no exact representation. */
@ -137,7 +137,7 @@ private:
_curve (c),
_xid (xid),
_bpb (bpb),
p_t (NULL)
p_t (nullptr)
{}
/*! Copy constructor. */
@ -145,17 +145,17 @@ private:
_curve (other._curve),
_xid (other._xid),
_bpb (other._bpb),
p_t (NULL)
p_t (nullptr)
{
// Deep copy of lazy instantiation
if (other.p_t != NULL)
if (other.p_t != nullptr)
p_t = new Algebraic (*(other.p_t));
}
/*! Destructor. */
~Originator()
{
if (p_t != NULL)
if (p_t != nullptr)
delete p_t;
}
@ -167,9 +167,9 @@ private:
return (*this);
// Free memory, if necessary.
if (p_t != NULL)
if (p_t != nullptr)
delete p_t;
p_t = NULL;
p_t = nullptr;
// Copy the data members.
_curve = other._curve;
@ -177,7 +177,7 @@ private:
_bpb = other._bpb;
// Deep copy of lazy instantiation
if (other.p_t != NULL)
if (other.p_t != nullptr)
p_t = new Algebraic (*(other.p_t));
return (*this);
@ -211,7 +211,7 @@ private:
/*! Check if the algberaic parameter is available. */
bool has_parameter () const
{
return (p_t != NULL);
return (p_t != nullptr);
}
/*!
@ -220,7 +220,7 @@ private:
*/
const Algebraic& parameter () const
{
CGAL_precondition (p_t != NULL);
CGAL_precondition (p_t != nullptr);
return (*p_t);
}
@ -230,7 +230,7 @@ private:
*/
void set_parameter (const Algebraic& t)
{
CGAL_precondition (p_t == NULL);
CGAL_precondition (p_t == nullptr);
p_t = new Algebraic (t);
@ -305,28 +305,28 @@ public:
/*! Default constructor. */
_Bezier_point_2_rep () :
p_alg_x (NULL),
p_rat_x (NULL),
p_alg_y (NULL),
p_rat_y (NULL)
p_alg_x (nullptr),
p_rat_x (nullptr),
p_alg_y (nullptr),
p_rat_y (nullptr)
{}
/*! Copy constructor. */
_Bezier_point_2_rep (const Self& pt) :
p_alg_x (NULL),
p_rat_x (NULL),
p_alg_y (NULL),
p_rat_y (NULL),
p_alg_x (nullptr),
p_rat_x (nullptr),
p_alg_y (nullptr),
p_rat_y (nullptr),
_origs (pt._origs),
_bbox (pt._bbox)
{
if (pt.p_alg_x != NULL)
if (pt.p_alg_x != nullptr)
p_alg_x = new Algebraic (*(pt.p_alg_x));
if (pt.p_rat_x != NULL)
if (pt.p_rat_x != nullptr)
p_rat_x = new Rational (*(pt.p_rat_x));
if (pt.p_alg_y != NULL)
if (pt.p_alg_y != nullptr)
p_alg_y = new Algebraic (*(pt.p_alg_y));
if (pt.p_rat_y != NULL)
if (pt.p_rat_y != nullptr)
p_rat_y = new Rational (*(pt.p_rat_y));
}
@ -336,8 +336,8 @@ public:
* \param y The exact y-coordinate.
*/
_Bezier_point_2_rep (const Algebraic& x, const Algebraic& y, bool) :
p_rat_x (NULL),
p_rat_y (NULL)
p_rat_x (nullptr),
p_rat_y (nullptr)
{
p_alg_x = new Algebraic (x);
p_alg_y = new Algebraic (y);
@ -407,13 +407,13 @@ public:
/*! Destructor. */
~_Bezier_point_2_rep ()
{
if (p_rat_x != NULL)
if (p_rat_x != nullptr)
delete p_rat_x;
if (p_alg_x != NULL)
if (p_alg_x != nullptr)
delete p_alg_x;
if (p_rat_y != NULL)
if (p_rat_y != nullptr)
delete p_rat_y;
if (p_alg_y != NULL)
if (p_alg_y != nullptr)
delete p_alg_y;
}
@ -423,24 +423,24 @@ public:
if (this == &pt)
return (*this);
if (p_rat_x != NULL)
if (p_rat_x != nullptr)
delete p_rat_x;
if (p_alg_x != NULL)
if (p_alg_x != nullptr)
delete p_alg_x;
if (p_rat_y != NULL)
if (p_rat_y != nullptr)
delete p_rat_y;
if (p_alg_y != NULL)
if (p_alg_y != nullptr)
delete p_alg_y;
p_alg_x = p_rat_x = p_alg_y = p_rat_y = NULL;
p_alg_x = p_rat_x = p_alg_y = p_rat_y = nullptr;
if (pt.p_alg_x != NULL)
if (pt.p_alg_x != nullptr)
p_alg_x = new Algebraic (*(pt.p_alg_x));
if (pt.p_rat_x != NULL)
if (pt.p_rat_x != nullptr)
p_rat_x = new Rational (*(pt.p_rat_x));
if (pt.p_alg_y != NULL)
if (pt.p_alg_y != nullptr)
p_alg_y = new Algebraic (*(pt.p_alg_y));
if (pt.p_rat_y != NULL)
if (pt.p_rat_y != nullptr)
p_rat_y = new Rational (*(pt.p_rat_y));
_origs = pt._origs;
@ -452,13 +452,13 @@ public:
/*! Check if the point is exactly computed. */
inline bool is_exact () const
{
return (p_alg_x != NULL && p_alg_y != NULL);
return (p_alg_x != nullptr && p_alg_y != nullptr);
}
/*! Check if the point has rational coordinates. */
inline bool is_rational () const
{
return (p_rat_x != NULL && p_rat_y != NULL);
return (p_rat_x != nullptr && p_rat_y != nullptr);
}
/*!
@ -1060,8 +1060,8 @@ _Bezier_point_2_rep<RatKer, AlgKer, NtTrt, BndTrt>::_Bezier_point_2_rep
template <class RatKer, class AlgKer, class NtTrt, class BndTrt>
_Bezier_point_2_rep<RatKer, AlgKer, NtTrt, BndTrt>::_Bezier_point_2_rep
(const Curve_2& B, const Algebraic& t0) :
p_rat_x (NULL),
p_rat_y (NULL)
p_rat_x (nullptr),
p_rat_y (nullptr)
{
// Create the originator pair <B(t), t0>.
// Note that this constructor also takes care of the Bez_bound
@ -1095,8 +1095,8 @@ template <class RatKer, class AlgKer, class NtTrt, class BndTrt>
_Bezier_point_2_rep<RatKer, AlgKer, NtTrt, BndTrt>::_Bezier_point_2_rep
(const Curve_2& B, unsigned int xid,
const Algebraic& t0) :
p_rat_x (NULL),
p_rat_y (NULL)
p_rat_x (nullptr),
p_rat_y (nullptr)
{
// Create the originator pair <B(t), t0>.
// Note that this constructor also takes care of the Bez_bound

View File

@ -1187,7 +1187,7 @@ public:
*/
template <class OutputIterator>
OutputIterator intersect (const Self& cv, OutputIterator oi,
Intersection_map *inter_map = NULL) const
Intersection_map *inter_map = nullptr) const
{
// First check whether the two arcs have the same supporting curve.
if (has_same_supporting_curve (cv))
@ -1232,7 +1232,7 @@ public:
Intersection_list inter_list;
bool invalid_ids = false;
if (inter_map != NULL && _index() != 0 && cv._index() != 0)
if (inter_map != nullptr && _index() != 0 && cv._index() != 0)
{
if (_index() < cv._index())
id_pair = Curve_id_pair (_index(), cv._index());
@ -1245,12 +1245,12 @@ public:
{
// In case one of the IDs is invalid, we do not look in the map neither
// we cache the results.
if (inter_map != NULL)
if (inter_map != nullptr)
map_iter = inter_map->end();
invalid_ids = true;
}
if (inter_map == NULL || map_iter == inter_map->end())
if (inter_map == nullptr || map_iter == inter_map->end())
{
// Compute the intersections points between the two supporting curves.
if (is_linear())

View File

@ -114,7 +114,7 @@ protected:
};
Extra_data *_extra_data_P; // The extra data stored with the arc
// (may be NULL).
// (may be nullptr).
public:
@ -128,7 +128,7 @@ public:
_r(0), _s(0), _t(0), _u(0), _v(0), _w(0),
_orient (COLLINEAR),
_info (0),
_extra_data_P (NULL)
_extra_data_P (nullptr)
{}
/*!
@ -142,10 +142,10 @@ public:
_source(arc._source),
_target(arc._target)
{
if (arc._extra_data_P != NULL)
if (arc._extra_data_P != nullptr)
_extra_data_P = new Extra_data (*(arc._extra_data_P));
else
_extra_data_P = NULL;
_extra_data_P = nullptr;
}
/*!
@ -155,7 +155,7 @@ public:
*/
_Conic_arc_2 (const Rational& r, const Rational& s, const Rational& t,
const Rational& u, const Rational& v, const Rational& w) :
_extra_data_P (NULL)
_extra_data_P (nullptr)
{
// Make sure the given curve is an ellipse (4rs - t^2 should be positive).
CGAL_precondition (CGAL::sign (4*r*s - t*t) == POSITIVE);
@ -189,7 +189,7 @@ public:
_orient (orient),
_source (source),
_target (target),
_extra_data_P (NULL)
_extra_data_P (nullptr)
{
// Make sure that the source and the taget are not the same.
CGAL_precondition (Alg_kernel().compare_xy_2_object() (source,
@ -214,7 +214,7 @@ public:
*/
_Conic_arc_2 (const Rat_segment_2& seg) :
_orient (COLLINEAR),
_extra_data_P (NULL)
_extra_data_P (nullptr)
{
// Set the source and target.
Rat_kernel ker;
@ -271,7 +271,7 @@ public:
*/
_Conic_arc_2 (const Rat_circle_2& circ) :
_orient (CLOCKWISE),
_extra_data_P (NULL)
_extra_data_P (nullptr)
{
// Get the circle properties.
Rat_kernel ker;
@ -316,7 +316,7 @@ public:
_orient(orient),
_source(source),
_target(target),
_extra_data_P (NULL)
_extra_data_P (nullptr)
{
// Make sure that the source and the taget are not the same.
CGAL_precondition (Alg_kernel().compare_xy_2_object() (source,
@ -378,7 +378,7 @@ public:
_Conic_arc_2 (const Rat_point_2& p1,
const Rat_point_2& p2,
const Rat_point_2& p3):
_extra_data_P (NULL)
_extra_data_P (nullptr)
{
// Set the source and target.
Rational x1 = p1.x();
@ -467,7 +467,7 @@ public:
const Rat_point_2& p3,
const Rat_point_2& p4,
const Rat_point_2& p5) :
_extra_data_P(NULL)
_extra_data_P(nullptr)
{
// Make sure that no three points are collinear.
Rat_kernel ker;
@ -574,7 +574,7 @@ public:
const Rational& r_2, const Rational& s_2, const Rational& t_2,
const Rational& u_2, const Rational& v_2, const Rational& w_2):
_orient(orient),
_extra_data_P(NULL)
_extra_data_P(nullptr)
{
// Create the integer coefficients of the base conic.
Rational rat_coeffs [6];
@ -753,7 +753,7 @@ public:
*/
virtual ~_Conic_arc_2 ()
{
if (_extra_data_P != NULL)
if (_extra_data_P != nullptr)
delete _extra_data_P;
}
@ -767,7 +767,7 @@ public:
return (*this);
// Free any existing data.
if (_extra_data_P != NULL)
if (_extra_data_P != nullptr)
delete _extra_data_P;
// Copy the arc's attributes.
@ -784,10 +784,10 @@ public:
_target = arc._target;
// Duplicate the extra data, if necessary.
if (arc._extra_data_P != NULL)
if (arc._extra_data_P != nullptr)
_extra_data_P = new Extra_data (*(arc._extra_data_P));
else
_extra_data_P = NULL;
_extra_data_P = nullptr;
return (*this);
}
@ -1204,7 +1204,7 @@ private:
return;
}
_extra_data_P = NULL;
_extra_data_P = nullptr;
// Check whether we have a degree 2 curve.
if ((CGAL::sign (_r) != ZERO ||
@ -1339,7 +1339,7 @@ private:
CGAL_assertion (is_ellipse);
// We do not have to store any extra data with the arc.
_extra_data_P = NULL;
_extra_data_P = nullptr;
// Mark that this arc is a full conic curve.
if (is_ellipse)
@ -1470,9 +1470,9 @@ protected:
Sign _sign_of_extra_data (const Algebraic& px,
const Algebraic& py) const
{
CGAL_assertion (_extra_data_P != NULL);
CGAL_assertion (_extra_data_P != nullptr);
if (_extra_data_P == NULL)
if (_extra_data_P == nullptr)
return (ZERO);
Algebraic val = (_extra_data_P->a*px + _extra_data_P->b*py +
@ -1542,7 +1542,7 @@ protected:
return (true);
// Check if we have extra data available.
if (_extra_data_P != NULL)
if (_extra_data_P != nullptr)
{
if (_extra_data_P->side != ZERO)
{

View File

@ -522,7 +522,7 @@ public:
}
else if (this->_orient == COLLINEAR)
{
CGAL_assertion (this->_extra_data_P != NULL);
CGAL_assertion (this->_extra_data_P != nullptr);
// In this case the equation of the supporting line is given by the
// extra data structure.

View File

@ -235,7 +235,7 @@ public:
m_cvP(cvP),
m_index(index)
{
m_num_pts = (m_cvP == NULL) ? 0 :
m_num_pts = (m_cvP == nullptr) ? 0 :
((m_cvP->number_of_subcurves() == 0) ?
0 : (m_cvP->number_of_subcurves() + 1));
}
@ -246,7 +246,7 @@ public:
public:
/*! Default constructor. */
Point_const_iterator() :
m_cvP(NULL),
m_cvP(nullptr),
m_num_pts(0),
m_index(std::numeric_limits<size_type>::max BOOST_PREVENT_MACRO_SUBSTITUTION ())
{}
@ -256,7 +256,7 @@ public:
*/
const Point_type_2& operator*() const
{
CGAL_assertion(m_cvP != NULL);
CGAL_assertion(m_cvP != nullptr);
CGAL_assertion((is_index_valid()) && (m_index < m_num_pts));
// First point is the source of the first subcurve.
@ -273,28 +273,28 @@ public:
/*! Increment operators. */
Point_const_iterator& operator++()
{
if ((m_cvP != NULL) && (m_index < m_num_pts)) ++m_index;
if ((m_cvP != nullptr) && (m_index < m_num_pts)) ++m_index;
return (*this);
}
Point_const_iterator operator++(int)
{
Point_const_iterator temp = *this;
if ((m_cvP != NULL) && (m_index < m_num_pts)) ++m_index;
if ((m_cvP != nullptr) && (m_index < m_num_pts)) ++m_index;
return temp;
}
/*! Decrement operators. */
Point_const_iterator& operator--()
{
if ((m_cvP != NULL) && (is_index_valid())) --m_index;
if ((m_cvP != nullptr) && (is_index_valid())) --m_index;
return (*this);
}
Point_const_iterator operator--(int)
{
Point_const_iterator temp = *this;
if ((m_cvP != NULL) && (is_index_valid())) --m_index;
if ((m_cvP != nullptr) && (is_index_valid())) --m_index;
return temp;
}

View File

@ -114,9 +114,9 @@ protected:
public:
/*! Default constructor. */
Arr_landmarks_point_location() :
p_arr(NULL),
m_traits(NULL),
lm_gen(NULL),
p_arr(nullptr),
m_traits(nullptr),
lm_gen(nullptr),
own_gen(false)
{}
@ -141,25 +141,25 @@ public:
{
if (own_gen) {
delete lm_gen;
lm_gen = NULL;
lm_gen = nullptr;
}
}
/*! Attach an arrangement object (and a generator, if supplied). */
void attach(const Arrangement_2& arr, Generator* gen = NULL)
void attach(const Arrangement_2& arr, Generator* gen = nullptr)
{
// Keep a pointer to the associated arrangement.
p_arr = &arr;
m_traits = static_cast<const Traits_adaptor_2*>(p_arr->geometry_traits());
// Update the landmarks generator.
if (gen != NULL) {
if (gen != nullptr) {
// In case a generator is given, keep a pointer to it.
CGAL_assertion(lm_gen == NULL);
CGAL_assertion(lm_gen == nullptr);
lm_gen = gen;
own_gen = false;
}
else if (lm_gen != NULL) {
else if (lm_gen != nullptr) {
// In case a generator exists internally, make sure it is attached to
// the given arrangement.
Arrangement_2& non_const_arr = const_cast<Arrangement_2&>(*p_arr);
@ -175,10 +175,10 @@ public:
/*! Detach the instance from the arrangement object. */
void detach()
{
p_arr = NULL;
m_traits = NULL;
p_arr = nullptr;
m_traits = nullptr;
CGAL_assertion(lm_gen != NULL);
CGAL_assertion(lm_gen != nullptr);
if (lm_gen)
lm_gen->detach();
}

View File

@ -1519,7 +1519,7 @@ public:
// Check whether we have a single intersection point.
const Point_2 *ip = object_cast<Point_2> (&obj);
if (ip != NULL)
if (ip != nullptr)
{
// Check whether the intersection point ip lies on both segments.
const bool ip_on_cv1 = cv1.is_vertical() ? cv1.is_in_y_range(*ip) :

View File

@ -78,9 +78,9 @@ protected:
public:
/*! Default constructor. */
Arr_naive_point_location() :
p_arr(NULL),
geom_traits(NULL),
top_traits(NULL)
p_arr(nullptr),
geom_traits(nullptr),
top_traits(nullptr)
{}
/*! Constructor given an arrangement. */
@ -101,9 +101,9 @@ public:
/*! Detach from the current arrangement object. */
void detach()
{
p_arr = NULL;
geom_traits = NULL;
top_traits = NULL;
p_arr = nullptr;
geom_traits = nullptr;
top_traits = nullptr;
}
/*!

View File

@ -241,7 +241,7 @@ public:
// Chack if the intersection is a point:
const Point_2 *ip;
if ((ip = object_cast<Point_2> (&res)) != NULL)
if ((ip = object_cast<Point_2> (&res)) != nullptr)
{
// Create a pair representing the point with its multiplicity,
// which is always 1 for line segments for all practical purposes.
@ -257,7 +257,7 @@ public:
// The intersection is a segment.
const X_monotone_curve_2 *ov = object_cast<X_monotone_curve_2>(&res);
CGAL_assertion (ov != NULL);
CGAL_assertion (ov != nullptr);
Self self;
Comparison_result cmp1 = self.compare_endpoints_xy_2_object()(cv1);

View File

@ -72,7 +72,7 @@ public:
/*! Default constructor. */
Arr_observer () :
p_arr (NULL)
p_arr (nullptr)
{}
/*! Constructor with an associated arrangement. */
@ -87,7 +87,7 @@ public:
virtual ~Arr_observer ()
{
// Unregister the observer object from the arrangement.
if (p_arr != NULL)
if (p_arr != nullptr)
p_arr->_unregister_observer (this);
}
//@}
@ -118,9 +118,9 @@ public:
return;
// The observer is not already attached to an arrangement.
CGAL_precondition (p_arr == NULL);
CGAL_precondition (p_arr == nullptr);
if (p_arr != NULL)
if (p_arr != nullptr)
return;
// Notify the concrete oberver (the sub-class) about the attachment.
@ -139,7 +139,7 @@ public:
/*! Detach the observer from the arrangement. */
void detach ()
{
if (p_arr == NULL)
if (p_arr == nullptr)
return;
// Notify the concrete oberver (the sub-class) about the detachment.
@ -148,7 +148,7 @@ public:
// Unregister the observer object from the current arrangement, and mark
// that the oberver is not attached to an arrangement.
p_arr->_unregister_observer (this);
p_arr = NULL;
p_arr = nullptr;
// Notify the concrete oberver that the detachment took place.
after_detach();

View File

@ -169,7 +169,7 @@ _walk_from_vertex(Vertex_const_handle nearest_vertex,
// We found a vertex closer to p; Continue using this vertex.
const Vertex_const_handle* p_vh =
Result().template assign<Vertex_const_handle>(obj);
CGAL_assertion(p_vh != NULL);
CGAL_assertion(p_vh != nullptr);
vh = *p_vh;
continue;
}
@ -504,7 +504,7 @@ _walk_from_face(Face_const_handle face,
do {
// Check whether p lies inside the current face (including its holes):
if (p_arr->topology_traits()->is_in_face(&(*face), p, NULL))
if (p_arr->topology_traits()->is_in_face(&(*face), p, nullptr))
{
// We know that p is located inside the current face, and we check
// whether it lies inside one of its holes (or on the boundary of

View File

@ -161,7 +161,7 @@ private:
public:
/*! Default constructor. */
Arr_landmarks_nearest_neighbor () :
m_tree(NULL),
m_tree(nullptr),
m_is_empty(true)
{}
@ -177,7 +177,7 @@ public:
template <class InputIterator>
void init(InputIterator begin, InputIterator end)
{
CGAL_precondition_msg(m_tree == NULL,
CGAL_precondition_msg(m_tree == nullptr,
"The search tree is already initialized.");
if (begin != end) {
@ -193,9 +193,9 @@ public:
/*! Clear the search tree. */
void clear()
{
if (m_tree != NULL)
if (m_tree != nullptr)
delete m_tree;
m_tree = NULL;
m_tree = nullptr;
m_is_empty = true;
}
@ -209,7 +209,7 @@ public:
*/
Point_2 find_nearest_neighbor(const Point_2& q, PL_result_type &obj) const
{
CGAL_precondition_msg(m_tree != NULL && ! m_is_empty,
CGAL_precondition_msg(m_tree != nullptr && ! m_is_empty,
"The search tree is not initialized.");
// Create an NN_Point_2 object from the query point and use it to

View File

@ -79,7 +79,7 @@ Arr_naive_point_location<Arrangement>::locate(const Point_2& p) const
for (fit = p_arr->faces_begin(); fit != p_arr->faces_end(); ++fit) {
fh = fit;
if (top_traits->is_in_face(&(*fh), p, NULL)) {
if (top_traits->is_in_face(&(*fh), p, nullptr)) {
// The current face contains p in its interior.
if (f_inner == invalid_f ||
f_inner->is_unbounded() ||
@ -102,7 +102,7 @@ Arr_naive_point_location<Arrangement>::locate(const Point_2& p) const
fh->outer_ccbs_begin();
Vertex_const_handle v = (*it)->source();
if (top_traits->is_in_face(&(*f_inner), v->point(), NULL))
if (top_traits->is_in_face(&(*f_inner), v->point(), nullptr))
f_inner = fh;
}
}

View File

@ -135,9 +135,9 @@ _base_vertical_ray_shoot(const Point_2& p, bool shoot_up) const
Comparison_result res = EQUAL;
Comparison_result y_res;
bool in_x_range;
const typename Dcel::Halfedge* closest_he = NULL; // The closest so far.
const typename Dcel::Vertex* cl_vs = NULL; // Its source.
const typename Dcel::Vertex* cl_vt = NULL; // Its target.
const typename Dcel::Halfedge* closest_he = nullptr; // The closest so far.
const typename Dcel::Vertex* cl_vs = nullptr; // Its source.
const typename Dcel::Vertex* cl_vt = nullptr; // Its target.
while (eit != e_end) {
// Get the current edge and its source and target vertices.
@ -158,7 +158,7 @@ _base_vertical_ray_shoot(const Point_2& p, bool shoot_up) const
res = m_topol_traits->compare_y_at_x(p, he);
if (in_x_range && (res == point_above_under)) {
if (closest_he == NULL) {
if (closest_he == nullptr) {
// If no other x-monotone curve containing p in its x-range has been
// found yet, take the current one as the vertically closest to p.
closest_he = he;
@ -242,7 +242,7 @@ _base_vertical_ray_shoot(const Point_2& p, bool shoot_up) const
}
// If we did not locate a closest halfedge, return an empty object.
if (closest_he == NULL)
if (closest_he == nullptr)
return make_optional_result();
// If we found a fictitious edge, return it now.
@ -305,7 +305,7 @@ Arr_simple_point_location<Arrangement>::_vertical_ray_shoot(const Point_2& p,
else {
const Halfedge_const_handle* p_hh =
Result().template assign<Halfedge_const_handle>(obj);
CGAL_assertion(p_hh != NULL);
CGAL_assertion(p_hh != nullptr);
found_halfedge = true;
closest_he = *p_hh;
}

View File

@ -193,7 +193,7 @@ _get_unbounded_face(const Td_map_item& item,const Point_2& p,
Td_map_item& left_v_item = td.locate(tr.left(),td_lt);
CGAL_assertion(td_lt == TD::POINT);
Halfedge_const_handle he;
if (boost::get<Td_active_vertex>(&left_v_item) != NULL) {
if (boost::get<Td_active_vertex>(&left_v_item) != nullptr) {
Td_active_vertex v(boost::get<Td_active_vertex>(left_v_item));
he = v.cw_he();
}
@ -225,7 +225,7 @@ _get_unbounded_face(const Td_map_item& item,const Point_2& p,
Td_map_item& right_v_item = td.locate(tr.right(),td_lt);
CGAL_assertion(td_lt == TD::POINT);
Halfedge_const_handle he;
if (boost::get<Td_active_vertex>(&right_v_item)!= NULL) {
if (boost::get<Td_active_vertex>(&right_v_item)!= nullptr) {
Td_active_vertex v(boost::get<Td_active_vertex>(right_v_item));
he = v.cw_he();
}

View File

@ -248,7 +248,7 @@ public:
Curve_end v_ce(left()->curve_end());
ptr()->e2 = (boost::shared_ptr<X_monotone_curve_2>)(new X_monotone_curve_2(v_ce.cv()));
//CGAL_assertion(boost::get<boost::shared_ptr<X_monotone_curve_2>>( &(ptr()->e2)) != NULL);
//CGAL_assertion(boost::get<boost::shared_ptr<X_monotone_curve_2>>( &(ptr()->e2)) != nullptr);
ptr()->e1 = (v_ce.ce() == ARR_MIN_END ) ? CGAL_TD_CV_MIN_END : CGAL_TD_CV_MAX_END;
@ -452,7 +452,7 @@ public:
CGAL_TD_INLINE Vertex_const_handle left_unsafe() const
{
CGAL_precondition(is_active());
CGAL_assertion(boost::get<Vertex_const_handle>(&(ptr()->e0)) != NULL);
CGAL_assertion(boost::get<Vertex_const_handle>(&(ptr()->e0)) != nullptr);
return boost::get<Vertex_const_handle>(ptr()->e0);
}
@ -475,7 +475,7 @@ public:
CGAL_TD_INLINE Vertex_const_handle right_unsafe() const
{
CGAL_precondition(is_active());
CGAL_assertion(boost::get<Vertex_const_handle>(&(ptr()->e1)) != NULL);
CGAL_assertion(boost::get<Vertex_const_handle>(&(ptr()->e1)) != nullptr);
return boost::get<Vertex_const_handle>(ptr()->e1);
}
@ -498,7 +498,7 @@ public:
CGAL_TD_INLINE Halfedge_const_handle bottom_unsafe () const
{
CGAL_precondition(is_active());
CGAL_assertion(boost::get<Halfedge_const_handle>(&(ptr()->e2)) != NULL);
CGAL_assertion(boost::get<Halfedge_const_handle>(&(ptr()->e2)) != nullptr);
return boost::get<Halfedge_const_handle>(ptr()->e2);
}
@ -535,7 +535,7 @@ public:
CGAL_precondition(type() == TD_VERTEX);
CGAL_precondition(!is_on_boundaries());
CGAL_assertion(boost::get<Point>( &(ptr()->e0)) != NULL);
CGAL_assertion(boost::get<Point>( &(ptr()->e0)) != nullptr);
return boost::get<Point>( ptr()->e0 );
}
@ -545,10 +545,10 @@ public:
CGAL_precondition(type() == TD_VERTEX);
CGAL_precondition(is_on_boundaries());
CGAL_assertion(boost::get<unsigned char>( &(ptr()->e1)) != NULL);
CGAL_assertion(boost::get<boost::shared_ptr<X_monotone_curve_2> >(&(ptr()->e2)) != NULL);
CGAL_assertion(boost::get<unsigned char>( &(ptr()->e1)) != nullptr);
CGAL_assertion(boost::get<boost::shared_ptr<X_monotone_curve_2> >(&(ptr()->e2)) != nullptr);
X_monotone_curve_2* cv_ptr = (boost::get<boost::shared_ptr<X_monotone_curve_2> >(ptr()->e2)).get();
CGAL_assertion(cv_ptr != NULL);
CGAL_assertion(cv_ptr != nullptr);
Arr_curve_end ce =
(boost::get<unsigned char>(ptr()->e1) == CGAL_TD_CV_MIN_END) ?
@ -563,10 +563,10 @@ public:
CGAL_precondition(type() == TD_VERTEX);
CGAL_precondition(is_on_boundaries());
CGAL_assertion(boost::get<unsigned char>( &(ptr()->e1)) != NULL);
CGAL_assertion(boost::get<boost::shared_ptr<X_monotone_curve_2> >(&(ptr()->e2)) != NULL);
CGAL_assertion(boost::get<unsigned char>( &(ptr()->e1)) != nullptr);
CGAL_assertion(boost::get<boost::shared_ptr<X_monotone_curve_2> >(&(ptr()->e2)) != nullptr);
X_monotone_curve_2* cv_ptr = (boost::get<boost::shared_ptr<X_monotone_curve_2> >(ptr()->e2)).get();
CGAL_assertion(cv_ptr != NULL);
CGAL_assertion(cv_ptr != nullptr);
Arr_curve_end ce =
(boost::get<unsigned char>(ptr()->e1) == CGAL_TD_CV_MIN_END) ?
@ -580,10 +580,10 @@ public:
CGAL_precondition(!is_active());
CGAL_precondition(type() == TD_VERTEX);
CGAL_assertion(boost::get<unsigned char>( &(ptr()->e1)) != NULL);
CGAL_assertion(boost::get<boost::shared_ptr<X_monotone_curve_2> >(&(ptr()->e2)) != NULL);
CGAL_assertion(boost::get<unsigned char>( &(ptr()->e1)) != nullptr);
CGAL_assertion(boost::get<boost::shared_ptr<X_monotone_curve_2> >(&(ptr()->e2)) != nullptr);
X_monotone_curve_2* cv_ptr = (boost::get<boost::shared_ptr<X_monotone_curve_2> >(ptr()->e2)).get();
CGAL_assertion(cv_ptr != NULL);
CGAL_assertion(cv_ptr != nullptr);
Arr_curve_end ce =
(boost::get<unsigned char>(ptr()->e1) == CGAL_TD_CV_MIN_END) ?
@ -596,9 +596,9 @@ public:
{
CGAL_precondition(!is_active() && type() == TD_EDGE);
CGAL_assertion(boost::get<boost::shared_ptr<X_monotone_curve_2> >(&(ptr()->e2)) != NULL);
CGAL_assertion(boost::get<boost::shared_ptr<X_monotone_curve_2> >(&(ptr()->e2)) != nullptr);
X_monotone_curve_2* cv_ptr = (boost::get<boost::shared_ptr<X_monotone_curve_2> >(ptr()->e2)).get();
CGAL_assertion(cv_ptr != NULL);
CGAL_assertion(cv_ptr != nullptr);
return *cv_ptr;
}

View File

@ -200,8 +200,8 @@ public:
{
PTR = new Data
(Traits::empty_he_handle(), Td_map_item(0), NULL);
//m_dag_node = NULL;
(Traits::empty_he_handle(), Td_map_item(0), nullptr);
//m_dag_node = nullptr;
}
/*! Constructor given Vertex & Halfedge handles. */
Td_active_edge (Halfedge_const_handle he ,

View File

@ -189,7 +189,7 @@ public:
Td_active_fictitious_vertex()
{
PTR = new Data(Traits::empty_vtx_handle(), Traits::empty_he_handle(), NULL);
PTR = new Data(Traits::empty_vtx_handle(), Traits::empty_he_handle(), nullptr);
}
/*! Constructor given Vertex & Halfedge handles. */

View File

@ -261,7 +261,7 @@ public:
Traits::empty_vtx_handle(),
Traits::empty_he_handle(),
Traits::empty_he_handle(),
Td_map_item(0), Td_map_item(0) , Td_map_item(0) , Td_map_item(0), NULL);
Td_map_item(0), Td_map_item(0) , Td_map_item(0) , Td_map_item(0), nullptr);
//m_dag_node = 0;
}

View File

@ -191,7 +191,7 @@ public:
Td_active_vertex()
{
PTR = new Data(Traits::empty_vtx_handle(), Traits::empty_he_handle(), NULL);
PTR = new Data(Traits::empty_vtx_handle(), Traits::empty_he_handle(), nullptr);
}
/*! Constructor given Vertex & Halfedge handles. */

View File

@ -168,7 +168,7 @@ public:
//@{
/*! Constructor given Vertex & Halfedge handles. */
Td_inactive_edge (boost::shared_ptr<X_monotone_curve_2>& cv, Dag_node* node = NULL)
Td_inactive_edge (boost::shared_ptr<X_monotone_curve_2>& cv, Dag_node* node = nullptr)
{
PTR = new Data(cv,node);
}
@ -230,7 +230,7 @@ public:
inline X_monotone_curve_2& curve() const
{
X_monotone_curve_2* cv_ptr = (ptr()->cv).get();
CGAL_assertion(cv_ptr != NULL);
CGAL_assertion(cv_ptr != nullptr);
return *cv_ptr;
}

View File

@ -190,7 +190,7 @@ public:
//@{
/*! Constructor given Vertex & Halfedge handles. */
Td_inactive_fictitious_vertex (Vertex_const_handle v_before_rem, Dag_node* node = NULL)
Td_inactive_fictitious_vertex (Vertex_const_handle v_before_rem, Dag_node* node = nullptr)
{
Curve_end v_ce(vtx_to_ce(v_before_rem));

View File

@ -169,7 +169,7 @@ public:
//@{
/*! Constructor given Vertex & Halfedge handles. */
Td_inactive_vertex (Vertex_const_handle v_before_rem, Dag_node* node = NULL)
Td_inactive_vertex (Vertex_const_handle v_before_rem, Dag_node* node = nullptr)
{
PTR = new Data(v_before_rem->point(), node);
}

View File

@ -266,7 +266,7 @@ public:
m_sep doesn't intersect any existing edges except possibly on common end
points.
postconditions:
if the rightmost trapezoid was traversed m_cur_item is set to NULL.
if the rightmost trapezoid was traversed m_cur_item is set to nullptr.
remark:
if the seperator is vertical, using the precondition assumptions it
follows that there is exactly one trapezoid to travel.
@ -277,9 +277,9 @@ public:
return *this;// end reached, do nothing!
#ifndef CGAL_TD_DEBUG
CGAL_warning(traits != NULL);
CGAL_warning(traits != nullptr);
#else
CGAL_assertion(traits != NULL);
CGAL_assertion(traits != nullptr);
CGAL_assertion(traits->is_active(m_cur_item));
//m_cur_item should be a trapezoid or an edge
CGAL_assertion(!traits->is_td_vertex(m_cur_item));
@ -342,7 +342,7 @@ public:
Td_active_edge e (boost::get<Td_active_edge>(m_cur_item));
CGAL_assertion_code(Dag_node* tt = e.dag_node();)
CGAL_assertion(tt != NULL);
CGAL_assertion(tt != nullptr);
CGAL_assertion(tt->is_inner_node());
//go to next() of the current edge.
@ -654,12 +654,12 @@ public:
Dag_node* operator()(Td_nothing& /* t */) const
{
CGAL_assertion(false);
return NULL;
return nullptr;
}
Dag_node* operator()(Td_inactive_trapezoid& /* t */) const
{
CGAL_assertion(false);
return NULL;
return nullptr;
}
template < typename T >
@ -985,7 +985,7 @@ protected:
const X_monotone_curve_2& cv,
Comparison_result cres) const
{
CGAL_assertion(traits != NULL);
CGAL_assertion(traits != nullptr);
Td_map_item& item = left_cv_end_node.get_data();
CGAL_precondition(traits->is_td_vertex(item));
CGAL_precondition (are_equal_end_points(Curve_end(cv,ARR_MIN_END),
@ -1359,13 +1359,13 @@ public:
// const Dag_node* child;
// CGAL_assertion(tr_copy);
// tr_copy->set_rt(cur->rt() ?
// htr.find(cur->rt())->second : NULL);
// htr.find(cur->rt())->second : nullptr);
// tr_copy->set_rb(cur->rb() ?
// htr.find(cur->rb())->second : NULL);
// htr.find(cur->rb())->second : nullptr);
// tr_copy->set_lt(cur->lt() ?
// htr.find(cur->lt())->second : NULL);
// htr.find(cur->lt())->second : nullptr);
// tr_copy->set_lb(cur->lb() ?
// htr.find(cur->lb())->second : NULL);
// htr.find(cur->lb())->second : nullptr);
// if (cur->dag_node()->is_inner_node())
// {
@ -1391,7 +1391,7 @@ public:
*/
virtual ~Trapezoidal_decomposition_2()
{
CGAL_warning(m_dag_root != NULL);
CGAL_warning(m_dag_root != nullptr);
if (!m_dag_root) return;
delete m_dag_root;
@ -1616,7 +1616,7 @@ public:
//the actual locate. curr is the DAG root, the traits,
//the end point to locate,
//and NULL as cv ptr - indicates point location
//and nullptr as cv ptr - indicates point location
lt = search_using_dag (curr, traits, ce, Halfedge_const_handle());
#ifdef CGAL_TD_DEBUG
@ -1646,7 +1646,7 @@ public:
// locate call may change the class
Td_map_item& locate( Vertex_const_handle v, Locate_type& lt) const
{
CGAL_precondition(traits != NULL);
CGAL_precondition(traits != nullptr);
return locate(traits->vtx_to_ce(v), lt);
}

View File

@ -278,7 +278,7 @@ split_trapezoid_by_halfedge(Dag_node& split_node,
Td_map_item& prev_top_tr,
Halfedge_const_handle he)
{
CGAL_warning(traits != NULL);
CGAL_warning(traits != nullptr);
CGAL_precondition(traits->is_active(split_node.get_data()));
CGAL_precondition(traits->is_td_trapezoid(split_node.get_data()));
@ -397,7 +397,7 @@ update_vtx_with_new_edge(Halfedge_const_handle he,
const Locate_type&
CGAL_precondition_code(lt))
{
CGAL_assertion(traits != NULL);
CGAL_assertion(traits != nullptr);
CGAL_precondition(lt == POINT);
CGAL_precondition(traits->is_active(vtx_item));
@ -441,7 +441,7 @@ insert_curve_at_vtx_using_dag(Halfedge_const_handle he,
Dag_node* node = boost::apply_visitor(dag_node_visitor(), item);
CGAL_assertion(node != NULL);
CGAL_assertion(node != nullptr);
CGAL_assertion(he != m_empty_he_handle);
@ -998,7 +998,7 @@ search_using_dag(Dag_node& curr_node,
Comparison_result up /*=EQUAL*/) const
{
if (he == m_empty_he_handle)
return search_using_dag_with_cv(curr_node,traits,ce,NULL, up);
return search_using_dag_with_cv(curr_node,traits,ce,nullptr, up);
else
return search_using_dag_with_cv(curr_node,traits,ce,&he->curve(), up);
}
@ -1377,7 +1377,7 @@ typename Trapezoidal_decomposition_2<Td_traits>::Dag_node
Trapezoidal_decomposition_2<Td_traits>::
container2dag(Nodes_map& ar, int left, int right, int& num_of_new_nodes) const
{
CGAL_warning(traits != NULL);
CGAL_warning(traits != nullptr);
if (right > left) {
int d = (int)std::floor((double(right+left))/2);
@ -1414,7 +1414,7 @@ container2dag(Nodes_map& ar, int left, int right, int& num_of_new_nodes) const
//curr_node.right_child()->set_dag_node(&curr_node.right_child());
//curr_node->set_dag_node(&curr_node);// fake temporary node
deactivate_vertex(curr_node); //curr_node->remove(); // mark as deleted
boost::apply_visitor(set_dag_node_visitor((Dag_node*)NULL),
boost::apply_visitor(set_dag_node_visitor((Dag_node*)nullptr),
curr_node.get_data());//curr_node->set_dag_node(0);
return curr_node;
@ -1462,7 +1462,7 @@ Trapezoidal_decomposition_2<Td_traits>::insert(Halfedge_const_handle he)
// locate the input Halfedge end points in the Td_map_item Dag
CGAL_assertion(traits != NULL);
CGAL_assertion(traits != nullptr);
//get the two vertices of the halfedge
Vertex_const_handle v1 =
@ -1565,7 +1565,7 @@ Trapezoidal_decomposition_2<Td_traits>::insert(Halfedge_const_handle he)
}
first_time = false;
CGAL_assertion(node != NULL);
CGAL_assertion(node != nullptr);
split_trapezoid_by_halfedge(*node, old_e, old_bottom_tr, old_top_tr, he);
if (node->is_inner_node()) {
@ -1644,7 +1644,7 @@ void Trapezoidal_decomposition_2<Td_traits>::remove(Halfedge_const_handle he)
locate_opt_empty();
#endif
CGAL_warning(traits != NULL);
CGAL_warning(traits != nullptr);
//calculating leftmost and rightmost curve ends of he
const Curve_end leftmost(he, ARR_MIN_END);
@ -1663,8 +1663,8 @@ void Trapezoidal_decomposition_2<Td_traits>::remove(Halfedge_const_handle he)
if (lt1 != POINT || lt2 != POINT) return;
CGAL_warning(boost::apply_visitor(dag_node_visitor(), p1_item) != NULL);
CGAL_warning(boost::apply_visitor(dag_node_visitor(), p2_item) != NULL);
CGAL_warning(boost::apply_visitor(dag_node_visitor(), p1_item) != nullptr);
CGAL_warning(boost::apply_visitor(dag_node_visitor(), p2_item) != nullptr);
//retrieve the Dag_nodes of the two point-degenerate trapezoid
Dag_node& p1_node = *(boost::apply_visitor(dag_node_visitor(), p1_item));
@ -1883,7 +1883,7 @@ void Trapezoidal_decomposition_2<Td_traits>::remove(Halfedge_const_handle he)
removed_cv_ptr(new X_monotone_curve_2(he->curve()));
Base_map_item_iterator last_edge_fragment_it = mid_it;
//Base_trapezoid_iterator last_mid = mid_it;
Dag_node* e_node = NULL;
Dag_node* e_node = nullptr;
while (!!++mid_it) {
e_node = boost::apply_visitor(dag_node_visitor(),*last_edge_fragment_it);
deactivate_edge(removed_cv_ptr,*e_node); //last_mid->remove();
@ -2023,7 +2023,7 @@ vertical_ray_shoot(const Point & p,Locate_type & lt,
//
// if (!traits)
// {
// CGAL_warning(traits != NULL);
// CGAL_warning(traits != nullptr);
// return;
// }
// if (!traits->are_mergeable_2_object()(cv1,cv2))
@ -2040,7 +2040,7 @@ vertical_ray_shoot(const Point & p,Locate_type & lt,
// std::cerr << "\ncv1 " << cv1;
// std::cerr << "\ncv1 " << cv2 << std::endl;
// }
// CGAL_precondition(traits != NULL);
// CGAL_precondition(traits != nullptr);
// CGAL_precondition(traits->are_mergeable_2_object()(cv1,cv2));
//
//#endif
@ -2101,8 +2101,8 @@ vertical_ray_shoot(const Point & p,Locate_type & lt,
//
// CGAL_precondition(lt1==POINT && lt2==POINT);
// CGAL_precondition(t1.is_active() && t2.is_active());
// CGAL_warning(t1.dag_node() != NULL);
// CGAL_warning(t2.dag_node() != NULL);
// CGAL_warning(t1.dag_node() != nullptr);
// CGAL_warning(t2.dag_node() != nullptr);
//
//#endif
// m_before_split.m_cv_before_split = cv;
@ -2221,8 +2221,8 @@ vertical_ray_shoot(const Point & p,Locate_type & lt,
//
// //define the left halfedge and the right halfedge, according
// // to the splitting point
// //Halfedge_const_handle* p_left_he = NULL;
// //Halfedge_const_handle* p_right_he = NULL;
// //Halfedge_const_handle* p_left_he = nullptr;
// //Halfedge_const_handle* p_right_he = nullptr;
// Halfedge_const_handle left_he = he2;
// Halfedge_const_handle right_he = he1;
//
@ -2592,7 +2592,7 @@ merge_edge(Halfedge_const_handle he1,
const X_monotone_curve_2& cv2 = he2->curve();
if (!traits) {
CGAL_warning(traits != NULL);
CGAL_warning(traits != nullptr);
return;
}
if (!traits->are_mergeable_2_object() (cv1, cv2)) {
@ -2645,10 +2645,10 @@ merge_edge(Halfedge_const_handle he1,
Td_map_item rightp_item = locate(rightmost, lt2);
Td_map_item mrgp_item = locate(ce, lt);
//varifying that all trapezoids are not NULL and are of type POINT
CGAL_warning(boost::apply_visitor(dag_node_visitor(), leftp_item) != NULL);
CGAL_warning(boost::apply_visitor(dag_node_visitor(), rightp_item)!= NULL);
CGAL_warning(boost::apply_visitor(dag_node_visitor(), mrgp_item) != NULL);
//varifying that all trapezoids are not nullptr and are of type POINT
CGAL_warning(boost::apply_visitor(dag_node_visitor(), leftp_item) != nullptr);
CGAL_warning(boost::apply_visitor(dag_node_visitor(), rightp_item)!= nullptr);
CGAL_warning(boost::apply_visitor(dag_node_visitor(), mrgp_item) != nullptr);
//define the left curve and the right curve, according
// to the common point (that is merged)
@ -2832,7 +2832,7 @@ longest_query_path_length_rec(bool minus_inf, Dag_node& min_node,
bool plus_inf, Dag_node& max_node,
Dag_node& node)
{
//if NULL
//if nullptr
if (node.is_null()) return 0;
//if not valid range or empty return 0

View File

@ -849,7 +849,7 @@ public:
for (size_t i = 0; i < int_seg.size(); ++i) {
const X_monotone_subcurve_2* x_seg =
CGAL::object_cast<X_monotone_subcurve_2> (&(int_seg[i]));
if (x_seg != NULL) {
if (x_seg != nullptr) {
X_monotone_subcurve_2 seg = *x_seg;
// If for some reason the subcurve intersection
@ -861,7 +861,7 @@ public:
const Point_2_pair* p_ptr =
CGAL::object_cast<Point_2_pair>(&(int_seg[i]));
if (p_ptr != NULL) {
if (p_ptr != nullptr) {
// Any point that is not equal to the max_vertex of the
// subcurve should be inserted into oi.
// The max_vertex of the current subcurve (if intersecting)

View File

@ -108,7 +108,7 @@ public:
public:
Cache() :
_rat_func_map_watermark(128), _rat_pair_map_watermark(128), _ak_ptr(NULL){};
_rat_func_map_watermark(128), _rat_pair_map_watermark(128), _ak_ptr(nullptr){};
void initialize(Algebraic_kernel_d_1* ak_ptr)
{
@ -165,7 +165,7 @@ public:
const Rational_function& get_rational_function(const Polynomial_1& numer,
const Polynomial_1& denom) const
{
CGAL_precondition (_ak_ptr != NULL);
CGAL_precondition (_ak_ptr != nullptr);
Rational_function_key key = get_key(numer,denom);
//look if element exists in cache already
@ -204,7 +204,7 @@ public:
const Rational_function_pair get_rational_pair(const Rational_function& f,
const Rational_function& g) const
{
CGAL_precondition (_ak_ptr != NULL);
CGAL_precondition (_ak_ptr != nullptr);
CGAL_precondition(!(f==g));
Rational_function_canonicalized_pair_key key = get_key(f,g);
bool is_opposite = (f.id() < g.id()) ? false : true ;

View File

@ -47,7 +47,7 @@ public:
typedef typename Base::Solve_1 Solve_1;
public:
Rational_function_rep() : _ak_ptr(NULL){}
Rational_function_rep() : _ak_ptr(nullptr){}
Rational_function_rep(const Polynomial_1& numer,
const Polynomial_1& denom,
Algebraic_kernel_d_1* ak_ptr):
@ -117,7 +117,7 @@ public:
private:
void initialize()
{
CGAL_precondition(_ak_ptr != NULL);
CGAL_precondition(_ak_ptr != nullptr);
CGAL_precondition(CGAL::is_zero(_denom) == false);
if (CGAL::is_zero(_numer))
{

View File

@ -59,7 +59,7 @@ public:
Algebraic_kernel_d_1* ak_ptr)
:_f(f),_g(g),_ak_ptr(ak_ptr)
{
CGAL_precondition(_ak_ptr != NULL);
CGAL_precondition(_ak_ptr != nullptr);
//canonicalized representation
if ( !(f.id() < g.id()) )
std::swap(_f,_g);

View File

@ -39,14 +39,14 @@ public:
{
if(!m_pInstance)
m_pInstance = new T;
CGAL_assertion(m_pInstance !=NULL);
CGAL_assertion(m_pInstance !=nullptr);
return m_pInstance;
}
static void DestroyInstance()
{
delete m_pInstance;
m_pInstance = NULL;
m_pInstance = nullptr;
};
private:
Singleton(); // ctor hidden
@ -55,7 +55,7 @@ private:
static T* m_pInstance;
};
template <class T> T* Singleton<T>::m_pInstance=NULL;
template <class T> T* Singleton<T>::m_pInstance=nullptr;
} // namespace Arr_rational_arc
} //namespace CGAL {

View File

@ -766,7 +766,7 @@ public:
// Check if we have a single intersection point.
const Point_2 *ip = object_cast<Point_2> (&obj);
if (ip != NULL) {
if (ip != nullptr) {
// Check if the intersection point ip lies on both segments.
const bool ip_on_cv1 = cv1.is_vertical() ? cv1.is_in_y_range(*ip) :
cv1.is_in_x_range(*ip);

View File

@ -96,9 +96,9 @@ protected:
public:
/*! Default constructor. */
Arr_simple_point_location() :
m_arr(NULL),
m_geom_traits(NULL),
m_topol_traits(NULL)
m_arr(nullptr),
m_geom_traits(nullptr),
m_topol_traits(nullptr)
{}
/*! Constructor given an arrangement. */
@ -122,9 +122,9 @@ public:
/*! Detach from the current arrangement object. */
void detach()
{
m_arr = NULL;
m_geom_traits = NULL;
m_topol_traits = NULL;
m_arr = nullptr;
m_geom_traits = nullptr;
m_topol_traits = nullptr;
}
/*!

View File

@ -524,7 +524,7 @@ public:
/*! Constructor */
Arr_polyhedral_sgm_initializer(PolyhedralSgm& sgm) :
Base(sgm),
m_visitor(NULL),
m_visitor(nullptr),
m_marked_vertex_index(0),
m_marked_edge_index(0),
m_marked_facet_index(0)
@ -538,7 +538,7 @@ public:
* \param visitor
* \pre The polyhedron polyhedron does not have coplanar facets.
*/
void operator()(Polyhedron& polyhedron, Visitor* visitor = NULL)
void operator()(Polyhedron& polyhedron, Visitor* visitor = nullptr)
{
#if 0
std::copy(polyhedron.points_begin(), polyhedron.points_end(),
@ -568,7 +568,7 @@ public:
const CoordIndexIter indices_begin,
const CoordIndexIter indices_end,
size_type num_facets,
Visitor* visitor = NULL)
Visitor* visitor = nullptr)
{
m_visitor = visitor;

View File

@ -148,7 +148,7 @@ public:
typedef typename Base::Plane Plane;
/*! Constructor */
Arr_polyhedral_sgm_polyhedron_3_face() : m_vertex(NULL), m_marked(false) {}
Arr_polyhedral_sgm_polyhedron_3_face() : m_vertex(nullptr), m_marked(false) {}
/*! Obtain the mutable plane. Delegate */
Plane & plane() { return Base::plane(); }

View File

@ -213,7 +213,7 @@ void Arr_transform_on_sphere(Arrangement & arr,
ind = ARR_MAX_END;
// Check if it was already added.
if (topol_traits->discontinuity_vertex(havc->curve(), ind)== NULL &&
if (topol_traits->discontinuity_vertex(havc->curve(), ind)== nullptr &&
topol_traits->south_pole() != &(*havc->target()) &&
topol_traits->north_pole() != &(*havc->target()) )
{

View File

@ -139,7 +139,7 @@ private:
//! A container of boundary vertices.
struct Vertex_key_comparer {
/*! Construct default */
Vertex_key_comparer() : m_geom_traits(NULL) {}
Vertex_key_comparer() : m_geom_traits(nullptr) {}
/*! Construct */
Vertex_key_comparer(const Gt_adaptor_2* geom_traits) :
@ -297,7 +297,7 @@ public:
Vertex* north_pole() { return m_north_pole; }
/*! Obtain a vertex on the line of discontinuity that corresponds to
* the given curve-end (or return NULL if no such vertex exists).
* the given curve-end (or return nullptr if no such vertex exists).
*/
Vertex* discontinuity_vertex(const X_monotone_curve_2 xc, Arr_curve_end ind)
{
@ -305,7 +305,7 @@ public:
m_geom_traits->construct_min_vertex_2_object()(xc) :
m_geom_traits->construct_max_vertex_2_object()(xc);
typename Vertex_map::iterator it = m_boundary_vertices.find(key);
return (it != m_boundary_vertices.end()) ? it->second : NULL;
return (it != m_boundary_vertices.end()) ? it->second : nullptr;
}
//@}
@ -546,7 +546,7 @@ public:
{
// There are no fictitious halfedges:
CGAL_error();
return NULL;
return nullptr;
}
/*! Determine whether the given face is unbounded.

View File

@ -71,7 +71,7 @@ void Arr_bounded_planar_topology_traits_2<GeometryTraits_2, Dcel_>::
dcel_updated()
{
// Go over the DCEL faces and locate the unbounded face.
unb_face = NULL;
unb_face = nullptr;
typename Dcel::Face_iterator fit = this->m_dcel.faces_begin();
for (; fit != this->m_dcel.faces_end(); ++fit) {
if (fit->is_unbounded()) {
@ -79,7 +79,7 @@ dcel_updated()
break;
}
}
CGAL_assertion(unb_face != NULL);
CGAL_assertion(unb_face != nullptr);
}
} // namespace CGAL

View File

@ -79,8 +79,8 @@ public:
/*! Constructor. */
Arr_inc_insertion_zone_visitor () :
p_arr (NULL),
geom_traits (NULL),
p_arr (nullptr),
geom_traits (nullptr),
invalid_v (),
invalid_he ()
{}

View File

@ -110,9 +110,9 @@ public:
// Clear the DCEL.
m_dcel.delete_all();
if (m_own_geom_traits && (m_geom_traits != NULL)) {
if (m_own_geom_traits && (m_geom_traits != nullptr)) {
delete m_geom_traits;
m_geom_traits = NULL;
m_geom_traits = nullptr;
}
}
//@}
@ -247,9 +247,9 @@ Arr_planar_topology_traits_base_2<GeomTraits, Dcel_>::assign(const Self& other)
m_dcel.assign(other.m_dcel);
// Take care of the traits object.
if (m_own_geom_traits && (m_geom_traits != NULL)) {
if (m_own_geom_traits && (m_geom_traits != nullptr)) {
delete m_geom_traits;
m_geom_traits = NULL;
m_geom_traits = nullptr;
}
if (other.m_own_geom_traits) m_geom_traits = new Traits_adaptor_2;
@ -265,8 +265,8 @@ template <typename GeomTraits, typename Dcel_>
bool Arr_planar_topology_traits_base_2<GeomTraits, Dcel_>::
is_in_face(const Face* f, const Point_2& p, const Vertex* v) const
{
CGAL_precondition((v == NULL) || ! v->has_null_point());
CGAL_precondition((v == NULL) ||
CGAL_precondition((v == nullptr) || ! v->has_null_point());
CGAL_precondition((v == nullptr) ||
m_geom_traits->equal_2_object()(p, v->point()));
// In case the face is unbounded and has no outer ccbs, this is the single
@ -310,7 +310,7 @@ is_in_face(const Face* f, const Point_2& p, const Vertex* v) const
do {
// Compare p to the target vertex of the current halfedge.
// If the vertex v associated with p (if v is given and is not NULL)
// If the vertex v associated with p (if v is given and is not nullptr)
// on the boundary of the component, p is obviously not in the interior
// the component.
if (curr->vertex() == v) return false;

View File

@ -114,7 +114,7 @@ public:
Arr_spherical_construction_helper(Arrangement_2* arr) :
m_top_traits(arr->topology_traits()),
m_arr_access(*arr),
m_he_ind_map_p(NULL)
m_he_ind_map_p(nullptr)
{}
/*! Destructor. */
@ -172,7 +172,7 @@ public:
*/
void splice_indices_list(Halfedge_handle he)
{
CGAL_assertion(m_he_ind_map_p != NULL);
CGAL_assertion(m_he_ind_map_p != nullptr);
Indices_list& list_ref = (*m_he_ind_map_p)[he];
list_ref.splice(list_ref.end(), m_subcurves_at_nf);
}

View File

@ -36,9 +36,9 @@ namespace CGAL {
template <typename GeomTraits, typename Dcel>
Arr_spherical_topology_traits_2<GeomTraits, Dcel>::
Arr_spherical_topology_traits_2() :
m_spherical_face(NULL),
m_north_pole(NULL),
m_south_pole(NULL),
m_spherical_face(nullptr),
m_north_pole(nullptr),
m_south_pole(nullptr),
m_own_geom_traits(true)
{
m_geom_traits = new Gt_adaptor_2;
@ -49,9 +49,9 @@ Arr_spherical_topology_traits_2() :
template <typename GeomTraits, typename Dcel>
Arr_spherical_topology_traits_2<GeomTraits, Dcel>::
Arr_spherical_topology_traits_2(const Geometry_traits_2* traits) :
m_spherical_face(NULL),
m_north_pole(NULL),
m_south_pole(NULL),
m_spherical_face(nullptr),
m_north_pole(nullptr),
m_south_pole(nullptr),
m_own_geom_traits(false)
{
m_geom_traits = static_cast<const Gt_adaptor_2*>(traits);
@ -66,9 +66,9 @@ Arr_spherical_topology_traits_2<GeomTraits, Dcel>::
// Clear the DCEL.
m_dcel.delete_all();
if (m_own_geom_traits && (m_geom_traits != NULL)) {
if (m_own_geom_traits && (m_geom_traits != nullptr)) {
delete m_geom_traits;
m_geom_traits = NULL;
m_geom_traits = nullptr;
}
}
@ -82,9 +82,9 @@ assign(const Self& other)
m_dcel.assign(other.m_dcel);
// Take care of the traits object.
if (m_own_geom_traits && m_geom_traits != NULL) {
if (m_own_geom_traits && m_geom_traits != nullptr) {
delete m_geom_traits;
m_geom_traits = NULL;
m_geom_traits = nullptr;
}
if (other.m_own_geom_traits) {
@ -109,8 +109,8 @@ void Arr_spherical_topology_traits_2<GeomTraits_, Dcel_>::dcel_updated()
// Go over the DCEL vertices and locate the south and north pole (if any)
// and any other vertex on the line of discontinuity.
m_north_pole = NULL;
m_south_pole = NULL;
m_north_pole = nullptr;
m_south_pole = nullptr;
m_boundary_vertices.clear();
typename Dcel::Vertex_iterator vit = this->m_dcel.vertices_begin();
@ -129,17 +129,17 @@ void Arr_spherical_topology_traits_2<GeomTraits_, Dcel_>::dcel_updated()
// Go over the DCEL faces and locate the spherical face, which is the only
// face with no outer CCB.
m_spherical_face = NULL;
m_spherical_face = nullptr;
typename Dcel::Face_iterator fit = this->m_dcel.faces_begin();
for (; fit != this->m_dcel.faces_end(); ++fit) {
if (fit->number_of_outer_ccbs() == 0) {
CGAL_assertion(m_spherical_face == NULL);
CGAL_assertion(m_spherical_face == nullptr);
m_spherical_face = &(*fit);
break;
}
}
CGAL_assertion(m_spherical_face != NULL);
CGAL_assertion(m_spherical_face != nullptr);
}
/*! \brief initializes an empty DCEL structure. */
@ -156,8 +156,8 @@ void Arr_spherical_topology_traits_2<GeomTraits, Dcel>::init_dcel()
m_spherical_face->set_unbounded(false);
m_spherical_face->set_fictitious(false);
m_north_pole = NULL;
m_south_pole = NULL;
m_north_pole = nullptr;
m_south_pole = nullptr;
}
/*! \brief determines whether a point lies in the interior of a given face. */
@ -166,8 +166,8 @@ bool Arr_spherical_topology_traits_2<GeomTraits, Dcel>::
is_in_face(const Face* f, const Point_2& p, const Vertex* v) const
{
// std::cout << "is_in_face()" << std::endl;
CGAL_precondition((v == NULL) || !v->has_null_point());
CGAL_precondition((v == NULL) ||
CGAL_precondition((v == nullptr) || !v->has_null_point());
CGAL_precondition((v == nullptr) ||
m_geom_traits->equal_2_object()(p, v->point()));
/* There is always one face that contains everything else. It has no
@ -183,12 +183,12 @@ is_in_face(const Face* f, const Point_2& p, const Vertex* v) const
<< std::endl;
#endif
if (f->number_of_outer_ccbs() == 0) return true;
if (((v != NULL) && (v->parameter_space_in_y() == ARR_TOP_BOUNDARY)) ||
if (((v != nullptr) && (v->parameter_space_in_y() == ARR_TOP_BOUNDARY)) ||
(m_geom_traits->parameter_space_in_y_2_object()(p) == ARR_TOP_BOUNDARY))
return false;
/*! \todo a temporary test
* if (((v != NULL) && (v->parameter_space_in_y() == ARR_BOTTOM_BOUNDARY)) ||
* if (((v != nullptr) && (v->parameter_space_in_y() == ARR_BOTTOM_BOUNDARY)) ||
* (p.is_min_boundary()))
* return false;
*/
@ -536,12 +536,12 @@ place_boundary_vertex(Face* /* f */,
{
// std::cout << "place_boundary_vertex()" << std::endl;
if (ps_y == ARR_BOTTOM_BOUNDARY) {
if (m_south_pole == NULL) return Object();
if (m_south_pole == nullptr) return Object();
return CGAL::make_object(m_south_pole);
}
if (ps_y == ARR_TOP_BOUNDARY) {
if (m_north_pole == NULL) return Object();
if (m_north_pole == nullptr) return Object();
return CGAL::make_object(m_north_pole);
}
@ -608,18 +608,18 @@ locate_curve_end(const X_monotone_curve_2& xc, Arr_curve_end ind,
// In case the curve end coincides with the north pole, return the vertex
// representing the north pole, if one exists. Otherwise, return the face
// containing this pole (the spherical face).
if (m_north_pole != NULL) return CGAL::make_object(m_north_pole);
if (m_north_pole != nullptr) return CGAL::make_object(m_north_pole);
return CGAL::make_object(m_spherical_face);
}
typename Vertex_map::iterator it;
Vertex* v = NULL;
Vertex* v = nullptr;
if (ps_y == ARR_BOTTOM_BOUNDARY) {
// In case the curve end coincides with the south pole, return the vertex
// representing the south pole, if one exists. Otherwise, search for the
// face containing this pole.
if (m_south_pole != NULL) return CGAL::make_object(m_south_pole);
if (m_south_pole != nullptr) return CGAL::make_object(m_south_pole);
it = m_boundary_vertices.begin();
}
else {
@ -655,7 +655,7 @@ locate_curve_end(const X_monotone_curve_2& xc, Arr_curve_end ind,
template <typename GeomTraits, typename Dcel>
bool Arr_spherical_topology_traits_2<GeomTraits, Dcel>::
is_redundant(const Vertex* v) const
{ return (v->halfedge() == NULL); }
{ return (v->halfedge() == nullptr); }
/* \brief erases a given redundant vertex */
template <typename GeomTraits, typename Dcel>
@ -665,17 +665,17 @@ erase_redundant_vertex(Vertex* v)
{
const Arr_parameter_space ps_y = v->parameter_space_in_y();
if (ps_y == ARR_BOTTOM_BOUNDARY) {
m_south_pole = NULL;
return NULL;
m_south_pole = nullptr;
return nullptr;
}
if (ps_y == ARR_TOP_BOUNDARY) {
m_north_pole = NULL;
return NULL;
m_north_pole = nullptr;
return nullptr;
}
CGAL_assertion_code(Arr_parameter_space ps_x = v->parameter_space_in_x());
CGAL_assertion(ps_x != ARR_INTERIOR);
m_boundary_vertices.erase(v->point());
return NULL;
return nullptr;
}
/*! \brief obtains the curve associated with a boundary vertex */
@ -703,12 +703,12 @@ _locate_around_vertex_on_discontinuity(Vertex* v,
Arr_curve_end ind) const
{
// If the vertex is isolated, there is no predecssor halfedge.
if (v->is_isolated()) return NULL;
if (v->is_isolated()) return nullptr;
// Get the first incident halfedge around v and the next halfedge.
Halfedge* first = v->halfedge();
Halfedge* curr = first;
CGAL_assertion(curr != NULL);
CGAL_assertion(curr != nullptr);
Halfedge* next = curr->next()->opposite();
// If is only one halfedge incident to v, return this halfedge as xc's
@ -756,12 +756,12 @@ _locate_around_pole(Vertex* v,
// std::cout << "locate_around_pole() " << ind << std::endl;
// If the vertex is isolated, return a null halfedge:
if (v->is_isolated()) return NULL;
if (v->is_isolated()) return nullptr;
// Get the first incident halfedge around v and the next halfedge:
Halfedge* first = v->halfedge();
Halfedge* curr = first;
CGAL_assertion(curr != NULL);
CGAL_assertion(curr != nullptr);
Halfedge* next = curr->next()->opposite();
// If there is only one halfedge, it is the predecessor, return it:
@ -809,7 +809,7 @@ _locate_around_pole(Vertex* v,
// We sould never reach here:
CGAL_error();
return NULL;
return nullptr;
}
/*! \brief Return the face that lies below the given vertex, which lies
@ -826,7 +826,7 @@ _face_below_vertex_on_discontinuity(Vertex* v) const
// Get the first incident halfedge around v and the next halfedge.
Halfedge* first = v->halfedge();
Halfedge* curr = first;
CGAL_assertion(curr != NULL);
CGAL_assertion(curr != nullptr);
Halfedge* next = curr->next()->opposite();
// If there is only one halfedge incident to v, return its incident face.
@ -842,8 +842,8 @@ _face_below_vertex_on_discontinuity(Vertex* v) const
typename Gt_adaptor_2::Compare_y_at_x_left_2 cmp_y_at_x_op_left =
m_geom_traits->compare_y_at_x_left_2_object();
Halfedge* lowest_left = NULL;
Halfedge* top_right = NULL;
Halfedge* lowest_left = nullptr;
Halfedge* top_right = nullptr;
do {
// Check whether the current halfedge is defined to the left or to the
@ -851,7 +851,7 @@ _face_below_vertex_on_discontinuity(Vertex* v) const
if (curr->direction() == ARR_LEFT_TO_RIGHT) {
// The curve associated with the current halfedge is defined to the left
// of v.
if (lowest_left == NULL ||
if (lowest_left == nullptr ||
cmp_y_at_x_op_left(curr->curve(), lowest_left->curve(), v->point())
== SMALLER)
{
@ -861,7 +861,7 @@ _face_below_vertex_on_discontinuity(Vertex* v) const
else {
// The curve associated with the current halfedge is defined to the right
// of v.
if (top_right == NULL ||
if (top_right == nullptr ||
cmp_y_at_x_op_right(curr->curve(), top_right->curve(), v->point()) ==
LARGER)
{
@ -878,7 +878,7 @@ _face_below_vertex_on_discontinuity(Vertex* v) const
// right. Note that as the halfedge we located has v as its target, we now
// have to return its twin.
first =
(lowest_left != NULL) ? lowest_left->opposite() : top_right->opposite();
(lowest_left != nullptr) ? lowest_left->opposite() : top_right->opposite();
// std::cout << "first: " << first->opposite()->vertex()->point() << " => "
// << first->vertex()->point() << std::endl;

View File

@ -114,14 +114,14 @@ public:
void Arr_spherical_vert_decomp_helper<Tr, Arr, Evnt, Sbcv>::before_sweep()
{
// Get the north pole and the face that intially contains it.
m_valid_north_pole = (m_top_traits->north_pole() != NULL);
m_valid_north_pole = (m_top_traits->north_pole() != nullptr);
if (m_valid_north_pole)
m_north_pole = Vertex_const_handle (m_top_traits->north_pole());
m_north_face = Face_const_handle (m_top_traits->spherical_face());
// Get the south pole and the face that intially contains it.
m_valid_south_pole = (m_top_traits->south_pole() != NULL);
m_valid_south_pole = (m_top_traits->south_pole() != nullptr);
if (m_valid_south_pole)
m_south_pole = Vertex_const_handle (m_top_traits->south_pole());

View File

@ -116,9 +116,9 @@ public:
Arr_unb_planar_construction_helper(Arrangement_2* arr) :
m_top_traits(arr->topology_traits()),
m_arr_access(*arr),
m_prev_minus_inf_x_event(NULL),
m_prev_plus_inf_y_event(NULL),
m_he_ind_map_p(NULL)
m_prev_minus_inf_x_event(nullptr),
m_prev_plus_inf_y_event(nullptr),
m_he_ind_map_p(nullptr)
{}
/*! Destructor. */
@ -155,7 +155,7 @@ public:
// The last event at y = +oo may be deallocated if it has no incident
// right subcurves, so we should not keep a pointer to it.
if (event == m_prev_plus_inf_y_event)
m_prev_plus_inf_y_event = NULL;
m_prev_plus_inf_y_event = nullptr;
}
//@}
@ -278,7 +278,7 @@ before_handle_event(Event* event)
// Update the incident halfedge of the previous vertex at x = -oo
// (m_lh used to be incident to it, but now we have split it).
if (m_prev_minus_inf_x_event != NULL)
if (m_prev_minus_inf_x_event != nullptr)
m_prev_minus_inf_x_event->set_halfedge_handle(m_lh->next());
m_prev_minus_inf_x_event = event;
return;
@ -311,13 +311,13 @@ before_handle_event(Event* event)
// Update the incident halfedge of the previous vertex at y = +oo
// (m_th used to be incident to it, but now we have split it).
if (m_prev_plus_inf_y_event != NULL)
if (m_prev_plus_inf_y_event != nullptr)
m_prev_plus_inf_y_event->set_halfedge_handle(m_th->next());
m_prev_plus_inf_y_event = event;
// Associate all curve indices of subcurves that "see" m_th from
// below with the left portion of the split halfedge (m_th->next()).
if (m_he_ind_map_p != NULL)
if (m_he_ind_map_p != nullptr)
{
Indices_list& list_ref = (*m_he_ind_map_p)[m_th->next()];
list_ref.clear();

View File

@ -187,7 +187,7 @@ before_handle_event(Event* event)
if (ps_x == ARR_LEFT_BOUNDARY) {
// The event lies on the left fictitious halfedge.
this->m_lh = this->m_lh->twin()->next()->twin();
this->m_prev_minus_inf_x_event = NULL;
this->m_prev_minus_inf_x_event = nullptr;
}
else if (ps_x == ARR_RIGHT_BOUNDARY) {
// The event lies on the right fictitious halfedge.
@ -204,7 +204,7 @@ before_handle_event(Event* event)
// The event lies on the top fictitious halfedge.
CGAL_assertion (ps_y == ARR_TOP_BOUNDARY);
this->m_th = this->m_th->twin()->next()->twin();
this->m_prev_plus_inf_y_event = NULL;
this->m_prev_plus_inf_y_event = nullptr;
}
}
}

View File

@ -40,12 +40,12 @@ template <typename GeomTraits, typename Dcel_>
Arr_unb_planar_topology_traits_2<GeomTraits, Dcel_>::
Arr_unb_planar_topology_traits_2():
Base(),
v_bl(NULL),
v_tl(NULL),
v_br(NULL),
v_tr(NULL),
v_bl(nullptr),
v_tl(nullptr),
v_br(nullptr),
v_tr(nullptr),
n_inf_verts(0),
fict_face(NULL)
fict_face(nullptr)
{}
//-----------------------------------------------------------------------------
@ -55,12 +55,12 @@ template <typename GeomTraits, typename Dcel_>
Arr_unb_planar_topology_traits_2<GeomTraits, Dcel_>::
Arr_unb_planar_topology_traits_2 (const Geometry_traits_2 * geom_traits) :
Base (geom_traits),
v_bl (NULL),
v_tl (NULL),
v_br (NULL),
v_tr (NULL),
v_bl (nullptr),
v_tl (nullptr),
v_br (nullptr),
v_tr (nullptr),
n_inf_verts (0),
fict_face (NULL)
fict_face (nullptr)
{}
//-----------------------------------------------------------------------------
@ -89,7 +89,7 @@ void Arr_unb_planar_topology_traits_2<GeomTraits, Dcel_>::dcel_updated ()
typename Dcel::Vertex_iterator vit;
Halfedge *first_he, *next_he;
v_bl = v_tl = v_br = v_tr = NULL;
v_bl = v_tl = v_br = v_tr = nullptr;
n_inf_verts = 0;
for (vit = this->m_dcel.vertices_begin();
vit != this->m_dcel.vertices_end(); ++vit)
@ -123,23 +123,23 @@ void Arr_unb_planar_topology_traits_2<GeomTraits, Dcel_>::dcel_updated ()
CGAL_error();
}
}
CGAL_assertion(v_bl != NULL && v_tl != NULL && v_br != NULL && v_tr != NULL);
CGAL_assertion(v_bl != nullptr && v_tl != nullptr && v_br != nullptr && v_tr != nullptr);
// Go over the DCEL faces and locate the fictitious face.
typename Dcel::Face_iterator fit;
fict_face = NULL;
fict_face = nullptr;
for (fit = this->m_dcel.faces_begin();
fit != this->m_dcel.faces_end(); ++fit)
{
if (fit->is_fictitious())
{
CGAL_assertion (fict_face == NULL);
CGAL_assertion (fict_face == nullptr);
fict_face = &(*fit);
}
}
CGAL_assertion (fict_face != NULL);
CGAL_assertion (fict_face != nullptr);
return;
}
@ -200,10 +200,10 @@ void Arr_unb_planar_topology_traits_2<GeomTraits, Dcel_>::init_dcel ()
Inner_ccb *ic = this->m_dcel.new_inner_ccb();
Face *in_f = this->m_dcel.new_face();
he1->set_curve (NULL);
he2->set_curve (NULL);
he3->set_curve (NULL);
he4->set_curve (NULL);
he1->set_curve (nullptr);
he2->set_curve (nullptr);
he3->set_curve (nullptr);
he4->set_curve (nullptr);
he1->set_next (he2); he1_t->set_next (he4_t);
he2->set_next (he3); he4_t->set_next (he3_t);
@ -272,7 +272,7 @@ are_equal(const Vertex *v,
Arr_curve_end v_ind;
const X_monotone_curve_2 *v_cv = _curve (v, v_ind);
if (v_cv == NULL)
if (v_cv == nullptr)
return (v->parameter_space_in_x() == ps_x &&
v->parameter_space_in_y() == ps_y);
@ -287,7 +287,7 @@ are_equal(const Vertex *v,
Arr_curve_end v_ind;
const X_monotone_curve_2 *v_cv = _curve (v, v_ind);
if (v_cv == NULL)
if (v_cv == nullptr)
return (v->parameter_space_in_x() == ARR_INTERIOR &&
v->parameter_space_in_y() == ps_y);
@ -555,23 +555,23 @@ erase_redundant_vertex (Vertex *v)
// Keep pointers to the components that contain two halfedges he3 and he2,
// pointing at the end vertices of the merged halfedge.
Inner_ccb *ic1 = (he3->is_on_inner_ccb()) ? he3->inner_ccb() : NULL;
Outer_ccb *oc1 = (ic1 == NULL) ? he3->outer_ccb() : NULL;
Inner_ccb *ic2 = (he4->is_on_inner_ccb()) ? he4->inner_ccb() : NULL;
Outer_ccb *oc2 = (ic2 == NULL) ? he4->outer_ccb() : NULL;
Inner_ccb *ic1 = (he3->is_on_inner_ccb()) ? he3->inner_ccb() : nullptr;
Outer_ccb *oc1 = (ic1 == nullptr) ? he3->outer_ccb() : nullptr;
Inner_ccb *ic2 = (he4->is_on_inner_ccb()) ? he4->inner_ccb() : nullptr;
Outer_ccb *oc2 = (ic2 == nullptr) ? he4->outer_ccb() : nullptr;
// As he1 and he2 will evetually represent the merged edge, while he3 and he4
// will be deleted, check if the deleted halfedges are represantatives of a
// face boundary or a hole inside these faces. If so, replace he3 by he1 and
// he4 by he2.
if (ic1 != NULL && ic1->halfedge() == he3)
if (ic1 != nullptr && ic1->halfedge() == he3)
ic1->set_halfedge (he1);
else if (oc1 != NULL && oc1->halfedge() == he3)
else if (oc1 != nullptr && oc1->halfedge() == he3)
oc1->set_halfedge (he1);
if (ic2 != NULL && ic2->halfedge() == he4)
if (ic2 != nullptr && ic2->halfedge() == he4)
ic2->set_halfedge (he2);
else if (oc2 != NULL && oc2->halfedge() == he4)
else if (oc2 != nullptr && oc2->halfedge() == he4)
oc2->set_halfedge (he2);
// If he3 is the incident halfedge to its target, replace it by he1.
@ -625,7 +625,7 @@ compare_x (const Point_2& p, const Vertex* v) const
Arr_curve_end v_ind = ARR_MIN_END;
const X_monotone_curve_2* v_cv = _curve (v, v_ind);
CGAL_assertion(v_cv != NULL);
CGAL_assertion(v_cv != nullptr);
return
(this->m_geom_traits->compare_x_point_curve_end_2_object()(p, *v_cv,
v_ind));
@ -659,7 +659,7 @@ compare_xy (const Point_2& p, const Vertex* v) const
Arr_curve_end v_ind = ARR_MIN_END;
const X_monotone_curve_2* v_cv = _curve (v, v_ind);
CGAL_assertion (v_cv != NULL);
CGAL_assertion (v_cv != nullptr);
Comparison_result res =
this->m_geom_traits->compare_x_point_curve_end_2_object() (p, *v_cv,
@ -724,7 +724,7 @@ _curve (const Vertex* v, Arr_curve_end& ind) const
he = he->next()->opposite();
// No incident curve were found:
if (he == v->halfedge()) return (NULL);
if (he == v->halfedge()) return (nullptr);
}
// The halfedge he is directed toward v, so if it is directed from left to
@ -844,7 +844,7 @@ _is_on_fictitious_edge(const X_monotone_curve_2& cv, Arr_curve_end ind,
// arrangement, but it hasn't been associated with a valid halfedge
// yet, as the insertion process is still ongoing.
// The comparison result in this case is trivial.
if (v_cv1 != NULL) {
if (v_cv1 != nullptr) {
res1 =
this->m_geom_traits->compare_x_curve_ends_2_object()(cv, ind,
*v_cv1, v_ind);
@ -878,7 +878,7 @@ _is_on_fictitious_edge(const X_monotone_curve_2& cv, Arr_curve_end ind,
// arrangement, but it hasn't been associated with a valid halfedge
// yet, as the insertion process is still ongoing.
// The comparison result in this case is trivial.
if (v_cv2 != NULL) {
if (v_cv2 != nullptr) {
res2 =
this->m_geom_traits->compare_x_curve_ends_2_object()(cv, ind,
*v_cv2, v_ind);

View File

@ -148,7 +148,7 @@ public:
Arr_trapezoid_ric_point_location (bool with_guarantees = true,
double depth_thrs = CGAL_TD_DEFAULT_DEPTH_THRESHOLD,
double size_thrs = CGAL_TD_DEFAULT_SIZE_THRESHOLD)
: m_traits (NULL), m_with_guarantees(with_guarantees)
: m_traits (nullptr), m_with_guarantees(with_guarantees)
{
td.set_with_guarantees(with_guarantees);
td.depth_threshold(depth_thrs);

View File

@ -129,7 +129,7 @@ protected:
public:
/*! Default constructor. */
Arr_triangulation_point_location() :
m_traits(NULL),
m_traits(nullptr),
m_ignore_notifications(false),
m_ignore_remove_edge(false)
{}

View File

@ -342,7 +342,7 @@ public:
Arr_parameter_space /* ps_y */) const
{
CGAL_error();
return (NULL);
return (nullptr);
}
/*! Locate a DCEL feature that contains the given unbounded curve end.
@ -492,7 +492,7 @@ protected:
* \param ind Output: ARR_MIN_END if the vertex is induced by the minimal end;
* ARR_MAX_END if it is induced by the curve's maximal end.
* \pre v is a valid (not fictitious) boundary.
* \return The curve that induces v, or NULL if v has no incident curves yet.
* \return The curve that induces v, or nullptr if v has no incident curves yet.
*/
const X_monotone_curve_2* _curve(const Vertex* v, Arr_curve_end& ind) const;

View File

@ -87,9 +87,9 @@ protected:
public:
/*! Default constructor. */
Arr_walk_along_line_point_location() :
p_arr(NULL),
geom_traits(NULL),
top_traits(NULL)
p_arr(nullptr),
geom_traits(nullptr),
top_traits(nullptr)
{}
/*! Constructor given an arrangement. */
@ -113,9 +113,9 @@ public:
/*! Detach from the current arrangement object. */
void detach()
{
p_arr = NULL;
geom_traits = NULL;
top_traits = NULL;
p_arr = nullptr;
geom_traits = nullptr;
top_traits = nullptr;
}
/*!

View File

@ -110,7 +110,7 @@ void insert(Arrangement_on_surface_2<GeometryTraits_2, TopologyTraits>& arr,
// Act according to the type of the current object.
x_curve = object_cast<typename Gt2::X_monotone_curve_2>(&(*obj_iter));
if (x_curve != NULL) {
if (x_curve != nullptr) {
// Inserting an x-monotone curve:
// Initialize the zone-computation object with the given curve.
arr_zone.init(*x_curve, pl);
@ -128,7 +128,7 @@ void insert(Arrangement_on_surface_2<GeometryTraits_2, TopologyTraits>& arr,
}
else {
iso_p = object_cast<typename Gt2::Point_2>(&(*obj_iter));
CGAL_assertion(iso_p != NULL);
CGAL_assertion(iso_p != nullptr);
// Inserting a point into the arrangement:
insert_point(arr, *iso_p, pl);
@ -680,7 +680,7 @@ insert_non_intersecting_curve
const Arr_parameter_space by1 =
geom_traits->parameter_space_in_y_2_object()(c, ARR_MIN_END);
CGAL::Object obj1;
const Vertex_const_handle* vh1 = NULL;
const Vertex_const_handle* vh1 = nullptr;
if ((bx1 == ARR_INTERIOR) && (by1 == ARR_INTERIOR)) {
// We have a normal left endpoint with no boundary conditions:
@ -690,7 +690,7 @@ insert_non_intersecting_curve
// The endpoint must not lie on an existing edge, but may coincide with
// and existing vertex vh1.
CGAL_precondition_msg
(object_cast<Halfedge_const_handle>(&obj1) == NULL,
(object_cast<Halfedge_const_handle>(&obj1) == nullptr,
"The curve must not intersect an existing edge.");
vh1 = object_cast<Vertex_const_handle>(&obj1);
@ -701,7 +701,7 @@ insert_non_intersecting_curve
obj1 = arr_access.locate_curve_end(c, ARR_MIN_END, bx1, by1);
CGAL_precondition_msg
(object_cast<Halfedge_const_handle>(&obj1) == NULL,
(object_cast<Halfedge_const_handle>(&obj1) == nullptr,
"The curve must not overlap an existing edge.");
vh1 = object_cast<Vertex_const_handle>(&obj1);
@ -714,7 +714,7 @@ insert_non_intersecting_curve
const Arr_parameter_space by2 =
geom_traits->parameter_space_in_y_2_object()(c, ARR_MAX_END);
CGAL::Object obj2;
const Vertex_const_handle* vh2 = NULL;
const Vertex_const_handle* vh2 = nullptr;
if ((bx2 == ARR_INTERIOR) && (by2 == ARR_INTERIOR)) {
// We have a normal right endpoint with no boundary conditions:
@ -724,7 +724,7 @@ insert_non_intersecting_curve
// The endpoint must not lie on an existing edge, but may coincide with
// and existing vertex vh2.
CGAL_precondition_msg
(object_cast<Halfedge_const_handle>(&obj2) == NULL,
(object_cast<Halfedge_const_handle>(&obj2) == nullptr,
"The curve must not intersect an existing edge.");
vh2 = object_cast<Vertex_const_handle>(&obj2);
@ -739,7 +739,7 @@ insert_non_intersecting_curve
obj2 = arr_access.locate_curve_end(c, ARR_MAX_END, bx2, by2);
CGAL_precondition_msg
(object_cast<Halfedge_const_handle>(&obj2) == NULL,
(object_cast<Halfedge_const_handle>(&obj2) == nullptr,
"The curve must not overlap an existing edge.");
vh2 = object_cast<Vertex_const_handle>(&obj2);
@ -754,8 +754,8 @@ insert_non_intersecting_curve
// accordingly.
typename Arr::Halfedge_handle new_he;
if (vh1 != NULL) {
if (vh2 != NULL) {
if (vh1 != nullptr) {
if (vh2 != nullptr) {
// Both endpoints are associated with a existing vertices.
// In this case insert_at_vertices() already returns a halfedge
// directed from left to right.
@ -772,7 +772,7 @@ insert_non_intersecting_curve
}
}
else {
if (vh2 != NULL) {
if (vh2 != nullptr) {
// Only the right endpoint is associated with an existing vertex.
// In this case insert_from_left_vertex() returns a halfedge directed
// to the new vertex it creates, so it is directed from right to left
@ -797,10 +797,10 @@ insert_non_intersecting_curve
// << (*fh2)->number_of_outer_ccbs() << std::endl;
CGAL_assertion_msg
((fh1 != NULL) && (fh2 != NULL) && ((*fh1) == (*fh2)),
((fh1 != nullptr) && (fh2 != nullptr) && ((*fh1) == (*fh2)),
"The curve intersects the interior of existing edges.");
if ((fh1 != NULL) && (fh2 != NULL) && (*fh1 == *fh2)) {
if ((fh1 != nullptr) && (fh2 != nullptr) && (*fh1 == *fh2)) {
new_he = arr.insert_in_face_interior(c, arr.non_const_handle (*fh1));
}
}
@ -1164,13 +1164,13 @@ insert_point(Arrangement_on_surface_2<GeometryTraits_2, TopologyTraits>& arr,
arr_access.notify_before_global_change();
if ((fh = object_cast<typename Arr::Face_const_handle>(&obj)) != NULL) {
if ((fh = object_cast<typename Arr::Face_const_handle>(&obj)) != nullptr) {
// p lies inside a face: Insert it as an isolated vertex it the interior of
// this face.
vh_for_p = arr.insert_in_face_interior(p, arr.non_const_handle (*fh));
}
else if ((hh = object_cast<typename Arr::Halfedge_const_handle>(&obj)) !=
NULL)
nullptr)
{
// p lies in the interior of an edge: Split this edge to create a new
// vertex associated with p.
@ -1189,7 +1189,7 @@ insert_point(Arrangement_on_surface_2<GeometryTraits_2, TopologyTraits>& arr,
// In this case p lies on an existing vertex, so we just update this
// vertex.
vh = object_cast<typename Arr::Vertex_const_handle>(&obj);
CGAL_assertion (vh != NULL);
CGAL_assertion (vh != nullptr);
vh_for_p = arr.modify_vertex (arr.non_const_handle (*vh), p);
}
@ -1634,20 +1634,20 @@ do_intersect(Arrangement_on_surface_2<GeometryTraits_2, TopologyTraits>& arr,
for (obj_iter = x_objects.begin(); obj_iter != x_objects.end(); ++obj_iter) {
// Act according to the type of the current object.
x_curve = object_cast<typename Gt2::X_monotone_curve_2>(&(*obj_iter));
if (x_curve != NULL) {
if (x_curve != nullptr) {
// Check if the x-monotone subcurve intersects the arrangement.
if (do_intersect(arr, *x_curve, pl) == true)
return true;
}
else {
iso_p = object_cast<typename Gt2::Point_2>(&(*obj_iter));
CGAL_assertion(iso_p != NULL);
CGAL_assertion(iso_p != nullptr);
// Check whether the isolated point lies inside a face (otherwise,
// it conincides with a vertex or an edge).
CGAL::Object obj = pl.locate (*iso_p);
return (object_cast<typename Arr::Face_const_handle>(&obj) != NULL);
return (object_cast<typename Arr::Face_const_handle>(&obj) != nullptr);
}
}

View File

@ -96,7 +96,7 @@ Arrangement_on_surface_2<GeomTraits, TopTraits>::Arrangement_on_surface_2() :
template <typename GeomTraits, typename TopTraits>
Arrangement_on_surface_2<GeomTraits, TopTraits>::
Arrangement_on_surface_2(const Self& arr) :
m_geom_traits(NULL),
m_geom_traits(nullptr),
m_own_traits(false)
{
assign(arr);
@ -206,9 +206,9 @@ void Arrangement_on_surface_2<GeomTraits, TopTraits>::assign(const Self& arr)
}
// Take care of the traits object.
if (m_own_traits && (m_geom_traits != NULL)) {
if (m_own_traits && (m_geom_traits != nullptr)) {
delete m_geom_traits;
m_geom_traits = NULL;
m_geom_traits = nullptr;
}
m_geom_traits = (arr.m_own_traits) ? new Traits_adaptor_2 : arr.m_geom_traits;
@ -237,9 +237,9 @@ Arrangement_on_surface_2<GeomTraits, TopTraits>::~Arrangement_on_surface_2()
_delete_curve(eit->curve());
// Free the traits object, if necessary.
if (m_own_traits && (m_geom_traits != NULL)) {
if (m_own_traits && (m_geom_traits != nullptr)) {
delete m_geom_traits;
m_geom_traits = NULL;
m_geom_traits = nullptr;
}
// Detach all observers still attached to the arrangement.
@ -333,7 +333,7 @@ insert_in_face_interior(const X_monotone_curve_2& cv, Face_handle f)
m_geom_traits->parameter_space_in_x_2_object()(cv, ARR_MIN_END);
const Arr_parameter_space ps_y1 =
m_geom_traits->parameter_space_in_y_2_object()(cv, ARR_MIN_END);
DHalfedge* fict_prev1 = NULL;
DHalfedge* fict_prev1 = nullptr;
DVertex* v1 = ((ps_x1 == ARR_INTERIOR) && (ps_y1 == ARR_INTERIOR)) ?
// The curve has a valid left endpoint: Create a new vertex associated
@ -349,7 +349,7 @@ insert_in_face_interior(const X_monotone_curve_2& cv, Face_handle f)
m_geom_traits->parameter_space_in_x_2_object()(cv, ARR_MAX_END);
const Arr_parameter_space ps_y2 =
m_geom_traits->parameter_space_in_y_2_object()(cv, ARR_MAX_END);
DHalfedge* fict_prev2 = NULL;
DHalfedge* fict_prev2 = nullptr;
DVertex* v2 = ((ps_x2 == ARR_INTERIOR) && (ps_y2 == ARR_INTERIOR)) ?
// The curve has a valid right endpoint: Create a new vertex associated
@ -363,15 +363,15 @@ insert_in_face_interior(const X_monotone_curve_2& cv, Face_handle f)
// lexicographically smaller than v2).
DHalfedge* new_he;
if ((fict_prev1 == NULL) && (fict_prev2 == NULL))
if ((fict_prev1 == nullptr) && (fict_prev2 == nullptr))
// Both vertices represent valid points.
new_he = _insert_in_face_interior(p_f, cv, ARR_LEFT_TO_RIGHT, v1, v2);
else if ((fict_prev1 == NULL) && (fict_prev2 != NULL)) {
else if ((fict_prev1 == nullptr) && (fict_prev2 != nullptr)) {
// v1 represents a valid point and v2 is inserted using its predecessor.
new_he = _insert_from_vertex(fict_prev2, cv, ARR_RIGHT_TO_LEFT, v1);
new_he = new_he->opposite();
}
else if ((fict_prev1 != NULL) && (fict_prev2 == NULL))
else if ((fict_prev1 != nullptr) && (fict_prev2 == nullptr))
// v1 is inserted using its predecessor and v2 represents a valid point.
new_he = _insert_from_vertex(fict_prev1, cv, ARR_LEFT_TO_RIGHT, v2);
else {
@ -455,8 +455,8 @@ insert_from_left_vertex(const X_monotone_curve_2& cv,
m_geom_traits->parameter_space_in_x_2_object()(cv, ARR_MAX_END);
const Arr_parameter_space ps_y2 =
m_geom_traits->parameter_space_in_y_2_object()(cv, ARR_MAX_END);
DVertex* v2 = NULL;
DHalfedge* fict_prev2 = NULL;
DVertex* v2 = nullptr;
DHalfedge* fict_prev2 = nullptr;
if ((ps_x2 == ARR_INTERIOR) && (ps_y2 == ARR_INTERIOR))
// The curve has a valid right endpoint: Create a new vertex associated
@ -469,8 +469,8 @@ insert_from_left_vertex(const X_monotone_curve_2& cv,
// The given vertex is an isolated one: We should in fact insert the curve
// in the interior of the face containing this vertex.
DVertex* v1 = _vertex(v);
DIso_vertex* iv = NULL;
DFace* p_f = NULL;
DIso_vertex* iv = nullptr;
DFace* p_f = nullptr;
if (v->is_isolated()) {
// Obtain the face from the isolated vertex.
@ -485,13 +485,13 @@ insert_from_left_vertex(const X_monotone_curve_2& cv,
// If the vertex that corresponds to cv's right end has boundary
// conditions, create it now.
if (v2 == NULL)
if (v2 == nullptr)
// Locate the DCEL features that will be used for inserting the curve's
// right end.
v2 = _place_and_set_curve_end(p_f, cv, ARR_MAX_END, ps_x2, ps_y2,
&fict_prev2);
if (iv != NULL) {
if (iv != nullptr) {
// Remove the isolated vertex v1, as it will not be isolated any more.
p_f->erase_isolated_vertex(iv);
_dcel().delete_isolated_vertex(iv);
@ -500,7 +500,7 @@ insert_from_left_vertex(const X_monotone_curve_2& cv,
// Create the edge connecting the two vertices (note that we know that
// v1 is smaller than v2).
DHalfedge* new_he;
if (fict_prev2 == NULL)
if (fict_prev2 == nullptr)
new_he = _insert_in_face_interior(p_f, cv, ARR_LEFT_TO_RIGHT, v1, v2);
else {
new_he = _insert_from_vertex(fict_prev2, cv, ARR_RIGHT_TO_LEFT, v1);
@ -516,7 +516,7 @@ insert_from_left_vertex(const X_monotone_curve_2& cv,
// which the new curve should be inserted.
DHalfedge* prev1 = _locate_around_vertex(_vertex(v), cv, ARR_MIN_END);
CGAL_assertion_msg
(prev1 != NULL,
(prev1 != nullptr,
"The inserted curve cannot be located in the arrangement.");
DFace* f1 = prev1->is_on_inner_ccb() ? prev1->inner_ccb()->face() :
@ -524,7 +524,7 @@ insert_from_left_vertex(const X_monotone_curve_2& cv,
// If the vertex that corresponds to cv's right end has boundary conditions,
// create it now.
if (v2 == NULL)
if (v2 == nullptr)
// Locate the DCEL features that will be used for inserting the curve's
// right end.
v2 =
@ -534,7 +534,7 @@ insert_from_left_vertex(const X_monotone_curve_2& cv,
// than v2).
DHalfedge* new_he;
if (fict_prev2 == NULL)
if (fict_prev2 == nullptr)
// Insert the halfedge given the predecessor halfedge of v1.
new_he = _insert_from_vertex(prev1, cv, ARR_LEFT_TO_RIGHT, v2);
else {
@ -617,7 +617,7 @@ insert_from_left_vertex(const X_monotone_curve_2& cv, Halfedge_handle prev)
m_geom_traits->parameter_space_in_x_2_object()(cv, ARR_MAX_END);
const Arr_parameter_space ps_y2 =
m_geom_traits->parameter_space_in_y_2_object()(cv, ARR_MAX_END);
DHalfedge* fict_prev2 = NULL;
DHalfedge* fict_prev2 = nullptr;
DVertex* v2 = ((ps_x2 == ARR_INTERIOR) && (ps_y2 == ARR_INTERIOR)) ?
// The curve has a valid right endpoint: Create a new vertex associated
@ -631,7 +631,7 @@ insert_from_left_vertex(const X_monotone_curve_2& cv, Halfedge_handle prev)
// than v2).
DHalfedge* new_he;
if (fict_prev2 == NULL)
if (fict_prev2 == nullptr)
// Insert the halfedge given the predecessor halfedge of the left vertex.
new_he = _insert_from_vertex(prev1, cv, ARR_LEFT_TO_RIGHT, v2);
else {
@ -693,8 +693,8 @@ insert_from_right_vertex(const X_monotone_curve_2& cv,
m_geom_traits->parameter_space_in_x_2_object()(cv, ARR_MIN_END);
const Arr_parameter_space ps_y1 =
m_geom_traits->parameter_space_in_y_2_object()(cv, ARR_MIN_END);
DVertex* v1 = NULL;
DHalfedge* fict_prev1 = NULL;
DVertex* v1 = nullptr;
DHalfedge* fict_prev1 = nullptr;
if ((ps_x1 == ARR_INTERIOR) && (ps_y1 == ARR_INTERIOR))
// The curve has a valid left endpoint: Create a new vertex associated
@ -707,8 +707,8 @@ insert_from_right_vertex(const X_monotone_curve_2& cv,
// The given vertex is an isolated one: We should in fact insert the curve
// in the interior of the face containing this vertex.
DVertex* v2 = _vertex(v);
DIso_vertex* iv = NULL;
DFace* p_f = NULL;
DIso_vertex* iv = nullptr;
DFace* p_f = nullptr;
if (v->is_isolated()) {
// Obtain the face from the isolated vertex.
@ -723,13 +723,13 @@ insert_from_right_vertex(const X_monotone_curve_2& cv,
// If the vertex that corresponds to cv's left end has boundary
// conditions, create it now.
if (v1 == NULL)
if (v1 == nullptr)
// Locate the DCEL features that will be used for inserting the curve's
// left end.
v1 = _place_and_set_curve_end(p_f, cv, ARR_MIN_END, ps_x1, ps_y1,
&fict_prev1);
if (iv != NULL) {
if (iv != nullptr) {
// Remove the isolated vertex v2, as it will not be isolated any more.
p_f->erase_isolated_vertex(iv);
_dcel().delete_isolated_vertex(iv);
@ -737,7 +737,7 @@ insert_from_right_vertex(const X_monotone_curve_2& cv,
// Create the edge connecting the two vertices (note that we know that
// v1 is smaller than v2).
DHalfedge* new_he = (fict_prev1 == NULL) ?
DHalfedge* new_he = (fict_prev1 == nullptr) ?
_insert_in_face_interior(p_f, cv, ARR_LEFT_TO_RIGHT, v1, v2) :
_insert_from_vertex(fict_prev1, cv, ARR_LEFT_TO_RIGHT, v2);
@ -750,14 +750,14 @@ insert_from_right_vertex(const X_monotone_curve_2& cv,
// which the new curve should be inserted.
DHalfedge* prev2 = _locate_around_vertex(_vertex(v), cv, ARR_MAX_END);
CGAL_assertion_msg
(prev2 != NULL, "The inserted curve cannot be located in the arrangement.");
(prev2 != nullptr, "The inserted curve cannot be located in the arrangement.");
DFace* f2 = prev2->is_on_inner_ccb() ? prev2->inner_ccb()->face() :
prev2->outer_ccb()->face();
// If the vertex that corresponds to cv's left end has boundary conditions,
// create it now.
if (v1 == NULL)
if (v1 == nullptr)
// Locate the DCEL features that will be used for inserting the curve's
// left end.
v1 =
@ -767,7 +767,7 @@ insert_from_right_vertex(const X_monotone_curve_2& cv,
// than v1).
DHalfedge* new_he;
if (fict_prev1 == NULL)
if (fict_prev1 == nullptr)
// Insert the halfedge given the predecessor halfedge of v2.
new_he = _insert_from_vertex(prev2, cv, ARR_RIGHT_TO_LEFT, v1);
else {
@ -852,7 +852,7 @@ insert_from_right_vertex(const X_monotone_curve_2& cv,
m_geom_traits->parameter_space_in_x_2_object()(cv, ARR_MIN_END);
const Arr_parameter_space ps_y1 =
m_geom_traits->parameter_space_in_y_2_object()(cv, ARR_MIN_END);
DHalfedge* fict_prev1 = NULL;
DHalfedge* fict_prev1 = nullptr;
DVertex* v1 = ((ps_x1 == ARR_INTERIOR) && (ps_y1 == ARR_INTERIOR)) ?
// The curve has a valid left endpoint: Create a new vertex associated
@ -866,7 +866,7 @@ insert_from_right_vertex(const X_monotone_curve_2& cv,
// than v1).
DHalfedge* new_he;
if (fict_prev1 == NULL)
if (fict_prev1 == nullptr)
// Insert the halfedge given the predecessor halfedge of the right vertex.
new_he = _insert_from_vertex(prev2, cv, ARR_RIGHT_TO_LEFT, v1);
else {
@ -1023,8 +1023,8 @@ insert_at_vertices(const X_monotone_curve_2& cv,
if (v1->degree() == 0) {
// Get the face containing the isolated vertex v1.
DVertex* p_v1 = _vertex(v1);
DIso_vertex* iv1 = NULL;
DFace* f1 = NULL;
DIso_vertex* iv1 = nullptr;
DFace* f1 = nullptr;
if (p_v1->is_isolated()) {
// Obtain the containing face from the isolated vertex record.
@ -1041,8 +1041,8 @@ insert_at_vertices(const X_monotone_curve_2& cv,
// Both end-vertices are isolated. Make sure they are contained inside
// the same face.
DVertex* p_v2 = _vertex(v2);
DIso_vertex* iv2 = NULL;
DFace* f2 = NULL;
DIso_vertex* iv2 = nullptr;
DFace* f2 = nullptr;
if (p_v2->is_isolated()) {
// Obtain the containing face from the isolated vertex record.
@ -1050,14 +1050,14 @@ insert_at_vertices(const X_monotone_curve_2& cv,
f2 = iv2->face();
CGAL_assertion_msg
((f1 == NULL) || (f1 == f2),
((f1 == nullptr) || (f1 == f2),
"The two isolated vertices must be located inside the same face.");
// Remove the isolated vertex v2, as it will not be isolated any more.
f2->erase_isolated_vertex(iv2);
_dcel().delete_isolated_vertex(iv2);
}
else if (f1 == NULL)
else if (f1 == nullptr)
// In this case the containing face must be given by the user.
CGAL_precondition(f != Face_handle());
@ -1073,7 +1073,7 @@ insert_at_vertices(const X_monotone_curve_2& cv,
// which the new curve should be inserted.
DHalfedge* prev2 = _locate_around_vertex(_vertex(v2), cv, ind2);
CGAL_assertion_msg
(prev2 != NULL,
(prev2 != nullptr,
"The inserted curve cannot be located in the arrangement.");
CGAL_assertion_code
@ -1081,7 +1081,7 @@ insert_at_vertices(const X_monotone_curve_2& cv,
prev2->outer_ccb()->face());
CGAL_assertion_msg
((f1 == NULL) || (f1 == f2),
((f1 == nullptr) || (f1 == f2),
"The inserted curve should not intersect the existing arrangement.");
// Perform the insertion. Note that the returned halfedge is directed
@ -1095,8 +1095,8 @@ insert_at_vertices(const X_monotone_curve_2& cv,
else if (v2->degree() == 0) {
// Get the face containing the isolated vertex v2.
DVertex* p_v2 = _vertex(v2);
DIso_vertex* iv2 = NULL;
DFace* f2 = NULL;
DIso_vertex* iv2 = nullptr;
DFace* f2 = nullptr;
if (v2->is_isolated()) {
// Obtain the containing face from the isolated vertex record.
@ -1112,7 +1112,7 @@ insert_at_vertices(const X_monotone_curve_2& cv,
// which the new curve should be inserted.
DHalfedge* prev1 = _locate_around_vertex(_vertex(v1), cv, ind1);
CGAL_assertion_msg
(prev1 != NULL,
(prev1 != nullptr,
"The inserted curve cannot be located in the arrangement.");
CGAL_assertion_code
@ -1120,7 +1120,7 @@ insert_at_vertices(const X_monotone_curve_2& cv,
prev1->outer_ccb()->face());
CGAL_assertion_msg
((f2 == NULL) || (f2 == f1),
((f2 == nullptr) || (f2 == f1),
"The inserted curve should not intersect the existing arrangement.");
// Perform the insertion.
@ -1137,7 +1137,7 @@ insert_at_vertices(const X_monotone_curve_2& cv,
DHalfedge* prev2 = _locate_around_vertex(_vertex(v2), cv, ind2);
CGAL_assertion_msg
(((prev1 != NULL) && (prev2 != NULL)),
(((prev1 != nullptr) && (prev2 != nullptr)),
"The inserted curve cannot be located in the arrangement.");
// Perform the insertion.
@ -1259,8 +1259,8 @@ insert_at_vertices(const X_monotone_curve_2& cv,
if (v2->degree() == 0) {
// Get the face containing the isolated vertex v2.
DVertex* p_v2 = _vertex(v2);
DIso_vertex* iv2 = NULL;
DFace* f2 = NULL;
DIso_vertex* iv2 = nullptr;
DFace* f2 = nullptr;
if (v2->is_isolated()) {
iv2 = p_v2->isolated_vertex();
@ -1287,7 +1287,7 @@ insert_at_vertices(const X_monotone_curve_2& cv,
// which the new curve should be inserted.
DHalfedge* prev2 = _locate_around_vertex(_vertex(v2), cv, ind2);
CGAL_assertion_msg
(prev2 != NULL, "The inserted curve cannot be located in the arrangement.");
(prev2 != nullptr, "The inserted curve cannot be located in the arrangement.");
// Perform the insertion.
return (insert_at_vertices(cv, prev1, Halfedge_handle(prev2)));
@ -1652,10 +1652,10 @@ merge_edge(Halfedge_handle e1, Halfedge_handle e2,
//
DHalfedge* _e1 = _halfedge(e1);
DHalfedge* _e2 = _halfedge(e2);
DHalfedge* he1 = NULL;
DHalfedge* he2 = NULL;
DHalfedge* he3 = NULL;
DHalfedge* he4 = NULL;
DHalfedge* he1 = nullptr;
DHalfedge* he2 = nullptr;
DHalfedge* he3 = nullptr;
DHalfedge* he4 = nullptr;
if (_e1->vertex() == _e2->opposite()->vertex()) {
he1 = _e1;
@ -1709,11 +1709,11 @@ merge_edge(Halfedge_handle e1, Halfedge_handle e2,
// Keep pointers to the components that contain two halfedges he3 and he2,
// pointing at the end vertices of the merged halfedge.
DInner_ccb* ic1 = (he3->is_on_inner_ccb()) ? he3->inner_ccb() : NULL;
DOuter_ccb* oc1 = (ic1 == NULL) ? he3->outer_ccb() : NULL;
DInner_ccb* ic1 = (he3->is_on_inner_ccb()) ? he3->inner_ccb() : nullptr;
DOuter_ccb* oc1 = (ic1 == nullptr) ? he3->outer_ccb() : nullptr;
DInner_ccb* ic2 = (he4->is_on_inner_ccb()) ? he4->inner_ccb() : NULL;
DOuter_ccb* oc2 = (ic2 == NULL) ? he4->outer_ccb() : NULL;
DInner_ccb* ic2 = (he4->is_on_inner_ccb()) ? he4->inner_ccb() : nullptr;
DOuter_ccb* oc2 = (ic2 == nullptr) ? he4->outer_ccb() : nullptr;
// Notify the observers that we are about to merge an edge.
_notify_before_merge_edge(e1, e2, cv);
@ -1723,14 +1723,14 @@ merge_edge(Halfedge_handle e1, Halfedge_handle e2,
// the CCBs they belong to. If so, replace he3 by he1 and he4 by he2. Note
// that as we just change the component representatives, we do not have to
// notify the observers on the change.
if (oc1 != NULL && oc1->halfedge() == he3)
if (oc1 != nullptr && oc1->halfedge() == he3)
oc1->set_halfedge(he1);
else if (ic1 != NULL && ic1->halfedge() == he3)
else if (ic1 != nullptr && ic1->halfedge() == he3)
ic1->set_halfedge(he1);
if (oc2 != NULL && oc2->halfedge() == he4)
if (oc2 != nullptr && oc2->halfedge() == he4)
oc2->set_halfedge(he2);
else if (ic2 != NULL && ic2->halfedge() == he4)
else if (ic2 != nullptr && ic2->halfedge() == he4)
ic2->set_halfedge(he2);
// If he3 is the incident halfedge to its target, replace it by he1.
@ -1832,7 +1832,7 @@ _locate_around_vertex(DVertex* v,
DHalfedge* first = v->halfedge();
DHalfedge* curr = first;
if (curr == NULL) return NULL;
if (curr == nullptr) return nullptr;
DHalfedge* next = curr->next()->opposite();
@ -1854,7 +1854,7 @@ _locate_around_vertex(DVertex* v,
{
// If cv equals one of the curves associated with the halfedges, it is
// an illegal input curve, as it already exists in the arrangement.
if (eq_curr || eq_next) return NULL;
if (eq_curr || eq_next) return nullptr;
// Move to the next pair of incident halfedges.
curr = next;
@ -1862,7 +1862,7 @@ _locate_around_vertex(DVertex* v,
// If we completed a full traversal around v without locating the
// place for cv, it follows that cv overlaps and existing curve.
if (curr == first) return NULL;
if (curr == first) return nullptr;
}
// Return the halfedge we have located.
@ -2173,7 +2173,7 @@ _create_boundary_vertex(const X_monotone_curve_2& cv, Arr_curve_end ind,
if (is_open(ps_x, ps_y))
// The curve-end lies on open boundary so the vertex is not associated
// with a valid point.
v->set_point(NULL);
v->set_point(nullptr);
else {
// Create a boundary vertex associated with a valid point.
Point_2* p_p = (ind == ARR_MIN_END) ?
@ -2244,7 +2244,7 @@ _place_and_set_curve_end(DFace* f,
m_topol_traits.notify_on_boundary_vertex_creation(v, cv, ind, ps_x, ps_y);
// There are no edges incident to v, therefore no predecessor halfedge.
*p_pred = NULL;
*p_pred = nullptr;
}
// Return the vertex that represents the curve end.
@ -2353,8 +2353,8 @@ _insert_from_vertex(DHalfedge* he_to, const X_monotone_curve_2& cv,
// Get the incident face of the previous halfedge. Note that this will also
// be the incident face of the two new halfedges we are about to create.
DInner_ccb* ic = (he_to->is_on_inner_ccb()) ? he_to->inner_ccb() : NULL;
DOuter_ccb* oc = (ic == NULL) ? he_to->outer_ccb() : NULL;
DInner_ccb* ic = (he_to->is_on_inner_ccb()) ? he_to->inner_ccb() : nullptr;
DOuter_ccb* oc = (ic == nullptr) ? he_to->outer_ccb() : nullptr;
// The first vertex is the one that the he_to halfedge points to.
// The second vertex is given by v.
@ -2376,7 +2376,7 @@ _insert_from_vertex(DHalfedge* he_to, const X_monotone_curve_2& cv,
he2->set_vertex(v2);
// Set the component for the new halfedge pair.
if (oc != NULL) {
if (oc != nullptr) {
// On an outer component:
he1->set_outer_ccb(oc);
he2->set_outer_ccb(oc);
@ -2459,8 +2459,8 @@ _insert_at_vertices(DHalfedge* he_to,
he_away->outer_ccb()->face()) << std::endl;
#endif
CGAL_precondition(he_to != NULL);
CGAL_precondition(he_away != NULL);
CGAL_precondition(he_to != nullptr);
CGAL_precondition(he_away != nullptr);
// TODO EBEB 2012-10-21 rewrite the code in terms of he_to and he_away instead of prev1 and prev2
// the remainder of the function we deal with this situation adds he1 and
@ -2471,8 +2471,8 @@ _insert_at_vertices(DHalfedge* he_to,
DHalfedge* prev1 = he_to;
DHalfedge* prev2 = he_away->prev();
CGAL_precondition(prev1 != NULL);
CGAL_precondition(prev2 != NULL);
CGAL_precondition(prev1 != nullptr);
CGAL_precondition(prev2 != nullptr);
CGAL_precondition(prev1 != prev2);
// in general we do not swap ...
@ -2491,10 +2491,10 @@ _insert_at_vertices(DHalfedge* he_to,
// Comment EBEB 2012-08-05 hole1/hole2 appear later as ic1/ic2, but we keep
// them here, as the usage is rather local to decide swapping
DInner_ccb* hole1 = (prev1->is_on_inner_ccb()) ? prev1->inner_ccb() : NULL;
DInner_ccb* hole2 = (prev2->is_on_inner_ccb()) ? prev2->inner_ccb() : NULL;
DInner_ccb* hole1 = (prev1->is_on_inner_ccb()) ? prev1->inner_ccb() : nullptr;
DInner_ccb* hole2 = (prev2->is_on_inner_ccb()) ? prev2->inner_ccb() : nullptr;
if ((hole1 == hole2) && (hole1 != NULL)) {
if ((hole1 == hole2) && (hole1 != nullptr)) {
// .. only in this special case, we have to check whether swapping should
// take place
@ -2605,13 +2605,13 @@ _insert_at_vertices(DHalfedge* he_to,
// Get the components containing the two previous halfedges and the incident
// face (which should be the same for the two components).
DInner_ccb* ic1 = (prev1->is_on_inner_ccb()) ? prev1->inner_ccb() : NULL;
DOuter_ccb* oc1 = (ic1 == NULL) ? prev1->outer_ccb() : NULL;
DFace* f = (ic1 != NULL) ? ic1->face() : oc1->face();
DInner_ccb* ic2 = (prev2->is_on_inner_ccb()) ? prev2->inner_ccb() : NULL;
DOuter_ccb* oc2 = (ic2 == NULL) ? prev2->outer_ccb() : NULL;
DInner_ccb* ic1 = (prev1->is_on_inner_ccb()) ? prev1->inner_ccb() : nullptr;
DOuter_ccb* oc1 = (ic1 == nullptr) ? prev1->outer_ccb() : nullptr;
DFace* f = (ic1 != nullptr) ? ic1->face() : oc1->face();
DInner_ccb* ic2 = (prev2->is_on_inner_ccb()) ? prev2->inner_ccb() : nullptr;
DOuter_ccb* oc2 = (ic2 == nullptr) ? prev2->outer_ccb() : nullptr;
CGAL_precondition_code(DFace* f2 = (ic2 != NULL) ? ic2->face() : oc2->face());
CGAL_precondition_code(DFace* f2 = (ic2 != nullptr) ? ic2->face() : oc2->face());
#if CGAL_ARRANGEMENT_ON_SURFACE_INSERT_VERBOSE
std::cout << "ic1: " << ic1 << std::endl;
@ -2672,7 +2672,7 @@ _insert_at_vertices(DHalfedge* he_to,
bool split_new_face = true;
bool is_split_face_contained = false;
if ((ic1 != NULL) && (ic1 == ic2)) {
if ((ic1 != nullptr) && (ic1 == ic2)) {
// EBEB 2012-08-06:
// This is new code. It relies on the (computed) signs and replaces to
@ -2722,7 +2722,7 @@ _insert_at_vertices(DHalfedge* he_to,
// Check the various cases of insertion (in the design document: the
// various sub-cases of case 3 in the insertion procedure).
if (((ic1 != NULL) || (ic2 != NULL)) && (ic1 != ic2)) {
if (((ic1 != nullptr) || (ic2 != nullptr)) && (ic1 != ic2)) {
// In case we have to connect two disconnected components, no new face
// is created.
new_face = false;
@ -2732,7 +2732,7 @@ _insert_at_vertices(DHalfedge* he_to,
// of the face.
Face_handle fh(f);
if ((ic1 != NULL) && (ic2 != NULL)) {
if ((ic1 != nullptr) && (ic2 != nullptr)) {
// In this case (3.1) we have to connect to inner CCBs (holes) inside f.
// Notify the observers that we are about to merge two holes in the face.
_notify_before_merge_inner_ccb(fh,
@ -2769,7 +2769,7 @@ _insert_at_vertices(DHalfedge* he_to,
DHalfedge* ccb_first;
DHalfedge* ccb_last;
if (ic1 != NULL) {
if (ic1 != nullptr) {
// We remove the inner CCB ic1 and merge in with the outer CCB oc2.
del_ic = ic1;
oc = oc2;
@ -2809,7 +2809,7 @@ _insert_at_vertices(DHalfedge* he_to,
}
else if (! split_new_face) {
// RWRW: NEW!
CGAL_assertion((ic1 == ic2) && (ic1 != NULL));
CGAL_assertion((ic1 == ic2) && (ic1 != nullptr));
// Handle the special case where we close an inner CCB, such that
// we form two outer CCBs of the same face.
@ -2920,7 +2920,7 @@ _insert_at_vertices(DHalfedge* he_to,
// or on the same outer CCB (distinguish case 3.3 and case 3.4).
bool is_hole;
if (ic1 != NULL) {
if (ic1 != nullptr) {
// In this case (3.3) we have two distinguish two sub-cases.
if (is_split_face_contained) {
// Comment: This is true for all non-identification topologies
@ -3079,7 +3079,7 @@ _insert_at_vertices(DHalfedge* he_to,
_notify_after_split_face(fh, Face_handle(new_f), is_hole);
}
else {
CGAL_assertion((oc1 != NULL) && (oc2 != NULL) && (oc1 != oc2));
CGAL_assertion((oc1 != nullptr) && (oc2 != nullptr) && (oc1 != oc2));
// In case prev1 and prev2 belong to different outer CCBs of the same
// face f (case 3.5), we have to merge this ccbs into one. Note that we
@ -3122,12 +3122,12 @@ _insert_at_vertices(DHalfedge* he_to,
#if 0
{
DHalfedge* he1 = he2->opposite();
DInner_ccb* ic1 = (he1->is_on_inner_ccb()) ? he1->inner_ccb() : NULL;
DOuter_ccb* oc1 = (ic1 == NULL) ? he1->outer_ccb() : NULL;
DFace* f1 = (ic1 != NULL) ? ic1->face() : oc1->face();
DInner_ccb* ic2 = (he2->is_on_inner_ccb()) ? he2->inner_ccb() : NULL;
DOuter_ccb* oc2 = (ic2 == NULL) ? he2->outer_ccb() : NULL;
DFace* f2 = (ic2 != NULL) ? ic2->face() : oc2->face();
DInner_ccb* ic1 = (he1->is_on_inner_ccb()) ? he1->inner_ccb() : nullptr;
DOuter_ccb* oc1 = (ic1 == nullptr) ? he1->outer_ccb() : nullptr;
DFace* f1 = (ic1 != nullptr) ? ic1->face() : oc1->face();
DInner_ccb* ic2 = (he2->is_on_inner_ccb()) ? he2->inner_ccb() : nullptr;
DOuter_ccb* oc2 = (ic2 == nullptr) ? he2->outer_ccb() : nullptr;
DFace* f2 = (ic2 != nullptr) ? ic2->face() : oc2->face();
CGAL_postcondition((ic1 != ic2) || (f1 == f2));
}
#endif
@ -3337,10 +3337,10 @@ _split_edge(DHalfedge* e, DVertex* v,
// Get the split halfedge and its twin, its source and target.
DHalfedge* he1 = e;
DHalfedge* he2 = he1->opposite();
DInner_ccb* ic1 = (he1->is_on_inner_ccb()) ? he1->inner_ccb() : NULL;
DOuter_ccb* oc1 = (ic1 == NULL) ? he1->outer_ccb() : NULL;
DInner_ccb* ic2 = (he2->is_on_inner_ccb()) ? he2->inner_ccb() : NULL;
DOuter_ccb* oc2 = (ic2 == NULL) ? he2->outer_ccb() : NULL;
DInner_ccb* ic1 = (he1->is_on_inner_ccb()) ? he1->inner_ccb() : nullptr;
DOuter_ccb* oc1 = (ic1 == nullptr) ? he1->outer_ccb() : nullptr;
DInner_ccb* ic2 = (he2->is_on_inner_ccb()) ? he2->inner_ccb() : nullptr;
DOuter_ccb* oc2 = (ic2 == nullptr) ? he2->outer_ccb() : nullptr;
// Notify the observers that we are about to split an edge.
_notify_before_split_edge(Halfedge_handle(e), Vertex_handle(v), cv1, cv2);
@ -3370,7 +3370,7 @@ _split_edge(DHalfedge* e, DVertex* v,
// he1 and he2 form an "antenna", so he4 becomes he3's successor.
he3->set_next(he4);
if (oc1 != NULL)
if (oc1 != nullptr)
he3->set_outer_ccb(oc1);
else
he3->set_inner_ccb(ic1);
@ -3379,7 +3379,7 @@ _split_edge(DHalfedge* e, DVertex* v,
he4->set_vertex(v);
he4->set_next(he2);
if (oc2 != NULL)
if (oc2 != nullptr)
he4->set_outer_ccb(oc2);
else
he4->set_inner_ccb(ic2);
@ -3472,8 +3472,8 @@ _compute_indices(Arr_parameter_space ps_x_curr, Arr_parameter_space ps_y_curr,
// Precondition The OutputIterator must be a back inserter.
// Precondition The traveresed ccb is an inner ccb; thus, it cannot be
// on an open boundary.
// Postcondition If NULL is a local minimum, it is inserted first.
// No other local minima can be NULL.
// Postcondition If nullptr is a local minimum, it is inserted first.
// No other local minima can be nullptr.
template <typename GeomTraits, typename TopTraits>
template <typename OutputIterator>
std::pair<Sign, Sign>
@ -3553,7 +3553,7 @@ _compute_signs_and_local_minima(const DHalfedge* he_to,
if ((cv_dir == ARR_RIGHT_TO_LEFT) &&
(he_away->direction() == ARR_LEFT_TO_RIGHT)) {
const DHalfedge* null_he = NULL;
const DHalfedge* null_he = nullptr;
*local_mins_it++ = std::make_pair(null_he, x_index);
}
@ -3712,7 +3712,7 @@ _compute_signs_and_min(const DHalfedge* he_anchor,
int& index_min) const
{
// Initialize
const DHalfedge* he_min = NULL;
const DHalfedge* he_min = nullptr;
ps_x_min = ARR_INTERIOR;
ps_y_min = ARR_INTERIOR;
index_min = 0;
@ -3795,7 +3795,7 @@ _compute_signs_and_min(const DHalfedge* he_anchor,
// Test the halfedge incident to the leftmost vertex.
// Note that we may visit the same vertex several times.
if ((he_min == NULL) ||
if ((he_min == nullptr) ||
(index_curr < index_min) ||
((index_curr == index_min) &&
((he_curr->vertex() != he_min->vertex()) &&
@ -4023,9 +4023,9 @@ _defines_outer_ccb_of_new_face(const DHalfedge* he_to,
int index_min = lm_it->second;
const DHalfedge* he_min = lm_it->first;
const DVertex* v_min =
(he_min == NULL) ? he_away->opposite()->vertex() : he_min->vertex();
(he_min == nullptr) ? he_away->opposite()->vertex() : he_min->vertex();
const X_monotone_curve_2* cv_min =
(he_min == NULL) ? &cv : &(he_min->curve());
(he_min == nullptr) ? &cv : &(he_min->curve());
Arr_parameter_space ps_x_min = parameter_space_in_x(*cv_min, ARR_MIN_END);
Arr_parameter_space ps_y_min = parameter_space_in_y(*cv_min, ARR_MIN_END);
@ -4077,7 +4077,7 @@ _defines_outer_ccb_of_new_face(const DHalfedge* he_to,
}
}
CGAL_assertion(v_min != NULL);
CGAL_assertion(v_min != nullptr);
CGAL_assertion(!v_min->has_null_point());
#if CGAL_ARRANGEMENT_ON_SURFACE_INSERT_VERBOSE
@ -4086,7 +4086,7 @@ _defines_outer_ccb_of_new_face(const DHalfedge* he_to,
if (he_min)
std::cout << he_min->opposite()->vertex()->point()
<< " => " << he_min->vertex()->point();
else std::cout << "NULL";
else std::cout << "nullptr";
std::cout << std::endl;
#endif
@ -4096,7 +4096,7 @@ _defines_outer_ccb_of_new_face(const DHalfedge* he_to,
// to the right of the leftmost vertex. We compare them to the right of this
// point to determine whether he_to (the curve) and he_away are incident to
// the hole to be created or not.
const X_monotone_curve_2& cv_next = (he_min == NULL) ?
const X_monotone_curve_2& cv_next = (he_min == nullptr) ?
he_away->curve() : ((he_min == he_to) ? cv : he_min->next()->curve());
return _is_above(*cv_min, cv_next, v_min->point(), ps_y_min,
Top_or_bottom_sides_category());
@ -4202,12 +4202,12 @@ _remove_edge(DHalfedge* e, bool remove_source, bool remove_target)
// belong to and their incident faces.
DHalfedge* he1 = e;
DHalfedge* he2 = e->opposite();
DInner_ccb* ic1 = (he1->is_on_inner_ccb()) ? he1->inner_ccb() : NULL;
DOuter_ccb* oc1 = (ic1 == NULL) ? he1->outer_ccb() : NULL;
DFace* f1 = (oc1 != NULL) ? oc1->face() : ic1->face();
DInner_ccb* ic2 = (he2->is_on_inner_ccb()) ? he2->inner_ccb() : NULL;
DOuter_ccb* oc2 = (ic2 == NULL) ? he2->outer_ccb() : NULL;
DFace* f2 = (oc2 != NULL) ? oc2->face() : ic2->face();
DInner_ccb* ic1 = (he1->is_on_inner_ccb()) ? he1->inner_ccb() : nullptr;
DOuter_ccb* oc1 = (ic1 == nullptr) ? he1->outer_ccb() : nullptr;
DFace* f1 = (oc1 != nullptr) ? oc1->face() : ic1->face();
DInner_ccb* ic2 = (he2->is_on_inner_ccb()) ? he2->inner_ccb() : nullptr;
DOuter_ccb* oc2 = (ic2 == nullptr) ? he2->outer_ccb() : nullptr;
DFace* f2 = (oc2 != nullptr) ? oc2->face() : ic2->face();
#if CGAL_ARRANGEMENT_ON_SURFACE_INSERT_VERBOSE
#if 0
@ -4419,8 +4419,8 @@ _remove_edge(DHalfedge* e, bool remove_source, bool remove_target)
#endif
// Now the real removal starts.
DHalfedge* prev1 = NULL;
DHalfedge* prev2 = NULL;
DHalfedge* prev1 = nullptr;
DHalfedge* prev2 = nullptr;
// Notify the observers that we are about to remove an edge.
Halfedge_handle hh(e);
@ -4432,7 +4432,7 @@ _remove_edge(DHalfedge* e, bool remove_source, bool remove_target)
if (f1 == f2) {
// Check whether the two halfedges are successors along the face boundary.
if ((he1->next() == he2) && (he2->next() == he1)) {
CGAL_assertion((ic1 != NULL) && (ic1 == ic2));
CGAL_assertion((ic1 != nullptr) && (ic1 == ic2));
// The two halfedges form a "singleton" hole inside the incident face
// (case 1 of the removal procedure, as detailed in the design document),
@ -4463,7 +4463,7 @@ _remove_edge(DHalfedge* e, bool remove_source, bool remove_target)
if ((v1->parameter_space_in_x() != ARR_INTERIOR) ||
(v1->parameter_space_in_y() != ARR_INTERIOR))
{
v1->set_halfedge(NULL); // disconnect the end vertex
v1->set_halfedge(nullptr); // disconnect the end vertex
_remove_vertex_if_redundant(v1, f1);
}
else {
@ -4485,7 +4485,7 @@ _remove_edge(DHalfedge* e, bool remove_source, bool remove_target)
if ((v2->parameter_space_in_x() != ARR_INTERIOR) ||
(v2->parameter_space_in_y() != ARR_INTERIOR))
{
v2->set_halfedge(NULL); // disconnect the end vertex
v2->set_halfedge(nullptr); // disconnect the end vertex
_remove_vertex_if_redundant(v2, f1);
}
else {
@ -4533,10 +4533,10 @@ _remove_edge(DHalfedge* e, bool remove_source, bool remove_target)
// In case the halfedges to be deleted are represantatives of their
// CCB (note that noth should belong to the same CCB, be it an outer
// CCB or an inner one), make prev1 the components representative.
if ((oc1 != NULL) &&
if ((oc1 != nullptr) &&
((oc1->halfedge() == he1) || (oc1->halfedge() == he2)))
oc1->set_halfedge(prev1);
else if ((ic1 != NULL) &&
else if ((ic1 != nullptr) &&
((ic1->halfedge() == he1) || (ic1->halfedge() == he2)))
ic1->set_halfedge(prev1);
@ -4565,7 +4565,7 @@ _remove_edge(DHalfedge* e, bool remove_source, bool remove_target)
if ((v1->parameter_space_in_x() != ARR_INTERIOR) ||
(v1->parameter_space_in_y() != ARR_INTERIOR))
{
v1->set_halfedge(NULL); // disconnect the end vertex
v1->set_halfedge(nullptr); // disconnect the end vertex
_remove_vertex_if_redundant(v1, f1);
}
else {
@ -4598,7 +4598,7 @@ _remove_edge(DHalfedge* e, bool remove_source, bool remove_target)
prev1 = he1->prev();
prev2 = he2->prev();
if ((ic1 != NULL) && (ic1 == ic2)) {
if ((ic1 != nullptr) && (ic1 == ic2)) {
// If both halfedges lie on the same inner component (hole) inside the
// face (case 3.1), we have to split this component into two holes.
@ -4639,7 +4639,7 @@ _remove_edge(DHalfedge* e, bool remove_source, bool remove_target)
}
else if (oc1 != oc2) {
// RWRW: NEW!
CGAL_assertion((oc1 != NULL) && (oc2 != NULL));
CGAL_assertion((oc1 != nullptr) && (oc2 != nullptr));
// In case both halfegdes he1 and he2 are incident to the same face
// but lie on different outer CCBs of this face, removing this pair of
@ -4665,7 +4665,7 @@ _remove_edge(DHalfedge* e, bool remove_source, bool remove_target)
add_inner_ccb = true;
}
else {
CGAL_assertion((oc1 != NULL) && (oc1 == oc2));
CGAL_assertion((oc1 != nullptr) && (oc1 == oc2));
// If both halfedges are incident to the same outer CCB of their
// face (case 3.2), we have to distinguish two sub-cases:
@ -4851,9 +4851,9 @@ _remove_edge(DHalfedge* e, bool remove_source, bool remove_target)
prev1 = he1->prev();
prev2 = he2->prev();
CGAL_assertion((ic1 == NULL) || (ic2 == NULL));
CGAL_assertion((ic1 == nullptr) || (ic2 == nullptr));
if ((ic1 == NULL) && (ic2 == NULL)) {
if ((ic1 == nullptr) && (ic2 == nullptr)) {
bool add_inner_ccb = false;
// Comment EFEF 2013-05-31: if we ever find the need to use signs1 and
@ -5017,15 +5017,15 @@ _remove_edge(DHalfedge* e, bool remove_source, bool remove_target)
// inside it (case 3.3). We first make sure that f1 contains the hole f2, so
// we can merge f2 with it (we swap roles between the halfedges if
// necessary).
if (ic2 != NULL) {
if (ic2 != nullptr) {
he1 = he2;
he2 = he1->opposite();
ic1 = ic2;
ic2 = NULL;
ic2 = nullptr;
oc2 = oc1;
oc1 = NULL;
oc1 = nullptr;
DFace* tf = f1;
f1 = f2;
@ -5139,7 +5139,7 @@ _remove_vertex_if_redundant(DVertex* v, DFace* f)
// In case the vertex has no incident halfedges, remove it if it is
// redundant. Otherwise, make it an isolated vertex.
if (v->halfedge() == NULL) {
if (v->halfedge() == nullptr) {
if (m_topol_traits.is_redundant(v)) {
// Remove the vertex and notify the observers on doing so.
_notify_before_remove_vertex(Vertex_handle(v));

View File

@ -106,7 +106,7 @@ void Arrangement_zone_2<Arrangement, ZoneVisitor>::compute_zone()
const Halfedge_const_handle* hh;
const Face_const_handle* fh;
if ((vh = object_cast<Vertex_const_handle>(&m_obj)) != NULL) {
if ((vh = object_cast<Vertex_const_handle>(&m_obj)) != nullptr) {
CGAL_assertion(m_has_left_pt);
// The left endpoint coincides with an existing vertex:
@ -128,7 +128,7 @@ void Arrangement_zone_2<Arrangement, ZoneVisitor>::compute_zone()
#endif
}
else if ((hh = object_cast<Halfedge_const_handle>(&m_obj)) != NULL) {
else if ((hh = object_cast<Halfedge_const_handle>(&m_obj)) != nullptr) {
if (m_has_left_pt) {
// Obtain the right halfedge from the halfedge-pair containing m_left_pt
// in their interior.
@ -171,7 +171,7 @@ void Arrangement_zone_2<Arrangement, ZoneVisitor>::compute_zone()
// The left endpoint lies inside a face.
fh = object_cast<Face_const_handle>(&m_obj);
CGAL_assertion_msg(fh != NULL,
CGAL_assertion_msg(fh != nullptr,
"Invalid object returned by the point-location query.");
// Compute the zone of the curve at the interior of the face.
@ -843,7 +843,7 @@ _compute_next_intersection(Halfedge_handle he,
// valid, as they lie to its right.
valid_intersection = true;
}
else if (ip != NULL) {
else if (ip != nullptr) {
if (m_has_right_pt && m_right_on_boundary &&
m_geom_traits->equal_2_object()(ip->first, m_right_pt))
{
@ -861,7 +861,7 @@ _compute_next_intersection(Halfedge_handle he,
else {
// We have an overlapping subcurve.
icv = object_cast<X_monotone_curve_2>(&(inter_list.front()));
CGAL_assertion(icv != NULL);
CGAL_assertion(icv != nullptr);
if (m_geom_traits->is_closed_2_object()(*icv, ARR_MIN_END)) {
// The curve has a valid left point - make sure it lies to the
@ -905,7 +905,7 @@ _compute_next_intersection(Halfedge_handle he,
// Compare that current object with m_left_pt (if exists).
ip = object_cast<Intersect_point_2>(&(inter_list.front()));
if (ip != NULL) {
if (ip != nullptr) {
// We have a simple intersection point - if we don't have to skip it,
// make sure it lies to the right of m_left_pt (if m_left_pt is on the
// left boundary, all points lie to it right).
@ -930,7 +930,7 @@ _compute_next_intersection(Halfedge_handle he,
else {
// We have an overlapping subcurve.
icv = object_cast<X_monotone_curve_2>(&(inter_list.front()));
CGAL_assertion(icv != NULL);
CGAL_assertion(icv != nullptr);
if (m_geom_traits->is_closed_2_object()(*icv, ARR_MIN_END)) {
// The curve has a valid left point - make sure it lies to the
@ -1122,7 +1122,7 @@ _leftmost_intersection(Ccb_halfedge_circulator he_curr, bool on_boundary,
// We have found an intersection (either a simple point or an
// overlapping x-monotone curve).
const Intersect_point_2* int_p = object_cast<Intersect_point_2>(&iobj);
if (int_p != NULL) {
if (int_p != nullptr) {
Point_2 ip = int_p->first;
// Found a simple intersection point. Check if it is the leftmost
@ -1144,7 +1144,7 @@ _leftmost_intersection(Ccb_halfedge_circulator he_curr, bool on_boundary,
// We have located an overlapping curve. Assign ip as its left
// endpoint.
const X_monotone_curve_2* icv = object_cast<X_monotone_curve_2>(&iobj);
CGAL_assertion(icv != NULL);
CGAL_assertion(icv != nullptr);
Point_2 ip = min_vertex(*icv);
// Check if this endpoint it is the leftmost intersection point so far.
@ -1301,7 +1301,7 @@ _zone_in_face(Face_handle face, bool on_boundary)
m_cv = m_sub_cv2;
}
const X_monotone_curve_2*p_orig_curve = NULL;
const X_monotone_curve_2*p_orig_curve = nullptr;
if (! m_found_iso_vert) {
// Check whether m_intersect_p coincides with one of the end-vertices of the
@ -1364,8 +1364,8 @@ _zone_in_face(Face_handle face, bool on_boundary)
// subcurves that result from splitting m_intersect_he->curve() at the
// intersection point we have just detected, one extends to the left
// and one to the right of this split point.
const X_monotone_curve_2* p_left_subcurve = NULL;
const X_monotone_curve_2* p_right_subcurve = NULL;
const X_monotone_curve_2* p_left_subcurve = nullptr;
const X_monotone_curve_2* p_right_subcurve = nullptr;
if (inserted_he->next()->direction() == ARR_LEFT_TO_RIGHT) {
// The next halfedge extends to the right of the split point:

View File

@ -247,7 +247,7 @@ public:
typedef Face_neighbor_iterator Incident_edge_iterator;
/*! Default constructor. */
Dual_arrangement_on_surface() : p_arr(NULL) {}
Dual_arrangement_on_surface() : p_arr(nullptr) {}
/*! Constructor from an arrangement. */
Dual_arrangement_on_surface(const Arrangement& arr) :

View File

@ -165,7 +165,7 @@ protected:
const Topology_traits* m_topol_traits;
public:
_Is_concrete_vertex() : m_topol_traits(NULL) {}
_Is_concrete_vertex() : m_topol_traits(nullptr) {}
_Is_concrete_vertex(const Topology_traits* topol_traits) :
m_topol_traits(topol_traits)
@ -173,7 +173,7 @@ protected:
bool operator()(const DVertex& v) const
{
if (m_topol_traits == NULL)
if (m_topol_traits == nullptr)
return true;
return (m_topol_traits->is_concrete_vertex(&v));
@ -188,7 +188,7 @@ protected:
const Topology_traits* m_topol_traits;
public:
_Is_valid_vertex() : m_topol_traits(NULL) {}
_Is_valid_vertex() : m_topol_traits(nullptr) {}
_Is_valid_vertex(const Topology_traits* topol_traits) :
m_topol_traits(topol_traits)
@ -196,7 +196,7 @@ protected:
bool operator()(const DVertex& v) const
{
if (m_topol_traits == NULL)
if (m_topol_traits == nullptr)
return true;
return (m_topol_traits->is_valid_vertex(&v));
@ -211,7 +211,7 @@ protected:
const Topology_traits* m_topol_traits;
public:
_Is_valid_halfedge() : m_topol_traits(NULL) {}
_Is_valid_halfedge() : m_topol_traits(nullptr) {}
_Is_valid_halfedge(const Topology_traits* topol_traits) :
m_topol_traits(topol_traits)
@ -219,7 +219,7 @@ protected:
bool operator()(const DHalfedge& he) const
{
if (m_topol_traits == NULL)
if (m_topol_traits == nullptr)
return true;
return (m_topol_traits->is_valid_halfedge(&he));
@ -234,7 +234,7 @@ protected:
const Topology_traits* m_topol_traits;
public:
_Is_valid_face() : m_topol_traits(NULL) {}
_Is_valid_face() : m_topol_traits(nullptr) {}
_Is_valid_face(const Topology_traits* topol_traits) :
m_topol_traits(topol_traits)
@ -242,7 +242,7 @@ protected:
bool operator()(const DFace& f) const
{
if (m_topol_traits == NULL)
if (m_topol_traits == nullptr)
return true;
return (m_topol_traits->is_valid_face(&f));
@ -257,7 +257,7 @@ protected:
const Topology_traits* m_topol_traits;
public:
_Is_unbounded_face() : m_topol_traits(NULL) {}
_Is_unbounded_face() : m_topol_traits(nullptr) {}
_Is_unbounded_face(const Topology_traits* topol_traits) :
m_topol_traits(topol_traits)
@ -587,7 +587,7 @@ public:
const DHalfedge* he_curr = he_first;
Size n = 0;
if (he_curr != NULL) {
if (he_curr != nullptr) {
do {
++n;
he_curr = he_curr->next()->opposite();
@ -1777,7 +1777,7 @@ protected:
* \return A pointer to a halfedge whose target is v, where cv should be
* inserted between this halfedge and the next halfedge around this
* vertex (in a clockwise order).
* A NULL return value indicates a precondition violation.
* A nullptr return value indicates a precondition violation.
*/
DHalfedge* _locate_around_vertex(DVertex* v, const X_monotone_curve_2& cv,
Arr_curve_end ind) const;
@ -2031,7 +2031,7 @@ protected:
* \param bx The boundary condition at the x-coordinate.
* \param by The boundary condition at the y-coordinate.
* \param p_pred Output: The predecessor halfedge around this vertex
* (may be NULL, if no such halfedge exists).
* (may be nullptr, if no such halfedge exists).
* \return The vertex that corresponds to the curve end.
*/
DVertex* _place_and_set_curve_end(DFace* f,

View File

@ -186,7 +186,7 @@ public:
m_invalid_he()
{
m_geom_traits = static_cast<const Traits_adaptor_2*>(arr.geometry_traits());
CGAL_assertion(visitor != NULL);
CGAL_assertion(visitor != nullptr);
// Initialize the visitor.
visitor->init(&arr);

View File

@ -960,9 +960,9 @@ public:
CGAL_CKvA_2_GRAB_CK_FUNCTOR_FOR_ARC(Compare_x_at_limit_2,
compare_x_at_limit_2)
// compare with NULL, in order to avoid a performance warning with VC++
// compare with nullptr, in order to avoid a performance warning with VC++
CGAL_precondition(Kernel_arc_2_equals_Arc_2 ||
dynamic_cast< const Kernel_arc_2* >(this) != NULL);
dynamic_cast< const Kernel_arc_2* >(this) != nullptr);
return compare_x_at_limit_2(
p, *dynamic_cast< const Kernel_arc_2* >(this), ce
);
@ -990,7 +990,7 @@ public:
CGAL_CKvA_2_GRAB_CK_FUNCTOR_FOR_ARC(Compare_x_at_limit_2,
compare_x_at_limit_2)
CGAL_precondition(Kernel_arc_2_equals_Arc_2 ||
dynamic_cast< const Kernel_arc_2* >(this) != NULL);
dynamic_cast< const Kernel_arc_2* >(this) != nullptr);
return compare_x_at_limit_2(
*dynamic_cast< const Kernel_arc_2* >(this), ce1, cv2, ce2
);
@ -1017,7 +1017,7 @@ public:
CGAL_CKvA_2_GRAB_CK_FUNCTOR_FOR_ARC(Compare_x_near_limit_2,
compare_x_near_limit_2)
CGAL_precondition(Kernel_arc_2_equals_Arc_2 ||
dynamic_cast< const Kernel_arc_2* >(this) != NULL);
dynamic_cast< const Kernel_arc_2* >(this) != nullptr);
return compare_x_near_limit_2(
p, *dynamic_cast< const Kernel_arc_2* >(this), ce
);
@ -1043,7 +1043,7 @@ public:
CGAL_CKvA_2_GRAB_CK_FUNCTOR_FOR_ARC(Compare_x_near_limit_2,
compare_x_near_limit_2)
CGAL_precondition(Kernel_arc_2_equals_Arc_2 ||
dynamic_cast< const Kernel_arc_2* >(this) != NULL);
dynamic_cast< const Kernel_arc_2* >(this) != nullptr);
return compare_x_near_limit_2(*dynamic_cast< const Kernel_arc_2* >(this), cv2, ce);
}
@ -1068,7 +1068,7 @@ public:
CGAL_CKvA_2_GRAB_CK_FUNCTOR_FOR_ARC(Compare_y_near_boundary_2,
compare_y_near_boundary_2)
CGAL_precondition(Kernel_arc_2_equals_Arc_2 ||
dynamic_cast< const Kernel_arc_2* >(this) != NULL);
dynamic_cast< const Kernel_arc_2* >(this) != nullptr);
return compare_y_near_boundary_2(
*dynamic_cast< const Kernel_arc_2* >(this), cv2, ce
);
@ -1090,7 +1090,7 @@ public:
CGAL_CKvA_2_GRAB_CK_FUNCTOR_FOR_ARC(Compare_y_at_x_2,
compare_y_at_x_2)
CGAL_precondition(Kernel_arc_2_equals_Arc_2 ||
dynamic_cast< const Kernel_arc_2* >(this) != NULL);
dynamic_cast< const Kernel_arc_2* >(this) != nullptr);
return compare_y_at_x_2(p, *dynamic_cast< const Kernel_arc_2* >(this));
}
@ -1116,7 +1116,7 @@ public:
CGAL_CKvA_2_GRAB_CK_FUNCTOR_FOR_ARC(Compare_y_at_x_left_2,
compare_y_at_x_left_2)
CGAL_precondition(Kernel_arc_2_equals_Arc_2 ||
dynamic_cast< const Kernel_arc_2* >(this) != NULL);
dynamic_cast< const Kernel_arc_2* >(this) != nullptr);
return compare_y_at_x_left_2(
*dynamic_cast< const Kernel_arc_2* >(this), cv2, p
);
@ -1144,7 +1144,7 @@ public:
CGAL_CKvA_2_GRAB_CK_FUNCTOR_FOR_ARC(Compare_y_at_x_right_2,
compare_y_at_x_right_2)
CGAL_precondition(Kernel_arc_2_equals_Arc_2 ||
dynamic_cast< const Kernel_arc_2* >(this) != NULL);
dynamic_cast< const Kernel_arc_2* >(this) != nullptr);
return compare_y_at_x_right_2(
*dynamic_cast< const Kernel_arc_2* >(this), cv2, p
);
@ -1161,18 +1161,18 @@ public:
* \return \c true, if p.x() is in x-range of arc, \c false otherwise
*/
bool is_in_x_range(const Coordinate_1& x,
bool *eq_min = NULL, bool *eq_max = NULL) const {
bool *eq_min = nullptr, bool *eq_max = nullptr) const {
if (eq_min != NULL && eq_max != NULL) {
if (eq_min != nullptr && eq_max != nullptr) {
*eq_min = *eq_max = false;
}
if (is_vertical()) {
if (x == this->x()) {
if (eq_min != NULL) {
if (eq_min != nullptr) {
*eq_min = true;
}
if (eq_max != NULL) {
if (eq_max != nullptr) {
*eq_max = true;
}
return true;
@ -1191,7 +1191,7 @@ public:
if (min_has_x) {
resmin = Curved_kernel_via_analysis_2::instance().
kernel().compare_1_object()(x, _minpoint().x());
if (eq_min != NULL) { // TODO asymptotic end in x-range?
if (eq_min != nullptr) { // TODO asymptotic end in x-range?
*eq_min = (resmin == CGAL::EQUAL);
}
}
@ -1206,7 +1206,7 @@ public:
if (max_has_x) {
resmax = Curved_kernel_via_analysis_2::instance().
kernel().compare_1_object()(x, _maxpoint().x());
if (eq_max != NULL) { // TODO asymptotic end in x-range?
if (eq_max != nullptr) { // TODO asymptotic end in x-range?
*eq_max = (resmax == CGAL::EQUAL);
}
}
@ -1246,7 +1246,7 @@ public:
equal_2)
CGAL_precondition(Kernel_arc_2_equals_Arc_2 ||
dynamic_cast< const Kernel_arc_2* >(this) != NULL);
dynamic_cast< const Kernel_arc_2* >(this) != nullptr);
return equal_2(*dynamic_cast< const Kernel_arc_2* >(this), cv2);
}
@ -1262,7 +1262,7 @@ public:
CGAL_CKvA_2_GRAB_CK_FUNCTOR_FOR_ARC(Do_overlap_2,
do_overlap_2)
CGAL_precondition(Kernel_arc_2_equals_Arc_2 ||
dynamic_cast< const Kernel_arc_2* >(this) != NULL);
dynamic_cast< const Kernel_arc_2* >(this) != nullptr);
return do_overlap_2(*dynamic_cast< const Kernel_arc_2* >(this), cv2);
}
@ -1345,7 +1345,7 @@ public:
intersect_2)
CGAL_precondition(Kernel_arc_2_equals_Arc_2 ||
dynamic_cast< const Kernel_arc_2* >(this) != NULL);
dynamic_cast< const Kernel_arc_2* >(this) != nullptr);
return intersect_2(
*dynamic_cast< const Kernel_arc_2* >(this), cv2, oi
);
@ -1449,7 +1449,7 @@ public:
CGAL_CKvA_2_GRAB_CK_FUNCTOR_FOR_ARC(Trim_2, trim_2)
CGAL_precondition(Kernel_arc_2_equals_Arc_2 ||
dynamic_cast< const Kernel_arc_2* >(this) != NULL);
dynamic_cast< const Kernel_arc_2* >(this) != nullptr);
return trim_2(*dynamic_cast< const Kernel_arc_2* >(this), p, q);
}
@ -1467,7 +1467,7 @@ public:
CGAL_CKvA_2_GRAB_CK_FUNCTOR_FOR_ARC(Split_2,
split_2)
CGAL_precondition(Kernel_arc_2_equals_Arc_2 ||
dynamic_cast< const Kernel_arc_2* >(this) != NULL);
dynamic_cast< const Kernel_arc_2* >(this) != nullptr);
split_2(*dynamic_cast< const Kernel_arc_2* >(this), p, s1, s2);
}
@ -1483,7 +1483,7 @@ public:
CGAL_CKvA_2_GRAB_CK_FUNCTOR_FOR_ARC(Are_mergeable_2,
are_mergeable_2)
CGAL_precondition(Kernel_arc_2_equals_Arc_2 ||
dynamic_cast< const Kernel_arc_2* >(this) != NULL);
dynamic_cast< const Kernel_arc_2* >(this) != nullptr);
return are_mergeable_2(
*dynamic_cast< const Kernel_arc_2* >(this), cv2
);
@ -1503,7 +1503,7 @@ public:
CGAL_CKvA_2_GRAB_CK_FUNCTOR_FOR_ARC(Merge_2, merge_2)
Kernel_arc_2 tmp;
CGAL_precondition(Kernel_arc_2_equals_Arc_2 ||
dynamic_cast< const Kernel_arc_2* >(this) != NULL);
dynamic_cast< const Kernel_arc_2* >(this) != nullptr);
merge_2(*dynamic_cast< const Kernel_arc_2* >(this), cv2, tmp);
return tmp;
}
@ -1653,7 +1653,7 @@ public:
Kernel_arc_2& trimmed2) const {
CGAL_precondition(Kernel_arc_2_equals_Arc_2 ||
dynamic_cast< const Kernel_arc_2* >(this) != NULL);
dynamic_cast< const Kernel_arc_2* >(this) != nullptr);
const Kernel_arc_2& cv1 = static_cast< const Kernel_arc_2& >(*this);
@ -1956,7 +1956,7 @@ protected:
CGAL_precondition(!is_on_bottom_top(where));
CGAL_assertion(Kernel_arc_2_equals_Arc_2 ||
dynamic_cast< const Kernel_arc_2*>(this) != NULL);
dynamic_cast< const Kernel_arc_2*>(this) != nullptr);
Kernel_arc_2::simplify(*dynamic_cast< const Kernel_arc_2*>(this), cv2);
if(curve().is_identical(cv2.curve()))
return CGAL::sign(arcno() - cv2.arcno());

View File

@ -262,8 +262,8 @@ public:
class Allocator >
inline void draw(const Arc_2& arc,
Container< std::vector< Coord_2 >, Allocator >& pts,
boost::optional< Coord_2 > *end_pt1 = NULL,
boost::optional< Coord_2 > *end_pt2 = NULL) {
boost::optional< Coord_2 > *end_pt1 = nullptr,
boost::optional< Coord_2 > *end_pt2 = nullptr) {
#ifndef CGAL_CKVA_DUMMY_RENDERER
Bbox_2 bbox;

View File

@ -93,7 +93,7 @@ public:
Curved_kernel_via_analysis_2_functor_base(
Curved_kernel_via_analysis_2 *kernel) :
_m_curved_kernel(kernel) {
CGAL_precondition(kernel != NULL);
CGAL_precondition(kernel != nullptr);
}
//!@}

View File

@ -108,7 +108,7 @@ struct Make_x_monotone_2 :
*/
Make_x_monotone_2(Curved_kernel_via_analysis_2 *kernel) :
_m_curved_kernel(kernel) {
CGAL_assertion(kernel != NULL);
CGAL_assertion(kernel != nullptr);
}
//!@}

View File

@ -504,7 +504,7 @@ public:
CGAL_CKvA_2_GRAB_CK_FUNCTOR_FOR_POINT(Compare_x_2, compare_x_2)
CGAL_precondition(Kernel_point_2_equals_Point_2 ||
dynamic_cast< const Kernel_point_2* >(this) != NULL);
dynamic_cast< const Kernel_point_2* >(this) != nullptr);
return compare_x_2(*dynamic_cast< const Kernel_point_2* >(this), q);
}
@ -527,7 +527,7 @@ public:
CGAL_CKvA_2_GRAB_CK_FUNCTOR_FOR_POINT(Compare_xy_2, compare_xy_2)
CGAL_precondition(Kernel_point_2_equals_Point_2 ||
dynamic_cast< const Kernel_point_2* >(this) != NULL);
dynamic_cast< const Kernel_point_2* >(this) != nullptr);
return compare_xy_2(
*dynamic_cast< const Kernel_point_2* >(this), q, equal_x
);
@ -547,7 +547,7 @@ public:
CGAL_CKvA_2_GRAB_CK_FUNCTOR_FOR_POINT(Is_on_2, is_on_2)
CGAL_precondition(Kernel_point_2_equals_Point_2 ||
dynamic_cast< const Kernel_point_2* >(this) != NULL);
dynamic_cast< const Kernel_point_2* >(this) != nullptr);
return is_on_2(*dynamic_cast< const Kernel_point_2* >(this), curve);
}

View File

@ -66,7 +66,7 @@ public:
//! standard constructor
Compare_xy_2(SweepCurvesAdapter_2 *adapter) :
_m_adapter(adapter) {
CGAL_assertion(adapter != NULL);
CGAL_assertion(adapter != nullptr);
}
result_type operator()(const Point_2& p1, const Point_2& p2) const {
@ -170,7 +170,7 @@ public:
//! standard constructor
Less_xy_2(SweepCurvesAdapter_2 *adapter) :
_m_adapter(adapter) {
CGAL_assertion(adapter != NULL);
CGAL_assertion(adapter != nullptr);
}
/*!
@ -196,7 +196,7 @@ public:
//! standard constructor
Compare_y_at_x_2(SweepCurvesAdapter_2 *adapter) :
_m_adapter(adapter) {
CGAL_assertion(adapter != NULL);
CGAL_assertion(adapter != nullptr);
}
result_type operator()(const Arc_2& cv, const Point_2& p) const {
@ -322,7 +322,7 @@ public:
//! standard constructor
Equal_y_at_x_2(SweepCurvesAdapter_2 *adapter) :
_m_adapter(adapter) {
CGAL_assertion(adapter != NULL);
CGAL_assertion(adapter != nullptr);
}
/*!
@ -425,7 +425,7 @@ public:
//! standard constructor
Source_2(SweepCurvesAdapter_2 *adapter) :
_m_adapter(adapter) {
CGAL_assertion(adapter != NULL);
CGAL_assertion(adapter != nullptr);
}
/*!
@ -452,7 +452,7 @@ public:
//! standard constructor
Target_2(SweepCurvesAdapter_2 *adapter) :
_m_adapter(adapter) {
CGAL_assertion(adapter != NULL);
CGAL_assertion(adapter != nullptr);
}
/*!
@ -548,7 +548,7 @@ public:
//! standard constructor
New_endpoints_2(SweepCurvesAdapter_2 *adapter) :
_m_adapter(adapter) {
CGAL_assertion(adapter != NULL);
CGAL_assertion(adapter != nullptr);
}
/*!\brief
@ -646,7 +646,7 @@ public:
//! standard constructor
Intersect_right_of_point_2(SweepCurvesAdapter_2 *adapter) :
_m_adapter(adapter) {
CGAL_assertion(adapter != NULL);
CGAL_assertion(adapter != nullptr);
}
/*!\brief
@ -699,7 +699,7 @@ public:
//! standard constructor
Make_x_monotone_2(SweepCurvesAdapter_2 *adapter) :
_m_adapter(adapter) {
CGAL_assertion(adapter != NULL);
CGAL_assertion(adapter != nullptr);
}
/*!

View File

@ -288,7 +288,7 @@ public:
//! \brief returns the drawing window and resolution
void get_setup_parameters(CGAL::Bbox_2 *pbox, int& res_w_,
int& res_h_) const {
if(pbox != NULL)
if(pbox != nullptr)
*pbox = engine.window;
res_w_ = engine.res_w;
res_h_ = engine.res_h;
@ -332,7 +332,7 @@ private:
//! computes pixel coordinates from rational point
void get_pixel_coords(const Rational& x, const Rational& y,
Pixel_2& pix, Rational *ppix_x=NULL, Rational *ppix_y=NULL)
Pixel_2& pix, Rational *ppix_x=nullptr, Rational *ppix_y=nullptr)
{
Rational p_x = (x - engine.x_min_r) / engine.pixel_w_r,
p_y = (y - engine.y_min_r) / engine.pixel_h_r;
@ -344,7 +344,7 @@ private:
pix.x = static_cast<int>(std::floor(CGAL::to_double(p_x)));
pix.y = static_cast<int>(std::floor(CGAL::to_double(p_y)));
if(ppix_x != NULL && ppix_y != NULL) {
if(ppix_x != nullptr && ppix_y != nullptr) {
*ppix_x = p_x;
*ppix_y = p_y;
}
@ -428,8 +428,8 @@ template < class Coord_2, template < class, class > class Container,
class Allocator >
void draw(const Arc_2& arc,
Container< std::vector< Coord_2 >, Allocator >& points,
boost::optional< Coord_2 > *end_pt1 = NULL,
boost::optional< Coord_2 > *end_pt2 = NULL) {
boost::optional< Coord_2 > *end_pt1 = nullptr,
boost::optional< Coord_2 > *end_pt2 = nullptr) {
#ifdef CGAL_CKVA_CR_TIMING
refine_timer.start();
@ -616,7 +616,7 @@ void draw(const Arc_2& arc,
#endif
#ifdef CGAL_CKVA_RENDER_WITH_REFINEMENT
if(end_pt1 != NULL && loc_p1 == CGAL::ARR_INTERIOR &&
if(end_pt1 != nullptr && loc_p1 == CGAL::ARR_INTERIOR &&
(clip_src || y_lower < engine.y_min_r || y_lower > engine.y_max_r)) {
y_lower0 = (clip_src ?
get_endpoint_y(arc, lower0, CGAL::ARR_MIN_END, false,
@ -626,7 +626,7 @@ void draw(const Arc_2& arc,
*end_pt1 = Coord_2(CGAL::to_double(lower0),
CGAL::to_double(y_lower0));
}
if(end_pt2 != NULL && loc_p2 == CGAL::ARR_INTERIOR &&
if(end_pt2 != nullptr && loc_p2 == CGAL::ARR_INTERIOR &&
(clip_tgt || y_upper < engine.y_min_r || y_upper > engine.y_max_r)) {
y_upper0 = (clip_tgt ?
get_endpoint_y(arc, upper0, CGAL::ARR_MAX_END, false,
@ -650,9 +650,9 @@ void draw(const Arc_2& arc,
get_pixel_coords(upper, y_upper, pix_2);
#ifndef CGAL_CKVA_RENDER_WITH_REFINEMENT
if(end_pt1 != NULL)
if(end_pt1 != nullptr)
*end_pt1 = Coord_2(pix_1.x, pix_1.y);
if(end_pt2 != NULL)
if(end_pt2 != nullptr)
*end_pt2 = Coord_2(pix_2.x, pix_2.y);
#endif

View File

@ -321,11 +321,11 @@ public:
//! \brief evalutates a polynomial at certain x-coordinate
static NT evaluate(const Poly_1& poly, const NT& x,
bool *error_bounds_ = NULL)
bool *error_bounds_ = nullptr)
{
typename Renderer_traits::Extract_eval extract;
int n = poly.degree()+1, m = (n-1)>>1, odd = n&1;
if(error_bounds_ != NULL)
if(error_bounds_ != nullptr)
*error_bounds_ = false;
if(n == 1)
return extract(poly.lcoeff(), error_bounds_);
@ -479,7 +479,7 @@ bool setup(const CGAL::Bbox_2& box_, int res_w_, int res_h_)
pixel_w = (x_max - x_min) / res_w;
pixel_h = (y_max - y_min) / res_h;
//srand(time(NULL));
//srand(time(nullptr));
// from 0.1 to 0.5
double rmin = 0.1, rmax = 0.5;
NT sx = pixel_w * static_cast<NT>(rmin +

View File

@ -223,8 +223,8 @@ struct Curve_renderer_traits_base
typedef Coeff result_type;
Coeff operator()(const Coeff& x,
bool *error_bounds = NULL) const {
if(error_bounds != NULL)
bool *error_bounds = nullptr) const {
if(error_bounds != nullptr)
*error_bounds = false;
return x;
}
@ -309,13 +309,13 @@ struct Curve_renderer_traits<CGAL::Interval_nt<true>, CORE::BigRat > :
typedef Float result_type;
Float operator()(const Coeff& x,
bool *error_bounds = NULL) const {
bool *error_bounds = nullptr) const {
bool err_bnd;
// err_bnd = (CGAL_ABS(l) < 1E-15 || CGAL_ABS(u) < 1E-15) ||
// ((l <= 0 && u >= 0));
Float l = x.inf(), u = x.sup(), mid = (l+u)/2;
err_bnd = ((l < 0 && u > 0)||(l == 0 && u == 0));
if(error_bounds != NULL)
if(error_bounds != nullptr)
*error_bounds = err_bnd;
//! ATTENTION!!! if smth is screwed up try to uncomment the line below
//! this is very crucial for performance & stability
@ -456,13 +456,13 @@ struct Curve_renderer_traits<CGAL::Interval_nt<true>, leda::rational > :
typedef Float result_type;
Float operator()(const Coeff& x,
bool *error_bounds = NULL) const {
bool *error_bounds = nullptr) const {
bool err_bnd;
// err_bnd = (CGAL_ABS(l) < 1E-15 || CGAL_ABS(u) < 1E-15) ||
// ((l <= 0 && u >= 0));
Float l = x.inf(), u = x.sup(), mid = (l+u)/2;
err_bnd = ((l < 0 && u > 0)||(l == 0 && u == 0));
if(error_bounds != NULL)
if(error_bounds != nullptr)
*error_bounds = err_bnd;
//! ATTENTION!!! if smth is screwed up try to uncomment the line below
//! this is very crucial for performance & stability

View File

@ -243,7 +243,7 @@ private:
template <class NT, class Algebraic_curve_2_>
void Subdivision_2<NT, Algebraic_curve_2_>::draw(QPainter *painter_)
{
if(!initialized||!polynomial_set||painter_==NULL)
if(!initialized||!polynomial_set||painter_==nullptr)
return;
painter = painter_;
//std::cout << " P(x(y)): " << coeffs_x << std::endl;

View File

@ -76,19 +76,19 @@ public:
/*! Default constructor.*/
Arr_text_formatter():
m_out(NULL),
m_in(NULL)
m_out(nullptr),
m_in(nullptr)
{}
/*! Construct an output formatter. */
Arr_text_formatter(std::ostream& os) :
m_out(&os),
m_in(NULL)
m_in(nullptr)
{}
/*! Construct an input formatter. */
Arr_text_formatter(std::istream& is) :
m_out(NULL),
m_out(nullptr),
m_in(&is)
{}
@ -111,14 +111,14 @@ public:
/*! Get the output stream. */
inline std::ostream& out()
{
CGAL_assertion(m_out != NULL);
CGAL_assertion(m_out != nullptr);
return (*m_out);
}
/*! Get the input stream. */
inline std::istream& in()
{
CGAL_assertion(m_in != NULL);
CGAL_assertion(m_in != nullptr);
return (*m_in);
}
@ -128,7 +128,7 @@ public:
/*! Write a begin-arrangement comment. */
void write_arrangement_begin()
{
CGAL_assertion(m_out != NULL);
CGAL_assertion(m_out != nullptr);
m_old_out_mode = get_mode(*m_out);
set_ascii_mode(*m_out);
_write_comment("BEGIN ARRANGEMENT");
@ -285,7 +285,7 @@ public:
/*! Start reading an arrangement. */
void read_arrangement_begin()
{
CGAL_assertion(m_in != NULL);
CGAL_assertion(m_in != nullptr);
m_old_in_mode = get_mode(*m_in);
set_ascii_mode(*m_in);
_skip_comments();
@ -299,7 +299,7 @@ public:
}
/*! Read a size value (with a label comment line before it). */
Size read_size(const char* /* title */ = NULL)
Size read_size(const char* /* title */ = nullptr)
{
std::size_t val;
@ -448,7 +448,7 @@ protected:
/*! Skip until end of line. */
void _skip_until_EOL()
{
CGAL_assertion(m_in != NULL);
CGAL_assertion(m_in != nullptr);
int c;
while ((c = m_in->get()) != EOF && c != '\n') {};
@ -457,7 +457,7 @@ protected:
/*! Skip comment lines. */
void _skip_comments()
{
CGAL_assertion(m_in != NULL);
CGAL_assertion(m_in != nullptr);
int c = m_in->get();
if (c == ' ')

View File

@ -124,7 +124,7 @@ namespace CGAL {
formatter.read_vertices_end();
// Read the DCEL halfedges and store them in the halfedges vector.
DHalfedge* he = NULL;
DHalfedge* he = nullptr;
formatter.read_edges_begin();
m_halfedges.resize(number_of_halfedges);
@ -179,7 +179,7 @@ namespace CGAL {
else
{
// Allocate a vertex at infinity.
new_v = m_arr_access.new_vertex(NULL, ps_x, ps_y);
new_v = m_arr_access.new_vertex(nullptr, ps_x, ps_y);
}
formatter.read_vertex_end();
@ -213,7 +213,7 @@ namespace CGAL {
else
{
// Allocate a new fictitious edge.
new_he = m_arr_access.new_edge(NULL);
new_he = m_arr_access.new_edge(nullptr);
}
// Set the cross pointers between the twin halfedges and the end vertices.
@ -276,7 +276,7 @@ namespace CGAL {
// Read the current outer CCB.
n = formatter.read_size("halfedges_on_outer_ccb");
he = _read_ccb(formatter, n, new_occb, NULL);
he = _read_ccb(formatter, n, new_occb, nullptr);
new_f->add_outer_ccb(new_occb, he);
}
formatter.read_outer_ccbs_end();
@ -293,7 +293,7 @@ namespace CGAL {
// Read the current inner CCB.
n = formatter.read_size("halfedges_on_inner_ccb");
he = _read_ccb(formatter, n, NULL, new_iccb);
he = _read_ccb(formatter, n, nullptr, new_iccb);
new_f->add_inner_ccb(new_iccb, he);
}
formatter.read_inner_ccbs_end();
@ -331,7 +331,7 @@ namespace CGAL {
* \param boundary_size The number of halfedges along the boundary.
* \param p_outer The outer CCB.
* \param p_inner The inner CCB.
* \pre p_outer is valid and p_inner is NULL, or vice versa.
* \pre p_outer is valid and p_inner is nullptr, or vice versa.
* \return A pointer to the first halfedge read.
*/
template <class Formatter>
@ -340,8 +340,8 @@ namespace CGAL {
DOuter_ccb* p_outer,
DInner_ccb* p_inner)
{
CGAL_assertion((p_outer != NULL && p_inner == NULL) ||
(p_outer == NULL && p_inner != NULL));
CGAL_assertion((p_outer != nullptr && p_inner == nullptr) ||
(p_outer == nullptr && p_inner != nullptr));
formatter.read_ccb_halfedges_begin();
@ -349,7 +349,7 @@ namespace CGAL {
std::size_t first_idx = formatter.read_halfedge_index();
DHalfedge* first_he = m_halfedges [first_idx];
if (p_outer != NULL)
if (p_outer != nullptr)
first_he->set_outer_ccb(p_outer);
else
first_he->set_inner_ccb(p_inner);
@ -369,7 +369,7 @@ namespace CGAL {
prev_he->set_next(curr_he);
// Set the CCB.
if (p_outer != NULL)
if (p_outer != nullptr)
curr_he->set_outer_ccb(p_outer);
else
curr_he->set_inner_ccb(p_inner);

View File

@ -91,7 +91,7 @@ namespace CGAL {
/*! Constructor. */
Arrangement_2_writer(const Arrangement_2& arr) :
m_arr(arr),
m_dcel(NULL),
m_dcel(nullptr),
m_curr_v(0),
m_curr_he(0)
{
@ -328,7 +328,7 @@ namespace CGAL {
/*! Get the number of edges along a given CCB. */
std::size_t _circulator_size(const DHalfedge* ccb) const
{
CGAL_assertion(ccb != NULL);
CGAL_assertion(ccb != nullptr);
std::size_t n = 0;
const DHalfedge* curr = ccb;

View File

@ -1128,7 +1128,7 @@ public:
{
CGAL_precondition (_ofile.is_open());
if (text == NULL || strlen(text) == 0)
if (text == nullptr || strlen(text) == 0)
return;
_write_text (pos,

View File

@ -116,7 +116,7 @@ template <typename Hlpr, typename Vis>
bool Arr_insertion_ss_visitor<Hlpr, Vis>::
is_split_event(Subcurve* sc, Event* event)
{
if (sc->last_curve().halfedge_handle() == Halfedge_handle(NULL)) return false;
if (sc->last_curve().halfedge_handle() == Halfedge_handle(nullptr)) return false;
if (! sc->originating_subcurve1())
return (sc->left_event() != this->current_event());

View File

@ -127,7 +127,7 @@ public:
// X_monotone_curve_2
for(; oi != oi_end; ++oi) {
base_overlap_cv = object_cast<Base_x_monotone_curve_2>(&(*oi));
if (base_overlap_cv != NULL) {
if (base_overlap_cv != nullptr) {
// Add halfedge handles to the resulting curve.
Halfedge_handle he;
@ -144,7 +144,7 @@ public:
intersect_p =
object_cast<std::pair<Base_point_2, unsigned int> >(&(*oi));
CGAL_assertion (intersect_p != NULL);
CGAL_assertion (intersect_p != nullptr);
*oi = make_object(std::make_pair(Point_2(intersect_p->first),
intersect_p->second));

View File

@ -457,19 +457,19 @@ after_handle_event(Event* event, Status_line_iterator iter, bool flag)
// point, we update the top fictitious halfedges for all subcurves incident
// to this event.
Event_subcurve_reverse_iterator rev_iter = event->right_curves_rbegin();
Subcurve* sc_above = NULL;
Subcurve* sc_above = nullptr;
if (iter != this->status_line_end())
sc_above = (*iter);
if (sc_above == NULL) {
if (sc_above == nullptr) {
if (rev_iter != event->right_curves_rend()) {
if ((*rev_iter)->color() == Gt2::BLUE)
(*rev_iter)->set_red_top_face(m_overlay_helper.red_top_face());
else if ((*rev_iter)->color() == Gt2::RED)
(*rev_iter)->set_blue_top_face(m_overlay_helper.blue_top_face());
(*rev_iter)->set_subcurve_above(NULL);
(*rev_iter)->set_subcurve_above(nullptr);
sc_above = *rev_iter;
++rev_iter;
}
@ -484,7 +484,7 @@ after_handle_event(Event* event, Status_line_iterator iter, bool flag)
if (! curr_sc->has_same_color(sc_above))
curr_sc->set_subcurve_above(sc_above);
else {
if (sc_above->subcurve_above() != NULL)
if (sc_above->subcurve_above() != nullptr)
curr_sc->set_subcurve_above(sc_above->subcurve_above());
else
curr_sc->set_top_face(sc_above);
@ -771,7 +771,7 @@ insert_at_vertices(const X_monotone_curve_2& cv,
// face. We have to find the identity of this containing blue face.
Subcurve* sc_above = sc->subcurve_above();
red_face = red_he->face();
blue_face = (sc_above != NULL) ?
blue_face = (sc_above != nullptr) ?
sc_above->blue_halfedge_handle()->face() : sc->blue_top_face();
}
else {
@ -781,7 +781,7 @@ insert_at_vertices(const X_monotone_curve_2& cv,
// face. We have to find the identity of this containing red face.
Subcurve* sc_above = sc->subcurve_above();
blue_face = blue_he->face();
red_face = (sc_above != NULL) ?
red_face = (sc_above != nullptr) ?
sc_above->red_halfedge_handle()->face() : sc->red_top_face();
}
@ -835,7 +835,7 @@ insert_isolated_vertex(const Point_2& pt,
// sufficient to go at most two steps up.
// There is nothing above the vertex - use the current red top face.
Subcurve* sc_above = *iter;
if (sc_above == NULL) {
if (sc_above == nullptr) {
red_face = m_overlay_helper.red_top_face();
}
else {
@ -844,7 +844,7 @@ insert_isolated_vertex(const Point_2& pt,
}
else {
sc_above = sc_above->subcurve_above();
red_face = (sc_above != NULL) ?
red_face = (sc_above != nullptr) ?
sc_above->red_halfedge_handle()->face() :
m_overlay_helper.red_top_face();
}
@ -871,7 +871,7 @@ insert_isolated_vertex(const Point_2& pt,
// sufficient to go at most two steps up.
// If we do not find a blue halfedge, we use the current red top face.
Subcurve* sc_above = *iter;
if (sc_above == NULL) {
if (sc_above == nullptr) {
blue_face = m_overlay_helper.blue_top_face();
}
else {
@ -880,7 +880,7 @@ insert_isolated_vertex(const Point_2& pt,
}
else {
sc_above = sc_above->subcurve_above();
blue_face = (sc_above != NULL) ?
blue_face = (sc_above != nullptr) ?
sc_above->blue_halfedge_handle()->face() :
m_overlay_helper.blue_top_face();
}
@ -991,20 +991,20 @@ _create_vertex(Event* event,
(event->parameter_space_in_y() != ARR_INTERIOR))
{
if (!red_handle) {
CGAL_assertion(blue_handle != NULL);
CGAL_assertion(blue_handle != nullptr);
// Obtain the red face by looking for a subcurve above.
const Subcurve* sc_above = sc->subcurve_above();
Face_handle_red red_f = (sc_above != NULL) ?
Face_handle_red red_f = (sc_above != nullptr) ?
sc_above->red_halfedge_handle()->face() : sc->red_top_face();
Handle_info info = std::make_pair(Cell_handle_red(red_f), *blue_handle);
m_vertices_map[new_v] = info;
return;
}
if (!blue_handle) {
CGAL_assertion(red_handle != NULL);
CGAL_assertion(red_handle != nullptr);
// Obtain the blue face by looking for a subcurve above.
const Subcurve* sc_above = sc->subcurve_above();
Face_handle_blue blue_f = (sc_above != NULL) ?
Face_handle_blue blue_f = (sc_above != nullptr) ?
sc_above->blue_halfedge_handle()->face() : sc->blue_top_face();
Handle_info info = std::make_pair(*red_handle, Cell_handle_blue(blue_f));
m_vertices_map[new_v] = info;
@ -1034,10 +1034,10 @@ _create_vertex(Event* event,
// A blue vertex is located inside a red face. Obtain the red face
// by looking for a subcurve above.
const Subcurve* sc_above = sc->subcurve_above();
Face_handle_red red_f = (sc_above != NULL) ?
Face_handle_red red_f = (sc_above != nullptr) ?
sc_above->red_halfedge_handle()->face() : sc->red_top_face();
CGAL_assertion(blue_handle != NULL);
CGAL_assertion(blue_handle != nullptr);
const Vertex_handle_blue& blue_v =
boost::get<Vertex_handle_blue>(*blue_handle);
m_overlay_traits->create_vertex(red_f, blue_v, new_v);
@ -1048,10 +1048,10 @@ _create_vertex(Event* event,
// A red vertex is located inside a blue face. Obtain the blue face
// by looking for a subcurve above.
const Subcurve* sc_above = sc->subcurve_above();
Face_handle_blue blue_f = (sc_above != NULL) ?
Face_handle_blue blue_f = (sc_above != nullptr) ?
sc_above->blue_halfedge_handle()->face() : sc->blue_top_face();
CGAL_assertion(red_handle != NULL);
CGAL_assertion(red_handle != nullptr);
const Vertex_handle_red& red_v =
boost::get<Vertex_handle_red>(*red_handle);
m_overlay_traits->create_vertex(red_v, blue_f, new_v);
@ -1088,7 +1088,7 @@ _create_edge(Subcurve* sc,
// We have a red edge on a blue face.
Halfedge_handle_red red_he = sc->red_halfedge_handle();
Subcurve* sc_above = sc->subcurve_above();
Face_handle_blue blue_f = (sc_above != NULL) ?
Face_handle_blue blue_f = (sc_above != nullptr) ?
sc_above->blue_halfedge_handle()->face() : sc->blue_top_face();
m_overlay_traits->create_edge(red_he, blue_f, new_he);
}
@ -1098,7 +1098,7 @@ _create_edge(Subcurve* sc,
// We have a blue edge on a red face.
Halfedge_handle_blue blue_he = sc->blue_halfedge_handle();
Subcurve* sc_above = sc->subcurve_above();
Face_handle_red red_f = (sc_above != NULL) ?
Face_handle_red red_f = (sc_above != nullptr) ?
sc_above->red_halfedge_handle()->face() : sc->red_top_face();
m_overlay_traits->create_edge(red_f, blue_he, new_he);
}

View File

@ -94,7 +94,7 @@ protected:
union {
const Face_red* red;
const Face_blue* blue;
} m_top_face; // If m_above is NULL, points the top face in
} m_top_face; // If m_above is nullptr, points the top face in
// the arrangement of the opposite color that
// contains the subcurve.
@ -102,14 +102,14 @@ public:
/*! Constructor. */
Arr_overlay_subcurve() :
Base(),
m_above(NULL)
{ m_top_face.red = NULL; }
m_above(nullptr)
{ m_top_face.red = nullptr; }
/*! constructor given a curve. */
Arr_overlay_subcurve(const X_monotone_curve_2& curve) :
Base(curve),
m_above(NULL)
{ m_top_face.red = NULL; }
m_above(nullptr)
{ m_top_face.red = nullptr; }
/*! Get the subcurve lying above above this subcurve in the status line. */
Self* subcurve_above() const { return m_above; }
@ -149,10 +149,10 @@ public:
/*! Copy the top face from the given subcurve. */
void set_top_face(const Self* sc)
{
CGAL_precondition(sc->m_above == NULL);
CGAL_precondition(sc->m_above == nullptr);
// Mark there is no curve above and copy the face pointer.
m_above = NULL;
m_above = nullptr;
m_top_face.red = sc->m_top_face.red;
}
};

View File

@ -314,25 +314,25 @@ public:
void set_blue_cell(const Optional_cell_blue& cell_blue)
{ m_blue_cell = cell_blue; }
/*! Obtain the red cell handle or NULL if it doesn't exist. */
/*! Obtain the red cell handle or nullptr if it doesn't exist. */
const Cell_handle_red* red_cell_handle() const
{ return m_red_cell ? &(*m_red_cell) : NULL; }
{ return m_red_cell ? &(*m_red_cell) : nullptr; }
/*! Obtain the blue cell handle or NULL if it doesn't exist. */
/*! Obtain the blue cell handle or nullptr if it doesn't exist. */
const Cell_handle_blue* blue_cell_handle() const
{ return m_blue_cell ? &(*m_blue_cell) : NULL; }
{ return m_blue_cell ? &(*m_blue_cell) : nullptr; }
/*! Obtain the red vertex handle or NULL if it doesn't exist. */
/*! Obtain the red vertex handle or nullptr if it doesn't exist. */
const Vertex_handle_red* red_vertex_handle() const
{
return m_red_cell ? boost::get<Vertex_handle_red>(&(*m_red_cell)) : NULL;
return m_red_cell ? boost::get<Vertex_handle_red>(&(*m_red_cell)) : nullptr;
}
/*! Obtain the blue vertex handle or NULL if it doesn't exist. */
/*! Obtain the blue vertex handle or nullptr if it doesn't exist. */
const Vertex_handle_blue* blue_vertex_handle() const
{
return
m_blue_cell ? boost::get<Vertex_handle_blue>(&(*m_blue_cell)) : NULL;
m_blue_cell ? boost::get<Vertex_handle_blue>(&(*m_blue_cell)) : nullptr;
}
};
@ -437,7 +437,7 @@ public:
while (oi != oi_end) {
base_ipt = object_cast<std::pair<Base_point_2, unsigned int> >(&(*oi));
if (base_ipt != NULL) {
if (base_ipt != nullptr) {
// We have a red-blue intersection point, so we attach the
// intersecting red and blue halfedges to it.
Optional_cell_red red_cell;
@ -464,7 +464,7 @@ public:
}
else {
overlap_xcv = object_cast<Base_x_monotone_curve_2>(&(*oi));
CGAL_assertion(overlap_xcv != NULL);
CGAL_assertion(overlap_xcv != nullptr);
// We have a red-blue overlap, so we mark the curve accordingly.
Halfedge_handle_red red_he;

View File

@ -116,7 +116,7 @@ For convenience, the type `edge_descriptor` is hashable using the functor `CGAL:
<ul>
<li> The item class used by `CGAL::Linear_cell_complex_for_combinatorial_map` must have both 0-attributes and 2-attributes enabled.</li>
<li> No dart is 1-free, nor 2-free. Holes in a mesh are represented by using the same convention than for `CGAL::Polyhedron_3` and `CGAL::Surface_mesh`: a dart <code>d</code> belongs to a border if the 2-attribute of <code>beta<2>(d)</code> is NULL.</li>
<li> No dart is 1-free, nor 2-free. Holes in a mesh are represented by using the same convention than for `CGAL::Polyhedron_3` and `CGAL::Surface_mesh`: a dart <code>d</code> belongs to a border if the 2-attribute of <code>beta<2>(d)</code> is nullptr.</li>
<li> All darts of the linear cell complexes must be associated with a 2-attribute, except darts that represent holes.</li>

View File

@ -370,12 +370,12 @@ struct Face_filtered_graph
{}
Is_simplex_valid()
:adapter(NULL)
:adapter(nullptr)
{}
template<typename Simplex>
bool operator()(Simplex s)
{
CGAL_assertion(adapter!=NULL);
CGAL_assertion(adapter!=nullptr);
return (adapter->is_in_cc(s));
}
const Self* adapter;

View File

@ -44,11 +44,11 @@ public:
Descriptor descriptor;
Gwdwg_descriptor()
: graph(NULL), descriptor()
: graph(nullptr), descriptor()
{}
Gwdwg_descriptor(Descriptor descriptor)
: graph(NULL), descriptor(descriptor)
: graph(nullptr), descriptor(descriptor)
{}
Gwdwg_descriptor(Descriptor descriptor, Graph& graph)
@ -60,7 +60,7 @@ template<typename Graph,typename Descriptor>
bool operator==(const Gwdwg_descriptor<Graph,Descriptor>& lhs,
const Gwdwg_descriptor<Graph,Descriptor>& rhs)
{
CGAL_assertion( lhs.graph == rhs.graph || rhs.graph==NULL || lhs.graph==NULL);
CGAL_assertion( lhs.graph == rhs.graph || rhs.graph==nullptr || lhs.graph==nullptr);
return lhs.descriptor == rhs.descriptor;
}
@ -75,7 +75,7 @@ template<typename Graph,typename Descriptor>
bool operator<(const Gwdwg_descriptor<Graph,Descriptor>& lhs,
const Gwdwg_descriptor<Graph,Descriptor>& rhs)
{
CGAL_assertion( lhs.graph == rhs.graph || rhs.graph==NULL || lhs.graph==NULL);
CGAL_assertion( lhs.graph == rhs.graph || rhs.graph==nullptr || lhs.graph==nullptr);
return lhs.descriptor < rhs.descriptor;
}
@ -83,7 +83,7 @@ template<typename Graph,typename Descriptor>
bool operator>(const Gwdwg_descriptor<Graph,Descriptor>& lhs,
const Gwdwg_descriptor<Graph,Descriptor>& rhs)
{
CGAL_assertion( lhs.graph == rhs.graph || rhs.graph==NULL || lhs.graph==NULL);
CGAL_assertion( lhs.graph == rhs.graph || rhs.graph==nullptr || lhs.graph==nullptr);
return lhs.descriptor > rhs.descriptor;
}
@ -91,7 +91,7 @@ template<typename Graph,typename Descriptor>
bool operator<=(const Gwdwg_descriptor<Graph,Descriptor>& lhs,
const Gwdwg_descriptor<Graph,Descriptor>& rhs)
{
CGAL_assertion( lhs.graph == rhs.graph || rhs.graph==NULL || lhs.graph==NULL);
CGAL_assertion( lhs.graph == rhs.graph || rhs.graph==nullptr || lhs.graph==nullptr);
return lhs.descriptor <= rhs.descriptor;
}
@ -99,7 +99,7 @@ template<typename Graph,typename Descriptor>
bool operator>=(const Gwdwg_descriptor<Graph,Descriptor>& lhs,
const Gwdwg_descriptor<Graph,Descriptor>& rhs)
{
CGAL_assertion( lhs.graph == rhs.graph || rhs.graph==NULL || lhs.graph==NULL);
CGAL_assertion( lhs.graph == rhs.graph || rhs.graph==nullptr || lhs.graph==nullptr);
return lhs.descriptor >= rhs.descriptor;
}
@ -142,7 +142,7 @@ struct Graph_with_descriptor_with_graph
typedef Gwdwg_descriptor<Graph, typename gt::face_descriptor> face_descriptor;
Graph_with_descriptor_with_graph()
: graph(NULL)
: graph(nullptr)
{}
Graph_with_descriptor_with_graph(Graph& graph)
@ -156,7 +156,7 @@ struct Descriptor2Descriptor: public CGAL::cpp98::unary_function<Graph_descripto
{
Descriptor2Descriptor()
: graph(NULL)
: graph(nullptr)
{}
Descriptor2Descriptor(Graph& graph)
@ -166,7 +166,7 @@ struct Descriptor2Descriptor: public CGAL::cpp98::unary_function<Graph_descripto
Descriptor
operator()(Graph_descriptor gd) const
{
CGAL_assertion(graph!=NULL);
CGAL_assertion(graph!=nullptr);
return Descriptor(gd,*graph);
}
@ -716,7 +716,7 @@ struct Graph_with_descriptor_with_graph_property_map {
PM pm;
Graph_with_descriptor_with_graph_property_map()
: graph(NULL)
: graph(nullptr)
{}
Graph_with_descriptor_with_graph_property_map(const Graph& graph, const PM& pm)
@ -728,7 +728,7 @@ struct Graph_with_descriptor_with_graph_property_map {
reference
get(const Graph_with_descriptor_with_graph_property_map<Graph,PM>& gpm, const Descriptor& d)
{
CGAL_assertion(gpm.graph!=NULL);
CGAL_assertion(gpm.graph!=nullptr);
CGAL_assertion(d.graph == gpm.graph);
return get(gpm.pm, d.descriptor);
}
@ -738,7 +738,7 @@ struct Graph_with_descriptor_with_graph_property_map {
void
put(const Graph_with_descriptor_with_graph_property_map<Graph,PM>& gpm, const Descriptor& d, const value_type& v)
{
CGAL_assertion(gpm.graph!=NULL);
CGAL_assertion(gpm.graph!=nullptr);
CGAL_assertion(d.graph == gpm.graph);
put(gpm.pm, d.descriptor, v);
}
@ -762,7 +762,7 @@ struct Graph_with_descriptor_with_graph_property_map<Graph, PM, boost::lvalue_pr
}
Graph_with_descriptor_with_graph_property_map()
: graph(NULL)
: graph(nullptr)
{}
Graph_with_descriptor_with_graph_property_map(const Graph& graph, const PM& pm)
@ -774,7 +774,7 @@ struct Graph_with_descriptor_with_graph_property_map<Graph, PM, boost::lvalue_pr
reference
get(const Graph_with_descriptor_with_graph_property_map<Graph,PM>& gpm, const Descriptor& d)
{
CGAL_assertion(gpm.graph!=NULL);
CGAL_assertion(gpm.graph!=nullptr);
CGAL_assertion(d.graph == gpm.graph);
return get(gpm.pm, d.descriptor);
}
@ -784,7 +784,7 @@ struct Graph_with_descriptor_with_graph_property_map<Graph, PM, boost::lvalue_pr
void
put(const Graph_with_descriptor_with_graph_property_map<Graph,PM>& gpm, const Descriptor& d, const value_type& v)
{
CGAL_assertion(gpm.graph!=NULL);
CGAL_assertion(gpm.graph!=nullptr);
CGAL_assertion(d.graph == gpm.graph);
put(gpm.pm, d.descriptor, v);
}

View File

@ -97,11 +97,11 @@ void partition_dual_graph(const TriangleMesh& tm,
// partition info for the nodes
idx_t* npart = (idx_t*) calloc(num_vertices(tm), sizeof(idx_t));
CGAL_assertion(npart != NULL);
CGAL_assertion(npart != nullptr);
// partition info for the elements
idx_t* epart = (idx_t*) calloc(num_faces(tm), sizeof(idx_t));
CGAL_assertion(epart != NULL);
CGAL_assertion(epart != nullptr);
// do not support Fortran-style arrays
CGAL_assertion((*options)[METIS_OPTION_NUMBERING] == -1 || // default initialization is '-1'
@ -109,9 +109,9 @@ void partition_dual_graph(const TriangleMesh& tm,
CGAL_assertion_code(int ret =)
METIS_PartMeshDual(&ne, &nn, eptr, eind,
NULL /* elements weights*/, NULL /*elements sizes*/,
nullptr /* elements weights*/, nullptr /*elements sizes*/,
&ncommon, &nparts,
NULL /* partitions weights */,
nullptr /* partitions weights */,
*options,
&objval, epart, npart);

View File

@ -129,11 +129,11 @@ void partition_graph(const TriangleMesh& tm,
// partition info for the nodes
idx_t* npart = (idx_t*) calloc(num_vertices(tm), sizeof(idx_t));
CGAL_assertion(npart != NULL);
CGAL_assertion(npart != nullptr);
// partition info for the elements
idx_t* epart = (idx_t*) calloc(num_faces(tm), sizeof(idx_t));
CGAL_assertion(epart != NULL);
CGAL_assertion(epart != nullptr);
// do not support Fortran-style arrays
CGAL_assertion((*options)[METIS_OPTION_NUMBERING] == -1 || // default initialization is '-1'
@ -141,9 +141,9 @@ void partition_graph(const TriangleMesh& tm,
CGAL_assertion_code(int ret =)
METIS_PartMeshNodal(&ne, &nn, eptr, eind,
NULL /* nodes weights */, NULL /* nodes sizes */,
nullptr /* nodes weights */, nullptr /* nodes sizes */,
&nparts,
NULL /* partitions weights */,
nullptr /* partitions weights */,
*options,
&objval, epart, npart);

Some files were not shown because too many files have changed in this diff Show More