summaryrefslogtreecommitdiff
path: root/inc/Aspect_WidthMapEntry.hxx
blob: 1a891919eb39ccb2cc90aa8532d4e25be7ba5b62 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to 
// this header file considered to be the "object code" form of the original source.

#ifndef _Aspect_WidthMapEntry_HeaderFile
#define _Aspect_WidthMapEntry_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_Macro_HeaderFile
#include <Standard_Macro.hxx>
#endif

#ifndef _Aspect_WidthOfLine_HeaderFile
#include <Aspect_WidthOfLine.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Quantity_Length_HeaderFile
#include <Quantity_Length.hxx>
#endif
class Standard_OutOfRange;
class Aspect_BadAccess;


//! This class defines a widthmap entry. <br>
//!	    A widthmap entry is an association between <br>
//!	    a LineStyle object and an index in the widthmap. <br>
class Aspect_WidthMapEntry  {
public:

  void* operator new(size_t,void* anAddress) 
  {
    return anAddress;
  }
  void* operator new(size_t size) 
  {
    return Standard::Allocate(size); 
  }
  void  operator delete(void *anAddress) 
  {
    if (anAddress) Standard::Free((Standard_Address&)anAddress); 
  }

  //! Creates an unallocated widthmap entry <br>
  Standard_EXPORT   Aspect_WidthMapEntry();
  //! Creates an allocated widthmap entry from width style <br>
  Standard_EXPORT   Aspect_WidthMapEntry(const Standard_Integer index,const Aspect_WidthOfLine style);
  //! Creates an allocated widthmap entry from width value <br>
  Standard_EXPORT   Aspect_WidthMapEntry(const Standard_Integer index,const Quantity_Length width);
  //! Creates an allocated widthmap entry. <br>
  Standard_EXPORT   Aspect_WidthMapEntry(const Aspect_WidthMapEntry& entry);
  //! Sets widthmap entry value from width style <br>
//!	    and allocates it. <br>
  Standard_EXPORT     void SetValue(const Standard_Integer index,const Aspect_WidthOfLine style) ;
  //! Sets widthmap entry value from width value <br>
//!	    and allocates it. <br>
  Standard_EXPORT     void SetValue(const Standard_Integer index,const Quantity_Length width) ;
  //! Sets widthmap entry value and allocates it. <br>
  Standard_EXPORT     void SetValue(const Aspect_WidthMapEntry& entry) ;
    void operator =(const Aspect_WidthMapEntry& entry) 
{
  SetValue(entry);
}
  //! Sets index value of a widthmap entry. <br>
  Standard_EXPORT     void SetIndex(const Standard_Integer index) ;
  //! Sets width style of widthmap entry. <br>
  Standard_EXPORT     void SetType(const Aspect_WidthOfLine Style) ;
  //! Sets width value of widthmap entry. <br>
  Standard_EXPORT     void SetWidth(const Quantity_Length Width) ;
  
  Standard_EXPORT     Aspect_WidthOfLine Type() const;
  //! Returns width value of widthmap entry. <br>
//!  Warning: Raises error if the widthmap entry is unallocated . <br>
  Standard_EXPORT     Quantity_Length Width() const;
  //! Returns index value of a widthmap entry. <br>
//!  Warning: Raises error if the widthmap entry is unallocated . <br>
  Standard_EXPORT     Standard_Integer Index() const;
  //! Unallocates the widthmap entry. <br>
  Standard_EXPORT     void Free() ;
  //! Returns True if the widthmap entry is allocated. <br>
//!  Warning: A widthmap entry is allocated when the width and <br>
//!	    the index is defined. <br>
  Standard_EXPORT     Standard_Boolean IsAllocated() const;
  
  Standard_EXPORT     void Dump() const;





protected:





private:

  //! Set Line Width with the predefined style values <br>
//!          according of type <br>
//!  Warning: Raises error if the Width style is USER_DEFINED <br>
  Standard_EXPORT     void SetPredefinedStyle(const Aspect_WidthOfLine Type) ;


Aspect_WidthOfLine MyType;
Standard_Real MyWidth;
Standard_Integer MyIndex;
Standard_Boolean MyTypeIsDef;
Standard_Boolean MyIndexIsDef;


};





// other Inline functions and methods (like "C++: function call" methods)


#endif