📄 arrangement_enum.h
字号:
// Copyright (c) 2003,2004,2005,2006 INRIA Sophia-Antipolis (France) and// Notre Dame University (U.S.A.). 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/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Arrangement_enum.h $// $Id: Arrangement_enum.h 32830 2006-07-31 13:25:07Z mkaravel $// //// Author(s) : Menelaos Karavelas <mkaravel@cse.nd.edu>#ifndef CGAL_SEGMENT_DELAUNAY_GRAPH_2_ARRANGEMENT_ENUM_H#define CGAL_SEGMENT_DELAUNAY_GRAPH_2_ARRANGEMENT_ENUM_H#include <CGAL/Segment_Delaunay_graph_2/basic.h>#include <iostream>CGAL_BEGIN_NAMESPACECGAL_SEGMENT_DELAUNAY_GRAPH_2_BEGIN_NAMESPACEnamespace Internal { struct Arrangement_enum { enum Arrangement_type { DISJOINT = 0, // obvious TOUCH_1, // (p1,p2) and q, and p1 and q are identical TOUCH_2, // (p1,p2) and q, and p2 and q are identical TOUCH_11, // (p1,p2), (q1,q2), and p1, q1 are identical TOUCH_12, // (p1,p2), (q1,q2), and p1, q2 are identical TOUCH_21, // (p1,p2), (q1,q2), and p2, q1 are identical TOUCH_22, // (p1,p2), (q1,q2), and p2, q2 are identical CROSSING, // two segments intersecting at interior points IDENTICAL, // either two segments or two points that are identical INTERIOR_1, // (p1,p2) and (q1,q2), and q1, q2 are interior // points of (p1,p2) INTERIOR_2, // (p1,p2) and (q1,q2), and p1, p2 are interior // points of (q1,q2) INTERIOR, // (p1,p2) and q, and q is an interior point of (p1,p2) TOUCH_11_INTERIOR_1, // (p1,p2) and (q1,q2), and p1, q1 are // identical and q2 is an interior point of (p1,p2) TOUCH_11_INTERIOR_2, // (p1,p2) and (q1,q2), and p1, q1 are // identical and p2 is an interior point of // (q1,q2) TOUCH_12_INTERIOR_1, // (p1,p2) and (q1,q2), and p1, q2 are // identical and q1 is an interior point of (p1,p2) TOUCH_12_INTERIOR_2, // (p1,p2) and (q1,q2), and p1, q2 are // identical and p2 is an interior point of (q1,q2) TOUCH_21_INTERIOR_1, // (p1,p2) and (q1,q2), and p2, q1 are // identical and q2 is an interior point of (p1,p2) TOUCH_21_INTERIOR_2, // (p1,p2) and (q1,q2), and p2, q1 are // identical and p1 is an interior point of (q1,q2) TOUCH_22_INTERIOR_1, // (p1,p2) and (q1,q2), and p2, q2 are // identical and q1 is an interior point of (p1,p2) TOUCH_22_INTERIOR_2, // (p1,p2) and (q1,q2), and p2, q2 are // identical and p1 is an interior point of (q1,q2) OVERLAPPING_11, // (p1,p2) and (q1,q2), and (p1,q1) is the overlap OVERLAPPING_12, // (p1,p2) and (q1,q2), and (p1,q1) is the overlap OVERLAPPING_21, // (p1,p2) and (q1,q2), and (p2,q1) is the overlap OVERLAPPING_22, // (p1,p2) and (q1,q2), and (p2,q2) is the overlap TOUCH_INTERIOR_12, // (p1,p2) and (q1,q2) and p1 is an interior // point of (q1,q2) TOUCH_INTERIOR_22, // (p1,p2) and (q1,q2) and p2 is an interior // point of (q1,q2) TOUCH_INTERIOR_11, // (p1,p2) and (q1,q2) and q1 is an interior // point of (p1,p2) TOUCH_INTERIOR_21 // (p1,p2) and (q1,q2) and q2 is an interior // point of (p1,p2) }; static Arrangement_type opposite(const Arrangement_type& at) { // this returns the result if we swap the order of the arguments... if ( at == TOUCH_12 ) { return TOUCH_21; } else if ( at == TOUCH_21 ) { return TOUCH_12; } else if ( at == INTERIOR_1 ) { return INTERIOR_2; } else if ( at == INTERIOR_2 ) { return INTERIOR_1; } else if ( at == TOUCH_11_INTERIOR_1 ) { return TOUCH_11_INTERIOR_2; } else if ( at == TOUCH_11_INTERIOR_2 ) { return TOUCH_11_INTERIOR_1; } else if ( at == TOUCH_12_INTERIOR_1 ) { return TOUCH_21_INTERIOR_2; } else if ( at == TOUCH_12_INTERIOR_2 ) { return TOUCH_21_INTERIOR_1; } else if ( at == TOUCH_21_INTERIOR_1 ) { return TOUCH_12_INTERIOR_2; } else if ( at == TOUCH_21_INTERIOR_2 ) { return TOUCH_12_INTERIOR_1; } else if ( at == TOUCH_22_INTERIOR_1 ) { return TOUCH_22_INTERIOR_2; } else if ( at == TOUCH_22_INTERIOR_2 ) { return TOUCH_22_INTERIOR_1; } else if ( at == OVERLAPPING_12 ) { return OVERLAPPING_21; } else if ( at == OVERLAPPING_21 ) { return OVERLAPPING_12; } else if ( at == TOUCH_INTERIOR_12 ) { return TOUCH_INTERIOR_11; } else if ( at == TOUCH_INTERIOR_22 ) { return TOUCH_INTERIOR_21; } else if ( at == TOUCH_INTERIOR_11 ) { return TOUCH_INTERIOR_12; } else if ( at == TOUCH_INTERIOR_21 ) { return TOUCH_INTERIOR_22; } return at; } };#ifdef CGAL_SEGMENT_DELAUNAY_GRAPH_2_ARRANGEMENT_TYPE_OUTPUT_OPERATOR static std::ostream& operator<<(std::ostream& os, const Arrangement_enum::Arrangement_type& at) { typedef Arrangement_enum AT; if ( at == AT::DISJOINT ) { os << "DISJOINT"; } else if ( at == AT::TOUCH_1 ) { os << "TOUCH_1"; } else if ( at == AT::TOUCH_2 ) { os << "TOUCH_2"; } else if ( at == AT::TOUCH_11 ) { os << "TOUCH_11"; } else if ( at == AT::TOUCH_12 ) { os << "TOUCH_12"; } else if ( at == AT::TOUCH_21 ) { os << "TOUCH_21"; } else if ( at == AT::TOUCH_22 ) { os << "TOUCH_22"; } else if ( at == AT::CROSSING ) { os << "CROSSING"; } else if ( at == AT::IDENTICAL) { os << "IDENTICAL"; } else if ( at == AT::INTERIOR_1 ) { os << "INTERIOR_1"; } else if ( at == AT::INTERIOR_2 ) { os << "INTERIOR_2"; } else if ( at == AT::INTERIOR ) { os << "INTERIOR"; } else if ( at == AT::TOUCH_11_INTERIOR_1 ) { os << "TOUCH_11_INTERIOR_1"; } else if ( at == AT::TOUCH_11_INTERIOR_2 ) { os << "TOUCH_11_INTERIOR_2"; } else if ( at == AT::TOUCH_12_INTERIOR_1 ) { os << "TOUCH_12_INTERIOR_1"; } else if ( at == AT::TOUCH_12_INTERIOR_2 ) { os << "TOUCH_12_INTERIOR_2"; } else if ( at == AT::TOUCH_21_INTERIOR_1 ) { os << "TOUCH_21_INTERIOR_1"; } else if ( at == AT::TOUCH_21_INTERIOR_2 ) { os << "TOUCH_21_INTERIOR_2"; } else if ( at == AT::TOUCH_22_INTERIOR_1 ) { os << "TOUCH_22_INTERIOR_1"; } else if ( at == AT::TOUCH_22_INTERIOR_2 ) { os << "TOUCH_22_INTERIOR_2"; } else if ( at == AT::OVERLAPPING_11 ) { os << "OVERLAPPING_11"; } else if ( at == AT::OVERLAPPING_12 ) { os << "OVERLAPPING_12"; } else if ( at == AT::OVERLAPPING_21 ) { os << "OVERLAPPING_21"; } else if ( at == AT::OVERLAPPING_22 ) { os << "OVERLAPPING_22"; } else if ( at == AT::TOUCH_INTERIOR_11 ) { os << "TOUCH_INTERIOR_11"; } else if ( at == AT::TOUCH_INTERIOR_12 ) { os << "TOUCH_INTERIOR_12"; } else if ( at == AT::TOUCH_INTERIOR_21 ) { os << "TOUCH_INTERIOR_21"; } else if ( at == AT::TOUCH_INTERIOR_22 ) { os << "TOUCH_INTERIOR_22"; } else { CGAL_assertion( false ); } return os; }#endif // CGAL_SEGMENT_DELAUNAY_GRAPH_2_ARRANGEMENT_TYPE_OUTPUT_OPERATOR} // namespace InternalCGAL_SEGMENT_DELAUNAY_GRAPH_2_END_NAMESPACECGAL_END_NAMESPACE#endif // CGAL_SEGMENT_DELAUNAY_GRAPH_2_ARRANGEMENT_ENUM_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -