1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-09 13:22:24 +03:00

0025167: STEP Reader - allow NextAssemblyUsageOccurance to accept ProductDefinitionShape as child instead of ProductDefinition

Workaround to allow NextAssemblyUsageOccurance accepting ProductDefinitionShape as child instead of ProductDefinition
This commit is contained in:
drazmyslovich
2014-08-19 13:49:37 +02:00
committed by bugmaster
parent 8a8be2aabe
commit bedd79c434
2 changed files with 31 additions and 1 deletions

View File

@@ -399,6 +399,7 @@ static void getListSDR(const Handle(StepRepr_ShapeAspect)& sa,
static void getSDR(const Handle(StepRepr_ProductDefinitionShape)& PDS,
Handle(TColStd_HSequenceOfTransient)& listSDR,
Handle(TColStd_HSequenceOfTransient)& listNAUO,
Handle(TColStd_HSequenceOfTransient)& listSDRAspect,
const Handle(Transfer_TransientProcess)& TP)
{
@@ -448,6 +449,15 @@ static void getSDR(const Handle(StepRepr_ProductDefinitionShape)& PDS,
getListSDR(sa,listSDRAspect,TP);
continue;
}
// NAUO is used to find sub-assemblies
Handle(StepRepr_NextAssemblyUsageOccurrence) NAUO =
Handle(StepRepr_NextAssemblyUsageOccurrence)::DownCast(subs4.Value());
if ( ! NAUO.IsNull() ) {
if ( PDS->Definition().ProductDefinition() == NAUO->RelatingProductDefinition() )
listNAUO->Append(NAUO);
continue;
}
}
}
@@ -480,7 +490,7 @@ static void getSDR(const Handle(StepRepr_ProductDefinitionShape)& PDS,
Handle(StepRepr_ProductDefinitionShape) PDS =
Handle(StepRepr_ProductDefinitionShape)::DownCast(subs3.Value());
if ( ! PDS.IsNull() ) {
getSDR(PDS,listSDR,listSDRAspect,TP);
getSDR(PDS,listSDR,listNAUO,listSDRAspect,TP);
continue;
}
// NAUO is used to find sub-assemblies