[Git][debian-gis-team/sfcgal][master] 7 commits: New upstream version 1.3.9

Bas Couwenberg gitlab at salsa.debian.org
Thu Oct 1 16:23:51 BST 2020



Bas Couwenberg pushed to branch master at Debian GIS Project / sfcgal


Commits:
a67dbdc1 by Bas Couwenberg at 2020-10-01T15:46:03+02:00
New upstream version 1.3.9
- - - - -
25790f83 by Bas Couwenberg at 2020-10-01T15:46:05+02:00
Update upstream source from tag 'upstream/1.3.9'

Update to upstream version '1.3.9'
with Debian dir a4f1433750bb46caba0e8728b641f22c11ea718c
- - - - -
ec47171a by Bas Couwenberg at 2020-10-01T15:46:45+02:00
New upstream release.

- - - - -
06b8c714 by Bas Couwenberg at 2020-10-01T15:47:19+02:00
Drop CGAL 5.1 patch, included upstream.

- - - - -
b1028eca by Bas Couwenberg at 2020-10-01T15:49:25+02:00
Don't ignore test failures everywhere, unit-test failure should be fixed.

Revert "Ignore test failures everywhere until unit-test failure is fixed. https://gitlab.com/Oslandia/SFCGAL/-/issues/231"

This reverts commit 0383b3525b2d0f3ed354bf544fc115ef1d994c63.

- - - - -
c98f724b by Bas Couwenberg at 2020-10-01T16:57:43+02:00
Update symbols for amd64.

- - - - -
15847d89 by Bas Couwenberg at 2020-10-01T16:57:43+02:00
Set distribution to experimental.

- - - - -


11 changed files:

- + .gitlab-ci.yml
- − .travis.yml
- CGAL_patches/CGAL/intersection_of_Polyhedra_3.h
- + ci/centos/before_install.sh
- travis/linux/before_install.sh → ci/debian/before_install.sh
- debian/changelog
- debian/libsfcgal1.symbols
- − debian/patches/0001-accomodate-removal-in-CGAL-5.1.patch
- debian/patches/series
- debian/rules
- test/unit/SFCGAL/algorithm/StraightSkeletonTest.cpp


Changes:

=====================================
.gitlab-ci.yml
=====================================
@@ -0,0 +1,73 @@
+debian_testing_gcc:
+  image: debian:testing
+
+  script:
+    - apt-get update -qq
+    - apt-get install --yes sudo wget build-essential
+    - ./ci/debian/before_install.sh 5.0.2
+    - cd $CI_PROJECT_DIR
+    - CGAL_DIR=$CI_PROJECT_DIR/CGAL cmake -DSFCGAL_BUILD_TESTS=ON -DCMAKE_C_COMPILER=/usr/bin/gcc -DCMAKE_CXX_COMPILER=/usr/bin/g++
+    - make
+    - ctest -VV
+
+debian_buster_gcc:
+  image: debian:buster
+
+  script:
+    - apt-get update -qq
+    - apt-get install --yes sudo wget build-essential
+    - ./ci/debian/before_install.sh 5.0.2
+    - cd $CI_PROJECT_DIR
+    - CGAL_DIR=$CI_PROJECT_DIR/CGAL cmake -DSFCGAL_BUILD_TESTS=ON -DCMAKE_C_COMPILER=/usr/bin/gcc -DCMAKE_CXX_COMPILER=/usr/bin/g++
+    - make
+    - ctest -VV
+
+debian_testing_clang:
+  image: debian:testing
+
+  script:
+    - apt-get update -qq
+    - apt-get install --yes sudo wget clang
+    - ./ci/debian/before_install.sh 5.0.2
+    - cd $CI_PROJECT_DIR
+    - CGAL_DIR=$CI_PROJECT_DIR/CGAL cmake -DSFCGAL_BUILD_TESTS=ON -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++
+    - make
+    - ctest -VV
+
+debian_buster_clang:
+  image: debian:buster
+
+  script:
+    - apt-get update -qq
+    - apt-get install --yes sudo wget clang
+    - ./ci/debian/before_install.sh 5.0.2
+    - cd $CI_PROJECT_DIR
+    - CGAL_DIR=$CI_PROJECT_DIR/CGAL cmake -DSFCGAL_BUILD_TESTS=ON -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++
+    - make
+    - ctest -VV
+
+centos8_clang:
+  image: centos:centos8
+  
+  script:
+    - yum update -qy
+    - yum install -y sudo wget clang
+    - ./ci/centos/before_install.sh 5.0.2
+    - cd $CI_PROJECT_DIR
+    - ls
+    - find / -name "*CGAL*"
+    - cmake -DSFCGAL_BUILD_TESTS=ON -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DCGAL_DIR=$CI_PROJECT_DIR/CGAL-5.0.2
+    - make
+    - ctest -VV
+
+centos8_gcc:
+  image: centos:centos8
+  
+  script:
+    - yum update -qy
+    - yum install -y sudo wget gcc-c++
+    - ./ci/centos/before_install.sh 5.0.2
+    - cd $CI_PROJECT_DIR
+    - cmake -DSFCGAL_BUILD_TESTS=ON -DCMAKE_C_COMPILER=/usr/bin/gcc -DCMAKE_CXX_COMPILER=/usr/bin/g++ -DCGAL_DIR=$CI_PROJECT_DIR/CGAL-5.0.2
+    - make
+    - ctest -VV


