📄 alpha_shape_3_vrml_2_ostream.h
字号:
// Copyright (c) 1997 Utrecht University (The Netherlands),// ETH Zurich (Switzerland), Freie Universitaet Berlin (Germany),// INRIA Sophia-Antipolis (France), Martin-Luther-University Halle-Wittenberg// (Germany), Max-Planck-Institute Saarbruecken (Germany), RISC Linz (Austria),// and Tel-Aviv University (Israel). All rights reserved.//// This file is part of CGAL (www.cgal.org); you can redistribute it and/or// modify it under the terms of the GNU Lesser General Public License as// published by the Free Software Foundation; version 2.1 of the License.// See the file LICENSE.LGPL 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/Inventor/include/CGAL/IO/Alpha_shape_3_VRML_2_ostream.h,v $// $Revision: 1.1 $ $Date: 2004/02/26 09:50:51 $// $Name: $//// Author(s) : Andreas Fabri#ifndef CGAL_ALPHA_SHAPE_3_VRML_2_OSTREAM_H#define CGAL_ALPHA_SHAPE_3_VRML_2_OSTREAM_H#include <CGAL/basic.h>#include <CGAL/IO/VRML_2_ostream.h>#ifdef CGAL_ALPHA_SHAPE_3_HCGAL_BEGIN_NAMESPACEtemplate <class Dt >VRML_2_ostream&operator<<(VRML_2_ostream& os, Alpha_shape_3<Dt> &as){ // Finite vertices coordinates. Alpha_shape_3<Dt>::Alpha_shape_vertices_iterator Vlist_it, Vlist_begin = as.alpha_shape_vertices_begin(), Vlist_end = as.alpha_shape_vertices_end(); std::map<Alpha_shape_3<Dt>::Vertex_handle, int> V; int number_of_vertex = 0; for( Vlist_it = Vlist_begin; Vlist_it != Vlist_end; Vlist_it++) { V[*Vlist_it] = number_of_vertex++; } typename Alpha_shape_3<Dt>::Alpha_shape_facets_iterator Flist_it, Flist_begin = as.alpha_shape_facets_begin(), Flist_end = as.alpha_shape_facets_end(); std::map<Alpha_shape_3<Dt>::Facet, int> F; int number_of_facets = 0; for( Flist_it = Flist_begin; Flist_it != Flist_end; Flist_it++) { F[*Flist_it] = number_of_facets++; } const char *Indent = " "; os << " Group {\n" " children [\n" " Shape {\n" " appearance USE A1\n" " geometry\n" " IndexedFaceSet {\n" " coord Coordinate {\n" " point [ \n" << Indent << " "; for( Vlist_it = Vlist_begin; Vlist_it != Vlist_end; Vlist_it++) { os << CGAL::to_double((*Vlist_it)->point().x()) << " "; os << CGAL::to_double((*Vlist_it)->point().y()) << " "; os << CGAL::to_double((*Vlist_it)->point().z()) << ",\n" << Indent << " "; } os << "\n ]\n" " } # coord\n" " solid FALSE\n" << Indent << "coordIndex [\n"; // Finite facets indices. for( Flist_it = Flist_begin; Flist_it != Flist_end; Flist_it++){ os << Indent << " "; for (int i=0; i<4; i++) if (i != (*Flist_it).second){ os << V[(*Flist_it).first->vertex(i)]; os << ", "; } if (Flist_it != Flist_end) os << "-1,\n"; else os << "-1 \n"; } os << Indent << "]\n"; " } #IndexedFaceSet\n" " } #Shape\n" " ] #children\n" " } #Group\n"; return os;}CGAL_END_NAMESPACE#endif // CGAL_ALPHA_SHAPE_3_H#endif CGAL_ALPHA_SHAPE_3_VRML_2_OSTREAM_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -