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

📄 conic_point_2.h

📁 很多二维 三维几何计算算法 C++ 类库
💻 H
字号:
// Copyright (c) 2005  Tel-Aviv University (Israel).// 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/Arrangement_2/include/CGAL/Arr_traits_2/Conic_point_2.h $// $Id: Conic_point_2.h 28567 2006-02-16 14:30:13Z lsaboret $// //// Author(s)     : Ron Wein <wein@post.tau.ac.il>#ifndef CGAL_CONIC_POINT_2_H#define CGAL_CONIC_POINT_2_H/*! \file * Header file for the _Conic_point_2<Alg_kernel> class. */#include <list>CGAL_BEGIN_NAMESPACE/*! * \class A class that stores additional information with the point's  * coordinates, namely the conic IDs of the generating curves. */template <class Alg_kernel_>class _Conic_point_2 : public Alg_kernel_::Point_2{public:  typedef Alg_kernel_                       Alg_kernel;  typedef typename Alg_kernel::Point_2      Base;  typedef _Conic_point_2<Alg_kernel>        Self;      typedef typename Alg_kernel::FT           Algebraic;  /*! \class   * Representation of an ID of a conic arc.   */  class Conic_id  {  private:    unsigned int   index;           // The index of the conic arc.  public:    /*! Default constructor. */    Conic_id () :      index (0)    {}    /*! Constructor. */    Conic_id (unsigned int ind) :      index (ind)    {      CGAL_precondition (ind != 0);    }    /*! Check if the ID is valid. */    bool is_valid () const    {      return (index != 0);    }        /*! Equality operator. */    bool operator== (const Conic_id& id) const    {      return (index == id.index);    }    /*! Inequality operator. */    bool operator!= (const Conic_id& id) const    {      return (index != id.index);    }    /*! Less-than operator. */    bool operator< (const Conic_id& id) const    {      return (index < id.index);    }    /*! Greater-than operator. */    bool operator> (const Conic_id& id) const    {      return (index > id.index);    }  };        private:  typedef std::list<Conic_id>                          Ids_container;  typedef typename std::list<Conic_id>::const_iterator Ids_iterator;  Ids_container   conic_ids;       // The IDs of the generating conics. public:  /// \name Constructors.  //@{  /*! Default constructors. */  _Conic_point_2 () :    Base()  {}  /*! Constrcutor from the base class. */  _Conic_point_2 (const Base& p) :    Base (p)  {}  /*! Constructor with homegeneous coordinates. */  _Conic_point_2 (const Algebraic& hx, 		  const Algebraic& hy,		  const Algebraic& hz) :    Base (hx, hy, hz)  {}  /*! Constructor with Cartesian coordinates. */  _Conic_point_2 (const Algebraic& x, const Algebraic& y) :    Base (x, y)  {}  //@}  /// \name Maintaining the generating conic IDs.  //@{  /*! Add a generating conic ID. */  void set_generating_conic (const Conic_id& id)  {    if (id.is_valid())      conic_ids.push_back (id);    return;  }  /*! Check if the given conic generates the point. */  bool is_generating_conic (const Conic_id& id) const  {    if (! id.is_valid())      return (false);    Ids_iterator       it;    for (it = conic_ids.begin(); it != conic_ids.end(); ++it)    {      if (*it == id)        return (true);    }    return (false);  }  //@}};CGAL_END_NAMESPACE#endif

⌨️ 快捷键说明

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