Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Isosurfacing_3 - add openVDB oracle in an example #8292

Draft
wants to merge 334 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
334 commits
Select commit Hold shift + click to select a range
500a79a
Remove trailing whitespace
JulyCode Nov 18, 2022
78e426b
massaging examples and doc (work in progress)
palliez Nov 20, 2022
d5f1848
massaging documentation (work in progress)
palliez Nov 20, 2022
3e58dcf
more massage on the doc.
palliez Nov 20, 2022
86020a7
second pass over examples
palliez Nov 20, 2022
18ce54b
massaging documentation (first global pass)
palliez Nov 21, 2022
72314aa
massaging Isosurfacing examples
palliez Nov 21, 2022
5bfa7e2
Isosurfacing: added figure cross
palliez Nov 21, 2022
597ff88
Move #include of license check file
afabri Nov 23, 2022
5f11e50
backtick and whitespace
afabri Nov 23, 2022
a53097a
Add return 0 and whitespace
afabri Nov 23, 2022
c615051
Use CGAL_PI and add dependencies file in the documentation
afabri Nov 23, 2022
bd19c0d
superficial doc fixes
afabri Nov 23, 2022
1bb84e8
typos
afabri Nov 24, 2022
5da7759
Improve reference manual
JulyCode Dec 3, 2022
6d9f088
Separate gradients into more files
JulyCode Dec 3, 2022
9f1b65a
Document code
JulyCode Dec 8, 2022
b587f50
Fix include and some formulations
JulyCode Dec 8, 2022
3f15514
Replace iso(-|_)value with isovalue
JulyCode Dec 8, 2022
09ee94a
Change zero vector to member
JulyCode Dec 9, 2022
b9c75a5
Remove .clang-format
MaelRL Jan 6, 2023
c8b0d93
Merge remote-tracking branch 'cgal/master' into gsoc2022-isosurface
MaelRL Jan 6, 2023
5d09ad2
4 --> 2 spaces indentation and "typedef" --> "using"
MaelRL Jan 6, 2023
7b178df
Move most headers into include/CGAL/Isosurfacing_3
MaelRL Jan 6, 2023
9b68911
Doc improvements
MaelRL Jan 9, 2023
df335d8
Tiny examples / tests fixes
MaelRL Jan 9, 2023
309bf6c
Remove pointless template from Zero_gradient
MaelRL Jan 9, 2023
c14ec4a
Fix links to CGAL::Null_vector
MaelRL Jan 9, 2023
a0a5c1e
Fix comment (Manhattan distance is the L1 norm)
MaelRL Jan 9, 2023
a43a95c
Fix comment
MaelRL Jan 9, 2023
0b7f32d
Remove shared pointers
MaelRL Jan 9, 2023
44c2d4f
Update year
MaelRL Jan 11, 2023
5f36389
Refactor Isosurfacing_3
MaelRL Jan 13, 2023
8a39184
Bump up CMake version
MaelRL Jan 13, 2023
34e3536
Misc small code fixes / improvements
MaelRL Jan 13, 2023
f1886ef
Small doc fixes
MaelRL Jan 13, 2023
5ba6d67
Fix namespace
MaelRL Jan 13, 2023
2723608
Concept fixes
MaelRL Jan 14, 2023
52527c8
Minor fixes
MaelRL Jan 16, 2023
f188f22
Clarify resize(array) to be specific to arrays (it also matched maps …
MaelRL Jan 16, 2023
96582bf
Minor fixes
MaelRL Jan 17, 2023
42a813c
Simplify traits class
MaelRL Jan 18, 2023
5c26155
Describe what concepts are for
MaelRL Jan 18, 2023
639ac69
Global pass on isosurfacing: ref and user manual, improve a bit consi…
palliez Jan 19, 2023
860eafd
Fix typo
MaelRL Jan 18, 2023
41e2271
Move \cgalrefines lower because \brief goes automatically above \cga…
MaelRL Jan 19, 2023
a140a6b
user manual: leave comments into []
palliez Jan 19, 2023
98d0c11
Merge branch 'gsoc2022-isosurface' of github.com:JulyCode/cgal into g…
palliez Jan 19, 2023
bbd0255
Replace Explicit_Cartesian_grid_geometry with Implicit_cartesian_grid…
JulyCode Jan 24, 2023
d2a1e6a
Fix MSVC conversion error
JulyCode Jan 24, 2023
de37fbc
Revert "Replace Explicit_Cartesian_grid_geometry with Implicit_cartes…
MaelRL Jan 27, 2023
ea69ace
Remove whitespace
JulyCode Feb 2, 2023
40c6ce9
Doc fixes
MaelRL Feb 6, 2023
65ac2cc
Enhancements & fixes after Round1 review
MaelRL Feb 14, 2023
564ac1d
Fix Cartesian_grid_3 segfault
JulyCode Mar 14, 2023
4ddf24f
Start rework and testing
JulyCode Aug 8, 2023
b28d3f3
Fix tmc synchronization
JulyCode Dec 20, 2023
1892057
Example implicit sphere
palliez Dec 23, 2023
af458dd
Merge branch 'gsoc2022-isosurface' of https://github.com/JulyCode/cga…
palliez Dec 23, 2023
56692d5
example implicit sphere
palliez Dec 23, 2023
0ad9bb4
multiple offsets (for the teaser)
palliez Dec 24, 2023
be558db
replace bunny by tractor offset
palliez Dec 25, 2023
529b058
description
palliez Dec 25, 2023
b21f1da
user manual
palliez Dec 25, 2023
f62fd7d
user manual
palliez Dec 25, 2023
27550ec
added figure : output surface with boundaries
palliez Dec 25, 2023
584f324
Figure MC vs DC
palliez Dec 25, 2023
0f6fc13
use CGAL timer instead of TBB
palliez Dec 25, 2023
ac2a200
DC - iwp
palliez Dec 25, 2023
cff628e
Few more minor changes to examples
palliez Dec 25, 2023
44462c1
Change Eigen matrix to use correct type
JulyCode Jan 2, 2024
0e6b04d
Cast literals to correct type
JulyCode Jan 2, 2024
3e41b0c
Use eigen wrapper
JulyCode Jan 2, 2024
1b4b6b1
Remove unused imports
JulyCode Jan 2, 2024
10b22a9
Small fixes in examples
JulyCode Jan 2, 2024
3b572a6
Small doc change
JulyCode Jan 2, 2024
6f86165
Example DC on octree (still uses the octree wrapper)
palliez Jan 5, 2024
f304a84
Merge branch 'gsoc2022-isosurface' of https://github.com/JulyCode/cga…
palliez Jan 5, 2024
12ce300
added example that compares parallel with sequential MC
palliez Jan 5, 2024
d139540
Example : Parallel vs sequential Marching cubes
palliez Jan 5, 2024
50d0303
Add remarks
MaelRL Jan 9, 2024
b6b0e9d
Fix some compilation errors
MaelRL Jan 9, 2024
cfa307d
Merge remote-tracking branch 'cgal/master' into gsoc2022-isosurface
MaelRL Jan 9, 2024
9268b68
example uses TBB
afabri Jan 12, 2024
8e77d06
Polygon -> Triangle
afabri Jan 12, 2024
cbf3f4d
tiny fixes in user manual
afabri Jan 12, 2024
b9bbc93
Change comments
JulyCode Jan 14, 2024
ca1c78b
Deduct GeomTraits template type
JulyCode Jan 14, 2024
c1b8ca1
Revert "Deduct GeomTraits template type"
JulyCode Jan 15, 2024
8fd219c
Revert "Change comments"
JulyCode Jan 15, 2024
9e1f6d1
Unify input and make that output can be written simultaneously (for e…
afabri Jan 15, 2024
3a70a84
doxygen warnings
afabri Jan 15, 2024
ad1811c
doxygen warnings
afabri Jan 15, 2024
1fa0799
fix doc
MaelRL Jan 15, 2024
b77f216
Add missing citation
MaelRL Jan 15, 2024
97814b8
Fix dependencies and some backticks
afabri Jan 15, 2024
e4f35c9
polish and make the todos more readable
afabri Jan 16, 2024
d14f44b
typo
afabri Jan 16, 2024
17b4d21
typo: face -> cell
afabri Jan 16, 2024
d154f71
Update Isosurfacing_3/include/CGAL/Isosurfacing_3/internal/topologica…
afabri Jan 16, 2024
5290b01
fix tests
afabri Jan 16, 2024
c375952
Changes after R1 review
MaelRL Jan 17, 2024
cca4d5f
Fix inrimage example
JulyCode Jan 23, 2024
f64b3f7
Fix range requirements
MaelRL Jan 22, 2024
eedc459
Rework image from/to operators
MaelRL Jan 22, 2024
690c734
Make implicit / explicit Cartesian domains inherit rather than aliases
MaelRL Jan 22, 2024
96696a4
Misc minor doc / code fixes
MaelRL Jan 22, 2024
236ff89
Also rework the Octree domain to avoid aliases
MaelRL Jan 22, 2024
efc43a6
Fix usages of 'th `th
MaelRL Jan 22, 2024
e9c2297
Fix location of doc image
MaelRL Jan 22, 2024
ea1404e
Change bounding box type
MaelRL Jan 23, 2024
b3d6477
Fix compilation after Eigen type changes
MaelRL Jan 23, 2024
763d242
Don't compute placement if the cell is irrelevant
MaelRL Jan 23, 2024
1db32db
Misc minor changes
MaelRL Jan 23, 2024
3ba0af0
Misc minor changes
MaelRL Jan 25, 2024
2133067
Normalize gradients produced by Finite_diff_gradient_3
MaelRL Jan 31, 2024
6e08c25
Type-erase the point function in Finite_diff_gradients_3
MaelRL Jan 31, 2024
7abad57
Add default values for the parallel template parameter
MaelRL Jan 31, 2024
6659f1e
Add a helper function to visualize a Cartesian_grid_3 object
MaelRL Jan 31, 2024
a30e313
Fix narrowing conversion error
MaelRL Jan 31, 2024
c315126
Merge remote-tracking branch 'afabri/Kernel_23-squared_length-GF' int…
MaelRL Jan 31, 2024
ef311cd
Precise comment
MaelRL Feb 6, 2024
47ae855
Misc minor changes
MaelRL Feb 6, 2024
8a78301
New version of Isosurfacing_3:
MaelRL Feb 15, 2024
a653be2
Rewrite examples to emphasis data type and not contouring method
MaelRL Feb 15, 2024
55fdaab
Update doc (new concepts, examples)
MaelRL Feb 15, 2024
111b243
Move Side_of_triangle_mesh's assertion to usage rather than construction
MaelRL Feb 15, 2024
4cc1f0b
Add name parameter for Isosurfacing_3
MaelRL Feb 15, 2024
a408e98
Add missing backticks
MaelRL Feb 15, 2024
d319180
Add missing header include
MaelRL Feb 15, 2024
71e4325
static_cast
afabri Feb 15, 2024
367fb73
change #includes in examples
afabri Feb 15, 2024
05a9ccc
Address some CI errors
afabri Feb 15, 2024
ddf071c
Address some CI errors
afabri Feb 15, 2024
41fc2f0
quiet the CI
afabri Feb 16, 2024
37ed3ac
Allow resizing of the underlying data vector
MaelRL Feb 16, 2024
72ac570
Add some clamping
MaelRL Feb 16, 2024
45f7332
Fix Isosurfacing_3's Image_3 IO: ref to 'grid' in 'values' must be st…
MaelRL Feb 16, 2024
124a5c1
Minor doc fixes
MaelRL Feb 16, 2024
6f9b1cd
Update examples following Image_3 IO changes
MaelRL Feb 16, 2024
5fe73e5
Hide warning message behind macro
MaelRL Feb 16, 2024
4d160fd
Add two benchmarks for parallelism of implicit/image data
MaelRL Feb 16, 2024
4053f8c
Homogenize \return, gets, returns, etc.
MaelRL Feb 16, 2024
0fb66f7
Add missing header include
MaelRL Feb 16, 2024
9f780b2
Actually call MC
MaelRL Feb 16, 2024
ab98245
Adjust input validity checks
MaelRL Feb 16, 2024
a52939a
Add an undocumented example to compare MC and TMC
MaelRL Feb 16, 2024
6e8fcba
Make DC Octree work (again)
MaelRL Feb 23, 2024
913f879
Follow the OG paper's prescription of the SVD threshold
MaelRL Feb 23, 2024
11ddfaf
Misc minor changes
MaelRL Feb 23, 2024
17d2a98
Fix some warnings
MaelRL Feb 23, 2024
45dec3b
Simplify dichotomy + add proper error check
MaelRL Feb 23, 2024
f08ec78
Use unordered maps
MaelRL Feb 23, 2024
2bad87b
Update benchmarks
MaelRL Feb 24, 2024
c1f46d2
Remove obsolete files
MaelRL Feb 24, 2024
2823250
Minor API update for Cartesian_grid_3
MaelRL Feb 24, 2024
378ff1f
Doc improvements
MaelRL Feb 24, 2024
8bce7b1
Fix compilation of benchmarks, remove obsolete includes
MaelRL Feb 24, 2024
de5b838
Fix bitset checks and type consistency
MaelRL Feb 24, 2024
94987d6
Minor doc change
MaelRL Feb 24, 2024
bccfec0
Use traits functors, not CGAL object class member functions
MaelRL Feb 24, 2024
9e8757f
Silence warnings
MaelRL Feb 25, 2024
bb5f0d0
Benchmarks fixes
MaelRL Feb 25, 2024
1ed1140
Add point caching
MaelRL Feb 26, 2024
253f165
Tiny iostream change
MaelRL Feb 26, 2024
4d26e7b
Remove accidental (and pointless) usages of NPs meant for DC in MC
MaelRL Feb 26, 2024
884aa7e
Remove tmp code
MaelRL Feb 26, 2024
5523f23
Use a hash map in TBB-less Marching Cubes
MaelRL Feb 26, 2024
a672dca
Fix creating isolated vertices in MC
MaelRL Feb 26, 2024
a4a2f2f
Use the free functions to construct domains in the most basic examples
MaelRL Feb 26, 2024
522999a
Add missing function in IsosurfacingDomain_3 concept
MaelRL Feb 26, 2024
fbfd64b
Remove useless parameter simplify API call
MaelRL Feb 26, 2024
bed29f2
Make some minor hardcoded value parameters
MaelRL Feb 26, 2024
3526137
Tests for Isosurfacing_3
MaelRL Feb 27, 2024
b64b616
Fix template parameter of specialization + const correctness
MaelRL Feb 27, 2024
0028b5a
Use a more generic API to tolerate ranges of arrays
MaelRL Feb 27, 2024
9235994
Revert "Follow the OG paper's prescription of the SVD threshold"
MaelRL Feb 27, 2024
1dfadb7
Misc minor changes
MaelRL Feb 27, 2024
a415a02
Fix example name
MaelRL Feb 27, 2024
638b1ca
Tiny CMakeLists fix
MaelRL Feb 27, 2024
adf17a8
Fix typo (tparam > param)
MaelRL Feb 27, 2024
c727b77
Work on user manual
MaelRL Feb 28, 2024
f37a98c
Add missing header includes
MaelRL Feb 28, 2024
02dad0d
Minor benchmark tweak
MaelRL Feb 28, 2024
0d289e2
Add a comment
MaelRL Feb 28, 2024
a9907dd
Add 'Isosurfacing' to some concept names
MaelRL Feb 29, 2024
2d97a31
Add some assertions to ensure that arrays of correct size are used in…
MaelRL Feb 29, 2024
54012a7
Do not provide a default value for finite difference-based gradients
MaelRL Feb 29, 2024
020040c
Clean CMakeLists.txt
MaelRL Feb 29, 2024
6a77c7b
Avoid computing points when the cell is trivial
MaelRL Feb 29, 2024
f870241
Fix output filename
MaelRL Feb 29, 2024
910d5cf
use lower case for partition traits descriptors
MaelRL Feb 29, 2024
df96e5c
Improve doc phrasing
MaelRL Feb 29, 2024
0346018
Rename image example
MaelRL Feb 29, 2024
90db798
Add an example with VTK images
MaelRL Mar 1, 2024
4915898
Update user manual
MaelRL Mar 1, 2024
bfc9aaf
Use an array instead of a fixed size vector
MaelRL Mar 1, 2024
4c82e27
Fix VC++ max
afabri Mar 5, 2024
bc203b2
Add more VTK readers for the VTK image example
MaelRL Mar 5, 2024
1cb40fa
Use a more interesting implicit function in the DC example
MaelRL Mar 5, 2024
ac51466
Minor fixes for the implicit function example
MaelRL Mar 5, 2024
fc902c0
Update copyright
MaelRL Mar 5, 2024
605860f
use raw string
sloriot Mar 5, 2024
5e2667d
Doc improvements
MaelRL Mar 5, 2024
aed3aa4
Add missing image
MaelRL Mar 5, 2024
96a5b37
Minor doc fixes
MaelRL Mar 5, 2024
6a2d3c1
Update dependencies
MaelRL Mar 5, 2024
adb628b
fix doc warnings
sloriot Mar 5, 2024
f4ba6e3
Remove obsolete code
MaelRL Mar 5, 2024
cdfc8c0
Always use Parallel_if_available_tag in examples
MaelRL Mar 5, 2024
b990dcc
Fix warning
MaelRL Mar 5, 2024
c604235
use size_t instead of int for max range values
sloriot Mar 5, 2024
7d158b4
Fix using the mesh point when the SotM is built from a tree
MaelRL Mar 14, 2024
a731368
fix warnings
sloriot Mar 21, 2024
c232349
int -> std::size_t to avoid warning
afabri Mar 22, 2024
fb253ac
Fix double "Figure" in doc
MaelRL Mar 22, 2024
2441f91
Fixes after review
MaelRL Mar 22, 2024
d79d73b
Implement convenience function
MaelRL Mar 25, 2024
6ac3281
Safeguard against division by zero
MaelRL Mar 25, 2024
5e9e6ed
Add some documentation about "compute_discrete_gradients()"
MaelRL Mar 25, 2024
fd1651a
Fix unused variable warnings by disabling not-yet-implemented function
MaelRL Mar 27, 2024
bebb730
Try to fix "no declaration" error
MaelRL Mar 27, 2024
1fcd602
added vtk image
ange-clement Mar 27, 2024
1db1b27
Merge remote-tracking branch 'cgal/master' into HEAD
sloriot Mar 27, 2024
6bd7b80
add missing const
sloriot Mar 28, 2024
f5a24ec
update polyline writing functions
sloriot Mar 28, 2024
11a0fc7
add missing requirement
sloriot Mar 28, 2024
d6125de
accomodate API changes in the Orthtree package
sloriot Mar 28, 2024
c1dd231
replace auto with type
sloriot Mar 28, 2024
bf9235e
hide unused function
sloriot Mar 28, 2024
c1d38bb
move examples using undocumented features to test
sloriot Mar 28, 2024
2bb65f7
Add space
MaelRL Mar 27, 2024
c3391df
fixed warning
soesau Mar 28, 2024
2d66b97
update deps
sloriot Mar 28, 2024
4e7bfc0
remove example that is now in test
sloriot Mar 28, 2024
03aab53
workaround non-matching with Apple-clang
sloriot Mar 29, 2024
3feca8a
typos
afabri Apr 3, 2024
d3c17c5
Update 120 px thumbnail
MaelRL Apr 3, 2024
221300c
Rename Grid-Image_3 conversion functions
MaelRL Apr 4, 2024
dc0ce8f
Fix refinement of low level concepts
MaelRL Apr 4, 2024
6178687
Misc doc fixes
MaelRL Apr 4, 2024
d4a3d74
Add some debugging verbose
MaelRL Apr 4, 2024
40c9c56
add OpenVDB partition for Marching cubes, in an example
janetournois Jun 14, 2024
50af18c
test with and without TCM
janetournois Jun 14, 2024
ccf0574
link with Eigen
janetournois Jun 17, 2024
29130c5
wip dual contouring for openvdb
janetournois Jun 17, 2024
82a4a35
fix partition traits
janetournois Jun 18, 2024
4a170b9
Fix "for_each_vertex" functor
MaelRL Jun 19, 2024
7a4fe82
Interplate the value field instead of using a voxel-constant field
MaelRL Jun 19, 2024
2443ac9
Misc minor changes
MaelRL Jun 19, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
build
/*build*
/*/*/*/build
/*/*/*/VC*
Expand Down
4 changes: 2 additions & 2 deletions Arrangement_on_surface_2/include/CGAL/Arr_conic_traits_2.h
Original file line number Diff line number Diff line change
Expand Up @@ -2496,7 +2496,7 @@ class Arr_conic_traits_2 {
double min_dist = -1;
Integer aux_coeffs[6];
for (int k = 1; k <= 2; ++k) {
// Get the integer coefficients of the k'th auxiliary conic curve.
// Get the integer coefficients of the k-th auxiliary conic curve.
aux_rat_coeffs[0] = (k == 1) ? r_1 : r_2;
aux_rat_coeffs[1] = (k == 1) ? s_1 : s_2;
aux_rat_coeffs[2] = (k == 1) ? t_1 : t_2;
Expand All @@ -2512,7 +2512,7 @@ class Arr_conic_traits_2 {
(CGAL::sign(aux_coeffs[2]) == ZERO)) ? 1 : 2;

// Compute the x- and y-coordinates of intersection points of the base
// conic and the k'th auxiliary conic.
// conic and the k-th auxiliary conic.
int n_xs = compute_resultant_roots(*nt_traits,
base_coeffs[0], base_coeffs[1],
base_coeffs[2],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -590,7 +590,7 @@ bool _Bezier_cache<NtTraits>::_intersection_params

// Consruct the bivariate polynomial that corresponds to Equation I.
// Note that we represent a bivariate polynomial as a vector of univariate
// polynomials, whose i'th entry corresponds to the coefficient of t^i,
// polynomials, whose i-th entry corresponds to the coefficient of t^i,
// which is in turn a polynomial it s.
const int degX_2 = nt_traits.degree (polyX_2);
std::vector<Polynomial> coeffsX_st (degX_2 < 0 ? 1 : (degX_2 + 1));
Expand Down Expand Up @@ -657,7 +657,7 @@ void _Bezier_cache<NtTraits>::_self_intersection_params

// Consruct the bivariate polynomial that corresponds to Equation I.
// Note that we represent a bivariate polynomial as a vector of univariate
// polynomials, whose i'th entry corresponds to the coefficient of t^i,
// polynomials, whose i-th entry corresponds to the coefficient of t^i,
// which is in turn a polynomial it s.
const int degX = nt_traits.degree (polyX);
CGAL_assertion(degX > 0);
Expand Down Expand Up @@ -771,7 +771,7 @@ _Bezier_cache<NtTraits>::_compute_resultant
if (nt_traits.degree (mat[i][i]) < 0)
{
// If the current diagonal value is a zero polynomial, try to replace
// the current i'th row with a row with a higher index k, such that
// the current i-th row with a row with a higher index k, such that
// mat[k][i] is not a zero polynomial.

found_row = false;
Expand All @@ -786,7 +786,7 @@ _Bezier_cache<NtTraits>::_compute_resultant

if (found_row)
{
// Swap the i'th and the k'th rows (note that we start from the i'th
// Swap the i-th and the k-th rows (note that we start from the i-th
// column, because the first i entries in every row with index i or
// higher should be zero by now).
for (j = i; j < dim; j++)
Expand All @@ -808,7 +808,7 @@ _Bezier_cache<NtTraits>::_compute_resultant
}
}

// Zero the whole i'th column of the following rows.
// Zero the whole i-th column of the following rows.
for (k = i + 1; k < dim; k++)
{
if (nt_traits.degree (mat[k][i]) >= 0)
Expand All @@ -821,7 +821,7 @@ _Bezier_cache<NtTraits>::_compute_resultant
mat[k][j] = mat[k][j] * mat[i][i] - mat[i][j] * value;
}

// We multiplied the current row by the i'th diagonal entry, thus
// We multiplied the current row by the i-th diagonal entry, thus
// multiplying the determinant value by it. We therefore increment
// the exponent of mat[i][i] in the normalization factor.
exp_fact[i] = exp_fact[i] + 1;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -411,7 +411,7 @@ class _Bezier_curve_2 :
}

/*!
* Get the i'th control point.
* Get the i-th control point.
* \pre i must be between 0 and n - 1, where n is the number of control
* points.
*/
Expand Down Expand Up @@ -709,7 +709,7 @@ void _Bezier_curve_2_rep<RatKer, AlgKer, NtTrt,
px = pts_begin->x();
py = pts_begin->y();

// By simplifying (1 - t)^(n-k) we obtain that the k'th expression of
// By simplifying (1 - t)^(n-k) we obtain that the k-th expression of
// the above sum is given by:
//
// n-k
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -572,7 +572,7 @@ class Conic_arc_2 {
int k;

for (k = 1; k <= 2; ++k) {
// Get the integer coefficients of the k'th auxiliary conic curve.
// Get the integer coefficients of the k-th auxiliary conic curve.
aux_rat_coeffs[0] = (k == 1) ? r_1 : r_2;
aux_rat_coeffs[1] = (k == 1) ? s_1 : s_2;
aux_rat_coeffs[2] = (k == 1) ? t_1 : t_2;
Expand All @@ -593,7 +593,7 @@ class Conic_arc_2 {
}

// Compute the x- and y-coordinates of intersection points of the base
// conic and the k'th auxiliary conic.
// conic and the k-th auxiliary conic.
n_xs = compute_resultant_roots(nt_traits,
base_coeffs[0], base_coeffs[1],
base_coeffs[2],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1078,7 +1078,7 @@ class Conic_x_monotone_arc_2 : public ConicArc {
}

public:
/*! Obtain the i'th order derivative by x of the conic at the point p=(x,y).
/*! Obtain the i-th order derivative by x of the conic at the point p=(x,y).
* \param p The point where we derive.
* \param i The order of the derivatives (either 1, 2 or 3).
* \param slope_numer The numerator of the slope.
Expand Down Expand Up @@ -1187,7 +1187,7 @@ class Conic_x_monotone_arc_2 : public ConicArc {
CGAL_error();
}

/*! Obtain the i'th order derivative by y of the conic at the point p=(x,y).
/*! Obtain the i-th order derivative by y of the conic at the point p=(x,y).
* \param p The point where we derive.
* \param i The order of the derivatives (either 1, 2 or 3).
* \param slope_numer The numerator of the slope.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ bisect_control_polygon_2(InputIterator ctrl_pts_begin,
while (last_index > 0)
{
// Construct (m - 1) control points from the m point we currently have,
// where the new i'th point is the midpoint between p[i] and p[i + 1].
// where the new i-th point is the midpoint between p[i] and p[i + 1].
for (i = 0; i < last_index; ++i)
vec[i] = midpoint(vec[i], vec[i + 1]);

Expand Down Expand Up @@ -134,7 +134,7 @@ typename InputIterator::value_type point_on_Bezier_curve_2
while (last_index > 0)
{
// Construct (m - 1) control points from the m point we currently have,
// where the new i'th point is given by: (1 - t0)*p[i] + t0*p[i + 1].
// where the new i-th point is given by: (1 - t0)*p[i] + t0*p[i + 1].
for (i = 0; i < last_index; ++i)
{
vec[i] = _Point_2(comp_t0*vec[i].x() + t0*vec[i + 1].x(),
Expand Down Expand Up @@ -197,7 +197,7 @@ typename InputIterator::value_type de_Casteljau_2
while (last_index > 0)
{
// Construct (m - 1) control points from the m point we currently have,
// where the new i'th point is given by: (1 - t0)*p[i] + t0*p[i + 1].
// where the new i-th point is given by: (1 - t0)*p[i] + t0*p[i + 1].
for (i = 0; i < last_index; ++i)
{
vec[i] = _Point_2(comp_t0*vec[i].x() + t0*vec[i + 1].x(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2704,7 +2704,7 @@ class Arr_polycurve_basic_traits_2 {

if ((!is_vert(cv[0]) && (comp_x(get_min_v(cv[i]), q) == EQUAL)) ||
(is_vert(cv[0]) && equal(get_min_v(cv[i]), q))){
// q is the left endpoint of the i'th subcurve:
// q is the left endpoint of the i-th subcurve:
if (to_right) return i;
else {
// to_left
Expand All @@ -2722,7 +2722,7 @@ class Arr_polycurve_basic_traits_2 {
if ((!is_vert(cv[0]) && (comp_x(get_max_v(cv[i]), q) == EQUAL)) ||
(is_vert(cv[0]) && equal(get_max_v(cv[i]), q)))
{
// q is the right endpoint of the i'th subcurve:
// q is the right endpoint of the i-th subcurve:
if (!to_right) return i;
else {
if (direction == SMALLER) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -605,15 +605,15 @@ class Arr_polycurve_traits_2 :
if (dir == SMALLER){
// Check whether the split point is xcv[i]'s source or target.
if (equal(max_vertex(xcv[i]), p)) {
// The entire i'th subcurve belongs to xcv1:
// The entire i-th subcurve belongs to xcv1:
xcv1.push_back(xcv[i]);
}
else if (equal(min_vertex(xcv[i]), p)) {
// The entire i'th subcurves belongs to xcv2:
// The entire i-th subcurves belongs to xcv2:
xcv2.push_back(xcv[i]);
}
else {
// The i'th subcurve should be split: The left part(seg1)
// The i-th subcurve should be split: The left part(seg1)
// goes to xcv1, and the right part(seg2) goes to xcv2.
X_monotone_subcurve_2 seg1, seg2;
m_poly_traits.subcurve_traits_2()->split_2_object()(xcv[i], p,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -541,7 +541,7 @@ class CORE_algebraic_number_traits

for (i = 1; i <= n_roots; i++)
{
// Get the i'th real-valued root.
// Get the i-th real-valued root.
*oi = rootOf(poly, i);
++oi;
}
Expand Down Expand Up @@ -603,7 +603,7 @@ class CORE_algebraic_number_traits

for (i = 0; i < root_intervals.size(); i++)
{
// Get the i'th real-valued root.
// Get the i-th real-valued root.
*oi = rootOf(poly, root_intervals[i]);
++oi;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -197,11 +197,11 @@ class Arr_construction_event_base :
void init_subcurve_in_arrangement_flags(size_t n)
{ m_isCurveInArr.resize(n, false); }

/*! Check if the i'th subcurve is in the arrangement. */
/*! Check if the i-th subcurve is in the arrangement. */
bool is_subcurve_in_arrangement(unsigned int i) const
{ return (m_isCurveInArr[i]); }

/*! Set the flag indicating whether the i'th subcurve is in the arrangement.
/*! Set the flag indicating whether the i-th subcurve is in the arrangement.
*/
void set_subcurve_in_arrangement(unsigned int i, bool flag)
{ m_isCurveInArr[i] = flag; }
Expand Down
6 changes: 3 additions & 3 deletions BGL/doc/BGL/BGL.txt
Original file line number Diff line number Diff line change
Expand Up @@ -585,7 +585,7 @@ so that they <em>virtually</em> become border edges when exploring a seam mesh w
The input mesh is referred to as <em>underlying</em> mesh of the seam mesh.
We denote `tm` and `sm` the underlying mesh and the seam mesh respectively.

Figure \cgalFigureRef{fig_Seam_mesh_1} shows an example of mesh on which two
\cgalFigureRef{fig_Seam_mesh_1} shows an example of mesh on which two
edges, defined by the halfedge pairs `h2-h3` and `h6-h7`, are marked as seams.
The introduction of virtual borders modifies the elementary \bgl graph traversal
operations: when we circulate around the target of `h7` in the underlying mesh,
Expand All @@ -599,7 +599,7 @@ A seam mesh with two seam edges `(h2, h3)` and `(h6, h7)`.
\cgalFigureEnd

A vertex of the underlying mesh may correspond to multiple vertices in the seam mesh.
For example in Figure \cgalFigureRef{fig_Seam_mesh_1}, the target of `h7` corresponds to two
For example in \cgalFigureRef{fig_Seam_mesh_1}, the target of `h7` corresponds to two
vertices in the seam mesh, on either side of the virtual border created by the seam edges.
For this reason, a vertex `v` of the seam mesh is internally represented as a halfedge `h`
of the seam mesh. To obtain a canonical definition, the halfedge `h` is defined as the halfedge
Expand All @@ -611,7 +611,7 @@ For vertices `v` in the underlying mesh that are not on a seam edge, we choose
\subsubsection BGLSeamMeshTraversal Seam Mesh Traversal

Using the function `next(halfedge_descriptor, FaceGraph)`, we can walk around a face but also around
a border of a mesh. For the seam mesh `sm` from Figure \cgalFigureRef{fig_Seam_mesh_1},
a border of a mesh. For the seam mesh `sm` from \cgalFigureRef{fig_Seam_mesh_1},
we have `opposite(h2, sm) == h3*`, and it holds that `face(h3*, sm) == null_face()`.
We can walk along this virtual border: starting at `h3*` and repeatedly calling `next(..,sm)`,
we will traverse `h6*`, `h7*`, `h2*`, before reaching `h3*` again.
Expand Down
2 changes: 1 addition & 1 deletion CGAL_Core/include/CGAL/CORE/poly/Poly.tcc
Original file line number Diff line number Diff line change
Expand Up @@ -382,7 +382,7 @@ int Polynomial<NT>::getTrueDegree() const {
return -1; // Zero polynomial
}

//get i'th Coeff. We check whether i is not greater than the
//get i-th Coeff. We check whether i is not greater than the
// true degree and if not then return coeff[i] o/w 0
template <class NT>
NT Polynomial<NT>::getCoeffi(int i) const {
Expand Down
7 changes: 3 additions & 4 deletions CGAL_ImageIO/include/CGAL/IO/read_vtk_image_data.h
Original file line number Diff line number Diff line change
Expand Up @@ -88,11 +88,10 @@ read_vtk_image_data(vtkImageData* vtk_image, Image_3::Own owning = Image_3::OWN_
// If there is more than a scalar per point, vtk_image->data is not immediately
// interpretable in Image_3->data
CGAL_assertion(owning == Image_3::OWN_THE_DATA || cn == 1);

CGAL_assertion(vtk_image->GetPointData()->GetScalars()->GetNumberOfTuples() == dims[0]*dims[1]*dims[2]);
CGAL_assertion(vtk_image->GetPointData()->GetScalars()->GetNumberOfTuples() == static_cast<vtkIdType>(image->xdim*image->ydim*image->zdim));

if(owning == Image_3::OWN_THE_DATA) {
int dims_n = dims[0]*dims[1]*dims[2];
std::size_t dims_n = image->xdim*image->ydim*image->zdim;
image->data = ::ImageIO_alloc(dims_n * image->wdim);

// std::cerr << "GetNumberOfTuples() = " << vtk_image->GetPointData()->GetScalars()->GetNumberOfTuples() << "\n"
Expand All @@ -110,7 +109,7 @@ read_vtk_image_data(vtkImageData* vtk_image, Image_3::Own owning = Image_3::OWN_
char* src = static_cast<char*>(vtk_image->GetPointData()->GetScalars()->GetVoidPointer(0));
char* dest = static_cast<char*>(image->data);

for(int i=0; i<dims_n; ++i)
for(std::size_t i=0; i<dims_n; ++i)
{
// multiply by image->wdim because we casted to char* and not the actual data type
memcpy(dest + image->wdim*i, src + cn*image->wdim*i, image->wdim);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ operator()(const AlgebraicKernelForSpheres::Polynomial_for_spheres_2_3 &p,
OutputIterator res);

/*!
Computes the `i`th `x`-critical point of polynomial `p`.
Computes the `i`-th `x`-critical point of polynomial `p`.
*/
template < class OutputIterator >
AlgebraicKernelForSpheres::Root_for_spheres_2_3
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ operator()(const AlgebraicKernelForSpheres::Polynomial_for_spheres_2_3 &p,
OutputIterator res);

/*!
Computes the `i`th `y`-critical point of polynomial `p`.
Computes the `i`-th `y`-critical point of polynomial `p`.
*/
template < class OutputIterator >
AlgebraicKernelForSpheres::Root_for_spheres_2_3
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ operator()(const AlgebraicKernelForSpheres::Polynomial_for_spheres_2_3 &p,
OutputIterator res);

/*!
Computes the `i`th `z`-critical point of polynomial `p`.
Computes the `i`-th `z`-critical point of polynomial `p`.
*/
template < class OutputIterator >
AlgebraicKernelForSpheres::Root_for_spheres_2_3
Expand Down
8 changes: 4 additions & 4 deletions Classification/doc/Classification/Classification.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ This component implements the algorithm described in \cgalCite{cgal:lm-clscm-12}

\section Classification_Organization Package Organization

%Classification of data sets is achieved as follows (see Figure \cgalFigureRef{Classification_organization_fig}):
%Classification of data sets is achieved as follows (see \cgalFigureRef{Classification_organization_fig}):

- some analysis is performed on the input data set;
- features are computed based on this analysis;
Expand Down Expand Up @@ -314,15 +314,15 @@ Though it is possible to set them up one by one, \cgal also provides a method [t

- the same mechanism is repeated until all features' ranges have been tested. Weights are only changed one by one, the other ones are kept to the values that gave the latest best score.

This usually converges to a satisfying solution (see Figure \cgalFigureRef{Classification_trainer_fig}). The number of trials is user defined, set to 300 by default. Using at least 10 times the number of features is advised (for example, at least 300 iterations if 30 features are used). If the solution is not satisfying, more inliers can be selected, for example, in a region that the user identifies as misclassified with the current configuration. The training algorithm keeps, as initialization, the best weights found at the previous round and carries on trying new weights by taking new inliers into account.
This usually converges to a satisfying solution (see \cgalFigureRef{Classification_trainer_fig}). The number of trials is user defined, set to 300 by default. Using at least 10 times the number of features is advised (for example, at least 300 iterations if 30 features are used). If the solution is not satisfying, more inliers can be selected, for example, in a region that the user identifies as misclassified with the current configuration. The training algorithm keeps, as initialization, the best weights found at the previous round and carries on trying new weights by taking new inliers into account.

\cgalFigureBegin{Classification_trainer_fig,classif_training.png}
Example of evolution of the mean intersection-over-union. The purple curve is the score computed at the current iteration, green curve is the best score found so far.
\cgalFigureEnd

\subsubsection Classification_sowf_result Result

Figure \cgalFigureRef{Classification_sowf_result_fig} shows an example of output on a defect-laden point set. The accuracy on this example is 0.97 with a mean intersection-over-union of 0.85 (see section \ref Classification_evaluation).
\cgalFigureRef{Classification_sowf_result_fig} shows an example of output on a defect-laden point set. The accuracy on this example is 0.97 with a mean intersection-over-union of 0.85 (see section \ref Classification_evaluation).

\cgalFigureBegin{Classification_sowf_result_fig,noise_outliers.png}
Example of classification on a point set with medium noise and outliers (left: input, right: output). _Ground_ is orange, _roofs_ are pink, _vegetation_ is green. Outliers are classified with an additional label _outlier_ in black.
Expand Down Expand Up @@ -398,7 +398,7 @@ smoothing by providing a model of `CGAL::Classification::NeighborQuery`.

- `CGAL::Classification::classify_with_graphcut()`: this method
offers the best quality but requires longer computation time (see
Figure \cgalFigureRef{Classification_image}, bottom-right). The
\cgalFigureRef{Classification_image}, bottom-right). The
total energy that is minimized is the sum of the partial data term
\f$E_{di}(x_i)\f$ and of a pairwise interaction energy defined by the
standard Potts model \cgalCite{cgal:l-mrfmi-09} :
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ namespace CGAL
};

//count the number of time a given type have been found
//within a tuple, until reaching position the k'th type of the tuple.
//within a tuple, until reaching position the k-th type of the tuple.
//dim is the total size of the tuple
template <class Type,int k,class T,
int dim=CGAL::internal::My_length<T>::value-1>
Expand Down Expand Up @@ -191,7 +191,7 @@ namespace CGAL
};

//count the number of time a type different from Type have been found
//within a tuple, until reaching position the k'th type of the tuple.
//within a tuple, until reaching position the k-th type of the tuple.
//dim is the total size of the tuple
template <class Type, int k,class T,
int dim=CGAL::internal::My_length<T>::value-1>
Expand Down Expand Up @@ -339,7 +339,7 @@ namespace CGAL
};

//Same as Foreach_static excepted that Functor
//is called for case k only if the k'th type in the tuple
//is called for case k only if the k-th type in the tuple
//is different from Void. Note that to the converse of Foreach_static
//Functor are called from n =0 to k
template <class Functor,class T,int n=0, int startn=0>
Expand All @@ -365,7 +365,7 @@ namespace CGAL
};

//Same as Foreach_static_restricted excepted that Functor
//is called for case k only if the k'th type in the tuple
//is called for case k only if the k-th type in the tuple
//is different from Void and k!=j.
template <class Functor,int j,class T,int n=0>
struct Foreach_static_restricted_except;
Expand Down
15 changes: 15 additions & 0 deletions Data/data/images/torus_gray_image.vti

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions Documentation/doc/Documentation/packages.txt
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@
\package_listing{Skin_surface_3}
\package_listing{SMDS_3}
\package_listing{Mesh_3}
\package_listing{Isosurfacing_3}
\package_listing{Tetrahedral_remeshing}
\package_listing{Periodic_3_mesh_3}
\package_listing{Alpha_wrap_3}
Expand Down
Loading
Loading