0031642: Visualization - crash in Graphic3d_Structure::SetVisual() on redisplaying...
[occt.git] / src / Transfer / Transfer_Mapper.gxx
1 // Copyright (c) 1999-2014 OPEN CASCADE SAS
2 //
3 // This file is part of Open CASCADE Technology software library.
4 //
5 // This library is free software; you can redistribute it and/or modify it under
6 // the terms of the GNU Lesser General Public License version 2.1 as published
7 // by the Free Software Foundation, with special exception defined in the file
8 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
9 // distribution for complete text of the license and disclaimer of any warranty.
10 //
11 // Alternatively, this file may be used under the terms of Open CASCADE
12 // commercial license or contractual agreement.
13
14 //#include <Transfer_Mapper.ixx>
15 #include <Standard_Integer.hxx>
16
17
18 Transfer_Mapper::Transfer_Mapper (const TheKey& akey)
19     : theval (akey)
20 { SetHashCode ( TheHasher::HashCode (akey, IntegerLast() ) ); }
21
22
23     const TheKey&  Transfer_Mapper::Value () const
24       {  return theval;  }
25
26     Standard_Boolean  Transfer_Mapper::Equates
27   (const Handle(Transfer_Finder)& other) const
28 {
29   if (other.IsNull()) return Standard_False;
30   if (GetHashCode() != other->GetHashCode()) return Standard_False;
31   if (other->DynamicType() != DynamicType()) return Standard_False;
32   Handle(Transfer_Mapper) another = Handle(Transfer_Mapper)::DownCast(other);
33 //  return (theval == another->Value());
34   return  TheHasher::IsEqual (theval,another->Value());
35 }
36
37     Handle(Standard_Type)  Transfer_Mapper::ValueType () const
38       {  return TheInfo::Type(theval);  }
39
40     Standard_CString  Transfer_Mapper::ValueTypeName () const
41       {  return TheInfo::TypeName(theval);  }