0027104: DownCast() cannot return null for mismatched handle
[occt.git] / src / IGESAppli / IGESAppli_LineWidening.hxx
1 // Created on: 1993-01-11
2 // Created by: CKY / Contract Toubro-Larsen ( Arun MENON )
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 _IGESAppli_LineWidening_HeaderFile
18 #define _IGESAppli_LineWidening_HeaderFile
19
20 #include <Standard.hxx>
21 #include <Standard_Type.hxx>
22
23 #include <Standard_Integer.hxx>
24 #include <Standard_Real.hxx>
25 #include <IGESData_IGESEntity.hxx>
26
27
28 class IGESAppli_LineWidening;
29 DEFINE_STANDARD_HANDLE(IGESAppli_LineWidening, IGESData_IGESEntity)
30
31 //! defines LineWidening, Type <406> Form <5>
32 //! in package IGESAppli
33 //! Defines the characteristics of entities when they are
34 //! used to define locations of items.
35 class IGESAppli_LineWidening : public IGESData_IGESEntity
36 {
37
38 public:
39
40   
41   Standard_EXPORT IGESAppli_LineWidening();
42   
43   //! This method is used to set the fields of the class
44   //! LineWidening
45   //! - nbPropVal   : Number of property values = 5
46   //! - aWidth      : Width of metalization
47   //! - aCornering  : Cornering codes
48   //! 0 = rounded
49   //! 1 = squared
50   //! - aExtnFlag   : Extension Flag
51   //! 0 = No Extension
52   //! 1 = One-half width extension
53   //! 2 = Extn set by ExtnVal
54   //! - aJustifFlag : Justification flag
55   //! 0 = Center justified
56   //! 1 = left justified
57   //! 2 = right justified
58   //! - aExtnVal    : Extension value if aExtnFlag = 2
59   Standard_EXPORT void Init (const Standard_Integer nbPropVal, const Standard_Real aWidth, const Standard_Integer aCornering, const Standard_Integer aExtnFlag, const Standard_Integer aJustifFlag, const Standard_Real aExtnVal);
60   
61   //! returns the number of property values
62   //! is always 5
63   Standard_EXPORT Standard_Integer NbPropertyValues() const;
64   
65   //! returns the width of metallization
66   Standard_EXPORT Standard_Real WidthOfMetalization() const;
67   
68   //! returns the cornering code
69   //! 0 = Rounded  /   1 = Squared
70   Standard_EXPORT Standard_Integer CorneringCode() const;
71   
72   //! returns the extension flag
73   //! 0 = No extension
74   //! 1 = One-half width extension
75   //! 2 = Extension set by theExtnVal
76   Standard_EXPORT Standard_Integer ExtensionFlag() const;
77   
78   //! returns the justification flag
79   //! 0 = Centre justified
80   //! 1 = Left justified
81   //! 2 = Right justified
82   Standard_EXPORT Standard_Integer JustificationFlag() const;
83   
84   //! returns the Extension Value
85   //! Present only if theExtnFlag = 2
86   Standard_EXPORT Standard_Real ExtensionValue() const;
87
88
89
90
91   DEFINE_STANDARD_RTTIEXT(IGESAppli_LineWidening,IGESData_IGESEntity)
92
93 protected:
94
95
96
97
98 private:
99
100
101   Standard_Integer theNbPropertyValues;
102   Standard_Real theWidth;
103   Standard_Integer theCorneringCode;
104   Standard_Integer theExtensionFlag;
105   Standard_Integer theJustificationFlag;
106   Standard_Real theExtensionValue;
107
108
109 };
110
111
112
113
114
115
116
117 #endif // _IGESAppli_LineWidening_HeaderFile