cgal/Segment_Delaunay_graph_2/changes.txt

622 lines
26 KiB
Plaintext

25 August 2006: Menelaos Karavelas
- more name changes for variables called "small"
24 August 2006: Menelaos Karavelas
- in Segment_Delaunay_graph_2_impl.h renamed variable small to
sdg_small; created conflict with a macro defined when including
windows.h
10 August 2006: Menelaos Karavelas
- this is the version to be sent to Pulsic.com; added this note so that
I can retrieve the revision number of the package sent.
9 August 2006: Menelaos Karavelas
- added config.h file which defines the macro
CGAL_CFG_NO_OPERATOR_TIMES_FOR_SIGN; this macro is used for
compatibility with CGAL 3.2.1
- added compatibility of svn head with CGAL 3.2.1
2 August 2006: Menelaos Karavelas
- fixed problem created by deletion of files
- added one more operator() in info converter; modified code to use
this new converter
- removed default template parameters from storage traits with info
1 August 2006: Menelaos Karavelas
- changed some file names to match the names of the classes they contain
- removed Point_container.h and Simple_container_wrapper.h; these
files are either unused or no longer needed
- modified storage traits to define const_Point_handle as well;
modified Segment_Delaunay_graph_2 class to take all point handles
from storage traits
31 July 2006: Menelaos Karavelas
- renamed storage traits related file names and classes; modified test
suite and demo according to changes
- added a couple more test data in test suites
- added examples which demonstrates how to add info to sites
- added copyright headers when missing; modified year list in some
copyright headers
- changed storage traits with info to take as first template parameter
the geometric traits instead of the base class
- switched the order of the 2nd and 3rd template parameter in hierarchy
29 July 2006: Menelaos Karavelas
- the bug fix for SunPro CC was missing a CGAL:: qualification
27 July 2006: Menelaos Karavelas
- moved predicate code to SegmentDelaunayGraph_2 namespace
- removed unused code and corresponding files
- fixed demos which were broken due to the recent changes in the
design
26 July 2006: Menelaos Karavelas
- fixed bug in hierarchy: the bug appeared in cases where the
hierarchy was inserting segments at higher levels and there were
overlapping segments
- added support in hierarchy for info.
25 July 2006: Menelaos Karavelas
- added directory new_stuff: currently contains prototype code for
nearest neighbor graph class and some test/example files for the
new design of SDG wrt to keeping track of info
- added/modified files according to new design; the hierarchy does not
work with info yet; some file names need to be changed
21 July 2006: Menelaos Karavelas
- test suite for traits does not involve Filtered_exact any more.
17 July 2006: Menelaos Karavelas
- fixed bug in Segment_Delaunay_graph_vertex_base_with_info_2. Bug spotted
by Laurent Masse-Navette <laurent.masse-navette@pulsic.com>.
10 July 2006: Menelaos Karavelas
- moved .C files to .cpp in test directory
11 June 2006: Menelaos Karavelas
- fixed typos in user manual.
7 June 2006: Menelaos Karavelas
- robustified demos: make use of CORE::Expr for both predicates and
constructions when CORE is available.
27 May 2006: Menelaos Karavelas
- fixed errors created by the move of *.C files to *_impl.h
25 May 2006: Menelaos Karavelas
- moved *.C files to Segment_Delaunay_graph_2/*_impl.h
- removed the check for automatic template inclusion
14 May 2006: Menelaos Karavelas
- fixed bug in undocumented insert method that takes two vertex
handles: the inserted segment was not registered in the input sites
container.
NOTE THAT THIS METHOD DOES NOT BEHAVE CORRECTLY WHEN SEGMENTS ARE
ALLOWED IN UPPER LEVELS OF THE HIERARCHY: THE CURRENT VERSION OF
THIS METHOD FOR THE HIERARCHY ONLY INSERTS AT THE LOWER LEVEL.
2 May 2006: Menelaos Karavelas
- put the Arrangement_type output operator inside a #ifdef-#endif
block to avoid the warning. The macro that enables the output
operator is called:
CGAL_SEGMENT_DELAUNAY_GRAPH_2_ARRANGEMENT_TYPE_OUTPUT_OPERATOR
18 April 2006: Menelaos Karavelas
- fixed bug in CGAL/Segment_Delaunay_graph_2/Arrangement_type_C2.h.
The bug was reported by: Bernhard Kornberger <bkorn@ist.tugraz.at>
Problem: In file CGAL/Segment_Delaunay_graph_2/Arrangement_type_C2.h.
the operator<< for Sdg_arrangement_enum::Arrangement_type is not
only declared but also defined, which is bad, because it is not
template code. This makes that it is in all your compilation units.
Solution (hack): keyword "static" added just before the
definition. It is then still in all compilation units, but with
different mangled names.
9 March 2006: Menelaos Karavelas
- renamed demo files so that they have only lowercase letters in their name
(requested by AF)
- capitalized headings in user manual
- attempt to fix warnings in examples for g++ 3.3.x
- "fixed" code/testsuite when run with a number type that does not
support / and sqrt ("fixed" here means that the code still runs but
operations are no longer exact; the operations that are not exact
are only used for constructions, not for predicates)
8 March 2006: Menelaos Karavelas
- demos now include CGAL/basic.h before testing for Qt; this is essential
due to the recent changes in install_cgal
17 December 2005: Menelaos Karavelas
- attempt to eliminate warning messages in Linux-2.4_g++-3.3.3 platform
- fixed chapter name in doc
15 December 2005: Menelaos Karavelas
- doc: fixed errors in the presentation of some predicate functors
- in Sqrt_extension_1: unary operator+() now return a const reference to
the object instead of a copy
30 November 2005: Menelaos Karavelas
- documentation: rephrased the description of the Oriented_side_2
predicate functor of the segment Delaunay graph traits.
- edge_list.h: removed macro checking that was added for the
transition from the Segment_Voronoi_diagram_2 to the
Segment_Delaunay_graph_2 package.
- moved the edge hash function (to be used for a unique hash map of edges) in
a separate file and in the CGAL:: namespace
27 November 2005: Menelaos Karavelas
- renamed the construct_sdg_vertex_2 related types and methods to
construct_svd_vertex_2 in order to conform with the doc.
- renamed some file macros: they contained SEGMENT_VORONOI_DIAGRAM_2
instead of SEGMENT_DELAUNAY_GRAPH_2
- in Sqrt_extension_{1,2}: replaced some preconditions/assertions +
CGAL_CHECK_PRECONDITIONS macro by CGAL_exactness_{precondition,assertion}
- patched edge_list.h so that it does not conflicts with its old version
in the now obsolete package Segment_Voronoi_diagram_2. The patch should
be removed once the old package is removed from the release.
26 November 2005: Menelaos Karavelas
- user manual has been corrected in order to reflect the change in the
name of the package.
- fixed names in examples in order to reflect the change in the name
of the package.
25 November 2005: Menelaos Karavelas
- changed doc to reflect the change of the name of the package; it
still remains to fix the user manual.
21 November 2005: Menelaos Karavelas
- this is the first version of the Segment_Delaunay_graph_2 package
which is the successor of the Segment_Voronoi_diagram_2 package;
segment Voronoi diagrams in CGAL are now called segment Delaunay graphs
- fixed problem with toolbars under linux. The toolbars stopped being
visible once the menus where added. This has now been fixed.
- added view menu; the user can now choose the background color among
three: white, black, yellow.
20 August 2005: Menelaos Karavelas
- added proper #ifdef's for the various number types (concerning
whether or not they are defined in CGAL) in the test suite of traits
- attempt to fix problem with ambiguous operator<<
6 August 2005: Menelaos Karavelas
- fixed unreachable statement warning produced by pgCC
5 August 2005: Menelaos Karavelas
- fixed bug in test suite occuring when number type is Gmpq and
reading from a file.
2 August 2005: Menelaos Karavelas
- added more testing for removal method
- fixed bug in removal method of hierarchy: the necessary access to
the storage site (and in particular the point handles)
was prohibited in higher levels because the vertex was deleted at
the lower level first
- added circulator in edge list: may be buggy and have to check this
- added a few more print-outs in is_valid of the SVD2 class
- fixed bug when accessing the storage site during the removal (inside
the remove method)
31 July 2005: Menelaos Karavelas
- added explicit cast for enums, in order to support Uncertain<T>
30 July 2005: Menelaos Karavelas
- fixed bug in computation of predicates when filtered exact was used:
some values in the arrays used where unitialized
- fixed "control reaches end of non-void function" warnings in g++ 4.0.0 of
MacOS X Tiger
- added test suite for removal method
- fixed bug in site registration/unregistration. In the case of
non-intersecting segments we had the following problem: if a
segment was inserted intersecting another segment, then the input
site container kept containing a site which did not really exist
- fixed bug in computation of the vertex map created during removal
- added testing for a special case of the incircle test
25 July 2005: Menelaos Karavelas
- fixed numerical bug in computation of vertex map (removal procedure)
22 July 2005: Menelaos Karavelas
- in Simple_container_wrapper: changed return type of find method from
iterator to const_iterator
20 July 2005: Menelaos Karavelas
- added copyright headers in demo files
18 July 2005: Menelaos Karavelas
- prefixed macros with CGAL_
17 July 2005: Menelaos Karavelas
- fixed bug in copy method: the bug was introduced by the change in the
representation of the input sites container from an std::list to an
std::set.
12 July 2005: Menelaos Karavelas
- fixed wrong message for one of the buttons in the file toolbar (demo)
- the segment Voronoi diagram in the demo now inserts segments in the upper
levels as well
- added find and remove methods in the simple container wrapper
- in demo:
* all messages to std::cout are now sent to std::cerr
* added support for site removal
* removed unused code
* input data are saved in files with .cin extension; the full description of
the segment Voronoi diagram is saved in files with .svd extension and
.hsvd extension (the latter is used for the hierarchy).
* added data/ directory with sample input data
- Code:
* moved some methods from .h to .C
* the input sites container is now an std::set instead of an std::list; this
was done because we want to efficiently insert/remove/search elements
* added remove method: works only with sites that are input sites and not
subsegments or points of intersection of inout sites; removal works in
the hierarchy as well; the computation of the vertex map is still unstable
and prone to numerical errors
26 June 2005: Menelaos Karavelas
- doc: added Triangulation_data_structure, Vertex and Face types and tds()
method; also added that the Segment_Voronoi_diagram_2 class is a model of
the DelaunayGraph_2 concept.
- SVD class: Vertex and Face are typedefed from those of the TDS not the
Triangulation_2 class
15 June 2005:
- added layout widget in demos including a label; messages about the actions
taken are now printed on the label.
- added file menu in demos; used for file I/O.
- added about boxes in demos.
- fixed bug in file_{input,output}: the input sites container was not
read/stored at all; now the input sites container is correctly read/written
from/to the files.
13 June 2005: Menelaos Karavelas
- changed messages/captions of the file toolbar of the demo programs for the
segment and polygon Voronoi diagrams
11 June 2005: Menelaos Karavelas
- VC 7.1 and Intel 8.1 in the their implementation of std::set, the types for
iterator and const_iterator are different; this is not the case, however,
for g++ 3.4 or g++ 4.0: in their implementation of std::set, the types for
iterator and const_iterator are the same.
This caused a bug in the file_output method, namely, Point_handle_less_than
was not defined for const_iterators (i.e., const_Point_handle) for VC 7.1
and Intel 8.1, but only for iterators (i.e., Point_handle).
The fix is to define Point_handle_less_than only for const_iterators, since,
according to the C++ standard, iterators are convertible to const_iterators.
5 June 2005: Menelaos Karavelas
- Segment_Voronoi_diagram_2 and Segment_Voronoi_diagram_hierarchy_2: added
methods file_input and file_output that read and write from and to a file.
The data written consists of the sites (expressed through input sites) and
the triangulation data structure; in the case of the hierarchy, the entire
hierarchy is encoded.
- Segment_Voronoi_diagram_2 and Segment_Voronoi_diagram_hierarchy_2: added
operator>> and operator<< that read and write from and to a stream;
the methods file_input and file_output are used to implement the two
operators.
- modified the test suite to test the above mentioned I/O functionality.
- fixed unused variable warnings when NDEBUG is defined
- updated documentation to reflect the newly added I/O functionality.
1 June 2005: Menelaos Karavelas
- examples/svd-voronoi-edges.C: calls to mirror_vertex and mirror_index
made through the faces are now made through the TDS
29 May 2005: Menelaos Karavelas
- calls to mirror_vertex and mirror_index made through the faces are
now made through the TDS
27 May 2005: Menelaos Karavelas
- fixed bug in Filtered_construction class: the Exact_construction was
called with its arguments in the wrong order
21 May 2005: Menelaos Karavelas
- added tds() method that returns the triangulation data structure
19 May 2005: Menelaos Karavelas
- added the types Vertex, Face and Triangulation_data_structure in the
Segment_Voronoi_diagram_2 class; these types should also appear in the
doc of the class
17 May 2005: Menelaos Karavelas
- changed maintainer's email
13 May 2005: Menelaos Karavelas
- added typedefs for result_type, argument_type and Arity in
Svd_degenerate_edge_2 class; the operator() in this class was also made
const
7 March 2005: Menelaos Karavelas
- replaced calls to the vertex handle methods degree() and
incident_{edges,faces}() by calls to the corresponding TDS methods that
take the vertex as argument. This was done in compliance with the latest
changes in the design of the Triangulation_2 software.
18 November 2004 Sylvain Pion
- g++ 3.4.[23] workaround.
4 October 2004: Menelaos Karavelas
- fixed warnings for VC++ IDE mentioned by Andreas (a class was initially
defined as a struct but a specilization of which as a class; now everything
is a class)
22 September 2004: Menelaos Karavelas
- added specializations of the non-filtered traits classes for the
Filtered_kernel
20 September 2004: Menelaos Karavelas
- added missing sites2.cin data file in examples/data directory
- added missing svd-join_split.* files needed for documentation of the
segment Voronoi diagram data structure concept
9 September 2004: Menelaos Karavelas
- added third example (in examples/subdir and in doc) that shows how
to recover the data for the Voronoi edges.
7 September 2004: Menelaos Karavelas
- Documentation & code: replaced Agds_2 by Tds_2
3 September 2004: Menelaos Karavelas
- test_svd_2_et.C: in definition of sqrt for Gmpq, I qualified the calls to
to_double and sqrt by CGAL::
- polygon Voronoi diagram demo: fixed bugs in class
Segment_Voronoi_diagram_vertex_base_with_info_2
- pvd_typedefs.h: replaced SVD_data_structure_2 by AG_data_structure_2
- Square_root_{1,2}: fixes for g++-3.4 (essentially kept the code under
CGAL_USE_ADL_FOR_NT and removed the alternative code)
- documentation: added chapter author
30 August 2004: Menelaos Karavelas
- SVD_kernel_wrapper_2 : removed unused variable (it was creating warnings
on some compilers)
- test_types.h : commented usused variable
28 August 2004: Menelaos Karavelas
- moved split_vertex from Segment_Voronoi_diagram_data_structure_2 to TDS2
- replaced Segment_Voronoi_diagram_data_structure_2 (which is now obsolete)
by Apollonius_graph_data_structure_2 (until a better name is found...)
- documentation: replaced references to the segment Voronoi diagram concept
and model by the ones in the Apollonius graph package
27 August 2004: Menelaos Karavelas
- fixed bug in hierarchy about calling the wrong version of insert_third
20 August 2004: Menelaos Karavelas
- fixed bugs in copy constructor/assignment operator for the segment
Voronoi diagram and segment Voronoi diagram hierarchy classes
- using std::list instead of std::set for the input sites container
- using replaced Triple by boost tuple in Site_rep_2
18 August 2004: Menelaos Karavelas
- updated TODO list
- the input site container now contains handles instead of points: this
reduces memory usage
- the input site container and point container are now sets instead of lists.
I may have to change this and use lists again. The reason for this change
is that sets automatically check whether the inserted item has already been
inserted; with lists one has to do that explicitly and it is very
inefficient.
- made the code a bit more memory efficient: storage sites are created at
the top-most level and are passed throughout the various methods
17 august 2004: Menelaos Karavelas
- changed the API for the storage site classes; changed the classes that
were using them accordingly
- updated the specs to reflect the API changes of the last few days.
14 August 2004: Menelaos Karavelas
- fixed bugs in the demo files that were introduced by the changes of
August 13
13 August 2004: Menelaos Karavelas
***************************************************************
*** Day of the opening ceremony of the Athens Olympic Games ***
***************************************************************
- fixed errors in the doc: Segment_Voronoi_diagram_2 class: some typedefs
where not really typedefs and some other ones where not written correctly
- Segment_Voronoi_diagram_2 class: fixed some typedefs (changes related to
the changes above)
- replaced Are_same_points_2 predicate by Equal_2 according to the spec
- added the type Arrangement_type; this type was in the spec but was
not defined
- added some methods in the simple site classes so that they conform
with the spec; removed some methods not in the spec and modified the code
wherever they were used.
- vertex base class: made some types that were not in the spec privat
12 August 2004: Menelaos Karavelas
- made some more code conforming to the spec
- fixed bugs (due to yesterday's changes) that I forgot to fix
11 August 2004: Menelaos Karavelas
- made code more conforming to the spec
10 August 2004: Menelaos Karavelas
- added examples in user manual
- fixed minor problems in user manual
- added one more example in the examples directory
- made stylistic changes in the svd-filtered-traits.C example
9 August 2004: Menelaos Karavelas
- replaced CGAL::Quadruple by boost::tuples::tuple
- removed opposite_site method (unused) from the site classes
- made changes in ref manual according to Sylvain's 1st review
- fixed reference in user manual + other minor changes
- added all text except examples in the user manual
5 August 2004: Menelaos Karavelas
- added initial revision for the user manual
4 August 2004: Menelaos Karavelas
- fixed references in reference manual
- fixed problem with .eps extensions in the .tex files
- added images in PDF format for the PDF version of the manual
8 July 2004: Menelaos Karavelas
- renamed the is_exact methods to is_input (one of the suggestions
in Sylvain's review)
28 June 2004: Menelaos Karavelas
- made the primal(...) methods public (they were protected).
27 June 2004: Menelaos Karavelas
- added hack for G++ 3.4 on PowerPC about initialized static variables
in methods
- fixed bugs in is_degenerate_edge and incircle predicates. The bugs in the
incircle predicate were only affecting the is_degenerate_edge predicate.
24 June 2004: Menelaos Karavelas
- fixed bug in copy method of segment Voronoi diagram; added some debugging
code with CGAL_NO_ASSERTIONS block
- fixed bug for the SGI compiler: it does not really like "using Base::member"
- replaced occurences of NDEBUG by CGAL_NO_ASSERTIONS
- added copy constructors and assignment operators to the storage sites
22 June 2004: Menelaos Karavelas
- fixed errors of g++ 3.4.0 related to the traits' template parameter
checking
- more g++ 3.4.0 fixes: qualified derived methods with this->
- Square_root_{1,2} classes: when CGAL_USE_ADL_FOR_NT is defined the number
type related methods are implemented using the number type traits class
- implementated the is_degenerate_edge predicate
9 June 2004: Menelaos Karavelas
- added some more assertion checks in test_types.h (when testing the
assignment operator)
5 June 2004: Menelaos Karavelas
- in io_aux.h replaced char* by const std::string& to avoid warnings by
SunPro CC
- fixed typo in Segment_Voronoi_diagram_2.C; VC7 was giving a warning
about it
4 June 2004: Menelaos Karavelas
- fixed bug in find_faces_to_split in Segment_Voronoi_diagram_2.C: the
method was not working when the faces to be split were infinite
- added one more operator() in Svd_oriented_side_C2 (needed for the
fix above) and propagated the change so that all traits and all
filtering mechanisms can use it.
31 May 2004: Menelaos Karavelas
- fix bug in insert_segment in Segment_Voronoi_diagram_2.C
30 May 2004: Menelaos Karavelas
- added test suite for one-level and hierarchy algorithms
Documentation:
- added spec for the draw_dual_edge method that takes an edge circulator
- added specs for the draw_dual_edge method that takes an edge
iterator (either All_edges_iterator or Finite_edges_iterator)
- removed preconditions that were not preconditions in draw_dual_edge
Code:
- Segment_Voronoi_diagram_2 class: added draw_dual_edge methods
that take edge iterators and circulators
- Segment_Voronoi_diagram_2 class: fixed bug in swap method
- Segment_Voronoi_diagram_2 class: fixed bug in insertion of a segment
- Segment_Voronoi_diagram_2 class: renamed the ds() method to
data_structure() so that it conforms with the doc
- Segment_Voronoi_diagram_2 class: added code for copy constructor and
assignment operator
- Simple_container_wrapper class: added type for const_iterator
- Simple_container_wrapper class: added begin() and end() methods
- fixed bug in traits related to the usage Filtered_exact as the
number type
- added constructor in hierarchy that takes two input interators
- fixed bugs in copy constructor, assignment operator and swap method
of the segment Voronoi hierarchy class
27 May 2004: Menelaos Karavelas
- added the method
Vertex_handle insert(const Site_2& t, Vertex_handle vnear);
in the Segment_Voronoi_diagram_2 class
- added two methods in storage site: source_site() and target_site()
- added support for overlapping segments (both one-level and
hierarchy)
- fixed bug in finite edge interior (wrong answer when a Voronoi edge
was degenerate and a point was touching the single Voronoi circle)
- added macros in Svd_Voronoi_vertex_*_C2.h to indicate a change on
how the incircle test is computed in a limiting case
25 May 2004: Menelaos Karavelas
- added support for point that lies on a segment and segments that
go through a point in the hierarchy code
24 May 2004: Menelaos Karavelas
- finished implementation of the Arrangement_type_2 predicate with
all the degenerate cases and using the enumeration type
- added support for point that lie on a segment and segments that go
through a point (only one-level algorithm)
- bug fix: constructor of Site_2 was called but now there are no
such constructors
- bug fix: Are_parallel_2 was not working in
Segment_Voronoi_diagram_traits_base_2.h
21 May 2004: Menelaos Karavelas
Documentation:
- removed the template paramater PC from most of the doc
- removed the ITag template parameter in the doc; as a result new
classes where added
- removed the Simple_container related stuff
- made other minor changes suggested by Sylvain
Code:
- added concept checking for the Method_tag for the traits classes
- removed the second template parameter from the two storage site
classes; the paramater was useless since the Point_handle type is
now hard-coded
13 May 2004: Menelaos Karavelas <mkaravel@cse.nd.edu>
- removed the internally used macro USE_SC
- re-added code that was removed in the presence of g++-2.95.3; this
was possible after the May 6 changes that removed template-template
code
- moved all methods to be inlined from Segment_Voronoi_diagram_2.C and
Segment_Voronoi_diagram_hierarchy_2.C to the corresponding .h files;
this was done in order to please the SunPro CC-5.30 compiler
- moved initialization of UNDEFINED_LEVEL inside the class; again to
please the SunPro CC-5.30 compiler
10 May 2004: Menelaos Karavelas <mkaravel@cse.nd.edu>
- removed unreachable break statements to avoid pgCC warning
- removed excessive >'s in filtered traits (SunPro specific part)
6 May 2004: Menelaos Karavelas <mkaravel@cse.nd.edu>
- fixed bugs for SunPro CC compiler:
1. removed template-template code
2. fixed problem with default template parameters for filtered traits
3 May 2004: Menelaos Karavelas <mkaravel@cse.nd.edu>
- added support for filtering through Filtered_exact
2 May 2004: Menelaos Karavelas <mkaravel@cse.nd.edu>
- forgot to submit correct version of
predicates/Segment_Voronoi_diagram_predicates_ftC2.h in which
the construct_site_2 static method is used for constructing
sites instead of a constructor
26 April 2004: Menelaos Karavelas <mkaravel@cse.nd.edu>
- removed duplicate definition of one of the operator()'s in
the Construct_svd_site_2 functor.
22 April 2004: Menelaos Karavelas <mkaravel@cse.nd.edu>
- replaced the site constructors by static methods that create
the sites
- added functors for some predicates that did not have
- removed the macro USE_SET_METHODS
- removed unnecessary constructors from the various site classes
- the cartesian converter now makes use of the intersections tag
- fixed filtered traits to work with gcc 2.95.3
20 April 2004: Menelaos Karavelas <mkaravel@cse.nd.edu>
- rewrote code for filtered traits to improve efficiency;
the traits functor do not go through the number type level now
- removed dependencies on the set_* methods of the site classes;
this should make the site classes interface much simpler
18 April 2004: Menelaos Karavelas <mkaravel@cse.nd.edu>
- added code for input and output sites iterator
15 April 2004: Menelaos Karavelas <mkaravel@cse.nd.edu>
- the point container is not hardcoded
- the traits classes is now split in two different classes; there is
no intersection tag as a template parameter