📄 intersection_line_2_circle_2_map.h
字号:
// Copyright (c) 2003-2006 INRIA Sophia-Antipolis (France).// 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/Circular_kernel_2/include/CGAL/Circular_kernel_2/intersection_line_2_circle_2_map.h $// $Id: intersection_line_2_circle_2_map.h 36708 2007-02-28 18:54:33Z spion $//// Author(s) : Monique Teillaud, Sylvain Pion, Pedro Machado// Partially supported by the IST Programme of the EU as a Shared-cost// RTD (FET Open) Project under Contract No IST-2000-26473 // (ECG - Effective Computational Geometry for Curves and Surfaces) // and a STREP (FET Open) Project under Contract No IST-006413 // (ACS -- Algorithms for Complex Shapes)#ifndef CGAL_INTERSECTION_LINE_2_CIRCLE_2_MAP_H#define CGAL_INTERSECTION_LINE_2_CIRCLE_2_MAP_H#include <map>#include <vector>#include <CGAL/Object.h>namespace CGAL {namespace CGALi {class Intersection_line_2_circle_2_map {typedef struct inter_map_pair { int x, y; inter_map_pair(int xx=0, int yy=0) : x(xx), y(yy) {} inter_map_pair(const inter_map_pair &i) : x(i.x), y(i.y) {} bool operator<(const inter_map_pair &i) const { if(x < i.x) return true; if(x > i.x) return false; if(y < i.y) return true; return false; }} inter_map_pair;typedef std::map< inter_map_pair , CGAL::Object > Table;private: Table intersection_map; unsigned int id_gen;public: Intersection_line_2_circle_2_map() : id_gen(0) { intersection_map.clear(); } ~Intersection_line_2_circle_2_map() { intersection_map.clear(); } unsigned int get_new_id() { return ++id_gen; } template < class T > bool find(int id1, int id2, T& res) const { Table::const_iterator p = intersection_map.find( inter_map_pair(id1,id2)); if(p == intersection_map.end()) return false; assign(res, p->second); return true; } template < class T > void put(const int id1, const int id2, const T& res) { intersection_map[inter_map_pair(id1,id2)] = CGAL::make_object(res); }};} // endof internal cgal namespace} //endof cgal namespace#endif // CGAL_INTERSECTION_LINE_2_CIRCLE_2_MAP_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -