Commit Graph

47 Commits

Author SHA1 Message Date
Andreas Fabri dc543af517 Use static arrays and a loop to initialize (accelerates compilation on VC++ 2017-12-07 17:05:56 +00:00
Andreas Fabri 99617c37cb Use static arrays and a loop to initialize (accelerates compilation on VC++ 2017-12-07 16:58:47 +00:00
Sébastien Loriot 8cdfad0d08 add missing URL and Id tags 2017-11-15 22:58:57 +01:00
Sébastien Loriot ff26773f7b remove include directive for checking GPL compliance in LGPL headers 2017-11-12 10:21:35 +01:00
Sébastien Loriot ee57fc2d6c add SPDX identifier for files under the GPL-3+ license 2017-11-12 10:17:51 +01:00
Sébastien Loriot 0698f79aff add SPDX identifier for files under the LGPL-3+ license 2017-11-12 10:17:50 +01:00
Mael Rouxel-Labbé 84d11ac797 Fixed Offset definition in P3T3's static filtered predicates 2017-08-23 11:00:03 +02:00
Mael Rouxel-Labbé f6da2ed7dc Static filter must be templated by the traits, not the kernel 2017-08-23 10:59:40 +02:00
Mael Rouxel-Labbé 1cc8449b34 Fixed using Point's default constructor instead of the base's operator() 2017-08-23 10:59:18 +02:00
Mael Rouxel-Labbé af86bfca8b Renamed P3T3's offset-handling functors (added a _3 suffix) 2017-08-22 13:38:31 +02:00
Andreas Fabri c533398777 Replace >5000 function calls with an array of that size 2017-07-11 15:20:25 +02:00
Mael Rouxel-Labbé ad6361e45f Added virtual destructors 2017-07-05 11:53:09 +02:00
Mael Rouxel-Labbé aab9c237e7 Removed duplicate "using function()" 2017-05-24 12:24:50 +02:00
Mael Rouxel-Labbé 5354134469 Merge branch 'Periodic_3_Regular_triangulation_3-APelle-old' into Periodic_3_Regular_triangulation_3-APelle 2017-05-24 12:18:49 +02:00
Mael Rouxel-Labbé 10a9348124 Periodic_3 remove traits must overwrite construct_point_3() 2017-05-22 11:27:02 +02:00
Mael Rouxel-Labbé 650e257f2d Moved Periodic_3_construct_(weighted_)point_3 to /internal
and small modifications
2017-05-16 11:12:23 +02:00
Mael Rouxel-Labbé 0b5ef494ce Periodic_3 traits v3.0
Version 2.0 was commit: 5b8b5c21ec18c878a93be2fca95f9c9dafd58ac6

Short version:
Made it work without point/weighted_point implicit conversions
and made it more generic by reworking the inheritance of adaptors and providing
appropriate constructors

Long version:
-- Reworked P3_construct_point_3 and P3_construct_weighted_point_3 to inherit
a base Construct_point_3 and initialize it properly at construction.

-- Renamed Traits_with_offset / Regular_traits_with_offset adaptors. These
classes now inherit the base functor and the constructors allow to initialize
that base from an existing functor (meaning that we don't default constructor
functors anymore). This also means that we can use the base operator() of the
functors and can thus use all possible inputs (with or without offsets).

-- Static filters now probably inherit the correct *_filtered_traits_base_3.

-- All traits classes now have constructor to be able to initialize traits
from a given domain and a given base kernel (rather than default construct)

-- Fixed Del/regular_remove_traits inherting the wrong classes

-- Filtered traits have exact and approximate traits rather than exact and
approximate domains with default constructed traits

One problem is left:
Filtered traits members are initialized with a default constructed base kernel.
Ideally, it should use Cartesian_converter(Base::kernel()), but this does not
exist...
2017-05-16 10:55:01 +02:00
Mael Rouxel-Labbé e72e8db2a2 Fixed some includes 2017-05-15 17:51:37 +02:00
Mael Rouxel-Labbé da1ae646d8 Removed the domain from P3T3
There is no need to store the domain in the triangulation, it should be left
to the traits to handle it
2017-05-15 17:46:57 +02:00
Mael Rouxel-Labbé f2b2b5cd2e Moved some files to /internal 2017-05-11 17:56:41 +02:00
Mael Rouxel-Labbé 3e1f38d673 Periodic regular traits now select the highest possible level of filtering
(but there is currently nothing for regular static filtering)
2017-03-31 17:11:58 +02:00
Mael Rouxel-Labbé 7a6a3e3690 Added skeleton of regular static filtering operations 2017-03-31 17:05:00 +02:00
Mael Rouxel-Labbé 49c79e9829 Renamed Delaunay remove traits
so Delaunay actually appears in the name. Also minor typedef and comment
changes within the file.
2017-03-31 15:56:29 +02:00
Mael Rouxel-Labbé 8aedc5a170 Various minor changes to doc and functions
Cleaned some todos, added some, removed useless includes etc.
2017-03-31 15:30:01 +02:00
Mael Rouxel-Labbé 163b31f120 Mirror P3T3's static filters with their (newer) corresponding versions...
... from /Filtered_kernel
2017-03-29 18:02:44 +02:00
Mael Rouxel-Labbé 54e70be250 Changed years 2017-03-27 15:47:23 +02:00
Mael Rouxel-Labbé ec2507981f Added some new operators to the traits_with_offset adaptor
Required for P3M3
2017-03-16 21:34:11 +01:00
Mael Rouxel-Labbé 0e14887b6d Cosmetic changes in P3T3 traits classes 2017-03-16 18:21:59 +01:00
Mael Rouxel-Labbé 8104ba58cf Restructured the hierarchy of traits in Periodic triangulations
BEFORE:
A template mecanism allows to determine wether the kernel offers filtered, or
even statistically filtered operations. The highest level is chosen and includes
the sub-levels. For example, if the kernel offers filtered but _not_ statistically
filtered operations, using the traits class `Periodic_3_triangulation_traits_3`
is equivalent to using the class `Periodic_3_triangulation_filtered_traits_3`,
which inherits the operations of `Periodic_3_triangulation_traits_3` (implemented
in `Periodic_3_triangulation_traits_base_3`) and overwrites some of them.

A similar mecanism is done for Delaunay and regular traits; e.g. if the kernel
offers statistically filtered traits, then using `Periodic_3_Delaunay_triangulation_traits_3`
is similar to using `Periodic_3_Delaunay_triangulation_statistically_filtered_traits_3`,
which inherits from `Periodic_3_Delaunay_triangulation_filtered_traits_3`, which itself
inherits from `Periodic_3_Delaunay_triangulation_traits_3`.

PROBLEM:
The base class of Delaunay and regular traits, respectively
`Periodic_3_Delaunay_triangulation_traits_base_3` and
`Periodic_3_regular_triangulation_traits_base_3` inherit the class
`Periodic_3_triangulation_traits_base_3`. Thus, if the kernel is filtered
or statistically filtered, then the filtered operations that should
"belong" at the level of triangulation traits (for example, orientation_3)
must be duplicated in the Delaunay and regular traits file otherwise
they are not filtered.

AFTER:
With this commit, the Delaunay and regular bases traits inherit
from `Periodic_3_triangulation_traits_3` (no "_base"). This means
that the base class will also select its highest possible level of
filtration and there is no need to duplicate code 3 times anymore.
2017-03-16 17:25:53 +01:00
Mael Rouxel-Labbé 763cb513b0 Fixed missing functors in periodic (regular) triangulation filtered traits
Maybe the regular filtered traits ought to derive from the non-regular filtered
traits
2017-03-08 16:04:49 +01:00
Mael Rouxel-Labbé 47f282ed9f Fixing authors and other minor changes 2017-02-15 15:13:23 +01:00
Mael Rouxel-Labbé 407836103d Quality of life changes for Periodic_3
This commit only:
-- fixes indentation
-- adds licence includes that are missing
-- clarifies some variable names
-- removes trailing whitespace
2017-02-06 13:53:58 +01:00
Mael Rouxel-Labbé 640ab2cdb6 Fixed Periodic_3_regular_triangulation_filtered_traits_3
-- A real kernel is now passed to the traits and not some kind of Regular_traits
   thus removing the need for Weighted_converter_3 (and similar changes)
-- Updated function objects names
2017-02-03 17:19:08 +01:00
Mael Rouxel-Labbé a77272be94 Merge branch 'Periodic_3_Regular_triangulation_3-APelle-old' into Periodic_3_Regular_triangulation_3-APelle 2017-02-03 16:52:51 +01:00
Sébastien Loriot 50510c05ea add include directive for license of all GPL header files
done using:
ack-grep "^GPL" */package_info/*/license.txt -l | awk -F "/" '{print $1}' > /tmp/gpl_packages
for i in `cat /tmp/gpl_packages | \
          grep -v Operations_on_polyhedra | \
          grep -v Algebraic_kernel_for_circles | \
          grep -v Algebraic_kernel_for_spheres | \
          grep -v Polyhedron_IO`;
do
  echo $i
  python Scripts/developer_scripts/add_license_in_pkg_header.py $i
done
python Scripts/developer_scripts/add_license_in_pkg_header.py Operations_on_polyhedra Polygon_mesh_processing
python Scripts/developer_scripts/add_license_in_pkg_header.py Algebraic_kernel_for_circles Circular_kernel_2
python Scripts/developer_scripts/add_license_in_pkg_header.py Algebraic_kernel_for_spheres Circular_kernel_3
python Scripts/developer_scripts/add_license_in_pkg_header.py Polyhedron_IO Polyhedron
2017-01-19 15:20:25 +01:00
Sébastien Loriot d6606ce607 add backward compatibility header 2016-05-13 12:05:54 +02:00
Andreas Fabri 2bae47aad9 More init_double 2016-04-15 20:42:12 +02:00
Andreas Fabri 021f1b3151 Fix warning 2016-03-31 10:08:50 +02:00
Sébastien Loriot e21a48a306 use Has_filtered_predicates flag for selecting base traits 2016-03-08 15:01:02 +01:00
Sébastien Loriot b960e41291 move non-user traits class files into internal 2016-03-08 14:38:40 +01:00
Andreas Fabri ce406887f9 Use static filters also for Epeck and make it faster 2016-02-19 08:24:52 +01:00
Laurent Rineau 8f59fd9592 Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Sébastien Loriot 6e897fafb6 bug-fix: typo 2011-04-26 17:01:34 +00:00
Sébastien Loriot a2cec87f46 replace remaing fabs in include files by CGAL::abs 2011-02-18 15:37:40 +00:00
Andreas Fabri 4070f44d62 Use CGAL::abs instead of fabs 2011-02-16 16:37:23 +00:00
Manuel Caroli 3d52467d8b bugfix due to the name space change of the static filters 2009-10-15 17:01:02 +00:00
Manuel Caroli a85a84ac6d Move static filters stuff under CGAL/internal and CGAL::internal 2009-10-14 18:54:51 +00:00