7fd59977 |
1 | // File: TopOpeBRepTool_STATE.cxx |
2 | // Created: Wed Oct 22 16:36:31 1997 |
3 | // Author: Jean Yves LEBEY |
4 | // <jyl@bistrox.paris1.matra-dtv.fr> |
5 | |
6 | #ifdef DEB |
7 | |
8 | #include <TopOpeBRepTool_STATE.hxx> |
9 | |
10 | TopOpeBRepTool_STATE::TopOpeBRepTool_STATE |
11 | (const char* name, const Standard_Boolean b) : |
12 | myin(Standard_False),myout(Standard_False), |
13 | myon(Standard_False),myunknown(Standard_False), |
14 | myonetrue(Standard_False) |
15 | { |
16 | strcpy(myname,name); |
17 | Set(b); |
18 | } |
19 | |
20 | void TopOpeBRepTool_STATE::Set(const Standard_Boolean b) |
21 | { |
22 | Set(TopAbs_IN,b); |
23 | Set(TopAbs_OUT,b); |
24 | Set(TopAbs_ON,b); |
25 | Set(TopAbs_UNKNOWN,b); |
26 | } |
27 | |
28 | void TopOpeBRepTool_STATE::Set |
29 | (const TopAbs_State S,const Standard_Boolean b) |
30 | { |
31 | switch(S) { |
32 | case TopAbs_IN : myin = b; break; |
33 | case TopAbs_OUT : myout = b; break; |
34 | case TopAbs_ON : myon = b; break; |
35 | case TopAbs_UNKNOWN : myunknown = b; break; |
36 | } |
37 | myonetrue = myin || myout || myon || myunknown; |
38 | } |
39 | |
40 | void TopOpeBRepTool_STATE::Set(const Standard_Boolean b, |
41 | Standard_Integer n, char** a) |
42 | { |
43 | if (!n) Set(b); |
44 | else { |
45 | Set(Standard_False); |
46 | for (Standard_Integer i=0; i < n; i++) { |
47 | const char *p = a[i]; |
48 | if ( !strcmp(p,"IN") ) Set(TopAbs_IN,b); |
49 | else if ( !strcmp(p,"OUT") ) Set(TopAbs_OUT,b); |
50 | else if ( !strcmp(p,"ON") ) Set(TopAbs_ON,b); |
51 | else if ( !strcmp(p,"UNKNOWN") ) Set(TopAbs_UNKNOWN,b); |
52 | } |
53 | Print(); |
54 | } |
55 | } |
56 | |
57 | Standard_Boolean TopOpeBRepTool_STATE::Get(const TopAbs_State S) |
58 | { |
59 | Standard_Boolean b; |
60 | switch(S) { |
61 | case TopAbs_IN : b = myin; break; |
62 | case TopAbs_OUT : b = myout; break; |
63 | case TopAbs_ON : b = myon; break; |
64 | case TopAbs_UNKNOWN : b = myunknown; break; |
65 | } |
66 | return b; |
67 | } |
68 | |
69 | void TopOpeBRepTool_STATE::Print() |
70 | { |
71 | cout<<myname<<" : "; |
72 | cout<<"IN/OUT/ON/UNKNOWN = "; |
73 | cout<<Get(TopAbs_IN)<<Get(TopAbs_OUT)<<Get(TopAbs_ON)<<Get(TopAbs_UNKNOWN); |
74 | cout<<endl; |
75 | } |
76 | |
77 | // #define DEB |
78 | #endif |