summaryrefslogtreecommitdiff
path: root/src/MoniTool/MoniTool_SignShape.cxx
blob: 6ee13f5b0222b122a395cac12eb861534b4f9b1c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <MoniTool_SignShape.ixx>
#include <TopoDS_Shape.hxx>
#include <TopoDS_HShape.hxx>


    MoniTool_SignShape::MoniTool_SignShape ()    {  }

    Standard_CString  MoniTool_SignShape::Name () const
      {  return "SHAPE";  }

    TCollection_AsciiString  MoniTool_SignShape::Text
  (const Handle(Standard_Transient)& ent,
   const Handle(Standard_Transient)& context) const
{
  if (ent.IsNull()) return "";
  Handle(TopoDS_HShape) HS = Handle(TopoDS_HShape)::DownCast(ent);
  if (HS.IsNull()) return ent->DynamicType()->Name();
  TopoDS_Shape sh = HS->Shape();
  if (sh.IsNull()) return "SHAPE";
  switch (sh.ShapeType()) {
    case TopAbs_VERTEX    : return "VERTEX";
    case TopAbs_EDGE      : return "EDGE";
    case TopAbs_WIRE      : return "WIRE";
    case TopAbs_FACE      : return "FACE";
    case TopAbs_SHELL     : return "SHELL";
    case TopAbs_SOLID     : return "SOLID";
    case TopAbs_COMPSOLID : return "COMPSOLID";
    case TopAbs_COMPOUND  : return "COMPOUND";
      default : break;
  }
  return "SHAPE";
}