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
|
// File: TopOpeBRepTool_STATE.cxx
// Created: Wed Oct 22 16:36:31 1997
// Author: Jean Yves LEBEY
// <jyl@bistrox.paris1.matra-dtv.fr>
#ifdef DEB
#include <TopOpeBRepTool_STATE.hxx>
TopOpeBRepTool_STATE::TopOpeBRepTool_STATE
(const char* name, const Standard_Boolean b) :
myin(Standard_False),myout(Standard_False),
myon(Standard_False),myunknown(Standard_False),
myonetrue(Standard_False)
{
strcpy(myname,name);
Set(b);
}
void TopOpeBRepTool_STATE::Set(const Standard_Boolean b)
{
Set(TopAbs_IN,b);
Set(TopAbs_OUT,b);
Set(TopAbs_ON,b);
Set(TopAbs_UNKNOWN,b);
}
void TopOpeBRepTool_STATE::Set
(const TopAbs_State S,const Standard_Boolean b)
{
switch(S) {
case TopAbs_IN : myin = b; break;
case TopAbs_OUT : myout = b; break;
case TopAbs_ON : myon = b; break;
case TopAbs_UNKNOWN : myunknown = b; break;
}
myonetrue = myin || myout || myon || myunknown;
}
void TopOpeBRepTool_STATE::Set(const Standard_Boolean b,
Standard_Integer n, char** a)
{
if (!n) Set(b);
else {
Set(Standard_False);
for (Standard_Integer i=0; i < n; i++) {
const char *p = a[i];
if ( !strcmp(p,"IN") ) Set(TopAbs_IN,b);
else if ( !strcmp(p,"OUT") ) Set(TopAbs_OUT,b);
else if ( !strcmp(p,"ON") ) Set(TopAbs_ON,b);
else if ( !strcmp(p,"UNKNOWN") ) Set(TopAbs_UNKNOWN,b);
}
Print();
}
}
Standard_Boolean TopOpeBRepTool_STATE::Get(const TopAbs_State S)
{
Standard_Boolean b;
switch(S) {
case TopAbs_IN : b = myin; break;
case TopAbs_OUT : b = myout; break;
case TopAbs_ON : b = myon; break;
case TopAbs_UNKNOWN : b = myunknown; break;
}
return b;
}
void TopOpeBRepTool_STATE::Print()
{
cout<<myname<<" : ";
cout<<"IN/OUT/ON/UNKNOWN = ";
cout<<Get(TopAbs_IN)<<Get(TopAbs_OUT)<<Get(TopAbs_ON)<<Get(TopAbs_UNKNOWN);
cout<<endl;
}
// #define DEB
#endif
|