This commit is contained in:
Efi Fogel 2002-12-03 10:04:43 +00:00
parent 1e291e34f3
commit 6e78868de3
7 changed files with 182 additions and 44 deletions

View File

@ -1,5 +1,25 @@
#ifndef CGAL_ARR_CONIC_TRAITS_H
#define CGAL_ARR_CONIC_TRAITS_H
// ======================================================================
//
// Copyright (c) 1999 The CGAL Consortium
//
// This software and related documentation is part of an INTERNAL release
// of the Computational Geometry Algorithms Library (CGAL). It is not
// intended for general use.
//
// ----------------------------------------------------------------------
//
// release : $$
// release_date : $$
//
// file : include/CGAL/Arr_conic_traits_2.h
// package : Arrangement (2.62)
// author(s) : Ron Wein <wein@post.tau.ac.il>
//
// coordinator : Tel-Aviv University (Dan Halperin <halperin@math.tau.ac.il>)
//
// ======================================================================
#ifndef CGAL_ARR_CONIC_TRAITS_2_H
#define CGAL_ARR_CONIC_TRAITS_2_H
#include <CGAL/basic.h>
#include <CGAL/Arr_intersection_tags.h>
@ -559,14 +579,16 @@ class Arr_conic_traits
// c1 is a vertical segment going up:
if (c2_is_left)
{
return ((!curve_is_left) ||
(curve_is_left &&
_curve_compare_at_intersection_left (c2, curve, p) == LARGER));
return
((!curve_is_left) ||
(curve_is_left &&
_curve_compare_at_intersection_left (c2, curve, p) == LARGER));
}
else
{
return (!curve_is_left &&
_curve_compare_at_intersection_right (c2, curve, p) == SMALLER);
return
(!curve_is_left &&
_curve_compare_at_intersection_right (c2, curve, p) == SMALLER);
}
}
else
@ -574,15 +596,17 @@ class Arr_conic_traits
// c1 is a vertical segment going down:
if (c2_is_left)
{
return (curve_is_left &&
_curve_compare_at_intersection_left (c2, curve, p) == LARGER);
return
(curve_is_left &&
_curve_compare_at_intersection_left (c2, curve, p) == LARGER);
}
else
{
return ((curve_is_left) ||
(curve_vertical == 1) ||
(!curve_is_left &&
_curve_compare_at_intersection_right (c2, curve, p) == SMALLER));
return
((curve_is_left) ||
(curve_vertical == 1) ||
(!curve_is_left &&
_curve_compare_at_intersection_right (c2, curve, p) == SMALLER));
}
}
}
@ -606,15 +630,17 @@ class Arr_conic_traits
// c2 is a vertical segment going up:
if (c1_is_left)
{
return (curve_is_left &&
_curve_compare_at_intersection_left (c1, curve, p) == SMALLER);
return
(curve_is_left &&
_curve_compare_at_intersection_left (c1, curve, p) == SMALLER);
}
else
{
return ((curve_is_left) ||
(curve_vertical == -1) ||
(!curve_is_left &&
_curve_compare_at_intersection_right (c1, curve, p) == LARGER));
return
((curve_is_left) ||
(curve_vertical == -1) ||
(!curve_is_left &&
_curve_compare_at_intersection_right (c1, curve, p) == LARGER));
}
}
else
@ -622,15 +648,17 @@ class Arr_conic_traits
// c2 is a vertical segment going down:
if (c1_is_left)
{
return ((!curve_is_left) ||
(curve_vertical == 1) ||
(curve_is_left &&
_curve_compare_at_intersection_left (c1, curve, p) == SMALLER));
return
((!curve_is_left) ||
(curve_vertical == 1) ||
(curve_is_left &&
_curve_compare_at_intersection_left (c1, curve, p) == SMALLER));
}
else
{
return ((!curve_is_left) &&
_curve_compare_at_intersection_right (c1, curve, p) == LARGER);
return
((!curve_is_left) &&
_curve_compare_at_intersection_right (c1, curve, p) == LARGER);
}
}
}
@ -673,16 +701,18 @@ class Arr_conic_traits
if (_curve_compare_at_intersection_left (c1, c2, p) == LARGER)
{
// c1 is above c2:
return (!curve_is_left ||
!(_curve_compare_at_intersection_left (c2, curve, p) == SMALLER &&
_curve_compare_at_intersection_left (c1, curve, p) == LARGER));
return
(!curve_is_left ||
!(_curve_compare_at_intersection_left (c2, curve, p) == SMALLER &&
_curve_compare_at_intersection_left (c1, curve, p) == LARGER));
}
else
{
// c2 is above c1:
return (curve_is_left &&
_curve_compare_at_intersection_left (c1, curve, p) == SMALLER &&
_curve_compare_at_intersection_left (c2, curve, p) == LARGER);
return
(curve_is_left &&
_curve_compare_at_intersection_left (c1, curve, p) == SMALLER &&
_curve_compare_at_intersection_left (c2, curve, p) == LARGER);
}
}
else if (!c1_is_left && !c2_is_left)
@ -694,16 +724,18 @@ class Arr_conic_traits
if (_curve_compare_at_intersection_right (c1, c2, p) == LARGER)
{
// c1 is above c2:
return (!curve_is_left &&
_curve_compare_at_intersection_right (c2, curve, p) == SMALLER &&
_curve_compare_at_intersection_right (c1, curve, p) == LARGER);
return
(!curve_is_left &&
_curve_compare_at_intersection_right (c2, curve, p) == SMALLER &&
_curve_compare_at_intersection_right (c1, curve, p) == LARGER);
}
else
{
// c2 is above c1:
return (curve_is_left ||
!(_curve_compare_at_intersection_right (c1, curve, p) == SMALLER &&
_curve_compare_at_intersection_right (c2, curve, p) == LARGER));
return
(curve_is_left ||
!(_curve_compare_at_intersection_right (c1, curve, p) == SMALLER &&
_curve_compare_at_intersection_right (c2, curve, p) == LARGER));
}
}
else if (c1_is_left && !c2_is_left)

