mirror of
https://git.salome-platform.org/gitpub/modules/geom.git
synced 2024-12-31 03:40:35 +05:00
0022760: [EDF] Improvement of the What Is operation
This commit is contained in:
parent
f4bb8ea64a
commit
f00228b813
@ -2,8 +2,11 @@
|
|||||||
|
|
||||||
\page whatis_page What Is ?
|
\page whatis_page What Is ?
|
||||||
|
|
||||||
This operation provides the list of types and quantities of all topological entities, composing
|
This operation provides the list of types and quantities of all topological
|
||||||
the selected geometrical object.
|
entities, composing the selected geometrical object.
|
||||||
|
|
||||||
|
For the COMPOUND or COMPSOLID shape, additionally the information about
|
||||||
|
"flat" content is shown - a number of "simple" top-level shapes enclosed into the compound.
|
||||||
|
|
||||||
\image html measures8.png
|
\image html measures8.png
|
||||||
|
|
||||||
|
@ -1654,9 +1654,11 @@ TCollection_AsciiString GEOMImpl_IMeasureOperations::WhatIs (Handle(GEOM_Object)
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
OCC_CATCH_SIGNALS;
|
OCC_CATCH_SIGNALS;
|
||||||
int iType, nbTypes [TopAbs_SHAPE];
|
int iType, nbTypes [TopAbs_SHAPE], nbFlatType [TopAbs_SHAPE];
|
||||||
for (iType = 0; iType < TopAbs_SHAPE; ++iType)
|
for (iType = 0; iType < TopAbs_SHAPE; ++iType) {
|
||||||
nbTypes[iType] = 0;
|
nbTypes[iType] = 0;
|
||||||
|
nbFlatType[iType] = 0;
|
||||||
|
}
|
||||||
nbTypes[aShape.ShapeType()]++;
|
nbTypes[aShape.ShapeType()]++;
|
||||||
|
|
||||||
TopTools_MapOfShape aMapOfShape;
|
TopTools_MapOfShape aMapOfShape;
|
||||||
@ -1666,12 +1668,16 @@ TCollection_AsciiString GEOMImpl_IMeasureOperations::WhatIs (Handle(GEOM_Object)
|
|||||||
|
|
||||||
TopTools_ListIteratorOfListOfShape itL (aListOfShape);
|
TopTools_ListIteratorOfListOfShape itL (aListOfShape);
|
||||||
for (; itL.More(); itL.Next()) {
|
for (; itL.More(); itL.Next()) {
|
||||||
TopoDS_Iterator it (itL.Value());
|
TopoDS_Shape sp = itL.Value();
|
||||||
|
TopoDS_Iterator it (sp);
|
||||||
for (; it.More(); it.Next()) {
|
for (; it.More(); it.Next()) {
|
||||||
TopoDS_Shape s = it.Value();
|
TopoDS_Shape s = it.Value();
|
||||||
if (aMapOfShape.Add(s)) {
|
if (aMapOfShape.Add(s)) {
|
||||||
aListOfShape.Append(s);
|
aListOfShape.Append(s);
|
||||||
nbTypes[s.ShapeType()]++;
|
nbTypes[s.ShapeType()]++;
|
||||||
|
if ((sp.ShapeType() == TopAbs_COMPOUND) || (sp.ShapeType() == TopAbs_COMPSOLID)) {
|
||||||
|
nbFlatType[s.ShapeType()]++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1684,7 +1690,23 @@ TCollection_AsciiString GEOMImpl_IMeasureOperations::WhatIs (Handle(GEOM_Object)
|
|||||||
Astr = Astr + " SOLID : " + TCollection_AsciiString(nbTypes[TopAbs_SOLID]) + "\n";
|
Astr = Astr + " SOLID : " + TCollection_AsciiString(nbTypes[TopAbs_SOLID]) + "\n";
|
||||||
Astr = Astr + " COMPSOLID : " + TCollection_AsciiString(nbTypes[TopAbs_COMPSOLID]) + "\n";
|
Astr = Astr + " COMPSOLID : " + TCollection_AsciiString(nbTypes[TopAbs_COMPSOLID]) + "\n";
|
||||||
Astr = Astr + " COMPOUND : " + TCollection_AsciiString(nbTypes[TopAbs_COMPOUND]) + "\n";
|
Astr = Astr + " COMPOUND : " + TCollection_AsciiString(nbTypes[TopAbs_COMPOUND]) + "\n";
|
||||||
Astr = Astr + " SHAPE : " + TCollection_AsciiString(aMapOfShape.Extent());
|
Astr = Astr + " SHAPE : " + TCollection_AsciiString(aMapOfShape.Extent()) + "\n";
|
||||||
|
|
||||||
|
if ((aShape.ShapeType() == TopAbs_COMPOUND) || (aShape.ShapeType() == TopAbs_COMPSOLID)){
|
||||||
|
Astr = Astr + " --------------------- \n Flat content : \n";
|
||||||
|
if (nbFlatType[TopAbs_VERTEX] > 0)
|
||||||
|
Astr = Astr + " VERTEX : " + TCollection_AsciiString(nbFlatType[TopAbs_VERTEX]) + "\n";
|
||||||
|
if (nbFlatType[TopAbs_EDGE] > 0)
|
||||||
|
Astr = Astr + " EDGE : " + TCollection_AsciiString(nbFlatType[TopAbs_EDGE]) + "\n";
|
||||||
|
if (nbFlatType[TopAbs_WIRE] > 0)
|
||||||
|
Astr = Astr + " WIRE : " + TCollection_AsciiString(nbFlatType[TopAbs_WIRE]) + "\n";
|
||||||
|
if (nbFlatType[TopAbs_FACE] > 0)
|
||||||
|
Astr = Astr + " FACE : " + TCollection_AsciiString(nbFlatType[TopAbs_FACE]) + "\n";
|
||||||
|
if (nbFlatType[TopAbs_SHELL] > 0)
|
||||||
|
Astr = Astr + " SHELL : " + TCollection_AsciiString(nbFlatType[TopAbs_SHELL]) + "\n";
|
||||||
|
if (nbFlatType[TopAbs_SOLID] > 0)
|
||||||
|
Astr = Astr + " SOLID : " + TCollection_AsciiString(nbFlatType[TopAbs_SOLID]) + "\n";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (Standard_Failure) {
|
catch (Standard_Failure) {
|
||||||
Handle(Standard_Failure) aFail = Standard_Failure::Caught();
|
Handle(Standard_Failure) aFail = Standard_Failure::Caught();
|
||||||
|
@ -121,13 +121,9 @@ MeasureGUI_WhatisDlg::MeasureGUI_WhatisDlg( GeometryGUI* GUI, QWidget* parent )
|
|||||||
myGrp->LineEdit1->setReadOnly( true );
|
myGrp->LineEdit1->setReadOnly( true );
|
||||||
|
|
||||||
myGrp->TextEdit1->setReadOnly( true );
|
myGrp->TextEdit1->setReadOnly( true );
|
||||||
// fix height to fit all text
|
myGrp->TextEdit1->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ) );
|
||||||
myGrp->TextEdit1->setLineWrapMode( QTextEdit::NoWrap );
|
QFontMetrics fm( myGrp->TextEdit1->font() );
|
||||||
// myGrp->TextEdit1->setTextFormat( Qt::PlainText ); // VSR : TODO
|
myGrp->TextEdit1->setMinimumHeight( fm.height()*20 );
|
||||||
QString allLines ("\n\n\n\n\n\n\n\n\n"); // 10 lines
|
|
||||||
myGrp->TextEdit1->setText( allLines );
|
|
||||||
int sbHeight = myGrp->TextEdit1->horizontalScrollBar()->height();
|
|
||||||
myGrp->TextEdit1->setFixedHeight( myGrp->TextEdit1->document()->size().height() + sbHeight );
|
|
||||||
|
|
||||||
myGrp->TextLabel2->setText( tr( "GEOM_KIND_OF_SHAPE" ) );
|
myGrp->TextLabel2->setText( tr( "GEOM_KIND_OF_SHAPE" ) );
|
||||||
myGrp->LineEdit2->setReadOnly( true );
|
myGrp->LineEdit2->setReadOnly( true );
|
||||||
|
Loading…
Reference in New Issue
Block a user