Salome HOME
Merge with PAL/SALOME 2.1.0d
[modules/kernel.git] / src / SALOMEDS / SALOMEDS_AttributeFlags_i.cxx
1 //  SALOME SALOMEDS : data structure of SALOME and sources of Salome data server 
2 //
3 //  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
5 // 
6 //  This library is free software; you can redistribute it and/or 
7 //  modify it under the terms of the GNU Lesser General Public 
8 //  License as published by the Free Software Foundation; either 
9 //  version 2.1 of the License. 
10 // 
11 //  This library is distributed in the hope that it will be useful, 
12 //  but WITHOUT ANY WARRANTY; without even the implied warranty of 
13 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
14 //  Lesser General Public License for more details. 
15 // 
16 //  You should have received a copy of the GNU Lesser General Public 
17 //  License along with this library; if not, write to the Free Software 
18 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
19 // 
20 //  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
21 //
22 //
23 //
24 //  File   : SALOMEDS_AttributeFlags_i.cxx
25 //  Author : Sergey LITONIN
26 //  Module : SALOME
27 //  $Header$
28
29 using namespace std;
30 #include "SALOMEDS_AttributeFlags_i.hxx"
31 #include "SALOMEDS_SObject_i.hxx"
32
33
34 /*
35   Class       : SALOMEDS_AttributeFlags_i
36   Description : This class is intended for storing different object attributes that
37                 have only two states (0 and 1).
38                 
39                 Avalable attributes:
40                 
41                 IS_VISIBLE - is equal to 1 if object is visible in 3D view (0 - overwise).
42                              This attribute is valid for active view only.
43 */
44
45 //=======================================================================
46 // function : SALOMEDS_AttributeFlags_i::SALOMEDS_AttributeFlags_i
47 // purpose  : Constructor
48 //=======================================================================
49 SALOMEDS_AttributeFlags_i::SALOMEDS_AttributeFlags_i(
50   const Handle(SALOMEDS_FlagsAttribute)& attr, CORBA::ORB_ptr orb )
51 {
52   _myOrb = CORBA::ORB::_duplicate( orb );
53   _myAttr = attr;
54 }
55
56 //=======================================================================
57 // function : SALOMEDS_AttributeFlags_i::~SALOMEDS_AttributeFlags_i
58 // purpose  : Destructor
59 //=======================================================================
60 SALOMEDS_AttributeFlags_i::~SALOMEDS_AttributeFlags_i()
61 {
62 }
63
64 //=======================================================================
65 // function : SALOMEDS_AttributeFlags_i::GetFlags
66 // purpose  : Get all flags as integer value
67 //=======================================================================
68 CORBA::Long SALOMEDS_AttributeFlags_i::GetFlags()
69 {
70   return Handle(SALOMEDS_FlagsAttribute)::DownCast( _myAttr )->Get();
71 }
72
73 //=======================================================================
74 // function : SALOMEDS_AttributeFlags_i::SetFlags
75 // purpose  : Set all flags as integer value
76 //=======================================================================
77 void SALOMEDS_AttributeFlags_i::SetFlags( CORBA::Long theFlags )
78 {
79   Handle(SALOMEDS_FlagsAttribute)::DownCast( _myAttr )->Set( theFlags );
80 }
81
82 //=======================================================================
83 // function : SALOMEDS_AttributeFlags_i::Get
84 // purpose  : Get specified flag
85 //=======================================================================
86 CORBA::Boolean SALOMEDS_AttributeFlags_i::Get( CORBA::Long theFlag )
87 {
88   return Handle(SALOMEDS_FlagsAttribute)::DownCast( _myAttr )->Get() & theFlag ? true : false;
89 }
90
91 //=======================================================================
92 // function : SALOMEDS_AttributeFlags_i::Set
93 // purpose  : Set/Unset specified flag
94 //=======================================================================
95 void SALOMEDS_AttributeFlags_i::Set( CORBA::Long theFlag, CORBA::Boolean theValue )
96 {
97   Handle(SALOMEDS_FlagsAttribute) anAttr =
98     Handle(SALOMEDS_FlagsAttribute)::DownCast( _myAttr );
99   if ( theValue )
100     anAttr->Set( anAttr->Get() | theFlag );
101   else
102     anAttr->Set( anAttr->Get() & ~theFlag );
103 }
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121