mirror of https://github.com/CGAL/cgal
Merge remote-tracking branch 'cgal/master' into pr/janetournois/7754
# Conflicts: # Polyhedron/demo/Polyhedron/resources/shader_c3t3.frag
This commit is contained in:
commit
5f27627e02
|
|
@ -1,6 +1,6 @@
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\ingroup PkgAlgebraicFoundationsInteroperabilityConcepts
|
\ingroup PkgAlgebraicFoundationsAlgebraicStructuresConcepts
|
||||||
\cgalConcept
|
\cgalConcept
|
||||||
|
|
||||||
Two types `A` and `B` are a model of the `ExplicitInteroperable`
|
Two types `A` and `B` are a model of the `ExplicitInteroperable`
|
||||||
|
|
@ -27,4 +27,3 @@ class ExplicitInteroperable {
|
||||||
public:
|
public:
|
||||||
|
|
||||||
}; /* end ExplicitInteroperable */
|
}; /* end ExplicitInteroperable */
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\ingroup PkgAlgebraicFoundationsFractionsConcepts
|
\ingroup PkgAlgebraicFoundationsAlgebraicStructuresConcepts
|
||||||
\cgalConcept
|
\cgalConcept
|
||||||
|
|
||||||
A type is considered as a `Fraction`, if there is a reasonable way to
|
A type is considered as a `Fraction`, if there is a reasonable way to
|
||||||
|
|
@ -17,4 +17,3 @@ class Fraction {
|
||||||
public:
|
public:
|
||||||
|
|
||||||
}; /* end Fraction */
|
}; /* end Fraction */
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\ingroup PkgAlgebraicFoundationsConcepts
|
\ingroup PkgAlgebraicFoundationsAlgebraicStructuresConcepts
|
||||||
\cgalConcept
|
\cgalConcept
|
||||||
|
|
||||||
A model of the concept `FromDoubleConstructible` is required
|
A model of the concept `FromDoubleConstructible` is required
|
||||||
|
|
@ -27,4 +27,3 @@ FromDoubleConstructible(const double& d);
|
||||||
/// @}
|
/// @}
|
||||||
|
|
||||||
}; /* end FromDoubleConstructible */
|
}; /* end FromDoubleConstructible */
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\ingroup PkgAlgebraicFoundationsConcepts
|
\ingroup PkgAlgebraicFoundationsAlgebraicStructuresConcepts
|
||||||
\cgalConcept
|
\cgalConcept
|
||||||
|
|
||||||
A model of the concept `FromIntConstructible` is required
|
A model of the concept `FromIntConstructible` is required
|
||||||
|
|
@ -28,4 +28,3 @@ FromIntConstructible(int& i);
|
||||||
/// @}
|
/// @}
|
||||||
|
|
||||||
}; /* end FromIntConstructible */
|
}; /* end FromIntConstructible */
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\ingroup PkgAlgebraicFoundationsInteroperabilityConcepts
|
\ingroup PkgAlgebraicFoundationsAlgebraicStructuresConcepts
|
||||||
\cgalConcept
|
\cgalConcept
|
||||||
|
|
||||||
Two types `A` and `B` are a model of the concept
|
Two types `A` and `B` are a model of the concept
|
||||||
|
|
@ -29,4 +29,3 @@ class ImplicitInteroperable {
|
||||||
public:
|
public:
|
||||||
|
|
||||||
}; /* end ImplicitInteroperable */
|
}; /* end ImplicitInteroperable */
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,16 @@
|
||||||
#ifndef CGAL_APOLLONIUS_GRAPH_2_TEST_H
|
#ifndef CGAL_APOLLONIUS_GRAPH_2_TEST_H
|
||||||
#define CGAL_APOLLONIUS_GRAPH_2_TEST_H
|
#define CGAL_APOLLONIUS_GRAPH_2_TEST_H
|
||||||
|
|
||||||
#include <cassert>
|
|
||||||
#include <CGAL/enum.h>
|
|
||||||
#include <CGAL/use.h>
|
|
||||||
|
|
||||||
#include <CGAL/Vector_2.h> // this is done in order to avoid error
|
|
||||||
// when the Segment_2_Segment_2_intersection.h file is included from
|
|
||||||
// the Triangulation_euclidean_traits_2.h file.
|
|
||||||
|
|
||||||
#include <CGAL/Apollonius_graph_2.h>
|
#include <CGAL/Apollonius_graph_2.h>
|
||||||
#include <CGAL/Apollonius_graph_hierarchy_2.h>
|
#include <CGAL/Apollonius_graph_hierarchy_2.h>
|
||||||
#include <CGAL/Apollonius_graph_traits_2.h>
|
#include <CGAL/Apollonius_graph_traits_2.h>
|
||||||
#include <CGAL/Apollonius_graph_filtered_traits_2.h>
|
#include <CGAL/Apollonius_graph_filtered_traits_2.h>
|
||||||
//#include <CGAL/new_traits/Apollonius_graph_new_filtered_traits_2.h>
|
|
||||||
|
#include <cassert>
|
||||||
|
#include <CGAL/enum.h>
|
||||||
|
#include <CGAL/use.h>
|
||||||
|
#include <CGAL/Random.h>
|
||||||
|
|
||||||
|
|
||||||
#include "IO/Null_output_stream.h"
|
#include "IO/Null_output_stream.h"
|
||||||
|
|
||||||
|
|
@ -839,24 +836,29 @@ bool test_algo_generic(InputStream& is)
|
||||||
// file I/O methods
|
// file I/O methods
|
||||||
//--------------------------------------------------------------------
|
//--------------------------------------------------------------------
|
||||||
{
|
{
|
||||||
std::ofstream ofs("ag_testsuite.tmp");
|
std::string fname = "ag_testsuite_" + std::to_string(CGAL::Random().get_seed()) + ".tmp";
|
||||||
|
std::cout << "writing to " << fname << std::endl;
|
||||||
|
|
||||||
|
std::ofstream ofs(fname);
|
||||||
assert( ofs );
|
assert( ofs );
|
||||||
ag.file_output(ofs);
|
ag.file_output(ofs);
|
||||||
ofs.close();
|
ofs.close();
|
||||||
|
|
||||||
std::ifstream ifs("ag_testsuite.tmp");
|
std::ifstream ifs(fname);
|
||||||
assert( ifs );
|
assert( ifs );
|
||||||
ag.file_input(ifs);
|
ag.file_input(ifs);
|
||||||
ifs.close();
|
ifs.close();
|
||||||
assert( ag.is_valid() );
|
assert( ag.is_valid() );
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
std::ofstream ofs("ag_testsuite.tmp");
|
std::string fname = "ag_testsuite_" + std::to_string(CGAL::Random().get_seed()) + ".tmp";
|
||||||
|
std::cout << "writing to " << fname << std::endl;
|
||||||
|
std::ofstream ofs(fname);
|
||||||
assert( ofs );
|
assert( ofs );
|
||||||
ofs << ag;
|
ofs << ag;
|
||||||
ofs.close();
|
ofs.close();
|
||||||
|
|
||||||
std::ifstream ifs("ag_testsuite.tmp");
|
std::ifstream ifs(fname);
|
||||||
assert( ifs );
|
assert( ifs );
|
||||||
ifs >> ag;
|
ifs >> ag;
|
||||||
ifs.close();
|
ifs.close();
|
||||||
|
|
|
||||||
|
|
@ -34,11 +34,7 @@
|
||||||
#include <boost/bind/bind.hpp>
|
#include <boost/bind/bind.hpp>
|
||||||
#include <boost/ptr_container/ptr_vector.hpp>
|
#include <boost/ptr_container/ptr_vector.hpp>
|
||||||
#include <boost/random/mersenne_twister.hpp>
|
#include <boost/random/mersenne_twister.hpp>
|
||||||
#if BOOST_VERSION >= 104700
|
#include <boost/random/uniform_int_distribution.hpp>
|
||||||
# include <boost/random/uniform_int_distribution.hpp>
|
|
||||||
#else
|
|
||||||
# include <boost/random/uniform_int.hpp>
|
|
||||||
#endif
|
|
||||||
#include <boost/random/uniform_01.hpp>
|
#include <boost/random/uniform_01.hpp>
|
||||||
#include <boost/random/normal_distribution.hpp>
|
#include <boost/random/normal_distribution.hpp>
|
||||||
#if defined(CGAL_LINKED_WITH_BOOST_IOSTREAMS) && defined(CGAL_LINKED_WITH_BOOST_SERIALIZATION)
|
#if defined(CGAL_LINKED_WITH_BOOST_IOSTREAMS) && defined(CGAL_LINKED_WITH_BOOST_SERIALIZATION)
|
||||||
|
|
@ -65,17 +61,10 @@ inline void init_feature_class_data(FeatureClassDataFloat& /*data*/, int /*n_cla
|
||||||
}
|
}
|
||||||
typedef std::unordered_set<int> FeatureSet;
|
typedef std::unordered_set<int> FeatureSet;
|
||||||
|
|
||||||
#if BOOST_VERSION >= 104700
|
|
||||||
typedef boost::random::uniform_int_distribution<> UniformIntDist;
|
typedef boost::random::uniform_int_distribution<> UniformIntDist;
|
||||||
typedef boost::random::normal_distribution<> NormalDist;
|
typedef boost::random::normal_distribution<> NormalDist;
|
||||||
typedef boost::random::mt19937 RandomGen;
|
typedef boost::random::mt19937 RandomGen;
|
||||||
typedef boost::random::uniform_01<> UnitDist;
|
typedef boost::random::uniform_01<> UnitDist;
|
||||||
#else
|
|
||||||
typedef boost::uniform_int<> UniformIntDist;
|
|
||||||
typedef boost::normal_distribution<> NormalDist;
|
|
||||||
typedef boost::uniform_01<> UnitDist;
|
|
||||||
typedef boost::mt19937 RandomGen;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
struct ForestParams {
|
struct ForestParams {
|
||||||
size_t n_classes;
|
size_t n_classes;
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ then the default traits class of `::convex_hull_3()` is `Convex_hull_traits_3<R>
|
||||||
\cgalHeading{Implementation}
|
\cgalHeading{Implementation}
|
||||||
|
|
||||||
The algorithm implemented by these functions is the quickhull algorithm of
|
The algorithm implemented by these functions is the quickhull algorithm of
|
||||||
Barnard <I>et al.</I> \cgalCite{bdh-qach-96}.
|
Barber <I>et al.</I> \cgalCite{bdh-qach-96}.
|
||||||
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -100,7 +100,7 @@
|
||||||
, pages = "617--625"
|
, pages = "617--625"
|
||||||
, note = "SIGGRAPH '2005 Conference Proceedings"
|
, note = "SIGGRAPH '2005 Conference Proceedings"
|
||||||
, volume = 24
|
, volume = 24
|
||||||
, url = "https://hal.inria.fr/inria-00226418"
|
, url = "https://inria.hal.science/inria-00226418"
|
||||||
, geombib = "not yet"
|
, geombib = "not yet"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -157,7 +157,7 @@ Pion and Monique Teillaud and Mariette Yvinec"
|
||||||
@ARTICLE{cgal:bdt-hdcvd-14,
|
@ARTICLE{cgal:bdt-hdcvd-14,
|
||||||
AUTHOR = {Mikhail Bogdanov and Olivier Devillers and Monique Teillaud},
|
AUTHOR = {Mikhail Bogdanov and Olivier Devillers and Monique Teillaud},
|
||||||
JOURNAL = {Journal of Computational Geometry},
|
JOURNAL = {Journal of Computational Geometry},
|
||||||
NOTE = {https://hal.inria.fr/hal-00961390},
|
NOTE = {https://inria.hal.science/hal-00961390},
|
||||||
PAGES = {56--85},
|
PAGES = {56--85},
|
||||||
TITLE = {Hyperbolic {Delaunay} complexes and {Voronoi} diagrams made practical},
|
TITLE = {Hyperbolic {Delaunay} complexes and {Voronoi} diagrams made practical},
|
||||||
VOLUME = {5},
|
VOLUME = {5},
|
||||||
|
|
@ -243,7 +243,7 @@ Pion and Monique Teillaud and Mariette Yvinec"
|
||||||
Boissonnat}
|
Boissonnat}
|
||||||
, title = {Mesh Generation from 3D Multi-material Images}
|
, title = {Mesh Generation from 3D Multi-material Images}
|
||||||
, pages = {283--290}
|
, pages = {283--290}
|
||||||
, url = "https://hal.inria.fr/inria-00420228"
|
, url = "https://inria.hal.science/inria-00420228"
|
||||||
, x-international-audience = "yes"
|
, x-international-audience = "yes"
|
||||||
, x-proceedings = "yes"
|
, x-proceedings = "yes"
|
||||||
}
|
}
|
||||||
|
|
@ -257,7 +257,7 @@ Boissonnat}
|
||||||
, pages = "1455-14645"
|
, pages = "1455-14645"
|
||||||
, volume = 28
|
, volume = 28
|
||||||
, year = 2009
|
, year = 2009
|
||||||
, url = "https://hal.inria.fr/inria-00413248"
|
, url = "https://inria.hal.science/inria-00413248"
|
||||||
, x-international-audience = "yes"
|
, x-international-audience = "yes"
|
||||||
, x-editorial-board = "yes"
|
, x-editorial-board = "yes"
|
||||||
}
|
}
|
||||||
|
|
@ -361,7 +361,7 @@ Boissonnat}
|
||||||
TITLE = {Delaunay triangulations on orientable surfaces of low genus},
|
TITLE = {Delaunay triangulations on orientable surfaces of low genus},
|
||||||
YEAR = {2016},
|
YEAR = {2016},
|
||||||
DOI = {10.4230/LIPIcs.SoCG.2016.20},
|
DOI = {10.4230/LIPIcs.SoCG.2016.20},
|
||||||
URL = {https://hal.inria.fr/hal-01276386}
|
URL = {https://inria.hal.science/hal-01276386}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -402,7 +402,7 @@ Boissonnat}
|
||||||
,school = "Universit\'e de {Nice-Sophia Antipolis}"
|
,school = "Universit\'e de {Nice-Sophia Antipolis}"
|
||||||
,address = "France"
|
,address = "France"
|
||||||
,year = 2010
|
,year = 2010
|
||||||
,url = "https://tel.archives-ouvertes.fr/tel-00552215/"
|
,url = "https://theses.hal.science/tel-00552215/"
|
||||||
}
|
}
|
||||||
|
|
||||||
@inproceedings{cgal:ccplr-redtp-10,
|
@inproceedings{cgal:ccplr-redtp-10,
|
||||||
|
|
@ -545,7 +545,7 @@ note="Conference version: Symp. on Geometry Processing 2003"
|
||||||
, year = 2009
|
, year = 2009
|
||||||
, volume = 5757
|
, volume = 5757
|
||||||
, pages = "37--48"
|
, pages = "37--48"
|
||||||
, note = "Full version available as INRIA Research Report 6823 \url{https://hal.inria.fr/inria-00356871}"
|
, note = "Full version available as INRIA Research Report 6823 \url{https://inria.hal.science/inria-00356871}"
|
||||||
}
|
}
|
||||||
|
|
||||||
@inproceedings{cgal:pt-rs-14,
|
@inproceedings{cgal:pt-rs-14,
|
||||||
|
|
@ -747,7 +747,7 @@ Mourrain and Monique Teillaud"
|
||||||
, nickname = "ALENEX '03"
|
, nickname = "ALENEX '03"
|
||||||
, year = 2003
|
, year = 2003
|
||||||
, pages = "37--44"
|
, pages = "37--44"
|
||||||
, url = "https://hal.inria.fr/inria-00344517/"
|
, url = "https://inria.hal.science/inria-00344517/"
|
||||||
}
|
}
|
||||||
|
|
||||||
@article{ cgal:dpt-wt-02
|
@article{ cgal:dpt-wt-02
|
||||||
|
|
@ -766,7 +766,7 @@ Teillaud"
|
||||||
, author = "Olivier Devillers and Monique Teillaud"
|
, author = "Olivier Devillers and Monique Teillaud"
|
||||||
, title = "Perturbations and Vertex Removal in a {3D Delaunay} Triangulation"
|
, title = "Perturbations and Vertex Removal in a {3D Delaunay} Triangulation"
|
||||||
, booktitle = "Proc. 14th ACM-SIAM Sympos. Discrete Algorithms (SODA)"
|
, booktitle = "Proc. 14th ACM-SIAM Sympos. Discrete Algorithms (SODA)"
|
||||||
, url = "https://hal.inria.fr/inria-00166710/"
|
, url = "https://inria.hal.science/inria-00166710/"
|
||||||
, year = 2003
|
, year = 2003
|
||||||
, pages = "313-319"
|
, pages = "313-319"
|
||||||
}
|
}
|
||||||
|
|
@ -778,7 +778,7 @@ Teillaud"
|
||||||
, volume = 44
|
, volume = 44
|
||||||
, year = 2011
|
, year = 2011
|
||||||
, pages = "160--168"
|
, pages = "160--168"
|
||||||
, url = "https://hal.archives-ouvertes.fr/inria-00560388/"
|
, url = "https://theses.hal.science/inria-00560388/"
|
||||||
, doi = "10.1016/j.comgeo.2010.09.010"
|
, doi = "10.1016/j.comgeo.2010.09.010"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -845,7 +845,7 @@ Teillaud"
|
||||||
,school = "Universit\'e de {Nice-Sophia Antipolis}"
|
,school = "Universit\'e de {Nice-Sophia Antipolis}"
|
||||||
,address = "France"
|
,address = "France"
|
||||||
,year = 2003
|
,year = 2003
|
||||||
,url = "https://tel.archives-ouvertes.fr/tel-00832487/"
|
,url = "https://theses.hal.science/tel-00832487/"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1230,7 +1230,7 @@ Teillaud"
|
||||||
TITLE = {{Implementing Delaunay triangulations of the Bolza surface}},
|
TITLE = {{Implementing Delaunay triangulations of the Bolza surface}},
|
||||||
YEAR = {2017},
|
YEAR = {2017},
|
||||||
DOI = {10.4230/LIPIcs.SoCG.2017.44},
|
DOI = {10.4230/LIPIcs.SoCG.2017.44},
|
||||||
URL = {https://hal.inria.fr/hal-01568002},
|
URL = {https://inria.hal.science/hal-01568002},
|
||||||
}
|
}
|
||||||
|
|
||||||
@inproceedings{cgal:j-lrsspp-19,
|
@inproceedings{cgal:j-lrsspp-19,
|
||||||
|
|
@ -1887,13 +1887,13 @@ ABSTRACT = {We present the first complete, exact and efficient C++ implementatio
|
||||||
@article{cgal:btsag-asosr-16,
|
@article{cgal:btsag-asosr-16,
|
||||||
TITLE = {{A Survey of Surface Reconstruction from Point Clouds}},
|
TITLE = {{A Survey of Surface Reconstruction from Point Clouds}},
|
||||||
AUTHOR = {Berger, Matthew and Tagliasacchi, Andrea and Seversky, Lee and Alliez, Pierre and Guennebaud, Gael and Levine, Joshua and Sharf, Andrei and Silva, Claudio},
|
AUTHOR = {Berger, Matthew and Tagliasacchi, Andrea and Seversky, Lee and Alliez, Pierre and Guennebaud, Gael and Levine, Joshua and Sharf, Andrei and Silva, Claudio},
|
||||||
URL = {https://hal.inria.fr/hal-01348404},
|
URL = {https://inria.hal.science/hal-01348404},
|
||||||
JOURNAL = {{Computer Graphics Forum}},
|
JOURNAL = {{Computer Graphics Forum}},
|
||||||
PUBLISHER = {{Wiley}},
|
PUBLISHER = {{Wiley}},
|
||||||
PAGES = {27},
|
PAGES = {27},
|
||||||
YEAR = {2016},
|
YEAR = {2016},
|
||||||
DOI = {10.1111/cgf.12802},
|
DOI = {10.1111/cgf.12802},
|
||||||
PDF = {https://hal.inria.fr/hal-01348404/file/survey-author.pdf},
|
PDF = {https://inria.hal.science/hal-01348404/file/survey-author.pdf},
|
||||||
HAL_ID = {hal-01348404},
|
HAL_ID = {hal-01348404},
|
||||||
HAL_VERSION = {v2}
|
HAL_VERSION = {v2}
|
||||||
}
|
}
|
||||||
|
|
@ -2293,7 +2293,7 @@ location = {Salt Lake City, Utah, USA}
|
||||||
, pages = "75:1-75:9"
|
, pages = "75:1-75:9"
|
||||||
, note = "SIGGRAPH '2009 Conference Proceedings"
|
, note = "SIGGRAPH '2009 Conference Proceedings"
|
||||||
, volume = "28(3)"
|
, volume = "28(3)"
|
||||||
, url = "https://hal.inria.fr/inria-00359288"
|
, url = "https://inria.hal.science/inria-00359288"
|
||||||
, geombib = "not yet"
|
, geombib = "not yet"
|
||||||
, x-editorial-board = {yes}
|
, x-editorial-board = {yes}
|
||||||
, x-proceedings = {yes}
|
, x-proceedings = {yes}
|
||||||
|
|
@ -2768,7 +2768,7 @@ author = "Pedro M.M. de Castro and Frederic Cazals and Sebastien Loriot and Moni
|
||||||
, volume = "40"
|
, volume = "40"
|
||||||
, number = "1"
|
, number = "1"
|
||||||
, pages = "61-78"
|
, pages = "61-78"
|
||||||
, url = "https://hal.inria.fr/inria-00344310/"
|
, url = "https://inria.hal.science/inria-00344310/"
|
||||||
, doi = "10.1016/j.comgeo.2007.06.003"
|
, doi = "10.1016/j.comgeo.2007.06.003"
|
||||||
, x-international-audience = "yes"
|
, x-international-audience = "yes"
|
||||||
, x-editorial-board = "yes"
|
, x-editorial-board = "yes"
|
||||||
|
|
@ -2788,7 +2788,7 @@ author = "Pedro M.M. de Castro and Frederic Cazals and Sebastien Loriot and Moni
|
||||||
, title = "Complexity of {Delaunay} triangulation for points on lower-dimensional polyhedra"
|
, title = "Complexity of {Delaunay} triangulation for points on lower-dimensional polyhedra"
|
||||||
, booktitle = "Proc. 18th ACM-SIAM Sympos. Discrete Algorithms"
|
, booktitle = "Proc. 18th ACM-SIAM Sympos. Discrete Algorithms"
|
||||||
, nickname = "SODA"
|
, nickname = "SODA"
|
||||||
, url = "https://hal.inria.fr/inria-00182835/"
|
, url = "https://inria.hal.science/inria-00182835/"
|
||||||
, year = 2007
|
, year = 2007
|
||||||
, pages = "1106--1113"
|
, pages = "1106--1113"
|
||||||
}
|
}
|
||||||
|
|
@ -3213,14 +3213,14 @@ pages = "207--221"
|
||||||
@techreport{frey:inria-00069921,
|
@techreport{frey:inria-00069921,
|
||||||
TITLE = {{MEDIT : An interactive Mesh visualization Software}},
|
TITLE = {{MEDIT : An interactive Mesh visualization Software}},
|
||||||
AUTHOR = {Frey, Pascal},
|
AUTHOR = {Frey, Pascal},
|
||||||
URL = {https://hal.inria.fr/inria-00069921},
|
URL = {https://inria.hal.science/inria-00069921},
|
||||||
NUMBER = {RT-0253},
|
NUMBER = {RT-0253},
|
||||||
PAGES = {41},
|
PAGES = {41},
|
||||||
INSTITUTION = {{INRIA}},
|
INSTITUTION = {{INRIA}},
|
||||||
YEAR = {2001},
|
YEAR = {2001},
|
||||||
MONTH = Dec,
|
MONTH = Dec,
|
||||||
KEYWORDS = {MESH ; VISUALIZATION ; POST-PROCESSING},
|
KEYWORDS = {MESH ; VISUALIZATION ; POST-PROCESSING},
|
||||||
PDF = {https://hal.inria.fr/inria-00069921/file/RT-0253.pdf},
|
PDF = {https://inria.hal.science/inria-00069921/file/RT-0253.pdf},
|
||||||
HAL_ID = {inria-00069921},
|
HAL_ID = {inria-00069921},
|
||||||
HAL_VERSION = {v1}
|
HAL_VERSION = {v1}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5682,7 +5682,7 @@ cell neighborhood in $O(m)$ time."
|
||||||
, year = 2000
|
, year = 2000
|
||||||
, pages = "61--79"
|
, pages = "61--79"
|
||||||
, note = "Special Issue on Computational Geometry, to appear"
|
, note = "Special Issue on Computational Geometry, to appear"
|
||||||
, url = "https://hal.inria.fr/inria-00338566"
|
, url = "https://inria.hal.science/inria-00338566"
|
||||||
, succeeds = "ads-rdppw-98"
|
, succeeds = "ads-rdppw-98"
|
||||||
, update = "00.03 devillers"
|
, update = "00.03 devillers"
|
||||||
, abstract = "We describe two problem-specific approaches to remove geometric degeneracies that we call {\it perturbing the problem} and {\it perturbing the world}. Using as our primary examples 2-d and 3-d Delaunay triangulation with Euclidean and polygonal metrics, we show that these approaches lead to relatively simple and efficient perturbations of the points that do not depend on a fixed ordering or index. Thus, they produce canonical output, which is important for producing test suites and verifiers for randomized or dynamic geometric algorithms."
|
, abstract = "We describe two problem-specific approaches to remove geometric degeneracies that we call {\it perturbing the problem} and {\it perturbing the world}. Using as our primary examples 2-d and 3-d Delaunay triangulation with Euclidean and polygonal metrics, we show that these approaches lead to relatively simple and efficient perturbations of the points that do not depend on a fixed ordering or index. Thus, they produce canonical output, which is important for producing test suites and verifiers for randomized or dynamic geometric algorithms."
|
||||||
|
|
@ -11386,7 +11386,7 @@ method that uses very different techniques."
|
||||||
, address = "BP93, 06902 Sophia-Antipolis, France"
|
, address = "BP93, 06902 Sophia-Antipolis, France"
|
||||||
, month = jun
|
, month = jun
|
||||||
, year = 1993
|
, year = 1993
|
||||||
, url = "https://hal.inria.fr/inria-00074682"
|
, url = "https://inria.hal.science/inria-00074682"
|
||||||
, keywords = "parallel algorithms, hypercube, multisearching, point location"
|
, keywords = "parallel algorithms, hypercube, multisearching, point location"
|
||||||
, update = "95.09 devillers, 95.01 devillers, 93.09 devillers+milone+mitchell"
|
, update = "95.09 devillers, 95.01 devillers, 93.09 devillers+milone+mitchell"
|
||||||
}
|
}
|
||||||
|
|
@ -13129,7 +13129,7 @@ small factor with respect to floating-point calculation."
|
||||||
, number = 2
|
, number = 2
|
||||||
, year = 1997
|
, year = 1997
|
||||||
, pages = "111--132"
|
, pages = "111--132"
|
||||||
, url = "https://hal.inria.fr/inria-00090613"
|
, url = "https://inria.hal.science/inria-00090613"
|
||||||
, succeeds = "abdpy-esdus-94, abdpy-enmcs-95"
|
, succeeds = "abdpy-esdus-94, abdpy-enmcs-95"
|
||||||
, cites = "bjmm-lsicg-93, c-sede-92, fm-nsala-91, f-nsa2d-92, f-smpst-89, fv-eeacg-93, gss-egbra-89, gy-frcg-86, hhk-rsops-89, kln-edtur-91, m-dpggt-89, m-vigau-88a, ps-cgi-85, si-gafpa-88, v-cca-79"
|
, cites = "bjmm-lsicg-93, c-sede-92, fm-nsala-91, f-nsa2d-92, f-smpst-89, fv-eeacg-93, gss-egbra-89, gy-frcg-86, hhk-rsops-89, kln-edtur-91, m-dpggt-89, m-vigau-88a, ps-cgi-85, si-gafpa-88, v-cca-79"
|
||||||
, update = "99.11 bibrelex+devillers, 99.07 devillers, 98.07 tamassia, 97.11 bibrelex, 97.03 devillers"
|
, update = "99.11 bibrelex+devillers, 99.07 devillers, 98.07 tamassia, 97.11 bibrelex, 97.03 devillers"
|
||||||
|
|
@ -13142,7 +13142,7 @@ small factor with respect to floating-point calculation."
|
||||||
, booktitle = "Proc. 11th Annu. ACM Sympos. Comput. Geom."
|
, booktitle = "Proc. 11th Annu. ACM Sympos. Comput. Geom."
|
||||||
, year = 1995
|
, year = 1995
|
||||||
, pages = "C16--C17"
|
, pages = "C16--C17"
|
||||||
, url = "https://hal.inria.fr/inria-00090613"
|
, url = "https://inria.hal.science/inria-00090613"
|
||||||
, precedes = "abdpy-esdus-97"
|
, precedes = "abdpy-esdus-97"
|
||||||
, cites = "ZZZ"
|
, cites = "ZZZ"
|
||||||
, update = "99.11 bibrelex, 99.07 devillers, 98.03 bibrelex, 97.03 devillers, 96.01 devillers, 95.05 devillers"
|
, update = "99.11 bibrelex, 99.07 devillers, 98.03 bibrelex, 97.03 devillers, 96.01 devillers, 95.05 devillers"
|
||||||
|
|
@ -18553,7 +18553,7 @@ the interior. Contains pseudocode."
|
||||||
, volume = 31
|
, volume = 31
|
||||||
, year = 1998
|
, year = 1998
|
||||||
, pages = "613--628"
|
, pages = "613--628"
|
||||||
, url = "https://hal.inria.fr/inria-00413175"
|
, url = "https://inria.hal.science/inria-00413175"
|
||||||
, succeeds = "bdkst-cmotc-96"
|
, succeeds = "bdkst-cmotc-96"
|
||||||
, cites = "ast-apsgo-92, abb-amps-91, ag-mrpc-92, absstz-sacp-96, ab-pptr-88, c-pcp-83, c-oaitd-92, c-chdc-93, cghkkk-gpmem-93, ck-cppop-93, f-fapct-85, fj-gsrsm-84, g-cp-67, h-ampac-92, hkk-dvdmh-92i, hks-uevsi-93, l-rmp-91, msw-aotp-93, pt-cocpc-92, scklps-gadss-86, v-aitco-95"
|
, cites = "ast-apsgo-92, abb-amps-91, ag-mrpc-92, absstz-sacp-96, ab-pptr-88, c-pcp-83, c-oaitd-92, c-chdc-93, cghkkk-gpmem-93, ck-cppop-93, f-fapct-85, fj-gsrsm-84, g-cp-67, h-ampac-92, hkk-dvdmh-92i, hks-uevsi-93, l-rmp-91, msw-aotp-93, pt-cocpc-92, scklps-gadss-86, v-aitco-95"
|
||||||
, update = "99.11 devillers, 99.07 devillers, 98.11 devillers"
|
, update = "99.11 devillers, 99.07 devillers, 98.11 devillers"
|
||||||
|
|
@ -18569,7 +18569,7 @@ the interior. Contains pseudocode."
|
||||||
, month = aug
|
, month = aug
|
||||||
, year = 1997
|
, year = 1997
|
||||||
, pages = "215--219"
|
, pages = "215--219"
|
||||||
, url = "https://hal.inria.fr/inria-00413170"
|
, url = "https://inria.hal.science/inria-00413170"
|
||||||
, succeeds = "bdds-cscut-95"
|
, succeeds = "bdds-cscut-95"
|
||||||
, cites = "bds-lric-94, bdsty-arsol-92, cct-rpatd-92, cs-arscg-89, d-rysoa-92, gks-ricdv-92, gss-gmppt-89, m-cgitr-93, s-sfira-91"
|
, cites = "bds-lric-94, bdsty-arsol-92, cct-rpatd-92, cs-arscg-89, d-rysoa-92, gks-ricdv-92, gss-gmppt-89, m-cgitr-93, s-sfira-91"
|
||||||
, update = "99.11 devillers, 99.07 devillers, 98.11 devillers, 98.07 bibrelex, 98.03 mitchell, 97.11 oostrum"
|
, update = "99.11 devillers, 99.07 devillers, 98.11 devillers, 98.07 bibrelex, 98.03 mitchell, 97.11 oostrum"
|
||||||
|
|
@ -23796,7 +23796,7 @@ In [BSBL93], the synthesis problem has been solved for a
|
||||||
, booktitle = "Proc. 15th Annu. ACM Sympos. Comput. Geom."
|
, booktitle = "Proc. 15th Annu. ACM Sympos. Comput. Geom."
|
||||||
, year = 1999
|
, year = 1999
|
||||||
, pages = "421--423"
|
, pages = "421--423"
|
||||||
, url = "https://hal.inria.fr/inria-00348713/"
|
, url = "https://inria.hal.science/inria-00348713/"
|
||||||
, update = "02.03 devillers, 00.03 bibrelex, 99.11 bibrelex, 99.07 devillers"
|
, update = "02.03 devillers, 00.03 bibrelex, 99.11 bibrelex, 99.07 devillers"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -23854,7 +23854,7 @@ In [BSBL93], the synthesis problem has been solved for a
|
||||||
, volume = 6
|
, volume = 6
|
||||||
, year = 1996
|
, year = 1996
|
||||||
, pages = "123--130"
|
, pages = "123--130"
|
||||||
, url = "https://hal.inria.fr/inria-00413159"
|
, url = "https://inria.hal.science/inria-00413159"
|
||||||
, succeeds = "bcddy-acchs-92"
|
, succeeds = "bcddy-acchs-92"
|
||||||
, cites = "r-chada-92, ss-tddsp-90, m-mnfcp-70, c-ochap-91, cs-arscg-89, s-sdlpc-91, bdsty-arsol-92"
|
, cites = "r-chada-92, ss-tddsp-90, m-mnfcp-70, c-ochap-91, cs-arscg-89, s-sdlpc-91, bdsty-arsol-92"
|
||||||
, update = "99.11 bibrelex+devillers, 99.07 devillers, 97.07 devillers"
|
, update = "99.11 bibrelex+devillers, 99.07 devillers, 97.07 devillers"
|
||||||
|
|
@ -23896,7 +23896,7 @@ In [BSBL93], the synthesis problem has been solved for a
|
||||||
, number = 1
|
, number = 1
|
||||||
, year = 1996
|
, year = 1996
|
||||||
, pages = "1--14"
|
, pages = "1--14"
|
||||||
, url = "https://hal.inria.fr/hal-00795075"
|
, url = "https://inria.hal.science/hal-00795075"
|
||||||
, succeeds = "bcdt-osc3d-91t, bcdt-osc3d-91i"
|
, succeeds = "bcdt-osc3d-91t, bcdt-osc3d-91i"
|
||||||
, cites = "ps-cgi-85, e-acg-87, a-vdsfg-91, s-chdch-86, ms-loq-92, cs-arscg-89, bdsty-arsol-92, bcdt-osc3d-91i, bm-sdcs-71, bcdt-osc3d-94t, b-srpcs-88, a-pdpaa-87, c-ig-61, p-gcc-70, dmt-ssgtu-92i, gs-ccrs-87, eg-tsa-89, b-gdg-83"
|
, cites = "ps-cgi-85, e-acg-87, a-vdsfg-91, s-chdch-86, ms-loq-92, cs-arscg-89, bdsty-arsol-92, bcdt-osc3d-91i, bm-sdcs-71, bcdt-osc3d-94t, b-srpcs-88, a-pdpaa-87, c-ig-61, p-gcc-70, dmt-ssgtu-92i, gs-ccrs-87, eg-tsa-89, b-gdg-83"
|
||||||
, update = "99.11 bibrelex+devillers, 99.07 devillers, 97.03 devillers, 96.05 devillers"
|
, update = "99.11 bibrelex+devillers, 99.07 devillers, 97.03 devillers, 96.05 devillers"
|
||||||
|
|
@ -23974,7 +23974,7 @@ of the output, and the extra storage is {$O(n)$}."
|
||||||
, publisher = "Springer-Verlag"
|
, publisher = "Springer-Verlag"
|
||||||
, year = 1994
|
, year = 1994
|
||||||
, pages = "254--265"
|
, pages = "254--265"
|
||||||
, url = "https://hal.inria.fr/hal-01179475"
|
, url = "https://inria.hal.science/hal-01179475"
|
||||||
, precedes = "bcdry-ctbc-99"
|
, precedes = "bcdry-ctbc-99"
|
||||||
, update = "99.11 bibrelex+devillers, 99.07 devillers, 98.03 mitchell, 97.03 devillers, 96.01 devillers, 95.05 agarwal"
|
, update = "99.11 bibrelex+devillers, 99.07 devillers, 98.03 mitchell, 97.03 devillers, 96.01 devillers, 95.05 agarwal"
|
||||||
, abstract = "
|
, abstract = "
|
||||||
|
|
@ -23994,7 +23994,7 @@ of the output, and the extra storage is {$O(n)$}."
|
||||||
, volume = 13
|
, volume = 13
|
||||||
, year = 1999
|
, year = 1999
|
||||||
, pages = "149--159"
|
, pages = "149--159"
|
||||||
, url = "https://hal.inria.fr/inria-00413181"
|
, url = "https://inria.hal.science/inria-00413181"
|
||||||
, archive = "XXX:cs.CG/9909004"
|
, archive = "XXX:cs.CG/9909004"
|
||||||
, succeeds = "bcdry-ctbc-94"
|
, succeeds = "bcdry-ctbc-94"
|
||||||
, cites = "agss-ltacv-89, dxcr-kmp-93, d-cmlca-57, fw-pcm-91, jc-pspmr-89, kslo-prpph-96, k-osps-83, l-rmp-91, o-mpic-87, o-ramp-92, os-plamp-94, p-masp-77, rs-mppmo-94, ss-ampr-90, w-mpav-88"
|
, cites = "agss-ltacv-89, dxcr-kmp-93, d-cmlca-57, fw-pcm-91, jc-pspmr-89, kslo-prpph-96, k-osps-83, l-rmp-91, o-mpic-87, o-ramp-92, os-plamp-94, p-masp-77, rs-mppmo-94, ss-ampr-90, w-mpav-88"
|
||||||
|
|
@ -24032,7 +24032,7 @@ of the output, and the extra storage is {$O(n)$}."
|
||||||
, volume = 10
|
, volume = 10
|
||||||
, year = 2000
|
, year = 2000
|
||||||
, pages = "41--54"
|
, pages = "41--54"
|
||||||
, url = "https://hal.inria.fr/inria-00338701"
|
, url = "https://inria.hal.science/inria-00338701"
|
||||||
, archive = "XXX/cs.CG/9909005"
|
, archive = "XXX/cs.CG/9909005"
|
||||||
, succeeds = "bcduy-clcst-96"
|
, succeeds = "bcduy-clcst-96"
|
||||||
, cites = "abosy-fmcnp-89, b-cspps-88, bcdy-csp-95, bg-aoscf-95, cegss-cfals-93, dj-cmcnp-90, bds-lric-95, dk-ladsc-85, egs-cmcap-90, ep-mps-88, f-spcrd-86, ka-dd-84, k-eccs-79, k-osps-83, ld-gvdp-81, mt-cppna-85, m-lpltw-84, ms-sapo-95, m-idssp-92, okm-ccs-86"
|
, cites = "abosy-fmcnp-89, b-cspps-88, bcdy-csp-95, bg-aoscf-95, cegss-cfals-93, dj-cmcnp-90, bds-lric-95, dk-ladsc-85, egs-cmcap-90, ep-mps-88, f-spcrd-86, ka-dd-84, k-eccs-79, k-osps-83, ld-gvdp-81, mt-cppna-85, m-lpltw-84, ms-sapo-95, m-idssp-92, okm-ccs-86"
|
||||||
|
|
@ -24094,7 +24094,7 @@ must lie in the halfplanes delimited by the query lines."
|
||||||
, number = "1--2"
|
, number = "1--2"
|
||||||
, year = 1995
|
, year = 1995
|
||||||
, pages = "3--20"
|
, pages = "3--20"
|
||||||
, url = "https://hal.inria.fr/hal-00795083"
|
, url = "https://inria.hal.science/hal-00795083"
|
||||||
, succeeds = "bddp-mpsr-92,bddp-spsr-92"
|
, succeeds = "bddp-mpsr-92,bddp-spsr-92"
|
||||||
, cites = "ps-cgi-85, l-knnvd-82, agss-ltacv-87, s-ksacs-91, hs-ompc-91, p-pplr-90, w-cvgnl-85, bdp-cu3ct-91"
|
, cites = "ps-cgi-85, l-knnvd-82, agss-ltacv-87, s-ksacs-91, hs-ompc-91, p-pplr-90, w-cvgnl-85, bdp-cu3ct-91"
|
||||||
, update = "99.11 bibrelex+devillers, 99.07 devillers, 97.03 devillers, 96.01 devillers, 95.09 devillers"
|
, update = "99.11 bibrelex+devillers, 99.07 devillers, 97.03 devillers, 96.01 devillers, 95.09 devillers"
|
||||||
|
|
@ -24155,7 +24155,7 @@ must lie in the halfplanes delimited by the query lines."
|
||||||
, volume = 30
|
, volume = 30
|
||||||
, year = 2000
|
, year = 2000
|
||||||
, pages = "218--246"
|
, pages = "218--246"
|
||||||
, url = "https://hal.inria.fr/inria-00099289"
|
, url = "https://inria.hal.science/inria-00099289"
|
||||||
, archive = "XXX/cs.CG/9909006"
|
, archive = "XXX/cs.CG/9909006"
|
||||||
, succeeds = "bdl-mplr-94,bdl-srhdr-94,bdl-srhdr-94c"
|
, succeeds = "bdl-mplr-94,bdl-srhdr-94,bdl-srhdr-94c"
|
||||||
, cites = "bddp-mplrs-95, dd-frspp-90, h-fuenl-89, ks-empac-90, kst-coksm-97, l-ptrmn-96, s-ksacs-91, ss-nempa-87, t-frnns-91"
|
, cites = "bddp-mplrs-95, dd-frspp-90, h-fuenl-89, ks-empac-90, kst-coksm-97, l-ptrmn-96, s-ksacs-91, ss-nempa-87, t-frnns-91"
|
||||||
|
|
@ -24184,7 +24184,7 @@ must lie in the halfplanes delimited by the query lines."
|
||||||
, number = 2
|
, number = 2
|
||||||
, year = 1991
|
, year = 1991
|
||||||
, pages = "187--196"
|
, pages = "187--196"
|
||||||
, url = "https://hal.inria.fr/inria-00167176"
|
, url = "https://inria.hal.science/inria-00167176"
|
||||||
, keywords = "convex hull, motion planning, legged robot"
|
, keywords = "convex hull, motion planning, legged robot"
|
||||||
, update = "99.11 bibrelex+devillers, 99.07 devillers, 97.03 devillers, 96.01 devillers, 95.09 devillers, 95.01 devillers"
|
, update = "99.11 bibrelex+devillers, 99.07 devillers, 97.03 devillers, 96.01 devillers, 95.09 devillers, 95.01 devillers"
|
||||||
, abstract = "Given is a set $s$ of $n$ points, each colored with one of $k \geq 3$ colours. We say that a triangle defined by three points of $\cal s$ is 3-colored if its vertices have distinct colours. We prove in this paper that the problem of constructing the boundary of the union $\cal ts$ of all such 3-colored triangles can be done in optimal $O(n \log n)$ time."
|
, abstract = "Given is a set $s$ of $n$ points, each colored with one of $k \geq 3$ colours. We say that a triangle defined by three points of $\cal s$ is 3-colored if its vertices have distinct colours. We prove in this paper that the problem of constructing the boundary of the union $\cal ts$ of all such 3-colored triangles can be done in optimal $O(n \log n)$ time."
|
||||||
|
|
@ -24210,7 +24210,7 @@ must lie in the halfplanes delimited by the query lines."
|
||||||
, volume = 8
|
, volume = 8
|
||||||
, year = 1992
|
, year = 1992
|
||||||
, pages = "51--71"
|
, pages = "51--71"
|
||||||
, url = "https://hal.inria.fr/inria-00090675"
|
, url = "https://inria.hal.science/inria-00090675"
|
||||||
, keywords = "randomized algorithms, Delaunay triangulation, semi-dynamic algorithms, arrangement of line-segments"
|
, keywords = "randomized algorithms, Delaunay triangulation, semi-dynamic algorithms, arrangement of line-segments"
|
||||||
, succeeds = "bdsty-olgag-91i"
|
, succeeds = "bdsty-olgag-91i"
|
||||||
, update = "99.11 bibrelex, 99.07 devillers, 98.07 bibrelex, 97.03 devillers, 96.01 devillers, 95.09 devillers, 95.01 devillers"
|
, update = "99.11 bibrelex, 99.07 devillers, 98.07 bibrelex, 97.03 devillers, 96.01 devillers, 95.09 devillers, 95.01 devillers"
|
||||||
|
|
@ -24278,7 +24278,7 @@ arrangements of curves in the plane and others."
|
||||||
, volume = 9
|
, volume = 9
|
||||||
, year = 1993
|
, year = 1993
|
||||||
, pages = "329--356"
|
, pages = "329--356"
|
||||||
, url = "https://hal.inria.fr/inria-00090668"
|
, url = "https://inria.hal.science/inria-00090668"
|
||||||
, keywords = "randomized algorithms, higher order Voronoi diagrams, dynamic algorithms"
|
, keywords = "randomized algorithms, higher order Voronoi diagrams, dynamic algorithms"
|
||||||
, succeeds = "bdt-olcho-90"
|
, succeeds = "bdt-olcho-90"
|
||||||
, update = "99.11 bibrelex, 99.07 devillers, 97.03 devillers+schwarzkopf, 96.05 agarwal, 96.01 devillers, 95.09 devillers, 95.01 devillers, 93.09 devillers"
|
, update = "99.11 bibrelex, 99.07 devillers, 97.03 devillers+schwarzkopf, 96.05 agarwal, 96.01 devillers, 95.09 devillers, 95.01 devillers, 93.09 devillers"
|
||||||
|
|
@ -24459,7 +24459,7 @@ the computational geometry algorithms library CGAL."
|
||||||
, booktitle = "Proc. 13th Annu. ACM Sympos. Comput. Geom."
|
, booktitle = "Proc. 13th Annu. ACM Sympos. Comput. Geom."
|
||||||
, year = 1997
|
, year = 1997
|
||||||
, pages = "67--76"
|
, pages = "67--76"
|
||||||
, url = "https://hal.inria.fr/inria-00073622z"
|
, url = "https://inria.hal.science/inria-00073622z"
|
||||||
, precedes = "blt-smssa-98"
|
, precedes = "blt-smssa-98"
|
||||||
, cites = "ab-scsp-87, ab-pptr-89, abdpy-esdus-97, bdh-qach-93, dm-mtcae-95, gs-ccrs-87, lm-cancp-93, l-spcsa-83, ZZZ"
|
, cites = "ab-scsp-87, ab-pptr-89, abdpy-esdus-97, bdh-qach-93, dm-mtcae-95, gs-ccrs-87, lm-cancp-93, l-spcsa-83, ZZZ"
|
||||||
, update = "99.11 bibrelex, 99.07 devillers, 98.07 bibrelex+devillers, 97.07 efrat"
|
, update = "99.11 bibrelex, 99.07 devillers, 98.07 bibrelex+devillers, 97.07 efrat"
|
||||||
|
|
@ -27482,7 +27482,7 @@ and solids on dynamically evolving grids without remeshing."
|
||||||
, year = 1999
|
, year = 1999
|
||||||
, pages = "173--197"
|
, pages = "173--197"
|
||||||
, note = "Special Issue on Real Numbers and Computers"
|
, note = "Special Issue on Real Numbers and Computers"
|
||||||
, url = "https://hal.inria.fr/inria-00344324"
|
, url = "https://inria.hal.science/inria-00344324"
|
||||||
, succeeds = "bepp-cegpu-97"
|
, succeeds = "bepp-cegpu-97"
|
||||||
, update = "99.07 devillers"
|
, update = "99.07 devillers"
|
||||||
}
|
}
|
||||||
|
|
@ -27523,7 +27523,7 @@ and solids on dynamically evolving grids without remeshing."
|
||||||
, booktitle = "GAMM/IMACS International Symposium on Scientific Computing, Computer Arithmetic and Validated Numerics"
|
, booktitle = "GAMM/IMACS International Symposium on Scientific Computing, Computer Arithmetic and Validated Numerics"
|
||||||
, year = 1997
|
, year = 1997
|
||||||
, pages = ""
|
, pages = ""
|
||||||
, url = "https://hal.inria.fr/inria-00344403/"
|
, url = "https://inria.hal.science/inria-00344403/"
|
||||||
, update = "99.11 bibrelex, 99.07 devillers, 98.11 devillers"
|
, update = "99.11 bibrelex, 99.07 devillers, 98.11 devillers"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -44139,7 +44139,7 @@ Contains C code."
|
||||||
, school = "Universit\'e de Nice-Sophia Antipolis"
|
, school = "Universit\'e de Nice-Sophia Antipolis"
|
||||||
, address = "France"
|
, address = "France"
|
||||||
, year = 1996
|
, year = 1996
|
||||||
, url = "https://hal.inria.fr/tel-00771335"
|
, url = "https://inria.hal.science/tel-00771335"
|
||||||
, keywords = "doctoral thesis"
|
, keywords = "doctoral thesis"
|
||||||
, update = "99.11 bibrelex, 99.07 devillers, 98.07 devillers"
|
, update = "99.11 bibrelex, 99.07 devillers, 98.07 devillers"
|
||||||
}
|
}
|
||||||
|
|
@ -44150,7 +44150,7 @@ Contains C code."
|
||||||
, booktitle = "Proc. 7th Canad. Conf. Comput. Geom."
|
, booktitle = "Proc. 7th Canad. Conf. Comput. Geom."
|
||||||
, year = 1995
|
, year = 1995
|
||||||
, pages = "49--54"
|
, pages = "49--54"
|
||||||
, url = "https://hal.inria.fr/inria-00413229"
|
, url = "https://inria.hal.science/inria-00413229"
|
||||||
, update = "99.11 bibrelex, 99.07 devillers, 97.03 devillers, 96.01 devillers, 95.09 jones"
|
, update = "99.11 bibrelex, 99.07 devillers, 97.03 devillers, 96.01 devillers, 95.09 jones"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -44261,7 +44261,7 @@ Contains C code."
|
||||||
, volume = 157
|
, volume = 157
|
||||||
, year = 1996
|
, year = 1996
|
||||||
, pages = "35--52"
|
, pages = "35--52"
|
||||||
, url = "https://hal.inria.fr/inria-00167202"
|
, url = "https://inria.hal.science/inria-00167202"
|
||||||
, cites = "as-solri-92, bd-rcuet-92, bdsty-arsol-92, bdt-schov-93, bt-hrodt-86, bt-rcdt-93, prisme-by-ga-95, ce-oails-92, cegss-cfals-93, c-ochaa-93, c-narsc-87, cms-frric-93, cs-arscg-89, prisme-2626, bds-lric-94, d-rysoa-92, dg-dbppl-93, dmt-fddtl-92, dty-dlals-92, dy-rchyd-93, gks-ricdv-92, ms-dplah-91, m-lavd-91, m-rmstd-91, m-rmstf-91, m-rmstl-91, m-cgitr-93, ol-mcp-81, ps-cgi-85, p-slpab-90, s-dmgsm-91, s-dmcpr-92, s-sfira-91, t-tdrac-93"
|
, cites = "as-solri-92, bd-rcuet-92, bdsty-arsol-92, bdt-schov-93, bt-hrodt-86, bt-rcdt-93, prisme-by-ga-95, ce-oails-92, cegss-cfals-93, c-ochaa-93, c-narsc-87, cms-frric-93, cs-arscg-89, prisme-2626, bds-lric-94, d-rysoa-92, dg-dbppl-93, dmt-fddtl-92, dty-dlals-92, dy-rchyd-93, gks-ricdv-92, ms-dplah-91, m-lavd-91, m-rmstd-91, m-rmstf-91, m-rmstl-91, m-cgitr-93, ol-mcp-81, ps-cgi-85, p-slpab-90, s-dmgsm-91, s-dmcpr-92, s-sfira-91, t-tdrac-93"
|
||||||
, update = "99.11 bibrelex+devillers, 99.07 devillers, 97.03 devillers, 96.05 smid, 96.01 devillers"
|
, update = "99.11 bibrelex+devillers, 99.07 devillers, 97.03 devillers, 96.05 smid, 96.01 devillers"
|
||||||
, abstract = "This paper is not a complete survey on randomized algorithms in computational geometry, but an introduction to this subject providing intuitions and references. In a first time, some basic ideas are illustrated by the sorting problem, and in a second time few results on computational geometry are briefly explained."
|
, abstract = "This paper is not a complete survey on randomized algorithms in computational geometry, but an introduction to this subject providing intuitions and references. In a first time, some basic ideas are illustrated by the sorting problem, and in a second time few results on computational geometry are briefly explained."
|
||||||
|
|
@ -44286,7 +44286,7 @@ Contains C code."
|
||||||
, booktitle = "Proc. 14th Annu. ACM Sympos. Comput. Geom."
|
, booktitle = "Proc. 14th Annu. ACM Sympos. Comput. Geom."
|
||||||
, year = 1998
|
, year = 1998
|
||||||
, pages = "106--115"
|
, pages = "106--115"
|
||||||
, url = "https://hal.inria.fr/hal-01179446"
|
, url = "https://inria.hal.science/hal-01179446"
|
||||||
, archive = "XXX:cs.CG/9907024"
|
, archive = "XXX:cs.CG/9907024"
|
||||||
, update = "99.11 bibrelex+devillers, 99.07 devillers, 98.11 devillers"
|
, update = "99.11 bibrelex+devillers, 99.07 devillers, 98.11 devillers"
|
||||||
, abstract = "We propose a new data structure to compute the Delaunay triangulation of a set of points in the plane. It combines good worst case complexity, fast behavior on real data, and small memory occupation. The location structure is organized into several levels. The lowest level just consists of the triangulation, then each level contains the triangulation of a small sample of the levels below. Point location is done by marching in a triangulation to determine the nearest neighbor of the query at that level, then the march restarts from that neighbor at the level below. Using a small sample (3 {\%}) allows a small memory occupation; the march and the use of the nearest neighbor to change levels quickly locate the query."
|
, abstract = "We propose a new data structure to compute the Delaunay triangulation of a set of points in the plane. It combines good worst case complexity, fast behavior on real data, and small memory occupation. The location structure is organized into several levels. The lowest level just consists of the triangulation, then each level contains the triangulation of a small sample of the levels below. Point location is done by marching in a triangulation to determine the nearest neighbor of the query at that level, then the march restarts from that neighbor at the level below. Using a small sample (3 {\%}) allows a small memory occupation; the march and the use of the nearest neighbor to change levels quickly locate the query."
|
||||||
|
|
@ -44323,7 +44323,7 @@ Contains C code."
|
||||||
, year = 2009
|
, year = 2009
|
||||||
, type = "Research Report"
|
, type = "Research Report"
|
||||||
, number = 7104
|
, number = 7104
|
||||||
, url = "https://hal.inria.fr/inria-00433107/"
|
, url = "https://inria.hal.science/inria-00433107/"
|
||||||
}
|
}
|
||||||
|
|
||||||
@inproceedings{d-ddt-99
|
@inproceedings{d-ddt-99
|
||||||
|
|
@ -44332,7 +44332,7 @@ Contains C code."
|
||||||
, booktitle = "Proc. 15th Annu. ACM Sympos. Comput. Geom."
|
, booktitle = "Proc. 15th Annu. ACM Sympos. Comput. Geom."
|
||||||
, year = 1999
|
, year = 1999
|
||||||
, pages = "181--188"
|
, pages = "181--188"
|
||||||
, url = "https://hal.inria.fr/hal-01179435"
|
, url = "https://inria.hal.science/hal-01179435"
|
||||||
, archive = "XXX:cs.CG/9907023"
|
, archive = "XXX:cs.CG/9907023"
|
||||||
, succeeds = "d-ddt-98"
|
, succeeds = "d-ddt-98"
|
||||||
, cites = "agss-ltacv-89, a-pdpaa-87, bbp-iayed-98scg, bd-irgo-95, bm-sdcs-71, c-bvdcp-86, ads-rdppw-98, d-iirdt-98, dmt-ssgtu-92i, dp-papaf-98, es-itfwr-96, gs-cdtp-78, h-taatm-90, l-tdam-97, m-smdnt-93, msz-frplw-96, obs-stcav-92, p-gcc-70, s-chdch-86, s-nmpgc-98"
|
, cites = "agss-ltacv-89, a-pdpaa-87, bbp-iayed-98scg, bd-irgo-95, bm-sdcs-71, c-bvdcp-86, ads-rdppw-98, d-iirdt-98, dmt-ssgtu-92i, dp-papaf-98, es-itfwr-96, gs-cdtp-78, h-taatm-90, l-tdam-97, m-smdnt-93, msz-frplw-96, obs-stcav-92, p-gcc-70, s-chdch-86, s-nmpgc-98"
|
||||||
|
|
@ -44349,7 +44349,7 @@ Contains C code."
|
||||||
, number = 1
|
, number = 1
|
||||||
, year = 1992
|
, year = 1992
|
||||||
, pages = "97--111"
|
, pages = "97--111"
|
||||||
, url = "https://hal.inria.fr/inria-00167206"
|
, url = "https://inria.hal.science/inria-00167206"
|
||||||
, archive = "XXX:cs.CG/9810007"
|
, archive = "XXX:cs.CG/9810007"
|
||||||
, keywords = "randomized algorithms, Delaunay triangulation, skeleton, medial axis, minimum spanning tree, simple polygon"
|
, keywords = "randomized algorithms, Delaunay triangulation, skeleton, medial axis, minimum spanning tree, simple polygon"
|
||||||
, succeeds = "d-sroa-91"
|
, succeeds = "d-sroa-91"
|
||||||
|
|
@ -44567,7 +44567,7 @@ respectively, we obtain a speedup of $\frac p{\log p}$."
|
||||||
, number = 3
|
, number = 3
|
||||||
, year = 1995
|
, year = 1995
|
||||||
, pages = "157--164"
|
, pages = "157--164"
|
||||||
, url = "https://hal.inria.fr/inria-00074391"
|
, url = "https://inria.hal.science/inria-00074391"
|
||||||
, succeeds = "dg-iafch-94"
|
, succeeds = "dg-iafch-94"
|
||||||
, cites = "a-dcgp-85, bcddy-acchs-92, r-chada-92"
|
, cites = "a-dcgp-85, bcddy-acchs-92, r-chada-92"
|
||||||
, update = "99.11 devillers, 99.07 devillers, 96.01 devillers"
|
, update = "99.11 devillers, 99.07 devillers, 96.01 devillers"
|
||||||
|
|
@ -44821,7 +44821,7 @@ respectively, we obtain a speedup of $\frac p{\log p}$."
|
||||||
, volume = 20
|
, volume = 20
|
||||||
, year = 1998
|
, year = 1998
|
||||||
, pages = "523--547"
|
, pages = "523--547"
|
||||||
, url = "https://hal.inria.fr/inria-00090653"
|
, url = "https://inria.hal.science/inria-00090653"
|
||||||
, archive = "XXX:cs.CG/9907029"
|
, archive = "XXX:cs.CG/9907029"
|
||||||
, succeeds = "dp-papaf-96"
|
, succeeds = "dp-papaf-96"
|
||||||
, cites = "b-g-87, bkmnsu-egcl-95, bms-hcvdl-94, fv-eeacg-93, lpt-rpqiv-96, mn-iga-94, y-tegc-97"
|
, cites = "b-g-87, bkmnsu-egcl-95, bms-hcvdl-94, fv-eeacg-93, lpt-rpqiv-96, mn-iga-94, y-tegc-97"
|
||||||
|
|
@ -117677,7 +117677,7 @@ both for rendering and for modeling. Contains C code."
|
||||||
, booktitle = "Workshop on Applications of Interval Analysis to systems and Control"
|
, booktitle = "Workshop on Applications of Interval Analysis to systems and Control"
|
||||||
, year = 1999
|
, year = 1999
|
||||||
, pages = "99--110"
|
, pages = "99--110"
|
||||||
, url = "https://hal.inria.fr/inria-00344513"
|
, url = "https://inria.hal.science/inria-00344513"
|
||||||
, update = "01.07 devillers, 00.03 devillers, 99.07 devillers"
|
, update = "01.07 devillers, 00.03 devillers, 99.07 devillers"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -140376,7 +140376,7 @@ code."
|
||||||
, publisher = "INRIA Sophia-Antipolis"
|
, publisher = "INRIA Sophia-Antipolis"
|
||||||
, year = 1999
|
, year = 1999
|
||||||
, pages = "175--178"
|
, pages = "175--178"
|
||||||
, url = "https://hal.inria.fr/inria-00167199"
|
, url = "https://inria.hal.science/inria-00167199"
|
||||||
, update = "00.03 bibrelex+devillers, 99.07 bibrelex"
|
, update = "00.03 bibrelex+devillers, 99.07 bibrelex"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -151938,7 +151938,7 @@ pages = {179--189}
|
||||||
, number = "RR-8467"
|
, number = "RR-8467"
|
||||||
, month = "Feb"
|
, month = "Feb"
|
||||||
, year = "2014"
|
, year = "2014"
|
||||||
, url = "https://hal.inria.fr/hal-00943409"
|
, url = "https://inria.hal.science/hal-00943409"
|
||||||
}
|
}
|
||||||
|
|
||||||
@article{XinWang2009improvingchenandhan,
|
@article{XinWang2009improvingchenandhan,
|
||||||
|
|
@ -152006,13 +152006,13 @@ pages = {179--189}
|
||||||
@inproceedings{boissonnat2009Delaunay,
|
@inproceedings{boissonnat2009Delaunay,
|
||||||
TITLE = {{Incremental construction of the Delaunay graph in medium dimension}},
|
TITLE = {{Incremental construction of the Delaunay graph in medium dimension}},
|
||||||
AUTHOR = {Boissonnat, Jean-Daniel and Devillers, Olivier and Hornus, Samuel},
|
AUTHOR = {Boissonnat, Jean-Daniel and Devillers, Olivier and Hornus, Samuel},
|
||||||
URL = {https://hal.inria.fr/inria-00412437},
|
URL = {https://inria.hal.science/inria-00412437},
|
||||||
BOOKTITLE = {{Annual Symposium on Computational Geometry}},
|
BOOKTITLE = {{Annual Symposium on Computational Geometry}},
|
||||||
ADDRESS = {Aarhus, Denmark},
|
ADDRESS = {Aarhus, Denmark},
|
||||||
PAGES = {208-216},
|
PAGES = {208-216},
|
||||||
YEAR = {2009},
|
YEAR = {2009},
|
||||||
MONTH = Jun,
|
MONTH = Jun,
|
||||||
PDF = {https://hal.inria.fr/inria-00412437/file/socg09.pdf},
|
PDF = {https://inria.hal.science/inria-00412437/file/socg09.pdf},
|
||||||
HAL_ID = {inria-00412437},
|
HAL_ID = {inria-00412437},
|
||||||
HAL_VERSION = {v1},
|
HAL_VERSION = {v1},
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,5 +8,5 @@ is available in:
|
||||||
Mikhail Bogdanov, Olivier Devillers, and Monique Teillaud. Hyperbolic
|
Mikhail Bogdanov, Olivier Devillers, and Monique Teillaud. Hyperbolic
|
||||||
Delaunay complexes and Voronoi diagrams made practical. Journal of
|
Delaunay complexes and Voronoi diagrams made practical. Journal of
|
||||||
Computational Geometry, 5(1):56–85, 2014.
|
Computational Geometry, 5(1):56–85, 2014.
|
||||||
URL: https://hal.inria.fr/hal-00961390,
|
URL: https://inria.hal.science/hal-00961390,
|
||||||
doi:10.20382/jocg.v5i1a4.
|
doi:10.20382/jocg.v5i1a4.
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
namespace CGAL {
|
namespace CGAL {
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\ingroup kernel_affine
|
|
||||||
\ingroup kernel_classes2
|
\ingroup kernel_classes2
|
||||||
|
|
||||||
The class `Aff_transformation_2` represents two-dimensional affine transformations.
|
The class `Aff_transformation_2` represents two-dimensional affine transformations.
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@ namespace CGAL {
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\ingroup kernel_classes3
|
\ingroup kernel_classes3
|
||||||
\ingroup kernel_affine
|
|
||||||
|
|
||||||
The class `Aff_transformation_3` represents three-dimensional affine transformations.
|
The class `Aff_transformation_3` represents three-dimensional affine transformations.
|
||||||
The general form of an affine transformation is based on a homogeneous
|
The general form of an affine transformation is based on a homogeneous
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
namespace CGAL {
|
namespace CGAL {
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\ingroup kernel_affine
|
\ingroup PkgKernel23Ref
|
||||||
|
|
||||||
Tag class for affine transformations.
|
Tag class for affine transformations.
|
||||||
|
|
||||||
|
|
@ -24,7 +24,7 @@ public:
|
||||||
namespace CGAL {
|
namespace CGAL {
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\ingroup kernel_affine
|
\ingroup PkgKernel23Ref
|
||||||
|
|
||||||
Tag class for affine transformations.
|
Tag class for affine transformations.
|
||||||
|
|
||||||
|
|
@ -46,7 +46,7 @@ public:
|
||||||
namespace CGAL {
|
namespace CGAL {
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\ingroup kernel_affine
|
\ingroup PkgKernel23Ref
|
||||||
|
|
||||||
Tag class for affine transformations.
|
Tag class for affine transformations.
|
||||||
|
|
||||||
|
|
@ -68,7 +68,7 @@ public:
|
||||||
namespace CGAL {
|
namespace CGAL {
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\ingroup kernel_affine
|
\ingroup PkgKernel23Ref
|
||||||
|
|
||||||
Tag class for affine transformations.
|
Tag class for affine transformations.
|
||||||
|
|
||||||
|
|
@ -90,7 +90,7 @@ public:
|
||||||
namespace CGAL {
|
namespace CGAL {
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\ingroup kernel_affine
|
\ingroup PkgKernel23Ref
|
||||||
|
|
||||||
Tag class for affine transformations.
|
Tag class for affine transformations.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ function are available.
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\addtogroup do_intersect_linear_grp
|
\addtogroup do_intersect_linear_grp
|
||||||
\ingroup do_intersect
|
\ingroup do_intersect_grp
|
||||||
|
|
||||||
\sa `do_intersect_circular_grp`
|
\sa `do_intersect_circular_grp`
|
||||||
\sa `do_intersect_spherical_grp`
|
\sa `do_intersect_spherical_grp`
|
||||||
|
|
@ -79,7 +79,7 @@ function are available.
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\addtogroup intersection_linear_grp
|
\addtogroup intersection_linear_grp
|
||||||
\ingroup intersection
|
\ingroup intersection_grp
|
||||||
|
|
||||||
*/
|
*/
|
||||||
/// @{
|
/// @{
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ public:
|
||||||
namespace CGAL {
|
namespace CGAL {
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\ingroup PkgMinkowskiSum2Classes
|
\ingroup PkgMinkowskiSum2Ref
|
||||||
|
|
||||||
The `Hertel_Mehlhorn_convex_decomposition_2` class implements the approximation algorithm of Hertel
|
The `Hertel_Mehlhorn_convex_decomposition_2` class implements the approximation algorithm of Hertel
|
||||||
and Mehlhorn for decomposing a polygon into convex
|
and Mehlhorn for decomposing a polygon into convex
|
||||||
|
|
|
||||||
|
|
@ -8,15 +8,4 @@
|
||||||
<enableAddressBar>false</enableAddressBar>
|
<enableAddressBar>false</enableAddressBar>
|
||||||
<enableFilterFunctionality>false</enableFilterFunctionality>
|
<enableFilterFunctionality>false</enableFilterFunctionality>
|
||||||
</assistant>
|
</assistant>
|
||||||
<docFiles>
|
|
||||||
<generate>
|
|
||||||
<file>
|
|
||||||
<input>Periodic_3_triangulation_3.qhp</input>
|
|
||||||
<output>Periodic_3_triangulation_3.qch</output>
|
|
||||||
</file>
|
|
||||||
</generate>
|
|
||||||
<register>
|
|
||||||
<file>Periodic_3_triangulation_3.qch</file>
|
|
||||||
</register>
|
|
||||||
</docFiles>
|
|
||||||
</QHelpCollectionProject>
|
</QHelpCollectionProject>
|
||||||
|
|
|
||||||
|
|
@ -8,15 +8,4 @@
|
||||||
<enableAddressBar>false</enableAddressBar>
|
<enableAddressBar>false</enableAddressBar>
|
||||||
<enableFilterFunctionality>false</enableFilterFunctionality>
|
<enableFilterFunctionality>false</enableFilterFunctionality>
|
||||||
</assistant>
|
</assistant>
|
||||||
<docFiles>
|
|
||||||
<generate>
|
|
||||||
<file>
|
|
||||||
<input>Periodic_Lloyd_3.qhp</input>
|
|
||||||
<output>Periodic_Lloyd_3.qch</output>
|
|
||||||
</file>
|
|
||||||
</generate>
|
|
||||||
<register>
|
|
||||||
<file>Periodic_Lloyd_3.qch</file>
|
|
||||||
</register>
|
|
||||||
</docFiles>
|
|
||||||
</QHelpCollectionProject>
|
</QHelpCollectionProject>
|
||||||
|
|
|
||||||
|
|
@ -553,9 +553,6 @@ create_mst_graph(
|
||||||
For this reason it should not be called on sorted containers.
|
For this reason it should not be called on sorted containers.
|
||||||
It is based on \cgalCite{cgal:hddms-srup-92}.
|
It is based on \cgalCite{cgal:hddms-srup-92}.
|
||||||
|
|
||||||
\warning This function may fail when Boost version 1.54 is used,
|
|
||||||
because of the following bug: https://svn.boost.org/trac/boost/ticket/9012
|
|
||||||
|
|
||||||
\pre Normals must be unit vectors
|
\pre Normals must be unit vectors
|
||||||
\pre `k >= 2`
|
\pre `k >= 2`
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1150,6 +1150,9 @@ bool adapt_patch(std::vector<std::vector<Point> >& point_patch,
|
||||||
put(local_vpm, v, projector(get(local_vpm, v)));
|
put(local_vpm, v, projector(get(local_vpm, v)));
|
||||||
|
|
||||||
// The projector can create degenerate faces
|
// The projector can create degenerate faces
|
||||||
|
for (halfedge_descriptor h : border_hedges)
|
||||||
|
if (is_degenerate_triangle_face(face(opposite(h, local_mesh), local_mesh), local_mesh))
|
||||||
|
return !has_SI;
|
||||||
if(!remove_degenerate_faces(local_mesh))
|
if(!remove_degenerate_faces(local_mesh))
|
||||||
return !has_SI;
|
return !has_SI;
|
||||||
|
|
||||||
|
|
@ -2031,7 +2034,7 @@ remove_self_intersections_one_step(std::set<typename boost::graph_traits<Triangl
|
||||||
|
|
||||||
#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_OUTPUT_INTERMEDIATE_FULL_MESH
|
#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_OUTPUT_INTERMEDIATE_FULL_MESH
|
||||||
fname = "results/mesh_at_step_"+std::to_string(step)+"_CC_"+std::to_string(cc_id)+".off";
|
fname = "results/mesh_at_step_"+std::to_string(step)+"_CC_"+std::to_string(cc_id)+".off";
|
||||||
CGAL::IO::write_polygon_mesh(fname, tmesh, CGAL::parameters::stream_precision);
|
CGAL::IO::write_polygon_mesh(fname, tmesh, CGAL::parameters::stream_precision(17));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// expand the region to be filled
|
// expand the region to be filled
|
||||||
|
|
|
||||||
|
|
@ -49,21 +49,3 @@
|
||||||
#include <CGAL/Polygon_mesh_processing/smooth_mesh.h>
|
#include <CGAL/Polygon_mesh_processing/smooth_mesh.h>
|
||||||
#include <CGAL/Polygon_mesh_processing/smooth_shape.h>
|
#include <CGAL/Polygon_mesh_processing/smooth_shape.h>
|
||||||
#include <CGAL/Polygon_mesh_processing/manifoldness.h>
|
#include <CGAL/Polygon_mesh_processing/manifoldness.h>
|
||||||
|
|
||||||
// the named parameter header being not documented the doc is put here for now
|
|
||||||
#ifdef DOXYGEN_RUNNING
|
|
||||||
namespace CGAL {
|
|
||||||
namespace Polygon_mesh_processing {
|
|
||||||
namespace parameters {
|
|
||||||
|
|
||||||
/*! \ingroup namedparameters
|
|
||||||
\deprecated This function is deprecated and `default_values()` should be used instead.
|
|
||||||
This function can be used to indicate that all optional named parameters
|
|
||||||
to be used are the default ones. This is particularly useful when a function
|
|
||||||
requires more than one sequence of named parameters and default values is
|
|
||||||
fine only for some of them.
|
|
||||||
*/
|
|
||||||
unspecified_type all_default();
|
|
||||||
|
|
||||||
} } } // end of namespace CGAL::Polygon_mesh_processing::parameters
|
|
||||||
#endif
|
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@
|
||||||
namespace CGAL {
|
namespace CGAL {
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\ingroup PkgPolygonalSurfaceReconstruction
|
\ingroup PkgPolygonalSurfaceReconstructionRef
|
||||||
|
|
||||||
\brief
|
\brief
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -270,7 +270,9 @@ private:
|
||||||
|
|
||||||
Word_type image_data(int i, int j, int k)
|
Word_type image_data(int i, int j, int k)
|
||||||
{
|
{
|
||||||
if ( i>=0 && i<image_->xdim() && j>=0 && j<image_->ydim() && k>=0 && k<image_->zdim() )
|
if ( i>=0 && static_cast<std::size_t>(i)<image_->xdim() &&
|
||||||
|
j>=0 && static_cast<std::size_t>(j)<image_->ydim() &&
|
||||||
|
k>=0 && static_cast<std::size_t>(k)<image_->zdim() )
|
||||||
return image_->value(i, j, k);
|
return image_->value(i, j, k);
|
||||||
else
|
else
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
||||||
|
|
@ -34,14 +34,14 @@ if(ITK_FOUND)
|
||||||
target_link_libraries(mesh_3_plugin PUBLIC CGAL::ITK_support)
|
target_link_libraries(mesh_3_plugin PUBLIC CGAL::ITK_support)
|
||||||
endif(ITK_FOUND)
|
endif(ITK_FOUND)
|
||||||
|
|
||||||
find_package(VTK QUIET COMPONENTS vtkImagingGeneral vtkIOImage NO_MODULE)
|
find_package(VTK QUIET COMPONENTS vtkImagingGeneral vtkIOImage vtkIOXML NO_MODULE)
|
||||||
if(VTK_FOUND)
|
if(VTK_FOUND)
|
||||||
if(VTK_USE_FILE)
|
if(VTK_USE_FILE)
|
||||||
include(${VTK_USE_FILE})
|
include(${VTK_USE_FILE})
|
||||||
endif()
|
endif()
|
||||||
if("${VTK_VERSION_MAJOR}" GREATER "5" OR VTK_VERSION VERSION_GREATER 5)
|
if("${VTK_VERSION_MAJOR}" GREATER "5" OR VTK_VERSION VERSION_GREATER 5)
|
||||||
if(TARGET VTK::IOImage)
|
if(TARGET VTK::IOImage)
|
||||||
set(VTK_LIBRARIES VTK::IOImage VTK::ImagingGeneral)
|
set(VTK_LIBRARIES VTK::IOImage VTK::ImagingGeneral VTK::IOXML)
|
||||||
endif()
|
endif()
|
||||||
if(NOT VTK_LIBRARIES)
|
if(NOT VTK_LIBRARIES)
|
||||||
message(STATUS "NOTICE: DICOM files (.dcm) require the VTK libraries, and will not be readable.")
|
message(STATUS "NOTICE: DICOM files (.dcm) require the VTK libraries, and will not be readable.")
|
||||||
|
|
|
||||||
|
|
@ -54,8 +54,10 @@
|
||||||
#include <CGAL/IO/read_vtk_image_data.h>
|
#include <CGAL/IO/read_vtk_image_data.h>
|
||||||
|
|
||||||
#include <vtkNew.h>
|
#include <vtkNew.h>
|
||||||
|
#include <vtkSmartPointer.h>
|
||||||
#include <vtkStringArray.h>
|
#include <vtkStringArray.h>
|
||||||
#include <vtkImageData.h>
|
#include <vtkImageData.h>
|
||||||
|
#include <vtkXMLImageDataReader.h>
|
||||||
#include <vtkDICOMImageReader.h>
|
#include <vtkDICOMImageReader.h>
|
||||||
#include <vtkBMPReader.h>
|
#include <vtkBMPReader.h>
|
||||||
#include <vtkNIFTIImageReader.h>
|
#include <vtkNIFTIImageReader.h>
|
||||||
|
|
@ -77,6 +79,23 @@
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <locale>
|
#include <locale>
|
||||||
|
|
||||||
|
template <class vtkReader>
|
||||||
|
bool
|
||||||
|
load_vtk_file(QFileInfo fileinfo, Image* image)
|
||||||
|
{
|
||||||
|
#ifdef CGAL_USE_VTK
|
||||||
|
vtkNew<vtkReader> reader;
|
||||||
|
reader->SetFileName(fileinfo.filePath().toUtf8());
|
||||||
|
reader->Update();
|
||||||
|
auto vtk_image = reader->GetOutput();
|
||||||
|
vtk_image->Print(std::cerr);
|
||||||
|
*image = CGAL::IO::read_vtk_image_data(vtk_image); // copy the image data
|
||||||
|
return true;
|
||||||
|
#else
|
||||||
|
return false;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
// Covariant return types don't work for scalar types and we cannot
|
// Covariant return types don't work for scalar types and we cannot
|
||||||
// have templates here, hence this unfortunate hack.
|
// have templates here, hence this unfortunate hack.
|
||||||
|
|
||||||
|
|
@ -1089,6 +1108,7 @@ QString Io_image_plugin::nameFilters() const
|
||||||
return QString("Inrimage files (*.inr *.inr.gz) ;; "
|
return QString("Inrimage files (*.inr *.inr.gz) ;; "
|
||||||
"Analyze files (*.hdr *.img *.img.gz) ;; "
|
"Analyze files (*.hdr *.img *.img.gz) ;; "
|
||||||
"Stanford Exploration Project files (*.H *.HH) ;; "
|
"Stanford Exploration Project files (*.H *.HH) ;; "
|
||||||
|
"VTK image files (*.vti) ;; "
|
||||||
"NRRD image files (*.nrrd) ;; "
|
"NRRD image files (*.nrrd) ;; "
|
||||||
"NIFTI image files (*.nii *.nii.gz)");
|
"NIFTI image files (*.nii *.nii.gz)");
|
||||||
}
|
}
|
||||||
|
|
@ -1121,6 +1141,7 @@ void convert(Image* image)
|
||||||
image->image()->wordKind = WK_FLOAT;
|
image->image()->wordKind = WK_FLOAT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
QList<Scene_item*>
|
QList<Scene_item*>
|
||||||
Io_image_plugin::load(QFileInfo fileinfo, bool& ok, bool add_to_scene)
|
Io_image_plugin::load(QFileInfo fileinfo, bool& ok, bool add_to_scene)
|
||||||
{
|
{
|
||||||
|
|
@ -1128,39 +1149,39 @@ Io_image_plugin::load(QFileInfo fileinfo, bool& ok, bool add_to_scene)
|
||||||
QApplication::restoreOverrideCursor();
|
QApplication::restoreOverrideCursor();
|
||||||
Image* image = new Image;
|
Image* image = new Image;
|
||||||
|
|
||||||
// read a nrrd file
|
QString warningMessage;
|
||||||
if(fileinfo.suffix() == "nrrd")
|
// read a vti file
|
||||||
|
if(fileinfo.suffix() == "vti")
|
||||||
{
|
{
|
||||||
#ifdef CGAL_USE_VTK
|
#ifdef CGAL_USE_VTK
|
||||||
vtkNew<vtkNrrdReader> reader;
|
ok = load_vtk_file<vtkXMLImageDataReader>(fileinfo, image);
|
||||||
reader->SetFileName(fileinfo.filePath().toUtf8());
|
|
||||||
reader->Update();
|
|
||||||
auto vtk_image = reader->GetOutput();
|
|
||||||
vtk_image->Print(std::cerr);
|
|
||||||
*image = CGAL::IO::read_vtk_image_data(vtk_image); // copy the image data
|
|
||||||
#else
|
#else
|
||||||
CGAL::Three::Three::warning("VTK is required to read NRRD files");
|
ok = false;
|
||||||
delete image;
|
warningMessage = "VTK is required to read VTI files";
|
||||||
return QList<Scene_item*>();
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
// read a nrrd file
|
||||||
|
else if(fileinfo.suffix() == "nrrd")
|
||||||
|
{
|
||||||
|
#ifdef CGAL_USE_VTK
|
||||||
|
ok = load_vtk_file<vtkNrrdReader>(fileinfo, image);
|
||||||
|
#else
|
||||||
|
ok = false;
|
||||||
|
warningMessage = "VTK is required to read NRRD files";
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
// read a NIFTI file
|
// read a NIFTI file
|
||||||
if(fileinfo.suffix() == "nii"
|
else if(fileinfo.suffix() == "nii"
|
||||||
|| ( fileinfo.suffix() == "gz"
|
|| ( fileinfo.suffix() == "gz"
|
||||||
&& fileinfo.fileName().endsWith(QString(".nii.gz"), Qt::CaseInsensitive)))
|
&& fileinfo.fileName().endsWith(QString(".nii.gz"), Qt::CaseInsensitive)))
|
||||||
{
|
{
|
||||||
#ifdef CGAL_USE_VTK
|
#ifdef CGAL_USE_VTK
|
||||||
vtkNew<vtkNIFTIImageReader> reader;
|
ok = load_vtk_file<vtkNIFTIImageReader>(fileinfo, image);
|
||||||
reader->SetFileName(fileinfo.filePath().toUtf8());
|
|
||||||
reader->Update();
|
|
||||||
auto vtk_image = reader->GetOutput();
|
|
||||||
vtk_image->Print(std::cerr);
|
|
||||||
*image = CGAL::IO::read_vtk_image_data(vtk_image); // copy the image data
|
|
||||||
#else
|
#else
|
||||||
CGAL::Three::Three::warning("VTK is required to read NIfTI files");
|
ok = false;
|
||||||
delete image;
|
warningMessage = "VTK is required to read NifTI files";
|
||||||
return QList<Scene_item*>();
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1267,10 +1288,15 @@ Io_image_plugin::load(QFileInfo fileinfo, bool& ok, bool add_to_scene)
|
||||||
if(!success)
|
if(!success)
|
||||||
{
|
{
|
||||||
ok = false;
|
ok = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!ok) {
|
||||||
|
if (warningMessage.length() > 0)
|
||||||
|
CGAL::Three::Three::warning(warningMessage);
|
||||||
delete image;
|
delete image;
|
||||||
return QList<Scene_item*>();
|
return QList<Scene_item*>();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Get display precision
|
// Get display precision
|
||||||
QDialog dialog;
|
QDialog dialog;
|
||||||
|
|
|
||||||
|
|
@ -368,9 +368,9 @@ std::optional<QString> Mesh_3_plugin::get_items_or_return_error_string() const
|
||||||
{
|
{
|
||||||
auto poly_items_ptr = std::get_if<Polyhedral_mesh_items>(&items.value());
|
auto poly_items_ptr = std::get_if<Polyhedral_mesh_items>(&items.value());
|
||||||
auto image_items_ptr = std::get_if<Image_mesh_items>(&items.value());
|
auto image_items_ptr = std::get_if<Image_mesh_items>(&items.value());
|
||||||
if(poly_items_ptr && poly_items_ptr == nullptr)
|
if(poly_items_ptr != nullptr)
|
||||||
poly_items_ptr->polylines_item = polylines_item;
|
poly_items_ptr->polylines_item = polylines_item;
|
||||||
else if(image_items_ptr && image_items_ptr == nullptr)
|
else if(image_items_ptr != nullptr )
|
||||||
image_items_ptr->polylines_item = polylines_item;
|
image_items_ptr->polylines_item = polylines_item;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -677,6 +677,8 @@ void Mesh_3_plugin::mesh_3(const Mesh_type mesh_type,
|
||||||
ui.protectEdges->addItem(boundary_only.first, v(boundary_only.second));
|
ui.protectEdges->addItem(boundary_only.first, v(boundary_only.second));
|
||||||
} else
|
} else
|
||||||
ui.protectEdges->addItem(sharp_edges.first, v(sharp_edges.second));
|
ui.protectEdges->addItem(sharp_edges.first, v(sharp_edges.second));
|
||||||
|
if (polylines_item != nullptr)
|
||||||
|
ui.protectEdges->addItem(input_polylines.first, v(input_polylines.second));
|
||||||
} else if (items->index() == IMAGE_MESH_ITEMS) {
|
} else if (items->index() == IMAGE_MESH_ITEMS) {
|
||||||
if (polylines_item != nullptr) {
|
if (polylines_item != nullptr) {
|
||||||
ui.protectEdges->addItem(input_polylines.first, QVariant::fromValue(input_polylines.second));
|
ui.protectEdges->addItem(input_polylines.first, QVariant::fromValue(input_polylines.second));
|
||||||
|
|
@ -743,6 +745,7 @@ void Mesh_3_plugin::mesh_3(const Mesh_type mesh_type,
|
||||||
const auto pe_flags = ui.protectEdges->currentData().value<Protection_flags>();
|
const auto pe_flags = ui.protectEdges->currentData().value<Protection_flags>();
|
||||||
protect_borders = ui.protect->isChecked() && pe_flags.testFlag(BORDERS);
|
protect_borders = ui.protect->isChecked() && pe_flags.testFlag(BORDERS);
|
||||||
protect_features = ui.protect->isChecked() && pe_flags.testFlag(FEATURES);
|
protect_features = ui.protect->isChecked() && pe_flags.testFlag(FEATURES);
|
||||||
|
const bool protect_polylines = ui.protect->isChecked() && polylines_item != nullptr;
|
||||||
|
|
||||||
const bool detect_connected_components = ui.detectComponents->isChecked();
|
const bool detect_connected_components = ui.detectComponents->isChecked();
|
||||||
const int manifold = (ui.manifoldCheckBox->isChecked() ? 1 : 0) +
|
const int manifold = (ui.manifoldCheckBox->isChecked() ? 1 : 0) +
|
||||||
|
|
@ -789,7 +792,7 @@ void Mesh_3_plugin::mesh_3(const Mesh_type mesh_type,
|
||||||
sm_items.removeAll(make_not_null(bounding_sm_item));
|
sm_items.removeAll(make_not_null(bounding_sm_item));
|
||||||
}
|
}
|
||||||
|
|
||||||
Scene_polylines_item::Polylines_container plc;
|
Scene_polylines_item::Polylines_container polylines_empty_container;
|
||||||
SMesh* bounding_polyhedron = (bounding_sm_item == nullptr)
|
SMesh* bounding_polyhedron = (bounding_sm_item == nullptr)
|
||||||
? nullptr
|
? nullptr
|
||||||
: bounding_sm_item->polyhedron();
|
: bounding_sm_item->polyhedron();
|
||||||
|
|
@ -825,7 +828,7 @@ void Mesh_3_plugin::mesh_3(const Mesh_type mesh_type,
|
||||||
{
|
{
|
||||||
thread = cgal_code_mesh_3(
|
thread = cgal_code_mesh_3(
|
||||||
polyhedrons,
|
polyhedrons,
|
||||||
(polylines_item == nullptr) ? plc : polylines_item->polylines,
|
protect_polylines ? polylines_item->polylines : polylines_empty_container,
|
||||||
bounding_polyhedron,
|
bounding_polyhedron,
|
||||||
item_name,
|
item_name,
|
||||||
angle,
|
angle,
|
||||||
|
|
@ -892,11 +895,11 @@ void Mesh_3_plugin::mesh_3(const Mesh_type mesh_type,
|
||||||
? image_item->image_weights()
|
? image_item->image_weights()
|
||||||
: nullptr;
|
: nullptr;
|
||||||
|
|
||||||
Scene_polylines_item::Polylines_container plc;
|
Scene_polylines_item::Polylines_container polylines_empty_container;
|
||||||
|
|
||||||
thread = cgal_code_mesh_3(
|
thread = cgal_code_mesh_3(
|
||||||
pImage,
|
pImage,
|
||||||
(img_polylines_item == nullptr) ? plc : img_polylines_item->polylines,
|
(img_polylines_item == nullptr) ? polylines_empty_container : img_polylines_item->polylines,
|
||||||
angle,
|
angle,
|
||||||
facets_sizing,
|
facets_sizing,
|
||||||
facets_min_sizing,
|
facets_min_sizing,
|
||||||
|
|
|
||||||
|
|
@ -973,7 +973,7 @@ void Scene_edit_box_item_priv::remodel_box(const QVector3D &dir)
|
||||||
Q_FOREACH(Scene_edit_box_item::vertex* selected_vertex, selected_vertices )
|
Q_FOREACH(Scene_edit_box_item::vertex* selected_vertex, selected_vertices )
|
||||||
{
|
{
|
||||||
int id = selected_vertex->id;
|
int id = selected_vertex->id;
|
||||||
CGAL_assume(id<8);
|
CGAL_assume(id<8 && id >=0);
|
||||||
*selected_vertex->x = applyX(id, last_pool[id][0], dir.x());
|
*selected_vertex->x = applyX(id, last_pool[id][0], dir.x());
|
||||||
*selected_vertex->y = applyY(id, last_pool[id][1], dir.y());
|
*selected_vertex->y = applyY(id, last_pool[id][1], dir.y());
|
||||||
*selected_vertex->z = applyZ(id, last_pool[id][2], dir.z());
|
*selected_vertex->z = applyZ(id, last_pool[id][2], dir.z());
|
||||||
|
|
|
||||||
|
|
@ -370,7 +370,7 @@ struct Scene_triangulation_3_item_priv {
|
||||||
is_aabb_tree_built = false;
|
is_aabb_tree_built = false;
|
||||||
alphaSlider = NULL;
|
alphaSlider = NULL;
|
||||||
is_filterable = true;
|
is_filterable = true;
|
||||||
memset(visible_biteset, 0xFFFF, Scene_triangulation_3_item::number_of_bitset * sizeof(uint)); // all bits set to 1
|
visible_bitset.fill(0xFFFFFFFF);
|
||||||
}
|
}
|
||||||
void computeIntersection(const Primitive& facet);
|
void computeIntersection(const Primitive& facet);
|
||||||
void fill_aabb_tree() {
|
void fill_aabb_tree() {
|
||||||
|
|
@ -528,7 +528,7 @@ struct Scene_triangulation_3_item_priv {
|
||||||
QVector<QColor> colors;
|
QVector<QColor> colors;
|
||||||
QVector<QColor> colors_subdomains;
|
QVector<QColor> colors_subdomains;
|
||||||
boost::dynamic_bitset<> visible_subdomain;
|
boost::dynamic_bitset<> visible_subdomain;
|
||||||
std::bitset<32> visible_biteset[Scene_triangulation_3_item::number_of_bitset];
|
std::array<std::bitset<32>, Scene_triangulation_3_item::number_of_bitset> visible_bitset;
|
||||||
bool show_tetrahedra;
|
bool show_tetrahedra;
|
||||||
bool cut_plane_enabled;
|
bool cut_plane_enabled;
|
||||||
bool is_aabb_tree_built;
|
bool is_aabb_tree_built;
|
||||||
|
|
@ -1054,9 +1054,11 @@ void Scene_triangulation_3_item::draw(CGAL::Three::Viewer_interface* viewer) con
|
||||||
program->bind();
|
program->bind();
|
||||||
if(d->is_filterable)
|
if(d->is_filterable)
|
||||||
{
|
{
|
||||||
GLuint visible_bitset_ulong[number_of_bitset];
|
std::array<GLuint, number_of_bitset> visible_bitset_ulong;
|
||||||
memcpy(visible_bitset_ulong, d->visible_biteset, number_of_bitset * sizeof(uint));
|
std::transform(d->visible_bitset.cbegin(), d->visible_bitset.cend(), visible_bitset_ulong.begin(),
|
||||||
program->setUniformValueArray("is_visible_bitset", visible_bitset_ulong, number_of_bitset);
|
[](const std::bitset<32>& bitset) { return bitset.to_ulong(); }
|
||||||
|
);
|
||||||
|
program->setUniformValueArray("is_visible_bitset", visible_bitset_ulong.data(), number_of_bitset);
|
||||||
}
|
}
|
||||||
program->setUniformValue("is_filterable", d->is_filterable);
|
program->setUniformValue("is_filterable", d->is_filterable);
|
||||||
program->release();
|
program->release();
|
||||||
|
|
@ -1142,9 +1144,11 @@ void Scene_triangulation_3_item::drawEdges(CGAL::Three::Viewer_interface* viewer
|
||||||
program->bind();
|
program->bind();
|
||||||
if(d->is_filterable)
|
if(d->is_filterable)
|
||||||
{
|
{
|
||||||
GLuint visible_bitset_ulong[number_of_bitset];
|
std::array<GLuint, number_of_bitset> visible_bitset_ulong;
|
||||||
memcpy(visible_bitset_ulong, d->visible_biteset, number_of_bitset * sizeof(uint));
|
std::transform(d->visible_bitset.cbegin(), d->visible_bitset.cend(), visible_bitset_ulong.begin(),
|
||||||
program->setUniformValueArray("is_visible_bitset", visible_bitset_ulong, number_of_bitset);
|
[](const std::bitset<32>& bitset) { return bitset.to_ulong(); }
|
||||||
|
);
|
||||||
|
program->setUniformValueArray("is_visible_bitset", visible_bitset_ulong.data(), number_of_bitset);
|
||||||
}
|
}
|
||||||
program->setUniformValue("is_filterable", d->is_filterable);
|
program->setUniformValue("is_filterable", d->is_filterable);
|
||||||
program->release();
|
program->release();
|
||||||
|
|
@ -2154,7 +2158,7 @@ QColor Scene_triangulation_3_item::getSubdomainIndexColor(int i) const
|
||||||
void Scene_triangulation_3_item::resetVisibleSubdomain()
|
void Scene_triangulation_3_item::resetVisibleSubdomain()
|
||||||
{
|
{
|
||||||
d->visible_subdomain.set();
|
d->visible_subdomain.set();
|
||||||
memset(d->visible_biteset, 0xFFFF, number_of_bitset * sizeof(uint));
|
d->visible_bitset.fill(0xFFFFFFFF);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Scene_triangulation_3_item::switchVisibleSubdomain(int id)
|
void Scene_triangulation_3_item::switchVisibleSubdomain(int id)
|
||||||
|
|
@ -2164,7 +2168,7 @@ void Scene_triangulation_3_item::switchVisibleSubdomain(int id)
|
||||||
int i = compact_id/32;
|
int i = compact_id/32;
|
||||||
int j = compact_id%32;
|
int j = compact_id%32;
|
||||||
|
|
||||||
d->visible_biteset[i][j] = d->visible_subdomain[id];
|
d->visible_bitset[i][j] = d->visible_subdomain[id];
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Scene_triangulation_3_item::isVisibleSubdomain(int id) const
|
bool Scene_triangulation_3_item::isVisibleSubdomain(int id) const
|
||||||
|
|
|
||||||
|
|
@ -56,10 +56,7 @@ bool compute_filtering_visibility() {
|
||||||
uint j2 = domain2%32u;
|
uint j2 = domain2%32u;
|
||||||
uint visible1 = uint(is_visible_bitset[i1]);
|
uint visible1 = uint(is_visible_bitset[i1]);
|
||||||
uint visible2 = uint(is_visible_bitset[i2]);
|
uint visible2 = uint(is_visible_bitset[i2]);
|
||||||
if(((visible1>>j1)&1u) == 0u && ((visible2>>j2)&1u) == 0u)
|
return ((visible1>>j1)&1u) == 0u && ((visible2>>j2)&1u) == 0u;
|
||||||
{
|
|
||||||
discard;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
|
|
|
||||||
|
|
@ -298,7 +298,7 @@ private:
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\ingroup PkgSolverInterfaceRefLS
|
\ingroup PkgSolverInterfaceLS
|
||||||
|
|
||||||
The class `Eigen_sparse_symmetric_matrix` is a wrapper around `Eigen` matrix type
|
The class `Eigen_sparse_symmetric_matrix` is a wrapper around `Eigen` matrix type
|
||||||
<a href="https://eigen.tuxfamily.org/dox/classEigen_1_1SparseMatrix.html">`Eigen::SparseMatrix` </a>
|
<a href="https://eigen.tuxfamily.org/dox/classEigen_1_1SparseMatrix.html">`Eigen::SparseMatrix` </a>
|
||||||
|
|
|
||||||
|
|
@ -495,7 +495,7 @@ A precise specification of the format is available
|
||||||
The Medit format, using file extension `.mesh`, is a format used by the Medit software.
|
The Medit format, using file extension `.mesh`, is a format used by the Medit software.
|
||||||
In \cgal, it is used to represent 3D meshes.
|
In \cgal, it is used to represent 3D meshes.
|
||||||
|
|
||||||
A precise specification of the format is available <a href="https://hal.inria.fr/inria-00069921/document">in this report</a>,
|
A precise specification of the format is available <a href="https://inria.hal.science/inria-00069921/document">in this report</a>,
|
||||||
in the appendices (section 7.2.1, page 36).
|
in the appendices (section 7.2.1, page 36).
|
||||||
|
|
||||||
Only the `CGAL::Mesh_complex_3_in_triangulation_3` \cgal data structure can be exported into `.mesh`
|
Only the `CGAL::Mesh_complex_3_in_triangulation_3` \cgal data structure can be exported into `.mesh`
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
// Author(s) : Mael Rouxel-Labbé
|
// Author(s) : Mael Rouxel-Labbé
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \ingroup PkgSurfaceMeshParameterization
|
* \ingroup PkgSurfaceMeshParameterizationRef
|
||||||
* \file CGAL/surface_mesh_parameterization.h
|
* \file CGAL/surface_mesh_parameterization.h
|
||||||
* Convenience header file including the headers for all
|
* Convenience header file including the headers for all
|
||||||
* the free functions of this package.
|
* the free functions of this package.
|
||||||
|
|
@ -34,4 +34,3 @@
|
||||||
#include <CGAL/Surface_mesh_parameterization/Circular_border_parameterizer_3.h>
|
#include <CGAL/Surface_mesh_parameterization/Circular_border_parameterizer_3.h>
|
||||||
#include <CGAL/Surface_mesh_parameterization/Square_border_parameterizer_3.h>
|
#include <CGAL/Surface_mesh_parameterization/Square_border_parameterizer_3.h>
|
||||||
#include <CGAL/Surface_mesh_parameterization/Two_vertices_parameterizer_3.h>
|
#include <CGAL/Surface_mesh_parameterization/Two_vertices_parameterizer_3.h>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -530,7 +530,7 @@ private:
|
||||||
std::cout << "\t vertices = " << nbv << std::endl;
|
std::cout << "\t vertices = " << nbv << std::endl;
|
||||||
|
|
||||||
CGAL::Tetrahedral_remeshing::debug::dump_vertices_by_dimension(
|
CGAL::Tetrahedral_remeshing::debug::dump_vertices_by_dimension(
|
||||||
m_c3t3.triangulation(), "c3t3_vertices_");
|
m_c3t3.triangulation(), "0-c3t3_vertices_after_init_");
|
||||||
CGAL::Tetrahedral_remeshing::debug::check_surface_patch_indices(m_c3t3);
|
CGAL::Tetrahedral_remeshing::debug::check_surface_patch_indices(m_c3t3);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -392,15 +392,14 @@ void tetrahedral_isotropic_remeshing(
|
||||||
= choose_parameter(get_parameter(np, internal_np::smooth_constrained_edges),
|
= choose_parameter(get_parameter(np, internal_np::smooth_constrained_edges),
|
||||||
false);
|
false);
|
||||||
|
|
||||||
typedef typename Tr::Cell_handle Cell_handle;
|
|
||||||
typedef typename internal_np::Lookup_named_param_def <
|
typedef typename internal_np::Lookup_named_param_def <
|
||||||
internal_np::cell_selector_t,
|
internal_np::cell_selector_t,
|
||||||
NamedParameters,
|
NamedParameters,
|
||||||
Constant_property_map<Cell_handle, bool>//default
|
Tetrahedral_remeshing::internal::All_cells_selected<Tr>//default
|
||||||
> ::type SelectionFunctor;
|
> ::type SelectionFunctor;
|
||||||
SelectionFunctor cell_select
|
SelectionFunctor cell_select
|
||||||
= choose_parameter(get_parameter(np, internal_np::cell_selector),
|
= choose_parameter(get_parameter(np, internal_np::cell_selector),
|
||||||
Constant_property_map<Cell_handle, bool>(true));
|
Tetrahedral_remeshing::internal::All_cells_selected<Tr>());
|
||||||
|
|
||||||
typedef std::pair<typename Tr::Vertex_handle, typename Tr::Vertex_handle> Edge_vv;
|
typedef std::pair<typename Tr::Vertex_handle, typename Tr::Vertex_handle> Edge_vv;
|
||||||
typedef typename internal_np::Lookup_named_param_def <
|
typedef typename internal_np::Lookup_named_param_def <
|
||||||
|
|
|
||||||
|
|
@ -742,8 +742,8 @@ The class `Regular_triangulation_2<Traits, Tds>`
|
||||||
is designed to maintain the
|
is designed to maintain the
|
||||||
regular triangulation of a set of \f$ 2d\f$ weighted points.
|
regular triangulation of a set of \f$ 2d\f$ weighted points.
|
||||||
It derives from the class `Triangulation_2<Traits, Tds>`.
|
It derives from the class `Triangulation_2<Traits, Tds>`.
|
||||||
The functions `insert` and
|
The functions `insert()` and
|
||||||
`remove` are overwritten to handle weighted points
|
`remove()` are overwritten to handle weighted points
|
||||||
and maintain the regular
|
and maintain the regular
|
||||||
property.
|
property.
|
||||||
The function `move()` is not
|
The function `move()` is not
|
||||||
|
|
@ -1184,7 +1184,7 @@ classes.
|
||||||
|
|
||||||
The class `Triangulation_hierarchy_2<Tr>` inherits from the
|
The class `Triangulation_hierarchy_2<Tr>` inherits from the
|
||||||
triangulation type passed as template parameter `Tr`.
|
triangulation type passed as template parameter `Tr`.
|
||||||
The `insert`, `move`, and `remove` member functions
|
The `insert()`, `move()`, and `remove()` member functions
|
||||||
are overwritten to update the data structure at each operation.
|
are overwritten to update the data structure at each operation.
|
||||||
The locate queries are also overwritten to take advantage of the data
|
The locate queries are also overwritten to take advantage of the data
|
||||||
structure for a fast processing.
|
structure for a fast processing.
|
||||||
|
|
@ -1327,7 +1327,7 @@ data structure.
|
||||||
|
|
||||||
The most efficient method to insert (weighted) points in a
|
The most efficient method to insert (weighted) points in a
|
||||||
Delaunay (or regular) triangulation is to provide an iterator
|
Delaunay (or regular) triangulation is to provide an iterator
|
||||||
range over (weighted) points to the insert function. However, an iterator range of
|
range over (weighted) points to the `insert()` function. However, an iterator range of
|
||||||
(weighted) points does not allow the user to set different information to each vertex.
|
(weighted) points does not allow the user to set different information to each vertex.
|
||||||
To solve this problem, in the case the vertex type of the triangulation
|
To solve this problem, in the case the vertex type of the triangulation
|
||||||
is a model of the concept `TriangulationVertexBaseWithInfo_2`
|
is a model of the concept `TriangulationVertexBaseWithInfo_2`
|
||||||
|
|
@ -1339,7 +1339,7 @@ of the corresponding point given in the range.
|
||||||
\subsection Triangulation_2UsinganIteratorOverPairs Using an Iterator Over Pairs
|
\subsection Triangulation_2UsinganIteratorOverPairs Using an Iterator Over Pairs
|
||||||
|
|
||||||
Each point and its information are gathered into a pair. We provide
|
Each point and its information are gathered into a pair. We provide
|
||||||
the `insert` function of the triangulation with a range of such pairs.
|
the `insert()` function of the triangulation with a range of such pairs.
|
||||||
\cgalExample{Triangulation_2/info_insert_with_pair_iterator_2.cpp}
|
\cgalExample{Triangulation_2/info_insert_with_pair_iterator_2.cpp}
|
||||||
|
|
||||||
\subsection Triangulation_2UsingtheBoostZipIterator Using the Boost Zip Iterator
|
\subsection Triangulation_2UsingtheBoostZipIterator Using the Boost Zip Iterator
|
||||||
|
|
|
||||||
|
|
@ -2066,7 +2066,7 @@ Regular_triangulation_3<Gt,Tds,Lds>::
|
||||||
side_of_power_sphere(Cell_handle c, const Weighted_point& p, bool perturb) const
|
side_of_power_sphere(Cell_handle c, const Weighted_point& p, bool perturb) const
|
||||||
{
|
{
|
||||||
CGAL_precondition(dimension() == 3);
|
CGAL_precondition(dimension() == 3);
|
||||||
int i3;
|
int i3=3;
|
||||||
if(! c->has_vertex(infinite_vertex(), i3))
|
if(! c->has_vertex(infinite_vertex(), i3))
|
||||||
{
|
{
|
||||||
return Bounded_side(side_of_oriented_power_sphere(c->vertex(0)->point(),
|
return Bounded_side(side_of_oriented_power_sphere(c->vertex(0)->point(),
|
||||||
|
|
@ -2175,7 +2175,7 @@ side_of_power_circle(Cell_handle c, int i, const Weighted_point& p,
|
||||||
bool perturb) const
|
bool perturb) const
|
||||||
{
|
{
|
||||||
CGAL_precondition(dimension() >= 2);
|
CGAL_precondition(dimension() >= 2);
|
||||||
int i3 = 5;
|
int i3 = 3;
|
||||||
if(dimension() == 2)
|
if(dimension() == 2)
|
||||||
{
|
{
|
||||||
CGAL_precondition(i == 3);
|
CGAL_precondition(i == 3);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue