0031687: Draw Harness, ViewerTest - extend command vrenderparams with option updating...
[occt.git] / src / IGESDraw / IGESDraw_ViewsVisibleWithAttr.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_ViewsVisibleWithAttr_HeaderFile
18 #define _IGESDraw_ViewsVisibleWithAttr_HeaderFile
19
20 #include <Standard.hxx>
21 #include <Standard_Type.hxx>
22
23 #include <IGESDraw_HArray1OfViewKindEntity.hxx>
24 #include <TColStd_HArray1OfInteger.hxx>
25 #include <IGESBasic_HArray1OfLineFontEntity.hxx>
26 #include <IGESGraph_HArray1OfColor.hxx>
27 #include <IGESData_HArray1OfIGESEntity.hxx>
28 #include <IGESData_ViewKindEntity.hxx>
29 #include <Standard_Boolean.hxx>
30 #include <Standard_Integer.hxx>
31 class Standard_DimensionMismatch;
32 class Standard_OutOfRange;
33 class IGESData_ViewKindEntity;
34 class IGESData_LineFontEntity;
35 class IGESGraph_Color;
36 class IGESData_IGESEntity;
37
38
39 class IGESDraw_ViewsVisibleWithAttr;
40 DEFINE_STANDARD_HANDLE(IGESDraw_ViewsVisibleWithAttr, IGESData_ViewKindEntity)
41
42 //! defines IGESViewsVisibleWithAttr, Type <402>, Form <4>
43 //! in package IGESDraw
44 //!
45 //! This class is extension of Class ViewsVisible.  It is used
46 //! for those entities that are visible in multiple views, but
47 //! must have a different line font, color number, or
48 //! line weight in each view.
49 class IGESDraw_ViewsVisibleWithAttr : public IGESData_ViewKindEntity
50 {
51
52 public:
53
54   
55   Standard_EXPORT IGESDraw_ViewsVisibleWithAttr();
56   
57   //! This method is used to set fields of the class
58   //! ViewsVisibleWithAttr
59   //! - allViewEntities     : All View kind entities
60   //! - allLineFonts        : All Line Font values or zero(0)
61   //! - allLineDefinitions  : Line Font Definition
62   //! (if Line Font value = 0)
63   //! - allColorValues      : All Color values
64   //! - allColorDefinitions : All Color Definition Entities
65   //! - allLineWeights      : All Line Weight values
66   //! - allDisplayEntities  : Entities which are member of
67   //! this associativity
68   //! raises exception if Lengths of allViewEntities, allLineFonts,
69   //! allColorValues,allColorDefinitions, allLineWeights are not same
70   Standard_EXPORT void Init (const Handle(IGESDraw_HArray1OfViewKindEntity)& allViewEntities, const Handle(TColStd_HArray1OfInteger)& allLineFonts, const Handle(IGESBasic_HArray1OfLineFontEntity)& allLineDefinitions, const Handle(TColStd_HArray1OfInteger)& allColorValues, const Handle(IGESGraph_HArray1OfColor)& allColorDefinitions, const Handle(TColStd_HArray1OfInteger)& allLineWeights, const Handle(IGESData_HArray1OfIGESEntity)& allDisplayEntities);
71   
72   //! Changes only the list of Displayed Entities (Null allowed)
73   Standard_EXPORT void InitImplied (const Handle(IGESData_HArray1OfIGESEntity)& allDisplayEntity);
74   
75   //! Returns False (for a complex view)
76   Standard_EXPORT Standard_Boolean IsSingle() const Standard_OVERRIDE;
77   
78   //! returns the number of Views containing the view visible, line font,
79   //! color number, and line weight information
80   Standard_EXPORT Standard_Integer NbViews() const Standard_OVERRIDE;
81   
82   //! returns the number of entities which have this particular set of
83   //! display characteristic, or zero if no Entities specified
84   Standard_EXPORT Standard_Integer NbDisplayedEntities() const;
85   
86   //! returns the Index'th ViewKindEntity entity
87   //! raises exception if Index <= 0 or Index > NbViews()
88   Standard_EXPORT Handle(IGESData_ViewKindEntity) ViewItem (const Standard_Integer Index) const Standard_OVERRIDE;
89   
90   //! returns the Index'th Line font value or zero
91   //! raises exception if Index <= 0 or Index > NbViews()
92   Standard_EXPORT Standard_Integer LineFontValue (const Standard_Integer Index) const;
93   
94   //! returns True if the Index'th Line Font Definition is specified
95   //! else returns False
96   //! raises exception if Index <= 0 or Index > NbViews()
97   Standard_EXPORT Standard_Boolean IsFontDefinition (const Standard_Integer Index) const;
98   
99   //! returns the Index'th Line Font Definition Entity or NULL(0)
100   //! raises exception if Index <= 0 or Index > NbViews()
101   Standard_EXPORT Handle(IGESData_LineFontEntity) FontDefinition (const Standard_Integer Index) const;
102   
103   //! returns the Index'th Color number value
104   //! raises exception if Index <= 0 or Index > NbViews()
105   Standard_EXPORT Standard_Integer ColorValue (const Standard_Integer Index) const;
106   
107   //! returns True if Index'th Color Definition is specified
108   //! else returns False
109   //! raises exception if Index <= 0 or Index > NbViews()
110   Standard_EXPORT Standard_Boolean IsColorDefinition (const Standard_Integer Index) const;
111   
112   //! returns the Index'th Color Definition Entity
113   //! raises exception if Index <= 0 or Index > NbViews()
114   Standard_EXPORT Handle(IGESGraph_Color) ColorDefinition (const Standard_Integer Index) const;
115   
116   //! returns the Index'th Color Line Weight
117   //! raises exception if Index <= 0 or Index > NbViews()
118   Standard_EXPORT Standard_Integer LineWeightItem (const Standard_Integer Index) const;
119   
120   //! returns Index'th Display entity with this particular characteristics
121   //! raises exception if Index  <= 0 or Index > NbEntities()
122   Standard_EXPORT Handle(IGESData_IGESEntity) DisplayedEntity (const Standard_Integer Index) const;
123
124
125
126
127   DEFINE_STANDARD_RTTIEXT(IGESDraw_ViewsVisibleWithAttr,IGESData_ViewKindEntity)
128
129 protected:
130
131
132
133
134 private:
135
136
137   Handle(IGESDraw_HArray1OfViewKindEntity) theViewEntities;
138   Handle(TColStd_HArray1OfInteger) theLineFonts;
139   Handle(IGESBasic_HArray1OfLineFontEntity) theLineDefinitions;
140   Handle(TColStd_HArray1OfInteger) theColorValues;
141   Handle(IGESGraph_HArray1OfColor) theColorDefinitions;
142   Handle(TColStd_HArray1OfInteger) theLineWeights;
143   Handle(IGESData_HArray1OfIGESEntity) theDisplayEntities;
144
145
146 };
147
148
149
150
151
152
153
154 #endif // _IGESDraw_ViewsVisibleWithAttr_HeaderFile