⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 is_degenerate_polygon_2.h

📁 很多二维 三维几何计算算法 C++ 类库
💻 H
字号:
// Copyright (c) 2000  Max-Planck-Institute Saarbruecken (Germany).// All rights reserved.//// This file is part of CGAL (www.cgal.org); you may redistribute it under// the terms of the Q Public License version 1.0.// See the file LICENSE.QPL distributed with CGAL.//// 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: svn+ssh://scm.gforge.inria.fr/svn/cgal/branches/CGAL-3.3-branch/Partition_2/include/CGAL/Partition_2/is_degenerate_polygon_2.h $// $Id: is_degenerate_polygon_2.h 31311 2006-05-29 08:30:22Z wein $// //// Author(s)     : Susan Hert <hert@mpi-sb.mpg.de>#ifndef CGAL_IS_DEGENERATE_POLYGON_2_H#define CGAL_IS_DEGENERATE_POLYGON_2_Hnamespace CGAL {// tests if a sequence of points represents a degenerate polygon (i.e.// one of zero area)template<class BidirectionalIterator, class Traits>bool is_degenerate_polygon_2(BidirectionalIterator first,                         BidirectionalIterator last,                        const Traits& traits){   if (first == last) return true;   BidirectionalIterator prev = last;   prev--;   BidirectionalIterator curr = first;   BidirectionalIterator next = first;   next++;   // fewer than three vertices   if (prev == first) return true;    if (next == last) return true;    typedef typename Traits::Orientation_2                Orientation_2;   Orientation_2 orientation = traits.orientation_2_object();   while (curr != last)   {     if (orientation(*prev, *curr, *next) != COLLINEAR)        return false;     prev++;     if (prev == last)        prev = first;     next++;        if (next == last)       next = first;     curr++;   }   return true;}template<class InputIterator>bool is_degenerate_polygon_2(InputIterator first, InputIterator last){   if (first == last) return true;   typedef typename std::iterator_traits<InputIterator>::value_type Point_2;   typedef typename Kernel_traits<Point_2>::Kernel  K;   return is_degenerate_polygon_2(first, last, K());}}#endif // CGAL_IS_DEGENERATE_POLYGON_2_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -