mirror of
https://git.salome-platform.org/gitpub/modules/geom.git
synced 2025-02-24 03:35:37 +05:00
Issues 0023327, 023428
- 23327: EDF - Additional lines in dump study - 23428: [CEA 2072] A dump with "Create Group" creates a lot of lines with "SubShapeAllIDs" and "GetSameIDs"
This commit is contained in:
parent
4d8c002472
commit
b59b99da3e
@ -90,6 +90,14 @@ static int MYDEBUG = 0;
|
||||
static int MYDEBUG = 0;
|
||||
#endif
|
||||
|
||||
// VSR 29/08/2017: 0023327, 0023428: eliminate unnecessary lines in Python dump
|
||||
// Next macro, when defined, causes appearing of SubShapeAllIDs(), SubShapeAllSortedIDs(), GetSameIDs()
|
||||
// and other such commands in Python dump.
|
||||
// See also GEOMImpl_IShapesOperations.cxx.
|
||||
// ---------------------------------------
|
||||
// #define DUMP_SUBSHAPE_IDS
|
||||
// ---------------------------------------
|
||||
|
||||
typedef std::map< TCollection_AsciiString, TCollection_AsciiString > TSting2StringMap;
|
||||
typedef std::map< TCollection_AsciiString, TObjectData > TSting2ObjDataMap;
|
||||
typedef std::map< TCollection_AsciiString, TObjectData* > TSting2ObjDataPtrMap;
|
||||
@ -165,6 +173,8 @@ static TCollection_AsciiString GetPublishCommands
|
||||
const TIntToListIntMap &theMapRefs,
|
||||
std::set< int > &thePublished);
|
||||
|
||||
void Prettify(TCollection_AsciiString& theScript);
|
||||
|
||||
//================================================================================
|
||||
/*!
|
||||
* \brief Fix up the name of python variable
|
||||
@ -869,6 +879,11 @@ TCollection_AsciiString GEOM_Engine::DumpPython(int theDocID,
|
||||
aScript.Insert( posToInsertGlobalVars, globalVars );
|
||||
}
|
||||
|
||||
// VSR 29/08/2017: 0023327, 0023428: eliminate unnecessary lines in Python dump
|
||||
#ifndef DUMP_SUBSHAPE_IDS
|
||||
Prettify(aScript);
|
||||
#endif
|
||||
|
||||
return aScript;
|
||||
}
|
||||
|
||||
@ -1918,6 +1933,43 @@ TCollection_AsciiString GetPublishCommands
|
||||
return aResult;
|
||||
}
|
||||
|
||||
void Prettify(TCollection_AsciiString& theScript)
|
||||
{
|
||||
TCollection_AsciiString output;
|
||||
static std::list<TCollection_AsciiString> ToRemove;
|
||||
if (ToRemove.empty()) {
|
||||
ToRemove.push_back("geompy.SubShapeAllIDs");
|
||||
ToRemove.push_back("geompy.SubShapeAllSortedCentresIDs");
|
||||
ToRemove.push_back("geompy.SubShapeAllSortedIDs");
|
||||
ToRemove.push_back("geompy.GetFreeFacesIDs");
|
||||
ToRemove.push_back("geompy.GetShapesOnBoxIDs");
|
||||
ToRemove.push_back("geompy.GetShapesOnShapeIDs");
|
||||
ToRemove.push_back("geompy.GetShapesOnPlaneIDs");
|
||||
ToRemove.push_back("geompy.GetShapesOnPlaneWithLocationIDs");
|
||||
ToRemove.push_back("geompy.GetShapesOnCylinderIDs");
|
||||
ToRemove.push_back("geompy.GetShapesOnCylinderWithLocationIDs");
|
||||
ToRemove.push_back("geompy.GetShapesOnSphereIDs");
|
||||
ToRemove.push_back("geompy.GetShapesOnQuadrangleIDs");
|
||||
ToRemove.push_back("geompy.GetSameIDs");
|
||||
}
|
||||
|
||||
int start = 1;
|
||||
while (start <= theScript.Length()) {
|
||||
int end = theScript.Location("\n", start, theScript.Length());
|
||||
if (end == -1) end = theScript.Length();
|
||||
TCollection_AsciiString line = theScript.SubString(start, end);
|
||||
bool found = false;
|
||||
for (std::list<TCollection_AsciiString>::const_iterator it = ToRemove.begin(); it != ToRemove.end() && !found; ++it)
|
||||
found = line.Search( *it ) != -1;
|
||||
if (!found)
|
||||
output += line;
|
||||
start = end + 1;
|
||||
}
|
||||
theScript = output;
|
||||
|
||||
//OK @@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
}
|
||||
|
||||
//================================================================================
|
||||
/*!
|
||||
* \brief Constructor
|
||||
|
@ -105,6 +105,14 @@
|
||||
#include <Standard_Failure.hxx>
|
||||
#include <Standard_ErrorHandler.hxx> // CAREFUL ! position of this file is critic : see Lucien PIGNOLONI / OCC
|
||||
|
||||
// VSR 29/08/2017: 0023327, 0023428: eliminate unnecessary lines in Python dump
|
||||
// Next macro, when defined, causes appearing of SubShapeAllIDs(), SubShapeAllSortedIDs(), GetSameIDs()
|
||||
// and other such commands in Python dump.
|
||||
// See also GEOM_Engine.cxx.
|
||||
// ---------------------------------------
|
||||
// #define DUMP_SUBSHAPE_IDS
|
||||
// ---------------------------------------
|
||||
|
||||
namespace {
|
||||
|
||||
void AddFlatSubShapes(const TopoDS_Shape& S, TopTools_ListOfShape& L, TopTools_MapOfShape& M)
|
||||
@ -1675,6 +1683,8 @@ Handle(TColStd_HSequenceOfInteger) GEOMImpl_IShapesOperations::SubShapeAllIDs
|
||||
|
||||
Handle(GEOM_Function) aFunction = theShape->GetLastFunction();
|
||||
|
||||
// VSR 29/08/2017: 0023327, 0023428: eliminate unnecessary lines in Python dump
|
||||
#ifdef DUMP_SUBSHAPE_IDS
|
||||
//Make a Python command
|
||||
GEOM::TPythonDump pd (aFunction, /*append=*/true);
|
||||
pd << "listSubShapeIDs = geompy.SubShapeAll";
|
||||
@ -1691,6 +1701,7 @@ Handle(TColStd_HSequenceOfInteger) GEOMImpl_IShapesOperations::SubShapeAllIDs
|
||||
break;
|
||||
default: ;
|
||||
}
|
||||
#endif // DUMP_SUBSHAPE_IDS
|
||||
|
||||
SetErrorCode(OK);
|
||||
return aSeq;
|
||||
@ -2250,9 +2261,12 @@ Handle(TColStd_HSequenceOfInteger) GEOMImpl_IShapesOperations::GetFreeFacesIDs
|
||||
//The explode doesn't change object so no new function is required.
|
||||
Handle(GEOM_Function) aFunction = theShape->GetLastFunction();
|
||||
|
||||
// VSR 29/08/2017: 0023327, 0023428: eliminate unnecessary lines in Python dump
|
||||
#ifdef DUMP_SUBSHAPE_IDS
|
||||
//Make a Python command
|
||||
GEOM::TPythonDump(aFunction, /*append=*/true)
|
||||
<< "listFreeFacesIDs = geompy.GetFreeFacesIDs(" << theShape << ")";
|
||||
#endif // DUMP_SUBSHAPE_IDS
|
||||
|
||||
SetErrorCode(OK);
|
||||
return aSeq;
|
||||
@ -2712,6 +2726,8 @@ Handle(TColStd_HSequenceOfInteger)
|
||||
// The GetShapesOnBox() doesn't change object so no new function is required.
|
||||
Handle(GEOM_Function) aFunction = GEOM::GetCreatedLast(theShape,theBox)->GetLastFunction();
|
||||
|
||||
// VSR 29/08/2017: 0023327, 0023428: eliminate unnecessary lines in Python dump
|
||||
#ifdef DUMP_SUBSHAPE_IDS
|
||||
// Make a Python command
|
||||
GEOM::TPythonDump(aFunction, /*append=*/true)
|
||||
<< "listShapesOnBoxIDs = geompy.GetShapesOnBoxIDs("
|
||||
@ -2719,6 +2735,7 @@ Handle(TColStd_HSequenceOfInteger)
|
||||
<< theShape << ", "
|
||||
<< TopAbs_ShapeEnum(theShapeType) << ", "
|
||||
<< theState << ")";
|
||||
#endif // DUMP_SUBSHAPE_IDS
|
||||
|
||||
SetErrorCode(OK);
|
||||
return aSeqOfIDs;
|
||||
@ -2907,13 +2924,16 @@ Handle(TColStd_HSequenceOfInteger)
|
||||
Handle(GEOM_Function) aFunction =
|
||||
GEOM::GetCreatedLast(theShape,theCheckShape)->GetLastFunction();
|
||||
|
||||
// VSR 29/08/2017: 0023327, 0023428: eliminate unnecessary lines in Python dump
|
||||
#ifdef DUMP_SUBSHAPE_IDS
|
||||
// Make a Python command
|
||||
GEOM::TPythonDump(aFunction, /*append=*/true)
|
||||
<< "listShapesOnBoxIDs = geompy.GetShapesOnShapeIDs("
|
||||
<< "listShapesOnShapeIDs = geompy.GetShapesOnShapeIDs("
|
||||
<< theCheckShape << ", "
|
||||
<< theShape << ", "
|
||||
<< TopAbs_ShapeEnum(theShapeType) << ", "
|
||||
<< theState << ")";
|
||||
#endif // DUMP_SUBSHAPE_IDS
|
||||
|
||||
SetErrorCode(OK);
|
||||
return aSeqOfIDs;
|
||||
@ -3915,10 +3935,13 @@ Handle(TColStd_HSequenceOfInteger) GEOMImpl_IShapesOperations::GetShapesOnPlaneI
|
||||
// The GetShapesOnPlaneIDs() doesn't change object so no new function is required.
|
||||
Handle(GEOM_Function) aFunction = GEOM::GetCreatedLast(theShape,theAx1)->GetLastFunction();
|
||||
|
||||
// VSR 29/08/2017: 0023327, 0023428: eliminate unnecessary lines in Python dump
|
||||
#ifdef DUMP_SUBSHAPE_IDS
|
||||
// Make a Python command
|
||||
GEOM::TPythonDump(aFunction, /*append=*/true)
|
||||
<< "listShapesOnPlane = geompy.GetShapesOnPlaneIDs"
|
||||
<< "(" << theShape << "," << aShapeType << "," << theAx1 << "," << theState << ")";
|
||||
#endif // DUMP_SUBSHAPE_IDS
|
||||
|
||||
SetErrorCode(OK);
|
||||
return aSeq;
|
||||
@ -3982,10 +4005,13 @@ Handle(TColStd_HSequenceOfInteger) GEOMImpl_IShapesOperations::GetShapesOnPlaneW
|
||||
// The GetShapesOnPlaneIDs() doesn't change object so no new function is required.
|
||||
Handle(GEOM_Function) aFunction = GEOM::GetCreatedLast(theShape,theAx1)->GetLastFunction();
|
||||
|
||||
// VSR 29/08/2017: 0023327, 0023428: eliminate unnecessary lines in Python dump
|
||||
#ifdef DUMP_SUBSHAPE_IDS
|
||||
// Make a Python command
|
||||
GEOM::TPythonDump(aFunction, /*append=*/true)
|
||||
<< "listShapesOnPlane = geompy.GetShapesOnPlaneWithLocationIDs"
|
||||
<< "(" << theShape << ", " << aShapeType << ", " << theAx1 << ", "<< thePnt << ", " << theState << ")";
|
||||
#endif // DUMP_SUBSHAPE_IDS
|
||||
|
||||
SetErrorCode(OK);
|
||||
return aSeq;
|
||||
@ -4028,11 +4054,14 @@ Handle(TColStd_HSequenceOfInteger) GEOMImpl_IShapesOperations::GetShapesOnCylind
|
||||
// The GetShapesOnCylinder() doesn't change object so no new function is required.
|
||||
Handle(GEOM_Function) aFunction = GEOM::GetCreatedLast(theShape,theAxis)->GetLastFunction();
|
||||
|
||||
// VSR 29/08/2017: 0023327, 0023428: eliminate unnecessary lines in Python dump
|
||||
#ifdef DUMP_SUBSHAPE_IDS
|
||||
// Make a Python command
|
||||
GEOM::TPythonDump(aFunction, /*append=*/true)
|
||||
<< "listShapesOnCylinder = geompy.GetShapesOnCylinderIDs"
|
||||
<< "(" << theShape << ", " << aShapeType << ", " << theAxis << ", "
|
||||
<< theRadius << ", " << theState << ")";
|
||||
#endif // DUMP_SUBSHAPE_IDS
|
||||
|
||||
SetErrorCode(OK);
|
||||
return aSeq;
|
||||
@ -4096,11 +4125,14 @@ Handle(TColStd_HSequenceOfInteger) GEOMImpl_IShapesOperations::GetShapesOnCylind
|
||||
Handle(GEOM_Function) aFunction =
|
||||
GEOM::GetCreatedLast(theShape, GEOM::GetCreatedLast(thePnt,theAxis))->GetLastFunction();
|
||||
|
||||
// VSR 29/08/2017: 0023327, 0023428: eliminate unnecessary lines in Python dump
|
||||
#ifdef DUMP_SUBSHAPE_IDS
|
||||
// Make a Python command
|
||||
GEOM::TPythonDump(aFunction, /*append=*/true)
|
||||
<< "listShapesOnCylinder = geompy.GetShapesOnCylinderWithLocationIDs"
|
||||
<< "(" << theShape << ", " << aShapeType << ", " << theAxis << ", "
|
||||
<< thePnt << ", " << theRadius << ", " << theState << ")";
|
||||
#endif // DUMP_SUBSHAPE_IDS
|
||||
|
||||
SetErrorCode(OK);
|
||||
return aSeq;
|
||||
@ -4146,11 +4178,14 @@ Handle(TColStd_HSequenceOfInteger) GEOMImpl_IShapesOperations::GetShapesOnSphere
|
||||
// The GetShapesOnSphere() doesn't change object so no new function is required.
|
||||
Handle(GEOM_Function) aFunction = GEOM::GetCreatedLast(theShape,theCenter)->GetLastFunction();
|
||||
|
||||
// VSR 29/08/2017: 0023327, 0023428: eliminate unnecessary lines in Python dump
|
||||
#ifdef DUMP_SUBSHAPE_IDS
|
||||
// Make a Python command
|
||||
GEOM::TPythonDump(aFunction, /*append=*/true)
|
||||
<< "listShapesOnCylinder = geompy.GetShapesOnSphereIDs"
|
||||
<< "listShapesOnSphere = geompy.GetShapesOnSphereIDs"
|
||||
<< "(" << theShape << ", " << aShapeType << ", " << theCenter << ", "
|
||||
<< theRadius << ", " << theState << ")";
|
||||
#endif // DUMP_SUBSHAPE_IDS
|
||||
|
||||
SetErrorCode(OK);
|
||||
return aSeq;
|
||||
@ -4390,6 +4425,8 @@ Handle(TColStd_HSequenceOfInteger)
|
||||
lastObj = GEOM::GetCreatedLast(lastObj,theBottomLeftPoint);
|
||||
Handle(GEOM_Function) aFunction = lastObj->GetLastFunction();
|
||||
|
||||
// VSR 29/08/2017: 0023327, 0023428: eliminate unnecessary lines in Python dump
|
||||
#ifdef DUMP_SUBSHAPE_IDS
|
||||
GEOM::TPythonDump(aFunction, /*append=*/true)
|
||||
<< "listShapesOnQuadrangle = geompy.GetShapesOnQuadrangleIDs("
|
||||
<< theShape << ", "
|
||||
@ -4399,6 +4436,7 @@ Handle(TColStd_HSequenceOfInteger)
|
||||
<< theBottomLeftPoint << ", "
|
||||
<< theBottomRigthPoint << ", "
|
||||
<< theState << ")";
|
||||
#endif // DUMP_SUBSHAPE_IDS
|
||||
|
||||
SetErrorCode(OK);
|
||||
return aSeqOfIDs;
|
||||
@ -5112,11 +5150,14 @@ Handle(TColStd_HSequenceOfInteger) GEOMImpl_IShapesOperations::GetSameIDs
|
||||
// The GetSameIDs() doesn't change object so no new function is required.
|
||||
Handle(GEOM_Function) aFunction = GEOM::GetCreatedLast(theShapeWhere,theShapeWhat)->GetLastFunction();
|
||||
|
||||
// VSR 29/08/2017: 0023327, 0023428: eliminate unnecessary lines in Python dump
|
||||
#ifdef DUMP_SUBSHAPE_IDS
|
||||
// Make a Python command
|
||||
GEOM::TPythonDump(aFunction, /*append=*/true)
|
||||
<< "listSameIDs = geompy.GetSameIDs("
|
||||
<< theShapeWhere << ", "
|
||||
<< theShapeWhat << ")";
|
||||
#endif // DUMP_SUBSHAPE_IDS
|
||||
return aSeq;
|
||||
} else {
|
||||
SetErrorCode(NOT_FOUND_ANY);
|
||||
|
Loading…
Reference in New Issue
Block a user