point_plus_handle.h
来自「CGAL is a collaborative effort of severa」· C头文件 代码 · 共 120 行
H
120 行
// Copyright (c) 1997 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.//// $Source: /CVSROOT/CGAL/Packages/Planar_map/include/CGAL/Planar_map_2/Point_plus_handle.h,v $// $Revision: 1.4 $ $Date: 2004/09/22 07:53:53 $// $Name: $//// Author(s) : Eti Ezra <estere@post.tau.ac.il>#ifndef CGAL_POINT_PLUS_HANDLE_H#define CGAL_POINT_PLUS_HANDLE_H#include <CGAL/Handle_for.h>#include <CGAL/assertions.h>CGAL_BEGIN_NAMESPACEtemplate <class traits, class vertexHandle>class Point_plus_handle;// Point_plus_rep:// Point_plus_rep holds a Point plus a vertex handle of the vertex in the // subdivision that will hold that point.// The reason we need the vertex handle information is to update the // subdivision by the time the sweep line progresses without makeing any // point location query. This class holds the representation, and the next // will hold the Handle to Point_plus.template <class traits, class vertexHandle>class Point_plus_rep {public: typedef traits Traits; typedef typename Traits::Point Point; typedef vertexHandle Vertex_handle; Point_plus_rep() {} Point_plus_rep(const Point & p) : p_(p), v_(Vertex_handle(NULL)) {} Point_plus_rep(const Point & p, Vertex_handle v) : p_(p), v_(v) {} ~Point_plus_rep() {} protected: friend class Point_plus_handle<Traits, Vertex_handle>; Point p_; Vertex_handle v_;};// Point_plus:// The handle to Point_plus.template <class traits, class vertexHandle>class Point_plus_handle : public Handle_for<Point_plus_rep<traits, vertexHandle> > { typedef Handle_for<Point_plus_rep<traits, vertexHandle> > Handle_for_Point_plus_rep;#ifndef CGAL_CFG_USING_BASE_MEMBER_BUG_3 using Handle_for_Point_plus_rep::ptr;#endifpublic: typedef traits Traits; typedef typename Traits::Point Point; typedef vertexHandle Vertex_handle; typedef Point_plus_rep<Traits, Vertex_handle> Point_plus_rep_pm; Point_plus_handle() : Handle_for_Point_plus_rep() {} Point_plus_handle(const Point & p) : Handle_for_Point_plus_rep(Point_plus_rep_pm(p)) { } Point_plus_handle(const Point & p, Vertex_handle v) : Handle_for_Point_plus_rep(Point_plus_rep_pm(p, v)) { } Point_plus_handle(const Point_plus_handle & p_plus) : Handle_for_Point_plus_rep(p_plus) {} ~Point_plus_handle() {} Point_plus_handle & operator=(const Point_plus_handle & p_plus) { Handle_for_Point_plus_rep::operator=(p_plus); return *this; } bool operator==(const Point_plus_handle & p_plus) const { return ptr()->p_ == p_plus.point(); } bool operator!=(const Point_plus_handle & p_plus) const { return !(operator==(p_plus)); } void set_point(const Point & p) { ptr()->p_ = p; } void set_vertex (Vertex_handle v) { ptr()->v_ = v; } const Point & point() const { return ptr()->p_; } Vertex_handle vertex() const { return ptr()->v_; }};CGAL_END_NAMESPACE#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?