// Copyright (c) 1999-2014 OPEN CASCADE SAS // // This file is part of Open CASCADE Technology software library. // // This library is free software; you can redistribute it and/or modify it under // the terms of the GNU Lesser General Public License version 2.1 as published // by the Free Software Foundation, with special exception defined in the file // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT // distribution for complete text of the license and disclaimer of any warranty. // // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. #ifndef _BRepMesh_Collections_HeaderFile #define _BRepMesh_Collections_HeaderFile #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include class BRepMesh_Vertex; class TopoDS_Shape; class TopoDS_Face; class TopoDS_Edge; class TopoDS_Vertex; class BRepMesh_FaceAttribute; class Handle_BRepMesh_FaceAttribute; class BRepMesh_VertexInspector; class BRepMesh_CircleInspector; class BRepMesh_Classifier; class Poly_Triangulation; //! Short names for collections #define N_SEQUENCE NCollection_Sequence #define N_VECTOR NCollection_Vector #define N_ARRAY1 NCollection_Array1 #define N_LIST NCollection_List #define N_MAP NCollection_Map #define N_HANDLE NCollection_Handle #define N_DATAMAP NCollection_DataMap #define N_IMAP NCollection_IndexedMap #define N_IDMAP NCollection_IndexedDataMap #define N_CELLFILTER NCollection_CellFilter namespace BRepMeshCol { //! Structure keeping parameters of segment. struct Segment { gp_XY StartPnt; gp_XY EndPnt; }; //! Memory allocators typedef Handle(NCollection_IncAllocator) Allocator; //! Short names for hashers typedef TopTools_ShapeMapHasher ShapeMapHasher; //! Sequences typedef N_SEQUENCE SequenceOfBndB2d; typedef N_SEQUENCE SequenceOfInteger; typedef N_SEQUENCE SequenceOfReal; //! Vectors typedef N_VECTOR VectorOfVertex; typedef N_VECTOR VectorOfInteger; typedef N_VECTOR VectorOfCircle; //! Trees typedef NCollection_EBTree BndBox2dTree; typedef NCollection_UBTreeFiller BndBox2dTreeFiller; //! Arrays typedef N_ARRAY1 Array1OfVertexOfDelaun; typedef N_ARRAY1 Array1OfInteger; typedef N_ARRAY1 Array1OfReal; typedef std::vector Array1OfSegments; //! Lists typedef N_LIST ListOfXY; typedef N_LIST ListOfVertex; typedef N_LIST ListOfInteger; //! Maps typedef N_MAP MapOfInteger; typedef N_MAP MapOfTriangulation; typedef N_MAP MapOfShape; typedef N_DATAMAP MapOfIntegerInteger; typedef N_DATAMAP DMapOfVertexInteger; typedef N_DATAMAP DMapOfFaceAttribute; typedef N_DATAMAP DMapOfShapePairOfPolygon; typedef N_DATAMAP DMapOfIntegerPnt; typedef N_DATAMAP DMapOfIntegerListOfXY; typedef N_DATAMAP DMapOfIntegerListOfInteger; typedef N_DATAMAP DMapOfEdgeListOfTriangulation; typedef N_IMAP IMapOfInteger; typedef N_IMAP IMapOfReal; typedef N_IMAP IMapOfElement; typedef N_IDMAP IDMapOfLink; //! CellFilters typedef N_CELLFILTER CircleCellFilter; typedef N_CELLFILTER VertexCellFilter; //! Handles typedef N_HANDLE HMapOfInteger; typedef N_HANDLE HClassifier; typedef N_HANDLE HBndBox2dTree; typedef N_HANDLE HArray1OfSegments; //! Other data structures typedef std::pair SegmentsTree; typedef std::vector Array1OfSegmentsTree; }; #endif