View File

@ -8,11 +8,11 @@
//
// ----------------------------------------------------------------------
//
// release :
// release_date : 1999, October 13
// release : $$
// release_date : $$
//
// file : include/CGAL/Arr_segment_exact_traits.h
// package : arr (1.03)
// package : Arrangement (1.03)
// source :
// revision :
// revision_date :

View File

@ -1,3 +1,23 @@
// ======================================================================
//
// Copyright (c) 1999 The CGAL Consortium
//
// This software and related documentation is part of an INTERNAL release
// of the Computational Geometry Algorithms Library (CGAL). It is not
// intended for general use.
//
// ----------------------------------------------------------------------
//
// release : $$
// release_date : $$
//
// file : include/CGAL/Arrangement_2/Conic_arc_2_eq.h
// package : Arrangement (2.62)
// author(s) : Ron Wein <wein@post.tau.ac.il>
//
// coordinator : Tel-Aviv University (Dan Halperin <halperin@math.tau.ac.il>)
//
// ======================================================================
#ifndef CGAL_CONIC_ARC_2_H
#define CGAL_CONIC_ARC_2_H

View File

@ -1,3 +1,23 @@
// ======================================================================
//
// Copyright (c) 1999 The CGAL Consortium
//
// This software and related documentation is part of an INTERNAL release
// of the Computational Geometry Algorithms Library (CGAL). It is not
// intended for general use.
//
// ----------------------------------------------------------------------
//
// release : $$
// release_date : $$
//
// file : include/CGAL/Arrangement_2/Conic_arc_2_eq.h
// package : Arrangement (2.62)
// author(s) : Ron Wein <wein@post.tau.ac.il>
//
// coordinator : Tel-Aviv University (Dan Halperin <halperin@math.tau.ac.il>)
//
// ======================================================================
#ifndef CGAL_CONIC_ARC_2_EQ_H
#define CGAL_CONIC_ARC_2_EQ_H

View File

@ -1,3 +1,26 @@
// ======================================================================
//
// Copyright (c) 1999 The CGAL Consortium
//
// This software and related documentation is part of an INTERNAL release
// of the Computational Geometry Algorithms Library (CGAL). It is not
// intended for general use.
//
// ----------------------------------------------------------------------
//
// release : $$
// release_date : $$
//
// file : include/CGAL/Arrangement_2/Conic_arc_2_point.h
// package : Arrangement (2.62)
// author(s) : Ron Wein <wein@post.tau.ac.il>
//
// coordinator : Tel-Aviv University (Dan Halperin <halperin@math.tau.ac.il>)
//
// ======================================================================
#ifndef CGAL_CONIC_ARC_2_POINT_H
#define CGAL_CONIC_ARC_2_POINT_H
CGAL_BEGIN_NAMESPACE
template <class R>
@ -466,3 +489,6 @@ private:
};
CGAL_END_NAMESPACE
#endif

View File

@ -1,5 +1,25 @@
#ifndef __Polynom__
#define __Polynom__
// ======================================================================
//
// Copyright (c) 1999 The CGAL Consortium
//
// This software and related documentation is part of an INTERNAL release
// of the Computational Geometry Algorithms Library (CGAL). It is not
// intended for general use.
//
// ----------------------------------------------------------------------
//
// release : $$
// release_date : $$
//
// file : include/CGAL/Arrangement_2/Polynom.h
// package : Arrangement (2.62)
// author(s) : Ron Wein <wein@post.tau.ac.il>
//
// coordinator : Tel-Aviv University (Dan Halperin <halperin@math.tau.ac.il>)
//
// ======================================================================
#ifndef CGAL_POLYNOM_H
#define CGAL_POLYNOM_H
#include <vector>
#include <iostream>

View File

@ -1,5 +1,25 @@
#ifndef __STURM_SEQ__
#define __STURM_SEQ__
// ======================================================================
//
// Copyright (c) 1999 The CGAL Consortium
//
// This software and related documentation is part of an INTERNAL release
// of the Computational Geometry Algorithms Library (CGAL). It is not
// intended for general use.
//
// ----------------------------------------------------------------------
//
// release : $$
// release_date : $$
//
// file : include/CGAL/Arrangement_2/Sturm_seq.h
// package : Arrangement (2.62)
// author(s) : Ron Wein <wein@post.tau.ac.il>
//
// coordinator : Tel-Aviv University (Dan Halperin <halperin@math.tau.ac.il>)
//
// ======================================================================
#ifndef CGAL_STURM_SEQ_H
#define CGAL_STURM_SEQ_H
#include <CGAL/Arrangement_2/Polynom.h>
#include <vector>