=====================================
.travis.yml deleted
=====================================
@@ -1,24 +0,0 @@
-language: cpp 
-dist: xenial 
-sudo: required 
-
-# os:
-#  - linux
-#  - osx
-
-compiler:
-  # - gcc
-  - clang
-
-env:
-  - CGAL_VERSION=5.0.2
-
-before_install:
-  - ./travis/${TRAVIS_OS_NAME}/before_install.sh $CGAL_VERSION
-
-before_script:
-  - CGAL_DIR=/usr/local/lib/CGAL cmake -DSFCGAL_BUILD_TESTS=ON
-
-script:
-  - make
-  - ctest -VV


=====================================
CGAL_patches/CGAL/intersection_of_Polyhedra_3.h
=====================================
@@ -94,6 +94,169 @@ namespace CGAL{
 //
 // -- Sebastien Loriot, 2010/04/07
 
+// hardcopy of the class from CGAL 5.0 that is no longer present in 5.1
+namespace SFCGAL{
+
+template <class TM,//TriangleMesh
+          class Kernel,
+          class Box,
+          class OutputIterator,
+          class VertexPointMap>
+struct Intersect_facets
+{
+  // wrapper to check whether anything is inserted to output iterator
+  struct Output_iterator_with_bool
+  {
+    Output_iterator_with_bool(OutputIterator* out, bool* intersected)
+      : m_iterator(out), m_intersected(intersected) { }
+
+    template<class T>
+    void operator()(const T& t) {
+      *m_intersected = true;
+      *(*m_iterator)++ = t;
+    }
+
+    OutputIterator* m_iterator;
+    bool* m_intersected;
+  };
+// typedefs
+  typedef typename Kernel::Segment_3    Segment;
+  typedef typename Kernel::Triangle_3   Triangle;
+  typedef typename boost::graph_traits<TM>::halfedge_descriptor halfedge_descriptor;
+  typedef typename boost::property_map<TM, boost::vertex_point_t>::const_type Ppmap;
+
+// members
+  const TM& m_tmesh;
+  const VertexPointMap m_vpmap;
+  mutable OutputIterator  m_iterator;
+  mutable bool            m_intersected;
+  mutable boost::function_output_iterator<Output_iterator_with_bool> m_iterator_wrapper;
+
+  typename Kernel::Construct_segment_3  segment_functor;
+  typename Kernel::Construct_triangle_3 triangle_functor;
+  typename Kernel::Do_intersect_3       do_intersect_3_functor;
+
+
+  Intersect_facets(const TM& tmesh, OutputIterator it, VertexPointMap vpmap, const Kernel& kernel)
+    :
+    m_tmesh(tmesh),
+    m_vpmap(vpmap),
+    m_iterator(it),
+    m_intersected(false),
+    m_iterator_wrapper(Output_iterator_with_bool(&m_iterator, &m_intersected)),
+    segment_functor(kernel.construct_segment_3_object()),
+    triangle_functor(kernel.construct_triangle_3_object()),
+    do_intersect_3_functor(kernel.do_intersect_3_object())
+  { }
+
+  void operator()(const Box* b, const Box* c) const
+  {
+    halfedge_descriptor h = halfedge(b->info(), m_tmesh);
+    halfedge_descriptor opp_h;
+
+    // check for shared egde
+    for(unsigned int i=0; i<3; ++i){
+      opp_h = opposite(h, m_tmesh);
+      if(face(opp_h, m_tmesh) == c->info()){
+        // there is an intersection if the four points are coplanar and
+        // the triangles overlap
+        if(CGAL::coplanar(get(m_vpmap, target(h, m_tmesh)),
+                          get(m_vpmap, target(next(h, m_tmesh), m_tmesh)),
+                          get(m_vpmap, source(h, m_tmesh)),
+                          get(m_vpmap, target(next(opp_h, m_tmesh), m_tmesh))) &&
+           CGAL::coplanar_orientation(get(m_vpmap, source(h, m_tmesh)),
+                                      get(m_vpmap, target(h, m_tmesh)),
+                                      get(m_vpmap, target(next(h, m_tmesh), m_tmesh)),
+                                      get(m_vpmap, target(next(opp_h, m_tmesh), m_tmesh)))
+             == CGAL::POSITIVE){
+          *m_iterator_wrapper++ = std::make_pair(b->info(), c->info());
+          return;
+        } else { // there is a shared edge but no intersection
+          return;
+        }
+      }
+      h = next(h, m_tmesh);
+    }
+
+    // check for shared vertex --> maybe intersection, maybe not
+    halfedge_descriptor g = halfedge(c->info(),m_tmesh);
+    halfedge_descriptor v;
+
+    if(target(h,m_tmesh) == target(g,m_tmesh))
+      v = g;
+    if(target(h,m_tmesh) == target(next(g,m_tmesh),m_tmesh))
+      v = next(g,m_tmesh);
+    if(target(h,m_tmesh) == target(next(next(g,m_tmesh),m_tmesh),m_tmesh))
+      v = next(next(g,m_tmesh),m_tmesh);
+
+    if(v == halfedge_descriptor()){
+      h = next(h,m_tmesh);
+      if(target(h,m_tmesh) == target(g,m_tmesh))
+        v = g;
+      if(target(h,m_tmesh) == target(next(g,m_tmesh),m_tmesh))
+        v = next(g,m_tmesh);
+      if(target(h,m_tmesh) == target(next(next(g,m_tmesh),m_tmesh),m_tmesh))
+        v = next(next(g,m_tmesh),m_tmesh);
+      if(v == halfedge_descriptor()){
+        h = next(h,m_tmesh);
+        if(target(h,m_tmesh) == target(g,m_tmesh))
+          v = g;
+        if(target(h,m_tmesh) == target(next(g,m_tmesh),m_tmesh))
+          v = next(g,m_tmesh);
+        if(target(h,m_tmesh) == target(next(next(g,m_tmesh),m_tmesh),m_tmesh))
+          v = next(next(g,m_tmesh),m_tmesh);
+      }
+    }
+
+    if(v != halfedge_descriptor()){
+      // found shared vertex:
+      CGAL_assertion(target(h,m_tmesh) == target(v,m_tmesh));
+      // geometric check if the opposite segments intersect the triangles
+      Triangle t1 = triangle_functor( get(m_vpmap,target(h,m_tmesh)),
+                                      get(m_vpmap, target(next(h,m_tmesh),m_tmesh)),
+                                      get(m_vpmap, target(next(next(h,m_tmesh),m_tmesh),m_tmesh)));
+      Triangle t2 = triangle_functor( get(m_vpmap, target(v,m_tmesh)),
+                                      get(m_vpmap, target(next(v,m_tmesh),m_tmesh)),
+                                      get(m_vpmap, target(next(next(v,m_tmesh),m_tmesh),m_tmesh)));
+
+      Segment s1 = segment_functor( get(m_vpmap, target(next(h,m_tmesh),m_tmesh)),
+                                    get(m_vpmap, target(next(next(h,m_tmesh),m_tmesh),m_tmesh)));
+      Segment s2 = segment_functor( get(m_vpmap, target(next(v,m_tmesh),m_tmesh)),
+                                    get(m_vpmap, target(next(next(v,m_tmesh),m_tmesh),m_tmesh)));
+
+      if(do_intersect_3_functor(t1,s2)){
+        *m_iterator_wrapper++ = std::make_pair(b->info(), c->info());
+      } else if(do_intersect_3_functor(t2,s1)){
+        *m_iterator_wrapper++ = std::make_pair(b->info(), c->info());
+      }
+      return;
+    }
+
+    // check for geometric intersection
+    Triangle t1 = triangle_functor( get(m_vpmap, target(h,m_tmesh)),
+                                    get(m_vpmap, target(next(h,m_tmesh),m_tmesh)),
+                                    get(m_vpmap, target(next(next(h,m_tmesh),m_tmesh),m_tmesh)));
+    Triangle t2 = triangle_functor( get(m_vpmap, target(g,m_tmesh)),
+                                    get(m_vpmap, target(next(g,m_tmesh),m_tmesh)),
+                                    get(m_vpmap, target(next(next(g,m_tmesh),m_tmesh),m_tmesh)));
+    if(do_intersect_3_functor(t1, t2)){
+      *m_iterator_wrapper++ = std::make_pair(b->info(), c->info());
+    }
+  } // end operator ()
+}; // end struct Intersect_facets
+
+struct Throw_at_output {
+  class Throw_at_output_exception: public std::exception
+  { };
+
+  template<class T>
+  void operator()(const T& /* t */) const {
+    throw Throw_at_output_exception();
+  }
+};
+
+} // SFCGAL namespace
+
 template <class Polyhedron>
 struct Default_polyhedron_ppmap{
   typedef typename Polyhedron::Point_3 value_type;
@@ -1058,17 +1221,17 @@ class Intersection_of_Polyhedra_3{
           box_ptr.push_back(&*b);
 
         // compute self-intersections filtered out by boxes
-        typedef boost::function_output_iterator<internal::Throw_at_output> OutputIterator;
+        typedef boost::function_output_iterator<SFCGAL::Throw_at_output> OutputIterator;
         OutputIterator out;
-        internal::Intersect_facets<Polyhedron,Kernel,
-                                   Box,OutputIterator,
-                                   PolyhedronPointPMap>
+        SFCGAL::Intersect_facets<Polyhedron,Kernel,
+                                 Box,OutputIterator,
+                                 PolyhedronPointPMap>
           intersect_facets(polyhedron_triangle, out, ppmap, Kernel());
         std::ptrdiff_t cutoff = 2000;
         CGAL::box_self_intersection_d(box_ptr.begin(), box_ptr.end(),intersect_facets,cutoff);
         return false;
       }
-      catch( internal::Throw_at_output::Throw_at_output_exception& )
+      catch( SFCGAL::Throw_at_output::Throw_at_output_exception& )
       {
         return true;
       }


=====================================
ci/centos/before_install.sh
=====================================
@@ -0,0 +1,10 @@
+sudo yum update -qy
+sudo yum install -y \
+    cmake boost boost-devel gmp gmp-c++ gmp-devel mpfr mpfr-devel make
+
+#CGAL
+wget https://github.com/CGAL/cgal/releases/download/releases/CGAL-"$1"/CGAL-"$1".tar.xz
+tar xJf CGAL-"$1".tar.xz
+cd CGAL-"$1" && mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$CI_PROJECT_DIR/CGAL .. && make && make install && cd ../..
+
+cmake --version


=====================================
travis/linux/before_install.sh → ci/debian/before_install.sh
=====================================
@@ -1,16 +1,15 @@
 export DEBIAN_FRONTEND=noninteractive
 sudo apt-get update -qq
-sudo apt-get install --force-yes \
-    cmake libboost-chrono1.58-dev libboost-program-options1.58-dev libboost-filesystem1.58-dev libboost-timer1.58-dev \
-    libboost-test1.58-dev libboost-thread1.58-dev \
-    libboost-system1.58-dev libboost-serialization1.58-dev \
+sudo apt-get install --yes \
+    cmake libboost-chrono-dev libboost-program-options-dev libboost-filesystem-dev libboost-timer-dev \
+    libboost-test-dev libboost-thread-dev \
+    libboost-system-dev libboost-serialization-dev \
     libmpfr-dev libgmp-dev \
     cmake
 #CGAL
 
 wget https://github.com/CGAL/cgal/releases/download/releases/CGAL-"$1"/CGAL-"$1".tar.xz
 tar xJf CGAL-"$1".tar.xz
-cd CGAL-"$1" && mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$HOME/CGAL-"$1" .. && make && make install && cd ../..
+cd CGAL-"$1" && mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$CI_PROJECT_DIR/CGAL .. && make && make install && cd ../..
 
 cmake --version
-clang --version


=====================================
debian/changelog
=====================================
@@ -1,3 +1,12 @@
+sfcgal (1.3.9-1~exp1) experimental; urgency=medium
+
+  * New upstream release.
+  * Drop CGAL 5.1 patch, included upstream.
+  * Don't ignore test failures everywhere, unit-test failure should be fixed.
+  * Update symbols for amd64.
+
+ -- Bas Couwenberg <sebastic at debian.org>  Thu, 01 Oct 2020 15:49:31 +0200
+
 sfcgal (1.3.8-1) unstable; urgency=medium
 
   * Add upstream patch to fix FTBFS with CGAL 5.1.


=====================================
debian/libsfcgal1.symbols
=====================================
The diff for this file was not included because it is too large.

=====================================
debian/patches/0001-accomodate-removal-in-CGAL-5.1.patch deleted
=====================================
@@ -1,201 +0,0 @@
-Description: accomodate removal in CGAL 5.1
-Author: Sébastien Loriot <sebastien.loriot at cgal.org>
-Origin: https://gitlab.com/Oslandia/SFCGAL/-/commit/93ab7a596e958808929e18c099cffe4a8b5d68bd
-Bug: https://gitlab.com/Oslandia/SFCGAL/-/issues/234
-Bug-Debian: https://bugs.debian.org/971145
-
---- a/CGAL_patches/CGAL/intersection_of_Polyhedra_3.h
-+++ b/CGAL_patches/CGAL/intersection_of_Polyhedra_3.h
-@@ -94,6 +94,169 @@ namespace CGAL{
- //
- // -- Sebastien Loriot, 2010/04/07
- 
-+// hardcopy of the class from CGAL 5.0 that is no longer present in 5.1
-+namespace SFCGAL{
-+
-+template <class TM,//TriangleMesh
-+          class Kernel,
-+          class Box,
-+          class OutputIterator,
-+          class VertexPointMap>
-+struct Intersect_facets
-+{
-+  // wrapper to check whether anything is inserted to output iterator
-+  struct Output_iterator_with_bool
-+  {
-+    Output_iterator_with_bool(OutputIterator* out, bool* intersected)
-+      : m_iterator(out), m_intersected(intersected) { }
-+
-+    template<class T>
-+    void operator()(const T& t) {
-+      *m_intersected = true;
-+      *(*m_iterator)++ = t;
-+    }
-+
-+    OutputIterator* m_iterator;
-+    bool* m_intersected;
-+  };
-+// typedefs
-+  typedef typename Kernel::Segment_3    Segment;
-+  typedef typename Kernel::Triangle_3   Triangle;
-+  typedef typename boost::graph_traits<TM>::halfedge_descriptor halfedge_descriptor;
-+  typedef typename boost::property_map<TM, boost::vertex_point_t>::const_type Ppmap;
-+
-+// members
-+  const TM& m_tmesh;
-+  const VertexPointMap m_vpmap;
-+  mutable OutputIterator  m_iterator;
-+  mutable bool            m_intersected;
-+  mutable boost::function_output_iterator<Output_iterator_with_bool> m_iterator_wrapper;
-+
-+  typename Kernel::Construct_segment_3  segment_functor;
-+  typename Kernel::Construct_triangle_3 triangle_functor;
-+  typename Kernel::Do_intersect_3       do_intersect_3_functor;
-+
-+
-+  Intersect_facets(const TM& tmesh, OutputIterator it, VertexPointMap vpmap, const Kernel& kernel)
-+    :
-+    m_tmesh(tmesh),
-+    m_vpmap(vpmap),
-+    m_iterator(it),
-+    m_intersected(false),
-+    m_iterator_wrapper(Output_iterator_with_bool(&m_iterator, &m_intersected)),
-+    segment_functor(kernel.construct_segment_3_object()),
-+    triangle_functor(kernel.construct_triangle_3_object()),
-+    do_intersect_3_functor(kernel.do_intersect_3_object())
-+  { }
-+
-+  void operator()(const Box* b, const Box* c) const
-+  {
-+    halfedge_descriptor h = halfedge(b->info(), m_tmesh);
-+    halfedge_descriptor opp_h;
-+
-+    // check for shared egde
-+    for(unsigned int i=0; i<3; ++i){
-+      opp_h = opposite(h, m_tmesh);
-+      if(face(opp_h, m_tmesh) == c->info()){
-+        // there is an intersection if the four points are coplanar and
-+        // the triangles overlap
-+        if(CGAL::coplanar(get(m_vpmap, target(h, m_tmesh)),
-+                          get(m_vpmap, target(next(h, m_tmesh), m_tmesh)),
-+                          get(m_vpmap, source(h, m_tmesh)),
-+                          get(m_vpmap, target(next(opp_h, m_tmesh), m_tmesh))) &&
-+           CGAL::coplanar_orientation(get(m_vpmap, source(h, m_tmesh)),
-+                                      get(m_vpmap, target(h, m_tmesh)),
-+                                      get(m_vpmap, target(next(h, m_tmesh), m_tmesh)),
-+                                      get(m_vpmap, target(next(opp_h, m_tmesh), m_tmesh)))
-+             == CGAL::POSITIVE){
-+          *m_iterator_wrapper++ = std::make_pair(b->info(), c->info());
-+          return;
-+        } else { // there is a shared edge but no intersection
-+          return;
-+        }
-+      }
-+      h = next(h, m_tmesh);
-+    }
-+
-+    // check for shared vertex --> maybe intersection, maybe not
-+    halfedge_descriptor g = halfedge(c->info(),m_tmesh);
-+    halfedge_descriptor v;
-+
-+    if(target(h,m_tmesh) == target(g,m_tmesh))
-+      v = g;
-+    if(target(h,m_tmesh) == target(next(g,m_tmesh),m_tmesh))
-+      v = next(g,m_tmesh);
-+    if(target(h,m_tmesh) == target(next(next(g,m_tmesh),m_tmesh),m_tmesh))
-+      v = next(next(g,m_tmesh),m_tmesh);
-+
-+    if(v == halfedge_descriptor()){
-+      h = next(h,m_tmesh);
-+      if(target(h,m_tmesh) == target(g,m_tmesh))
-+        v = g;
-+      if(target(h,m_tmesh) == target(next(g,m_tmesh),m_tmesh))
-+        v = next(g,m_tmesh);
-+      if(target(h,m_tmesh) == target(next(next(g,m_tmesh),m_tmesh),m_tmesh))
-+        v = next(next(g,m_tmesh),m_tmesh);
-+      if(v == halfedge_descriptor()){
-+        h = next(h,m_tmesh);
-+        if(target(h,m_tmesh) == target(g,m_tmesh))
-+          v = g;
-+        if(target(h,m_tmesh) == target(next(g,m_tmesh),m_tmesh))
-+          v = next(g,m_tmesh);
-+        if(target(h,m_tmesh) == target(next(next(g,m_tmesh),m_tmesh),m_tmesh))
-+          v = next(next(g,m_tmesh),m_tmesh);
-+      }
-+    }
-+
-+    if(v != halfedge_descriptor()){
-+      // found shared vertex:
-+      CGAL_assertion(target(h,m_tmesh) == target(v,m_tmesh));
-+      // geometric check if the opposite segments intersect the triangles
-+      Triangle t1 = triangle_functor( get(m_vpmap,target(h,m_tmesh)),
-+                                      get(m_vpmap, target(next(h,m_tmesh),m_tmesh)),
-+                                      get(m_vpmap, target(next(next(h,m_tmesh),m_tmesh),m_tmesh)));
-+      Triangle t2 = triangle_functor( get(m_vpmap, target(v,m_tmesh)),
-+                                      get(m_vpmap, target(next(v,m_tmesh),m_tmesh)),
-+                                      get(m_vpmap, target(next(next(v,m_tmesh),m_tmesh),m_tmesh)));
-+
-+      Segment s1 = segment_functor( get(m_vpmap, target(next(h,m_tmesh),m_tmesh)),
-+                                    get(m_vpmap, target(next(next(h,m_tmesh),m_tmesh),m_tmesh)));
-+      Segment s2 = segment_functor( get(m_vpmap, target(next(v,m_tmesh),m_tmesh)),
-+                                    get(m_vpmap, target(next(next(v,m_tmesh),m_tmesh),m_tmesh)));
-+
-+      if(do_intersect_3_functor(t1,s2)){
-+        *m_iterator_wrapper++ = std::make_pair(b->info(), c->info());
-+      } else if(do_intersect_3_functor(t2,s1)){
-+        *m_iterator_wrapper++ = std::make_pair(b->info(), c->info());
-+      }
-+      return;
-+    }
-+
-+    // check for geometric intersection
-+    Triangle t1 = triangle_functor( get(m_vpmap, target(h,m_tmesh)),
-+                                    get(m_vpmap, target(next(h,m_tmesh),m_tmesh)),
-+                                    get(m_vpmap, target(next(next(h,m_tmesh),m_tmesh),m_tmesh)));
-+    Triangle t2 = triangle_functor( get(m_vpmap, target(g,m_tmesh)),
-+                                    get(m_vpmap, target(next(g,m_tmesh),m_tmesh)),
-+                                    get(m_vpmap, target(next(next(g,m_tmesh),m_tmesh),m_tmesh)));
-+    if(do_intersect_3_functor(t1, t2)){
-+      *m_iterator_wrapper++ = std::make_pair(b->info(), c->info());
-+    }
-+  } // end operator ()
-+}; // end struct Intersect_facets
-+
-+struct Throw_at_output {
-+  class Throw_at_output_exception: public std::exception
-+  { };
-+
-+  template<class T>
-+  void operator()(const T& /* t */) const {
-+    throw Throw_at_output_exception();
-+  }
-+};
-+
-+} // SFCGAL namespace
-+
- template <class Polyhedron>
- struct Default_polyhedron_ppmap{
-   typedef typename Polyhedron::Point_3 value_type;
-@@ -1058,17 +1221,17 @@ class Intersection_of_Polyhedra_3{
-           box_ptr.push_back(&*b);
- 
-         // compute self-intersections filtered out by boxes
--        typedef boost::function_output_iterator<internal::Throw_at_output> OutputIterator;
-+        typedef boost::function_output_iterator<SFCGAL::Throw_at_output> OutputIterator;
-         OutputIterator out;
--        internal::Intersect_facets<Polyhedron,Kernel,
--                                   Box,OutputIterator,
--                                   PolyhedronPointPMap>
-+        SFCGAL::Intersect_facets<Polyhedron,Kernel,
-+                                 Box,OutputIterator,
-+                                 PolyhedronPointPMap>
-           intersect_facets(polyhedron_triangle, out, ppmap, Kernel());
-         std::ptrdiff_t cutoff = 2000;
-         CGAL::box_self_intersection_d(box_ptr.begin(), box_ptr.end(),intersect_facets,cutoff);
-         return false;
-       }
--      catch( internal::Throw_at_output::Throw_at_output_exception& )
-+      catch( SFCGAL::Throw_at_output::Throw_at_output_exception& )
-       {
-         return true;
-       }


=====================================
debian/patches/series
=====================================
@@ -1,2 +1 @@
 sfcgal-config.patch
-0001-accomodate-removal-in-CGAL-5.1.patch


=====================================
debian/rules
=====================================
@@ -36,7 +36,7 @@ ifneq (,$(filter $(DEB_BUILD_ARCH),i386 alpha hurd-i386 kfreebsd-i386 riscv64 sp
 else ifneq (,$(filter $(DEB_BUILD_ARCH),mips mips64el mipsel))
 	dh_auto_test || echo "Ignoring test failures"
 else
-	dh_auto_test || echo "Ignoring test failures"
+	dh_auto_test
 endif
 
 override_dh_install:	


=====================================
test/unit/SFCGAL/algorithm/StraightSkeletonTest.cpp
=====================================
@@ -110,8 +110,12 @@ BOOST_AUTO_TEST_CASE( testPolygonWithHole )
                                                                       ")"
                                                      )
                                         );
+    // results for gcc and clang differ due to rounding
+    // To avoid rounding errors in the results (-3730904090310553/9007199254740992 vs -466363011288819/1125899906842624), a text comparison is used. This is not optimal.
+    std::unique_ptr< Geometry > r( io::readWkt( result->asText( 10 ) ) );
+    std::unique_ptr< Geometry > e( io::readWkt( expected->asText( 10 ) ) );
+    BOOST_CHECK( algorithm::covers( *r, *e ) );
 
-    BOOST_CHECK( algorithm::covers( *result, *expected ) );
 }
 
 BOOST_AUTO_TEST_CASE( testPolygonWithHoleTouchingShell )



View it on GitLab: https://salsa.debian.org/debian-gis-team/sfcgal/-/compare/07c9effb1932912c33fe38dc6a23fd7391935917...15847d89db6ab44d15ca1ba9f9a7c71c61cffd99

-- 
View it on GitLab: https://salsa.debian.org/debian-gis-team/sfcgal/-/compare/07c9effb1932912c33fe38dc6a23fd7391935917...15847d89db6ab44d15ca1ba9f9a7c71c61cffd99
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-grass-devel/attachments/20201001/dc429f5a/attachment-0001.html>


More information about the Pkg-grass-devel mailing list