mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-12-26 01:10:35 +05:00
Support of python dump in SHAPER STUDY
This commit is contained in:
parent
ab494e654a
commit
2cdec6ec50
@ -567,7 +567,8 @@ _pyGen::_pyGen(Resource_DataMapOfAsciiStringAsciiString& theEntry2AccessorMethod
|
|||||||
myRemovedObjIDs( theRemovedObjIDs ),
|
myRemovedObjIDs( theRemovedObjIDs ),
|
||||||
myNbFilters( 0 ),
|
myNbFilters( 0 ),
|
||||||
myToKeepAllCommands( theToKeepAllCommands ),
|
myToKeepAllCommands( theToKeepAllCommands ),
|
||||||
myGeomIDNb(0), myGeomIDIndex(-1)
|
myGeomIDNb(0), myGeomIDIndex(-1),
|
||||||
|
myShaperIDNb(0), myShaperIDIndex(-1)
|
||||||
{
|
{
|
||||||
// make that GetID() to return TPythonDump::SMESHGenName()
|
// make that GetID() to return TPythonDump::SMESHGenName()
|
||||||
GetCreationCmd()->Clear();
|
GetCreationCmd()->Clear();
|
||||||
@ -575,30 +576,38 @@ _pyGen::_pyGen(Resource_DataMapOfAsciiStringAsciiString& theEntry2AccessorMethod
|
|||||||
GetCreationCmd()->GetString() += "=";
|
GetCreationCmd()->GetString() += "=";
|
||||||
|
|
||||||
// Find 1st digit of study entry by which a GEOM object differs from a SMESH object
|
// Find 1st digit of study entry by which a GEOM object differs from a SMESH object
|
||||||
if ( !theObjectNames.IsEmpty() )
|
if (!theObjectNames.IsEmpty())
|
||||||
{
|
{
|
||||||
// find a GEOM entry
|
// find a GEOM (aPass == 0) and SHAPERSTUDY (aPass == 1) entries
|
||||||
_pyID geomID;
|
for(int aPass = 0; aPass < 2; aPass++) {
|
||||||
SALOMEDS::SComponent_wrap geomComp = SMESH_Gen_i::getStudyServant()->FindComponent("GEOM");
|
_pyID geomID;
|
||||||
if ( geomComp->_is_nil() ) return;
|
SALOMEDS::SComponent_wrap geomComp = SMESH_Gen_i::getStudyServant()->
|
||||||
CORBA::String_var entry = geomComp->GetID();
|
FindComponent(aPass == 0 ? "GEOM" : "SHAPERSTUDY");
|
||||||
geomID = entry.in();
|
if (geomComp->_is_nil()) continue;
|
||||||
|
CORBA::String_var entry = geomComp->GetID();
|
||||||
|
geomID = entry.in();
|
||||||
|
|
||||||
// find a SMESH entry
|
// find a SMESH entry
|
||||||
_pyID smeshID;
|
_pyID smeshID;
|
||||||
Resource_DataMapIteratorOfDataMapOfAsciiStringAsciiString e2n( theObjectNames );
|
Resource_DataMapIteratorOfDataMapOfAsciiStringAsciiString e2n(theObjectNames);
|
||||||
for ( ; e2n.More() && smeshID.IsEmpty(); e2n.Next() )
|
for (; e2n.More() && smeshID.IsEmpty(); e2n.Next())
|
||||||
if ( _pyCommand::IsStudyEntry( e2n.Key() ))
|
if (_pyCommand::IsStudyEntry(e2n.Key()))
|
||||||
smeshID = e2n.Key();
|
smeshID = e2n.Key();
|
||||||
|
|
||||||
// find 1st difference between smeshID and geomID
|
// find 1st difference between smeshID and geomID
|
||||||
if ( !geomID.IsEmpty() && !smeshID.IsEmpty() )
|
if (!geomID.IsEmpty() && !smeshID.IsEmpty())
|
||||||
for ( int i = 1; i <= geomID.Length() && i <= smeshID.Length(); ++i )
|
for (int i = 1; i <= geomID.Length() && i <= smeshID.Length(); ++i)
|
||||||
if ( geomID.Value( i ) != smeshID.Value( i ))
|
if (geomID.Value(i) != smeshID.Value(i))
|
||||||
{
|
{
|
||||||
myGeomIDNb = geomID.Value( i );
|
if (aPass == 0) {
|
||||||
myGeomIDIndex = i;
|
myGeomIDNb = geomID.Value(i);
|
||||||
}
|
myGeomIDIndex = i;
|
||||||
|
} else {
|
||||||
|
myShaperIDNb = geomID.Value(i);
|
||||||
|
myShaperIDIndex = i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1680,13 +1689,11 @@ Handle(_pyObject) _pyGen::FindObject( const _pyID& theObjID ) const
|
|||||||
|
|
||||||
bool _pyGen::IsGeomObject(const _pyID& theObjID) const
|
bool _pyGen::IsGeomObject(const _pyID& theObjID) const
|
||||||
{
|
{
|
||||||
if ( myGeomIDNb )
|
bool isGeom = myGeomIDNb && myGeomIDIndex <= theObjID.Length() &&
|
||||||
{
|
int( theObjID.Value( myGeomIDIndex )) == myGeomIDNb;
|
||||||
return ( myGeomIDIndex <= theObjID.Length() &&
|
bool isShaper = myShaperIDNb && myShaperIDIndex <= theObjID.Length() &&
|
||||||
int( theObjID.Value( myGeomIDIndex )) == myGeomIDNb &&
|
int( theObjID.Value( myShaperIDIndex )) == myShaperIDNb;
|
||||||
_pyCommand::IsStudyEntry( theObjID ));
|
return ((isGeom || isShaper) && _pyCommand::IsStudyEntry( theObjID ));
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//================================================================================
|
//================================================================================
|
||||||
|
@ -323,7 +323,10 @@ private:
|
|||||||
Handle(_pyCommand) myLastCommand;
|
Handle(_pyCommand) myLastCommand;
|
||||||
int myNbFilters;
|
int myNbFilters;
|
||||||
bool myToKeepAllCommands;
|
bool myToKeepAllCommands;
|
||||||
|
// difference of entry and index of this difference
|
||||||
int myGeomIDNb, myGeomIDIndex;
|
int myGeomIDNb, myGeomIDIndex;
|
||||||
|
// difference of entry and index of this difference, specific for the SHAPER study
|
||||||
|
int myShaperIDNb, myShaperIDIndex;
|
||||||
std::map< _AString, ExportedMeshData > myFile2ExportedMesh;
|
std::map< _AString, ExportedMeshData > myFile2ExportedMesh;
|
||||||
Handle( _pyHypothesisReader ) myHypReader;
|
Handle( _pyHypothesisReader ) myHypReader;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user