Loading files
3d097a032This file is pinned to the selected release. Download the original to open it in your design tool.
// Created on: 1994-03-18
// Created by: Jean Yves LEBEY
// Copyright (c) 1994-1999 Matra Datavision
// 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.
#include <TopOpeBRepDS.hxx>
#include <TCollection_AsciiString.hxx>
#include <TopOpeBRepDS_define.hxx>
//=======================================================================
// function : Print the name of a State
//=======================================================================
TCollection_AsciiString TopOpeBRepDS::SPrint(const TopAbs_State S)
{
TCollection_AsciiString s;
switch (S)
{
case TopAbs_IN:
s = s + "IN";
break;
case TopAbs_OUT:
s = s + "OU";
break;
case TopAbs_ON:
s = s + "ON";
break;
case TopAbs_UNKNOWN:
s = s + "UN";
break;
}
return s;
}
Standard_OStream& TopOpeBRepDS::Print(const TopAbs_State S, Standard_OStream& OS)
{
OS << TopOpeBRepDS::SPrint(S);
return OS;
}
//=======================================================================
// purpose : print the name of a Kind
//=======================================================================
TCollection_AsciiString TopOpeBRepDS::SPrint(const TopOpeBRepDS_Kind k)
{
TCollection_AsciiString s;
switch (k)
{
case TopOpeBRepDS_POINT:
s = s + "PO";
break;
case TopOpeBRepDS_CURVE:
s = s + "CU";
break;
case TopOpeBRepDS_SURFACE:
s = s + "SU";
break;
case TopOpeBRepDS_VERTEX:
s = s + "VE";
break;
case TopOpeBRepDS_EDGE:
s = s + "ED";
break;
case TopOpeBRepDS_WIRE:
s = s + "WI";
break;
case TopOpeBRepDS_FACE:
s = s + "FA";
break;
case TopOpeBRepDS_SHELL:
s = s + "SH";
break;
case TopOpeBRepDS_SOLID:
s = s + "SO";
break;
case TopOpeBRepDS_COMPSOLID:
s = s + "CS";
break;
case TopOpeBRepDS_COMPOUND:
s = s + "CO";
break;
default:
break;
}
return s;
}
TCollection_AsciiString TopOpeBRepDS::SPrint(const TopOpeBRepDS_Kind k,
const int i,
const TCollection_AsciiString& S1,
const TCollection_AsciiString& S2)
{
TCollection_AsciiString si = "";
if (i >= 0 && i <= 9)
{
si = " ";
}
TCollection_AsciiString s =
S1 + "(" + TopOpeBRepDS::SPrint(k) + "," + si + TCollection_AsciiString(i) + ")" + S2;
return s;
}
Standard_OStream& TopOpeBRepDS::Print(const TopOpeBRepDS_Kind k, Standard_OStream& OS)
{
OS << TopOpeBRepDS::SPrint(k);
return OS;
}
Standard_OStream& TopOpeBRepDS::Print(const TopOpeBRepDS_Kind k,
const int i,
Standard_OStream& OS,
const TCollection_AsciiString& S1,
const TCollection_AsciiString& S2)
{
OS << TopOpeBRepDS::SPrint(k, i, S1, S2);
OS.flush();
return OS;
}
//=======================================================================
// purpose : print the name of a ShapeEnum
//=======================================================================
TCollection_AsciiString TopOpeBRepDS::SPrint(const TopAbs_ShapeEnum t)
{
return TopOpeBRepDS::SPrint(TopOpeBRepDS::ShapeToKind(t));
}
TCollection_AsciiString TopOpeBRepDS::SPrint(const TopAbs_ShapeEnum t, const int i)
{
return TopOpeBRepDS::SPrint(TopOpeBRepDS::ShapeToKind(t), i);
}
Standard_OStream& TopOpeBRepDS::Print(const TopAbs_ShapeEnum t, const int i, Standard_OStream& s)
{
s << TopOpeBRepDS::SPrint(TopOpeBRepDS::ShapeToKind(t), i);
return s;
}
//=======================================================================
// purpose : print the name of a Orientation
//=======================================================================
TCollection_AsciiString TopOpeBRepDS::SPrint(const TopAbs_Orientation o)
{
return TopAbs::ShapeOrientationToString(o);
}
//=======================================================================
// purpose : print the name of a Config
//=======================================================================
TCollection_AsciiString TopOpeBRepDS::SPrint(const TopOpeBRepDS_Config C)
{
TCollection_AsciiString SS;
switch (C)
{
case TopOpeBRepDS_UNSHGEOMETRY:
SS = "UNSH";
break;
case TopOpeBRepDS_SAMEORIENTED:
SS = "SAME";
break;
case TopOpeBRepDS_DIFFORIENTED:
SS = "DIFF";
break;
}
return SS;
}
Standard_OStream& TopOpeBRepDS::Print(const TopOpeBRepDS_Config C, Standard_OStream& OS)
{
OS << TopOpeBRepDS::SPrint(C);
return OS;
}
//=================================================================================================
bool TopOpeBRepDS::IsTopology(const TopOpeBRepDS_Kind k)
{
switch (k)
{
case TopOpeBRepDS_COMPOUND:
return true;
break;
case TopOpeBRepDS_COMPSOLID:
return true;
break;
case TopOpeBRepDS_SOLID:
return true;
break;
case TopOpeBRepDS_SHELL:
return true;
break;
case TopOpeBRepDS_FACE:
return true;
break;
case TopOpeBRepDS_WIRE:
return true;
break;
case TopOpeBRepDS_EDGE:
return true;
break;
case TopOpeBRepDS_VERTEX:
return true;
break;
default:
return false;
}
}
//=================================================================================================
bool TopOpeBRepDS::IsGeometry(const TopOpeBRepDS_Kind k)
{
switch (k)
{
case TopOpeBRepDS_SURFACE:
return true;
break;
case TopOpeBRepDS_CURVE:
return true;
break;
case TopOpeBRepDS_POINT:
return true;
break;
default:
break;
}
return false;
}
//=================================================================================================
TopOpeBRepDS_Kind TopOpeBRepDS::ShapeToKind(const TopAbs_ShapeEnum S)
{
TopOpeBRepDS_Kind res = TopOpeBRepDS_SOLID; // bidon
switch (S)
{
case TopAbs_VERTEX:
res = TopOpeBRepDS_VERTEX;
break;
case TopAbs_EDGE:
res = TopOpeBRepDS_EDGE;
break;
case TopAbs_WIRE:
res = TopOpeBRepDS_WIRE;
break;
case TopAbs_FACE:
res = TopOpeBRepDS_FACE;
break;
case TopAbs_SHELL:
res = TopOpeBRepDS_SHELL;
break;
case TopAbs_SOLID:
res = TopOpeBRepDS_SOLID;
break;
case TopAbs_COMPSOLID:
res = TopOpeBRepDS_COMPSOLID;
break;
case TopAbs_COMPOUND:
res = TopOpeBRepDS_COMPOUND;
break;
default:
throw Standard_ProgramError("TopOpeBRepDS::ShapeToKind");
}
return res;
}
//=================================================================================================
TopAbs_ShapeEnum TopOpeBRepDS::KindToShape(const TopOpeBRepDS_Kind K)
{
TopAbs_ShapeEnum res = TopAbs_SHAPE; // bidon
if (!TopOpeBRepDS::IsTopology(K))
{
return res;
}
switch (K)
{
case TopOpeBRepDS_VERTEX:
res = TopAbs_VERTEX;
break;
case TopOpeBRepDS_EDGE:
res = TopAbs_EDGE;
break;
case TopOpeBRepDS_WIRE:
res = TopAbs_WIRE;
break;
case TopOpeBRepDS_FACE:
res = TopAbs_FACE;
break;
case TopOpeBRepDS_SHELL:
res = TopAbs_SHELL;
break;
case TopOpeBRepDS_SOLID:
res = TopAbs_SOLID;
break;
case TopOpeBRepDS_COMPSOLID:
res = TopAbs_COMPSOLID;
break;
case TopOpeBRepDS_COMPOUND:
res = TopAbs_COMPOUND;
break;
default:
throw Standard_ProgramError("TopOpeBRepDS::KindToShape");
}
return res;
}