0030686: Visualization, SelectMgr_ViewerSelector - sorting issues of transformation...
[occt.git] / src / IGESDraw / IGESDraw_NetworkSubfigureDef.hxx
1 // Created on: 1993-01-11
2 // Created by: CKY / Contract Toubro-Larsen ( Niraj RANGWALA )
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 _IGESDraw_NetworkSubfigureDef_HeaderFile
18 #define _IGESDraw_NetworkSubfigureDef_HeaderFile
19
20 #include <Standard.hxx>
21 #include <Standard_Type.hxx>
22
23 #include <Standard_Integer.hxx>
24 #include <IGESData_HArray1OfIGESEntity.hxx>
25 #include <IGESDraw_HArray1OfConnectPoint.hxx>
26 #include <IGESData_IGESEntity.hxx>
27 #include <Standard_Boolean.hxx>
28 class TCollection_HAsciiString;
29 class IGESGraph_TextDisplayTemplate;
30 class Standard_OutOfRange;
31 class IGESData_IGESEntity;
32 class IGESDraw_ConnectPoint;
33
34
35 class IGESDraw_NetworkSubfigureDef;
36 DEFINE_STANDARD_HANDLE(IGESDraw_NetworkSubfigureDef, IGESData_IGESEntity)
37
38 //! defines IGESNetworkSubfigureDef,
39 //! Type <320> Form Number <0> in package IGESDraw
40 //!
41 //! This class differs from the ordinary subfigure definition
42 //! in that it defines a specialized subfigure, one whose
43 //! instances may participate in networks.
44 //!
45 //! The Number of associated(child) Connect Point Entities
46 //! in the Network Subfigure Instance must match the number
47 //! in the Network Subfigure Definition, their order must
48 //! be identical, and any unused points of connection in
49 //! the instance must be indicated by a null(zero) pointer.
50 class IGESDraw_NetworkSubfigureDef : public IGESData_IGESEntity
51 {
52
53 public:
54
55   
56   Standard_EXPORT IGESDraw_NetworkSubfigureDef();
57   
58   //! This method is used to set fields of the class
59   //! NetworkSubfigureDef
60   //! - aDepth           : Depth of Subfigure
61   //! (indicating the amount of nesting)
62   //! - aName            : Subfigure Name
63   //! - allEntities      : Associated subfigures Entities exclusive
64   //! of primary reference designator and
65   //! Control Points.
66   //! - aTypeFlag        : Type flag determines which Entity
67   //! belongs in which design
68   //! (Logical design or Physical design)
69   //! - aDesignator      : Designator HAsciiString and its Template
70   //! - allPointEntities : Associated Connect Point Entities
71   Standard_EXPORT void Init (const Standard_Integer aDepth, const Handle(TCollection_HAsciiString)& aName, const Handle(IGESData_HArray1OfIGESEntity)& allEntities, const Standard_Integer aTypeFlag, const Handle(TCollection_HAsciiString)& aDesignator, const Handle(IGESGraph_TextDisplayTemplate)& aTemplate, const Handle(IGESDraw_HArray1OfConnectPoint)& allPointEntities);
72   
73   //! returns Depth of Subfigure(indication the amount of nesting)
74   //! Note : The Depth is inclusive of both Network Subfigure Definition
75   //! Entity and the Ordinary Subfigure Definition Entity.
76   //! Thus, the two may be nested.
77   Standard_EXPORT Standard_Integer Depth() const;
78   
79   //! returns the Subfigure Name
80   Standard_EXPORT Handle(TCollection_HAsciiString) Name() const;
81   
82   //! returns Number of Associated(child) entries in subfigure exclusive
83   //! of primary reference designator and Control Points
84   Standard_EXPORT Standard_Integer NbEntities() const;
85   
86   //! returns the Index'th IGESEntity in subfigure exclusive of primary
87   //! reference designator and Control Points
88   //! raises exception if Index  <=0 or Index > NbEntities()
89   Standard_EXPORT Handle(IGESData_IGESEntity) Entity (const Standard_Integer Index) const;
90   
91   //! return value = 0 : Not Specified
92   //! = 1 : Logical  design
93   //! = 2 : Physical design
94   Standard_EXPORT Standard_Integer TypeFlag() const;
95   
96   //! returns Primary Reference Designator
97   Standard_EXPORT Handle(TCollection_HAsciiString) Designator() const;
98   
99   //! returns True if Text Display Template is specified for
100   //! primary designator else returns False
101   Standard_EXPORT Standard_Boolean HasDesignatorTemplate() const;
102   
103   //! if Text Display Template specified then return TextDisplayTemplate
104   //! else return NULL Handle
105   Standard_EXPORT Handle(IGESGraph_TextDisplayTemplate) DesignatorTemplate() const;
106   
107   //! returns the Number Of Associated(child) Connect Point Entities
108   Standard_EXPORT Standard_Integer NbPointEntities() const;
109   
110   //! returns True is Index'th Associated Connect Point Entity is present
111   //! else returns False
112   //! raises exception if Index is out of bound
113   Standard_EXPORT Standard_Boolean HasPointEntity (const Standard_Integer Index) const;
114   
115   //! returns the Index'th Associated Connect Point Entity
116   //! raises exception if Index <= 0 or Index > NbPointEntities()
117   Standard_EXPORT Handle(IGESDraw_ConnectPoint) PointEntity (const Standard_Integer Index) const;
118
119
120
121
122   DEFINE_STANDARD_RTTIEXT(IGESDraw_NetworkSubfigureDef,IGESData_IGESEntity)
123
124 protected:
125
126
127
128
129 private:
130
131
132   Standard_Integer theDepth;
133   Handle(TCollection_HAsciiString) theName;
134   Handle(IGESData_HArray1OfIGESEntity) theEntities;
135   Standard_Integer theTypeFlag;
136   Handle(TCollection_HAsciiString) theDesignator;
137   Handle(IGESGraph_TextDisplayTemplate) theDesignatorTemplate;
138   Handle(IGESDraw_HArray1OfConnectPoint) thePointEntities;
139
140
141 };
142
143
144
145
146
147
148
149 #endif // _IGESDraw_NetworkSubfigureDef_HeaderFile