Jane Tournois
122db0e026
don't backup infinite cells
2014-01-16 11:35:04 +01:00
Jane Tournois
8f778be277
comment the assertion that checks if sliver_cache has the same value as the computed sliverity value, because it goes against the cells meta-data backup that we are doing to speed-up and add consistency to revert_move (used when perturber failed to improve the quality of the mesh locally (sliverity may have changed of 10^-15 or so, unfortunately))
2014-01-16 11:35:04 +01:00
Jane Tournois
14ac2ccc09
add comment
2014-01-16 11:35:03 +01:00
Jane Tournois
0798f093d4
hardcode the use of std::size_t as id_type for PVertex
2014-01-16 11:35:03 +01:00
Jane Tournois
11a8050381
add a template parameter to decide whether we store c3t3 info or not in the cells meta-data backup
2014-01-16 11:35:02 +01:00
Jane Tournois
0609558919
avoid recomputing the c3t3 after each revert_move in sliver perturber.
...
The meta-data such as sliver_cache and c3t3 info are stored in an
auxiliary data, and restored after revert_move
2014-01-16 11:35:02 +01:00
Jane Tournois
7ad8520d8f
Merge branch 'Mesh_3-add_sliver_perturber_criteria-GF-old' into Mesh_3-add_sliver_perturber_criteria-GF
2013-12-10 15:58:46 +01:00
Jane Tournois
3d3bad7734
attempt to fix the bug about CGAL_assertion(!slivers.empty()) in Sliver_perturber.h
...
there might be inconsistencies (of a few bits) between sliver cached values (64 bits) and values computed on the fly (potentially 80 bit on some 32 bits platforms)
2013-12-10 15:49:52 +01:00
Laurent Rineau
2a345ad60a
Fix an assertion when the x86 coprocessor is used
...
See the comment in the file
2013-12-10 15:20:34 +01:00
Laurent Rineau
675f5b8b14
Fix a warning (unused variable)
2013-12-10 15:20:34 +01:00
Jane Tournois
7061eee190
fix a warning about missing virtual destructor
2013-12-10 14:54:28 +01:00
Jane Tournois
747ef0eade
fix access to number_of_cells() and number_of_facets() in C3t3 (these functions are documented)
2013-12-06 10:54:48 +01:00
Jane Tournois
a78c94b81b
fix compilation of Mesh_3 demo using new features
2013-11-18 16:11:32 +01:00
Laurent Rineau
74e1bad5a4
fix a warning
2013-10-31 11:08:30 +01:00
Laurent Rineau
6561b0d811
Fix warnings
...
- Twice unused typedefs (because their uses were commented)
- Once member variables initialized in wrong order
2013-10-24 17:22:42 +02:00
Jane Tournois
9f90f2a7de
remove useless const in return types
2013-10-24 17:11:42 +02:00
Jane Tournois
c557164a44
Merge branch 'Mesh_3-add_sliver_perturber_criteria-GF-old' into Mesh_3-add_sliver_perturber_criteria-GF
2013-10-24 16:28:10 +02:00
Jane Tournois
0a7ea58e1f
rename K to Gt because it does not need to be a kernel
2013-10-24 14:22:36 +02:00
Jane Tournois
6f47edcbef
fix use of K (defined in Sliver_criterion)
2013-10-24 11:53:54 +02:00
Sébastien Loriot
5f495e579e
fix gcc compilation issues
2013-10-24 11:14:04 +02:00
Jane Tournois
145f01a8f6
reset sliver_cache at the end of perturbation to have them free to perturb wrt another criterion now
2013-10-22 12:50:39 +02:00
Jane Tournois
a5f7c5ab7f
add boolean template parameter to Sliver_criterion, that decides if
...
the sliver_cache should be updated by operator()(cell_handle).
It can be useful when we write a complex criterion that implies two simpler
criteria for example, and we want the cache to be updated for only one of them
(to avoid inconsistencies)
+ add a sliver_cache reset because valid_move does re-compute the cache
2013-10-21 15:24:24 +02:00
Jane Tournois
064225638b
Revert "fix compilation of my previous commit in debug mode"
...
This reverts commit 36f92c50a3 .
And fix it for compilation on debug mode
2013-10-18 14:33:55 +02:00
Jane Tournois
5b50dfad86
make use of the sliver_cache in sliver_criteria
...
warning : this assumes that sliver_cache stores the value corresponding to this criterion!
2013-10-18 13:01:57 +02:00
Jane Tournois
36f92c50a3
fix compilation of my previous commit in debug mode
2013-10-18 13:00:55 +02:00
Jane Tournois
ca249eb5f9
add an operator()(Cell_handle) to Sliver_criterion
...
this implies changing the template parameters of Sliver_criterion,
which now needs to know the Triangulation type
2013-10-18 12:38:21 +02:00
Jane Tournois
ec2b35e398
make sure the same default values as in master are used
...
- default_value (=12) for perturber,
- max_value (=90) for exuder
2013-10-17 15:48:39 +02:00
Jane Tournois
80f3618be8
complete previous commit
2013-10-17 12:18:04 +02:00
Jane Tournois
ae851c9747
remove sliver_bound_ member variable from the perturber and exuder
...
This variable is now stored exclusively in the sliver_criterion choosen for optimization.
And - remove some default parameters to avoid inconsistencies
2013-10-17 11:19:37 +02:00
Laurent Rineau
fcbbe713d5
No longer deprecate Mesh_cell_base_3
...
Compact_mesh_cell_base_3 has a different API than Mesh_cell_base_3. Unless
one uses the default template parameters, the new API is less
convenient. We cannot deprecate Mesh_cell_base_3 so easily.
2013-10-16 16:34:41 +02:00
Jane Tournois
864fbaae36
Merge remote-tracking branch 'remotes/origin/Mesh_3-fix_perturber-GF' into Mesh_3-add_sliver_perturber_criteria-GF
...
Conflicts:
Mesh_3/include/CGAL/Mesh_3/C3T3_helpers.h
2013-10-15 11:56:25 +02:00
Laurent Rineau
1855c174d6
Reverting "a second intrusive list of cells should not be used this would induce some bugs in global optimizers (because modified_cells should be an intrusive list, and we should not modify previous_intrusive and next_intrusive for cells that are not inside this list"
...
Revert "a second intrusive list of cells should not be used"
This reverts commit 8674523d10 .
2013-10-14 17:16:52 +02:00
Laurent Rineau
924aa6a01e
Fix whitespace in recent commits
2013-10-14 17:12:54 +02:00
Laurent Rineau
240385d011
Add expensive assertions to check the circumcenter cache
2013-10-14 17:12:54 +02:00
Jane Tournois
13ed8627c2
fix check_surface_mesh topology criterion
...
the vertex that is moving should not be taken into account when we compare the list of vertices of the move conflict zone before/after the move
2013-10-14 17:08:00 +02:00
Jane Tournois
8674523d10
a second intrusive list of cells should not be used
...
this would induce some bugs in global optimizers (because modified_cells should be an intrusive list, and we should not modify previous_intrusive and next_intrusive for cells that are not inside this list
2013-10-14 17:05:05 +02:00
Jane Tournois
14d78bea51
remove set_sliver_value inside debugging code to have the same behavior with and without the macro being defined
2013-10-14 15:55:41 +02:00
Jane Tournois
8744e35474
add more expensive debugging code
2013-10-11 16:29:43 +02:00
Jane Tournois
4a25da8353
add expensive debugging code
2013-10-11 16:19:34 +02:00
Jane Tournois
85beea510e
use Sliver_criterion_value functor inside Is_sliver
2013-10-11 15:08:40 +02:00
Laurent Rineau
7ef932d79b
add assertion to check cache validity
2013-10-11 15:04:25 +02:00
Jane Tournois
46b39b0377
Merge branch 'Mesh_3-add_sliver_perturber_criteria-GF-old' into Mesh_3-add_sliver_perturber_criteria-GF
...
Conflicts:
Mesh_3/include/CGAL/Mesh_3/C3T3_helpers.h
2013-10-10 11:59:09 +02:00
Laurent Rineau
3f88b4d746
Merge remote-tracking branch 'origin/Mesh_3-fix_perturber-GF'
...
- In Mesh_3, fix the sliver perturber
- the invalidatation of caches,
- the topological check (in check_surface_mesh) was not enough.
Tested in CGAL-4.3-Ic-194
2013-10-09 14:51:32 +02:00
Laurent Rineau
2c78278fdc
Fix a compilation bug with older version of g++, and Boost Lambda
...
The error was triggered by the following code in CGAL/Mesh_3/C3T3_helpers.h:
template <typename CellForwardIterator>
void reset_circumcenter_cache(CellForwardIterator cells_begin,
CellForwardIterator cells_end) const
{
namespace bl = boost::lambda;
std::for_each(cells_begin, cells_end,
bl::bind(&Cell::invalidate_circumcenter, *bl::_1) );
}
See for example test results here:
CGAL-4.3-Ic-193/Polyhedron_Demo/TestReport_lrineau_i686_Linux-2.6_g++-4.1.2_CentOS-5.1.gz
2013-10-08 16:55:58 +02:00
Laurent Rineau
85d880efc1
Constify two methods that can be const
2013-10-08 16:54:34 +02:00
Jane Tournois
72deb04640
fix compilation on windows
...
(cherry picked from commit 8ec9e7e2cfd51edf026807059343b4220093611e)
2013-10-08 16:51:26 +02:00
Laurent Rineau
8edeb9095f
Add more comment debug outputs (for future debugging)
2013-10-08 16:11:19 +02:00
Laurent Rineau
7248da1509
Fix the slivers perturber
...
The testsuite showed that our previous patch was not correct: the sliver
cache is modified by a call to C3T3_helper::min_sliver_in_c3t3_value() when
its parameter use_cache=false. For that reason, the resetting of sliver
caches was not done at the right place in update_mesh_no_topo_change().
2013-10-08 14:23:05 +02:00
Laurent Rineau
55153e58b1
Fix a warning about unused local typedef
2013-10-04 18:01:17 +02:00
Jane Tournois
245250dfad
do not test inside_protecting_balls for ODT and Lloyd because it slows down the algorithm and never happens for Lloyd and ODT (experimentally tested. Maybe it can happen some day...)
2013-10-02 12:59:03 +02:00
Laurent Rineau
f06d2057d6
Uniformize my uses of std::setprecision
2013-09-27 17:58:00 +02:00
Laurent Rineau
67b20e8a19
Fix the sliver perturber
...
- the invalidatation of caches,
- the topological check (in check_surface_mesh) was not enough.
2013-09-27 17:52:57 +02:00
Jane Tournois
dd25eb2cfd
add simple check to avoid some comparisons
2013-09-26 16:45:12 +02:00
Jane Tournois
00bad608c5
add helper function
2013-09-26 16:18:48 +02:00
Sébastien Loriot
a05c50e83a
fix backward compatibility of Mesh_3 with intersection API v1
2013-09-25 18:13:11 +02:00
Jane Tournois
8a59b57dc2
Revert "set vertex weight in exuder by using old_v->set_point(p) instead of insert(p)"
...
This reverts commit f56360f94b .
Note : connectivity can change with "insert", not with "set_point",
so this commit was wrong
2013-09-24 13:58:40 +02:00
Jane Tournois
e59c57f08e
make sure that global optimizers (lloyd and odt) don't move vertices inside protecting balls
2013-09-23 16:53:44 +02:00
Jane Tournois
85eecc920f
make sure that the perturber does not insert any vertex inside a protecting ball
2013-09-23 16:35:09 +02:00
Andreas Fabri
9ed4f837c3
Merge branch 'CGAL-compilable_headers-GF'
...
The conflict was about whitesapce
Approved by the release manager
Conflicts:
Polyhedron/include/CGAL/Polyhedron_copy_3.h
2013-09-23 14:50:17 +02:00
Jane Tournois
f56360f94b
set vertex weight in exuder by using old_v->set_point(p) instead of insert(p)
2013-09-20 17:02:36 +02:00
Jane Tournois
c14ea9db07
rename variable because criterion is not necessarily an angle (anymore)
2013-09-20 16:16:57 +02:00
Jane Tournois
6bc75327f5
use new sliver criterion functions before_move and valid_move to decide whether a move should be made or not
2013-09-20 16:04:26 +02:00
Laurent Rineau
45f2b7634f
Merge branch 'Mesh_3-fix_assertion_in_the_protection_code-lrineau'
...
Fix the test of an assertion in <CGAL/Mesh_3/Protect_edges_sizing_field.h>…
Tested in CGAL-4.3-Ic-174.
Approuved for CGAL-4.3 by the Release Manager.
2013-09-18 15:07:56 +02:00
Laurent Rineau
930a7862d4
Fix the patch when CGAL_NO_ASSERTIONS is defined.
2013-09-17 11:10:42 +02:00
Laurent Rineau
7b6fb384d3
Remove extra semi-colons
2013-09-17 11:03:17 +02:00
Laurent Rineau
34b13affef
Try to "fix" an assertion that compares a computed value to another
...
On the paper, dleft_frac must be greater that 1.0. But with rounding
errors, it can be slightly lower. Let's try to compare it with
1.0-2*ulp(1.0).
I do not like that sort of hack but I do not know what to do best.
2013-09-17 10:58:38 +02:00
Andreas Fabri
aa1d4e57f2
Remove unused variable name
2013-09-17 09:36:35 +02:00
Jane Tournois
69cc217279
add a boolean option to valid_move to accept a move if the new value is lower than the old one, but above the sliver_bound
2013-09-16 11:28:59 +02:00
Jane Tournois
1a449621b4
fix access to static max_value
2013-09-16 11:25:08 +02:00
Andreas Fabri
6c547e5663
Mainly added includes
2013-09-13 22:24:30 +02:00
Andreas Fabri
3f93665e03
Suppress a VC++ warning with a pragma
2013-09-12 12:49:11 +02:00
Jane Tournois
79f2337237
add more to sliver_criteria to complete before_move and valid_move
2013-09-10 17:27:47 +02:00
Jane Tournois
da6870aab6
add functions to the sliver_criterion concept to check if a move should be accepted or not (not degrading criteria)
2013-09-10 15:43:49 +02:00
Jane Tournois
9e38187dd6
replace return type of Sliver_criterion's operator() from double to boost::optional<double>, and updating code consequently
...
for now we suppose that operator() always returns a valid value
2013-09-10 15:30:38 +02:00
Jane Tournois
efd97dd121
add virtual functions to Sliver_criterion and use them :
...
- get_max_value() to be able to keep the abstract class and derivatives properly
- get_perturbation_unit() to replace "delta" in Sliver_perturber (progressive version of perturber is running for bound = i*delta for i >= 1)
2013-09-10 11:52:08 +02:00
Jane Tournois
3cac42e78e
remove use of default constructor
2013-08-29 16:39:30 +02:00
Jane Tournois
5fd466cb53
fixes previous commit constness issues
2013-08-13 12:34:21 +02:00
Jane Tournois
ce80651f43
add boost parameter perturbation_vector_ to perturb_mesh_3,
...
to be able to add your own perturbation, that should be an Abstract_perturbation (see vertex_perturbation.h)
2013-08-12 15:00:58 +02:00
Jane Tournois
aefda6b8c1
use SliverCriterion in CGAL::perturb_mesh_3.
...
a boost parameter sliver_criterion is added to perturb_mesh_3, and
by default, sliver_bound is used in the min_dihedral_criterion, as before
2013-08-09 17:15:28 +02:00
Laurent Rineau
7552d76c1b
Revert the following commit for that file
...
| commit 01ee3e94b6
| Author: Laurent Rineau <laurent.rineau@cgal.org>
| Date: Tue Jun 25 12:53:24 2013 +0200
|
| Use 'std::istream::operator!()' twice to replace 'operator bool()' (C++11 only)
|
| Fixes a compilation error from clang:
|
| include/CGAL/IO/File_binary_mesh_3.h:39:10: error: no viable conversion from 'std::ostream' (aka 'basic_ostream<char>') to 'bool'
| return os << c3t3;
| ^~~~~~~~~~
The return type of operator<< os std::ostream&, and not bool!
2013-08-07 14:16:39 +02:00
Michael Hemmer
30e0b2d3f3
add missing include
2013-07-25 10:05:24 +02:00
Sébastien Loriot
2dbf0b4bf7
the grid to do inside-test is no longer needed, a better version is now used
...
the old code can still be accessed in the file:
Operations_on_polyhedra/include/CGAL/Point_inside_polyhedron_3_old.h
2013-07-10 10:42:07 +02:00
Sébastien Loriot
20446fa777
Merge branch 'Mesh_3-using_new_inside_polyhedron-local'
...
Successfully tested in CGAL-4.3-Ic-85
Approved by the release manager
Conflicts:
Mesh_3/include/CGAL/Polyhedral_mesh_domain_3.h
2013-07-09 17:34:15 +02:00
Clement Jamin
501484f509
Merge branch 'Mesh_3-fix_documentation-cjamin'
...
Small feature: https://cgal.geometryfactory.com/CGAL/Members/wiki/Features/Small_Features/Documentation_fix_in_Mesh_3
Approved by the release manager
2013-07-08 16:09:53 +02:00
Clement Jamin
98cfba361c
Fix Rebind_TDS bug
...
Conflicts:
Mesh_3/include/CGAL/Compact_mesh_cell_base_3.h
2013-07-05 10:50:17 +02:00
Clement Jamin
97bef9652a
Merge branch 'Mesh_3-fix_documentation-cjamin-old' into Mesh_3-fix_documentation-cjamin
2013-07-04 14:41:33 +02:00
Laurent Rineau
e3aad4d079
Fix warnings
2013-06-26 14:49:03 +02:00
Laurent Rineau
c6a57e79f1
Fix a warning about unused parameters
2013-06-25 17:43:17 +02:00
Laurent Rineau
01ee3e94b6
Use 'std::istream::operator!()' twice to replace 'operator bool()' (C++11 only)
...
Fixes a compilation error from clang:
include/CGAL/IO/File_binary_mesh_3.h:39:10: error: no viable conversion from 'std::ostream' (aka 'basic_ostream<char>') to 'bool'
return os << c3t3;
^~~~~~~~~~
2013-06-25 12:53:24 +02:00
Sébastien Loriot
4620b38ffd
update include path
2013-06-24 17:27:41 +02:00
Laurent Rineau
27f24bd350
Remove two useless functions
2013-06-24 17:00:04 +02:00
Laurent Rineau
9bee0e2f6a
Fix a bug when a cycle is covered by only two balls
...
When the first point of the cycle is inserted, the radius of its ball is
limited by the third of the distance to a "midpoint" of the cycle.
2013-06-24 16:59:45 +02:00
Jane Tournois
1224038bb2
fix license issues
2013-06-24 14:13:08 +02:00
iyaz
5411669c88
Integrate point inside query to Polyhedral_mesh_domain_3
2013-06-24 13:38:44 +02:00
Sébastien Loriot
0f116f968a
use the new return type of Intersect_3
2013-06-21 13:14:46 +02:00
Sébastien Loriot
1a8647a195
fix copy-paste error
2013-06-21 12:49:57 +02:00
Sébastien Loriot
5f43373646
use the new return type of intersection
2013-06-21 12:43:37 +02:00
Sébastien Loriot
02bdcc8603
Revert "remove Robust_intersection_traits_new"
...
This reverts commit 77b6b2e008 .
2013-06-21 12:42:12 +02:00
Sébastien Loriot
77b6b2e008
remove Robust_intersection_traits_new
2013-06-21 12:39:52 +02:00
Sébastien Loriot
483440c8f2
use new return type of intersection
2013-06-21 12:39:20 +02:00