1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-09-08 14:17:06 +03:00

0028427: Data Exchange - Update Reference Manual for STEP format

- Update STEP manual
- Fix code style in several files
This commit is contained in:
ika
2017-01-17 12:18:42 +03:00
committed by bugmaster
parent 20aa0d3fdd
commit 63c71e2f68
13 changed files with 806 additions and 831 deletions

View File

@@ -253,8 +253,6 @@ Standard_Boolean STEPControl_ActorRead::Recognize
}
if (start->IsKind(STANDARD_TYPE(StepShape_ContextDependentShapeRepresentation))) {
// DeclareAndCast(StepShape_ContextDependentShapeRepresentation,CDSR,start);
// return Recognize (CDSR->RepresentationRelation());
return Standard_True;
// on fait le pari que, si ce n est pas transferable tel quel,
// des CDSR implicitement references le sont ...
@@ -670,7 +668,6 @@ Handle(TransferBRep_ShapeBinder) STEPControl_ActorRead::TransferEntity(const Han
Handle(StepRepr_ProductDefinitionShape) PDS =
Handle(StepRepr_ProductDefinitionShape)::DownCast(subs1.Value());
if(PDS.IsNull()) continue;
//IsPDS=Standard_True;
Interface_EntityIterator subs2 = graph.Sharings(PDS);
for (subs2.Start(); subs2.More(); subs2.Next()) {
Handle(StepShape_ContextDependentShapeRepresentation) CDSR =
@@ -689,7 +686,6 @@ Handle(TransferBRep_ShapeBinder) STEPControl_ActorRead::TransferEntity(const Han
DeclareAndCast(StepShape_ShapeDefinitionRepresentation,SDR,subs3.Value());
Handle(StepRepr_ProductDefinitionShape) PDS1 =
Handle(StepRepr_ProductDefinitionShape)::DownCast(SDR->Definition().PropertyDefinition());
//Handle(StepRepr_PropertyDefinition) PD = SDR->Definition().PropertyDefinition();
if(PDS1.IsNull()) continue;
Interface_EntityIterator subs4 = graph.Shareds(PDS1);
for (subs4.Start(); subs4.More(); subs4.Next()) {
@@ -871,10 +867,7 @@ Handle(TransferBRep_ShapeBinder) STEPControl_ActorRead::TransferEntity(const Han
if ( !myNMTool.IsPureNMShell(aCurrentShell) && !shellClosingsMap.Contains(aCurrentShell) )
brepBuilder.Add(compWithClosings, aCurrentShell);
}
comp = compWithClosings;
comp = compWithClosings;
}
// [END] Try to close OPEN Shells in I-DEAS case (ssv; 17.11.2010)
@@ -925,7 +918,6 @@ Handle(TransferBRep_ShapeBinder) STEPControl_ActorRead::TransferEntity(const Han
Handle(TransferBRep_ShapeBinder) shbinder;
//:j2: treat SRRs here in order to compare them with NAUO
Handle(StepRepr_ShapeRepresentationRelationship) SRR = CDSR->RepresentationRelation();
//DeclareAndCast(StepRepr_RepresentationRelationship,SRR,CDSR->RepresentationRelation());
if ( SRR.IsNull() ) return shbinder;
Standard_Boolean SRRReversed = STEPConstruct_Assembly::CheckSRRReversesNAUO ( TP->Graph(), CDSR );
@@ -939,34 +931,12 @@ Handle(TransferBRep_ShapeBinder) STEPControl_ActorRead::TransferEntity(const Han
gp_Trsf Trsf;
Standard_Boolean iatrsf = ComputeSRRWT ( SRR, TP, Trsf );
/* Delete this part does not work gka
// use SDR for reading rep in order to handle subassemblies
Interface_EntityIterator subs = TP->Graph().Sharings(rep);
Standard_Integer nbitem=0;
for (subs.Start(); subs.More(); subs.Next()) nbitem++;
Message_ProgressSentry PS ( TP->GetProgress(), "Shape", 0, nbitem, 1 );
for (subs.Start(); subs.More() && PS.More() ; subs.Next(),PS.Next()) {
if ( subs.Value()->IsKind(STANDARD_TYPE(StepShape_ShapeDefinitionRepresentation))) {
DeclareAndCast(StepShape_ShapeDefinitionRepresentation,SDR,subs.Value());
#ifdef TRANSLOG
if (TP->TraceLevel() > 1)
sout<<" -- Actor : Ent.n0 "<<TP->Model()->Number(CDSR)<<" -> Sharing Ent.no"<<TP->Model()->Number(SDR)<<endl;
#endif
binder = TP->Find ( SDR );
if ( binder.IsNull() ) binder = TransferEntity(SDR,TP);
theResult = TransferBRep::ShapeResult (binder);
break;
}
}*/
//if ( theResult.IsNull() && ! subs.More() ) {
Handle(Transfer_Binder) binder;
Standard_Boolean isBound = Standard_False;
if (!TP->IsBound(rep)) binder = TransferEntity(rep,TP,isBound);
else binder = TP->Find(rep);
theResult = TransferBRep::ShapeResult (binder);
//}
if ( ! theResult.IsNull() ) {
if ( iatrsf ) {
@@ -1017,7 +987,7 @@ Handle(TransferBRep_ShapeBinder) STEPControl_ActorRead::TransferEntity(const Han
Handle(StepShape_ShapeRepresentation) anitem = Handle(StepShape_ShapeRepresentation)::DownCast(anitemt);
Handle(Transfer_Binder) binder;
Standard_Boolean isBound = Standard_False;
if (!TP->IsBound(anitem)) binder = TransferEntity(anitem,TP,isBound);//TP->Transferring(anitem);
if (!TP->IsBound(anitem)) binder = TransferEntity(anitem,TP,isBound);
else binder = TP->Find(anitem);
TopoDS_Shape theResult = TransferBRep::ShapeResult (binder);
if (!theResult.IsNull()) {
@@ -1043,10 +1013,6 @@ Handle(TransferBRep_ShapeBinder) STEPControl_ActorRead::TransferEntity(const Han
}
//=======================================================================
//function : OldWay
//purpose :
//=======================================================================
//=======================================================================
//function : IsNeedRepresentation
//purpose :
@@ -1308,7 +1274,6 @@ Handle(TransferBRep_ShapeBinder) STEPControl_ActorRead::TransferEntity(const Han
// La Shape, et la mise en position
Handle(StepShape_ShapeRepresentation) maprep = Handle(StepShape_ShapeRepresentation)::
DownCast(mapit->MappingSource()->MappedRepresentation());
//Handle(StepRepr_Representation) maprep = mapit->MappingSource()->MappedRepresentation();
Standard_Boolean isBound = Standard_False;
Handle(Transfer_Binder) binder = TP->Find(maprep);
if (binder.IsNull()) binder = TransferEntity(maprep,TP,isBound);
@@ -1367,51 +1332,51 @@ Handle(TransferBRep_ShapeBinder) STEPControl_ActorRead::TransferEntity(const Han
try {
OCC_CATCH_SIGNALS
StepToTopoDS_Tool myTool;
StepToTopoDS_DataMapOfTRI aMap;
myTool.Init(aMap, TP);
StepToTopoDS_TranslateFace myTF;
myTF.SetPrecision(myPrecision);
myTF.SetMaxTol(myMaxTol);
// Non-manifold topology is not processed here (ssv; 15.11.2010)
StepToTopoDS_NMTool dummyNMTool;
myTF.Init (fs, myTool, dummyNMTool);
Handle(StepRepr_Representation) oldSRContext = mySRContext;
if ( mySRContext.IsNull() ) { // if no context, try to find it (ex: r0701_ug.stp #4790)
Handle(StepRepr_Representation) context = FindContext ( fs, TP );
if ( context.IsNull() ) {
TP->AddWarning ( fs, "Entity with no unit context; default units taken" );
ResetUnits();
}
else PrepareUnits ( context, TP );
}
// Apply ShapeFix
Handle(Transfer_Binder) binder = TP->Find (fs);
sb = Handle(TransferBRep_ShapeBinder)::DownCast ( binder );
if ( ! sb.IsNull() && ! sb->Result().IsNull() ) {
TopoDS_Shape S = sb->Result();
Handle(Standard_Transient) info;
TopoDS_Shape shape = XSAlgo::AlgoContainer()->ProcessShape( S, myPrecision, myMaxTol,
"read.step.resource.name",
"read.step.sequence", info,
TP->GetProgress() );
// TopoDS_Shape shape = XSAlgo::AlgoContainer()->PerformFixShape( S, TP, myPrecision, myMaxTol );
if ( shape != S )
sb->SetResult ( shape );
XSAlgo::AlgoContainer()->MergeTransferInfo(TP, info, nbTPitems);
}
StepToTopoDS_Tool myTool;
StepToTopoDS_DataMapOfTRI aMap;
if ( oldSRContext.IsNull() && ! mySRContext.IsNull() ) //:S4136
PrepareUnits ( oldSRContext, TP );
TP->Bind(fs, sb);
return sb; // TP->Find (start);
}
myTool.Init(aMap, TP);
StepToTopoDS_TranslateFace myTF;
myTF.SetPrecision(myPrecision);
myTF.SetMaxTol(myMaxTol);
// Non-manifold topology is not processed here (ssv; 15.11.2010)
StepToTopoDS_NMTool dummyNMTool;
myTF.Init(fs, myTool, dummyNMTool);
Handle(StepRepr_Representation) oldSRContext = mySRContext;
if (mySRContext.IsNull()) { // if no context, try to find it (ex: r0701_ug.stp #4790)
Handle(StepRepr_Representation) context = FindContext(fs, TP);
if (context.IsNull()) {
TP->AddWarning(fs, "Entity with no unit context; default units taken");
ResetUnits();
}
else PrepareUnits(context, TP);
}
// Apply ShapeFix
Handle(Transfer_Binder) binder = TP->Find(fs);
sb = Handle(TransferBRep_ShapeBinder)::DownCast(binder);
if (!sb.IsNull() && !sb->Result().IsNull()) {
TopoDS_Shape S = sb->Result();
Handle(Standard_Transient) info;
TopoDS_Shape shape = XSAlgo::AlgoContainer()->ProcessShape(S, myPrecision, myMaxTol,
"read.step.resource.name",
"read.step.sequence", info,
TP->GetProgress());
// TopoDS_Shape shape = XSAlgo::AlgoContainer()->PerformFixShape( S, TP, myPrecision, myMaxTol );
if (shape != S)
sb->SetResult(shape);
XSAlgo::AlgoContainer()->MergeTransferInfo(TP, info, nbTPitems);
}
if (oldSRContext.IsNull() && !mySRContext.IsNull()) //:S4136
PrepareUnits(oldSRContext, TP);
TP->Bind(fs, sb);
return sb; // TP->Find (start);
}
catch(Standard_Failure)
{
TP->AddFail(fs,"Exeption is raised. Entity was not translated.");
@@ -1432,12 +1397,9 @@ Handle(Transfer_Binder) STEPControl_ActorRead::TransferShape(const Handle(Standa
if (start.IsNull()) return NullResult();
XSAlgo::AlgoContainer()->PrepareForTransfer();
// myContext.SetModel ( Handle(StepData_StepModel)::DownCast ( TP->Model() ) ); // for asking IsAP203?
Handle(Message_Messenger) sout = TP->Messenger();
#ifdef TRANSLOG
// POUR MISE AU POINT, a supprimer ensuite
// sout<<"STEP->Shape, ent n0 "<<TP->Model()->Number(start)<<" Level="<<TP->NestingLevel()<<endl;
if (TP->TraceLevel() > 1)
sout<<" -- Actor : Transfer Ent.n0 "<<TP->Model()->Number(start)<<" Type "<<start->DynamicType()->Name()<<endl;
#endif
@@ -1454,17 +1416,17 @@ Handle(Transfer_Binder) STEPControl_ActorRead::TransferShape(const Handle(Standa
shbinder = OldWay(start,TP);
//skl
else if(start->IsKind(STANDARD_TYPE(StepBasic_ProductDefinition))) {
Handle(StepBasic_ProductDefinition) PD =
else if (start->IsKind(STANDARD_TYPE(StepBasic_ProductDefinition))) {
Handle(StepBasic_ProductDefinition) PD =
Handle(StepBasic_ProductDefinition)::DownCast(start);
shbinder = TransferEntity(PD,TP);
shbinder = TransferEntity(PD, TP);
}
// NextAssemblyUsageOccurrence
else if (start->IsKind(STANDARD_TYPE(StepRepr_NextAssemblyUsageOccurrence))) {
Handle(StepRepr_NextAssemblyUsageOccurrence) NAUO =
Handle(StepRepr_NextAssemblyUsageOccurrence) NAUO =
Handle(StepRepr_NextAssemblyUsageOccurrence)::DownCast(start);
shbinder = TransferEntity(NAUO,TP);
shbinder = TransferEntity(NAUO, TP);
}
//end skl
@@ -1522,9 +1484,7 @@ void STEPControl_ActorRead::PrepareUnits(const Handle(StepRepr_Representation)&
mySRContext = rep;
Standard_Integer stat1, stat2 = 0; // sera alimente par STEPControl_Unit
// DeclareAndCast(StepShape_ShapeRepresentation,sr,start);
if (rep.IsNull()) {
// TP->AddWarning(sr,"Not a ShapeRepresentation, default unit taken");
ResetUnits();
return;
}
@@ -1549,7 +1509,6 @@ void STEPControl_ActorRead::PrepareUnits(const Handle(StepRepr_Representation)&
if (theRepCont->IsKind(STANDARD_TYPE(StepGeom_GeometricRepresentationContextAndGlobalUnitAssignedContext))) {
DeclareAndCast(StepGeom_GeometricRepresentationContextAndGlobalUnitAssignedContext, theGRCAGAUC,theRepCont);
theGUAC = theGRCAGAUC->GlobalUnitAssignedContext();
// TP->AddWarning(theRepCont,"No Length Uncertainty, last defined one is taken");
}
// ----------------------------------------------------
@@ -1597,7 +1556,6 @@ void STEPControl_ActorRead::PrepareUnits(const Handle(StepRepr_Representation)&
}
myMaxTol = Max ( myPrecision, Interface_Static::RVal("read.maxprecision.val") );
// Assign uncertainty
// Interface_Static::SetRVal("lastpreci",UpdatedValue);
#ifdef TRANSLOG
if (TP->TraceLevel() > 1)
TP->Messenger() <<" Cc1ToTopoDS : Length Unit = "<<myUnit.LengthFactor()<<" Tolerance CASCADE = "<<myPrecision<<endl;
@@ -1809,5 +1767,4 @@ void STEPControl_ActorRead::computeIDEASClosings(const TopoDS_Compound& comp,
if ( !closingShells.IsEmpty() )
shellClosingsMap.Add(shellA, closingShells);
}
}