1 // Created on: 1993-07-19 2 // Created by: Remi LEQUETTE 3 // Copyright (c) 1993-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 _GeomTools_Curve2dSet_HeaderFile 18 #define _GeomTools_Curve2dSet_HeaderFile 19 20 #include <Standard.hxx> 21 #include <Standard_DefineAlloc.hxx> 22 #include <Standard_Handle.hxx> 23 24 #include <TColStd_IndexedMapOfTransient.hxx> 25 #include <Standard_Integer.hxx> 26 #include <Standard_OStream.hxx> 27 #include <Standard_IStream.hxx> 28 #include <Standard_Boolean.hxx> 29 class Message_ProgressIndicator; 30 class Standard_OutOfRange; 31 class Geom2d_Curve; 32 33 34 //! Stores a set of Curves from Geom2d. 35 class GeomTools_Curve2dSet 36 { 37 public: 38 39 DEFINE_STANDARD_ALLOC 40 41 42 //! Returns an empty set of Curves. 43 Standard_EXPORT GeomTools_Curve2dSet(); 44 45 //! Clears the content of the set. 46 Standard_EXPORT void Clear(); 47 48 //! Incorporate a new Curve in the set and returns 49 //! its index. 50 Standard_EXPORT Standard_Integer Add (const Handle(Geom2d_Curve)& C); 51 52 //! Returns the Curve of index <I>. 53 Standard_EXPORT Handle(Geom2d_Curve) Curve2d (const Standard_Integer I) const; 54 55 //! Returns the index of <L>. 56 Standard_EXPORT Standard_Integer Index (const Handle(Geom2d_Curve)& C) const; 57 58 //! Dumps the content of me on the stream <OS>. 59 Standard_EXPORT void Dump (Standard_OStream& OS) const; 60 61 //! Writes the content of me on the stream <OS> in a 62 //! format that can be read back by Read. 63 Standard_EXPORT void Write (Standard_OStream& OS) const; 64 65 //! Reads the content of me from the stream <IS>. me 66 //! is first cleared. 67 Standard_EXPORT void Read (Standard_IStream& IS); 68 69 //! Dumps the curve on the stream, if compact is True 70 //! use the compact format that can be read back. 71 Standard_EXPORT static void PrintCurve2d (const Handle(Geom2d_Curve)& C, Standard_OStream& OS, const Standard_Boolean compact = Standard_False); 72 73 //! Reads the curve from the stream. The curve is 74 //! assumed to have been written with the Print 75 //! method (compact = True). 76 Standard_EXPORT static Handle(Geom2d_Curve) ReadCurve2d (Standard_IStream& IS); 77 78 Standard_EXPORT void SetProgress (const Handle(Message_ProgressIndicator)& PR); 79 80 Standard_EXPORT Handle(Message_ProgressIndicator) GetProgress() const; 81 82 83 84 85 protected: 86 87 88 89 90 91 private: 92 93 94 95 TColStd_IndexedMapOfTransient myMap; 96 Handle(Message_ProgressIndicator) myProgress; 97 98 99 }; 100 101 102 103 104 105 106 107 #endif // _GeomTools_Curve2dSet_HeaderFile 108