1 #ifndef HYDROData_Iterator_HeaderFile
2 #define HYDROData_Iterator_HeaderFile
4 #include <HYDROData_Object.h>
5 #include <HYDROData_Document.h>
7 #include <TDF_ChildIDIterator.hxx>
9 /**\class HYDROData_Iterator
10 * \brief Allows to iterate all objects by the document and kind of object.
12 * Using the document data structures, iterates through objects, filtered by
13 * kind of this object. This class must have information about all kinds of
14 * objects of the document: for correct iteration and creation of them.
16 class HYDROData_Iterator
20 * Initializes iterator by objects of the document.
21 * \param theDoc document to iterate
22 * \param theKind kind of the iterated object, can be UNKNOWN: to iterate all objects
24 HYDRODATA_EXPORT HYDROData_Iterator(Handle(HYDROData_Document) theDoc, ObjectKind theKind);
27 * Iterates to the next object
29 HYDRODATA_EXPORT void Next();
32 * Returns true if current object exists
34 HYDRODATA_EXPORT bool More() const;
37 * Returns the current object of the iterator.
39 HYDRODATA_EXPORT Handle(HYDROData_Object) Current();
43 friend class HYDROData_Document;
44 friend class HYDROData_Image;
47 * Creates object in the document, call HYDROData_Document method to create
48 * objects from other packages.
49 * \param theDoc document where object will be located
50 * \param theKind kind of the new object, can not be UNKNOWN
52 static Handle_HYDROData_Object CreateObject(
53 Handle_HYDROData_Document theDoc, ObjectKind theKind);
56 * Returns object associated to the given label.
58 static Handle_HYDROData_Object Object(const TDF_Label theLabel);
60 TDF_ChildIDIterator myIter; ///< iterator by the objects in the document