133 lines
3.3 KiB
Plaintext
133 lines
3.3 KiB
Plaintext
// Created by: Peter KURNEV
|
|
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
|
//
|
|
// This file is part of Open CASCADE Technology software library.
|
|
//
|
|
// This library is free software; you can redistribute it and/or modify it under
|
|
// the terms of the GNU Lesser General Public License version 2.1 as published
|
|
// by the Free Software Foundation, with special exception defined in the file
|
|
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
|
// distribution for complete text of the license and disclaimer of any warranty.
|
|
//
|
|
// Alternatively, this file may be used under the terms of Open CASCADE
|
|
// commercial license or contractual agreement.
|
|
|
|
//=======================================================================
|
|
// function: HasBRep
|
|
// purpose:
|
|
//=======================================================================
|
|
inline Standard_Boolean BOPDS_Tools::HasBRep(const TopAbs_ShapeEnum aTi)
|
|
{
|
|
return (aTi == TopAbs_VERTEX || aTi == TopAbs_EDGE || aTi == TopAbs_FACE);
|
|
}
|
|
|
|
//=======================================================================
|
|
// function: IsInterfering
|
|
// purpose:
|
|
//=======================================================================
|
|
inline Standard_Boolean BOPDS_Tools::IsInterfering(const TopAbs_ShapeEnum aTi)
|
|
{
|
|
return (BOPDS_Tools::HasBRep(aTi) || aTi == TopAbs_SOLID);
|
|
}
|
|
|
|
//=======================================================================
|
|
// function : TypeToInteger
|
|
// purpose :
|
|
//=======================================================================
|
|
inline Standard_Integer BOPDS_Tools::TypeToInteger(const TopAbs_ShapeEnum aType1,
|
|
const TopAbs_ShapeEnum aType2)
|
|
{
|
|
Standard_Integer iRet, iT1, iT2, iX;
|
|
//
|
|
iRet = -1;
|
|
iT1 = BOPDS_Tools::TypeToInteger(aType1);
|
|
iT2 = BOPDS_Tools::TypeToInteger(aType2);
|
|
//
|
|
iX = iT2 * 10 + iT1;
|
|
switch (iX)
|
|
{
|
|
case 77:
|
|
iRet = 0; // VV
|
|
break;
|
|
case 76:
|
|
case 67:
|
|
iRet = 1; // VE
|
|
break;
|
|
case 66:
|
|
iRet = 2; // EE
|
|
break;
|
|
case 74:
|
|
case 47:
|
|
iRet = 3; // VF
|
|
break;
|
|
case 64:
|
|
case 46:
|
|
iRet = 4; // EF
|
|
break;
|
|
case 44:
|
|
iRet = 5; // FF
|
|
break;
|
|
case 72:
|
|
case 27:
|
|
iRet = 6; // VZ
|
|
break;
|
|
case 62:
|
|
case 26:
|
|
iRet = 7; // EZ
|
|
break;
|
|
case 42:
|
|
case 24:
|
|
iRet = 8; // FZ
|
|
break;
|
|
case 22:
|
|
iRet = 9; // ZZ
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
return iRet;
|
|
}
|
|
|
|
//=======================================================================
|
|
// function : TypeToInteger
|
|
// purpose :
|
|
//=======================================================================
|
|
inline Standard_Integer BOPDS_Tools::TypeToInteger(const TopAbs_ShapeEnum aType1)
|
|
{
|
|
Standard_Integer iRet = 9;
|
|
//
|
|
switch (aType1)
|
|
{
|
|
case TopAbs_COMPOUND:
|
|
iRet = 0;
|
|
break;
|
|
case TopAbs_COMPSOLID:
|
|
iRet = 1;
|
|
break;
|
|
case TopAbs_SOLID:
|
|
iRet = 2;
|
|
break;
|
|
case TopAbs_SHELL:
|
|
iRet = 3;
|
|
break;
|
|
case TopAbs_FACE:
|
|
iRet = 4;
|
|
break;
|
|
case TopAbs_WIRE:
|
|
iRet = 5;
|
|
break;
|
|
case TopAbs_EDGE:
|
|
iRet = 6;
|
|
break;
|
|
case TopAbs_VERTEX:
|
|
iRet = 7;
|
|
break;
|
|
case TopAbs_SHAPE:
|
|
iRet = 8;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
return iRet;
|
|
}
|