mirror of https://github.com/CGAL/cgal
Merge remote-tracking branch 'cgal/master' into Graphics_view-Fix_demo_IO-GF
This commit is contained in:
commit
0b31e6e5d8
50
.travis.yml
50
.travis.yml
|
|
@ -1,5 +1,5 @@
|
||||||
language: cpp
|
language: cpp
|
||||||
dist: trusty
|
dist: xenial
|
||||||
sudo: required
|
sudo: required
|
||||||
git:
|
git:
|
||||||
depth: 3
|
depth: 3
|
||||||
|
|
@ -19,19 +19,20 @@ env:
|
||||||
- PACKAGE='Distance_2 Distance_3 Envelope_2 '
|
- PACKAGE='Distance_2 Distance_3 Envelope_2 '
|
||||||
- PACKAGE='Envelope_3 Filtered_kernel Generalized_map '
|
- PACKAGE='Envelope_3 Filtered_kernel Generalized_map '
|
||||||
- PACKAGE='Generator Geomview GraphicsView '
|
- PACKAGE='Generator Geomview GraphicsView '
|
||||||
- PACKAGE='HalfedgeDS Hash_map Homogeneous_kernel '
|
- PACKAGE='HalfedgeDS Hash_map Heat_method_3 '
|
||||||
- PACKAGE='Inscribed_areas Installation Interpolation '
|
- PACKAGE='Homogeneous_kernel Hyperbolic_triangulation_2 Inscribed_areas '
|
||||||
- PACKAGE='Intersections_2 Intersections_3 Interval_skip_list '
|
- PACKAGE='Installation Interpolation Intersections_2 '
|
||||||
- PACKAGE='Interval_support Inventor Jet_fitting_3 '
|
- PACKAGE='Intersections_3 Interval_skip_list Interval_support '
|
||||||
- PACKAGE='Kernel_23 Kernel_d LEDA '
|
- PACKAGE='Inventor Jet_fitting_3 Kernel_23 '
|
||||||
- PACKAGE='Linear_cell_complex MacOSX Maintenance '
|
- PACKAGE='Kernel_d LEDA Linear_cell_complex '
|
||||||
- PACKAGE='Matrix_search Mesh_2 Mesh_3 '
|
- PACKAGE='MacOSX Maintenance Matrix_search '
|
||||||
- PACKAGE='Mesher_level Minkowski_sum_2 Minkowski_sum_3 '
|
- PACKAGE='Mesh_2 Mesh_3 Mesher_level '
|
||||||
- PACKAGE='Modifier Modular_arithmetic Nef_2 '
|
- PACKAGE='Minkowski_sum_2 Minkowski_sum_3 Modifier '
|
||||||
- PACKAGE='Nef_3 Nef_S2 NewKernel_d '
|
- PACKAGE='Modular_arithmetic Nef_2 Nef_3 '
|
||||||
- PACKAGE='Number_types OpenNL Optimal_transportation_reconstruction_2 '
|
- PACKAGE='Nef_S2 NewKernel_d Number_types '
|
||||||
- PACKAGE='Optimisation_basic Partition_2 Periodic_2_triangulation_2 '
|
- PACKAGE='OpenNL Optimal_transportation_reconstruction_2 Optimisation_basic '
|
||||||
- PACKAGE='Periodic_3_mesh_3 Periodic_3_triangulation_3 Point_set_2 '
|
- PACKAGE='Partition_2 Periodic_2_triangulation_2 Periodic_3_mesh_3 '
|
||||||
|
- PACKAGE='Periodic_3_triangulation_3 Periodic_4_hyperbolic_triangulation_2 Point_set_2 '
|
||||||
- PACKAGE='Point_set_3 Point_set_processing_3 Point_set_shape_detection_3 '
|
- PACKAGE='Point_set_3 Point_set_processing_3 Point_set_shape_detection_3 '
|
||||||
- PACKAGE='Poisson_surface_reconstruction_3 Polygon Polygon_mesh_processing '
|
- PACKAGE='Poisson_surface_reconstruction_3 Polygon Polygon_mesh_processing '
|
||||||
- PACKAGE='Polyhedron Polyhedron_IO Polyline_simplification_2 '
|
- PACKAGE='Polyhedron Polyhedron_IO Polyline_simplification_2 '
|
||||||
|
|
@ -43,26 +44,27 @@ env:
|
||||||
- PACKAGE='Skin_surface_3 Snap_rounding_2 Solver_interface '
|
- PACKAGE='Skin_surface_3 Snap_rounding_2 Solver_interface '
|
||||||
- PACKAGE='Spatial_searching Spatial_sorting STL_Extension '
|
- PACKAGE='Spatial_searching Spatial_sorting STL_Extension '
|
||||||
- PACKAGE='Straight_skeleton_2 Stream_lines_2 Stream_support '
|
- PACKAGE='Straight_skeleton_2 Stream_lines_2 Stream_support '
|
||||||
- PACKAGE='Subdivision_method_3 Surface_mesh Surface_mesh_deformation '
|
- PACKAGE='Subdivision_method_3 Surface_mesh Surface_mesh_approximation '
|
||||||
- PACKAGE='Surface_mesher Surface_mesh_parameterization Surface_mesh_segmentation '
|
- PACKAGE='Surface_mesh_deformation Surface_mesher Surface_mesh_parameterization '
|
||||||
- PACKAGE='Surface_mesh_shortest_path Surface_mesh_simplification Surface_mesh_skeletonization '
|
- PACKAGE='Surface_mesh_segmentation Surface_mesh_shortest_path Surface_mesh_simplification '
|
||||||
- PACKAGE='Surface_sweep_2 TDS_2 TDS_3 '
|
- PACKAGE='Surface_mesh_skeletonization Surface_sweep_2 TDS_2 '
|
||||||
- PACKAGE='Testsuite Three Triangulation '
|
- PACKAGE='TDS_3 Testsuite Three '
|
||||||
- PACKAGE='Triangulation_2 Triangulation_3 Union_find '
|
- PACKAGE='Triangulation Triangulation_2 Triangulation_3 '
|
||||||
- PACKAGE='Visibility_2 Voronoi_diagram_2 wininst '
|
- PACKAGE='Union_find Visibility_2 Voronoi_diagram_2 '
|
||||||
compiler: clang-3.6
|
- PACKAGE='wininst '
|
||||||
|
compiler: clang
|
||||||
install:
|
install:
|
||||||
- echo "$PWD"
|
- echo "$PWD"
|
||||||
- if [ -n "$TRAVIS_PULL_REQUEST" ] && [ "$PACKAGE" != CHECK ]; then DO_IGNORE=FALSE; for ARG in $(echo "$PACKAGE");do if [ "$ARG" = "Maintenance" ]; then continue; fi; . $PWD/.travis/test_package.sh "$PWD" "$ARG"; echo "DO_IGNORE is $DO_IGNORE"; if [ "$DO_IGNORE" = "FALSE" ]; then break; fi; done; if [ "$DO_IGNORE" = "TRUE" ]; then travis_terminate 0; fi;fi
|
- if [ -n "$TRAVIS_PULL_REQUEST" ] && [ "$PACKAGE" != CHECK ]; then DO_IGNORE=FALSE; for ARG in $(echo "$PACKAGE");do if [ "$ARG" = "Maintenance" ]; then continue; fi; . $PWD/.travis/test_package.sh "$PWD" "$ARG"; echo "DO_IGNORE is $DO_IGNORE"; if [ "$DO_IGNORE" = "FALSE" ]; then break; fi; done; if [ "$DO_IGNORE" = "TRUE" ]; then travis_terminate 0; fi;fi
|
||||||
- bash .travis/install.sh
|
- bash .travis/install.sh
|
||||||
- export CXX=clang++-3.6 CC=clang-3.6;
|
- export CXX=clang++ CC=clang;
|
||||||
before_script:
|
before_script:
|
||||||
- wget -O doxygen_exe https://cgal.geometryfactory.com/~mgimeno/doxygen_exe
|
- wget -O doxygen_exe https://cgal.geometryfactory.com/~mgimeno/doxygen_exe
|
||||||
- sudo mv doxygen_exe /usr/bin/doxygen
|
- sudo mv doxygen_exe /usr/bin/doxygen
|
||||||
- sudo chmod +x /usr/bin/doxygen
|
- sudo chmod +x /usr/bin/doxygen
|
||||||
- mkdir -p build
|
- mkdir -p build
|
||||||
- cd build
|
- cd build
|
||||||
- cmake -DCMAKE_CXX_FLAGS="-std=c++11" -DCGAL_HEADER_ONLY=ON -DQt5_DIR="/opt/qt55/lib/cmake/Qt5" -DQt5Svg_DIR="/opt/qt55/lib/cmake/Qt5Svg" -DQt5OpenGL_DIR="/opt/qt55/lib/cmake/Qt5OpenGL" -DCMAKE_CXX_FLAGS_RELEASE=-DCGAL_NDEBUG -DWITH_examples=ON -DWITH_demos=ON -DWITH_tests=ON ..
|
- cmake -DCMAKE_CXX_FLAGS="-std=c++11" -DCGAL_HEADER_ONLY=ON -DCMAKE_CXX_FLAGS_RELEASE=-DCGAL_NDEBUG -DWITH_examples=ON -DWITH_demos=ON -DWITH_tests=ON ..
|
||||||
- make
|
- make
|
||||||
- sudo make install &>/dev/null
|
- sudo make install &>/dev/null
|
||||||
- cd ..
|
- cd ..
|
||||||
|
|
|
||||||
|
|
@ -18,40 +18,18 @@ function build_tests {
|
||||||
function build_demo {
|
function build_demo {
|
||||||
mkdir -p build-travis
|
mkdir -p build-travis
|
||||||
cd build-travis
|
cd build-travis
|
||||||
if [ $NEED_3D = 1 ]; then
|
|
||||||
#install libqglviewer
|
|
||||||
git clone --depth=4 -b v2.6.3 --single-branch https://github.com/GillesDebunne/libQGLViewer.git ./qglviewer
|
|
||||||
pushd ./qglviewer/QGLViewer
|
|
||||||
#use qt5 instead of qt4
|
|
||||||
# export QT_SELECT=5
|
|
||||||
qmake NO_QT_VERSION_SUFFIX=yes
|
|
||||||
make -j2
|
|
||||||
if [ ! -f libQGLViewer.so ]; then
|
|
||||||
echo "libQGLViewer.so not made"
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
echo "QGLViewer built successfully"
|
|
||||||
fi
|
|
||||||
#end install qglviewer
|
|
||||||
popd
|
|
||||||
fi
|
|
||||||
EXTRA_CXX_FLAGS=
|
EXTRA_CXX_FLAGS=
|
||||||
case "$CC" in
|
case "$CC" in
|
||||||
clang*)
|
clang*)
|
||||||
EXTRA_CXX_FLAGS="-Werror=inconsistent-missing-override"
|
EXTRA_CXX_FLAGS="-Werror=inconsistent-missing-override"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
if [ $NEED_3D = 1 ]; then
|
cmake -DCGAL_DIR="/usr/local/lib/cmake/CGAL" -DCGAL_DONT_OVERRIDE_CMAKE_FLAGS:BOOL=ON -DCMAKE_CXX_FLAGS="${CXX_FLAGS} ${EXTRA_CXX_FLAGS}" ..
|
||||||
QGLVIEWERROOT=$PWD/qglviewer
|
|
||||||
export QGLVIEWERROOT
|
|
||||||
fi
|
|
||||||
cmake -DCGAL_DIR="/usr/local/lib/cmake/CGAL" -DQt5_DIR="/opt/qt55/lib/cmake/Qt5" -DQt5Svg_DIR="/opt/qt55/lib/cmake/Qt5Svg" -DQt5OpenGL_DIR="/opt/qt55/lib/cmake/Qt5OpenGL" -DCGAL_DONT_OVERRIDE_CMAKE_FLAGS:BOOL=ON -DCMAKE_CXX_FLAGS="${CXX_FLAGS} ${EXTRA_CXX_FLAGS}" ..
|
|
||||||
make -j2
|
make -j2
|
||||||
}
|
}
|
||||||
old_IFS=$IFS
|
old_IFS=$IFS
|
||||||
IFS=$' '
|
IFS=$' '
|
||||||
ROOT="$PWD/.."
|
ROOT="$PWD/.."
|
||||||
NEED_3D=0
|
|
||||||
for ARG in $(echo "$@")
|
for ARG in $(echo "$@")
|
||||||
do
|
do
|
||||||
#skip package maintenance
|
#skip package maintenance
|
||||||
|
|
@ -146,12 +124,6 @@ cd $ROOT
|
||||||
EXAMPLES="$ARG/examples/$ARG"
|
EXAMPLES="$ARG/examples/$ARG"
|
||||||
TEST="$ARG/test/$ARG"
|
TEST="$ARG/test/$ARG"
|
||||||
DEMOS=$ROOT/$ARG/demo/*
|
DEMOS=$ROOT/$ARG/demo/*
|
||||||
if [ "$ARG" = AABB_tree ] || [ "$ARG" = Alpha_shapes_3 ] ||\
|
|
||||||
[ "$ARG" = Circular_kernel_3 ] || [ "$ARG" = Linear_cell_complex ] ||\
|
|
||||||
[ "$ARG" = Periodic_3_triangulation_3 ] || [ "$ARG" = Principal_component_analysis ] ||\
|
|
||||||
[ "$ARG" = Surface_mesher ] || [ "$ARG" = Triangulation_3 ]; then
|
|
||||||
NEED_3D=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -d "$ROOT/$EXAMPLES" ]
|
if [ -d "$ROOT/$EXAMPLES" ]
|
||||||
then
|
then
|
||||||
|
|
@ -206,7 +178,6 @@ cd $ROOT
|
||||||
done
|
done
|
||||||
if [ "$ARG" = Polyhedron_demo ]; then
|
if [ "$ARG" = Polyhedron_demo ]; then
|
||||||
DEMO=Polyhedron/demo/Polyhedron
|
DEMO=Polyhedron/demo/Polyhedron
|
||||||
NEED_3D=1
|
|
||||||
cd "$ROOT/$DEMO"
|
cd "$ROOT/$DEMO"
|
||||||
build_demo
|
build_demo
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,7 @@ done
|
||||||
COPY=0
|
COPY=0
|
||||||
for LINE in $(cat "$PWD/.travis/template.txt")
|
for LINE in $(cat "$PWD/.travis/template.txt")
|
||||||
do
|
do
|
||||||
if [ "$LINE" = "compiler: clang-3.6" ]
|
if [ "$LINE" = "compiler: clang" ]
|
||||||
then
|
then
|
||||||
COPY=1
|
COPY=1
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -2,23 +2,13 @@
|
||||||
|
|
||||||
[ -n "$CGAL_DEBUG_TRAVIS" ] && set -x
|
[ -n "$CGAL_DEBUG_TRAVIS" ] && set -x
|
||||||
DONE=0
|
DONE=0
|
||||||
|
sudo apt-get update
|
||||||
while [ $DONE = 0 ]
|
while [ $DONE = 0 ]
|
||||||
do
|
do
|
||||||
DONE=1 && sudo -E apt-add-repository -y "ppa:ppsspp/cmake" || DONE=0 && sleep 5
|
DONE=1 && sudo -E apt-get -yq --no-install-suggests --no-install-recommends --force-yes install clang zsh \
|
||||||
done
|
flex bison cmake graphviz libgmp-dev libmpfr-dev libmpfi-dev zlib1g-dev libeigen3-dev libboost-dev \
|
||||||
DONE=0
|
libboost-system-dev libboost-program-options-dev libboost-thread-dev libboost-iostreams-dev \
|
||||||
while [ $DONE = 0 ]
|
qtbase5-dev libqt5sql5-sqlite libqt5opengl5-dev qtscript5-dev libqt5svg5-dev qttools5-dev qttools5-dev-tools qml-module-qtgraphicaleffects libopencv-dev mesa-common-dev libmetis-dev libglu1-mesa-dev \
|
||||||
do
|
|
||||||
DONE=1 && sudo -E apt-add-repository -y "ppa:hedges/qt5.5" || DONE=0 && sleep 5
|
|
||||||
done
|
|
||||||
|
|
||||||
DONE=0
|
|
||||||
while [ $DONE = 0 ]
|
|
||||||
do
|
|
||||||
DONE=1 && sudo -E apt-get -yq --no-install-suggests --no-install-recommends --force-yes install clang-3.6 zsh \
|
|
||||||
flex bison cmake graphviz libgmp-dev libmpfr-dev libmpfi-dev zlib1g-dev libeigen3-dev libboost1.55-dev \
|
|
||||||
libboost-system1.55-dev libboost-program-options1.55-dev libboost-thread1.55-dev libboost-iostreams1.55-dev \
|
|
||||||
qt55base qt55script qt55svg qt55tools qt55graphicaleffects libopencv-dev mesa-common-dev libmetis-dev libglu1-mesa-dev \
|
|
||||||
|| DONE=0 && sudo apt-get update
|
|| DONE=0 && sudo apt-get update
|
||||||
done
|
done
|
||||||
exit 0
|
exit 0
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,9 @@ Geomview
|
||||||
GraphicsView
|
GraphicsView
|
||||||
HalfedgeDS
|
HalfedgeDS
|
||||||
Hash_map
|
Hash_map
|
||||||
|
Heat_method_3
|
||||||
Homogeneous_kernel
|
Homogeneous_kernel
|
||||||
|
Hyperbolic_triangulation_2
|
||||||
Inscribed_areas
|
Inscribed_areas
|
||||||
Installation
|
Installation
|
||||||
Interpolation
|
Interpolation
|
||||||
|
|
@ -75,6 +77,7 @@ Partition_2
|
||||||
Periodic_2_triangulation_2
|
Periodic_2_triangulation_2
|
||||||
Periodic_3_mesh_3
|
Periodic_3_mesh_3
|
||||||
Periodic_3_triangulation_3
|
Periodic_3_triangulation_3
|
||||||
|
Periodic_4_hyperbolic_triangulation_2
|
||||||
Point_set_2
|
Point_set_2
|
||||||
Point_set_3
|
Point_set_3
|
||||||
Point_set_processing_3
|
Point_set_processing_3
|
||||||
|
|
@ -111,6 +114,7 @@ Stream_lines_2
|
||||||
Stream_support
|
Stream_support
|
||||||
Subdivision_method_3
|
Subdivision_method_3
|
||||||
Surface_mesh
|
Surface_mesh
|
||||||
|
Surface_mesh_approximation
|
||||||
Surface_mesh_deformation
|
Surface_mesh_deformation
|
||||||
Surface_mesher
|
Surface_mesher
|
||||||
Surface_mesh_parameterization
|
Surface_mesh_parameterization
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
language: cpp
|
language: cpp
|
||||||
dist: trusty
|
dist: xenial
|
||||||
sudo: required
|
sudo: required
|
||||||
git:
|
git:
|
||||||
depth: 3
|
depth: 3
|
||||||
|
|
@ -7,19 +7,19 @@ env:
|
||||||
matrix:
|
matrix:
|
||||||
PACKAGES_MATRIX
|
PACKAGES_MATRIX
|
||||||
|
|
||||||
compiler: clang-3.6
|
compiler: clang
|
||||||
install:
|
install:
|
||||||
- echo "$PWD"
|
- echo "$PWD"
|
||||||
- if [ -n "$TRAVIS_PULL_REQUEST" ] && [ "$PACKAGE" != CHECK ]; then DO_IGNORE=FALSE; for ARG in $(echo "$PACKAGE");do if [ "$ARG" = "Maintenance" ]; then continue; fi; . $PWD/.travis/test_package.sh "$PWD" "$ARG"; echo "DO_IGNORE is $DO_IGNORE"; if [ "$DO_IGNORE" = "FALSE" ]; then break; fi; done; if [ "$DO_IGNORE" = "TRUE" ]; then travis_terminate 0; fi;fi
|
- if [ -n "$TRAVIS_PULL_REQUEST" ] && [ "$PACKAGE" != CHECK ]; then DO_IGNORE=FALSE; for ARG in $(echo "$PACKAGE");do if [ "$ARG" = "Maintenance" ]; then continue; fi; . $PWD/.travis/test_package.sh "$PWD" "$ARG"; echo "DO_IGNORE is $DO_IGNORE"; if [ "$DO_IGNORE" = "FALSE" ]; then break; fi; done; if [ "$DO_IGNORE" = "TRUE" ]; then travis_terminate 0; fi;fi
|
||||||
- bash .travis/install.sh
|
- bash .travis/install.sh
|
||||||
- export CXX=clang++-3.6 CC=clang-3.6;
|
- export CXX=clang++ CC=clang;
|
||||||
before_script:
|
before_script:
|
||||||
- wget -O doxygen_exe https://cgal.geometryfactory.com/~mgimeno/doxygen_exe
|
- wget -O doxygen_exe https://cgal.geometryfactory.com/~mgimeno/doxygen_exe
|
||||||
- sudo mv doxygen_exe /usr/bin/doxygen
|
- sudo mv doxygen_exe /usr/bin/doxygen
|
||||||
- sudo chmod +x /usr/bin/doxygen
|
- sudo chmod +x /usr/bin/doxygen
|
||||||
- mkdir -p build
|
- mkdir -p build
|
||||||
- cd build
|
- cd build
|
||||||
- cmake -DCMAKE_CXX_FLAGS="-std=c++11" -DCGAL_HEADER_ONLY=ON -DQt5_DIR="/opt/qt55/lib/cmake/Qt5" -DQt5Svg_DIR="/opt/qt55/lib/cmake/Qt5Svg" -DQt5OpenGL_DIR="/opt/qt55/lib/cmake/Qt5OpenGL" -DCMAKE_CXX_FLAGS_RELEASE=-DCGAL_NDEBUG -DWITH_examples=ON -DWITH_demos=ON -DWITH_tests=ON ..
|
- cmake -DCMAKE_CXX_FLAGS="-std=c++11" -DCGAL_HEADER_ONLY=ON -DCMAKE_CXX_FLAGS_RELEASE=-DCGAL_NDEBUG -DWITH_examples=ON -DWITH_demos=ON -DWITH_tests=ON ..
|
||||||
- make
|
- make
|
||||||
- sudo make install &>/dev/null
|
- sudo make install &>/dev/null
|
||||||
- cd ..
|
- cd ..
|
||||||
|
|
|
||||||
|
|
@ -22,17 +22,17 @@
|
||||||
|
|
||||||
\cgalClassifedRefPages
|
\cgalClassifedRefPages
|
||||||
|
|
||||||
## Concepts ##
|
\cgalCRPSection{Concepts}
|
||||||
- `AABBPrimitive`
|
- `AABBPrimitive`
|
||||||
- `AABBPrimitiveWithSharedData`
|
- `AABBPrimitiveWithSharedData`
|
||||||
- `AABBTraits`
|
- `AABBTraits`
|
||||||
- `AABBGeomTraits`
|
- `AABBGeomTraits`
|
||||||
|
|
||||||
## Classes ##
|
\cgalCRPSection{Classes}
|
||||||
- `CGAL::AABB_traits<GeomTraits,Primitive>`
|
- `CGAL::AABB_traits<GeomTraits,Primitive>`
|
||||||
- `CGAL::AABB_tree<AT>`
|
- `CGAL::AABB_tree<AT>`
|
||||||
|
|
||||||
## Primitives ##
|
\cgalCRPSection{Primitives}
|
||||||
- `CGAL::AABB_triangle_primitive<GeomTraits, Iterator, CacheDatum>`
|
- `CGAL::AABB_triangle_primitive<GeomTraits, Iterator, CacheDatum>`
|
||||||
- `CGAL::AABB_segment_primitive<GeomTraits, Iterator, CacheDatum>`
|
- `CGAL::AABB_segment_primitive<GeomTraits, Iterator, CacheDatum>`
|
||||||
- `CGAL::AABB_primitive<Id,ObjectPropertyMap,PointPropertyMapPolyhedron,ExternalPropertyMaps,CacheDatum>`
|
- `CGAL::AABB_primitive<Id,ObjectPropertyMap,PointPropertyMapPolyhedron,ExternalPropertyMaps,CacheDatum>`
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <list>
|
#include <list>
|
||||||
#include <boost/iterator.hpp>
|
#include <boost/iterator/iterator_adaptor.hpp>
|
||||||
|
|
||||||
#include <CGAL/Simple_cartesian.h>
|
#include <CGAL/Simple_cartesian.h>
|
||||||
#include <CGAL/AABB_tree.h>
|
#include <CGAL/AABB_tree.h>
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,11 @@
|
||||||
|
|
||||||
// Author(s) : Camille Wormser, Pierre Alliez
|
// Author(s) : Camille Wormser, Pierre Alliez
|
||||||
// Example of an AABB tree used with a simple list of
|
// Example of an AABB tree used with a simple list of
|
||||||
// triangles (a triangle soup) stored into an array of points.
|
// triangles (a triangle soup) stored into an array of points.
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <boost/iterator.hpp>
|
#include <boost/iterator/iterator_adaptor.hpp>
|
||||||
|
|
||||||
#include <CGAL/Simple_cartesian.h>
|
#include <CGAL/Simple_cartesian.h>
|
||||||
#include <CGAL/AABB_tree.h>
|
#include <CGAL/AABB_tree.h>
|
||||||
|
|
|
||||||
|
|
@ -429,6 +429,12 @@ public:
|
||||||
/// that returns `true` in order to skip the primitive.
|
/// that returns `true` in order to skip the primitive.
|
||||||
/// Defaults to a functor that always returns `false`.
|
/// Defaults to a functor that always returns `false`.
|
||||||
///
|
///
|
||||||
|
/// \note `skip` might be given some primitives that are not intersected by `query`
|
||||||
|
/// because the intersection test is done after the skip test. Also note that
|
||||||
|
/// the order the primitives are given to `skip` is not necessarily the
|
||||||
|
/// intersection order with `query`.
|
||||||
|
///
|
||||||
|
///
|
||||||
/// `AABBTraits` must be a model of `AABBRayIntersectionTraits` to
|
/// `AABBTraits` must be a model of `AABBRayIntersectionTraits` to
|
||||||
/// call this member function.
|
/// call this member function.
|
||||||
template<typename Ray, typename SkipFunctor>
|
template<typename Ray, typename SkipFunctor>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,105 @@
|
||||||
|
// Copyright (c) 2017 GeometryFactory (France).
|
||||||
|
// All rights reserved.
|
||||||
|
//
|
||||||
|
// This file is part of CGAL (www.cgal.org).
|
||||||
|
// You can redistribute it and/or modify it under the terms of the GNU
|
||||||
|
// General Public License as published by the Free Software Foundation,
|
||||||
|
// either version 3 of the License, or (at your option) any later version.
|
||||||
|
//
|
||||||
|
// Licensees holding a valid commercial license may use this file in
|
||||||
|
// accordance with the commercial license agreement provided with the software.
|
||||||
|
//
|
||||||
|
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||||
|
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
//
|
||||||
|
// $URL$
|
||||||
|
// $Id$
|
||||||
|
// SPDX-License-Identifier: GPL-3.0+
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Author : Jane Tournois
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef CGAL_AABB_TRIANGULATION_3_CELL_PRIMITIVE_H_
|
||||||
|
#define CGAL_AABB_TRIANGULATION_3_CELL_PRIMITIVE_H_
|
||||||
|
|
||||||
|
#include <CGAL/license/AABB_tree.h>
|
||||||
|
|
||||||
|
|
||||||
|
#include <CGAL/AABB_primitive.h>
|
||||||
|
#include <CGAL/result_of.h>
|
||||||
|
#include <iterator>
|
||||||
|
|
||||||
|
namespace CGAL
|
||||||
|
{
|
||||||
|
namespace internal
|
||||||
|
{
|
||||||
|
template <class GeomTraits, class Iterator>
|
||||||
|
struct Point_from_cell_iterator_proprety_map
|
||||||
|
{
|
||||||
|
//classical typedefs
|
||||||
|
typedef Iterator key_type;
|
||||||
|
typedef typename GeomTraits::Point_3 value_type;
|
||||||
|
typedef typename cpp11::result_of<
|
||||||
|
typename GeomTraits::Construct_vertex_3(typename GeomTraits::Tetrahedron_3, int)
|
||||||
|
>::type reference;
|
||||||
|
typedef boost::readable_property_map_tag category;
|
||||||
|
|
||||||
|
inline friend
|
||||||
|
typename Point_from_cell_iterator_proprety_map<GeomTraits, Iterator>::reference
|
||||||
|
get(Point_from_cell_iterator_proprety_map<GeomTraits, Iterator>, Iterator it)
|
||||||
|
{
|
||||||
|
typename GeomTraits::Construct_point_3 point;
|
||||||
|
return point(it->vertex(1)->point());
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
template <class GeomTraits, class Iterator>
|
||||||
|
struct Tet_from_cell_iterator_proprety_map
|
||||||
|
{
|
||||||
|
//classical typedefs
|
||||||
|
typedef Iterator key_type;
|
||||||
|
typedef typename GeomTraits::Tetrahedron_3 value_type;
|
||||||
|
typedef value_type reference;
|
||||||
|
typedef boost::readable_property_map_tag category;
|
||||||
|
|
||||||
|
inline friend
|
||||||
|
reference
|
||||||
|
get(Tet_from_cell_iterator_proprety_map<GeomTraits, Iterator>, key_type it)
|
||||||
|
{
|
||||||
|
typename GeomTraits::Construct_point_3 point;
|
||||||
|
return value_type(point(it->vertex(0)->point()),
|
||||||
|
point(it->vertex(1)->point()),
|
||||||
|
point(it->vertex(2)->point()),
|
||||||
|
point(it->vertex(3)->point()));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
}//namespace internal
|
||||||
|
|
||||||
|
|
||||||
|
template < class GeomTraits,
|
||||||
|
class Tr,
|
||||||
|
class CacheDatum = Tag_false,
|
||||||
|
class Handle = typename Tr::Cell_handle>
|
||||||
|
class AABB_triangulation_3_cell_primitive
|
||||||
|
#ifndef DOXYGEN_RUNNING
|
||||||
|
: public AABB_primitive< Handle,
|
||||||
|
internal::Tet_from_cell_iterator_proprety_map<GeomTraits, Handle>,
|
||||||
|
internal::Point_from_cell_iterator_proprety_map<GeomTraits, Handle>,
|
||||||
|
Tag_false,
|
||||||
|
CacheDatum >
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
typedef AABB_primitive< Handle,
|
||||||
|
internal::Tet_from_cell_iterator_proprety_map<GeomTraits, Handle>,
|
||||||
|
internal::Point_from_cell_iterator_proprety_map<GeomTraits, Handle>,
|
||||||
|
Tag_false,
|
||||||
|
CacheDatum > Base;
|
||||||
|
public:
|
||||||
|
AABB_triangulation_3_cell_primitive(Handle h) : Base(h){} };
|
||||||
|
|
||||||
|
} // end namespace CGAL
|
||||||
|
|
||||||
|
|
||||||
|
#endif // CGAL_AABB_TRIANGULATION_3_CELL_PRIMITIVE_H_
|
||||||
|
|
@ -65,6 +65,9 @@ namespace CGAL
|
||||||
m_id = rhs.m_id;
|
m_id = rhs.m_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef CGAL_CFG_NO_CPP0X_DELETED_AND_DEFAULT_FUNCTIONS
|
||||||
|
Decorated_point& operator=(const Decorated_point&)=default;
|
||||||
|
#endif
|
||||||
private:
|
private:
|
||||||
Id m_id;
|
Id m_id;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,3 +16,4 @@ Property_map
|
||||||
STL_Extension
|
STL_Extension
|
||||||
Spatial_searching
|
Spatial_searching
|
||||||
Stream_support
|
Stream_support
|
||||||
|
Distance_3
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,7 @@
|
||||||
#include <CGAL/AABB_face_graph_triangle_primitive.h>
|
#include <CGAL/AABB_face_graph_triangle_primitive.h>
|
||||||
#include <CGAL/AABB_halfedge_graph_segment_primitive.h>
|
#include <CGAL/AABB_halfedge_graph_segment_primitive.h>
|
||||||
#include <CGAL/Polyhedron_3.h>
|
#include <CGAL/Polyhedron_3.h>
|
||||||
|
#include <CGAL/Timer.h>
|
||||||
|
|
||||||
#include <CGAL/disable_warnings.h>
|
#include <CGAL/disable_warnings.h>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,9 +26,6 @@
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
#include <CGAL/Timer.h>
|
|
||||||
|
|
||||||
#include <CGAL/Cartesian.h>
|
|
||||||
#include <CGAL/Simple_cartesian.h>
|
#include <CGAL/Simple_cartesian.h>
|
||||||
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
|
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,10 +25,8 @@
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <CGAL/Timer.h>
|
|
||||||
|
|
||||||
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
|
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
|
||||||
#include <CGAL/Cartesian.h>
|
|
||||||
#include <CGAL/Simple_cartesian.h>
|
#include <CGAL/Simple_cartesian.h>
|
||||||
|
|
||||||
#include <CGAL/AABB_tree.h>
|
#include <CGAL/AABB_tree.h>
|
||||||
|
|
|
||||||
|
|
@ -28,14 +28,12 @@
|
||||||
#include <CGAL/Timer.h>
|
#include <CGAL/Timer.h>
|
||||||
|
|
||||||
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
|
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
|
||||||
#include <CGAL/Cartesian.h>
|
|
||||||
#include <CGAL/Simple_cartesian.h>
|
#include <CGAL/Simple_cartesian.h>
|
||||||
|
|
||||||
#include <CGAL/AABB_tree.h>
|
#include <CGAL/AABB_tree.h>
|
||||||
#include <CGAL/AABB_traits.h>
|
#include <CGAL/AABB_traits.h>
|
||||||
#include <CGAL/Polyhedron_3.h>
|
#include <CGAL/Polyhedron_3.h>
|
||||||
|
|
||||||
|
|
||||||
#include <CGAL/spatial_sort.h>
|
#include <CGAL/spatial_sort.h>
|
||||||
|
|
||||||
#include "AABB_test_util.h"
|
#include "AABB_test_util.h"
|
||||||
|
|
|
||||||
|
|
@ -25,13 +25,13 @@ of topological singularities. }
|
||||||
|
|
||||||
\cgalClassifedRefPages
|
\cgalClassifedRefPages
|
||||||
|
|
||||||
## Classes ##
|
\cgalCRPSection{Classes}
|
||||||
|
|
||||||
- `CGAL::Advancing_front_surface_reconstruction`
|
- `CGAL::Advancing_front_surface_reconstruction`
|
||||||
- `CGAL::Advancing_front_surface_reconstruction_vertex_base_3`
|
- `CGAL::Advancing_front_surface_reconstruction_vertex_base_3`
|
||||||
- `CGAL::Advancing_front_surface_reconstruction_cell_base_3`
|
- `CGAL::Advancing_front_surface_reconstruction_cell_base_3`
|
||||||
|
|
||||||
## Functions ##
|
\cgalCRPSection{Functions}
|
||||||
|
|
||||||
- `CGAL::advancing_front_surface_reconstruction()`
|
- `CGAL::advancing_front_surface_reconstruction()`
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,10 +10,6 @@ find_package(CGAL QUIET)
|
||||||
|
|
||||||
if ( CGAL_FOUND )
|
if ( CGAL_FOUND )
|
||||||
|
|
||||||
if (MSVC AND ( CMAKE_SIZEOF_VOID_P EQUAL 4 ) )
|
|
||||||
SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4244")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# create a target per cppfile
|
# create a target per cppfile
|
||||||
file(GLOB cppfiles RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
|
file(GLOB cppfiles RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
|
||||||
foreach(cppfile ${cppfiles})
|
foreach(cppfile ${cppfiles})
|
||||||
|
|
|
||||||
|
|
@ -23,9 +23,9 @@
|
||||||
|
|
||||||
\cgalClassifedRefPages
|
\cgalClassifedRefPages
|
||||||
|
|
||||||
## Algebraic Structures ##
|
\cgalCRPSection{Algebraic Structures}
|
||||||
|
|
||||||
### Concepts ###
|
\cgalCRPSubsection{Concepts}
|
||||||
|
|
||||||
- `IntegralDomainWithoutDivision`
|
- `IntegralDomainWithoutDivision`
|
||||||
- `IntegralDomain`
|
- `IntegralDomain`
|
||||||
|
|
@ -54,7 +54,7 @@
|
||||||
- `AlgebraicStructureTraits_::KthRoot`
|
- `AlgebraicStructureTraits_::KthRoot`
|
||||||
- `AlgebraicStructureTraits_::RootOf`
|
- `AlgebraicStructureTraits_::RootOf`
|
||||||
|
|
||||||
### Classes ###
|
\cgalCRPSubsection{Classes}
|
||||||
|
|
||||||
- `CGAL::Algebraic_structure_traits<T>`
|
- `CGAL::Algebraic_structure_traits<T>`
|
||||||
- `CGAL::Integral_domain_without_division_tag`
|
- `CGAL::Integral_domain_without_division_tag`
|
||||||
|
|
@ -64,7 +64,7 @@
|
||||||
- `CGAL::Unique_factorization_domain_tag`
|
- `CGAL::Unique_factorization_domain_tag`
|
||||||
- `CGAL::Euclidean_ring_tag`
|
- `CGAL::Euclidean_ring_tag`
|
||||||
|
|
||||||
### Global Functions ###
|
\cgalCRPSubsection{Global Functions}
|
||||||
|
|
||||||
- `CGAL::is_zero()`
|
- `CGAL::is_zero()`
|
||||||
- `CGAL::is_one()`
|
- `CGAL::is_one()`
|
||||||
|
|
@ -82,9 +82,9 @@
|
||||||
- `CGAL::kth_root()`
|
- `CGAL::kth_root()`
|
||||||
- `CGAL::root_of()`
|
- `CGAL::root_of()`
|
||||||
|
|
||||||
## Real Embeddable ##
|
\cgalCRPSection{Real Embeddable}
|
||||||
|
|
||||||
### Concepts ###
|
\cgalCRPSubsection{Concepts}
|
||||||
|
|
||||||
- `RealEmbeddable`
|
- `RealEmbeddable`
|
||||||
|
|
||||||
|
|
@ -98,11 +98,11 @@
|
||||||
- `RealEmbeddableTraits_::ToDouble`
|
- `RealEmbeddableTraits_::ToDouble`
|
||||||
- `RealEmbeddableTraits_::ToInterval`
|
- `RealEmbeddableTraits_::ToInterval`
|
||||||
|
|
||||||
### Classes ###
|
\cgalCRPSubsection{Classes}
|
||||||
|
|
||||||
- `CGAL::Real_embeddable_traits<T>`
|
- `CGAL::Real_embeddable_traits<T>`
|
||||||
|
|
||||||
### Global Functions ###
|
\cgalCRPSubsection{Global Functions}
|
||||||
|
|
||||||
- `CGAL::is_zero()`
|
- `CGAL::is_zero()`
|
||||||
- `CGAL::abs()`
|
- `CGAL::abs()`
|
||||||
|
|
@ -113,27 +113,27 @@
|
||||||
- `CGAL::to_double()`
|
- `CGAL::to_double()`
|
||||||
- `CGAL::to_interval()`
|
- `CGAL::to_interval()`
|
||||||
|
|
||||||
## Real Number Types ##
|
\cgalCRPSection{Real Number Types}
|
||||||
|
|
||||||
### Concepts ###
|
\cgalCRPSubsection{Concepts}
|
||||||
|
|
||||||
- `RingNumberType`
|
- `RingNumberType`
|
||||||
- `FieldNumberType`
|
- `FieldNumberType`
|
||||||
|
|
||||||
## Interoperability ##
|
\cgalCRPSection{Interoperability}
|
||||||
|
|
||||||
### Concepts ###
|
\cgalCRPSubsection{Concepts}
|
||||||
|
|
||||||
- `ExplicitInteroperable`
|
- `ExplicitInteroperable`
|
||||||
- `ImplicitInteroperable`
|
- `ImplicitInteroperable`
|
||||||
|
|
||||||
### Classes ###
|
\cgalCRPSubsection{Classes}
|
||||||
|
|
||||||
- `CGAL::Coercion_traits<A,B>`
|
- `CGAL::Coercion_traits<A,B>`
|
||||||
|
|
||||||
## Fractions ##
|
\cgalCRPSection{Fractions}
|
||||||
|
|
||||||
### Concepts ###
|
\cgalCRPSubsection{Concepts}
|
||||||
|
|
||||||
- `Fraction`
|
- `Fraction`
|
||||||
- `FractionTraits`
|
- `FractionTraits`
|
||||||
|
|
@ -141,13 +141,13 @@
|
||||||
- `FractionTraits_::Compose`
|
- `FractionTraits_::Compose`
|
||||||
- `FractionTraits_::CommonFactor`
|
- `FractionTraits_::CommonFactor`
|
||||||
|
|
||||||
### Classes ###
|
\cgalCRPSubsection{Classes}
|
||||||
|
|
||||||
- `CGAL::Fraction_traits<T>`
|
- `CGAL::Fraction_traits<T>`
|
||||||
|
|
||||||
## Miscellaneous ##
|
\cgalCRPSection{Miscellaneous}
|
||||||
|
|
||||||
### Concepts ###
|
\cgalCRPSubsection{Concepts}
|
||||||
- `FromIntConstructible`
|
- `FromIntConstructible`
|
||||||
- `FromDoubleConstructible`
|
- `FromDoubleConstructible`
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
#include <CGAL/basic.h>
|
|
||||||
#include <CGAL/IO/io.h>
|
#include <CGAL/IO/io.h>
|
||||||
#include <CGAL/Algebraic_structure_traits.h>
|
#include <CGAL/Algebraic_structure_traits.h>
|
||||||
|
#include <CGAL/number_utils.h>
|
||||||
|
#include <CGAL/int.h>
|
||||||
|
|
||||||
template< typename NT > NT unit_part(const NT& x);
|
template< typename NT > NT unit_part(const NT& x);
|
||||||
template< typename NT >
|
template< typename NT >
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
#include <CGAL/basic.h>
|
|
||||||
#include <CGAL/Fraction_traits.h>
|
#include <CGAL/Fraction_traits.h>
|
||||||
#include <CGAL/IO/io.h>
|
#include <CGAL/IO/io.h>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
#include <CGAL/basic.h>
|
|
||||||
#include <CGAL/Coercion_traits.h>
|
#include <CGAL/Coercion_traits.h>
|
||||||
#include <CGAL/Quotient.h>
|
#include <CGAL/Quotient.h>
|
||||||
#include <CGAL/Sqrt_extension.h>
|
#include <CGAL/Sqrt_extension.h>
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
#include <CGAL/basic.h>
|
|
||||||
#include <CGAL/Fraction_traits.h>
|
#include <CGAL/Fraction_traits.h>
|
||||||
#include <CGAL/IO/io.h>
|
#include <CGAL/IO/io.h>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include <CGAL/number_utils.h>
|
||||||
|
|
||||||
template <class Fraction>
|
template <class Fraction>
|
||||||
std::vector<typename CGAL::Fraction_traits<Fraction>::Numerator_type >
|
std::vector<typename CGAL::Fraction_traits<Fraction>::Numerator_type >
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
#include <CGAL/basic.h>
|
|
||||||
#include <CGAL/Coercion_traits.h>
|
#include <CGAL/Coercion_traits.h>
|
||||||
#include <CGAL/IO/io.h>
|
#include <CGAL/IO/io.h>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -34,9 +34,9 @@
|
||||||
|
|
||||||
\cgalClassifedRefPages
|
\cgalClassifedRefPages
|
||||||
|
|
||||||
## Concepts ##
|
\cgalCRPSection{Concepts}
|
||||||
|
|
||||||
### Univariate Algebraic %Kernel ###
|
\cgalCRPSubsection{Univariate Algebraic %Kernel}
|
||||||
|
|
||||||
- `AlgebraicKernel_d_1`
|
- `AlgebraicKernel_d_1`
|
||||||
|
|
||||||
|
|
@ -58,7 +58,7 @@
|
||||||
- `AlgebraicKernel_d_1::ApproximateAbsolute_1`
|
- `AlgebraicKernel_d_1::ApproximateAbsolute_1`
|
||||||
- `AlgebraicKernel_d_1::ApproximateRelative_1`
|
- `AlgebraicKernel_d_1::ApproximateRelative_1`
|
||||||
|
|
||||||
### Bivariate Algebraic %Kernel ###
|
\cgalCRPSubsection{Bivariate Algebraic %Kernel}
|
||||||
|
|
||||||
- `AlgebraicKernel_d_2`
|
- `AlgebraicKernel_d_2`
|
||||||
|
|
||||||
|
|
@ -95,7 +95,7 @@
|
||||||
- `AlgebraicKernel_d_2::BoundBetweenX_2`
|
- `AlgebraicKernel_d_2::BoundBetweenX_2`
|
||||||
- `AlgebraicKernel_d_2::BoundBetweenY_2`
|
- `AlgebraicKernel_d_2::BoundBetweenY_2`
|
||||||
|
|
||||||
## Models ##
|
\cgalCRPSection{Models}
|
||||||
|
|
||||||
- `CGAL::Algebraic_kernel_d_1<Coeff>`
|
- `CGAL::Algebraic_kernel_d_1<Coeff>`
|
||||||
- `CGAL::Algebraic_kernel_d_2<Coeff>`
|
- `CGAL::Algebraic_kernel_d_2<Coeff>`
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
// $URL$
|
// $URL$
|
||||||
// $Id$
|
// $Id$
|
||||||
|
|
||||||
#include <CGAL/basic.h>
|
#include <CGAL/config.h>
|
||||||
#ifdef CGAL_USE_MPFI
|
#ifdef CGAL_USE_MPFI
|
||||||
#include <CGAL/Algebraic_kernel_d_1.h>
|
#include <CGAL/Algebraic_kernel_d_1.h>
|
||||||
#include <CGAL/Gmpz.h>
|
#include <CGAL/Gmpz.h>
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
// $URL$
|
// $URL$
|
||||||
// $Id$
|
// $Id$
|
||||||
|
|
||||||
#include <CGAL/basic.h>
|
#include <CGAL/config.h>
|
||||||
#ifdef CGAL_USE_MPFI
|
#ifdef CGAL_USE_MPFI
|
||||||
#include <CGAL/Algebraic_kernel_d_1.h>
|
#include <CGAL/Algebraic_kernel_d_1.h>
|
||||||
#include <CGAL/Gmpz.h>
|
#include <CGAL/Gmpz.h>
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
// $URL$
|
// $URL$
|
||||||
// $Id$
|
// $Id$
|
||||||
|
|
||||||
#include <CGAL/basic.h>
|
#include <CGAL/config.h>
|
||||||
#ifdef CGAL_USE_MPFI
|
#ifdef CGAL_USE_MPFI
|
||||||
#include <CGAL/Algebraic_kernel_d_1.h>
|
#include <CGAL/Algebraic_kernel_d_1.h>
|
||||||
#include <CGAL/Gmpz.h>
|
#include <CGAL/Gmpz.h>
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
// $URL$
|
// $URL$
|
||||||
// $Id$
|
// $Id$
|
||||||
|
|
||||||
#include <CGAL/basic.h>
|
#include <CGAL/config.h>
|
||||||
#ifdef CGAL_USE_MPFI
|
#ifdef CGAL_USE_MPFI
|
||||||
#include <CGAL/Algebraic_kernel_d_1.h>
|
#include <CGAL/Algebraic_kernel_d_1.h>
|
||||||
#include <CGAL/Gmpz.h>
|
#include <CGAL/Gmpz.h>
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
// $URL$
|
// $URL$
|
||||||
// $Id$
|
// $Id$
|
||||||
|
|
||||||
#include <CGAL/basic.h>
|
#include <CGAL/config.h>
|
||||||
#ifdef CGAL_USE_MPFI
|
#ifdef CGAL_USE_MPFI
|
||||||
#include <CGAL/Algebraic_kernel_d_1.h>
|
#include <CGAL/Algebraic_kernel_d_1.h>
|
||||||
#include <CGAL/Gmpz.h>
|
#include <CGAL/Gmpz.h>
|
||||||
|
|
|
||||||
|
|
@ -114,9 +114,6 @@ public:
|
||||||
//! Default constructor
|
//! Default constructor
|
||||||
Algebraic_real_d_1() : Base(static_cast<const Base&>(get_default_instance())) {}
|
Algebraic_real_d_1() : Base(static_cast<const Base&>(get_default_instance())) {}
|
||||||
|
|
||||||
//! copy constructor: copy existing Algebraic_real_d_1 (shares rep)
|
|
||||||
Algebraic_real_d_1(const Self& p) : Base(static_cast<const Base&>(p)) {}
|
|
||||||
|
|
||||||
//! creates the algebraic real from \a i.
|
//! creates the algebraic real from \a i.
|
||||||
Algebraic_real_d_1(int i ) : Base(Algebraic_real_rep_d_1(i)) { }
|
Algebraic_real_d_1(int i ) : Base(Algebraic_real_rep_d_1(i)) { }
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -108,8 +108,10 @@ public:
|
||||||
|
|
||||||
Bitstream_coefficient_kernel_at_alpha() : Base(Rep()) {}
|
Bitstream_coefficient_kernel_at_alpha() : Base(Rep()) {}
|
||||||
|
|
||||||
|
#ifdef DOXYGEN_RUNNING
|
||||||
Bitstream_coefficient_kernel_at_alpha(const Self& traits)
|
Bitstream_coefficient_kernel_at_alpha(const Self& traits)
|
||||||
: Base(static_cast<const Base&>(traits)) {}
|
: Base(static_cast<const Base&>(traits)) {}
|
||||||
|
#endif
|
||||||
|
|
||||||
Bitstream_coefficient_kernel_at_alpha(Algebraic_kernel_d_1* kernel,
|
Bitstream_coefficient_kernel_at_alpha(Algebraic_kernel_d_1* kernel,
|
||||||
Algebraic_real_1 alpha)
|
Algebraic_real_1 alpha)
|
||||||
|
|
|
||||||
|
|
@ -476,7 +476,9 @@ private:
|
||||||
log_C_eps_ = n.log_C_eps_;
|
log_C_eps_ = n.log_C_eps_;
|
||||||
}
|
}
|
||||||
|
|
||||||
// const Self& operator= (const Self&); // assignment is forbidden
|
#ifndef CGAL_CFG_NO_CPP0X_DELETED_AND_DEFAULT_FUNCTIONS
|
||||||
|
Self& operator= (const Self&) = delete;
|
||||||
|
#endif
|
||||||
}; // struct Bitstream_descartes_E08_node
|
}; // struct Bitstream_descartes_E08_node
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -575,9 +577,11 @@ public:
|
||||||
Bitstream_descartes_E08_tree() : Base(Rep()) { }
|
Bitstream_descartes_E08_tree() : Base(Rep()) { }
|
||||||
|
|
||||||
//! copy constructor
|
//! copy constructor
|
||||||
|
#ifdef DOXYGEN_RUNNING
|
||||||
Bitstream_descartes_E08_tree(const Self& p)
|
Bitstream_descartes_E08_tree(const Self& p)
|
||||||
: Base(static_cast<const Base&>(p))
|
: Base(static_cast<const Base&>(p))
|
||||||
{ }
|
{ }
|
||||||
|
#endif
|
||||||
|
|
||||||
/*! \brief construct from initial interval and coefficients
|
/*! \brief construct from initial interval and coefficients
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -567,7 +567,9 @@ private:
|
||||||
log_C_eps_ = n.log_C_eps_;
|
log_C_eps_ = n.log_C_eps_;
|
||||||
}
|
}
|
||||||
|
|
||||||
// const Self& operator= (const Self&); // assignment is forbidden
|
#ifndef CGAL_CFG_NO_CPP0X_DELETED_AND_DEFAULT_FUNCTIONS
|
||||||
|
Self& operator= (const Self&)=delete;
|
||||||
|
#endif
|
||||||
}; // struct Bitstream_descartes_rndl_node
|
}; // struct Bitstream_descartes_rndl_node
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -931,9 +933,11 @@ public:
|
||||||
Bitstream_descartes_rndl_tree() : Base(Rep()) { }
|
Bitstream_descartes_rndl_tree() : Base(Rep()) { }
|
||||||
|
|
||||||
//! copy constructor
|
//! copy constructor
|
||||||
|
#ifdef DOXYGEN_RUNNING
|
||||||
Bitstream_descartes_rndl_tree(const Self& p)
|
Bitstream_descartes_rndl_tree(const Self& p)
|
||||||
: Base(static_cast<const Base&>(p))
|
: Base(static_cast<const Base&>(p))
|
||||||
{ }
|
{ }
|
||||||
|
#endif
|
||||||
|
|
||||||
//! Internal function called by constructor. Avoids code duplication
|
//! Internal function called by constructor. Avoids code duplication
|
||||||
void init_tree() {
|
void init_tree() {
|
||||||
|
|
|
||||||
|
|
@ -154,9 +154,10 @@ public:
|
||||||
: Base(static_cast<const Base&>(get_default_instance())){}
|
: Base(static_cast<const Base&>(get_default_instance())){}
|
||||||
|
|
||||||
// explicit copy-constructor, required by VC9
|
// explicit copy-constructor, required by VC9
|
||||||
|
#ifdef DOXYGEN_RUNNING
|
||||||
Bitstream_descartes_rndl_tree_traits(const Self& traits)
|
Bitstream_descartes_rndl_tree_traits(const Self& traits)
|
||||||
: Base(static_cast<const Base&>(traits)){}
|
: Base(static_cast<const Base&>(traits)){}
|
||||||
|
#endif
|
||||||
//! @}
|
//! @}
|
||||||
|
|
||||||
class Approximator {
|
class Approximator {
|
||||||
|
|
|
||||||
|
|
@ -505,11 +505,12 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
//! \brief Copy constructor
|
//! \brief Copy constructor
|
||||||
|
#ifdef DOXYGEN_RUNNING
|
||||||
Curve_analysis_2(const Self& alg_curve)
|
Curve_analysis_2(const Self& alg_curve)
|
||||||
: Base(static_cast<const Base&>(alg_curve))
|
: Base(static_cast<const Base&>(alg_curve))
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
//!@}
|
//!@}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -446,11 +446,12 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
//! \brief Copy constructor
|
//! \brief Copy constructor
|
||||||
|
#ifdef DOXYGEN_RUNNING
|
||||||
Curve_pair_analysis_2(const Self& alg_curve_pair)
|
Curve_pair_analysis_2(const Self& alg_curve_pair)
|
||||||
: Base(static_cast<const Base&>(alg_curve_pair))
|
: Base(static_cast<const Base&>(alg_curve_pair))
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
// Assignable
|
// Assignable
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|
@ -1434,7 +1435,13 @@ compute_event_x_coordinates_with_event_indices() const {
|
||||||
CGAL_ACK_DEBUG_PRINT << " one curve event" << std::endl;
|
CGAL_ACK_DEBUG_PRINT << " one curve event" << std::endl;
|
||||||
#endif
|
#endif
|
||||||
*/
|
*/
|
||||||
|
#if CGAL_CXX11
|
||||||
|
// Fix a warning by using `emplace_back()` instead of
|
||||||
|
// copying a non-initialized `optional
|
||||||
|
this->ptr()->event_slices.emplace_back();
|
||||||
|
#else
|
||||||
this->ptr()->event_slices.push_back(Lazy_status_line_CPA_1());
|
this->ptr()->event_slices.push_back(Lazy_status_line_CPA_1());
|
||||||
|
#endif
|
||||||
switch(*(one_curve_it++)) {
|
switch(*(one_curve_it++)) {
|
||||||
case(CGAL::internal::ROOT_OF_FIRST_SET): {
|
case(CGAL::internal::ROOT_OF_FIRST_SET): {
|
||||||
event_indices.push_back(Event_indices(-1,f_count,-1));
|
event_indices.push_back(Event_indices(-1,f_count,-1));
|
||||||
|
|
@ -1461,8 +1468,11 @@ compute_event_x_coordinates_with_event_indices() const {
|
||||||
CGAL_ACK_DEBUG_PRINT << " two curve event" << std::endl;
|
CGAL_ACK_DEBUG_PRINT << " two curve event" << std::endl;
|
||||||
#endif
|
#endif
|
||||||
*/
|
*/
|
||||||
this->ptr()->
|
#if CGAL_CXX11
|
||||||
event_slices.push_back(Lazy_status_line_CPA_1());
|
this->ptr()->event_slices.emplace_back();
|
||||||
|
#else
|
||||||
|
this->ptr()->event_slices.push_back(Lazy_status_line_CPA_1());
|
||||||
|
#endif
|
||||||
|
|
||||||
event_indices.push_back
|
event_indices.push_back
|
||||||
(Event_indices(inter_count,-1,-1));
|
(Event_indices(inter_count,-1,-1));
|
||||||
|
|
@ -1476,7 +1486,11 @@ compute_event_x_coordinates_with_event_indices() const {
|
||||||
<< std::endl;
|
<< std::endl;
|
||||||
#endif
|
#endif
|
||||||
*/
|
*/
|
||||||
|
#if CGAL_CXX11
|
||||||
|
this->ptr()->event_slices.emplace_back();
|
||||||
|
#else
|
||||||
this->ptr()->event_slices.push_back(Lazy_status_line_CPA_1());
|
this->ptr()->event_slices.push_back(Lazy_status_line_CPA_1());
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
switch(*(one_curve_it++)) {
|
switch(*(one_curve_it++)) {
|
||||||
|
|
|
||||||
|
|
@ -252,9 +252,11 @@ public:
|
||||||
/*!\brief
|
/*!\brief
|
||||||
* copy constructor
|
* copy constructor
|
||||||
*/
|
*/
|
||||||
|
#ifdef DOXYGEN_RUNNING
|
||||||
Status_line_CA_1(const Self& p) :
|
Status_line_CA_1(const Self& p) :
|
||||||
Base(static_cast<const Base&>(p)) {
|
Base(static_cast<const Base&>(p)) {
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/*!\brief
|
/*!\brief
|
||||||
* constructs a status line over the \c i-th interval with x-coordinate
|
* constructs a status line over the \c i-th interval with x-coordinate
|
||||||
|
|
|
||||||
|
|
@ -174,9 +174,11 @@ public:
|
||||||
/*!\brief
|
/*!\brief
|
||||||
* copy constructor
|
* copy constructor
|
||||||
*/
|
*/
|
||||||
|
#ifdef DOXYGEN_RUNNING
|
||||||
Status_line_CPA_1(const Self& p) :
|
Status_line_CPA_1(const Self& p) :
|
||||||
Base(static_cast<const Base&>(p)) {
|
Base(static_cast<const Base&>(p)) {
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/*!\brief
|
/*!\brief
|
||||||
* constructs undefined status line
|
* constructs undefined status line
|
||||||
|
|
|
||||||
|
|
@ -219,9 +219,11 @@ public:
|
||||||
/*!\brief
|
/*!\brief
|
||||||
* copy constructor
|
* copy constructor
|
||||||
*/
|
*/
|
||||||
|
#ifdef DOXYGEN_RUNNING
|
||||||
Xy_coordinate_2(const Self& p) :
|
Xy_coordinate_2(const Self& p) :
|
||||||
Base(static_cast<const Base&>(p)) {
|
Base(static_cast<const Base&>(p)) {
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/*!\brief
|
/*!\brief
|
||||||
* Point at \c x, on \c curve with \c arcno. Finite points on vertical arcs
|
* Point at \c x, on \c curve with \c arcno. Finite points on vertical arcs
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,7 @@
|
||||||
|
|
||||||
#include <CGAL/basic.h>
|
#include <CGAL/basic.h>
|
||||||
#include <CGAL/Algebraic_kernel_d/Real_embeddable_extension.h>
|
#include <CGAL/Algebraic_kernel_d/Real_embeddable_extension.h>
|
||||||
|
#include <CGAL/Get_arithmetic_kernel.h>
|
||||||
|
|
||||||
#include <CGAL/GMP_arithmetic_kernel.h>
|
#include <CGAL/GMP_arithmetic_kernel.h>
|
||||||
#include <CGAL/LEDA_arithmetic_kernel.h>
|
#include <CGAL/LEDA_arithmetic_kernel.h>
|
||||||
|
|
|
||||||
|
|
@ -216,8 +216,8 @@ namespace CGAL {
|
||||||
const FT cz = (p.a()*p.c())/sqbc;
|
const FT cz = (p.a()*p.c())/sqbc;
|
||||||
|
|
||||||
const Root_of_2 x = make_root_of_2(s.a(),FT(i?-1:1),delta);
|
const Root_of_2 x = make_root_of_2(s.a(),FT(i?-1:1),delta);
|
||||||
const Root_of_2 y = make_root_of_2(s.b(),FT(i?(cy):(-cy)),delta);
|
const Root_of_2 y = make_root_of_2(s.b(),FT(i?(cy):FT(-cy)),delta);
|
||||||
const Root_of_2 z = make_root_of_2(s.c(),FT(i?(cz):(-cz)),delta);
|
const Root_of_2 z = make_root_of_2(s.c(),FT(i?(cz):FT(-cz)),delta);
|
||||||
|
|
||||||
return Root_for_spheres_2_3(x,y,z);
|
return Root_for_spheres_2_3(x,y,z);
|
||||||
}
|
}
|
||||||
|
|
@ -290,14 +290,14 @@ namespace CGAL {
|
||||||
const FT cz = (p.c()*p.b())/sqac;
|
const FT cz = (p.c()*p.b())/sqac;
|
||||||
|
|
||||||
if(!is_positive(cx)) {
|
if(!is_positive(cx)) {
|
||||||
const Root_of_2 x = make_root_of_2(s.a(),FT(i?(cx):(-cx)),delta);
|
const Root_of_2 x = make_root_of_2(s.a(),FT(i?(cx):FT(-cx)),delta);
|
||||||
const Root_of_2 y = make_root_of_2(s.b(),FT(i?-1:1),delta);
|
const Root_of_2 y = make_root_of_2(s.b(),FT(i?-1:1),delta);
|
||||||
const Root_of_2 z = make_root_of_2(s.c(),FT(i?(cz):(-cz)),delta);
|
const Root_of_2 z = make_root_of_2(s.c(),FT(i?(cz):FT(-cz)),delta);
|
||||||
return Root_for_spheres_2_3(x,y,z);
|
return Root_for_spheres_2_3(x,y,z);
|
||||||
} else {
|
} else {
|
||||||
const Root_of_2 x = make_root_of_2(s.a(),FT(i?(-cx):(cx)),delta);
|
const Root_of_2 x = make_root_of_2(s.a(),FT(i?FT(-cx):(cx)),delta);
|
||||||
const Root_of_2 y = make_root_of_2(s.b(),FT(i?1:-1),delta);
|
const Root_of_2 y = make_root_of_2(s.b(),FT(i?1:-1),delta);
|
||||||
const Root_of_2 z = make_root_of_2(s.c(),FT(i?(-cz):(cz)),delta);
|
const Root_of_2 z = make_root_of_2(s.c(),FT(i?FT(-cz):(cz)),delta);
|
||||||
return Root_for_spheres_2_3(x,y,z);
|
return Root_for_spheres_2_3(x,y,z);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -375,25 +375,25 @@ namespace CGAL {
|
||||||
const FT cy = (p.c()*p.b())/sqab;
|
const FT cy = (p.c()*p.b())/sqab;
|
||||||
|
|
||||||
if(is_negative(cx)) {
|
if(is_negative(cx)) {
|
||||||
const Root_of_2 x = make_root_of_2(s.a(),FT(i?(cx):(-cx)),delta);
|
const Root_of_2 x = make_root_of_2(s.a(),FT(i?(cx):FT(-cx)),delta);
|
||||||
const Root_of_2 y = make_root_of_2(s.b(),FT(i?(cy):(-cy)),delta);
|
const Root_of_2 y = make_root_of_2(s.b(),FT(i?(cy):FT(-cy)),delta);
|
||||||
const Root_of_2 z = make_root_of_2(s.c(),FT(i?-1:1),delta);
|
const Root_of_2 z = make_root_of_2(s.c(),FT(i?-1:1),delta);
|
||||||
return Root_for_spheres_2_3(x,y,z);
|
return Root_for_spheres_2_3(x,y,z);
|
||||||
} else if(is_zero(cx)) {
|
} else if(is_zero(cx)) {
|
||||||
if(!is_positive(cy)) {
|
if(!is_positive(cy)) {
|
||||||
const Root_of_2 x = s.a();
|
const Root_of_2 x = s.a();
|
||||||
const Root_of_2 y = make_root_of_2(s.b(),FT(i?(cy):(-cy)),delta);
|
const Root_of_2 y = make_root_of_2(s.b(),FT(i?(cy):FT(-cy)),delta);
|
||||||
const Root_of_2 z = make_root_of_2(s.c(),FT(i?-1:1),delta);
|
const Root_of_2 z = make_root_of_2(s.c(),FT(i?-1:1),delta);
|
||||||
return Root_for_spheres_2_3(x,y,z);
|
return Root_for_spheres_2_3(x,y,z);
|
||||||
} else {
|
} else {
|
||||||
const Root_of_2 x = s.a();
|
const Root_of_2 x = s.a();
|
||||||
const Root_of_2 y = make_root_of_2(s.b(),FT(i?(-cy):(cy)),delta);
|
const Root_of_2 y = make_root_of_2(s.b(),FT(i?FT(-cy):(cy)),delta);
|
||||||
const Root_of_2 z = make_root_of_2(s.c(),FT(i?1:-1),delta);
|
const Root_of_2 z = make_root_of_2(s.c(),FT(i?1:-1),delta);
|
||||||
return Root_for_spheres_2_3(x,y,z);
|
return Root_for_spheres_2_3(x,y,z);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
const Root_of_2 x = make_root_of_2(s.a(),FT(i?(-cx):(cx)),delta);
|
const Root_of_2 x = make_root_of_2(s.a(),FT(i?FT(-cx):(cx)),delta);
|
||||||
const Root_of_2 y = make_root_of_2(s.b(),FT(i?(-cy):(cy)),delta);
|
const Root_of_2 y = make_root_of_2(s.b(),FT(i?FT(-cy):(cy)),delta);
|
||||||
const Root_of_2 z = make_root_of_2(s.c(),FT(i?1:-1),delta);
|
const Root_of_2 z = make_root_of_2(s.c(),FT(i?1:-1),delta);
|
||||||
return Root_for_spheres_2_3(x,y,z);
|
return Root_for_spheres_2_3(x,y,z);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -68,12 +68,12 @@ finite number of different \f$ \alpha\f$-shapes and corresponding
|
||||||
|
|
||||||
\cgalClassifedRefPages
|
\cgalClassifedRefPages
|
||||||
|
|
||||||
## Concepts ##
|
\cgalCRPSection{Concepts}
|
||||||
- `AlphaShapeTraits_2`
|
- `AlphaShapeTraits_2`
|
||||||
- `AlphaShapeFace_2`
|
- `AlphaShapeFace_2`
|
||||||
- `AlphaShapeVertex_2`
|
- `AlphaShapeVertex_2`
|
||||||
|
|
||||||
## Classes ##
|
\cgalCRPSection{Classes}
|
||||||
- `CGAL::Alpha_shape_2<Dt>`
|
- `CGAL::Alpha_shape_2<Dt>`
|
||||||
- `CGAL::Weighted_alpha_shape_euclidean_traits_2<K>`
|
- `CGAL::Weighted_alpha_shape_euclidean_traits_2<K>`
|
||||||
- `CGAL::Alpha_shape_vertex_base_2<AlphaShapeTraits_2>`
|
- `CGAL::Alpha_shape_vertex_base_2<AlphaShapeTraits_2>`
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
#include <CGAL/Simple_cartesian.h>
|
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
|
||||||
#include <CGAL/Filtered_kernel.h>
|
|
||||||
#include <CGAL/Cartesian_converter.h>
|
#include <CGAL/Cartesian_converter.h>
|
||||||
|
|
||||||
#include <CGAL/Delaunay_triangulation_2.h>
|
#include <CGAL/Delaunay_triangulation_2.h>
|
||||||
|
|
@ -16,9 +15,8 @@
|
||||||
|
|
||||||
typedef double coord_type;
|
typedef double coord_type;
|
||||||
|
|
||||||
typedef CGAL::Simple_cartesian<coord_type> SC;
|
typedef CGAL::Exact_predicates_inexact_constructions_kernel Epic;
|
||||||
typedef CGAL::Filtered_kernel<SC> FK;
|
typedef CGAL::Projection_traits_xy_3<Epic> K;
|
||||||
typedef CGAL::Projection_traits_xy_3<FK> K;
|
|
||||||
|
|
||||||
typedef K::Point_2 Point;
|
typedef K::Point_2 Point;
|
||||||
typedef K::Segment_2 Segment;
|
typedef K::Segment_2 Segment;
|
||||||
|
|
@ -34,10 +32,10 @@ typedef K::Segment_2 Segment;
|
||||||
namespace CGAL {
|
namespace CGAL {
|
||||||
|
|
||||||
template < class K2, class C >
|
template < class K2, class C >
|
||||||
class Cartesian_converter<FK, K2, C>
|
class Cartesian_converter<Epic, K2, C>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef CGAL::Projection_traits_xy_3<FK> Source_kernel;
|
typedef CGAL::Projection_traits_xy_3<Epic> Source_kernel;
|
||||||
typedef K2 Target_kernel;
|
typedef K2 Target_kernel;
|
||||||
typedef C Number_type_converter;
|
typedef C Number_type_converter;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
#include <CGAL/Simple_cartesian.h>
|
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
|
||||||
#include <CGAL/Filtered_kernel.h>
|
|
||||||
#include <CGAL/algorithm.h>
|
#include <CGAL/algorithm.h>
|
||||||
#include <cstdio>
|
#include <cstdio>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
|
@ -15,8 +14,7 @@
|
||||||
|
|
||||||
typedef double coord_type;
|
typedef double coord_type;
|
||||||
|
|
||||||
typedef CGAL::Simple_cartesian<coord_type> SC;
|
typedef CGAL::Exact_predicates_inexact_constructions_kernel K;
|
||||||
typedef CGAL::Filtered_kernel<SC> K;
|
|
||||||
|
|
||||||
typedef K::Point_2 Point;
|
typedef K::Point_2 Point;
|
||||||
typedef K::Segment_2 Segment;
|
typedef K::Segment_2 Segment;
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,7 @@ corresponding to the weighted Alpha Shape.
|
||||||
|
|
||||||
************************************************************************/
|
************************************************************************/
|
||||||
|
|
||||||
#include <CGAL/Simple_cartesian.h>
|
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
|
||||||
#include <CGAL/Filtered_kernel.h>
|
|
||||||
|
|
||||||
#include <CGAL/Alpha_shape_2.h>
|
#include <CGAL/Alpha_shape_2.h>
|
||||||
#include <CGAL/Alpha_shape_face_base_2.h>
|
#include <CGAL/Alpha_shape_face_base_2.h>
|
||||||
|
|
@ -22,8 +21,7 @@ corresponding to the weighted Alpha Shape.
|
||||||
|
|
||||||
typedef double coord_type;
|
typedef double coord_type;
|
||||||
|
|
||||||
typedef CGAL::Simple_cartesian<coord_type> SC;
|
typedef CGAL::Exact_predicates_inexact_constructions_kernel K;
|
||||||
typedef CGAL::Filtered_kernel<SC> K;
|
|
||||||
typedef K::Point_2 Point;
|
typedef K::Point_2 Point;
|
||||||
typedef K::Weighted_point_2 Weighted_point;
|
typedef K::Weighted_point_2 Weighted_point;
|
||||||
typedef K::Segment_2 Segment;
|
typedef K::Segment_2 Segment;
|
||||||
|
|
|
||||||
|
|
@ -83,7 +83,7 @@ of the alpha complex where singular faces are removed.
|
||||||
|
|
||||||
\cgalClassifedRefPages
|
\cgalClassifedRefPages
|
||||||
|
|
||||||
## Concepts ##
|
\cgalCRPSection{Concepts}
|
||||||
- `AlphaShapeTraits_3`
|
- `AlphaShapeTraits_3`
|
||||||
- `WeightedAlphaShapeTraits_3`
|
- `WeightedAlphaShapeTraits_3`
|
||||||
- `AlphaShapeCell_3`
|
- `AlphaShapeCell_3`
|
||||||
|
|
@ -93,7 +93,7 @@ of the alpha complex where singular faces are removed.
|
||||||
- `FixedAlphaShapeCell_3`
|
- `FixedAlphaShapeCell_3`
|
||||||
- `FixedAlphaShapeVertex_3`
|
- `FixedAlphaShapeVertex_3`
|
||||||
|
|
||||||
## Classes ##
|
\cgalCRPSection{Classes}
|
||||||
- `CGAL::Alpha_status<NT>`
|
- `CGAL::Alpha_status<NT>`
|
||||||
- `CGAL::Alpha_shape_3<Dt,ExactAlphaComparisonTag>`
|
- `CGAL::Alpha_shape_3<Dt,ExactAlphaComparisonTag>`
|
||||||
- `CGAL::Alpha_shape_vertex_base_3<Traits,Vb>`
|
- `CGAL::Alpha_shape_vertex_base_3<Traits,Vb>`
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@ aforementioned concepts.
|
||||||
|
|
||||||
\cgalClassifedRefPages
|
\cgalClassifedRefPages
|
||||||
|
|
||||||
## Concepts ##
|
\cgalCRPSection{Concepts}
|
||||||
|
|
||||||
- `ApolloniusSite_2`
|
- `ApolloniusSite_2`
|
||||||
- `ApolloniusGraphDataStructure_2`
|
- `ApolloniusGraphDataStructure_2`
|
||||||
|
|
@ -48,7 +48,7 @@ aforementioned concepts.
|
||||||
- `ApolloniusGraphTraits_2`
|
- `ApolloniusGraphTraits_2`
|
||||||
- `ApolloniusGraphHierarchyVertexBase_2`
|
- `ApolloniusGraphHierarchyVertexBase_2`
|
||||||
|
|
||||||
## Classes ##
|
\cgalCRPSection{Classes}
|
||||||
|
|
||||||
- `CGAL::Apollonius_graph_2<Gt,Agds>`
|
- `CGAL::Apollonius_graph_2<Gt,Agds>`
|
||||||
- `CGAL::Apollonius_site_2<K>`
|
- `CGAL::Apollonius_site_2<K>`
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#include <CGAL/basic.h>
|
#include <CGAL/config.h>
|
||||||
|
|
||||||
// standard includes
|
// standard includes
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
|
||||||
|
|
@ -48,10 +48,6 @@ public:
|
||||||
const Weight& w = Weight(0))
|
const Weight& w = Weight(0))
|
||||||
: _p(p), _w(w) {}
|
: _p(p), _w(w) {}
|
||||||
|
|
||||||
Apollonius_site_2(const Apollonius_site_2& other)
|
|
||||||
: _p(other._p), _w(other._w) {}
|
|
||||||
|
|
||||||
|
|
||||||
const Point_2& point() const { return _p; }
|
const Point_2& point() const { return _p; }
|
||||||
const Weight& weight() const { return _w; }
|
const Weight& weight() const { return _w; }
|
||||||
RT x() const { return _p.x(); }
|
RT x() const { return _p.x(); }
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ typedef CGAL::Filtered_exact<inexact_type,exact_type> number_t;
|
||||||
#include <CGAL/Simple_cartesian.h>
|
#include <CGAL/Simple_cartesian.h>
|
||||||
|
|
||||||
#ifndef DONT_USE_FILTERED_EXACT
|
#ifndef DONT_USE_FILTERED_EXACT
|
||||||
struct Kernel : public CGAL::Simple_cartesian<number_t> {};
|
typedef CGAL::Simple_cartesian<number_t> Kernel;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
typedef CGAL::Integral_domain_without_division_tag Method_tag;
|
typedef CGAL::Integral_domain_without_division_tag Method_tag;
|
||||||
|
|
@ -30,8 +30,8 @@ typedef CGAL::Integral_domain_without_division_tag Method_tag;
|
||||||
#include "./include/test.h"
|
#include "./include/test.h"
|
||||||
|
|
||||||
|
|
||||||
struct CK : public CGAL::Simple_cartesian<inexact_type> {};
|
typedef CGAL::Simple_cartesian<inexact_type> CK;
|
||||||
struct EK : public CGAL::Simple_cartesian<exact_type> {};
|
typedef CGAL::Simple_cartesian<exact_type> EK;
|
||||||
|
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ typedef CGAL::Filtered_exact<inexact_type,exact_type> number_t;
|
||||||
#include <CGAL/Simple_cartesian.h>
|
#include <CGAL/Simple_cartesian.h>
|
||||||
|
|
||||||
#ifndef DNOT_USE_FILTERED_EXACT
|
#ifndef DNOT_USE_FILTERED_EXACT
|
||||||
struct Kernel : public CGAL::Simple_cartesian<number_t> {};
|
typedef CGAL::Simple_cartesian<number_t> K;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
typedef CGAL::Integral_domain_without_division_tag Method_tag;
|
typedef CGAL::Integral_domain_without_division_tag Method_tag;
|
||||||
|
|
@ -31,8 +31,8 @@ typedef CGAL::Integral_domain_without_division_tag Method_tag;
|
||||||
#include "./include/test.h"
|
#include "./include/test.h"
|
||||||
|
|
||||||
|
|
||||||
struct CK : public CGAL::Simple_cartesian<inexact_type> {};
|
typedef CGAL::Simple_cartesian<inexact_type> CK;
|
||||||
struct EK : public CGAL::Simple_cartesian<exact_type> {};
|
typedef CGAL::Simple_cartesian<exact_type> EK;
|
||||||
|
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
|
|
|
||||||
|
|
@ -10,11 +10,11 @@
|
||||||
|
|
||||||
typedef CGAL::Exact_rational exact_nt;
|
typedef CGAL::Exact_rational exact_nt;
|
||||||
|
|
||||||
struct Rep : public CGAL::Simple_cartesian<exact_nt> {};
|
typedef CGAL::Simple_cartesian<exact_nt> Rep;
|
||||||
|
|
||||||
typedef CGAL::Integral_domain_without_division_tag Method_tag;
|
typedef CGAL::Integral_domain_without_division_tag Method_tag;
|
||||||
|
|
||||||
struct Gt : public CGAL::Apollonius_graph_traits_2<Rep,Method_tag> {};
|
typedef CGAL::Apollonius_graph_traits_2<Rep,Method_tag> Gt;
|
||||||
|
|
||||||
typedef CGAL::Apollonius_graph_2<Gt> AG2;
|
typedef CGAL::Apollonius_graph_2<Gt> AG2;
|
||||||
typedef AG2::Point_2 Point_2;
|
typedef AG2::Point_2 Point_2;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,3 @@
|
||||||
#include <CGAL/basic.h>
|
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
|
|
@ -22,7 +20,7 @@ typedef CGAL::Filtered_exact<inexact_type,exact_type> number_t;
|
||||||
#include <CGAL/Simple_cartesian.h>
|
#include <CGAL/Simple_cartesian.h>
|
||||||
|
|
||||||
#ifndef DONT_USE_FILTERED_EXACT
|
#ifndef DONT_USE_FILTERED_EXACT
|
||||||
struct Kernel : public CGAL::Simple_cartesian<number_t> {};
|
typedef CGAL::Simple_cartesian<number_t> Kernel;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
typedef CGAL::Integral_domain_without_division_tag Method_tag;
|
typedef CGAL::Integral_domain_without_division_tag Method_tag;
|
||||||
|
|
@ -30,8 +28,8 @@ typedef CGAL::Integral_domain_without_division_tag Method_tag;
|
||||||
#include "./include/test.h"
|
#include "./include/test.h"
|
||||||
|
|
||||||
|
|
||||||
struct CK : public CGAL::Simple_cartesian<double> {};
|
typedef CGAL::Simple_cartesian<double> CK;
|
||||||
struct EK : public CGAL::Simple_cartesian<CGAL::MP_Float> {};
|
typedef CGAL::Simple_cartesian<CGAL::MP_Float> EK;
|
||||||
|
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,78 @@
|
||||||
|
// Copyright (c) 2017 Inria.
|
||||||
|
// All rights reserved.
|
||||||
|
//
|
||||||
|
// This file is part of CGAL (www.cgal.org); you can redistribute it and/or
|
||||||
|
// modify it under the terms of the GNU Lesser General Public License as
|
||||||
|
// published by the Free Software Foundation; either version 3 of the License,
|
||||||
|
// or (at your option) any later version.
|
||||||
|
//
|
||||||
|
// Licensees holding a valid commercial license may use this file in
|
||||||
|
// accordance with the commercial license agreement provided with the software.
|
||||||
|
//
|
||||||
|
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||||
|
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
//
|
||||||
|
// $URL$
|
||||||
|
// $Id$
|
||||||
|
// SPDX-License-Identifier: LGPL-3.0+
|
||||||
|
//
|
||||||
|
// Author: Marc Glisse <marc.glisse@inria.fr>
|
||||||
|
|
||||||
|
#ifndef CGAL_GMPXX_ARITHMETIC_KERNEL_H
|
||||||
|
#define CGAL_GMPXX_ARITHMETIC_KERNEL_H
|
||||||
|
|
||||||
|
#include <CGAL/Arithmetic_kernel/Arithmetic_kernel_base.h>
|
||||||
|
#include <CGAL/Get_arithmetic_kernel.h>
|
||||||
|
|
||||||
|
#include <CGAL/boost_mp.h>
|
||||||
|
|
||||||
|
#ifdef CGAL_USE_BOOST_MP
|
||||||
|
|
||||||
|
//Currently already included in boost_mp.h
|
||||||
|
//#include <boost/multiprecision/cpp_int.hpp>
|
||||||
|
//#ifdef CGAL_USE_GMP
|
||||||
|
//#include <boost/multiprecision/gmp.hpp>
|
||||||
|
//#endif
|
||||||
|
|
||||||
|
// FIXME: the could be several kernels based on Boost.Multiprecision.
|
||||||
|
|
||||||
|
namespace CGAL {
|
||||||
|
/** \ingroup CGAL_Arithmetic_kernel
|
||||||
|
* \brief The Boost.Multiprecision set of exact number types
|
||||||
|
*/
|
||||||
|
struct BOOST_cpp_arithmetic_kernel : internal::Arithmetic_kernel_base {
|
||||||
|
typedef boost::multiprecision::cpp_int Integer;
|
||||||
|
typedef boost::multiprecision::cpp_rational Rational;
|
||||||
|
};
|
||||||
|
#ifdef CGAL_USE_GMP
|
||||||
|
struct BOOST_gmp_arithmetic_kernel : internal::Arithmetic_kernel_base {
|
||||||
|
typedef boost::multiprecision::mpz_int Integer;
|
||||||
|
typedef boost::multiprecision::mpq_rational Rational;
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
template <class T1, class T2, class T3, class T4, class T5>
|
||||||
|
struct Get_arithmetic_kernel<boost::multiprecision::detail::expression<T1,T2,T3,T4,T5> >
|
||||||
|
: Get_arithmetic_kernel<typename boost::multiprecision::detail::expression<T1,T2,T3,T4,T5>::result_type> {};
|
||||||
|
|
||||||
|
template <>
|
||||||
|
struct Get_arithmetic_kernel<boost::multiprecision::cpp_int> {
|
||||||
|
typedef BOOST_cpp_arithmetic_kernel Arithmetic_kernel;
|
||||||
|
};
|
||||||
|
template <>
|
||||||
|
struct Get_arithmetic_kernel<boost::multiprecision::cpp_rational> {
|
||||||
|
typedef BOOST_cpp_arithmetic_kernel Arithmetic_kernel;
|
||||||
|
};
|
||||||
|
#ifdef CGAL_USE_GMP
|
||||||
|
template <>
|
||||||
|
struct Get_arithmetic_kernel<boost::multiprecision::mpz_int> {
|
||||||
|
typedef BOOST_gmp_arithmetic_kernel Arithmetic_kernel;
|
||||||
|
};
|
||||||
|
template <>
|
||||||
|
struct Get_arithmetic_kernel<boost::multiprecision::mpq_rational> {
|
||||||
|
typedef BOOST_gmp_arithmetic_kernel Arithmetic_kernel;
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
} //namespace CGAL
|
||||||
|
#endif // CGAL_USE_BOOST_MP
|
||||||
|
#endif
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
/*
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
class ArrTrimTraits_2 {
|
|
||||||
public:
|
|
||||||
|
|
||||||
typedef ArrTraits::X_monotone_curve_2 X_monotone_curve_2;
|
|
||||||
typedef ArrTraits::Point_2 Point_2;
|
|
||||||
|
|
||||||
/*!
|
|
||||||
returns an \f$ x\f$-monotone trimmed version \f$ x\f$-monotone
|
|
||||||
connecting `p1` and `p2` (i.e., the
|
|
||||||
two input points are its endpoints).
|
|
||||||
*/
|
|
||||||
X_monotone_curve_2 operator() ( X_monotone_curve_2 xcv,
|
|
||||||
Point_2 p1, Point_2 p2);
|
|
||||||
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -87,18 +87,18 @@ implemented as peripheral classes or as free (global) functions.
|
||||||
|
|
||||||
\cgalClassifedRefPages
|
\cgalClassifedRefPages
|
||||||
|
|
||||||
## Enumerations ##
|
\cgalCRPSection{Enumerations}
|
||||||
|
|
||||||
- `CGAL::Arr_parameter_space`
|
- `CGAL::Arr_parameter_space`
|
||||||
- `CGAL::Arr_curve_end`
|
- `CGAL::Arr_curve_end`
|
||||||
- `CGAL::Arr_halfedge_direction`
|
- `CGAL::Arr_halfedge_direction`
|
||||||
|
|
||||||
## Tags ##
|
\cgalCRPSection{Tags}
|
||||||
|
|
||||||
- `CGAL::Arr_oblivious_side_tag`
|
- `CGAL::Arr_oblivious_side_tag`
|
||||||
- `CGAL::Arr_open_side_tag`
|
- `CGAL::Arr_open_side_tag`
|
||||||
|
|
||||||
## Concepts ##
|
\cgalCRPSection{Concepts}
|
||||||
|
|
||||||
- `ArrangementDcel`
|
- `ArrangementDcel`
|
||||||
- `ArrangementDcelWithRebind`
|
- `ArrangementDcelWithRebind`
|
||||||
|
|
@ -119,13 +119,13 @@ implemented as peripheral classes or as free (global) functions.
|
||||||
- `ArrangementPointLocation_2`
|
- `ArrangementPointLocation_2`
|
||||||
- `ArrangementVerticalRayShoot_2`
|
- `ArrangementVerticalRayShoot_2`
|
||||||
|
|
||||||
## Geometric Object Concepts ##
|
\cgalCRPSection{Geometric Object Concepts}
|
||||||
|
|
||||||
- `ArrTraits::Point_2`
|
- `ArrTraits::Point_2`
|
||||||
- `ArrTraits::XMonotoneCurve_2`
|
- `ArrTraits::XMonotoneCurve_2`
|
||||||
- `ArrTraits::Curve_2`
|
- `ArrTraits::Curve_2`
|
||||||
|
|
||||||
## Function Object Concepts ##
|
\cgalCRPSection{Function Object Concepts}
|
||||||
|
|
||||||
- `ArrTraits::CompareX_2`
|
- `ArrTraits::CompareX_2`
|
||||||
- `ArrTraits::CompareXy_2`
|
- `ArrTraits::CompareXy_2`
|
||||||
|
|
@ -149,7 +149,7 @@ implemented as peripheral classes or as free (global) functions.
|
||||||
- `ArrTraits::Approximate_2`
|
- `ArrTraits::Approximate_2`
|
||||||
- `ArrTraits::ConstructXMonotoneCurve_2`
|
- `ArrTraits::ConstructXMonotoneCurve_2`
|
||||||
|
|
||||||
## Classes ##
|
\cgalCRPSection{Classes}
|
||||||
|
|
||||||
- `CGAL::Arrangement_2<Traits,Dcel>`
|
- `CGAL::Arrangement_2<Traits,Dcel>`
|
||||||
- `CGAL::Arr_accessor<Arrangement>`
|
- `CGAL::Arr_accessor<Arrangement>`
|
||||||
|
|
@ -188,10 +188,10 @@ implemented as peripheral classes or as free (global) functions.
|
||||||
- `CGAL::Arr_face_index_map<Arrangement>`
|
- `CGAL::Arr_face_index_map<Arrangement>`
|
||||||
- `CGAL::Arr_point_location_result<Arrangement>`
|
- `CGAL::Arr_point_location_result<Arrangement>`
|
||||||
|
|
||||||
## Macros ##
|
\cgalCRPSection{Macros}
|
||||||
- \link CGAL_ARR_POINT_LOCATION_VERSION `CGAL_ARR_POINT_LOCATION_VERSION` \endlink
|
- \link CGAL_ARR_POINT_LOCATION_VERSION `CGAL_ARR_POINT_LOCATION_VERSION` \endlink
|
||||||
|
|
||||||
## Functions ##
|
\cgalCRPSection{Functions}
|
||||||
|
|
||||||
- `CGAL::is_valid()`
|
- `CGAL::is_valid()`
|
||||||
- `CGAL::insert()`
|
- `CGAL::insert()`
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
//! \file examples/Arrangement_on_surface_2/Bezier_curves.cpp
|
//! \file examples/Arrangement_on_surface_2/Bezier_curves.cpp
|
||||||
// Constructing an arrangement of Bezier curves.
|
// Constructing an arrangement of Bezier curves.
|
||||||
|
|
||||||
#include <CGAL/basic.h>
|
#include <CGAL/config.h>
|
||||||
|
|
||||||
#ifndef CGAL_USE_CORE
|
#ifndef CGAL_USE_CORE
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#include <CGAL/basic.h>
|
#include <CGAL/config.h>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
#if (!CGAL_USE_CORE) && (!CGAL_USE_LEDA) && (!(CGAL_USE_GMP && CGAL_USE_MPFI))
|
#if (!CGAL_USE_CORE) && (!CGAL_USE_LEDA) && (!(CGAL_USE_GMP && CGAL_USE_MPFI))
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
//! \file examples/Arrangement_on_surface_2/conic_multiplicities.cpp
|
//! \file examples/Arrangement_on_surface_2/conic_multiplicities.cpp
|
||||||
// Handling intersection points with multiplicity between conic arcs.
|
// Handling intersection points with multiplicity between conic arcs.
|
||||||
|
|
||||||
#include <CGAL/basic.h>
|
#include <CGAL/config.h>
|
||||||
|
|
||||||
#ifndef CGAL_USE_CORE
|
#ifndef CGAL_USE_CORE
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
//! \file examples/Arrangement_on_surface_2/conics.cpp
|
//! \file examples/Arrangement_on_surface_2/conics.cpp
|
||||||
// Constructing an arrangement of various conic arcs.
|
// Constructing an arrangement of various conic arcs.
|
||||||
#include <CGAL/basic.h>
|
#include <CGAL/config.h>
|
||||||
|
|
||||||
#ifndef CGAL_USE_CORE
|
#ifndef CGAL_USE_CORE
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
//! \file examples/Arrangement_on_surface_2/edge_manipulation.cpp
|
//! \file examples/Arrangement_on_surface_2/edge_manipulation.cpp
|
||||||
// Using the edge-manipulation functions.
|
// Using the edge-manipulation functions.
|
||||||
|
|
||||||
#include <CGAL/basic.h>
|
|
||||||
|
|
||||||
#include <CGAL/Exact_predicates_exact_constructions_kernel.h>
|
#include <CGAL/Exact_predicates_exact_constructions_kernel.h>
|
||||||
#include <CGAL/Arr_segment_traits_2.h>
|
#include <CGAL/Arr_segment_traits_2.h>
|
||||||
#include <CGAL/Arrangement_2.h>
|
#include <CGAL/Arrangement_2.h>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
// Constructing a arrangement of Bezier polycurves.
|
// Constructing a arrangement of Bezier polycurves.
|
||||||
|
|
||||||
#include <CGAL/basic.h>
|
#include <CGAL/config.h>
|
||||||
|
|
||||||
#ifndef CGAL_USE_CORE
|
#ifndef CGAL_USE_CORE
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
// Constructing an arrangement of polycurves.
|
// Constructing an arrangement of polycurves.
|
||||||
|
|
||||||
#include <CGAL/basic.h>
|
#include <CGAL/config.h>
|
||||||
|
|
||||||
#ifndef CGAL_USE_CORE
|
#ifndef CGAL_USE_CORE
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
// Testing the do_equal function
|
// Testing the do_equal function
|
||||||
|
|
||||||
#include <CGAL/basic.h>
|
#include <CGAL/config.h>
|
||||||
|
|
||||||
#ifndef CGAL_USE_CORE
|
#ifndef CGAL_USE_CORE
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
//! \file examples/Arrangement_2/ex_rational_functions.cpp
|
//! \file examples/Arrangement_2/rational_functions.cpp
|
||||||
// Constructing an arrangement of arcs of rational functions.
|
// Constructing an arrangement of arcs of rational functions.
|
||||||
|
|
||||||
#include <CGAL/basic.h>
|
#include <CGAL/config.h>
|
||||||
|
|
||||||
#ifndef CGAL_USE_CORE
|
#ifndef CGAL_USE_CORE
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
//! \file examples/Arrangement_2/ex_rational_functions.cpp
|
//! \file examples/Arrangement_2/rational_functions_rational_coefficients.cpp
|
||||||
// Constructing an arrangement of arcs of rational functions.
|
// Constructing an arrangement of arcs of rational functions.
|
||||||
|
|
||||||
#include <CGAL/basic.h>
|
#include <CGAL/config.h>
|
||||||
|
|
||||||
#ifndef CGAL_USE_CORE
|
#ifndef CGAL_USE_CORE
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
//! \file examples/Arrangement_2/unbounded_rational_functions.cpp
|
//! \file examples/Arrangement_2/unbounded_rational_functions.cpp
|
||||||
// Constructing an arrangement of unbounded portions of rational functions.
|
// Constructing an arrangement of unbounded portions of rational functions.
|
||||||
|
|
||||||
#include <CGAL/basic.h>
|
#include <CGAL/config.h>
|
||||||
|
|
||||||
#ifndef CGAL_USE_CORE
|
#ifndef CGAL_USE_CORE
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
|
||||||
|
|
@ -2881,11 +2881,13 @@ public:
|
||||||
/*! Copy constructor
|
/*! Copy constructor
|
||||||
* \param other the other arc
|
* \param other the other arc
|
||||||
*/
|
*/
|
||||||
|
#ifdef DOXYGEN_RUNNING
|
||||||
Arr_geodesic_arc_on_sphere_3
|
Arr_geodesic_arc_on_sphere_3
|
||||||
(const Arr_geodesic_arc_on_sphere_3& other) : Base(other)
|
(const Arr_geodesic_arc_on_sphere_3& other) : Base(other)
|
||||||
{
|
{
|
||||||
m_is_x_monotone = other.m_is_x_monotone;
|
m_is_x_monotone = other.m_is_x_monotone;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/*! Constructor
|
/*! Constructor
|
||||||
* \param src the source point of the arc
|
* \param src the source point of the arc
|
||||||
|
|
|
||||||
|
|
@ -109,6 +109,10 @@ public:
|
||||||
Point_handle (p)
|
Point_handle (p)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
#ifndef CGAL_CFG_NO_CPP0X_DELETED_AND_DEFAULT_FUNCTIONS
|
||||||
|
_One_root_point_2& operator=(const _One_root_point_2&)=default;
|
||||||
|
#endif
|
||||||
|
|
||||||
/*! Constructor of a point with one-root coefficients.
|
/*! Constructor of a point with one-root coefficients.
|
||||||
This constructor of a point can also be used with rational coefficients
|
This constructor of a point can also be used with rational coefficients
|
||||||
thanks to convertor of CoordNT. */
|
thanks to convertor of CoordNT. */
|
||||||
|
|
|
||||||
|
|
@ -89,6 +89,15 @@ public:
|
||||||
_rational_function(rational_function),
|
_rational_function(rational_function),
|
||||||
_x_coordinate(x_coordinate) {}
|
_x_coordinate(x_coordinate) {}
|
||||||
|
|
||||||
|
Algebraic_point_2_rep(const Algebraic_point_2_rep& other)
|
||||||
|
{
|
||||||
|
if (this != &other) // protect against invalid self-assignment
|
||||||
|
{
|
||||||
|
_rational_function = other._rational_function;
|
||||||
|
_x_coordinate = other._x_coordinate;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//assignment oparator
|
//assignment oparator
|
||||||
Algebraic_point_2_rep& operator=(const Algebraic_point_2_rep& other)
|
Algebraic_point_2_rep& operator=(const Algebraic_point_2_rep& other)
|
||||||
{
|
{
|
||||||
|
|
@ -374,10 +383,6 @@ public:
|
||||||
Algebraic_point_2() :
|
Algebraic_point_2() :
|
||||||
Base(static_cast<const Base &> (get_default_instance())) {}
|
Base(static_cast<const Base &> (get_default_instance())) {}
|
||||||
|
|
||||||
// explicit copy-constructor, required by VC9
|
|
||||||
Algebraic_point_2 (const Self & p)
|
|
||||||
: Base(static_cast<const Base &> (p)) {}
|
|
||||||
|
|
||||||
Comparison_result compare_xy_2(const Algebraic_point_2& other,
|
Comparison_result compare_xy_2(const Algebraic_point_2& other,
|
||||||
const Cache& cache) const
|
const Cache& cache) const
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -232,6 +232,10 @@ public:
|
||||||
Rational_function (const Self & r)
|
Rational_function (const Self & r)
|
||||||
: Base(static_cast<const Base &> (r)) {}
|
: Base(static_cast<const Base &> (r)) {}
|
||||||
|
|
||||||
|
#ifndef CGAL_CFG_NO_CPP0X_DELETED_AND_DEFAULT_FUNCTIONS
|
||||||
|
Self& operator=(const Self&)=default;
|
||||||
|
#endif
|
||||||
|
|
||||||
CGAL::Sign sign_at(const Algebraic_real_1& x,
|
CGAL::Sign sign_at(const Algebraic_real_1& x,
|
||||||
CGAL::Sign epsilon = CGAL::ZERO) const
|
CGAL::Sign epsilon = CGAL::ZERO) const
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -382,10 +382,11 @@ public:
|
||||||
/*!\brief
|
/*!\brief
|
||||||
* copy constructor
|
* copy constructor
|
||||||
*/
|
*/
|
||||||
|
#ifdef DOXYGEN_RUNNING
|
||||||
Arc_2(const Self& a) :
|
Arc_2(const Self& a) :
|
||||||
Base(static_cast<const Base&>(a)) {
|
Base(static_cast<const Base&>(a)) {
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
//!@}
|
//!@}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
|
||||||
|
|
@ -150,9 +150,11 @@ public:
|
||||||
/*!\brief
|
/*!\brief
|
||||||
* copy constructor
|
* copy constructor
|
||||||
*/
|
*/
|
||||||
|
#ifdef DOXYGEN_RUNNING
|
||||||
Generic_arc_2(const Self& p) :
|
Generic_arc_2(const Self& p) :
|
||||||
Base(static_cast<const Base&>(p)) {
|
Base(static_cast<const Base&>(p)) {
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/*!\brief
|
/*!\brief
|
||||||
* constructs an arc from a given represenation
|
* constructs an arc from a given represenation
|
||||||
|
|
|
||||||
|
|
@ -131,10 +131,11 @@ public:
|
||||||
/*!\brief
|
/*!\brief
|
||||||
* copy constructor
|
* copy constructor
|
||||||
*/
|
*/
|
||||||
|
#ifdef DOXYGEN_RUNNING
|
||||||
Generic_point_2(const Self& p) :
|
Generic_point_2(const Self& p) :
|
||||||
Base(static_cast<const Base&>(p)) {
|
Base(static_cast<const Base&>(p)) {
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
/*!\brief
|
/*!\brief
|
||||||
* constructs an arc from a given represenation
|
* constructs an arc from a given represenation
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -146,9 +146,11 @@ public:
|
||||||
/*!\brief
|
/*!\brief
|
||||||
* copy constructor
|
* copy constructor
|
||||||
*/
|
*/
|
||||||
|
#ifdef DOXYGEN_RUNNING
|
||||||
Non_x_monotone_arc_2(const Self& a) :
|
Non_x_monotone_arc_2(const Self& a) :
|
||||||
Base(static_cast<const Base&>(a)) {
|
Base(static_cast<const Base&>(a)) {
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/*! \brief
|
/*! \brief
|
||||||
* constructs an arc from one x-monotone piece
|
* constructs an arc from one x-monotone piece
|
||||||
|
|
|
||||||
|
|
@ -256,10 +256,11 @@ public:
|
||||||
/*!\brief
|
/*!\brief
|
||||||
* copy constructor
|
* copy constructor
|
||||||
*/
|
*/
|
||||||
|
#ifdef DOXYGEN_RUNNING
|
||||||
Point_2(const Self& p) :
|
Point_2(const Self& p) :
|
||||||
Base(static_cast<const Base&>(p)) {
|
Base(static_cast<const Base&>(p)) {
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
//!@}
|
//!@}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ INPUT += ${CGAL_PACKAGE_INCLUDE_DIR}/CGAL/boost/graph/Euler_operations.h \
|
||||||
${CGAL_PACKAGE_INCLUDE_DIR}/CGAL/boost/graph/METIS/partition_graph.h \
|
${CGAL_PACKAGE_INCLUDE_DIR}/CGAL/boost/graph/METIS/partition_graph.h \
|
||||||
${CGAL_PACKAGE_INCLUDE_DIR}/CGAL/boost/graph/METIS/partition_dual_graph.h
|
${CGAL_PACKAGE_INCLUDE_DIR}/CGAL/boost/graph/METIS/partition_dual_graph.h
|
||||||
|
|
||||||
|
|
||||||
EXAMPLE_PATH = ${CGAL_Surface_mesh_skeletonization_EXAMPLE_DIR} \
|
EXAMPLE_PATH = ${CGAL_Surface_mesh_skeletonization_EXAMPLE_DIR} \
|
||||||
${CGAL_Surface_mesh_segmentation_EXAMPLE_DIR} \
|
${CGAL_Surface_mesh_segmentation_EXAMPLE_DIR} \
|
||||||
${CGAL_Polygon_mesh_processing_EXAMPLE_DIR} \
|
${CGAL_Polygon_mesh_processing_EXAMPLE_DIR} \
|
||||||
|
|
|
||||||
|
|
@ -81,6 +81,13 @@ being marked or not.\n
|
||||||
<b>Default:</b> a default property map where no edge is constrained
|
<b>Default:</b> a default property map where no edge is constrained
|
||||||
\cgalNPEnd
|
\cgalNPEnd
|
||||||
|
|
||||||
|
\cgalNPBegin{use_binary_mode} \anchor BGL_use_binary_mode
|
||||||
|
is a Boolean indicating whether the binary mode or the ASCII mode should be used
|
||||||
|
when writing data into a stream.\n
|
||||||
|
<b>Type:</b> `bool`\n
|
||||||
|
<b>Default:</b> Function specific.
|
||||||
|
\cgalNPEnd
|
||||||
|
|
||||||
\cgalNPBegin{METIS_options} \anchor BGL_METIS_options
|
\cgalNPBegin{METIS_options} \anchor BGL_METIS_options
|
||||||
is a parameter used in `partition_graph()` and `partition_dual_graph()`
|
is a parameter used in `partition_graph()` and `partition_dual_graph()`
|
||||||
to pass options to the METIS graph partitioner. The many options of METIS
|
to pass options to the METIS graph partitioner. The many options of METIS
|
||||||
|
|
|
||||||
|
|
@ -558,7 +558,7 @@ Methods to read and write graphs.
|
||||||
|
|
||||||
\cgalClassifedRefPages
|
\cgalClassifedRefPages
|
||||||
|
|
||||||
## Concepts ##
|
\cgalCRPSection{Concepts}
|
||||||
- `VertexListGraph`
|
- `VertexListGraph`
|
||||||
- `EdgeListGraph`
|
- `EdgeListGraph`
|
||||||
- `HalfedgeGraph`
|
- `HalfedgeGraph`
|
||||||
|
|
@ -568,14 +568,14 @@ Methods to read and write graphs.
|
||||||
- `FaceListGraph`
|
- `FaceListGraph`
|
||||||
- `MutableFaceGraph`
|
- `MutableFaceGraph`
|
||||||
|
|
||||||
## Properties ##
|
\cgalCRPSection{Properties}
|
||||||
- `boost::vertex_index_t`
|
- `boost::vertex_index_t`
|
||||||
- `boost::halfedge_index_t`
|
- `boost::halfedge_index_t`
|
||||||
- `boost::edge_index_t`
|
- `boost::edge_index_t`
|
||||||
- `boost::face_index_t`
|
- `boost::face_index_t`
|
||||||
- `boost::vertex_point_t`
|
- `boost::vertex_point_t`
|
||||||
|
|
||||||
## %CGAL Classes Adapted for the Graph API ##
|
\cgalCRPSection{%CGAL Classes Adapted for the Graph API}
|
||||||
|
|
||||||
Different \cgal types have been adapted as graphs for the \sc{Bgl}. All
|
Different \cgal types have been adapted as graphs for the \sc{Bgl}. All
|
||||||
adapted types are listed here. The pages document which concepts they
|
adapted types are listed here. The pages document which concepts they
|
||||||
|
|
@ -591,7 +591,7 @@ user might encounter.
|
||||||
- \link BGLOMPAK `boost::graph_traits<OpenMesh::PolyMesh_ArrayKernelT<K> >` \endlink
|
- \link BGLOMPAK `boost::graph_traits<OpenMesh::PolyMesh_ArrayKernelT<K> >` \endlink
|
||||||
- \link BGLOMTMAK `boost::graph_traits<OpenMesh::TriMesh_ArrayKernelT<K> >` \endlink
|
- \link BGLOMTMAK `boost::graph_traits<OpenMesh::TriMesh_ArrayKernelT<K> >` \endlink
|
||||||
|
|
||||||
## Helper Classes ##
|
\cgalCRPSection{Helper Classes}
|
||||||
- `CGAL::Triangulation_vertex_base_with_id_2`
|
- `CGAL::Triangulation_vertex_base_with_id_2`
|
||||||
- `CGAL::Arr_vertex_index_map`
|
- `CGAL::Arr_vertex_index_map`
|
||||||
- `CGAL::Arr_face_index_map`
|
- `CGAL::Arr_face_index_map`
|
||||||
|
|
@ -603,7 +603,7 @@ user might encounter.
|
||||||
- `CGAL::Linear_cell_complex_bgl_min_items`
|
- `CGAL::Linear_cell_complex_bgl_min_items`
|
||||||
- `CGAL::Linear_cell_complex_for_bgl_combinatorial_map_helper`
|
- `CGAL::Linear_cell_complex_for_bgl_combinatorial_map_helper`
|
||||||
|
|
||||||
## Helper Functions ##
|
\cgalCRPSection{Helper Functions}
|
||||||
- `CGAL::is_border()`
|
- `CGAL::is_border()`
|
||||||
- `CGAL::is_border_edge()`
|
- `CGAL::is_border_edge()`
|
||||||
- `CGAL::is_bivalent()`
|
- `CGAL::is_bivalent()`
|
||||||
|
|
@ -636,7 +636,7 @@ user might encounter.
|
||||||
- `CGAL::clear()`
|
- `CGAL::clear()`
|
||||||
- `CGAL::copy_face_graph()`
|
- `CGAL::copy_face_graph()`
|
||||||
|
|
||||||
## Iterators ##
|
\cgalCRPSection{Iterators}
|
||||||
- `CGAL::Halfedge_around_source_iterator`
|
- `CGAL::Halfedge_around_source_iterator`
|
||||||
- `CGAL::Halfedge_around_target_iterator`
|
- `CGAL::Halfedge_around_target_iterator`
|
||||||
- `CGAL::Halfedge_around_face_iterator`
|
- `CGAL::Halfedge_around_face_iterator`
|
||||||
|
|
@ -652,7 +652,7 @@ user might encounter.
|
||||||
- `CGAL::vertices_around_face()`
|
- `CGAL::vertices_around_face()`
|
||||||
- `CGAL::vertices_around_target()`
|
- `CGAL::vertices_around_target()`
|
||||||
|
|
||||||
## Circulators ##
|
\cgalCRPSection{Circulators}
|
||||||
- `CGAL::Halfedge_around_source_circulator`
|
- `CGAL::Halfedge_around_source_circulator`
|
||||||
- `CGAL::Halfedge_around_target_circulator`
|
- `CGAL::Halfedge_around_target_circulator`
|
||||||
- `CGAL::Halfedge_around_face_circulator`
|
- `CGAL::Halfedge_around_face_circulator`
|
||||||
|
|
@ -660,7 +660,7 @@ user might encounter.
|
||||||
- `CGAL::Face_around_target_circulator`
|
- `CGAL::Face_around_target_circulator`
|
||||||
- `CGAL::Face_around_face_circulator`
|
- `CGAL::Face_around_face_circulator`
|
||||||
|
|
||||||
## Euler Operations ##
|
\cgalCRPSection{Euler Operations}
|
||||||
- `CGAL::Euler::add_center_vertex()`
|
- `CGAL::Euler::add_center_vertex()`
|
||||||
- `CGAL::Euler::add_edge()`
|
- `CGAL::Euler::add_edge()`
|
||||||
- `CGAL::Euler::add_face()`
|
- `CGAL::Euler::add_face()`
|
||||||
|
|
@ -681,7 +681,7 @@ user might encounter.
|
||||||
- `CGAL::Euler::split_loop()`
|
- `CGAL::Euler::split_loop()`
|
||||||
- `CGAL::Euler::split_vertex()`
|
- `CGAL::Euler::split_vertex()`
|
||||||
|
|
||||||
## Selection ##
|
\cgalCRPSection{Selection}
|
||||||
- `CGAL::expand_face_selection()`
|
- `CGAL::expand_face_selection()`
|
||||||
- `CGAL::reduce_face_selection()`
|
- `CGAL::reduce_face_selection()`
|
||||||
- `CGAL::expand_edge_selection()`
|
- `CGAL::expand_edge_selection()`
|
||||||
|
|
@ -691,24 +691,25 @@ user might encounter.
|
||||||
- `CGAL::select_incident_faces()`
|
- `CGAL::select_incident_faces()`
|
||||||
- `CGAL::expand_face_selection_for_removal()`
|
- `CGAL::expand_face_selection_for_removal()`
|
||||||
|
|
||||||
## Conversion Functions ##
|
\cgalCRPSection{Conversion Functions}
|
||||||
- `CGAL::split_graph_into_polylines()`
|
- `CGAL::split_graph_into_polylines()`
|
||||||
|
|
||||||
## Graph Adaptors ##
|
\cgalCRPSection{Graph Adaptors}
|
||||||
- `CGAL::Dual`
|
- `CGAL::Dual`
|
||||||
- `CGAL::Face_filtered_graph`
|
- `CGAL::Face_filtered_graph`
|
||||||
- `CGAL::Graph_with_descriptor_with_graph`
|
- `CGAL::Graph_with_descriptor_with_graph`
|
||||||
- `CGAL::Graph_with_descriptor_with_graph_property_map`
|
- `CGAL::Graph_with_descriptor_with_graph_property_map`
|
||||||
- `CGAL::Seam_mesh`
|
- `CGAL::Seam_mesh`
|
||||||
|
|
||||||
## Partitioning Methods ##
|
\cgalCRPSection{Partitioning Methods}
|
||||||
- `CGAL::METIS::partition_graph()`
|
- `CGAL::METIS::partition_graph()`
|
||||||
- `CGAL::METIS::partition_dual_graph()`
|
- `CGAL::METIS::partition_dual_graph()`
|
||||||
|
|
||||||
## I/O Functions ##
|
\cgalCRPSection{I/O Functions}
|
||||||
- \link PkgBGLIOFct CGAL::read_off() \endlink
|
- \link PkgBGLIOFct CGAL::read_off() \endlink
|
||||||
- \link PkgBGLIOFct CGAL::write_off() \endlink
|
- \link PkgBGLIOFct CGAL::write_off() \endlink
|
||||||
- \link PkgBGLIOFct CGAL::write_wrl() \endlink
|
- \link PkgBGLIOFct CGAL::write_wrl() \endlink
|
||||||
|
- `CGAL::write_vtp()`
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
#include <CGAL/Simple_cartesian.h>
|
#include <CGAL/Simple_cartesian.h>
|
||||||
#include <CGAL/boost/graph/graph_traits_Linear_cell_complex_for_combinatorial_map.h>
|
#include <CGAL/boost/graph/graph_traits_Linear_cell_complex_for_combinatorial_map.h>
|
||||||
#include <CGAL/boost/graph/iterator.h>
|
#include <CGAL/boost/graph/iterator.h>
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
|
|
||||||
typedef CGAL::Simple_cartesian<double> Kernel;
|
typedef CGAL::Simple_cartesian<double> Kernel;
|
||||||
typedef CGAL::Linear_cell_complex_traits<3, Kernel> LCC_traits;
|
typedef CGAL::Linear_cell_complex_traits<3, Kernel> LCC_traits;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,14 +3,12 @@
|
||||||
#include <boost/graph/graph_traits.hpp>
|
#include <boost/graph/graph_traits.hpp>
|
||||||
#include <CGAL/property_map.h>
|
#include <CGAL/property_map.h>
|
||||||
|
|
||||||
#include <CGAL/basic.h>
|
#include <CGAL/Simple_cartesian.h>
|
||||||
#include <CGAL/Kernel/global_functions.h>
|
|
||||||
#include <CGAL/Cartesian.h>
|
|
||||||
#include <CGAL/boost/graph/graph_traits_Linear_cell_complex_for_combinatorial_map.h>
|
#include <CGAL/boost/graph/graph_traits_Linear_cell_complex_for_combinatorial_map.h>
|
||||||
|
|
||||||
typedef CGAL::Cartesian<double> Kernel;
|
typedef CGAL::Simple_cartesian<double> Kernel;
|
||||||
typedef Kernel::Point_3 Point;
|
typedef Kernel::Point_3 Point;
|
||||||
typedef Kernel::Vector_3 Vector;
|
typedef Kernel::Vector_3 Vector;
|
||||||
|
|
||||||
typedef CGAL::Linear_cell_complex_traits<3, Kernel> LCC_traits;
|
typedef CGAL::Linear_cell_complex_traits<3, Kernel> LCC_traits;
|
||||||
typedef CGAL::Linear_cell_complex_for_bgl_combinatorial_map_helper
|
typedef CGAL::Linear_cell_complex_for_bgl_combinatorial_map_helper
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
#include <CGAL/Simple_cartesian.h>
|
#include <CGAL/Simple_cartesian.h>
|
||||||
#include <CGAL/Iterator_range.h>
|
#include <CGAL/Iterator_range.h>
|
||||||
#include <CGAL/boost/graph/graph_traits_Linear_cell_complex_for_combinatorial_map.h>
|
#include <CGAL/boost/graph/graph_traits_Linear_cell_complex_for_combinatorial_map.h>
|
||||||
|
|
||||||
#include <boost/foreach.hpp>
|
#include <boost/foreach.hpp>
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
#include <CGAL/Simple_cartesian.h>
|
#include <CGAL/Simple_cartesian.h>
|
||||||
#include <CGAL/boost/graph/graph_traits_Linear_cell_complex_for_combinatorial_map.h>
|
#include <CGAL/boost/graph/graph_traits_Linear_cell_complex_for_combinatorial_map.h>
|
||||||
#include <CGAL/boost/graph/iterator.h>
|
#include <CGAL/boost/graph/iterator.h>
|
||||||
#include <fstream>
|
|
||||||
|
|
||||||
#include <CGAL/boost/iterator/transform_iterator.hpp>
|
#include <CGAL/boost/iterator/transform_iterator.hpp>
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
#include <fstream>
|
||||||
|
|
||||||
typedef CGAL::Simple_cartesian<double> Kernel;
|
typedef CGAL::Simple_cartesian<double> Kernel;
|
||||||
typedef CGAL::Linear_cell_complex_traits<3, Kernel> LCC_traits;
|
typedef CGAL::Linear_cell_complex_traits<3, Kernel> LCC_traits;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
|
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
|
||||||
|
|
||||||
#include <OpenMesh/Core/IO/MeshIO.hh>
|
#include <OpenMesh/Core/IO/MeshIO.hh>
|
||||||
|
|
@ -9,7 +8,6 @@
|
||||||
#include <CGAL/boost/graph/Euler_operations.h>
|
#include <CGAL/boost/graph/Euler_operations.h>
|
||||||
|
|
||||||
#include <CGAL/mesh_segmentation.h>
|
#include <CGAL/mesh_segmentation.h>
|
||||||
|
|
||||||
#include <CGAL/property_map.h>
|
#include <CGAL/property_map.h>
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <iterator>
|
#include <iterator>
|
||||||
|
|
||||||
#include <boost/unordered_map.hpp>
|
#include <boost/unordered_map.hpp>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,6 @@ typedef boost::graph_traits<Polyhedron>::vertex_descriptor vertex_descriptor;
|
||||||
typedef boost::graph_traits<Polyhedron>::vertex_iterator vertex_iterator;
|
typedef boost::graph_traits<Polyhedron>::vertex_iterator vertex_iterator;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char** argv) {
|
int main(int argc, char** argv) {
|
||||||
|
|
||||||
Polyhedron P;
|
Polyhedron P;
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
#include <CGAL/Simple_cartesian.h>
|
#include <CGAL/Simple_cartesian.h>
|
||||||
#include <CGAL/Polyhedron_3.h>
|
#include <CGAL/Polyhedron_3.h>
|
||||||
#include <CGAL/boost/graph/iterator.h>
|
#include <CGAL/boost/graph/iterator.h>
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
|
|
||||||
typedef CGAL::Simple_cartesian<double> Kernel;
|
typedef CGAL::Simple_cartesian<double> Kernel;
|
||||||
typedef CGAL::Polyhedron_3<Kernel> Polyhedron;
|
typedef CGAL::Polyhedron_3<Kernel> Polyhedron;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,13 @@
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
#include <boost/graph/graph_traits.hpp>
|
#include <boost/graph/graph_traits.hpp>
|
||||||
#include <CGAL/property_map.h>
|
|
||||||
|
|
||||||
#include <CGAL/basic.h>
|
#include <CGAL/Simple_cartesian.h>
|
||||||
#include <CGAL/Kernel/global_functions.h>
|
|
||||||
|
|
||||||
// Polyhedron
|
|
||||||
#include <CGAL/Cartesian.h>
|
|
||||||
#include <CGAL/Polyhedron_3.h>
|
#include <CGAL/Polyhedron_3.h>
|
||||||
#include <CGAL/Polyhedron_items_with_id_3.h>
|
#include <CGAL/Polyhedron_items_with_id_3.h>
|
||||||
|
#include <CGAL/property_map.h>
|
||||||
|
|
||||||
typedef CGAL::Cartesian<double> Kernel;
|
typedef CGAL::Simple_cartesian<double> Kernel;
|
||||||
typedef Kernel::Point_3 Point;
|
typedef Kernel::Point_3 Point;
|
||||||
typedef Kernel::Vector_3 Vector;
|
typedef Kernel::Vector_3 Vector;
|
||||||
typedef CGAL::Polyhedron_3<Kernel, CGAL::Polyhedron_items_with_id_3> Polyhedron;
|
typedef CGAL::Polyhedron_3<Kernel, CGAL::Polyhedron_items_with_id_3> Polyhedron;
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
#include <CGAL/Simple_cartesian.h>
|
#include <CGAL/Simple_cartesian.h>
|
||||||
#include <CGAL/Polyhedron_3.h>
|
#include <CGAL/Polyhedron_3.h>
|
||||||
#include <CGAL/Iterator_range.h>
|
#include <CGAL/Iterator_range.h>
|
||||||
#include <boost/foreach.hpp>
|
|
||||||
|
|
||||||
|
#include <boost/foreach.hpp>
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
#include <CGAL/Simple_cartesian.h>
|
#include <CGAL/Simple_cartesian.h>
|
||||||
#include <CGAL/Surface_mesh.h>
|
#include <CGAL/Surface_mesh.h>
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
#include <CGAL/boost/graph/Graph_with_descriptor_with_graph.h>
|
#include <CGAL/boost/graph/Graph_with_descriptor_with_graph.h>
|
||||||
#include <CGAL/boost/graph/helpers.h>
|
#include <CGAL/boost/graph/helpers.h>
|
||||||
#include <CGAL/boost/graph/Euler_operations.h>
|
#include <CGAL/boost/graph/Euler_operations.h>
|
||||||
|
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
typedef CGAL::Simple_cartesian<double> K;
|
typedef CGAL::Simple_cartesian<double> K;
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
#include <CGAL/Surface_mesh.h>
|
#include <CGAL/Surface_mesh.h>
|
||||||
#include <CGAL/boost/graph/Dual.h>
|
#include <CGAL/boost/graph/Dual.h>
|
||||||
#include <CGAL/boost/graph/helpers.h>
|
#include <CGAL/boost/graph/helpers.h>
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,5 @@
|
||||||
#include <CGAL/Simple_cartesian.h>
|
#include <CGAL/Simple_cartesian.h>
|
||||||
|
|
||||||
#include <CGAL/Surface_mesh.h>
|
#include <CGAL/Surface_mesh.h>
|
||||||
|
|
||||||
#include <CGAL/boost/graph/Face_filtered_graph.h>
|
#include <CGAL/boost/graph/Face_filtered_graph.h>
|
||||||
#include <CGAL/boost/graph/partition.h>
|
#include <CGAL/boost/graph/partition.h>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
#include <CGAL/Simple_cartesian.h>
|
#include <CGAL/Simple_cartesian.h>
|
||||||
#include <CGAL/Surface_mesh.h>
|
#include <CGAL/Surface_mesh.h>
|
||||||
#include <CGAL/boost/graph/io.h>
|
#include <CGAL/boost/graph/io.h>
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -43,8 +43,7 @@ vertices as a source and target. It is possible to filter border edges
|
||||||
using `boost::filtered_graph` as shown in example
|
using `boost::filtered_graph` as shown in example
|
||||||
\ref BGL_surface_mesh/surface_mesh_dual.cpp
|
\ref BGL_surface_mesh/surface_mesh_dual.cpp
|
||||||
|
|
||||||
Property forwarding
|
\cgalHeading{Property Forwarding}
|
||||||
-------------------
|
|
||||||
\cgalAdvancedBegin
|
\cgalAdvancedBegin
|
||||||
Edge properties of the underlying graph are forwarded directly. For
|
Edge properties of the underlying graph are forwarded directly. For
|
||||||
faces and vertices only the `face_index` and `vertex_index` properties
|
faces and vertices only the `face_index` and `vertex_index` properties
|
||||||
|
|
|
||||||
|
|
@ -1329,26 +1329,25 @@ flip_edge(typename boost::graph_traits<Graph>::halfedge_descriptor h,
|
||||||
/**
|
/**
|
||||||
* \returns `true` if `e` satisfies the *link condition* \cgalCite{degn-tpec-98}, which guarantees that the surface is also 2-manifold after the edge collapse.
|
* \returns `true` if `e` satisfies the *link condition* \cgalCite{degn-tpec-98}, which guarantees that the surface is also 2-manifold after the edge collapse.
|
||||||
*/
|
*/
|
||||||
template<typename Graph>
|
template<typename Graph>
|
||||||
bool
|
bool
|
||||||
does_satisfy_link_condition(typename boost::graph_traits<Graph>::edge_descriptor e,
|
does_satisfy_link_condition(typename boost::graph_traits<Graph>::edge_descriptor e,
|
||||||
Graph& g)
|
Graph& g)
|
||||||
{
|
{
|
||||||
typedef typename boost::graph_traits<Graph>::vertex_descriptor vertex_descriptor;
|
typedef typename boost::graph_traits<Graph>::vertex_descriptor vertex_descriptor;
|
||||||
typedef typename boost::graph_traits<Graph>::halfedge_descriptor halfedge_descriptor;
|
typedef typename boost::graph_traits<Graph>::halfedge_descriptor halfedge_descriptor;
|
||||||
typedef CGAL::Halfedge_around_source_iterator<Graph> out_edge_iterator;
|
typedef CGAL::Halfedge_around_source_iterator<Graph> out_edge_iterator;
|
||||||
|
|
||||||
halfedge_descriptor v0_v1 = halfedge(e,g);
|
halfedge_descriptor v0_v1 = halfedge(e,g);
|
||||||
halfedge_descriptor v1_v0 = opposite(v0_v1,g);
|
halfedge_descriptor v1_v0 = opposite(v0_v1,g);
|
||||||
|
|
||||||
vertex_descriptor v0 = target(v1_v0,g), v1 = target(v0_v1,g);
|
vertex_descriptor v0 = target(v1_v0,g), v1 = target(v0_v1,g);
|
||||||
|
|
||||||
vertex_descriptor vL = target(next(v0_v1,g),g);
|
vertex_descriptor vL = target(next(v0_v1,g),g);
|
||||||
vertex_descriptor vR = target(next(v1_v0,g),g);
|
vertex_descriptor vR = target(next(v1_v0,g),g);
|
||||||
|
|
||||||
out_edge_iterator eb1, ee1 ;
|
|
||||||
out_edge_iterator eb2, ee2 ;
|
|
||||||
|
|
||||||
|
out_edge_iterator eb1, ee1 ;
|
||||||
|
out_edge_iterator eb2, ee2 ;
|
||||||
|
|
||||||
// The following loop checks the link condition for v0_v1.
|
// The following loop checks the link condition for v0_v1.
|
||||||
// Specifically, that for every vertex 'k' adjacent to both 'p and 'q', 'pkq' is a face of the mesh.
|
// Specifically, that for every vertex 'k' adjacent to both 'p and 'q', 'pkq' is a face of the mesh.
|
||||||
|
|
@ -1382,8 +1381,6 @@ bool
|
||||||
bool lIsFace = ( vL == k && (! is_border(v0_v1,g)) )
|
bool lIsFace = ( vL == k && (! is_border(v0_v1,g)) )
|
||||||
|| ( vR == k && (! is_border(v1_v0,g)) ) ;
|
|| ( vR == k && (! is_border(v1_v0,g)) ) ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if ( !lIsFace )
|
if ( !lIsFace )
|
||||||
{
|
{
|
||||||
// CGAL_ECMS_TRACE(3," k=V" << get(Vertex_index_map,k) << " IS NOT in a face with p-q. NON-COLLAPSABLE edge." ) ;
|
// CGAL_ECMS_TRACE(3," k=V" << get(Vertex_index_map,k) << " IS NOT in a face with p-q. NON-COLLAPSABLE edge." ) ;
|
||||||
|
|
@ -1398,45 +1395,34 @@ bool
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// detect isolated triangle (or triangle attached to a mesh with non-manifold vertices)
|
||||||
|
if (!is_border(v0_v1,g) && is_border(opposite(next(v0_v1,g), g), g)
|
||||||
|
&& is_border(opposite(prev(v0_v1,g), g), g) ) return false;
|
||||||
|
if (!is_border(v1_v0,g) && is_border(opposite(next(v1_v0,g), g), g)
|
||||||
|
&& is_border(opposite(prev(v1_v0,g), g), g) ) return false;
|
||||||
|
|
||||||
if ( is_border(v0_v1,g) )
|
if ( !is_border(v0_v1,g) && !is_border(v1_v0,g) )
|
||||||
|
{
|
||||||
|
if ( is_border(v0,g) && is_border(v1,g) )
|
||||||
{
|
{
|
||||||
if ( next(next(next(v0_v1,g),g),g) == v0_v1 )
|
//CGAL_ECMS_TRACE(3," both p and q are boundary vertices but p-q is not. NON-COLLAPSABLE edge." ) ;
|
||||||
{
|
return false ;
|
||||||
//CGAL_ECMS_TRACE(3," p-q belongs to an open triangle. NON-COLLAPSABLE edge." ) ;
|
|
||||||
return false ;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if ( is_border(v1_v0,g) )
|
|
||||||
{
|
|
||||||
if ( next(next(next(v1_v0,g),g),g) == v1_v0 )
|
|
||||||
{
|
|
||||||
//CGAL_ECMS_TRACE(3," p-q belongs to an open triangle. NON-COLLAPSABLE edge." ) ;
|
|
||||||
return false ;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ( is_border(v0,g) && is_border(v1,g) )
|
if ( is_tetrahedron(v0_v1,g) )
|
||||||
{
|
{
|
||||||
//CGAL_ECMS_TRACE(3," both p and q are boundary vertices but p-q is not. NON-COLLAPSABLE edge." ) ;
|
//CGAL_ECMS_TRACE(3," p-q belongs to a tetrahedron. NON-COLLAPSABLE edge." ) ;
|
||||||
return false ;
|
return false ;
|
||||||
}
|
}
|
||||||
else
|
if ( next(v0_v1, g) == opposite(prev(v1_v0, g), g) &&
|
||||||
|
prev(v0_v1, g) == opposite(next(v1_v0, g), g) )
|
||||||
{
|
{
|
||||||
if ( is_tetrahedron(v0_v1,g) )
|
//CGAL_ECMS_TRACE(3," degenerate volume." ) ;
|
||||||
{
|
return false ;
|
||||||
//CGAL_ECMS_TRACE(3," p-q belongs to a tetrahedron. NON-COLLAPSABLE edge." ) ;
|
|
||||||
return false ;
|
|
||||||
}
|
|
||||||
if ( next(v0_v1, g) == opposite(prev(v1_v0, g), g) &&
|
|
||||||
prev(v0_v1, g) == opposite(next(v1_v0, g), g) )
|
|
||||||
{
|
|
||||||
//CGAL_ECMS_TRACE(3," degenerate volume." ) ;
|
|
||||||
return false ;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return true ;
|
return true ;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -650,6 +650,17 @@ degree(typename boost::graph_traits<Face_filtered_graph<Graph, FIMap, VIMap, HIM
|
||||||
return v_deg;
|
return v_deg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<typename Graph,
|
||||||
|
typename FIMap,
|
||||||
|
typename VIMap,
|
||||||
|
typename HIMap>
|
||||||
|
typename boost::graph_traits<Graph>::degree_size_type
|
||||||
|
degree(typename boost::graph_traits<Face_filtered_graph<Graph, FIMap, VIMap, HIMap> >::face_descriptor f,
|
||||||
|
const Face_filtered_graph<Graph, FIMap, VIMap, HIMap>& w)
|
||||||
|
{
|
||||||
|
return degree(f, w.graph());
|
||||||
|
}
|
||||||
|
|
||||||
template<typename Graph,
|
template<typename Graph,
|
||||||
typename FIMap,
|
typename FIMap,
|
||||||
typename VIMap,
|
typename VIMap,
|
||||||
|
|
@ -944,8 +955,7 @@ template<typename Graph,
|
||||||
typename FIMap,
|
typename FIMap,
|
||||||
typename VIMap,
|
typename VIMap,
|
||||||
typename HIMap>
|
typename HIMap>
|
||||||
std::pair<typename boost::graph_traits<Face_filtered_graph<Graph, FIMap, VIMap, HIMap> >::halfedge_iterator,
|
Iterator_range<typename boost::graph_traits<Face_filtered_graph<Graph, FIMap, VIMap, HIMap> >::halfedge_iterator>
|
||||||
typename boost::graph_traits<Face_filtered_graph<Graph, FIMap, VIMap, HIMap> >::halfedge_iterator>
|
|
||||||
halfedges(const Face_filtered_graph<Graph, FIMap, VIMap, HIMap> & w)
|
halfedges(const Face_filtered_graph<Graph, FIMap, VIMap, HIMap> & w)
|
||||||
{
|
{
|
||||||
typedef typename boost::graph_traits<Face_filtered_graph<Graph, FIMap, VIMap, HIMap> >::halfedge_iterator halfedge_iterator;
|
typedef typename boost::graph_traits<Face_filtered_graph<Graph, FIMap, VIMap, HIMap> >::halfedge_iterator halfedge_iterator;
|
||||||
|
|
|
||||||
|
|
@ -118,8 +118,7 @@ The class `Graph_with_descriptor_with_graph` wraps a graph into another graph in
|
||||||
For example, calling `source(edge, graph)` will trigger an assertion if `edge` does not belong to `graph`.
|
For example, calling `source(edge, graph)` will trigger an assertion if `edge` does not belong to `graph`.
|
||||||
It is mainly used for debugging purposes.
|
It is mainly used for debugging purposes.
|
||||||
|
|
||||||
Property forwarding
|
\cgalHeading{Property Forwarding}
|
||||||
-------------------
|
|
||||||
All internal properties of the underlying graph are forwarded.
|
All internal properties of the underlying graph are forwarded.
|
||||||
|
|
||||||
Property maps can be wrapped with `Graph_with_descriptor_with_graph_property_map`.
|
Property maps can be wrapped with `Graph_with_descriptor_with_graph_property_map`.
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue