Back to index

salome-kernel  6.5.0
SALOMEDSImpl_AttributeGraphic.cxx
Go to the documentation of this file.
00001 // Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
00002 //
00003 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
00004 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
00005 //
00006 // This library is free software; you can redistribute it and/or
00007 // modify it under the terms of the GNU Lesser General Public
00008 // License as published by the Free Software Foundation; either
00009 // version 2.1 of the License.
00010 //
00011 // This library is distributed in the hope that it will be useful,
00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014 // Lesser General Public License for more details.
00015 //
00016 // You should have received a copy of the GNU Lesser General Public
00017 // License along with this library; if not, write to the Free Software
00018 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
00019 //
00020 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
00021 //
00022 
00023 //  File   : SALOMEDSImpl_AttributeGraphic.cxx
00024 //  Author : Sergey LITONIN
00025 //  Module : SALOME
00026 //
00027 #include "SALOMEDSImpl_AttributeGraphic.hxx"
00028 #include "DF_Attribute.hxx"
00029 
00030 /*
00031   Class       : SALOMEDSImpl_AttributeGraphic
00032   Description : This class is intended for storing information about
00033                 graphic representation of objects in dirrent views
00034 */
00035 
00036 //=======================================================================
00037 //function : GetID
00038 //purpose  : Get GUID of this attribute
00039 //=======================================================================
00040 const std::string& SALOMEDSImpl_AttributeGraphic::GetID()
00041 {
00042   static std::string SALOMEDSImpl_AttributeGraphicID( "F17AE8F0-E354-4d6f-8E42-38385C36E67E" );
00043   return SALOMEDSImpl_AttributeGraphicID;
00044 }
00045 
00046 //=======================================================================
00047 //function : SALOMEDSImpl_AttributeGraphic
00048 //purpose  : Empty Constructor
00049 //=======================================================================
00050 SALOMEDSImpl_AttributeGraphic::SALOMEDSImpl_AttributeGraphic()
00051 :SALOMEDSImpl_GenericAttribute("AttributeGraphic")
00052 {
00053 }
00054 
00055 //=======================================================================
00056 //function : ~SALOMEDSImpl_AttributeGraphic
00057 //purpose  : Destructor
00058 //=======================================================================
00059 SALOMEDSImpl_AttributeGraphic::~SALOMEDSImpl_AttributeGraphic()
00060 {
00061 }
00062 
00063 //=======================================================================
00064 //function : SetVisibility
00065 //purpose  : Set visibility of object in given view
00066 //=======================================================================
00067 void SALOMEDSImpl_AttributeGraphic::SetVisibility(const int theViewId,
00068                                                   const bool theValue )
00069 {
00070   if ( myVisibility.find( theViewId ) != myVisibility.end() && myVisibility[theViewId] == theValue )
00071     return;
00072 
00073   Backup();
00074   myVisibility[ theViewId ] = theValue ? 1 : 0;
00075 }
00076 
00077 
00078 //=======================================================================
00079 //function : Get
00080 //purpose  : Get visibility of object in given view
00081 //=======================================================================
00082 bool SALOMEDSImpl_AttributeGraphic::GetVisibility(const int theViewId )
00083 {
00084   bool isVisible = false;
00085   if(myVisibility.find( theViewId )!=myVisibility.end()) 
00086     isVisible = (bool)myVisibility[theViewId]; 
00087   else 
00088     isVisible = false;
00089   
00090   return isVisible;  
00091 }
00092 
00093 
00094 //=======================================================================
00095 //function : ID
00096 //purpose  : Get GUID of this attribute
00097 //=======================================================================
00098 const std::string& SALOMEDSImpl_AttributeGraphic::ID () const
00099 {
00100   return GetID();
00101 }
00102 
00103 
00104 //=======================================================================
00105 //function : NewEmpty
00106 //purpose  : Create new empty attribute
00107 //=======================================================================
00108 DF_Attribute* SALOMEDSImpl_AttributeGraphic::NewEmpty () const
00109 {
00110   return new SALOMEDSImpl_AttributeGraphic ();
00111 }
00112 
00113 //=======================================================================
00114 //function : SetVisibility
00115 //purpose  : Set visibility of object in all views
00116 //=======================================================================
00117 void SALOMEDSImpl_AttributeGraphic::SetVisibility( const std::map<int, int>& theMap )
00118 {
00119   myVisibility = theMap;
00120 }
00121 
00122 //=======================================================================
00123 //function : SetVisibility
00124 //purpose  : Get visibility of object in all views
00125 //=======================================================================
00126 const std::map<int, int>& SALOMEDSImpl_AttributeGraphic::GetVisibility()
00127 {
00128   return myVisibility;
00129 }
00130 
00131 //=======================================================================
00132 //function : Restore
00133 //purpose  : Restore value of attribute with value of theWith one
00134 //=======================================================================
00135 void SALOMEDSImpl_AttributeGraphic::Restore( DF_Attribute* theWith )
00136 {
00137   SALOMEDSImpl_AttributeGraphic* anAttr =
00138     dynamic_cast<SALOMEDSImpl_AttributeGraphic*>( theWith );
00139 
00140   if ( anAttr )
00141     SetVisibility( anAttr->GetVisibility() );
00142 }
00143 
00144 //=======================================================================
00145 //function : Paste
00146 //purpose  : Paste value of current attribute to the value of entry one
00147 //=======================================================================
00148 void SALOMEDSImpl_AttributeGraphic::Paste( DF_Attribute* theInto)
00149 {
00150   SALOMEDSImpl_AttributeGraphic* anAttr =
00151     dynamic_cast<SALOMEDSImpl_AttributeGraphic*>( theInto );
00152 
00153   if ( anAttr )
00154     anAttr->SetVisibility( myVisibility );
00155 }
00156