1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-10 18:51:21 +03:00

0033589: Data Exchange, Step Export - Using thread-safety interface ignore model schema

Fixed issue with MakeHeader.
Fix isn't for review or integration. Only for the internal usage.
Need to adapt into work env.
This commit is contained in:
dpasukhi 2024-01-29 11:02:23 +00:00
parent c7354b8f81
commit 8f6a653158
5 changed files with 52 additions and 3 deletions

View File

@ -162,7 +162,7 @@ void APIHeaderSection_MakeHeader::Apply
Handle(StepData_Protocol) stepro = Handle(StepData_Protocol)::DownCast
( model->Protocol());
if (!stepro.IsNull()) sch = new TCollection_HAsciiString
(stepro->SchemaName());
(stepro->SchemaName(model));
if (!sch.IsNull()) schid->SetValue (1,sch);
}
header.AddItem(fs);

View File

@ -27,6 +27,7 @@ static Standard_CString schemaAP242DIS = "AP242_MANAGED_MODEL_BASED_3D_ENGINEERI
#include <HeaderSection_Protocol.hxx>
#include <StepData_StepModel.hxx>
#include <StepShape_AdvancedBrepShapeRepresentation.hxx>
#include <StepShape_AdvancedFace.hxx>
// Removed from CC1-Rev2 to Rev4 : <StepVisual_AnnotationCurveOccurrence.hxx>
@ -1577,6 +1578,39 @@ Handle(Standard_Type)& atype) const
}
//=======================================================================
//function : SchemaName
//purpose :
//=======================================================================
Standard_CString StepAP214_Protocol::SchemaName(const Handle(Interface_InterfaceModel)& theModel) const
{
Handle(StepData_StepModel) aModel = Handle(StepData_StepModel)::DownCast(theModel);
StepData_ConfParameters aParam;
if (!aModel.IsNull())
{
aParam = aModel->InternalParameters;
}
switch (aModel->InternalParameters.WriteSchema)
{
case StepData_ConfParameters::WriteMode_StepSchema_AP214CD:
return schemaAP214CD;
break;
case StepData_ConfParameters::WriteMode_StepSchema_AP214DIS:
return schemaAP214DIS;
break;
case StepData_ConfParameters::WriteMode_StepSchema_AP203:
return schemaAP203;
break;
case StepData_ConfParameters::WriteMode_StepSchema_AP214IS:
return schemaAP214IS;
break;
case StepData_ConfParameters::WriteMode_StepSchema_AP242DIS:
return schemaAP242DIS;
break;
}
return "";
}
//=======================================================================
//function : SchemaName
//purpose :

View File

@ -42,6 +42,8 @@ public:
//! Returns a Case Number for each of the StepAP214 Entities
Standard_EXPORT virtual Standard_Integer TypeNumber (const Handle(Standard_Type)& atype) const Standard_OVERRIDE;
Standard_EXPORT virtual Standard_CString SchemaName(const Handle(Interface_InterfaceModel)& theModel) const Standard_OVERRIDE;
Standard_EXPORT virtual Standard_CString SchemaName() const Standard_OVERRIDE;
//! Returns count of Protocol used as Resources (level one)

View File

@ -67,12 +67,17 @@ Standard_Integer StepData_Protocol::TypeNumber
return 0;
}
Standard_CString StepData_Protocol::SchemaName () const
Standard_CString StepData_Protocol::SchemaName() const
{
return thename;
}
Standard_CString StepData_Protocol::SchemaName (const Handle(Interface_InterfaceModel)& theModel) const
{
(void)theModel;
return thename;
}
Handle(Interface_InterfaceModel) StepData_Protocol::NewModel () const
{

View File

@ -67,6 +67,14 @@ public:
//! To be redefined by each sub-class
//! Here, SchemaName returns "(DEFAULT)"
//! was C++ : return const
Standard_EXPORT virtual Standard_CString SchemaName(const Handle(Interface_InterfaceModel)& theModel) const;
//! Returns the Schema Name attached to each class of Protocol
//! To be redefined by each sub-class
//! Here, SchemaName returns "(DEFAULT)"
//! was C++ : return const
Standard_DEPRECATED("USED old static interface to extract active schema.\n"\
"Recommended to use method with input model to extract from current session")
Standard_EXPORT virtual Standard_CString SchemaName() const;
//! Creates an empty Model for Step Norm