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
|
-- File: Interface_BitMap.cdl
-- Created: Fri Sep 1 10:01:00 1995
-- Author: Christian CAILLET
-- <cky@fidox>
---Copyright: Matra Datavision 1995
class BitMap from Interface
---Purpose : A bit map simply allows to associate a boolean flag to each
-- item of a list, such as a list of entities, etc... numbered
-- between 1 and a positive count nbitems
--
-- The BitMap class allows to associate several binary flags,
-- each of one is identified by a number from 0 to a count
-- which can remain at zero or be positive : nbflags
--
-- Flags lists over than numflag=0 are added after creation
-- Each of one can be named, hence the user can identify it
-- either by its flag number or by a name which gives a flag n0
-- (flag n0 0 has no name)
uses CString, HSequenceOfAsciiString from TColStd,
HArray1OfInteger from TColStd
is
Create (nbitems : Integer; resflags : Integer = 0) returns BitMap;
---Purpose : Creates a BitMap for <nbitems> items
-- One flag is defined, n0 0
-- <resflags> prepares allocation for <resflags> more flags
-- Flags values start at false
Create (other : BitMap; copied : Boolean = Standard_False) returns BitMap;
---Purpose : Creates a BitMap from another one
-- if <copied> is True, copies data
-- else, data are not copied, only the header object is
Internals (me; nbitems , nbwords, nbflags : out Integer;
flags : out mutable HArray1OfInteger;
names : out mutable HSequenceOfAsciiString);
---Purpose : Returns internal values, used for copying
-- Flags values start at false
Reservate (me : in out; moreflags : Integer);
---Purpose : Reservates for a count of more flags
SetLength (me : in out; nbitems : Integer);
---Purpose : Sets for a new count of items, which can be either less or
-- greater than the former one
-- For new items, their flags start at false
AddFlag (me : in out; name : CString = "") returns Integer;
---Purpose : Adds a flag, a name can be attached to it
-- Returns its flag number
-- Makes required reservation
AddSomeFlags (me : in out; more : Integer) returns Integer;
---Purpose : Adds several flags (<more>) with no name
-- Returns the number of last added flag
RemoveFlag (me : in out; num : Integer) returns Boolean;
---Purpose : Removes a flag given its number.
-- Returns True if done, false if num is out of range
SetFlagName (me : in out; num : Integer; name : CString) returns Boolean;
---Purpose : Sets a name for a flag, given its number
-- name can be empty (to erase the name of a flag)
-- Returns True if done, false if : num is out of range, or
-- name non-empty already set to another flag
NbFlags (me) returns Integer;
---Purpose : Returns the count of flags (flag 0 not included)
Length (me) returns Integer;
---Purpose : Returns the count of items (i.e. the length of the bitmap)
FlagName (me; num : Integer) returns CString;
---Purpose : Returns the name recorded for a flag, or an empty string
FlagNumber (me; name : CString) returns Integer;
---Purpose : Returns the number or a flag given its name, or zero
-- Access to flag values --
Value (me; item : Integer; flag : Integer = 0) returns Boolean;
---Purpose : Returns the value (true/false) of a flag, from :
-- - the number of the item
-- - the flag number, by default 0
SetValue (me; item : Integer; val : Boolean; flag : Integer = 0);
---Purpose : Sets a new value for a flag
SetTrue (me; item : Integer; flag : Integer = 0);
---Purpose : Sets a flag to True
SetFalse (me; item : Integer; flag : Integer = 0);
---Purpose : Sets a flag to False
CTrue (me; item : Integer; flag : Integer = 0) returns Boolean;
---Purpose : Returns the former value for a flag and sets it to True
-- (before : value returned; after : True)
CFalse (me; item : Integer; flag : Integer = 0) returns Boolean;
---Purpose : Returns the former value for a flag and sets it to False
-- (before : value returned; after : False)
Init (me; val : Boolean; flag : Integer = 0);
---Purpose : Initialises all the values of Flag Number <flag> to a given
-- value <val>
fields
thenbitems : Integer;
thenbwords : Integer;
thenbflags : Integer;
theflags : HArray1OfInteger;
thenames : HSequenceOfAsciiString;
end BitMap;
|