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
|
||||
dist: trusty
|
||||
dist: xenial
|
||||
sudo: required
|
||||
git:
|
||||
depth: 3
|
||||
|
|
@ -19,19 +19,20 @@ env:
|
|||
- PACKAGE='Distance_2 Distance_3 Envelope_2 '
|
||||
- PACKAGE='Envelope_3 Filtered_kernel Generalized_map '
|
||||
- PACKAGE='Generator Geomview GraphicsView '
|
||||
- PACKAGE='HalfedgeDS Hash_map Homogeneous_kernel '
|
||||
- PACKAGE='Inscribed_areas Installation Interpolation '
|
||||
- PACKAGE='Intersections_2 Intersections_3 Interval_skip_list '
|
||||
- PACKAGE='Interval_support Inventor Jet_fitting_3 '
|
||||
- PACKAGE='Kernel_23 Kernel_d LEDA '
|
||||
- PACKAGE='Linear_cell_complex MacOSX Maintenance '
|
||||
- PACKAGE='Matrix_search Mesh_2 Mesh_3 '
|
||||
- PACKAGE='Mesher_level Minkowski_sum_2 Minkowski_sum_3 '
|
||||
- PACKAGE='Modifier Modular_arithmetic Nef_2 '
|
||||
- PACKAGE='Nef_3 Nef_S2 NewKernel_d '
|
||||
- PACKAGE='Number_types OpenNL Optimal_transportation_reconstruction_2 '
|
||||
- PACKAGE='Optimisation_basic Partition_2 Periodic_2_triangulation_2 '
|
||||
- PACKAGE='Periodic_3_mesh_3 Periodic_3_triangulation_3 Point_set_2 '
|
||||
- PACKAGE='HalfedgeDS Hash_map Heat_method_3 '
|
||||
- PACKAGE='Homogeneous_kernel Hyperbolic_triangulation_2 Inscribed_areas '
|
||||
- PACKAGE='Installation Interpolation Intersections_2 '
|
||||
- PACKAGE='Intersections_3 Interval_skip_list Interval_support '
|
||||
- PACKAGE='Inventor Jet_fitting_3 Kernel_23 '
|
||||
- PACKAGE='Kernel_d LEDA Linear_cell_complex '
|
||||
- PACKAGE='MacOSX Maintenance Matrix_search '
|
||||
- PACKAGE='Mesh_2 Mesh_3 Mesher_level '
|
||||
- PACKAGE='Minkowski_sum_2 Minkowski_sum_3 Modifier '
|
||||
- PACKAGE='Modular_arithmetic Nef_2 Nef_3 '
|
||||
- PACKAGE='Nef_S2 NewKernel_d Number_types '
|
||||
- PACKAGE='OpenNL Optimal_transportation_reconstruction_2 Optimisation_basic '
|
||||
- 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='Poisson_surface_reconstruction_3 Polygon Polygon_mesh_processing '
|
||||
- PACKAGE='Polyhedron Polyhedron_IO Polyline_simplification_2 '
|
||||
|
|
@ -43,26 +44,27 @@ env:
|
|||
- PACKAGE='Skin_surface_3 Snap_rounding_2 Solver_interface '
|
||||
- PACKAGE='Spatial_searching Spatial_sorting STL_Extension '
|
||||
- PACKAGE='Straight_skeleton_2 Stream_lines_2 Stream_support '
|
||||
- PACKAGE='Subdivision_method_3 Surface_mesh Surface_mesh_deformation '
|
||||
- PACKAGE='Surface_mesher Surface_mesh_parameterization Surface_mesh_segmentation '
|
||||
- PACKAGE='Surface_mesh_shortest_path Surface_mesh_simplification Surface_mesh_skeletonization '
|
||||
- PACKAGE='Surface_sweep_2 TDS_2 TDS_3 '
|
||||
- PACKAGE='Testsuite Three Triangulation '
|
||||
- PACKAGE='Triangulation_2 Triangulation_3 Union_find '
|
||||
- PACKAGE='Visibility_2 Voronoi_diagram_2 wininst '
|
||||
compiler: clang-3.6
|
||||
- PACKAGE='Subdivision_method_3 Surface_mesh Surface_mesh_approximation '
|
||||
- PACKAGE='Surface_mesh_deformation Surface_mesher Surface_mesh_parameterization '
|
||||
- PACKAGE='Surface_mesh_segmentation Surface_mesh_shortest_path Surface_mesh_simplification '
|
||||
- PACKAGE='Surface_mesh_skeletonization Surface_sweep_2 TDS_2 '
|
||||
- PACKAGE='TDS_3 Testsuite Three '
|
||||
- PACKAGE='Triangulation Triangulation_2 Triangulation_3 '
|
||||
- PACKAGE='Union_find Visibility_2 Voronoi_diagram_2 '
|
||||
- PACKAGE='wininst '
|
||||
compiler: clang
|
||||
install:
|
||||
- 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
|
||||
- bash .travis/install.sh
|
||||
- export CXX=clang++-3.6 CC=clang-3.6;
|
||||
- export CXX=clang++ CC=clang;
|
||||
before_script:
|
||||
- wget -O doxygen_exe https://cgal.geometryfactory.com/~mgimeno/doxygen_exe
|
||||
- sudo mv doxygen_exe /usr/bin/doxygen
|
||||
- sudo chmod +x /usr/bin/doxygen
|
||||
- mkdir -p 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
|
||||
- sudo make install &>/dev/null
|
||||
- cd ..
|
||||
|
|
|
|||
|
|
@ -18,40 +18,18 @@ function build_tests {
|
|||
function build_demo {
|
||||
mkdir -p 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=
|
||||
case "$CC" in
|
||||
clang*)
|
||||
EXTRA_CXX_FLAGS="-Werror=inconsistent-missing-override"
|
||||
;;
|
||||
esac
|
||||
if [ $NEED_3D = 1 ]; then
|
||||
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}" ..
|
||||
cmake -DCGAL_DIR="/usr/local/lib/cmake/CGAL" -DCGAL_DONT_OVERRIDE_CMAKE_FLAGS:BOOL=ON -DCMAKE_CXX_FLAGS="${CXX_FLAGS} ${EXTRA_CXX_FLAGS}" ..
|
||||
make -j2
|
||||
}
|
||||
old_IFS=$IFS
|
||||
IFS=$' '
|
||||
ROOT="$PWD/.."
|
||||
NEED_3D=0
|
||||
for ARG in $(echo "$@")
|
||||
do
|
||||
#skip package maintenance
|
||||
|
|
@ -146,12 +124,6 @@ cd $ROOT
|
|||
EXAMPLES="$ARG/examples/$ARG"
|
||||
TEST="$ARG/test/$ARG"
|
||||
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" ]
|
||||
then
|
||||
|
|
@ -206,10 +178,9 @@ cd $ROOT
|
|||
done
|
||||
if [ "$ARG" = Polyhedron_demo ]; then
|
||||
DEMO=Polyhedron/demo/Polyhedron
|
||||
NEED_3D=1
|
||||
cd "$ROOT/$DEMO"
|
||||
build_demo
|
||||
fi
|
||||
fi
|
||||
done
|
||||
IFS=$old_IFS
|
||||
# Local Variables:
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ done
|
|||
COPY=0
|
||||
for LINE in $(cat "$PWD/.travis/template.txt")
|
||||
do
|
||||
if [ "$LINE" = "compiler: clang-3.6" ]
|
||||
if [ "$LINE" = "compiler: clang" ]
|
||||
then
|
||||
COPY=1
|
||||
fi
|
||||
|
|
|
|||
|
|
@ -2,23 +2,13 @@
|
|||
|
||||
[ -n "$CGAL_DEBUG_TRAVIS" ] && set -x
|
||||
DONE=0
|
||||
sudo apt-get update
|
||||
while [ $DONE = 0 ]
|
||||
do
|
||||
DONE=1 && sudo -E apt-add-repository -y "ppa:ppsspp/cmake" || DONE=0 && sleep 5
|
||||
done
|
||||
DONE=0
|
||||
while [ $DONE = 0 ]
|
||||
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=1 && sudo -E apt-get -yq --no-install-suggests --no-install-recommends --force-yes install clang zsh \
|
||||
flex bison cmake graphviz libgmp-dev libmpfr-dev libmpfi-dev zlib1g-dev libeigen3-dev libboost-dev \
|
||||
libboost-system-dev libboost-program-options-dev libboost-thread-dev libboost-iostreams-dev \
|
||||
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 \
|
||||
|| DONE=0 && sudo apt-get update
|
||||
done
|
||||
exit 0
|
||||
|
|
|
|||
|
|
@ -39,7 +39,9 @@ Geomview
|
|||
GraphicsView
|
||||
HalfedgeDS
|
||||
Hash_map
|
||||
Heat_method_3
|
||||
Homogeneous_kernel
|
||||
Hyperbolic_triangulation_2
|
||||
Inscribed_areas
|
||||
Installation
|
||||
Interpolation
|
||||
|
|
@ -75,6 +77,7 @@ Partition_2
|
|||
Periodic_2_triangulation_2
|
||||
Periodic_3_mesh_3
|
||||
Periodic_3_triangulation_3
|
||||
Periodic_4_hyperbolic_triangulation_2
|
||||
Point_set_2
|
||||
Point_set_3
|
||||
Point_set_processing_3
|
||||
|
|
@ -111,6 +114,7 @@ Stream_lines_2
|
|||
Stream_support
|
||||
Subdivision_method_3
|
||||
Surface_mesh
|
||||
Surface_mesh_approximation
|
||||
Surface_mesh_deformation
|
||||
Surface_mesher
|
||||
Surface_mesh_parameterization
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
language: cpp
|
||||
dist: trusty
|
||||
dist: xenial
|
||||
sudo: required
|
||||
git:
|
||||
depth: 3
|
||||
|
|
@ -7,19 +7,19 @@ env:
|
|||
matrix:
|
||||
PACKAGES_MATRIX
|
||||
|
||||
compiler: clang-3.6
|
||||
compiler: clang
|
||||
install:
|
||||
- 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
|
||||
- bash .travis/install.sh
|
||||
- export CXX=clang++-3.6 CC=clang-3.6;
|
||||
- export CXX=clang++ CC=clang;
|
||||
before_script:
|
||||
- wget -O doxygen_exe https://cgal.geometryfactory.com/~mgimeno/doxygen_exe
|
||||
- sudo mv doxygen_exe /usr/bin/doxygen
|
||||
- sudo chmod +x /usr/bin/doxygen
|
||||
- mkdir -p 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
|
||||
- sudo make install &>/dev/null
|
||||
- cd ..
|
||||
|
|
|
|||
|
|
@ -22,17 +22,17 @@
|
|||
|
||||
\cgalClassifedRefPages
|
||||
|
||||
## Concepts ##
|
||||
\cgalCRPSection{Concepts}
|
||||
- `AABBPrimitive`
|
||||
- `AABBPrimitiveWithSharedData`
|
||||
- `AABBTraits`
|
||||
- `AABBGeomTraits`
|
||||
|
||||
## Classes ##
|
||||
\cgalCRPSection{Classes}
|
||||
- `CGAL::AABB_traits<GeomTraits,Primitive>`
|
||||
- `CGAL::AABB_tree<AT>`
|
||||
|
||||
## Primitives ##
|
||||
\cgalCRPSection{Primitives}
|
||||
- `CGAL::AABB_triangle_primitive<GeomTraits, Iterator, CacheDatum>`
|
||||
- `CGAL::AABB_segment_primitive<GeomTraits, Iterator, CacheDatum>`
|
||||
- `CGAL::AABB_primitive<Id,ObjectPropertyMap,PointPropertyMapPolyhedron,ExternalPropertyMaps,CacheDatum>`
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
#include <iostream>
|
||||
#include <list>
|
||||
#include <boost/iterator.hpp>
|
||||
#include <boost/iterator/iterator_adaptor.hpp>
|
||||
|
||||
#include <CGAL/Simple_cartesian.h>
|
||||
#include <CGAL/AABB_tree.h>
|
||||
|
|
|
|||
|
|
@ -1,10 +1,11 @@
|
|||
|
||||
// Author(s) : Camille Wormser, Pierre Alliez
|
||||
// Example of an AABB tree used with a simple list of
|
||||
// triangles (a triangle soup) stored into an array of points.
|
||||
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
#include <boost/iterator.hpp>
|
||||
#include <boost/iterator/iterator_adaptor.hpp>
|
||||
|
||||
#include <CGAL/Simple_cartesian.h>
|
||||
#include <CGAL/AABB_tree.h>
|
||||
|
|
|
|||
|
|
@ -429,6 +429,12 @@ public:
|
|||
/// that returns `true` in order to skip the primitive.
|
||||
/// 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
|
||||
/// call this member function.
|
||||
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;
|
||||
}
|
||||
|
||||
#ifndef CGAL_CFG_NO_CPP0X_DELETED_AND_DEFAULT_FUNCTIONS
|
||||
Decorated_point& operator=(const Decorated_point&)=default;
|
||||
#endif
|
||||
private:
|
||||
Id m_id;
|
||||
|
||||
|
|
|
|||
|
|
@ -16,3 +16,4 @@ Property_map
|
|||
STL_Extension
|
||||
Spatial_searching
|
||||
Stream_support
|
||||
Distance_3
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@
|
|||
#include <CGAL/AABB_face_graph_triangle_primitive.h>
|
||||
#include <CGAL/AABB_halfedge_graph_segment_primitive.h>
|
||||
#include <CGAL/Polyhedron_3.h>
|
||||
#include <CGAL/Timer.h>
|
||||
|
||||
#include <CGAL/disable_warnings.h>
|
||||
|
||||
|
|
|
|||
|
|
@ -26,9 +26,6 @@
|
|||
#include <fstream>
|
||||
#include <iostream>
|
||||
|
||||
#include <CGAL/Timer.h>
|
||||
|
||||
#include <CGAL/Cartesian.h>
|
||||
#include <CGAL/Simple_cartesian.h>
|
||||
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
|
||||
|
||||
|
|
|
|||
|
|
@ -25,10 +25,8 @@
|
|||
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <CGAL/Timer.h>
|
||||
|
||||
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
|
||||
#include <CGAL/Cartesian.h>
|
||||
#include <CGAL/Simple_cartesian.h>
|
||||
|
||||
#include <CGAL/AABB_tree.h>
|
||||
|
|
|
|||
|
|
@ -28,14 +28,12 @@
|
|||
#include <CGAL/Timer.h>
|
||||
|
||||
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
|
||||
#include <CGAL/Cartesian.h>
|
||||
#include <CGAL/Simple_cartesian.h>
|
||||
|
||||
#include <CGAL/AABB_tree.h>
|
||||
#include <CGAL/AABB_traits.h>
|
||||
#include <CGAL/Polyhedron_3.h>
|
||||
|
||||
|
||||
#include <CGAL/spatial_sort.h>
|
||||
|
||||
#include "AABB_test_util.h"
|
||||
|
|
|
|||
|
|
@ -25,13 +25,13 @@ of topological singularities. }
|
|||
|
||||
\cgalClassifedRefPages
|
||||
|
||||
## Classes ##
|
||||
\cgalCRPSection{Classes}
|
||||
|
||||
- `CGAL::Advancing_front_surface_reconstruction`
|
||||
- `CGAL::Advancing_front_surface_reconstruction_vertex_base_3`
|
||||
- `CGAL::Advancing_front_surface_reconstruction_cell_base_3`
|
||||
|
||||
## Functions ##
|
||||
\cgalCRPSection{Functions}
|
||||
|
||||
- `CGAL::advancing_front_surface_reconstruction()`
|
||||
|
||||
|
|
|
|||
|
|
@ -10,10 +10,6 @@ find_package(CGAL QUIET)
|
|||
|
||||
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
|
||||
file(GLOB cppfiles RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
|
||||
foreach(cppfile ${cppfiles})
|
||||
|
|
|
|||
|
|
@ -23,9 +23,9 @@
|
|||
|
||||
\cgalClassifedRefPages
|
||||
|
||||
## Algebraic Structures ##
|
||||
\cgalCRPSection{Algebraic Structures}
|
||||
|
||||
### Concepts ###
|
||||
\cgalCRPSubsection{Concepts}
|
||||
|
||||
- `IntegralDomainWithoutDivision`
|
||||
- `IntegralDomain`
|
||||
|
|
@ -54,7 +54,7 @@
|
|||
- `AlgebraicStructureTraits_::KthRoot`
|
||||
- `AlgebraicStructureTraits_::RootOf`
|
||||
|
||||
### Classes ###
|
||||
\cgalCRPSubsection{Classes}
|
||||
|
||||
- `CGAL::Algebraic_structure_traits<T>`
|
||||
- `CGAL::Integral_domain_without_division_tag`
|
||||
|
|
@ -64,7 +64,7 @@
|
|||
- `CGAL::Unique_factorization_domain_tag`
|
||||
- `CGAL::Euclidean_ring_tag`
|
||||
|
||||
### Global Functions ###
|
||||
\cgalCRPSubsection{Global Functions}
|
||||
|
||||
- `CGAL::is_zero()`
|
||||
- `CGAL::is_one()`
|
||||
|
|
@ -82,9 +82,9 @@
|
|||
- `CGAL::kth_root()`
|
||||
- `CGAL::root_of()`
|
||||
|
||||
## Real Embeddable ##
|
||||
\cgalCRPSection{Real Embeddable}
|
||||
|
||||
### Concepts ###
|
||||
\cgalCRPSubsection{Concepts}
|
||||
|
||||
- `RealEmbeddable`
|
||||
|
||||
|
|
@ -98,11 +98,11 @@
|
|||
- `RealEmbeddableTraits_::ToDouble`
|
||||
- `RealEmbeddableTraits_::ToInterval`
|
||||
|
||||
### Classes ###
|
||||
\cgalCRPSubsection{Classes}
|
||||
|
||||
- `CGAL::Real_embeddable_traits<T>`
|
||||
|
||||
### Global Functions ###
|
||||
\cgalCRPSubsection{Global Functions}
|
||||
|
||||
- `CGAL::is_zero()`
|
||||
- `CGAL::abs()`
|
||||
|
|
@ -113,27 +113,27 @@
|
|||
- `CGAL::to_double()`
|
||||
- `CGAL::to_interval()`
|
||||
|
||||
## Real Number Types ##
|
||||
\cgalCRPSection{Real Number Types}
|
||||
|
||||
### Concepts ###
|
||||
\cgalCRPSubsection{Concepts}
|
||||
|
||||
- `RingNumberType`
|
||||
- `FieldNumberType`
|
||||
|
||||
## Interoperability ##
|
||||
\cgalCRPSection{Interoperability}
|
||||
|
||||
### Concepts ###
|
||||
\cgalCRPSubsection{Concepts}
|
||||
|
||||
- `ExplicitInteroperable`
|
||||
- `ImplicitInteroperable`
|
||||
|
||||
### Classes ###
|
||||
\cgalCRPSubsection{Classes}
|
||||
|
||||
- `CGAL::Coercion_traits<A,B>`
|
||||
|
||||
## Fractions ##
|
||||
\cgalCRPSection{Fractions}
|
||||
|
||||
### Concepts ###
|
||||
\cgalCRPSubsection{Concepts}
|
||||
|
||||
- `Fraction`
|
||||
- `FractionTraits`
|
||||
|
|
@ -141,13 +141,13 @@
|
|||
- `FractionTraits_::Compose`
|
||||
- `FractionTraits_::CommonFactor`
|
||||
|
||||
### Classes ###
|
||||
\cgalCRPSubsection{Classes}
|
||||
|
||||
- `CGAL::Fraction_traits<T>`
|
||||
|
||||
## Miscellaneous ##
|
||||
\cgalCRPSection{Miscellaneous}
|
||||
|
||||
### Concepts ###
|
||||
\cgalCRPSubsection{Concepts}
|
||||
- `FromIntConstructible`
|
||||
- `FromDoubleConstructible`
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
#include <CGAL/basic.h>
|
||||
#include <CGAL/IO/io.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 >
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
#include <CGAL/basic.h>
|
||||
#include <CGAL/Fraction_traits.h>
|
||||
#include <CGAL/IO/io.h>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
#include <CGAL/basic.h>
|
||||
#include <CGAL/Coercion_traits.h>
|
||||
#include <CGAL/Quotient.h>
|
||||
#include <CGAL/Sqrt_extension.h>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
#include <CGAL/basic.h>
|
||||
#include <CGAL/Fraction_traits.h>
|
||||
#include <CGAL/IO/io.h>
|
||||
#include <vector>
|
||||
#include <CGAL/number_utils.h>
|
||||
|
||||
template <class Fraction>
|
||||
std::vector<typename CGAL::Fraction_traits<Fraction>::Numerator_type >
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
#include <CGAL/basic.h>
|
||||
#include <CGAL/Coercion_traits.h>
|
||||
#include <CGAL/IO/io.h>
|
||||
|
||||
|
|
|
|||
|
|
@ -34,9 +34,9 @@
|
|||
|
||||
\cgalClassifedRefPages
|
||||
|
||||
## Concepts ##
|
||||
\cgalCRPSection{Concepts}
|
||||
|
||||
### Univariate Algebraic %Kernel ###
|
||||
\cgalCRPSubsection{Univariate Algebraic %Kernel}
|
||||
|
||||
- `AlgebraicKernel_d_1`
|
||||
|
||||
|
|
@ -58,7 +58,7 @@
|
|||
- `AlgebraicKernel_d_1::ApproximateAbsolute_1`
|
||||
- `AlgebraicKernel_d_1::ApproximateRelative_1`
|
||||
|
||||
### Bivariate Algebraic %Kernel ###
|
||||
\cgalCRPSubsection{Bivariate Algebraic %Kernel}
|
||||
|
||||
- `AlgebraicKernel_d_2`
|
||||
|
||||
|
|
@ -95,7 +95,7 @@
|
|||
- `AlgebraicKernel_d_2::BoundBetweenX_2`
|
||||
- `AlgebraicKernel_d_2::BoundBetweenY_2`
|
||||
|
||||
## Models ##
|
||||
\cgalCRPSection{Models}
|
||||
|
||||
- `CGAL::Algebraic_kernel_d_1<Coeff>`
|
||||
- `CGAL::Algebraic_kernel_d_2<Coeff>`
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
// $URL$
|
||||
// $Id$
|
||||
|
||||
#include <CGAL/basic.h>
|
||||
#include <CGAL/config.h>
|
||||
#ifdef CGAL_USE_MPFI
|
||||
#include <CGAL/Algebraic_kernel_d_1.h>
|
||||
#include <CGAL/Gmpz.h>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
// $URL$
|
||||
// $Id$
|
||||
|
||||
#include <CGAL/basic.h>
|
||||
#include <CGAL/config.h>
|
||||
#ifdef CGAL_USE_MPFI
|
||||
#include <CGAL/Algebraic_kernel_d_1.h>
|
||||
#include <CGAL/Gmpz.h>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
// $URL$
|
||||
// $Id$
|
||||
|
||||
#include <CGAL/basic.h>
|
||||
#include <CGAL/config.h>
|
||||
#ifdef CGAL_USE_MPFI
|
||||
#include <CGAL/Algebraic_kernel_d_1.h>
|
||||
#include <CGAL/Gmpz.h>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
// $URL$
|
||||
// $Id$
|
||||
|
||||
#include <CGAL/basic.h>
|
||||
#include <CGAL/config.h>
|
||||
#ifdef CGAL_USE_MPFI
|
||||
#include <CGAL/Algebraic_kernel_d_1.h>
|
||||
#include <CGAL/Gmpz.h>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
// $URL$
|
||||
// $Id$
|
||||
|
||||
#include <CGAL/basic.h>
|
||||
#include <CGAL/config.h>
|
||||
#ifdef CGAL_USE_MPFI
|
||||
#include <CGAL/Algebraic_kernel_d_1.h>
|
||||
#include <CGAL/Gmpz.h>
|
||||
|
|
|
|||
|
|
@ -114,9 +114,6 @@ public:
|
|||
//! Default constructor
|
||||
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.
|
||||
Algebraic_real_d_1(int i ) : Base(Algebraic_real_rep_d_1(i)) { }
|
||||
|
||||
|
|
|
|||
|
|
@ -108,9 +108,11 @@ public:
|
|||
|
||||
Bitstream_coefficient_kernel_at_alpha() : Base(Rep()) {}
|
||||
|
||||
#ifdef DOXYGEN_RUNNING
|
||||
Bitstream_coefficient_kernel_at_alpha(const Self& traits)
|
||||
: Base(static_cast<const Base&>(traits)) {}
|
||||
|
||||
#endif
|
||||
|
||||
Bitstream_coefficient_kernel_at_alpha(Algebraic_kernel_d_1* kernel,
|
||||
Algebraic_real_1 alpha)
|
||||
: Base(kernel,alpha) {}
|
||||
|
|
|
|||
|
|
@ -476,7 +476,9 @@ private:
|
|||
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
|
||||
|
||||
|
||||
|
|
@ -575,9 +577,11 @@ public:
|
|||
Bitstream_descartes_E08_tree() : Base(Rep()) { }
|
||||
|
||||
//! copy constructor
|
||||
#ifdef DOXYGEN_RUNNING
|
||||
Bitstream_descartes_E08_tree(const Self& p)
|
||||
: Base(static_cast<const Base&>(p))
|
||||
{ }
|
||||
#endif
|
||||
|
||||
/*! \brief construct from initial interval and coefficients
|
||||
*
|
||||
|
|
|
|||
|
|
@ -566,8 +566,10 @@ private:
|
|||
log_eps_ = n.log_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
|
||||
|
||||
|
||||
|
|
@ -931,9 +933,11 @@ public:
|
|||
Bitstream_descartes_rndl_tree() : Base(Rep()) { }
|
||||
|
||||
//! copy constructor
|
||||
#ifdef DOXYGEN_RUNNING
|
||||
Bitstream_descartes_rndl_tree(const Self& p)
|
||||
: Base(static_cast<const Base&>(p))
|
||||
{ }
|
||||
#endif
|
||||
|
||||
//! Internal function called by constructor. Avoids code duplication
|
||||
void init_tree() {
|
||||
|
|
|
|||
|
|
@ -154,9 +154,10 @@ public:
|
|||
: Base(static_cast<const Base&>(get_default_instance())){}
|
||||
|
||||
// explicit copy-constructor, required by VC9
|
||||
#ifdef DOXYGEN_RUNNING
|
||||
Bitstream_descartes_rndl_tree_traits(const Self& traits)
|
||||
: Base(static_cast<const Base&>(traits)){}
|
||||
|
||||
#endif
|
||||
//! @}
|
||||
|
||||
class Approximator {
|
||||
|
|
|
|||
|
|
@ -505,11 +505,12 @@ public:
|
|||
}
|
||||
|
||||
//! \brief Copy constructor
|
||||
#ifdef DOXYGEN_RUNNING
|
||||
Curve_analysis_2(const Self& alg_curve)
|
||||
: Base(static_cast<const Base&>(alg_curve))
|
||||
{
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
//!@}
|
||||
|
||||
|
|
|
|||
|
|
@ -446,11 +446,12 @@ public:
|
|||
};
|
||||
|
||||
//! \brief Copy constructor
|
||||
#ifdef DOXYGEN_RUNNING
|
||||
Curve_pair_analysis_2(const Self& alg_curve_pair)
|
||||
: Base(static_cast<const Base&>(alg_curve_pair))
|
||||
{
|
||||
}
|
||||
|
||||
#endif
|
||||
// Assignable
|
||||
|
||||
/*!
|
||||
|
|
@ -1434,7 +1435,13 @@ compute_event_x_coordinates_with_event_indices() const {
|
|||
CGAL_ACK_DEBUG_PRINT << " one curve event" << std::endl;
|
||||
#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());
|
||||
#endif
|
||||
switch(*(one_curve_it++)) {
|
||||
case(CGAL::internal::ROOT_OF_FIRST_SET): {
|
||||
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;
|
||||
#endif
|
||||
*/
|
||||
this->ptr()->
|
||||
event_slices.push_back(Lazy_status_line_CPA_1());
|
||||
#if CGAL_CXX11
|
||||
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(inter_count,-1,-1));
|
||||
|
|
@ -1476,7 +1486,11 @@ compute_event_x_coordinates_with_event_indices() const {
|
|||
<< std::endl;
|
||||
#endif
|
||||
*/
|
||||
#if CGAL_CXX11
|
||||
this->ptr()->event_slices.emplace_back();
|
||||
#else
|
||||
this->ptr()->event_slices.push_back(Lazy_status_line_CPA_1());
|
||||
#endif
|
||||
|
||||
|
||||
switch(*(one_curve_it++)) {
|
||||
|
|
|
|||
|
|
@ -252,9 +252,11 @@ public:
|
|||
/*!\brief
|
||||
* copy constructor
|
||||
*/
|
||||
#ifdef DOXYGEN_RUNNING
|
||||
Status_line_CA_1(const Self& p) :
|
||||
Base(static_cast<const Base&>(p)) {
|
||||
}
|
||||
#endif
|
||||
|
||||
/*!\brief
|
||||
* constructs a status line over the \c i-th interval with x-coordinate
|
||||
|
|
|
|||
|
|
@ -174,10 +174,12 @@ public:
|
|||
/*!\brief
|
||||
* copy constructor
|
||||
*/
|
||||
#ifdef DOXYGEN_RUNNING
|
||||
Status_line_CPA_1(const Self& p) :
|
||||
Base(static_cast<const Base&>(p)) {
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/*!\brief
|
||||
* constructs undefined status line
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -219,9 +219,11 @@ public:
|
|||
/*!\brief
|
||||
* copy constructor
|
||||
*/
|
||||
#ifdef DOXYGEN_RUNNING
|
||||
Xy_coordinate_2(const Self& p) :
|
||||
Base(static_cast<const Base&>(p)) {
|
||||
}
|
||||
#endif
|
||||
|
||||
/*!\brief
|
||||
* 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/Algebraic_kernel_d/Real_embeddable_extension.h>
|
||||
#include <CGAL/Get_arithmetic_kernel.h>
|
||||
|
||||
#include <CGAL/GMP_arithmetic_kernel.h>
|
||||
#include <CGAL/LEDA_arithmetic_kernel.h>
|
||||
|
|
|
|||
|
|
@ -216,8 +216,8 @@ namespace CGAL {
|
|||
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 y = make_root_of_2(s.b(),FT(i?(cy):(-cy)),delta);
|
||||
const Root_of_2 z = make_root_of_2(s.c(),FT(i?(cz):(-cz)),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):FT(-cz)),delta);
|
||||
|
||||
return Root_for_spheres_2_3(x,y,z);
|
||||
}
|
||||
|
|
@ -290,14 +290,14 @@ namespace CGAL {
|
|||
const FT cz = (p.c()*p.b())/sqac;
|
||||
|
||||
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 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);
|
||||
} 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 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);
|
||||
}
|
||||
}
|
||||
|
|
@ -375,25 +375,25 @@ namespace CGAL {
|
|||
const FT cy = (p.c()*p.b())/sqab;
|
||||
|
||||
if(is_negative(cx)) {
|
||||
const Root_of_2 x = make_root_of_2(s.a(),FT(i?(cx):(-cx)),delta);
|
||||
const Root_of_2 y = make_root_of_2(s.b(),FT(i?(cy):(-cy)),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):FT(-cy)),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);
|
||||
} else if(is_zero(cx)) {
|
||||
if(!is_positive(cy)) {
|
||||
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);
|
||||
return Root_for_spheres_2_3(x,y,z);
|
||||
} else {
|
||||
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);
|
||||
return Root_for_spheres_2_3(x,y,z);
|
||||
}
|
||||
} else {
|
||||
const Root_of_2 x = make_root_of_2(s.a(),FT(i?(-cx):(cx)),delta);
|
||||
const Root_of_2 y = make_root_of_2(s.b(),FT(i?(-cy):(cy)),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?FT(-cy):(cy)),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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -68,12 +68,12 @@ finite number of different \f$ \alpha\f$-shapes and corresponding
|
|||
|
||||
\cgalClassifedRefPages
|
||||
|
||||
## Concepts ##
|
||||
\cgalCRPSection{Concepts}
|
||||
- `AlphaShapeTraits_2`
|
||||
- `AlphaShapeFace_2`
|
||||
- `AlphaShapeVertex_2`
|
||||
|
||||
## Classes ##
|
||||
\cgalCRPSection{Classes}
|
||||
- `CGAL::Alpha_shape_2<Dt>`
|
||||
- `CGAL::Weighted_alpha_shape_euclidean_traits_2<K>`
|
||||
- `CGAL::Alpha_shape_vertex_base_2<AlphaShapeTraits_2>`
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
#include <CGAL/Simple_cartesian.h>
|
||||
#include <CGAL/Filtered_kernel.h>
|
||||
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
|
||||
#include <CGAL/Cartesian_converter.h>
|
||||
|
||||
#include <CGAL/Delaunay_triangulation_2.h>
|
||||
|
|
@ -16,9 +15,8 @@
|
|||
|
||||
typedef double coord_type;
|
||||
|
||||
typedef CGAL::Simple_cartesian<coord_type> SC;
|
||||
typedef CGAL::Filtered_kernel<SC> FK;
|
||||
typedef CGAL::Projection_traits_xy_3<FK> K;
|
||||
typedef CGAL::Exact_predicates_inexact_constructions_kernel Epic;
|
||||
typedef CGAL::Projection_traits_xy_3<Epic> K;
|
||||
|
||||
typedef K::Point_2 Point;
|
||||
typedef K::Segment_2 Segment;
|
||||
|
|
@ -34,10 +32,10 @@ typedef K::Segment_2 Segment;
|
|||
namespace CGAL {
|
||||
|
||||
template < class K2, class C >
|
||||
class Cartesian_converter<FK, K2, C>
|
||||
class Cartesian_converter<Epic, K2, C>
|
||||
{
|
||||
public:
|
||||
typedef CGAL::Projection_traits_xy_3<FK> Source_kernel;
|
||||
typedef CGAL::Projection_traits_xy_3<Epic> Source_kernel;
|
||||
typedef K2 Target_kernel;
|
||||
typedef C Number_type_converter;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
#include <CGAL/Simple_cartesian.h>
|
||||
#include <CGAL/Filtered_kernel.h>
|
||||
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
|
||||
#include <CGAL/algorithm.h>
|
||||
#include <cstdio>
|
||||
#include <cstring>
|
||||
|
|
@ -15,8 +14,7 @@
|
|||
|
||||
typedef double coord_type;
|
||||
|
||||
typedef CGAL::Simple_cartesian<coord_type> SC;
|
||||
typedef CGAL::Filtered_kernel<SC> K;
|
||||
typedef CGAL::Exact_predicates_inexact_constructions_kernel K;
|
||||
|
||||
typedef K::Point_2 Point;
|
||||
typedef K::Segment_2 Segment;
|
||||
|
|
|
|||
|
|
@ -5,8 +5,7 @@ corresponding to the weighted Alpha Shape.
|
|||
|
||||
************************************************************************/
|
||||
|
||||
#include <CGAL/Simple_cartesian.h>
|
||||
#include <CGAL/Filtered_kernel.h>
|
||||
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
|
||||
|
||||
#include <CGAL/Alpha_shape_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 CGAL::Simple_cartesian<coord_type> SC;
|
||||
typedef CGAL::Filtered_kernel<SC> K;
|
||||
typedef CGAL::Exact_predicates_inexact_constructions_kernel K;
|
||||
typedef K::Point_2 Point;
|
||||
typedef K::Weighted_point_2 Weighted_point;
|
||||
typedef K::Segment_2 Segment;
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ of the alpha complex where singular faces are removed.
|
|||
|
||||
\cgalClassifedRefPages
|
||||
|
||||
## Concepts ##
|
||||
\cgalCRPSection{Concepts}
|
||||
- `AlphaShapeTraits_3`
|
||||
- `WeightedAlphaShapeTraits_3`
|
||||
- `AlphaShapeCell_3`
|
||||
|
|
@ -93,7 +93,7 @@ of the alpha complex where singular faces are removed.
|
|||
- `FixedAlphaShapeCell_3`
|
||||
- `FixedAlphaShapeVertex_3`
|
||||
|
||||
## Classes ##
|
||||
\cgalCRPSection{Classes}
|
||||
- `CGAL::Alpha_status<NT>`
|
||||
- `CGAL::Alpha_shape_3<Dt,ExactAlphaComparisonTag>`
|
||||
- `CGAL::Alpha_shape_vertex_base_3<Traits,Vb>`
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ aforementioned concepts.
|
|||
|
||||
\cgalClassifedRefPages
|
||||
|
||||
## Concepts ##
|
||||
\cgalCRPSection{Concepts}
|
||||
|
||||
- `ApolloniusSite_2`
|
||||
- `ApolloniusGraphDataStructure_2`
|
||||
|
|
@ -48,7 +48,7 @@ aforementioned concepts.
|
|||
- `ApolloniusGraphTraits_2`
|
||||
- `ApolloniusGraphHierarchyVertexBase_2`
|
||||
|
||||
## Classes ##
|
||||
\cgalCRPSection{Classes}
|
||||
|
||||
- `CGAL::Apollonius_graph_2<Gt,Agds>`
|
||||
- `CGAL::Apollonius_site_2<K>`
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#include <CGAL/basic.h>
|
||||
#include <CGAL/config.h>
|
||||
|
||||
// standard includes
|
||||
#include <iostream>
|
||||
|
|
|
|||
|
|
@ -47,10 +47,6 @@ public:
|
|||
Apollonius_site_2(const Point_2& p = Point_2(),
|
||||
const Weight& w = Weight(0))
|
||||
: _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 Weight& weight() const { return _w; }
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ typedef CGAL::Filtered_exact<inexact_type,exact_type> number_t;
|
|||
#include <CGAL/Simple_cartesian.h>
|
||||
|
||||
#ifndef DONT_USE_FILTERED_EXACT
|
||||
struct Kernel : public CGAL::Simple_cartesian<number_t> {};
|
||||
typedef CGAL::Simple_cartesian<number_t> Kernel;
|
||||
#endif
|
||||
|
||||
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"
|
||||
|
||||
|
||||
struct CK : public CGAL::Simple_cartesian<inexact_type> {};
|
||||
struct EK : public CGAL::Simple_cartesian<exact_type> {};
|
||||
typedef CGAL::Simple_cartesian<inexact_type> CK;
|
||||
typedef CGAL::Simple_cartesian<exact_type> EK;
|
||||
|
||||
|
||||
int main()
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ typedef CGAL::Filtered_exact<inexact_type,exact_type> number_t;
|
|||
#include <CGAL/Simple_cartesian.h>
|
||||
|
||||
#ifndef DNOT_USE_FILTERED_EXACT
|
||||
struct Kernel : public CGAL::Simple_cartesian<number_t> {};
|
||||
typedef CGAL::Simple_cartesian<number_t> K;
|
||||
#endif
|
||||
|
||||
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"
|
||||
|
||||
|
||||
struct CK : public CGAL::Simple_cartesian<inexact_type> {};
|
||||
struct EK : public CGAL::Simple_cartesian<exact_type> {};
|
||||
typedef CGAL::Simple_cartesian<inexact_type> CK;
|
||||
typedef CGAL::Simple_cartesian<exact_type> EK;
|
||||
|
||||
|
||||
int main()
|
||||
|
|
|
|||
|
|
@ -10,11 +10,11 @@
|
|||
|
||||
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;
|
||||
|
||||
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 AG2::Point_2 Point_2;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,3 @@
|
|||
#include <CGAL/basic.h>
|
||||
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <cassert>
|
||||
|
|
@ -22,7 +20,7 @@ typedef CGAL::Filtered_exact<inexact_type,exact_type> number_t;
|
|||
#include <CGAL/Simple_cartesian.h>
|
||||
|
||||
#ifndef DONT_USE_FILTERED_EXACT
|
||||
struct Kernel : public CGAL::Simple_cartesian<number_t> {};
|
||||
typedef CGAL::Simple_cartesian<number_t> Kernel;
|
||||
#endif
|
||||
|
||||
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"
|
||||
|
||||
|
||||
struct CK : public CGAL::Simple_cartesian<double> {};
|
||||
struct EK : public CGAL::Simple_cartesian<CGAL::MP_Float> {};
|
||||
typedef CGAL::Simple_cartesian<double> CK;
|
||||
typedef CGAL::Simple_cartesian<CGAL::MP_Float> EK;
|
||||
|
||||
|
||||
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
|
||||
|
||||
## Enumerations ##
|
||||
\cgalCRPSection{Enumerations}
|
||||
|
||||
- `CGAL::Arr_parameter_space`
|
||||
- `CGAL::Arr_curve_end`
|
||||
- `CGAL::Arr_halfedge_direction`
|
||||
|
||||
## Tags ##
|
||||
\cgalCRPSection{Tags}
|
||||
|
||||
- `CGAL::Arr_oblivious_side_tag`
|
||||
- `CGAL::Arr_open_side_tag`
|
||||
|
||||
## Concepts ##
|
||||
\cgalCRPSection{Concepts}
|
||||
|
||||
- `ArrangementDcel`
|
||||
- `ArrangementDcelWithRebind`
|
||||
|
|
@ -119,13 +119,13 @@ implemented as peripheral classes or as free (global) functions.
|
|||
- `ArrangementPointLocation_2`
|
||||
- `ArrangementVerticalRayShoot_2`
|
||||
|
||||
## Geometric Object Concepts ##
|
||||
\cgalCRPSection{Geometric Object Concepts}
|
||||
|
||||
- `ArrTraits::Point_2`
|
||||
- `ArrTraits::XMonotoneCurve_2`
|
||||
- `ArrTraits::Curve_2`
|
||||
|
||||
## Function Object Concepts ##
|
||||
\cgalCRPSection{Function Object Concepts}
|
||||
|
||||
- `ArrTraits::CompareX_2`
|
||||
- `ArrTraits::CompareXy_2`
|
||||
|
|
@ -149,7 +149,7 @@ implemented as peripheral classes or as free (global) functions.
|
|||
- `ArrTraits::Approximate_2`
|
||||
- `ArrTraits::ConstructXMonotoneCurve_2`
|
||||
|
||||
## Classes ##
|
||||
\cgalCRPSection{Classes}
|
||||
|
||||
- `CGAL::Arrangement_2<Traits,Dcel>`
|
||||
- `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_point_location_result<Arrangement>`
|
||||
|
||||
## Macros ##
|
||||
\cgalCRPSection{Macros}
|
||||
- \link CGAL_ARR_POINT_LOCATION_VERSION `CGAL_ARR_POINT_LOCATION_VERSION` \endlink
|
||||
|
||||
## Functions ##
|
||||
\cgalCRPSection{Functions}
|
||||
|
||||
- `CGAL::is_valid()`
|
||||
- `CGAL::insert()`
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
//! \file examples/Arrangement_on_surface_2/Bezier_curves.cpp
|
||||
// Constructing an arrangement of Bezier curves.
|
||||
|
||||
#include <CGAL/basic.h>
|
||||
#include <CGAL/config.h>
|
||||
|
||||
#ifndef CGAL_USE_CORE
|
||||
#include <iostream>
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#include <CGAL/basic.h>
|
||||
#include <CGAL/config.h>
|
||||
#include <iostream>
|
||||
|
||||
#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
|
||||
// Handling intersection points with multiplicity between conic arcs.
|
||||
|
||||
#include <CGAL/basic.h>
|
||||
#include <CGAL/config.h>
|
||||
|
||||
#ifndef CGAL_USE_CORE
|
||||
#include <iostream>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
//! \file examples/Arrangement_on_surface_2/conics.cpp
|
||||
// Constructing an arrangement of various conic arcs.
|
||||
#include <CGAL/basic.h>
|
||||
#include <CGAL/config.h>
|
||||
|
||||
#ifndef CGAL_USE_CORE
|
||||
#include <iostream>
|
||||
|
|
|
|||
|
|
@ -1,8 +1,6 @@
|
|||
//! \file examples/Arrangement_on_surface_2/edge_manipulation.cpp
|
||||
// Using the edge-manipulation functions.
|
||||
|
||||
#include <CGAL/basic.h>
|
||||
|
||||
#include <CGAL/Exact_predicates_exact_constructions_kernel.h>
|
||||
#include <CGAL/Arr_segment_traits_2.h>
|
||||
#include <CGAL/Arrangement_2.h>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// Constructing a arrangement of Bezier polycurves.
|
||||
|
||||
#include <CGAL/basic.h>
|
||||
#include <CGAL/config.h>
|
||||
|
||||
#ifndef CGAL_USE_CORE
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// Constructing an arrangement of polycurves.
|
||||
|
||||
#include <CGAL/basic.h>
|
||||
#include <CGAL/config.h>
|
||||
|
||||
#ifndef CGAL_USE_CORE
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// Testing the do_equal function
|
||||
|
||||
#include <CGAL/basic.h>
|
||||
#include <CGAL/config.h>
|
||||
|
||||
#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.
|
||||
|
||||
#include <CGAL/basic.h>
|
||||
#include <CGAL/config.h>
|
||||
|
||||
#ifndef CGAL_USE_CORE
|
||||
#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.
|
||||
|
||||
#include <CGAL/basic.h>
|
||||
#include <CGAL/config.h>
|
||||
|
||||
#ifndef CGAL_USE_CORE
|
||||
#include <iostream>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
//! \file examples/Arrangement_2/unbounded_rational_functions.cpp
|
||||
// Constructing an arrangement of unbounded portions of rational functions.
|
||||
|
||||
#include <CGAL/basic.h>
|
||||
#include <CGAL/config.h>
|
||||
|
||||
#ifndef CGAL_USE_CORE
|
||||
#include <iostream>
|
||||
|
|
|
|||
|
|
@ -2881,12 +2881,14 @@ public:
|
|||
/*! Copy constructor
|
||||
* \param other the other arc
|
||||
*/
|
||||
#ifdef DOXYGEN_RUNNING
|
||||
Arr_geodesic_arc_on_sphere_3
|
||||
(const Arr_geodesic_arc_on_sphere_3& other) : Base(other)
|
||||
{
|
||||
m_is_x_monotone = other.m_is_x_monotone;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/*! Constructor
|
||||
* \param src the source point of the arc
|
||||
* \param trg the target point of the arc
|
||||
|
|
|
|||
|
|
@ -109,6 +109,10 @@ public:
|
|||
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.
|
||||
This constructor of a point can also be used with rational coefficients
|
||||
thanks to convertor of CoordNT. */
|
||||
|
|
|
|||
|
|
@ -89,6 +89,15 @@ public:
|
|||
_rational_function(rational_function),
|
||||
_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
|
||||
Algebraic_point_2_rep& operator=(const Algebraic_point_2_rep& other)
|
||||
{
|
||||
|
|
@ -374,10 +383,6 @@ public:
|
|||
Algebraic_point_2() :
|
||||
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,
|
||||
const Cache& cache) const
|
||||
{
|
||||
|
|
|
|||
|
|
@ -232,6 +232,10 @@ public:
|
|||
Rational_function (const Self & 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 epsilon = CGAL::ZERO) const
|
||||
{
|
||||
|
|
|
|||
|
|
@ -382,10 +382,11 @@ public:
|
|||
/*!\brief
|
||||
* copy constructor
|
||||
*/
|
||||
#ifdef DOXYGEN_RUNNING
|
||||
Arc_2(const Self& a) :
|
||||
Base(static_cast<const Base&>(a)) {
|
||||
}
|
||||
|
||||
#endif
|
||||
//!@}
|
||||
|
||||
public:
|
||||
|
|
|
|||
|
|
@ -150,10 +150,12 @@ public:
|
|||
/*!\brief
|
||||
* copy constructor
|
||||
*/
|
||||
#ifdef DOXYGEN_RUNNING
|
||||
Generic_arc_2(const Self& p) :
|
||||
Base(static_cast<const Base&>(p)) {
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/*!\brief
|
||||
* constructs an arc from a given represenation
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -131,10 +131,11 @@ public:
|
|||
/*!\brief
|
||||
* copy constructor
|
||||
*/
|
||||
#ifdef DOXYGEN_RUNNING
|
||||
Generic_point_2(const Self& p) :
|
||||
Base(static_cast<const Base&>(p)) {
|
||||
}
|
||||
|
||||
#endif
|
||||
/*!\brief
|
||||
* constructs an arc from a given represenation
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -146,9 +146,11 @@ public:
|
|||
/*!\brief
|
||||
* copy constructor
|
||||
*/
|
||||
#ifdef DOXYGEN_RUNNING
|
||||
Non_x_monotone_arc_2(const Self& a) :
|
||||
Base(static_cast<const Base&>(a)) {
|
||||
}
|
||||
#endif
|
||||
|
||||
/*! \brief
|
||||
* constructs an arc from one x-monotone piece
|
||||
|
|
|
|||
|
|
@ -256,10 +256,11 @@ public:
|
|||
/*!\brief
|
||||
* copy constructor
|
||||
*/
|
||||
#ifdef DOXYGEN_RUNNING
|
||||
Point_2(const Self& p) :
|
||||
Base(static_cast<const Base&>(p)) {
|
||||
}
|
||||
|
||||
#endif
|
||||
//!@}
|
||||
|
||||
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_dual_graph.h
|
||||
|
||||
|
||||
EXAMPLE_PATH = ${CGAL_Surface_mesh_skeletonization_EXAMPLE_DIR} \
|
||||
${CGAL_Surface_mesh_segmentation_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
|
||||
\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
|
||||
is a parameter used in `partition_graph()` and `partition_dual_graph()`
|
||||
to pass options to the METIS graph partitioner. The many options of METIS
|
||||
|
|
|
|||
|
|
@ -558,7 +558,7 @@ Methods to read and write graphs.
|
|||
|
||||
\cgalClassifedRefPages
|
||||
|
||||
## Concepts ##
|
||||
\cgalCRPSection{Concepts}
|
||||
- `VertexListGraph`
|
||||
- `EdgeListGraph`
|
||||
- `HalfedgeGraph`
|
||||
|
|
@ -568,14 +568,14 @@ Methods to read and write graphs.
|
|||
- `FaceListGraph`
|
||||
- `MutableFaceGraph`
|
||||
|
||||
## Properties ##
|
||||
\cgalCRPSection{Properties}
|
||||
- `boost::vertex_index_t`
|
||||
- `boost::halfedge_index_t`
|
||||
- `boost::edge_index_t`
|
||||
- `boost::face_index_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
|
||||
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 BGLOMTMAK `boost::graph_traits<OpenMesh::TriMesh_ArrayKernelT<K> >` \endlink
|
||||
|
||||
## Helper Classes ##
|
||||
\cgalCRPSection{Helper Classes}
|
||||
- `CGAL::Triangulation_vertex_base_with_id_2`
|
||||
- `CGAL::Arr_vertex_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_for_bgl_combinatorial_map_helper`
|
||||
|
||||
## Helper Functions ##
|
||||
\cgalCRPSection{Helper Functions}
|
||||
- `CGAL::is_border()`
|
||||
- `CGAL::is_border_edge()`
|
||||
- `CGAL::is_bivalent()`
|
||||
|
|
@ -636,7 +636,7 @@ user might encounter.
|
|||
- `CGAL::clear()`
|
||||
- `CGAL::copy_face_graph()`
|
||||
|
||||
## Iterators ##
|
||||
\cgalCRPSection{Iterators}
|
||||
- `CGAL::Halfedge_around_source_iterator`
|
||||
- `CGAL::Halfedge_around_target_iterator`
|
||||
- `CGAL::Halfedge_around_face_iterator`
|
||||
|
|
@ -652,7 +652,7 @@ user might encounter.
|
|||
- `CGAL::vertices_around_face()`
|
||||
- `CGAL::vertices_around_target()`
|
||||
|
||||
## Circulators ##
|
||||
\cgalCRPSection{Circulators}
|
||||
- `CGAL::Halfedge_around_source_circulator`
|
||||
- `CGAL::Halfedge_around_target_circulator`
|
||||
- `CGAL::Halfedge_around_face_circulator`
|
||||
|
|
@ -660,7 +660,7 @@ user might encounter.
|
|||
- `CGAL::Face_around_target_circulator`
|
||||
- `CGAL::Face_around_face_circulator`
|
||||
|
||||
## Euler Operations ##
|
||||
\cgalCRPSection{Euler Operations}
|
||||
- `CGAL::Euler::add_center_vertex()`
|
||||
- `CGAL::Euler::add_edge()`
|
||||
- `CGAL::Euler::add_face()`
|
||||
|
|
@ -681,7 +681,7 @@ user might encounter.
|
|||
- `CGAL::Euler::split_loop()`
|
||||
- `CGAL::Euler::split_vertex()`
|
||||
|
||||
## Selection ##
|
||||
\cgalCRPSection{Selection}
|
||||
- `CGAL::expand_face_selection()`
|
||||
- `CGAL::reduce_face_selection()`
|
||||
- `CGAL::expand_edge_selection()`
|
||||
|
|
@ -691,24 +691,25 @@ user might encounter.
|
|||
- `CGAL::select_incident_faces()`
|
||||
- `CGAL::expand_face_selection_for_removal()`
|
||||
|
||||
## Conversion Functions ##
|
||||
\cgalCRPSection{Conversion Functions}
|
||||
- `CGAL::split_graph_into_polylines()`
|
||||
|
||||
## Graph Adaptors ##
|
||||
\cgalCRPSection{Graph Adaptors}
|
||||
- `CGAL::Dual`
|
||||
- `CGAL::Face_filtered_graph`
|
||||
- `CGAL::Graph_with_descriptor_with_graph`
|
||||
- `CGAL::Graph_with_descriptor_with_graph_property_map`
|
||||
- `CGAL::Seam_mesh`
|
||||
|
||||
## Partitioning Methods ##
|
||||
\cgalCRPSection{Partitioning Methods}
|
||||
- `CGAL::METIS::partition_graph()`
|
||||
- `CGAL::METIS::partition_dual_graph()`
|
||||
|
||||
## I/O Functions ##
|
||||
\cgalCRPSection{I/O Functions}
|
||||
- \link PkgBGLIOFct CGAL::read_off() \endlink
|
||||
- \link PkgBGLIOFct CGAL::write_off() \endlink
|
||||
- \link PkgBGLIOFct CGAL::write_wrl() \endlink
|
||||
- `CGAL::write_vtp()`
|
||||
|
||||
*/
|
||||
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
#include <CGAL/Simple_cartesian.h>
|
||||
#include <CGAL/boost/graph/graph_traits_Linear_cell_complex_for_combinatorial_map.h>
|
||||
#include <CGAL/boost/graph/iterator.h>
|
||||
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
|
||||
|
||||
typedef CGAL::Simple_cartesian<double> Kernel;
|
||||
typedef CGAL::Linear_cell_complex_traits<3, Kernel> LCC_traits;
|
||||
|
||||
|
|
|
|||
|
|
@ -3,14 +3,12 @@
|
|||
#include <boost/graph/graph_traits.hpp>
|
||||
#include <CGAL/property_map.h>
|
||||
|
||||
#include <CGAL/basic.h>
|
||||
#include <CGAL/Kernel/global_functions.h>
|
||||
#include <CGAL/Cartesian.h>
|
||||
#include <CGAL/Simple_cartesian.h>
|
||||
#include <CGAL/boost/graph/graph_traits_Linear_cell_complex_for_combinatorial_map.h>
|
||||
|
||||
typedef CGAL::Cartesian<double> Kernel;
|
||||
typedef Kernel::Point_3 Point;
|
||||
typedef Kernel::Vector_3 Vector;
|
||||
typedef CGAL::Simple_cartesian<double> Kernel;
|
||||
typedef Kernel::Point_3 Point;
|
||||
typedef Kernel::Vector_3 Vector;
|
||||
|
||||
typedef CGAL::Linear_cell_complex_traits<3, Kernel> LCC_traits;
|
||||
typedef CGAL::Linear_cell_complex_for_bgl_combinatorial_map_helper
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
#include <CGAL/Simple_cartesian.h>
|
||||
#include <CGAL/Iterator_range.h>
|
||||
#include <CGAL/boost/graph/graph_traits_Linear_cell_complex_for_combinatorial_map.h>
|
||||
|
||||
#include <boost/foreach.hpp>
|
||||
|
||||
#include <iostream>
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
#include <CGAL/Simple_cartesian.h>
|
||||
#include <CGAL/boost/graph/graph_traits_Linear_cell_complex_for_combinatorial_map.h>
|
||||
#include <CGAL/boost/graph/iterator.h>
|
||||
#include <fstream>
|
||||
|
||||
#include <CGAL/boost/iterator/transform_iterator.hpp>
|
||||
|
||||
#include <algorithm>
|
||||
#include <fstream>
|
||||
|
||||
typedef CGAL::Simple_cartesian<double> Kernel;
|
||||
typedef CGAL::Linear_cell_complex_traits<3, Kernel> LCC_traits;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
|
||||
|
||||
#include <OpenMesh/Core/IO/MeshIO.hh>
|
||||
|
|
@ -9,7 +8,6 @@
|
|||
#include <CGAL/boost/graph/Euler_operations.h>
|
||||
|
||||
#include <CGAL/mesh_segmentation.h>
|
||||
|
||||
#include <CGAL/property_map.h>
|
||||
|
||||
#include <iostream>
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@
|
|||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <iterator>
|
||||
|
||||
#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;
|
||||
|
||||
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
|
||||
Polyhedron P;
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
#include <CGAL/Simple_cartesian.h>
|
||||
#include <CGAL/Polyhedron_3.h>
|
||||
#include <CGAL/boost/graph/iterator.h>
|
||||
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
|
||||
|
||||
typedef CGAL::Simple_cartesian<double> Kernel;
|
||||
typedef CGAL::Polyhedron_3<Kernel> Polyhedron;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,17 +1,13 @@
|
|||
#include <fstream>
|
||||
|
||||
#include <boost/graph/graph_traits.hpp>
|
||||
#include <CGAL/property_map.h>
|
||||
|
||||
#include <CGAL/basic.h>
|
||||
#include <CGAL/Kernel/global_functions.h>
|
||||
|
||||
// Polyhedron
|
||||
#include <CGAL/Cartesian.h>
|
||||
#include <CGAL/Simple_cartesian.h>
|
||||
#include <CGAL/Polyhedron_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::Vector_3 Vector;
|
||||
typedef CGAL::Polyhedron_3<Kernel, CGAL::Polyhedron_items_with_id_3> Polyhedron;
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
#include <CGAL/Simple_cartesian.h>
|
||||
#include <CGAL/Polyhedron_3.h>
|
||||
#include <CGAL/Iterator_range.h>
|
||||
#include <boost/foreach.hpp>
|
||||
|
||||
#include <boost/foreach.hpp>
|
||||
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
#include <CGAL/Simple_cartesian.h>
|
||||
#include <CGAL/Surface_mesh.h>
|
||||
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
#include <CGAL/boost/graph/Graph_with_descriptor_with_graph.h>
|
||||
#include <CGAL/boost/graph/helpers.h>
|
||||
#include <CGAL/boost/graph/Euler_operations.h>
|
||||
|
||||
#include <fstream>
|
||||
|
||||
typedef CGAL::Simple_cartesian<double> K;
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
#include <CGAL/Surface_mesh.h>
|
||||
#include <CGAL/boost/graph/Dual.h>
|
||||
#include <CGAL/boost/graph/helpers.h>
|
||||
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,5 @@
|
|||
#include <CGAL/Simple_cartesian.h>
|
||||
|
||||
#include <CGAL/Surface_mesh.h>
|
||||
|
||||
#include <CGAL/boost/graph/Face_filtered_graph.h>
|
||||
#include <CGAL/boost/graph/partition.h>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
#include <CGAL/Simple_cartesian.h>
|
||||
#include <CGAL/Surface_mesh.h>
|
||||
#include <CGAL/boost/graph/io.h>
|
||||
|
||||
#include <iostream>
|
||||
#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
|
||||
\ref BGL_surface_mesh/surface_mesh_dual.cpp
|
||||
|
||||
Property forwarding
|
||||
-------------------
|
||||
\cgalHeading{Property Forwarding}
|
||||
\cgalAdvancedBegin
|
||||
Edge properties of the underlying graph are forwarded directly. For
|
||||
faces and vertices only the `face_index` and `vertex_index` properties
|
||||
|
|
|
|||
|
|
@ -1329,38 +1329,37 @@ 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.
|
||||
*/
|
||||
template<typename Graph>
|
||||
template<typename Graph>
|
||||
bool
|
||||
does_satisfy_link_condition(typename boost::graph_traits<Graph>::edge_descriptor e,
|
||||
Graph& g)
|
||||
does_satisfy_link_condition(typename boost::graph_traits<Graph>::edge_descriptor e,
|
||||
Graph& g)
|
||||
{
|
||||
typedef typename boost::graph_traits<Graph>::vertex_descriptor vertex_descriptor;
|
||||
typedef typename boost::graph_traits<Graph>::halfedge_descriptor halfedge_descriptor;
|
||||
typedef CGAL::Halfedge_around_source_iterator<Graph> out_edge_iterator;
|
||||
typedef typename boost::graph_traits<Graph>::vertex_descriptor vertex_descriptor;
|
||||
typedef typename boost::graph_traits<Graph>::halfedge_descriptor halfedge_descriptor;
|
||||
typedef CGAL::Halfedge_around_source_iterator<Graph> out_edge_iterator;
|
||||
|
||||
halfedge_descriptor v0_v1 = halfedge(e,g);
|
||||
halfedge_descriptor v1_v0 = opposite(v0_v1,g);
|
||||
|
||||
vertex_descriptor v0 = target(v1_v0,g), v1 = target(v0_v1,g);
|
||||
halfedge_descriptor v0_v1 = halfedge(e,g);
|
||||
halfedge_descriptor v1_v0 = opposite(v0_v1,g);
|
||||
|
||||
vertex_descriptor vL = target(next(v0_v1,g),g);
|
||||
vertex_descriptor vR = target(next(v1_v0,g),g);
|
||||
vertex_descriptor v0 = target(v1_v0,g), v1 = target(v0_v1,g);
|
||||
|
||||
out_edge_iterator eb1, ee1 ;
|
||||
out_edge_iterator eb2, ee2 ;
|
||||
vertex_descriptor vL = target(next(v0_v1,g),g);
|
||||
vertex_descriptor vR = target(next(v1_v0,g),g);
|
||||
|
||||
out_edge_iterator eb1, ee1 ;
|
||||
out_edge_iterator eb2, ee2 ;
|
||||
|
||||
// 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.
|
||||
//
|
||||
//
|
||||
for ( boost::tie(eb1,ee1) = halfedges_around_source(v0,g) ; eb1 != ee1 ; ++ eb1 )
|
||||
{
|
||||
halfedge_descriptor v0_k = *eb1;
|
||||
|
||||
|
||||
if ( v0_k != v0_v1 )
|
||||
{
|
||||
vertex_descriptor k = target(v0_k,g);
|
||||
|
||||
|
||||
for ( boost::tie(eb2,ee2) = halfedges_around_source(k,g) ; eb2 != ee2 ; ++ eb2 )
|
||||
{
|
||||
halfedge_descriptor k_v1 = *eb2;
|
||||
|
|
@ -1377,66 +1376,53 @@ bool
|
|||
// If k is either t or b then p-q-k *might* be a face of the mesh. It won't be if k==t but p->q is border
|
||||
// or k==b but q->b is a border (because in that case even though there exists triangles p->q->t (or q->p->b)
|
||||
// they are holes, not faces)
|
||||
//
|
||||
|
||||
//
|
||||
|
||||
bool lIsFace = ( vL == k && (! is_border(v0_v1,g)) )
|
||||
|| ( vR == k && (! is_border(v1_v0,g)) ) ;
|
||||
|
||||
|
||||
|
||||
if ( !lIsFace )
|
||||
{
|
||||
// CGAL_ECMS_TRACE(3," k=V" << get(Vertex_index_map,k) << " IS NOT in a face with p-q. NON-COLLAPSABLE edge." ) ;
|
||||
return false ;
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
{
|
||||
//CGAL_ECMS_TRACE(4," k=V" << get(Vertex_index_map,k) << " is in a face with p-q") ;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if ( is_border(v0_v1,g) )
|
||||
{
|
||||
if ( next(next(next(v0_v1,g),g),g) == v0_v1 )
|
||||
{
|
||||
//CGAL_ECMS_TRACE(3," p-q belongs to an open triangle. NON-COLLAPSABLE edge." ) ;
|
||||
return false ;
|
||||
}
|
||||
}
|
||||
else if ( is_border(v1_v0,g) )
|
||||
}
|
||||
|
||||
// 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) && !is_border(v1_v0,g) )
|
||||
{
|
||||
if ( is_border(v0,g) && is_border(v1,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 ;
|
||||
}
|
||||
//CGAL_ECMS_TRACE(3," both p and q are boundary vertices but p-q is not. NON-COLLAPSABLE edge." ) ;
|
||||
return false ;
|
||||
}
|
||||
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 ;
|
||||
}
|
||||
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," 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 ;
|
||||
}
|
||||
//CGAL_ECMS_TRACE(3," degenerate volume." ) ;
|
||||
return false ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true ;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -650,6 +650,17 @@ degree(typename boost::graph_traits<Face_filtered_graph<Graph, FIMap, VIMap, HIM
|
|||
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,
|
||||
typename FIMap,
|
||||
typename VIMap,
|
||||
|
|
@ -944,8 +955,7 @@ template<typename Graph,
|
|||
typename FIMap,
|
||||
typename VIMap,
|
||||
typename HIMap>
|
||||
std::pair<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>
|
||||
Iterator_range<typename boost::graph_traits<Face_filtered_graph<Graph, FIMap, VIMap, HIMap> >::halfedge_iterator>
|
||||
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;
|
||||
|
|
|
|||
|
|
@ -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`.
|
||||
It is mainly used for debugging purposes.
|
||||
|
||||
Property forwarding
|
||||
-------------------
|
||||
\cgalHeading{Property Forwarding}
|
||||
All internal properties of the underlying graph are forwarded.
|
||||
|
||||
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