1 // Created on: 1999-05-11 2 // Created by: Sergei ZERTCHANINOV 3 // Copyright (c) 1999 Matra Datavision 4 // Copyright (c) 1999-2014 OPEN CASCADE SAS 5 // 6 // This file is part of Open CASCADE Technology software library. 7 // 8 // This library is free software; you can redistribute it and/or modify it under 9 // the terms of the GNU Lesser General Public License version 2.1 as published 10 // by the Free Software Foundation, with special exception defined in the file 11 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT 12 // distribution for complete text of the license and disclaimer of any warranty. 13 // 14 // Alternatively, this file may be used under the terms of Open CASCADE 15 // commercial license or contractual agreement. 16 17 #ifndef _ShapeFix_EdgeConnect_HeaderFile 18 #define _ShapeFix_EdgeConnect_HeaderFile 19 20 #include <Standard.hxx> 21 #include <Standard_DefineAlloc.hxx> 22 #include <Standard_Handle.hxx> 23 24 #include <TopTools_DataMapOfShapeShape.hxx> 25 #include <TopTools_DataMapOfShapeListOfShape.hxx> 26 class TopoDS_Edge; 27 class TopoDS_Shape; 28 29 30 //! Rebuilds edges to connect with new vertices, was moved from ShapeBuild. 31 //! Makes vertices to be shared to connect edges, 32 //! updates positions and tolerances for shared vertices. 33 //! Accepts edges bounded by two vertices each. 34 class ShapeFix_EdgeConnect 35 { 36 public: 37 38 DEFINE_STANDARD_ALLOC 39 40 41 Standard_EXPORT ShapeFix_EdgeConnect(); 42 43 //! Adds information on connectivity between start vertex 44 //! of second edge and end vertex of first edge, 45 //! taking edges orientation into account 46 Standard_EXPORT void Add (const TopoDS_Edge& aFirst, const TopoDS_Edge& aSecond); 47 48 //! Adds connectivity information for the whole shape. 49 //! Note: edges in wires must be well ordered 50 //! Note: flag Closed should be set for closed wires 51 Standard_EXPORT void Add (const TopoDS_Shape& aShape); 52 53 //! Builds shared vertices, updates their positions and tolerances 54 Standard_EXPORT void Build(); 55 56 //! Clears internal data structure 57 Standard_EXPORT void Clear(); 58 59 60 61 62 protected: 63 64 65 66 67 68 private: 69 70 71 72 TopTools_DataMapOfShapeShape myVertices; 73 TopTools_DataMapOfShapeListOfShape myLists; 74 75 76 }; 77 78 79 80 81 82 83 84 #endif // _ShapeFix_EdgeConnect_HeaderFile 85