From: gka Date: Mon, 23 Oct 2017 09:04:01 +0000 (+0300) Subject: Fixes made for ISCAR delivery 20.10.2017 X-Git-Url: http://git.dev.opencascade.org/gitweb/?a=commitdiff_plain;h=bc68ae6c3b9f59860372d12bebf61e15a7935824;p=occt-copy.git Fixes made for ISCAR delivery 20.10.2017 --- diff --git a/src/APIHeaderSection/APIHeaderSection_MakeHeader.cxx b/src/APIHeaderSection/APIHeaderSection_MakeHeader.cxx index 503b30cd67..68fc1b0228 100644 --- a/src/APIHeaderSection/APIHeaderSection_MakeHeader.cxx +++ b/src/APIHeaderSection/APIHeaderSection_MakeHeader.cxx @@ -37,100 +37,100 @@ static Handle(TCollection_HAsciiString) nulstr; static Handle(Interface_HArray1OfHAsciiString) nularr; APIHeaderSection_MakeHeader::APIHeaderSection_MakeHeader - (const Handle(StepData_StepModel)& model) +(const Handle(StepData_StepModel)& model) { done = Standard_True; - if (model->HasHeaderEntity (STANDARD_TYPE(HeaderSection_FileName))) { + if (model->HasHeaderEntity(STANDARD_TYPE(HeaderSection_FileName))) { fn = GetCasted(HeaderSection_FileName, - model->HeaderEntity(STANDARD_TYPE(HeaderSection_FileName))); + model->HeaderEntity(STANDARD_TYPE(HeaderSection_FileName))); } else done = Standard_False; - if (model->HasHeaderEntity (STANDARD_TYPE(HeaderSection_FileSchema))) { + if (model->HasHeaderEntity(STANDARD_TYPE(HeaderSection_FileSchema))) { fs = GetCasted(HeaderSection_FileSchema, - model->HeaderEntity(STANDARD_TYPE(HeaderSection_FileSchema))); + model->HeaderEntity(STANDARD_TYPE(HeaderSection_FileSchema))); } else done = Standard_False; - if (model->HasHeaderEntity (STANDARD_TYPE(HeaderSection_FileDescription))) { + if (model->HasHeaderEntity(STANDARD_TYPE(HeaderSection_FileDescription))) { fd = GetCasted(HeaderSection_FileDescription, - model->HeaderEntity(STANDARD_TYPE(HeaderSection_FileDescription))); + model->HeaderEntity(STANDARD_TYPE(HeaderSection_FileDescription))); } else done = Standard_False; } APIHeaderSection_MakeHeader::APIHeaderSection_MakeHeader - (const Standard_Integer shapetype) -{ - switch(shapetype) { - case 1 : Init ("Open CASCADE Facetted BRep Model"); break; - case 2 : Init ("Open CASCADE Face Based Surface Model"); break; - case 3 : Init ("Open CASCADE Shell Based Surface Model"); break; - case 4 : Init ("Open CASCADE Manifold Solid Brep Model"); break; - default: Init ("Open CASCADE Shape Model"); break; +(const Standard_Integer shapetype) +{ + switch (shapetype) { + case 1: Init("Open CASCADE Facetted BRep Model"); break; + case 2: Init("Open CASCADE Face Based Surface Model"); break; + case 3: Init("Open CASCADE Shell Based Surface Model"); break; + case 4: Init("Open CASCADE Manifold Solid Brep Model"); break; + default: Init("Open CASCADE Shape Model"); break; } } -void APIHeaderSection_MakeHeader::Init (const Standard_CString nameval) +void APIHeaderSection_MakeHeader::Init(const Standard_CString nameval) { done = Standard_True; - + // - File Name char timestamp[50]; - + if (fn.IsNull()) fn = new HeaderSection_FileName; Handle(TCollection_HAsciiString) name = new TCollection_HAsciiString(nameval); fn->SetName(name); - Interface_MSG::TDate (timestamp,0,0,0,0,0,1,"C:%4.4d-%2.2d-%2.2dT%2.2d:%2.2d:%2.2d"); // actually - Handle(TCollection_HAsciiString) tst = + Interface_MSG::TDate(timestamp, 0, 0, 0, 0, 0, 1, "C:%4.4d-%2.2d-%2.2dT%2.2d:%2.2d:%2.2d"); // actually + Handle(TCollection_HAsciiString) tst = new TCollection_HAsciiString(timestamp); fn->SetTimeStamp(tst); - Handle(Interface_HArray1OfHAsciiString) authors = - new Interface_HArray1OfHAsciiString(1,1); - Handle(TCollection_HAsciiString) a1 = + Handle(Interface_HArray1OfHAsciiString) authors = + new Interface_HArray1OfHAsciiString(1, 1); + Handle(TCollection_HAsciiString) a1 = new TCollection_HAsciiString("Author"); - authors->SetValue(1,a1); + authors->SetValue(1, a1); fn->SetAuthor(authors); - Handle(Interface_HArray1OfHAsciiString) org = - new Interface_HArray1OfHAsciiString(1,1); - Handle(TCollection_HAsciiString) org1 = + Handle(Interface_HArray1OfHAsciiString) org = + new Interface_HArray1OfHAsciiString(1, 1); + Handle(TCollection_HAsciiString) org1 = new TCollection_HAsciiString("Open CASCADE"); - org->SetValue(1,org1); + org->SetValue(1, org1); fn->SetOrganization(org); - + char procver[80]; - sprintf (procver, XSTEP_PROCESSOR_VERSION, "STEP"); - Handle(TCollection_HAsciiString) pv = new TCollection_HAsciiString (procver); + sprintf(procver, XSTEP_PROCESSOR_VERSION, "STEP"); + Handle(TCollection_HAsciiString) pv = new TCollection_HAsciiString(procver); //Handle(TCollection_HAsciiString) pv = //new TCollection_HAsciiString(XSTEP_VERSION); fn->SetPreprocessorVersion(pv); - - Handle(TCollection_HAsciiString) sys = + + Handle(TCollection_HAsciiString) sys = new TCollection_HAsciiString(XSTEP_SYSTEM_VERSION);//#58 rln fn->SetOriginatingSystem(sys); - Handle(TCollection_HAsciiString) auth = + Handle(TCollection_HAsciiString) auth = new TCollection_HAsciiString("Unknown"); fn->SetAuthorisation(auth); - + // - File Description - + if (fd.IsNull()) fd = new HeaderSection_FileDescription; Handle(Interface_HArray1OfHAsciiString) descr = - new Interface_HArray1OfHAsciiString(1,1); - Handle(TCollection_HAsciiString) descr1 = + new Interface_HArray1OfHAsciiString(1, 1); + Handle(TCollection_HAsciiString) descr1 = new TCollection_HAsciiString("Open CASCADE Model"); - descr->SetValue(1,descr1); + descr->SetValue(1, descr1); fd->SetDescription(descr); - Handle(TCollection_HAsciiString) il = + Handle(TCollection_HAsciiString) il = new TCollection_HAsciiString("2;1"); fd->SetImplementationLevel(il); // - File Schema - if (fs.IsNull()) fs = new HeaderSection_FileSchema; + if (fs.IsNull()) fs = new HeaderSection_FileSchema; Handle(Interface_HArray1OfHAsciiString) schid = - new Interface_HArray1OfHAsciiString(1,1); - Handle(TCollection_HAsciiString) schid1 = + new Interface_HArray1OfHAsciiString(1, 1); + Handle(TCollection_HAsciiString) schid1 = new TCollection_HAsciiString(""); - schid->SetValue(1,schid1); + schid->SetValue(1, schid1); fs->SetSchemaIdentifiers(schid); } @@ -141,30 +141,31 @@ Standard_Boolean APIHeaderSection_MakeHeader::IsDone() const } void APIHeaderSection_MakeHeader::Apply - (const Handle(StepData_StepModel)& model) const +(const Handle(StepData_StepModel)& model) const { Interface_EntityIterator header = model->Header(); - if (HasFd() && !model->HasHeaderEntity (STANDARD_TYPE(HeaderSection_FileDescription))) + if (HasFd() && !model->HasHeaderEntity(STANDARD_TYPE(HeaderSection_FileDescription))) header.AddItem(fd); - if (HasFn() && !model->HasHeaderEntity (STANDARD_TYPE(HeaderSection_FileName))) + if (HasFn() && !model->HasHeaderEntity(STANDARD_TYPE(HeaderSection_FileName))) header.AddItem(fn); - if (HasFs() && !model->HasHeaderEntity (STANDARD_TYPE(HeaderSection_FileSchema))) { + if (HasFs() && !model->HasHeaderEntity(STANDARD_TYPE(HeaderSection_FileSchema))) { -// Schema defined? If not take it from the protocole + // Schema defined? If not take it from the protocole Handle(TCollection_HAsciiString) sch; Handle(Interface_HArray1OfHAsciiString) schid = fs->SchemaIdentifiers(); if (!schid.IsNull()) sch = schid->Value(1); else { - schid = new Interface_HArray1OfHAsciiString(1,1); + schid = new Interface_HArray1OfHAsciiString(1, 1); fs->SetSchemaIdentifiers(schid); } if (!sch.IsNull()) { if (sch->Length() < 2) sch.Nullify(); } // not defined if (sch.IsNull()) { Handle(StepData_Protocol) stepro = Handle(StepData_Protocol)::DownCast - ( model->Protocol()); - if (!stepro.IsNull()) sch = new TCollection_HAsciiString - (stepro->SchemaName(model->GetParam("write.step.schema")->IntegerValue())); - if (!sch.IsNull()) schid->SetValue (1,sch); + (model->Protocol()); + Handle(Interface_Static) aParam = model->GetParam("write.step.schema"); + if (!aParam.IsNull() && !stepro.IsNull()) + sch = new TCollection_HAsciiString(stepro->SchemaName(aParam->IntegerValue())); + if (!sch.IsNull()) schid->SetValue(1, sch); } header.AddItem(fs); } @@ -179,12 +180,12 @@ void APIHeaderSection_MakeHeader::Apply // ======== Handle(StepData_StepModel) APIHeaderSection_MakeHeader::NewModel - (const Handle(Interface_Protocol)& protocol) const +(const Handle(Interface_Protocol)& protocol) const { Handle(StepData_StepModel) stepmodel = new StepData_StepModel; - stepmodel->SetProtocol (protocol); + stepmodel->SetProtocol(protocol); - // - Make Header information + // - Make Header information Apply(stepmodel); return stepmodel; @@ -197,7 +198,9 @@ Handle(StepData_StepModel) APIHeaderSection_MakeHeader::NewModel // ======== Standard_Boolean APIHeaderSection_MakeHeader::HasFn() const -{ return (!fn.IsNull()); } +{ + return (!fn.IsNull()); +} Handle(HeaderSection_FileName) APIHeaderSection_MakeHeader::FnValue() const { @@ -208,23 +211,23 @@ Handle(HeaderSection_FileName) APIHeaderSection_MakeHeader::FnValue() const void APIHeaderSection_MakeHeader::SetNameFromShapeType(const Standard_Integer shapetype) { Handle(TCollection_HAsciiString) name; - switch(shapetype) + switch(shapetype) { case 1: // face_based_surface_model name = new TCollection_HAsciiString - ("Euclid Face Based Surface Model"); + ("Euclid Face Based Surface Model"); break; case 2: // manifold_solid_brep - name = new TCollection_HAsciiString - ("Euclid Manifold Solid Brep Model"); + name = new TCollection_HAsciiString + ("Euclid Manifold Solid Brep Model"); break; case 3: // facetted_brep name = new TCollection_HAsciiString - ("Euclid Facetted Brep Model"); + ("Euclid Facetted Brep Model"); break; default : // others ? name = new TCollection_HAsciiString - ("Euclid Shape Model"); + ("Euclid Shape Model"); break; } SetName(aName); @@ -233,106 +236,106 @@ void APIHeaderSection_MakeHeader::SetNameFromShapeType(const Standard_Integer sh void APIHeaderSection_MakeHeader::SetName(const Handle(TCollection_HAsciiString)& aName) { - if (!fn.IsNull()) fn->SetName(aName); + if (!fn.IsNull()) fn->SetName(aName); } Handle(TCollection_HAsciiString) APIHeaderSection_MakeHeader::Name() const { - return (fn.IsNull() ? nulstr : fn->Name()); + return (fn.IsNull() ? nulstr : fn->Name()); } void APIHeaderSection_MakeHeader::SetTimeStamp(const Handle(TCollection_HAsciiString)& aTimeStamp) { - if (!fn.IsNull()) fn->SetTimeStamp(aTimeStamp); + if (!fn.IsNull()) fn->SetTimeStamp(aTimeStamp); } Handle(TCollection_HAsciiString) APIHeaderSection_MakeHeader::TimeStamp() const { - return (fn.IsNull() ? nulstr : fn->TimeStamp()); + return (fn.IsNull() ? nulstr : fn->TimeStamp()); } void APIHeaderSection_MakeHeader::SetAuthor(const Handle(Interface_HArray1OfHAsciiString)& aAuthor) { - if (!fn.IsNull()) fn->SetAuthor(aAuthor); + if (!fn.IsNull()) fn->SetAuthor(aAuthor); } void APIHeaderSection_MakeHeader::SetAuthorValue(const Standard_Integer num, const Handle(TCollection_HAsciiString)& aAuthor) { if (fn.IsNull()) return; Handle(Interface_HArray1OfHAsciiString) li = fn->Author(); - if (num >= li->Lower() && num <= li->Upper()) li->SetValue(num,aAuthor); + if (num >= li->Lower() && num <= li->Upper()) li->SetValue(num, aAuthor); } Handle(Interface_HArray1OfHAsciiString) APIHeaderSection_MakeHeader::Author() const { - return (fn.IsNull() ? nularr : fn->Author()); + return (fn.IsNull() ? nularr : fn->Author()); } Handle(TCollection_HAsciiString) APIHeaderSection_MakeHeader::AuthorValue(const Standard_Integer num) const { - return (fn.IsNull() ? nulstr : fn->AuthorValue(num)); + return (fn.IsNull() ? nulstr : fn->AuthorValue(num)); } -Standard_Integer APIHeaderSection_MakeHeader::NbAuthor () const +Standard_Integer APIHeaderSection_MakeHeader::NbAuthor() const { - return (fn.IsNull() ? 0 : fn->NbAuthor()); + return (fn.IsNull() ? 0 : fn->NbAuthor()); } void APIHeaderSection_MakeHeader::SetOrganization(const Handle(Interface_HArray1OfHAsciiString)& aOrganization) { - if (!fn.IsNull()) fn->SetOrganization(aOrganization); + if (!fn.IsNull()) fn->SetOrganization(aOrganization); } void APIHeaderSection_MakeHeader::SetOrganizationValue(const Standard_Integer num, const Handle(TCollection_HAsciiString)& aOrgan) { if (fn.IsNull()) return; Handle(Interface_HArray1OfHAsciiString) li = fn->Organization(); - if (num >= li->Lower() && num <= li->Upper()) li->SetValue(num,aOrgan); + if (num >= li->Lower() && num <= li->Upper()) li->SetValue(num, aOrgan); } Handle(Interface_HArray1OfHAsciiString) APIHeaderSection_MakeHeader::Organization() const { - return (fn.IsNull() ? nularr : fn->Organization()); + return (fn.IsNull() ? nularr : fn->Organization()); } Handle(TCollection_HAsciiString) APIHeaderSection_MakeHeader::OrganizationValue(const Standard_Integer num) const { - return (fn.IsNull() ? nulstr : fn->OrganizationValue(num)); + return (fn.IsNull() ? nulstr : fn->OrganizationValue(num)); } -Standard_Integer APIHeaderSection_MakeHeader::NbOrganization () const +Standard_Integer APIHeaderSection_MakeHeader::NbOrganization() const { - return (fn.IsNull() ? 0 : fn->NbOrganization()); + return (fn.IsNull() ? 0 : fn->NbOrganization()); } void APIHeaderSection_MakeHeader::SetPreprocessorVersion(const Handle(TCollection_HAsciiString)& aPreprocessorVersion) { - if (!fn.IsNull()) fn->SetPreprocessorVersion(aPreprocessorVersion); + if (!fn.IsNull()) fn->SetPreprocessorVersion(aPreprocessorVersion); } Handle(TCollection_HAsciiString) APIHeaderSection_MakeHeader::PreprocessorVersion() const { - return (fn.IsNull() ? nulstr : fn->PreprocessorVersion()); + return (fn.IsNull() ? nulstr : fn->PreprocessorVersion()); } void APIHeaderSection_MakeHeader::SetOriginatingSystem(const Handle(TCollection_HAsciiString)& aOriginatingSystem) { - if (!fn.IsNull()) fn->SetOriginatingSystem(aOriginatingSystem); + if (!fn.IsNull()) fn->SetOriginatingSystem(aOriginatingSystem); } Handle(TCollection_HAsciiString) APIHeaderSection_MakeHeader::OriginatingSystem() const { - return (fn.IsNull() ? nulstr : fn->OriginatingSystem()); + return (fn.IsNull() ? nulstr : fn->OriginatingSystem()); } void APIHeaderSection_MakeHeader::SetAuthorisation(const Handle(TCollection_HAsciiString)& aAuthorisation) { - if (!fn.IsNull()) fn->SetAuthorisation(aAuthorisation); + if (!fn.IsNull()) fn->SetAuthorisation(aAuthorisation); } Handle(TCollection_HAsciiString) APIHeaderSection_MakeHeader::Authorisation() const { - return (fn.IsNull() ? nulstr : fn->Authorisation()); + return (fn.IsNull() ? nulstr : fn->Authorisation()); } // =========== @@ -340,7 +343,9 @@ Handle(TCollection_HAsciiString) APIHeaderSection_MakeHeader::Authorisation() co // =========== Standard_Boolean APIHeaderSection_MakeHeader::HasFs() const -{ return (!fs.IsNull()); } +{ + return (!fs.IsNull()); +} Handle(HeaderSection_FileSchema) APIHeaderSection_MakeHeader::FsValue() const { @@ -349,29 +354,29 @@ Handle(HeaderSection_FileSchema) APIHeaderSection_MakeHeader::FsValue() const void APIHeaderSection_MakeHeader::SetSchemaIdentifiers(const Handle(Interface_HArray1OfHAsciiString)& aSchemaIdentifiers) { - if (!fs.IsNull()) fs->SetSchemaIdentifiers(aSchemaIdentifiers); + if (!fs.IsNull()) fs->SetSchemaIdentifiers(aSchemaIdentifiers); } void APIHeaderSection_MakeHeader::SetSchemaIdentifiersValue(const Standard_Integer num, const Handle(TCollection_HAsciiString)& aSchem) { if (fs.IsNull()) return; Handle(Interface_HArray1OfHAsciiString) li = fs->SchemaIdentifiers(); - if (num >= li->Lower() && num <= li->Upper()) li->SetValue(num,aSchem); + if (num >= li->Lower() && num <= li->Upper()) li->SetValue(num, aSchem); } Handle(Interface_HArray1OfHAsciiString) APIHeaderSection_MakeHeader::SchemaIdentifiers() const { - return (fs.IsNull() ? nularr : fs->SchemaIdentifiers()); + return (fs.IsNull() ? nularr : fs->SchemaIdentifiers()); } Handle(TCollection_HAsciiString) APIHeaderSection_MakeHeader::SchemaIdentifiersValue(const Standard_Integer num) const { - return (fs.IsNull() ? nulstr : fs->SchemaIdentifiersValue(num)); + return (fs.IsNull() ? nulstr : fs->SchemaIdentifiersValue(num)); } -Standard_Integer APIHeaderSection_MakeHeader::NbSchemaIdentifiers () const +Standard_Integer APIHeaderSection_MakeHeader::NbSchemaIdentifiers() const { - return (fs.IsNull() ? 0 : fs->NbSchemaIdentifiers()); + return (fs.IsNull() ? 0 : fs->NbSchemaIdentifiers()); } //======================================================================= @@ -381,24 +386,24 @@ Standard_Integer APIHeaderSection_MakeHeader::NbSchemaIdentifiers () const void APIHeaderSection_MakeHeader::AddSchemaIdentifier(const Handle(TCollection_HAsciiString)& aSchem) { - if ( fs.IsNull() ) fs = new HeaderSection_FileSchema; + if (fs.IsNull()) fs = new HeaderSection_FileSchema; Handle(Interface_HArray1OfHAsciiString) idents = fs->SchemaIdentifiers(); // check that requested subschema is already in the list Standard_Integer i; - for ( i=1; ! idents.IsNull() && i <= idents->Length(); i++ ) { - if ( aSchem->IsSameString ( idents->Value(i) ) ) return; + for (i = 1; !idents.IsNull() && i <= idents->Length(); i++) { + if (aSchem->IsSameString(idents->Value(i))) return; } - + // add a subshema - Handle(Interface_HArray1OfHAsciiString) ids = - new Interface_HArray1OfHAsciiString ( 1, ( idents.IsNull() ? 1 : idents->Length() + 1 ) ); - for ( i=1; ! idents.IsNull() && i <= idents->Length(); i++ ) { - ids->SetValue ( i, idents->Value(i) ); + Handle(Interface_HArray1OfHAsciiString) ids = + new Interface_HArray1OfHAsciiString(1, (idents.IsNull() ? 1 : idents->Length() + 1)); + for (i = 1; !idents.IsNull() && i <= idents->Length(); i++) { + ids->SetValue(i, idents->Value(i)); } - ids->SetValue ( i, aSchem ); - - fs->SetSchemaIdentifiers ( ids ); + ids->SetValue(i, aSchem); + + fs->SetSchemaIdentifiers(ids); } // ================ @@ -406,7 +411,9 @@ void APIHeaderSection_MakeHeader::AddSchemaIdentifier(const Handle(TCollection_H // ================ Standard_Boolean APIHeaderSection_MakeHeader::HasFd() const -{ return (!fd.IsNull()); } +{ + return (!fd.IsNull()); +} Handle(HeaderSection_FileDescription) APIHeaderSection_MakeHeader::FdValue() const { @@ -415,37 +422,37 @@ Handle(HeaderSection_FileDescription) APIHeaderSection_MakeHeader::FdValue() con void APIHeaderSection_MakeHeader::SetDescription(const Handle(Interface_HArray1OfHAsciiString)& aDescription) { - if (!fs.IsNull()) fd->SetDescription(aDescription); + if (!fs.IsNull()) fd->SetDescription(aDescription); } void APIHeaderSection_MakeHeader::SetDescriptionValue(const Standard_Integer num, const Handle(TCollection_HAsciiString)& aDescr) { if (fd.IsNull()) return; Handle(Interface_HArray1OfHAsciiString) li = fd->Description(); - if (num >= li->Lower() && num <= li->Upper()) li->SetValue(num,aDescr); + if (num >= li->Lower() && num <= li->Upper()) li->SetValue(num, aDescr); } Handle(Interface_HArray1OfHAsciiString) APIHeaderSection_MakeHeader::Description() const { - return (fd.IsNull() ? nularr : fd->Description()); + return (fd.IsNull() ? nularr : fd->Description()); } Handle(TCollection_HAsciiString) APIHeaderSection_MakeHeader::DescriptionValue(const Standard_Integer num) const { - return (fd.IsNull() ? nulstr : fd->DescriptionValue(num)); + return (fd.IsNull() ? nulstr : fd->DescriptionValue(num)); } -Standard_Integer APIHeaderSection_MakeHeader::NbDescription () const +Standard_Integer APIHeaderSection_MakeHeader::NbDescription() const { - return (fd.IsNull() ? 0 : fd->NbDescription()); + return (fd.IsNull() ? 0 : fd->NbDescription()); } void APIHeaderSection_MakeHeader::SetImplementationLevel(const Handle(TCollection_HAsciiString)& aImplementationLevel) { - if (!fd.IsNull()) fd->SetImplementationLevel(aImplementationLevel); + if (!fd.IsNull()) fd->SetImplementationLevel(aImplementationLevel); } Handle(TCollection_HAsciiString) APIHeaderSection_MakeHeader::ImplementationLevel() const { - return (fd.IsNull() ? nulstr : fd->ImplementationLevel()); + return (fd.IsNull() ? nulstr : fd->ImplementationLevel()); } diff --git a/src/Interface/Interface_FileReaderTool.cxx b/src/Interface/Interface_FileReaderTool.cxx index 8dafa7f6f9..49ce015c83 100644 --- a/src/Interface/Interface_FileReaderTool.cxx +++ b/src/Interface/Interface_FileReaderTool.cxx @@ -64,7 +64,7 @@ Interface_FileReaderTool::Interface_FileReaderTool () { - //themessenger = Message::DefaultMessenger(); + themessenger = Message::DefaultMessenger(); theerrhand = Standard_True; thetrace = 0; thenbrep0 = thenbreps = 0; diff --git a/src/Interface/Interface_InterfaceModel.cxx b/src/Interface/Interface_InterfaceModel.cxx index ff8e4b9f53..e5415b21b6 100644 --- a/src/Interface/Interface_InterfaceModel.cxx +++ b/src/Interface/Interface_InterfaceModel.cxx @@ -1048,18 +1048,33 @@ Handle(TColStd_HSequenceOfHAsciiString) Interface_InterfaceModel::ListTemplates Handle(Interface_Static) Interface_InterfaceModel::GetParam (const Standard_CString theParamName) { - if (IsEqual(theParamName, "write.step.schema")) + /*if (IsEqual(theParamName, "write.step.schema")) { Handle(Standard_Transient) result; myParamMap.Find(theParamName, result); Standard_Integer anInt = Handle(Interface_Static)::DownCast(result)->IntegerValue(); + }*/ + Handle(Interface_Static) aParam; + if (myParamMap.IsBound(theParamName)) + { + Handle(Standard_Transient) result; + myParamMap.Find(theParamName, result); + if (!result.IsNull()) + aParam = Handle(Interface_Static)::DownCast(result); } - Handle(Standard_Transient) result; - myParamMap.Find(theParamName, result); - return Handle(Interface_Static)::DownCast(result); + return aParam; } +//======================================================================= +//function : GetParam +//purpose : +//======================================================================= +void Interface_InterfaceModel::AddParam +(const Standard_CString theParamName, Handle(Interface_Static)& theParam) +{ + myParamMap.Bind(theParamName, theParam); +} //======================================================================= //function : AllParameters //purpose : diff --git a/src/Interface/Interface_InterfaceModel.hxx b/src/Interface/Interface_InterfaceModel.hxx index c7aa422801..027aa73417 100644 --- a/src/Interface/Interface_InterfaceModel.hxx +++ b/src/Interface/Interface_InterfaceModel.hxx @@ -402,6 +402,9 @@ public: //! Returns parameter for translation by its name Standard_EXPORT Handle(Interface_Static) GetParam(const Standard_CString theParamName); + //! Adds parameters in the mopdel + Standard_EXPORT void AddParam(const Standard_CString theParamName, Handle(Interface_Static)& theParam); + //! Returns all available parameters for translation Standard_EXPORT const NCollection_DataMap& AllParameters(); diff --git a/src/Interface/Interface_Static.cxx b/src/Interface/Interface_Static.cxx index 26a89a8ad9..be359e78d6 100644 --- a/src/Interface/Interface_Static.cxx +++ b/src/Interface/Interface_Static.cxx @@ -19,6 +19,7 @@ #include #include #include +#include #include IMPLEMENT_STANDARD_RTTIEXT(Interface_Static,Interface_TypedValue) @@ -210,9 +211,13 @@ Standard_Boolean Interface_Static::InitValues(Handle(Interface_Static)& theStati Handle(Interface_Static) Interface_Static::Static (const Standard_CString name) { - Handle(Standard_Transient) result; - MoniTool_TypedValue::Stats().Find(name, result); - return Handle(Interface_Static)::DownCast(result); + static Standard_Mutex aPars; + { + Standard_Mutex::Sentry aLock(aPars); + Handle(Standard_Transient) result; + MoniTool_TypedValue::Stats().Find(name, result); + return Handle(Interface_Static)::DownCast(result); + } } diff --git a/src/STEPConstruct/STEPConstruct_ContextTool.cxx b/src/STEPConstruct/STEPConstruct_ContextTool.cxx index dd20a3fec6..3e6fc561c6 100644 --- a/src/STEPConstruct/STEPConstruct_ContextTool.cxx +++ b/src/STEPConstruct/STEPConstruct_ContextTool.cxx @@ -110,8 +110,10 @@ void STEPConstruct_ContextTool::AddAPD (const Standard_Boolean enforce) { Standard_Boolean noapd = theAPD.IsNull(); if (noapd || enforce) theAPD = new StepBasic_ApplicationProtocolDefinition; + Handle(Interface_Static) aParam = (myModel->GetParam("write.step.schema")); + Standard_Integer aShema = aParam.IsNull() ? 4 : aParam->IntegerValue(); - switch (myModel->GetParam("write.step.schema")->IntegerValue()) { //j4 + switch (aShema) { //j4 default: case 1: theAPD->SetApplicationProtocolYear (1997); @@ -147,7 +149,8 @@ void STEPConstruct_ContextTool::AddAPD (const Standard_Boolean enforce) if (theAPD->Application().IsNull()) theAPD->SetApplication (new StepBasic_ApplicationContext); Handle(TCollection_HAsciiString) appl; - switch (myModel->GetParam("write.step.schema")->IntegerValue()) { //j4 + + switch (aShema) { //j4 default: case 1: case 2: appl = new TCollection_HAsciiString ( "core data for automotive mechanical design processes" ); @@ -597,7 +600,9 @@ Handle(TColStd_HSequenceOfTransient) STEPConstruct_ContextTool::GetRootsForPart if ( ! SDRTool.PRPC().IsNull() ) seq->Append ( SDRTool.PRPC() ); // for AP203, add required product management data - if (myModel->GetParam("write.step.schema")->IntegerValue() == 3 ) { + Handle(Interface_Static) aParam = myModel->GetParam("write.step.schema"); + Standard_Integer aShema = aParam.IsNull() ? 4 : aParam->IntegerValue(); + if (aShema == 3 ) { theAP203.Init ( SDRTool ); seq->Append (theAP203.GetProductCategoryRelationship()); seq->Append (theAP203.GetCreator()); @@ -625,7 +630,7 @@ Handle(TColStd_HSequenceOfTransient) STEPConstruct_ContextTool::GetRootsForAssem Handle(TColStd_HSequenceOfTransient) seq = new TColStd_HSequenceOfTransient; seq->Append ( assembly.ItemValue() ); - + // for AP203, write required product management data if ( myModel->GetParam("write.step.schema")->IntegerValue() == 3 ) { theAP203.Init ( assembly.GetNAUO() ); diff --git a/src/STEPControl/STEPControl_Controller.cxx b/src/STEPControl/STEPControl_Controller.cxx index 7f11ee7235..1eed570933 100644 --- a/src/STEPControl/STEPControl_Controller.cxx +++ b/src/STEPControl/STEPControl_Controller.cxx @@ -73,7 +73,7 @@ STEPControl_Controller::STEPControl_Controller() // initialization of Standard Shape Healing ShapeExtend::Init(); - + XSAlgo::Init(); // init Standard Shape Processing operators ShapeProcess_OperLibrary::Init(); } diff --git a/src/StepData/StepData_SelectType.cxx b/src/StepData/StepData_SelectType.cxx index 36a31e8b0f..5d378c73fa 100644 --- a/src/StepData/StepData_SelectType.cxx +++ b/src/StepData/StepData_SelectType.cxx @@ -21,6 +21,8 @@ #include #include #include +#include + Standard_Boolean StepData_SelectType::Matches (const Handle(Standard_Transient)& ent) const @@ -35,6 +37,8 @@ Standard_Boolean StepData_SelectType::Matches void StepData_SelectType::SetValue (const Handle(Standard_Transient)& ent) { if (ent.IsNull()) thevalue.Nullify(); + else if (ent->IsKind(STANDARD_TYPE(StepData_UndefinedEntity))) + thevalue = ent; else if (!Matches(ent)) throw Standard_TypeMismatch("StepData : SelectType, SetValue"); else thevalue = ent; diff --git a/src/StepData/StepData_StepReaderData.cxx b/src/StepData/StepData_StepReaderData.cxx index 877ad0f8a1..0b1fc03ce3 100644 --- a/src/StepData/StepData_StepReaderData.cxx +++ b/src/StepData/StepData_StepReaderData.cxx @@ -45,6 +45,7 @@ #include #include #include +#include #include IMPLEMENT_STANDARD_RTTIEXT(StepData_StepReaderData,Interface_FileReaderData) @@ -1052,8 +1053,12 @@ Standard_Boolean StepData_StepReaderData::ReadEntity(const Standard_Integer num, warn = (acceptvoid > 0); if (nent > 0) { Handle(Standard_Transient) entent = BoundEntity(nent); - if (entent.IsNull() || !entent->IsKind(atype)) - errmess = new String("Parameter n0.%d (%s) : Entity has illegal type"); + if (entent.IsNull() || !entent->IsKind(atype)) + { + errmess = new String("Parameter n0.%d (%s) : Entity has illegal type"); + if (entent->IsKind(STANDARD_TYPE(StepData_UndefinedEntity))) + ent = entent; + } else ent = entent; } else errmess = new String("Parameter n0.%d (%s) : Unresolved reference"); @@ -1096,8 +1101,13 @@ Standard_Boolean StepData_StepReaderData::ReadEntity(const Standard_Integer num, warn = (acceptvoid > 0); if (nent > 0) { Handle(Standard_Transient) entent = BoundEntity(nent); - if (!sel.Matches(entent)) - errmess = new String("Parameter n0.%d (%s) : Entity has illegal type"); + if (!sel.Matches(entent)) + { + errmess = new String("Parameter n0.%d (%s) : Entity has illegal type"); + //fot not suppported STEP entity + if (entent->IsKind(STANDARD_TYPE(StepData_UndefinedEntity))) + sel.SetValue(entent); + } else sel.SetValue(entent); } diff --git a/src/XSAlgo/XSAlgo_AlgoContainer.cxx b/src/XSAlgo/XSAlgo_AlgoContainer.cxx index 0ed1258291..a34c63de30 100644 --- a/src/XSAlgo/XSAlgo_AlgoContainer.cxx +++ b/src/XSAlgo/XSAlgo_AlgoContainer.cxx @@ -64,6 +64,7 @@ #include #include #include +#include IMPLEMENT_STANDARD_RTTIEXT(XSAlgo_AlgoContainer,Standard_Transient) @@ -83,7 +84,8 @@ XSAlgo_AlgoContainer::XSAlgo_AlgoContainer() void XSAlgo_AlgoContainer::PrepareForTransfer() const { - UnitsMethods::SetCasCadeLengthUnit(getParam("xstep.cascade.unit")->IntegerValue()); + Handle(Interface_Static) aParam = getParam("xstep.cascade.unit"); + UnitsMethods::SetCasCadeLengthUnit(aParam.IsNull() ? 2 : aParam->IntegerValue()); } //======================================================================= @@ -358,7 +360,8 @@ Standard_Boolean XSAlgo_AlgoContainer::CheckPCurve (const TopoDS_Edge& E, B.Range(edge,face,w1,w2); B.SameRange(edge, Standard_False ); //:S4136 - Standard_Integer SPmode = getParam("read.stdsameparameter.mode")->IntegerValue(); + Handle(Interface_Static) aParam = getParam("read.stdsameparameter.mode"); + Standard_Integer SPmode = aParam.IsNull() ? 0 : aParam->IntegerValue(); if ( SPmode ) B.SameParameter (edge, Standard_False ); @@ -575,6 +578,7 @@ void XSAlgo_AlgoContainer::MergeTransferInfo(const Handle(Transfer_FinderProcess void XSAlgo_AlgoContainer::SetModel(Handle(Interface_InterfaceModel)& theModel) { myModel = theModel; + initParameters(); } //======================================================================= @@ -589,7 +593,48 @@ Handle(Interface_Static) XSAlgo_AlgoContainer::getParam aParam = myModel->GetParam(theParamName); if (aParam.IsNull()) - aParam = Interface_Static::Static(theParamName); - + { + static Standard_Mutex aPars; + { + Standard_Mutex::Sentry aLock(aPars); + aParam = Interface_Static::Static(theParamName); + } + } return aParam; } + +void XSAlgo_AlgoContainer::initParameters() +{ + if (myModel.IsNull()) + return; + + Handle(Interface_Static) anItem = new Interface_Static("XSTEP", "read.stdsameparameter.mode", Interface_ParamEnum, ""); + Interface_Static::InitValues(anItem, "enum 0"); + Interface_Static::InitValues(anItem, "eval Off"); + Interface_Static::InitValues(anItem, "eval On"); + + anItem->SetCStringValue("Off"); + myModel->AddParam("read.stdsameparameter.mode", anItem); + + // unit: supposed to be cascade unit (target unit for reading) + anItem = new Interface_Static("XSTEP", "xstep.cascade.unit", Interface_ParamEnum, ""); + Interface_Static::Init("XSTEP", "xstep.cascade.unit", 'e', ""); + Interface_Static::InitValues(anItem, "enum 1"); + + + Interface_Static::Init("XSTEP", "xstep.cascade.unit", '&', "enum 1"); + Interface_Static::InitValues(anItem, "eval INCH"); // 1 + Interface_Static::InitValues(anItem, "eval MM"); // 2 + Interface_Static::InitValues(anItem, "eval ??"); // 3 + Interface_Static::InitValues(anItem, "eval FT"); // 4 + Interface_Static::InitValues(anItem, "eval MI"); // 5 + Interface_Static::InitValues(anItem, "eval M"); // 6 + Interface_Static::InitValues(anItem, "eval KM"); // 7 + Interface_Static::InitValues(anItem, "eval MIL"); // 8 + Interface_Static::InitValues(anItem, "eval UM"); // 9 + Interface_Static::InitValues(anItem, "eval CM"); //10 + Interface_Static::InitValues(anItem, "eval UIN"); //11 + anItem->SetCStringValue("MM"); + myModel->AddParam("xstep.cascade.unit", anItem); + +} diff --git a/src/XSAlgo/XSAlgo_AlgoContainer.hxx b/src/XSAlgo/XSAlgo_AlgoContainer.hxx index 98e400f57f..0b80437640 100644 --- a/src/XSAlgo/XSAlgo_AlgoContainer.hxx +++ b/src/XSAlgo/XSAlgo_AlgoContainer.hxx @@ -94,14 +94,14 @@ protected: //! First tries get it from non-static model, //! if failure get it from static map Standard_EXPORT Handle(Interface_Static) getParam(const Standard_CString theParamName) const; - + void initParameters(); private: Handle(XSAlgo_ToolContainer) myTC; Handle(Interface_InterfaceModel) myModel; - + };