mirror of
https://git.salome-platform.org/gitpub/modules/geom.git
synced 2025-02-26 02:05:36 +05:00
23034: EDF GEOM: Information after a transformation without copy
Fix regression of geom/imps_07/H9 -- no info on field steps
This commit is contained in:
parent
8d74e7ed1f
commit
18a5df8c67
@ -493,24 +493,17 @@ Handle(TColStd_HSequenceOfTransient) GEOM_BaseObject::GetLastDependency()
|
|||||||
*/
|
*/
|
||||||
//================================================================================
|
//================================================================================
|
||||||
|
|
||||||
std::vector< Handle(TFunction_Driver)> GEOM_BaseObject::GetCreationDrivers()
|
Handle(TFunction_Driver) GEOM_BaseObject::GetCreationDriver(int funNb)
|
||||||
{
|
{
|
||||||
std::vector< Handle(TFunction_Driver)> aDriverVec;
|
Handle(TFunction_Driver) driver;
|
||||||
|
Handle(GEOM_Function) function = GetFunction(funNb);
|
||||||
for ( int i = 1, nb = GetNbFunctions(); i <= nb; ++i )
|
if ( !function.IsNull() )
|
||||||
{
|
{
|
||||||
Handle(GEOM_Function) function = GetFunction(i);
|
Standard_GUID aGUID = function->GetDriverGUID();
|
||||||
if ( !function.IsNull() )
|
if ( TFunction_DriverTable::Get()->FindDriver(aGUID, driver ))
|
||||||
{
|
driver->Init( function->GetEntry() );
|
||||||
Standard_GUID aGUID = function->GetDriverGUID();
|
|
||||||
aDriverVec.push_back( Handle(TFunction_Driver )() );
|
|
||||||
if ( TFunction_DriverTable::Get()->FindDriver(aGUID, aDriverVec.back() ))
|
|
||||||
aDriverVec.back()->Init( function->GetEntry() );
|
|
||||||
else
|
|
||||||
aDriverVec.pop_back();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return aDriverVec;
|
return driver;
|
||||||
}
|
}
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
@ -149,7 +149,7 @@ public:
|
|||||||
Standard_EXPORT Handle(TColStd_HSequenceOfTransient) GetLastDependency();
|
Standard_EXPORT Handle(TColStd_HSequenceOfTransient) GetLastDependency();
|
||||||
|
|
||||||
//Returns drivers creators of this object
|
//Returns drivers creators of this object
|
||||||
Standard_EXPORT std::vector< Handle(TFunction_Driver)> GetCreationDrivers();
|
Standard_EXPORT Handle(TFunction_Driver) GetCreationDriver(int funNb);
|
||||||
|
|
||||||
//###########################################################
|
//###########################################################
|
||||||
// Internal methods
|
// Internal methods
|
||||||
|
@ -83,6 +83,20 @@ GetCreationInformation(std::string& theOperationName,
|
|||||||
AddParam( theParams, "Step", data.GetStepID() );
|
AddParam( theParams, "Step", data.GetStepID() );
|
||||||
AddParam( theParams, "Stamp", data.GetStepStamp() );
|
AddParam( theParams, "Stamp", data.GetStepStamp() );
|
||||||
}
|
}
|
||||||
|
else if ( funType == GEOM_Field::FUN_CHANGE_COMP_NAMES )
|
||||||
|
{
|
||||||
|
theOperationName = "Change component names";
|
||||||
|
}
|
||||||
|
else if ( funType == GEOM_Field::FUN_CHANGE_STEP_STAMP )
|
||||||
|
{
|
||||||
|
theOperationName = "Change stamp";
|
||||||
|
AddParam( theParams, "Stamp", data.GetStepStamp() );
|
||||||
|
}
|
||||||
|
else if ( funType == GEOM_Field::FUN_CHANGE_VALUE )
|
||||||
|
{
|
||||||
|
theOperationName = "FIELD_EDIT";//"Change values";
|
||||||
|
AddParam( theParams, "Values", "..." );
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
|
@ -272,12 +272,13 @@ GEOM::CreationInformationSeq* GEOM_BaseObject_i::GetCreationInformation()
|
|||||||
{
|
{
|
||||||
GEOM::CreationInformationSeq_var info = new GEOM::CreationInformationSeq();
|
GEOM::CreationInformationSeq_var info = new GEOM::CreationInformationSeq();
|
||||||
|
|
||||||
std::vector< Handle(TFunction_Driver)> drivers = _impl->GetCreationDrivers();
|
int nbFun = _impl->GetNbFunctions();
|
||||||
info->length( drivers.size() );
|
info->length( nbFun );
|
||||||
int nbI = 0;
|
int nbI = 0;
|
||||||
for ( size_t i = 0; i < drivers.size(); ++i )
|
for ( int i = 1; i <= nbFun; ++i )
|
||||||
{
|
{
|
||||||
Handle(GEOM_BaseDriver) driver = Handle(GEOM_BaseDriver)::DownCast( drivers[i] );
|
Handle(GEOM_BaseDriver) driver =
|
||||||
|
Handle(GEOM_BaseDriver)::DownCast( _impl->GetCreationDriver( i ));
|
||||||
if ( !driver.IsNull() )
|
if ( !driver.IsNull() )
|
||||||
{
|
{
|
||||||
std::vector<GEOM_Param> params;
|
std::vector<GEOM_Param> params;
|
||||||
|
Loading…
Reference in New Issue
Block a user