mirror of https://github.com/CGAL/cgal
672 lines
23 KiB
Plaintext
672 lines
23 KiB
Plaintext
9 February 2006 Andreas Fabri
|
|
- The edge iterator now has the iterator category of the underlying container
|
|
|
|
10 September 2005 Sylvain Pion
|
|
- Add missing this-> for g++ 4.1.
|
|
|
|
4 August 2005 Sylvain Pion
|
|
- Add clear().
|
|
- Remove caching and CGAL_POLYGON_2_CACHED.
|
|
|
|
3 August 2005 Sylvain Pion
|
|
- Remove CGAL_CFG_NO_MEMBER_TEMPLATES workarounds.
|
|
- Remove CGAL_CFG_NO_LAZY_INSTANTIATION workarounds.
|
|
- Remove CGAL_POLYGON_2_MOD_ITER, it is probably not needed anymore.
|
|
|
|
============================== CGAL 3.1 ========================
|
|
|
|
19 December 2004 Sylvain Pion
|
|
- Squash warning.
|
|
|
|
19 December 2004 Andreas Fabri
|
|
- Updated file headers in the demos
|
|
|
|
25 September 2004 Sylvain Pion
|
|
- _GLIBCXX_DEBUG fixes : avoid copying default construted iterators,
|
|
by splitting Vertex_data's constructor in an init function which has
|
|
access to Tree's end() iterator, instead of the default constructed one.
|
|
|
|
4 September 2004 Menelaos Karavelas
|
|
- re-wrote author names in copyright notices using 7-bit characters
|
|
|
|
13 August 2004 Andreas Fabri
|
|
- Replaced the \Ipe with an \includegraphics
|
|
|
|
24 June 2004 Sylvain Pion
|
|
- Remove warning with g++ -O2 (and micro-optimisation).
|
|
|
|
22 June 2004 Sylvain Pion
|
|
- Add some "using base::member;" to please g++ 3.4.
|
|
|
|
17 May 2004 Menelaos Karavelas
|
|
- replaced Point by Point_2 in the demo in order to resolve clash with
|
|
the Mac version of Qt
|
|
|
|
26 March 2004 Radu Ursu
|
|
-made doc work with the current implementation of the Manual tools
|
|
|
|
10 February 2004 Radu Ursu
|
|
-Updated headers in examples
|
|
|
|
4.35 (19 Jan 2004) [af]
|
|
- Added bbox_2 functor to the doc, and replaced .bbox() function call by functor
|
|
|
|
4.34 (18 Jan 2004)
|
|
- Rename CGAL_TYPENAME_MSVC_NULL to typename.
|
|
|
|
4.33 (18 Jan 2004)
|
|
- Remove obsolete workaround for CGAL_CFG_NO_ITERATOR_TRAITS.
|
|
|
|
4.32 (1 Dec 2003)
|
|
- Better documentation of the required Compute_area_2.
|
|
|
|
4.31 (1 Dec 2003)
|
|
- Use compute_area_2(3 points) instead of construcing a temporary triangle.
|
|
|
|
4.30 (17 Nov 2003) [lk]
|
|
- Removed CGAL_CFG_NO_SCOPE_MEMBER_FUNCTION_PARAMETERS workaround.
|
|
|
|
=========================== CGAL 3.0 =====================
|
|
|
|
4.29 (22 October 2003) [af]
|
|
- new headers
|
|
|
|
4.28 (30 September 2003) [af]
|
|
- moved \chapter from polygon.tex to main.tex
|
|
|
|
4.27 (23 September 2003) [mh]
|
|
- Added one more missing typename
|
|
|
|
4.26 (22 September)
|
|
- resubmission, just to be sure
|
|
|
|
4.25 (20 September)
|
|
- Added typenames
|
|
|
|
4.24
|
|
- New headers
|
|
|
|
4.23 (17 Sep 2003) [af]
|
|
- Removed Polygon_traits
|
|
|
|
4.22 ( 16 Sep 2003) [af]
|
|
- Added missing typenames
|
|
- deduced point type from the value type of the iterator
|
|
|
|
4.21 ( 16 Sep 2003) [af]
|
|
- Removed dependency on Point_2<R> in Polygon_2_algorithms.h
|
|
|
|
4.20 ( 16 Sep 2003) [af]
|
|
- Removed usage of class Polygon_traits<K>
|
|
|
|
4.19 (10/09/2003) [rursu]
|
|
+ Qt_help_window class is in the CGAL namespace now
|
|
|
|
4.18 (07/09/2003) [rursu]
|
|
+ demo use now the new help class Qt_help_window instead of HelpWindow
|
|
+ demo use the new icon demoicon
|
|
|
|
4.17 (28/06/2003) [rursu]
|
|
+ fixed demo/Polygon/makefile for FreeBSD
|
|
|
|
4.16 (11/06/2003) [af]
|
|
+ Added workaround for SunPro CC which has switched off member templates in the RW STL
|
|
|
|
4.15 (19/05/2003) [ru]
|
|
+ Replaced Leda window demo by the Qt demo
|
|
|
|
4.14 (17 May 2003) [af]
|
|
+ Bug fix in Polygon_2_circulator.h after change in package Circulator
|
|
|
|
4.13 (6 April 2003) [sp]
|
|
+ Another couple of 'this->' and other missing 'std::' for g++ 3.4.
|
|
|
|
4.12 (4 April 2003) [gjg]
|
|
+ Added a few times 'this->' to keep newer compilers happy.
|
|
|
|
4.11 (31 March 2003) [af]
|
|
+ Changed #ifdef _MSC_VER to #ifdef CGAL_CFG_NO_SCOPE_MEMBER_FUNCTION_PARAMETERS
|
|
|
|
4.10 (12 September 2002) [af]
|
|
+ Added "const" to Polygon_2_const_edge_circulator::operator*()
|
|
|
|
4.9 (2 July 2002)
|
|
+ Added fill color support for window
|
|
|
|
4.8.1 (11 April 2002)
|
|
+ Corrected typo in Traits name in Edge_const_iterator
|
|
|
|
4.8 (8 April 2002)
|
|
+ Added operator-> for Edge_const_iterator
|
|
|
|
4.7 (20 March 2002)
|
|
+ Added test for availability of GMP in SimplicityTest.C
|
|
|
|
4.6.4 (15 March 2002)
|
|
+ No changes, but something went wrong during previous submit.
|
|
|
|
4.6.3 (15 March 2002)
|
|
+ Removed a few lines in Polygon_2_algortihms.C that were accidently left in
|
|
during the rewrite to the kernel traits interface.
|
|
|
|
4.6.2 (17 December 2001)
|
|
+ Added a typename to deal with a warning.
|
|
|
|
4.6.1 (13 December 2001)
|
|
+ Small change to please Borland compiler
|
|
|
|
4.6 (6 December 2001)
|
|
+ Added check for identity in assignment and equality operators.
|
|
|
|
4.5.2 (5 December 2001)
|
|
+ Removed some non essential tests from PolygonTest.C. Those tests tested
|
|
standard iterator functionality more than specific polygon functionality.
|
|
|
|
4.5 (30 October 2001)
|
|
+ Susan made a base class for Vertex_data so it can be shared with the
|
|
Vertex_data used in generating random polygons (Generator package)
|
|
+ Susan changed template parameters of some internal class to make
|
|
code sharing easier
|
|
+ Susan made traits classes passed by const-ref
|
|
|
|
4.4 (21 September 2001)
|
|
+ Fixed a bug in the simplicity test.
|
|
|
|
4.3 (10 September 2001)
|
|
+ Fixed bug in polygon area computation.
|
|
|
|
4.2.3 (31 July 2001)
|
|
+ Susan moved Polygon_2_ref directory up one level
|
|
|
|
4.2.2 (27 July 2001)
|
|
+ Susan made minor formatting changes, fixed some undefined references, and
|
|
commented out some headings for empty sections. Added TOC for reference
|
|
pages in intro.tex
|
|
|
|
4.2.2 (27 July 2001)
|
|
+ Susan made changes necessary in doc to do the manual split
|
|
|
|
4.2.1 (16 July 2001)
|
|
+ Added polygon_area_2.tex
|
|
+ Removed test program.
|
|
|
|
4.2 (9 July 2001)
|
|
+ Added random access iterator functionality to Vertex_iterator.
|
|
+ Removed ShoulFailToCompile test program.
|
|
+ Slight modification to AlgorithmTest.C.
|
|
+ Some changes in the documentation.
|
|
|
|
4.1 (4 July 2001)
|
|
+ Renamed second form of area_2 to polygon_area_2 (to fix compiler bug)
|
|
+ Rewrote some documentation.
|
|
+ Introduced a new vertex_circulator class, which should allow
|
|
set, insert and erase by circulator. Alas, gives Internal Compiler Errors
|
|
on MSVC.
|
|
+ Adapted test programs to work with new functionality.
|
|
|
|
4.0.1 (3 July 2001)
|
|
+ Made the caching design safer.
|
|
Caching should be enabled explicitly by setting CGAL_POLYGON_2_CACHED.
|
|
Some compilers will fail to compile with this flag. An extra flag,
|
|
CGAL_POLYGON_2_MOD_ITER will allow to compile at the expense of safety
|
|
|
|
4.0 (2 July 2001)
|
|
+ Made Polygon_2 cache several operations.
|
|
+ Made iterators of Polygon_2 const. -not backwards compatible change
|
|
Effected by flag CGAL_POLYGON_2_CONST_ITER
|
|
+ Added an area_2 algorithm that returns the area (in contrast to taking
|
|
result as ref parameter)
|
|
+ Added and modified test programs.
|
|
|
|
3.3.1 (27 June 2001)
|
|
+ Fixed small problems in examples/Polygon/polygon_algorithms.C
|
|
+ Fixed wrong path in documentation.
|
|
|
|
3.3 (26 June 2001)
|
|
+ Fixed problems with Borland and MSVC compiler.
|
|
+ Added default temp[late argument for Container of Polygon.
|
|
+ Polygon constructors now take a traits parameter.
|
|
+ Added documentation (not complete yet).
|
|
|
|
3.2 (22 June 2001)
|
|
+ Converted further to kernel traits (using Equal_2 and Construct_segment_2)
|
|
+ Added a few missing typenames.
|
|
+ Made a preliminary split of the manual pages (work in progress).
|
|
|
|
3.1 (21 June 2001)
|
|
+ Converted the algorithms to use kernel traits.
|
|
+ Made polygon_traits be the kernel.
|
|
+ Fixed a bug in the is_simple implementation.
|
|
+ Removed two example files (which dealt with polygon traits) and
|
|
adapted the two remaining.
|
|
|
|
3.0 (20 June 2001)
|
|
+ Completely rewrote the is_simple code.
|
|
+ Adapted the demo to work with the new cgal-window package.
|
|
|
|
2.20 (13 February 2001)
|
|
+ New polygon_assertions.h file
|
|
|
|
2.19 (29 September 2000)
|
|
+ Minor change in examples/Custompoint1.C to keep MSVC happy.
|
|
|
|
2.18 (1 September 2000)
|
|
+ Minor bug fix
|
|
|
|
2.17 (31 August 2000)
|
|
+ Moved class Simplicity_test_2 to a separate header file.
|
|
|
|
2.16 (24 August 2000)
|
|
+ Rewrote input operator>> for polygons.
|
|
|
|
//-----------------------------------------------------------------------//
|
|
2.15 (30 June 2000)
|
|
+ Placed abs, is_negative and sign in namespace CGAL_NTS.
|
|
|
|
//-----------------------------------------------------------------------//
|
|
// 2.14 (25 May 2000)
|
|
|
|
+ Fixed edge_compare_consecutive in Polygon_2_algorithms.C with a fix by Susan.
|
|
|
|
//-----------------------------------------------------------------------//
|
|
// 2.13 (3 April 2000)
|
|
+ Fix in Polygon_2_algorithms.C, replacing non standard vector.resize(...)
|
|
by vector.insert(...)
|
|
|
|
//-----------------------------------------------------------------------//
|
|
// 2.12
|
|
|
|
Rewrote example Custompoint1.C. It does not use 'using namespace CGAL'
|
|
anymore. This led to problems with max() being defined twice.
|
|
|
|
//-----------------------------------------------------------------------//
|
|
// 2.11
|
|
|
|
In Polygon_2_algorithms.C:
|
|
Modifications in sweepline algorithm for is_simple:
|
|
+ Made replacing edge by another edge more efficient (using insert with hint).
|
|
+ altered the output during debugging somewhat.
|
|
+ Removed a bug that did not initialise the vector index properly (it did a
|
|
reserve, but used it as if a resize had been done).
|
|
+ Fixed a bug that no intersection check was done for new neighbours after
|
|
erasing an edge.
|
|
+ Made all private members protected.
|
|
+ Renamed some functions.
|
|
|
|
In SimplicityTest.C:
|
|
+ Return value now reflects if the tests went ok.
|
|
+ Added a testfile that detects the second bug mentioned above (erase bug).
|
|
|
|
//-----------------------------------------------------------------------//
|
|
// 2.10
|
|
+ Removed test of old-fashioned stl functionality (value_type,
|
|
iterator_category and distance_type functions) from test.
|
|
+ Removed include file guards.
|
|
|
|
//-----------------------------------------------------------------------//
|
|
// 2.9.1
|
|
+ Added a typename in Polygon_2_algorithms.C
|
|
|
|
//-----------------------------------------------------------------------//
|
|
// 2.9
|
|
+ Demo checks if LEDA is available. If not, it compiles but just gives
|
|
an informative message at runtime.
|
|
+ Adapted template parameter names in CGAL/Polygon_2.C.
|
|
|
|
//-----------------------------------------------------------------------//
|
|
// 2.8.2
|
|
+ Slight change to the documentation.
|
|
|
|
//-----------------------------------------------------------------------//
|
|
// 2.8.1
|
|
+ Added typedef for pointer, reference and const_reference in Polygon.
|
|
+ Renamed some template parameters (reserved names).
|
|
|
|
//-----------------------------------------------------------------------//
|
|
// 2.8
|
|
+Updated demo directory
|
|
- new makefile
|
|
- std:: prefixes
|
|
- display() called for window.
|
|
|
|
//-----------------------------------------------------------------------//
|
|
// 2.7
|
|
+Made some adaptations for compilation under Borland.
|
|
In CGAL/Polygon_2_algorithms.C:
|
|
- used iterator instead of const_iterator for index of
|
|
Simplicity_test_2::SweepStatus.
|
|
- Altered the declaration of area_2 a bit and moved it to the .h file
|
|
(to please MSVC, which doesn't recognise the forward declaration otherwise)
|
|
+Added a typedef of FT to example CustomPoint2.C
|
|
|
|
//-----------------------------------------------------------------------//
|
|
// 2.6
|
|
+Added std:: in several places in the testsuite.
|
|
+Removed constructor that takes a circulator as parameter. MSVC and egcs
|
|
had problems with this one in combination with the copy constructor.
|
|
|
|
//-----------------------------------------------------------------------//
|
|
// 2.5
|
|
+Added constructor that takes a circulator as parameter
|
|
|
|
//-----------------------------------------------------------------------//
|
|
// 2.4.8
|
|
+Added CGAL qualification to Less_xy_2
|
|
+Added std qualification to endl
|
|
|
|
//-----------------------------------------------------------------------//
|
|
// Changes in 2.4.8:
|
|
//-----------------------------------------------------------------------//
|
|
|
|
Some small fixes for getting things out of std (istream, ostream, endl).
|
|
|
|
//-----------------------------------------------------------------------//
|
|
// Changes in 2.4.7:
|
|
//-----------------------------------------------------------------------//
|
|
|
|
Added operator != to Polygon_2_edge_iterator.h
|
|
|
|
//-----------------------------------------------------------------------//
|
|
// Changes in 2.4.6:
|
|
//-----------------------------------------------------------------------//
|
|
|
|
Adapted the documentation.
|
|
|
|
//-----------------------------------------------------------------------//
|
|
// Changes in 2.4.5:
|
|
//-----------------------------------------------------------------------//
|
|
|
|
Incorporated the editorial changes of release 1.2 in the doc.
|
|
|
|
//-----------------------------------------------------------------------//
|
|
// Changes in 2.4.4:
|
|
//-----------------------------------------------------------------------//
|
|
|
|
Removed CGAL prefix in documentation
|
|
|
|
//-----------------------------------------------------------------------//
|
|
// Changes in 2.4:
|
|
//-----------------------------------------------------------------------//
|
|
|
|
Added operator != in Polygon_2_edge_circulator.
|
|
Aded an explicit namespace CGAL in Polygon_traits_2.h.
|
|
|
|
//-----------------------------------------------------------------------//
|
|
// Changes in 2.3:
|
|
//-----------------------------------------------------------------------//
|
|
|
|
Now the examples and demo are also converted to namespace CGAL.
|
|
|
|
//-----------------------------------------------------------------------//
|
|
// Changes from 2.1 to 2.2:
|
|
//-----------------------------------------------------------------------//
|
|
|
|
Further changes to support namespace CGAL.
|
|
|
|
//-----------------------------------------------------------------------//
|
|
// Changes from 2.0 to 2.1:
|
|
//-----------------------------------------------------------------------//
|
|
|
|
New polygon_assertions.h, generated by the new script (CGAL namespace proof).
|
|
Replaced #include <CGAL/std/...> by #include <...>
|
|
Replaced CGAL_STD by std.
|
|
|
|
//-----------------------------------------------------------------------//
|
|
// Changes from 1.13 to 2.0:
|
|
//-----------------------------------------------------------------------//
|
|
|
|
Added support for namespace CGAL in the source and test files.
|
|
Removed distance_type and value_type in Polygon_2_edge_circulator.h.
|
|
|
|
//-----------------------------------------------------------------------//
|
|
// Changes from 1.12 to 1.13:
|
|
//-----------------------------------------------------------------------//
|
|
|
|
Guarded definition of iterator_category
|
|
in include/CGAL/Polygon_2_edge_circulator.h and
|
|
include/CGAL/Polygon_2_edge_iterator.h
|
|
by the flag CGAL_CFG_NO_ITERATOR_TRAITS.
|
|
If iterator_traits are available, this definition
|
|
is not necessary, as it is provided by a template.
|
|
|
|
//-----------------------------------------------------------------------//
|
|
// Changes from 1.9 to 1.10:
|
|
//-----------------------------------------------------------------------//
|
|
|
|
-> renamed transform to CGAL_transform
|
|
-> removed comments ending with '\'
|
|
|
|
// Changes in 1.9
|
|
|
|
-> solved three further typename problems for SGI CC 7.2 in the testsuite.
|
|
|
|
//-----------------------------------------------------------------------//
|
|
// Changes from 1.8 to 1.8a:
|
|
//-----------------------------------------------------------------------//
|
|
|
|
-> solved a typename problem for the SGI CC 7.2 compiler
|
|
|
|
//-----------------------------------------------------------------------//
|
|
// Changes from 1.7 to 1.8:
|
|
//-----------------------------------------------------------------------//
|
|
|
|
-> lines longer than 80 characters were corrected (except for assertions)
|
|
|
|
//-----------------------------------------------------------------------//
|
|
// Changes from 1.6 to 1.7:
|
|
//-----------------------------------------------------------------------//
|
|
|
|
-> some minor modifications to documentation
|
|
-> typedef for value_type added (necessary for back insert iterators)
|
|
|
|
//-----------------------------------------------------------------------//
|
|
// Changes from 1.5 to 1.6:
|
|
//-----------------------------------------------------------------------//
|
|
|
|
To make the polygon code now compile with egcs the following needs
|
|
to be done:
|
|
|
|
1) the flag -ftemplate-depth-NN has to be increased (for example to 25)
|
|
2) the file circulator needs a few adaptations for egcs
|
|
|
|
-> added the keyword typename (for egcs)
|
|
-> moved the edge circulator to a separate file
|
|
-> removed some predicates from the traits class
|
|
-> added a graphical demo program
|
|
-> added polygon assertions/preconditions
|
|
-> updated the documentation
|
|
|
|
//-----------------------------------------------------------------------//
|
|
// Changes from 1.4 to 1.5:
|
|
//-----------------------------------------------------------------------//
|
|
|
|
N.B. This is an intermediary release! The main purpose is to repair
|
|
the errors in the custom points example programs.
|
|
|
|
-> some additional test progams were added (not completely finished)
|
|
-> removed the method append
|
|
-> the method insert(position, first, last) is now only available if a compiler
|
|
supports member templates
|
|
-> the custom point programs now compile on SGI C++ 4.0 and g++ 2.7.2 using
|
|
a new workaround flag CGAL_CFG_NO_TEMPLATE_FUNCTION_MATCHING
|
|
-> I have changed a few predicates in the traits class to make the simplicity
|
|
test more robust
|
|
|
|
//-----------------------------------------------------------------------//
|
|
// Changes from 1.3 to 1.4:
|
|
//-----------------------------------------------------------------------//
|
|
|
|
Removed a bug in the simplicity test. There was an error in the comparison
|
|
of two edges in the following special case:
|
|
|
|
|
|
+
|
|
e1 /
|
|
/
|
|
/
|
|
-----------------+---------+-------------- sweepline
|
|
e2
|
|
|
|
In this case the edge compare function returned
|
|
|
|
EdgeCompare(e1,e2) == true
|
|
EdgeCompare(e2,e1) == true
|
|
|
|
which may lead to inconsistencies in the sweep status.
|
|
|
|
//-----------------------------------------------------------------------//
|
|
// Changes from 1.2 to 1.3:
|
|
//-----------------------------------------------------------------------//
|
|
|
|
I have done result some experiments with defining a traits class with custom
|
|
points. As a result the traits class requirements have been adapted slightly.
|
|
Also some methods from the Polygon_2 class have been removed:
|
|
|
|
- the constructors for Point_2, Segment_2, Triangle_2 and Iso_rectangle_2
|
|
- the transform method
|
|
|
|
Using custom point types
|
|
------------------------
|
|
I have distinguished two ways of defining a custom point:
|
|
|
|
I) deriving from CGAL_Point_2<R>
|
|
II) using your own point type
|
|
|
|
The first way should of course be possible. To make this easy for the user, a
|
|
default traits class with a template parameter Point should be provided.
|
|
I think that the second way should also be possible, but I'm not sure if this
|
|
is the general opinion in CGAL. To enable this, the code may not rely directly
|
|
on CGAL types and CGAL predicates. All these types and predicates must be
|
|
put in the traits class.
|
|
|
|
These were my experiences:
|
|
|
|
1) When I define my own point type, I lose virtually all kernel types
|
|
and predicates. This means that I have to redefine and reimplement
|
|
all types and predicates in the traits class (Vector, Segment,
|
|
do_intersect() etc.).
|
|
It would be nice if I could reuse some of the kernel types and predicates.
|
|
This would have been easier if the kernel was designed like this
|
|
|
|
template <class Point> class Segment_2
|
|
template <class Point> do_intersect(const Segment_2<Point>& p1, const Segment_2<Point>& p2)
|
|
|
|
instead of
|
|
|
|
template <class R> class Segment_2
|
|
template <class R> do_intersect(const Segment_2<R>& p1, const Segment_2<R>& p2)
|
|
|
|
2) If the traits class uses many other types (Iso_rectangle, Aff_transformation_2,
|
|
Triangle_2, CGAL_Bbox_2, ...) then I have to plug in something for these types.
|
|
When I create my own traits class I really don't want to do this.
|
|
|
|
Therefore I decided to remove most of these types (and the corresponding methods)
|
|
from the polygon traits class. Only the really necessary types (Point_2, Vector_2
|
|
and Segment_2) are still present.
|
|
|
|
3) I cannot get it to work for g++ 2.7.2, for two reasons:
|
|
|
|
- the 'lazy instantiation bug' of g++ causes a problems: all methods that require
|
|
a representation type R [like transform(CGAL_Aff_transformation_2<R>&)] cannot
|
|
be used, since the g++ compiler tries to instantiate them
|
|
|
|
- even if all these methods are removed a type unification problem remains
|
|
that I don't know how to solve (this happens also when I derive a point from
|
|
CGAL_Point_2<R>)
|
|
|
|
On SGI C++ 4.0 it compiles without any problems.
|
|
|
|
4) I had to put some extra predicates in the traits class, to make the code
|
|
independent from the CGAL kernel (the predicates 'sign' and 'equal_direction').
|
|
Furthermore I decided to change the predicate
|
|
|
|
do_intersect(const Segment_2&, const Segment_2&)
|
|
|
|
into
|
|
|
|
do_intersect(const Point_2&, const Point_2&, const Point_2&, const Point_2&),
|
|
|
|
to decrease the requirements on the type Segment_2.
|
|
|
|
5) When I use my own point type, I don't want to include <CGAL/Cartesian.h>
|
|
or <CGAL/Homogeneous.h>. This is not possible. The obvious solution
|
|
(#define CGAL_REP_CLASS_DEFINED) doesn't work.
|
|
|
|
Version 1.3 contains two test programs (Polygon1.C and Polygon2.C) with
|
|
custom point types. These programs do not compile with g++ 2.7.2!
|
|
|
|
//-----------------------------------------------------------------------//
|
|
// Changes from 1.1 to 1.2:
|
|
//-----------------------------------------------------------------------//
|
|
|
|
-> <CGAL/config.h> is removed again
|
|
-> some compiler flags are updated
|
|
|
|
//-----------------------------------------------------------------------//
|
|
// Changes from 1.0 to 1.1:
|
|
//-----------------------------------------------------------------------//
|
|
|
|
-> the polygon code is now divided over three files:
|
|
|
|
- Polygon_2.h
|
|
- Polygon_2_edge_iterator.h
|
|
- Polygon_2_algorithms.h
|
|
|
|
-> the following random access methods were added:
|
|
|
|
const Point_2& vertex(int i) const
|
|
Point_2& vertex(int i)
|
|
const Point_2& operator[](int i) const
|
|
Point_2& operator[](int i)
|
|
Segment_2 edge(int i) const
|
|
|
|
These methods are only available for compilers that instantiate
|
|
templates when needed. For example the Gnu g++ 2.7.2 does not comply
|
|
to this.
|
|
|
|
-> a typedef problem for Sun C++ 4.2 is solved
|
|
|
|
-> for the moment a new version of <CGAL/config.h> is added to the
|
|
polygon code; this is needed for the flags CGAL_CFG_NO_MEMBER_TEMPLATES
|
|
and CGAL_CFG_NO_LAZY_INSTANTIATION
|
|
|
|
this file will be removed in the future
|
|
|
|
-> the documentation is not up to date yet!
|
|
|
|
//-----------------------------------------------------------------------//
|
|
// Changes from 0.9 to 1.0:
|
|
//-----------------------------------------------------------------------//
|
|
|
|
-> bug fix in area computation
|
|
-> the method 'append' is now called 'push_back'
|
|
-> the polygon now uses a traits class
|
|
|
|
-> support for Window_stream will be in the next version of Window_stream.h
|
|
The following lines should be added to this file:
|
|
|
|
//-----------------------------------------------------------------------//
|
|
#ifdef CGAL_POLYGON_2_H
|
|
#ifndef CGAL_WINDOW_STREAM_POLYGON_2_H
|
|
#define CGAL_WINDOW_STREAM_POLYGON_2_H
|
|
template < class I, class C >
|
|
CGAL_Window_stream&
|
|
operator<<(CGAL_Window_stream& os,
|
|
const CGAL_Polygon_2<I,C> &P)
|
|
{
|
|
typedef CGAL_Polygon_2<I,C>::Edge_const_circulator Edge_circ;
|
|
Edge_circ edge_circ = P.edges_circulator();
|
|
if ( edge_circ != NULL) {
|
|
Edge_circ end_circ = edge_circ;
|
|
do {
|
|
os << *edge_circ;
|
|
os << (*edge_circ).source();
|
|
++edge_circ;
|
|
} while ( edge_circ != end_circ);
|
|
}
|
|
return os;
|
|
}
|
|
#endif // CGAL_WINDOW_STREAM_POLYGON_2_H
|
|
#endif // CGAL_POLYGON_2_H
|
|
//-----------------------------------------------------------------------//
|