1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-06-15 11:44:07 +03:00
occt/src/Standard/Standard_Size.hxx
2012-03-05 19:23:40 +04:00

37 lines
1.1 KiB
C++
Executable File

// File: Standard_Size.hxx
// Created: 22.08.06 19:14:29
// Author: Alexander GRIGORIEV
// Copyright: Open Cascade 2006
#ifndef _Standard_Size_HeaderFile
#define _Standard_Size_HeaderFile
// msv 26.05.2009: add HashCode and IsEqual functions
// ------------------------------------------------------------------
// Hascode : Computes a hashcoding value for a given value
// ------------------------------------------------------------------
inline Standard_Integer HashCode(const Standard_Size Val,
const Standard_Integer Upper)
{
Standard_Size aKey = ~Val + (Val << 18);
aKey ^= (aKey >> 31);
aKey *= 21;
aKey ^= (aKey >> 11);
aKey += (aKey << 6);
aKey ^= (aKey >> 22);
return (Standard_Integer(aKey & 0x7fffffff) % Upper) + 1;
}
// ------------------------------------------------------------------
// IsEqual : Returns Standard_True if two values are equal
// ------------------------------------------------------------------
inline Standard_Boolean IsEqual(const Standard_Size One,
const Standard_Size Two)
{
return One == Two;
}
#endif