#include <IGESCAFControl_Provider.hxx>
-#include <BinXCAFDrivers.hxx>
-#include <IGESControl_Controller.hxx>
#include <IGESCAFControl_ConfigurationNode.hxx>
#include <IGESCAFControl_Reader.hxx>
#include <IGESCAFControl_Writer.hxx>
+#include <IGESControl_Controller.hxx>
#include <IGESData.hxx>
#include <IGESData_IGESModel.hxx>
#include <Interface_Static.hxx>
#include <Message.hxx>
+#include <UnitsMethods.hxx>
#include <XCAFDoc_DocumentTool.hxx>
#include <XSControl_WorkSession.hxx>
-#include <UnitsMethods.hxx>
IMPLEMENT_STANDARD_RTTIEXT(IGESCAFControl_Provider, DE_Provider)
+namespace
+{
+ //! Special class to handle static parameters.
+ //! Initialize all parameters in the begin of life
+ //! and reset changed parameters in the end of life
+ class IGESCAFControl_ParameterController
+ {
+ public:
+
+ IGESCAFControl_ParameterController(const Handle(IGESCAFControl_ConfigurationNode)& theNode,
+ const Standard_Boolean theUpdateStatic);
+
+ ~IGESCAFControl_ParameterController();
+
+ protected:
+
+ void setStatic(const IGESCAFControl_ConfigurationNode::IGESCAFControl_InternalSection theParameter);
+
+ private:
+
+ bool myToUpdateStaticParameters; //!< Flag to updating static parameters
+ IGESCAFControl_ConfigurationNode::IGESCAFControl_InternalSection myOldValues; //!< Container to save previous static parameters
+ IGESCAFControl_ConfigurationNode::DE_SectionGlobal myOldGlobalValues; //!< Container to save previous global parameters
+ };
+
+ //=======================================================================
+ // function : IGESCAFControl_ParameterController
+ // purpose :
+ //=======================================================================
+ IGESCAFControl_ParameterController::IGESCAFControl_ParameterController(const Handle(IGESCAFControl_ConfigurationNode)& theNode,
+ const Standard_Boolean theUpdateStatic)
+ : myToUpdateStaticParameters(theUpdateStatic)
+ {
+ IGESControl_Controller::Init();
+ IGESData::Init();
+ if (!myToUpdateStaticParameters)
+ {
+ return;
+ }
+ // Get previous values
+ myOldValues.ReadBSplineContinuity =
+ (IGESCAFControl_ConfigurationNode::ReadMode_BSplineContinuity)
+ Interface_Static::IVal("read.iges.bspline.continuity");
+ myOldValues.ReadPrecisionMode =
+ (IGESCAFControl_ConfigurationNode::ReadMode_Precision)
+ Interface_Static::IVal("read.precision.mode");
+ myOldValues.ReadPrecisionVal =
+ Interface_Static::RVal("read.precision.val");
+ myOldValues.ReadMaxPrecisionMode =
+ (IGESCAFControl_ConfigurationNode::ReadMode_MaxPrecision)
+ Interface_Static::IVal("read.maxprecision.mode");
+ myOldValues.ReadMaxPrecisionVal =
+ Interface_Static::RVal("read.maxprecision.val");
+ myOldValues.ReadSameParamMode =
+ Interface_Static::IVal("read.stdsameparameter.mode") == 1;
+ myOldValues.ReadSurfaceCurveMode =
+ (IGESCAFControl_ConfigurationNode::ReadMode_SurfaceCurve)
+ Interface_Static::IVal("read.surfacecurve.mode");
+ myOldValues.EncodeRegAngle =
+ Interface_Static::RVal("read.encoderegularity.angle") * 180.0 / M_PI;
+
+ myOldValues.ReadApproxd1 =
+ Interface_Static::IVal("read.iges.bspline.approxd1.mode") == 1;
+ myOldValues.ReadResourceName =
+ Interface_Static::CVal("read.iges.resource.name");
+ myOldValues.ReadSequence =
+ Interface_Static::CVal("read.iges.sequence");
+ myOldValues.ReadFaultyEntities =
+ Interface_Static::IVal("read.iges.faulty.entities") == 1;
+ myOldValues.ReadOnlyVisible =
+ Interface_Static::IVal("read.iges.onlyvisible") == 1;
+
+ myOldValues.WriteBRepMode =
+ (IGESCAFControl_ConfigurationNode::WriteMode_BRep)
+ Interface_Static::IVal("write.iges.brep.mode");
+ myOldValues.WriteConvertSurfaceMode =
+ (IGESCAFControl_ConfigurationNode::WriteMode_ConvertSurface)
+ Interface_Static::IVal("write.convertsurface.mode");
+ myOldValues.WriteUnit =
+ (UnitsMethods_LengthUnit)
+ Interface_Static::IVal("write.iges.unit");
+ myOldValues.WriteHeaderAuthor =
+ Interface_Static::CVal("write.iges.header.author");
+ myOldValues.WriteHeaderCompany =
+ Interface_Static::CVal("write.iges.header.company");
+ myOldValues.WriteHeaderProduct =
+ Interface_Static::CVal("write.iges.header.product");
+ myOldValues.WriteHeaderReciever =
+ Interface_Static::CVal("write.iges.header.receiver");
+ myOldValues.WriteResourceName =
+ Interface_Static::CVal("write.iges.resource.name");
+ myOldValues.WriteSequence =
+ Interface_Static::CVal("write.iges.sequence");
+ myOldValues.WritePrecisionMode =
+ (IGESCAFControl_ConfigurationNode::WriteMode_PrecisionMode)
+ Interface_Static::IVal("write.precision.mode");
+ myOldValues.WritePrecisionVal =
+ Interface_Static::RVal("write.precision.val");
+ myOldValues.WritePlaneMode =
+ (IGESCAFControl_ConfigurationNode::WriteMode_PlaneMode)
+ Interface_Static::IVal("write.iges.plane.mode");
+ myOldValues.WriteOffsetMode =
+ Interface_Static::IVal("write.iges.offset.mode") == 1;
+
+ myOldGlobalValues.LengthUnit = 0.001 *
+ UnitsMethods::GetLengthFactorValue(Interface_Static::IVal("xstep.cascade.unit"));
+ // Set new values
+ TCollection_AsciiString aStrUnit(
+ UnitsMethods::DumpLengthUnit(theNode->GlobalParameters.LengthUnit));
+ aStrUnit.UpperCase();
+ Interface_Static::SetCVal("xstep.cascade.unit", aStrUnit.ToCString());
+ UnitsMethods::SetCasCadeLengthUnit(theNode->GlobalParameters.LengthUnit);
+ setStatic(theNode->InternalParameters);
+ }
+
+ //=======================================================================
+ // function : ~IGESCAFControl_ParameterController
+ // purpose :
+ //=======================================================================
+ IGESCAFControl_ParameterController::~IGESCAFControl_ParameterController()
+ {
+ if (!myToUpdateStaticParameters)
+ {
+ return;
+ }
+ // Set new values
+ TCollection_AsciiString aStrUnit(
+ UnitsMethods::DumpLengthUnit(myOldGlobalValues.LengthUnit,
+ UnitsMethods_LengthUnit_Meter));
+ aStrUnit.UpperCase();
+ Interface_Static::SetCVal("xstep.cascade.unit", aStrUnit.ToCString());
+ setStatic(myOldValues);
+ }
+
+ //=======================================================================
+ // function : setStatic
+ // purpose :
+ //=======================================================================
+ void IGESCAFControl_ParameterController::setStatic(const IGESCAFControl_ConfigurationNode::IGESCAFControl_InternalSection theParameter)
+ {
+ Interface_Static::SetIVal("read.iges.bspline.continuity",
+ theParameter.ReadBSplineContinuity);
+ Interface_Static::SetIVal("read.precision.mode",
+ theParameter.ReadPrecisionMode);
+ Interface_Static::SetRVal("read.precision.val",
+ theParameter.ReadPrecisionVal);
+ Interface_Static::SetIVal("read.maxprecision.mode",
+ theParameter.ReadMaxPrecisionMode);
+ Interface_Static::SetRVal("read.maxprecision.val",
+ theParameter.ReadMaxPrecisionVal);
+ Interface_Static::SetIVal("read.stdsameparameter.mode",
+ theParameter.ReadSameParamMode);
+ Interface_Static::SetIVal("read.surfacecurve.mode",
+ theParameter.ReadSurfaceCurveMode);
+ Interface_Static::SetRVal("read.encoderegularity.angle",
+ theParameter.EncodeRegAngle * M_PI / 180.0);
+
+ Interface_Static::SetIVal("read.iges.bspline.approxd1.mode",
+ theParameter.ReadApproxd1);
+ Interface_Static::SetCVal("read.iges.resource.name",
+ theParameter.ReadResourceName.ToCString());
+ Interface_Static::SetCVal("read.iges.sequence",
+ theParameter.ReadSequence.ToCString());
+ Interface_Static::SetIVal("read.iges.faulty.entities",
+ theParameter.ReadFaultyEntities);
+ Interface_Static::SetIVal("read.iges.onlyvisible",
+ theParameter.ReadOnlyVisible);
+
+ Interface_Static::SetIVal("write.iges.brep.mode",
+ theParameter.WriteBRepMode);
+ Interface_Static::SetIVal("write.convertsurface.mode",
+ theParameter.WriteConvertSurfaceMode);
+ Interface_Static::SetIVal("write.iges.unit",
+ theParameter.WriteUnit);
+ Interface_Static::SetCVal("write.iges.header.author",
+ theParameter.WriteHeaderAuthor.ToCString());
+ Interface_Static::SetCVal("write.iges.header.company",
+ theParameter.WriteHeaderCompany.ToCString());
+ Interface_Static::SetCVal("write.iges.header.product",
+ theParameter.WriteHeaderProduct.ToCString());
+ Interface_Static::SetCVal("write.iges.header.receiver",
+ theParameter.WriteHeaderReciever.ToCString());
+ Interface_Static::SetCVal("write.iges.resource.name",
+ theParameter.WriteResourceName.ToCString());
+ Interface_Static::SetCVal("write.iges.sequence",
+ theParameter.WriteSequence.ToCString());
+ Interface_Static::SetIVal("write.precision.mode",
+ theParameter.WritePrecisionMode);
+ Interface_Static::SetRVal("write.precision.val",
+ theParameter.WritePrecisionVal);
+ Interface_Static::SetIVal("write.iges.plane.mode",
+ theParameter.WritePlaneMode);
+ Interface_Static::SetIVal("write.iges.offset.mode",
+ theParameter.WriteOffsetMode);
+ }
+}
+
//=======================================================================
// function : IGESCAFControl_Provider
// purpose :
}
}
-//=======================================================================
-// function : initStatic
-// purpose :
-//=======================================================================
-void IGESCAFControl_Provider::initStatic(const Handle(DE_ConfigurationNode)& theNode)
-{
- Handle(IGESCAFControl_ConfigurationNode) aNode =
- Handle(IGESCAFControl_ConfigurationNode)::DownCast(theNode);
- IGESData::Init();
- if (!myToUpdateStaticParameters)
- {
- return;
- }
- // Get previous values
- myOldValues.ReadBSplineContinuity =
- (IGESCAFControl_ConfigurationNode::ReadMode_BSplineContinuity)
- Interface_Static::IVal("read.iges.bspline.continuity");
- myOldValues.ReadPrecisionMode =
- (IGESCAFControl_ConfigurationNode::ReadMode_Precision)
- Interface_Static::IVal("read.precision.mode");
- myOldValues.ReadPrecisionVal =
- Interface_Static::RVal("read.precision.val");
- myOldValues.ReadMaxPrecisionMode =
- (IGESCAFControl_ConfigurationNode::ReadMode_MaxPrecision)
- Interface_Static::IVal("read.maxprecision.mode");
- myOldValues.ReadMaxPrecisionVal =
- Interface_Static::RVal("read.maxprecision.val");
- myOldValues.ReadSameParamMode =
- Interface_Static::IVal("read.stdsameparameter.mode") == 1;
- myOldValues.ReadSurfaceCurveMode =
- (IGESCAFControl_ConfigurationNode::ReadMode_SurfaceCurve)
- Interface_Static::IVal("read.surfacecurve.mode");
- myOldValues.EncodeRegAngle =
- Interface_Static::RVal("read.encoderegularity.angle") * 180.0 / M_PI;
-
- myOldValues.ReadApproxd1 =
- Interface_Static::IVal("read.iges.bspline.approxd1.mode") == 1;
- myOldValues.ReadResourceName =
- Interface_Static::CVal("read.iges.resource.name");
- myOldValues.ReadSequence =
- Interface_Static::CVal("read.iges.sequence");
- myOldValues.ReadFaultyEntities =
- Interface_Static::IVal("read.iges.faulty.entities") == 1;
- myOldValues.ReadOnlyVisible =
- Interface_Static::IVal("read.iges.onlyvisible") == 1;
-
- myOldValues.WriteBRepMode =
- (IGESCAFControl_ConfigurationNode::WriteMode_BRep)
- Interface_Static::IVal("write.iges.brep.mode");
- myOldValues.WriteConvertSurfaceMode =
- (IGESCAFControl_ConfigurationNode::WriteMode_ConvertSurface)
- Interface_Static::IVal("write.convertsurface.mode");
- myOldValues.WriteUnit =
- (UnitsMethods_LengthUnit)
- Interface_Static::IVal("write.iges.unit");
- myOldValues.WriteHeaderAuthor =
- Interface_Static::CVal("write.iges.header.author");
- myOldValues.WriteHeaderCompany =
- Interface_Static::CVal("write.iges.header.company");
- myOldValues.WriteHeaderProduct =
- Interface_Static::CVal("write.iges.header.product");
- myOldValues.WriteHeaderReciever =
- Interface_Static::CVal("write.iges.header.receiver");
- myOldValues.WriteResourceName =
- Interface_Static::CVal("write.iges.resource.name");
- myOldValues.WriteSequence =
- Interface_Static::CVal("write.iges.sequence");
- myOldValues.WritePrecisionMode =
- (IGESCAFControl_ConfigurationNode::WriteMode_PrecisionMode)
- Interface_Static::IVal("write.precision.mode");
- myOldValues.WritePrecisionVal =
- Interface_Static::RVal("write.precision.val");
- myOldValues.WritePlaneMode =
- (IGESCAFControl_ConfigurationNode::WriteMode_PlaneMode)
- Interface_Static::IVal("write.iges.plane.mode");
- myOldValues.WriteOffsetMode =
- Interface_Static::IVal("write.iges.offset.mode") == 1;
-
- myOldGlobalValues.LengthUnit = 0.001 *
- UnitsMethods::GetLengthFactorValue(Interface_Static::IVal("xstep.cascade.unit"));
- // Set new values
- TCollection_AsciiString aStrUnit(
- UnitsMethods::DumpLengthUnit(aNode->GlobalParameters.LengthUnit));
- aStrUnit.UpperCase();
- Interface_Static::SetCVal("xstep.cascade.unit", aStrUnit.ToCString());
- UnitsMethods::SetCasCadeLengthUnit(aNode->GlobalParameters.LengthUnit);
- setStatic(aNode->InternalParameters);
-}
-
-//=======================================================================
-// function : setStatic
-// purpose :
-//=======================================================================
-void IGESCAFControl_Provider::setStatic(const IGESCAFControl_ConfigurationNode::IGESCAFControl_InternalSection theParameter)
-{
- Interface_Static::SetIVal("read.iges.bspline.continuity",
- theParameter.ReadBSplineContinuity);
- Interface_Static::SetIVal("read.precision.mode",
- theParameter.ReadPrecisionMode);
- Interface_Static::SetRVal("read.precision.val",
- theParameter.ReadPrecisionVal);
- Interface_Static::SetIVal("read.maxprecision.mode",
- theParameter.ReadMaxPrecisionMode);
- Interface_Static::SetRVal("read.maxprecision.val",
- theParameter.ReadMaxPrecisionVal);
- Interface_Static::SetIVal("read.stdsameparameter.mode",
- theParameter.ReadSameParamMode);
- Interface_Static::SetIVal("read.surfacecurve.mode",
- theParameter.ReadSurfaceCurveMode);
- Interface_Static::SetRVal("read.encoderegularity.angle",
- theParameter.EncodeRegAngle * M_PI / 180.0);
-
- Interface_Static::SetIVal("read.iges.bspline.approxd1.mode",
- theParameter.ReadApproxd1);
- Interface_Static::SetCVal("read.iges.resource.name",
- theParameter.ReadResourceName.ToCString());
- Interface_Static::SetCVal("read.iges.sequence",
- theParameter.ReadSequence.ToCString());
- Interface_Static::SetIVal("read.iges.faulty.entities",
- theParameter.ReadFaultyEntities);
- Interface_Static::SetIVal("read.iges.onlyvisible",
- theParameter.ReadOnlyVisible);
-
- Interface_Static::SetIVal("write.iges.brep.mode",
- theParameter.WriteBRepMode);
- Interface_Static::SetIVal("write.convertsurface.mode",
- theParameter.WriteConvertSurfaceMode);
- Interface_Static::SetIVal("write.iges.unit",
- theParameter.WriteUnit);
- Interface_Static::SetCVal("write.iges.header.author",
- theParameter.WriteHeaderAuthor.ToCString());
- Interface_Static::SetCVal("write.iges.header.company",
- theParameter.WriteHeaderCompany.ToCString());
- Interface_Static::SetCVal("write.iges.header.product",
- theParameter.WriteHeaderProduct.ToCString());
- Interface_Static::SetCVal("write.iges.header.receiver",
- theParameter.WriteHeaderReciever.ToCString());
- Interface_Static::SetCVal("write.iges.resource.name",
- theParameter.WriteResourceName.ToCString());
- Interface_Static::SetCVal("write.iges.sequence",
- theParameter.WriteSequence.ToCString());
- Interface_Static::SetIVal("write.precision.mode",
- theParameter.WritePrecisionMode);
- Interface_Static::SetRVal("write.precision.val",
- theParameter.WritePrecisionVal);
- Interface_Static::SetIVal("write.iges.plane.mode",
- theParameter.WritePlaneMode);
- Interface_Static::SetIVal("write.iges.offset.mode",
- theParameter.WriteOffsetMode);
-}
-
-//=======================================================================
-// function : resetStatic
-// purpose :
-//=======================================================================
-void IGESCAFControl_Provider::resetStatic()
-{
- if (!myToUpdateStaticParameters)
- {
- return;
- }
- // Set new values
- TCollection_AsciiString aStrUnit(
- UnitsMethods::DumpLengthUnit(myOldGlobalValues.LengthUnit,
- UnitsMethods_LengthUnit_Meter));
- aStrUnit.UpperCase();
- Interface_Static::SetCVal("xstep.cascade.unit", aStrUnit.ToCString());
- setStatic(myOldValues);
-}
-
//=======================================================================
// function : Read
// purpose :
}
Handle(IGESCAFControl_ConfigurationNode) aNode =
Handle(IGESCAFControl_ConfigurationNode)::DownCast(GetNode());
- initStatic(aNode);
-
+ IGESCAFControl_ParameterController aParamController(aNode, myToUpdateStaticParameters);
personizeWS(theWS);
XCAFDoc_DocumentTool::SetLengthUnit(theDocument,
aNode->GlobalParameters.LengthUnit,
{
Message::SendFail() << "Error: IGESCAFControl_Provider : ["
<< aFile << "] : abandon, no model loaded";
- resetStatic();
return false;
}
if (!aReader.Transfer(theDocument, theProgress))
{
Message::SendFail() << "Error: IGESCAFControl_Provider : [" <<
aFile << "] : Cannot read any relevant data from the IGES file";
- resetStatic();
return false;
}
- resetStatic();
return true;
}
}
Handle(IGESCAFControl_ConfigurationNode) aNode =
Handle(IGESCAFControl_ConfigurationNode)::DownCast(GetNode());
- initStatic(aNode);
-
+ IGESCAFControl_ParameterController aParamController(aNode, myToUpdateStaticParameters);
personizeWS(theWS);
TCollection_AsciiString aUnit(
UnitsMethods::DumpLengthUnit(aNode->InternalParameters.WriteUnit));
{
Message::SendFail() << "Error: IGESCAFControl_Provider : "
<< "The document cannot be translated or gives no result";
- resetStatic();
return false;
}
if (thePath == ".")
{
- resetStatic();
Message::SendInfo() << "Document has been translated into the session";
return true;
}
{
Message::SendFail() << "Error: IGESCAFControl_Provider : [" <<
thePath << "] : Write failed";
- resetStatic();
return false;
}
Message::SendInfo() << "IGES file [" << thePath << "] Successfully written";
- resetStatic();
return true;
}
}
Handle(IGESCAFControl_ConfigurationNode) aNode =
Handle(IGESCAFControl_ConfigurationNode)::DownCast(GetNode());
- initStatic(aNode);
+ IGESCAFControl_ParameterController aParamController(aNode, myToUpdateStaticParameters);
personizeWS(theWS);
IGESControl_Reader aReader;
aReader.SetWS(theWS);
{
Message::SendFail() << "Error: IGESCAFControl_Provider : [" <<
thePath << "] : Could not read file, no model loaded";
- resetStatic();
return false;
}
if (aReader.TransferRoots() <= 0)
{
Message::SendFail() << "Error: IGESCAFControl_Provider : [" <<
thePath << "] : Cannot read any relevant data from the IGES file";
- resetStatic();
return false;
}
theShape = aReader.OneShape();
- resetStatic();
return true;
}
}
Handle(IGESCAFControl_ConfigurationNode) aNode =
Handle(IGESCAFControl_ConfigurationNode)::DownCast(GetNode());
- initStatic(aNode);
+ IGESCAFControl_ParameterController aParamController(aNode, myToUpdateStaticParameters);
+ personizeWS(theWS);
TCollection_AsciiString aUnit(
UnitsMethods::DumpLengthUnit(aNode->InternalParameters.WriteUnit));
aUnit.UpperCase();
{
Message::SendFail() << "Error: IGESCAFControl_Provider : "
<< "Can't translate shape to IGES model";
- resetStatic();
return false;
}
{
Message::SendFail() << "Error: IGESCAFControl_Provider : "
<< "Can't write IGES file" << thePath;
- resetStatic();
return false;
}
- resetStatic();
return true;
}
#include <STEPCAFControl_Provider.hxx>
-#include <BinXCAFDrivers.hxx>
#include <Interface_Static.hxx>
#include <Message.hxx>
-#include <STEPControl_Controller.hxx>
-#include <StepData_StepModel.hxx>
-#include <STEPControl_ActorWrite.hxx>
#include <STEPCAFControl_ConfigurationNode.hxx>
#include <STEPCAFControl_Controller.hxx>
#include <STEPCAFControl_Reader.hxx>
#include <STEPCAFControl_Writer.hxx>
-#include <TDocStd_Document.hxx>
+#include <STEPControl_ActorWrite.hxx>
+#include <STEPControl_Controller.hxx>
+#include <StepData_StepModel.hxx>
#include <TDataStd_Name.hxx>
#include <TDF_Tool.hxx>
+#include <TDocStd_Document.hxx>
+#include <UnitsMethods.hxx>
#include <XCAFDoc_DocumentTool.hxx>
#include <XSControl_WorkSession.hxx>
-#include <UnitsMethods.hxx>
IMPLEMENT_STANDARD_RTTIEXT(STEPCAFControl_Provider, DE_Provider)
+namespace
+{
+ //! Special class to handle static parameters.
+ //! Initialize all parameters in the begin of life
+ //! and reset changed parameters in the end of life
+ class STEPCAFControl_ParameterController
+ {
+ public:
+
+ STEPCAFControl_ParameterController(const Handle(STEPCAFControl_ConfigurationNode)& theNode,
+ const Standard_Boolean theUpdateStatic);
+
+ ~STEPCAFControl_ParameterController();
+
+ protected:
+
+ void setStatic(const STEPCAFControl_ConfigurationNode::STEPCAFControl_InternalSection theParameter);
+
+ private:
+
+ bool myToUpdateStaticParameters; //!< Flag to updating static parameters
+ STEPCAFControl_ConfigurationNode::STEPCAFControl_InternalSection myOldValues; //!< Container to save previous static parameters
+ };
+
+ //=======================================================================
+ // function : STEPCAFControl_ParameterController
+ // purpose :
+ //=======================================================================
+ STEPCAFControl_ParameterController::STEPCAFControl_ParameterController(const Handle(STEPCAFControl_ConfigurationNode)& theNode,
+ const Standard_Boolean theUpdateStatic)
+ : myToUpdateStaticParameters(theUpdateStatic)
+ {
+ STEPCAFControl_Controller::Init();
+ if (!myToUpdateStaticParameters)
+ {
+ return;
+ }
+ // Get previous values
+ myOldValues.ReadBSplineContinuity =
+ (STEPCAFControl_ConfigurationNode::ReadMode_BSplineContinuity)
+ Interface_Static::IVal("read.iges.bspline.continuity");
+ myOldValues.ReadPrecisionMode =
+ (STEPCAFControl_ConfigurationNode::ReadMode_Precision)
+ Interface_Static::IVal("read.precision.mode");
+ myOldValues.ReadPrecisionVal =
+ Interface_Static::RVal("read.precision.val");
+ myOldValues.ReadMaxPrecisionMode =
+ (STEPCAFControl_ConfigurationNode::ReadMode_MaxPrecision)
+ Interface_Static::IVal("read.maxprecision.mode");
+ myOldValues.ReadMaxPrecisionVal =
+ Interface_Static::RVal("read.maxprecision.val");
+ myOldValues.ReadSameParamMode =
+ Interface_Static::IVal("read.stdsameparameter.mode") == 1;
+ myOldValues.ReadSurfaceCurveMode =
+ (STEPCAFControl_ConfigurationNode::ReadMode_SurfaceCurve)
+ Interface_Static::IVal("read.surfacecurve.mode");
+ myOldValues.EncodeRegAngle =
+ Interface_Static::RVal("read.encoderegularity.angle") * 180.0 / M_PI;
+ myOldValues.AngleUnit =
+ (STEPCAFControl_ConfigurationNode::AngleUnitMode)
+ Interface_Static::IVal("step.angleunit.mode");
+
+ myOldValues.ReadResourceName =
+ Interface_Static::CVal("read.step.resource.name");
+ myOldValues.ReadSequence =
+ Interface_Static::CVal("read.step.sequence");
+ myOldValues.ReadProductMode =
+ Interface_Static::IVal("read.step.product.mode") == 1;
+ myOldValues.ReadProductContext =
+ (STEPCAFControl_ConfigurationNode::ReadMode_ProductContext)
+ Interface_Static::IVal("read.step.product.context");
+ myOldValues.ReadShapeRepr =
+ (STEPCAFControl_ConfigurationNode::ReadMode_ShapeRepr)
+ Interface_Static::IVal("read.step.shape.repr");
+ myOldValues.ReadTessellated =
+ (STEPCAFControl_ConfigurationNode::RWMode_Tessellated)
+ Interface_Static::IVal("read.step.tessellated");
+ myOldValues.ReadAssemblyLevel =
+ (STEPCAFControl_ConfigurationNode::ReadMode_AssemblyLevel)
+ Interface_Static::IVal("read.step.assembly.level");
+ myOldValues.ReadRelationship =
+ Interface_Static::IVal("read.step.shape.relationship") == 1;
+ myOldValues.ReadShapeAspect =
+ Interface_Static::IVal("read.step.shape.aspect") == 1;
+ myOldValues.ReadConstrRelation =
+ Interface_Static::IVal("read.step.constructivegeom.relationship") == 1;
+ myOldValues.ReadSubshapeNames =
+ Interface_Static::IVal("read.stepcaf.subshapes.name") == 1;
+ myOldValues.ReadCodePage =
+ (Resource_FormatType)Interface_Static::IVal("read.step.codepage");
+ myOldValues.ReadNonmanifold =
+ Interface_Static::IVal("read.step.nonmanifold") == 1;
+ myOldValues.ReadIdeas =
+ Interface_Static::IVal("read.step.ideas") == 1;
+ myOldValues.ReadAllShapes =
+ Interface_Static::IVal("read.step.all.shapes") == 1;
+ myOldValues.ReadRootTransformation =
+ Interface_Static::IVal("read.step.root.transformation") == 1;
+
+ myOldValues.WritePrecisionMode =
+ (STEPCAFControl_ConfigurationNode::WriteMode_PrecisionMode)
+ Interface_Static::IVal("write.precision.mode");
+ myOldValues.WritePrecisionVal =
+ Interface_Static::RVal("write.precision.val");
+ myOldValues.WriteAssembly =
+ (STEPCAFControl_ConfigurationNode::WriteMode_Assembly)
+ Interface_Static::IVal("write.step.assembly");
+ myOldValues.WriteSchema =
+ (STEPCAFControl_ConfigurationNode::WriteMode_StepSchema)
+ Interface_Static::IVal("write.step.schema");
+ myOldValues.WriteTessellated =
+ (STEPCAFControl_ConfigurationNode::RWMode_Tessellated)
+ Interface_Static::IVal("write.step.tessellated");
+ myOldValues.WriteProductName =
+ Interface_Static::CVal("write.step.product.name");
+ myOldValues.WriteSurfaceCurMode =
+ Interface_Static::IVal("write.surfacecurve.mode") == 1;
+ myOldValues.WriteUnit =
+ (UnitsMethods_LengthUnit)Interface_Static::IVal("write.step.unit");
+ myOldValues.WriteResourceName =
+ Interface_Static::CVal("write.resource.name");
+ myOldValues.WriteSequence =
+ Interface_Static::CVal("write.step.sequence");
+ myOldValues.WriteVertexMode =
+ (STEPCAFControl_ConfigurationNode::WriteMode_VertexMode)
+ Interface_Static::IVal("write.step.vertex.mode");
+ myOldValues.WriteSubshapeNames =
+ Interface_Static::IVal("write.stepcaf.subshapes.name") == 1;
+
+ // Set new values
+ setStatic(theNode->InternalParameters);
+ }
+
+ //=======================================================================
+ // function : ~STEPCAFControl_ParameterController
+ // purpose :
+ //=======================================================================
+ STEPCAFControl_ParameterController::~STEPCAFControl_ParameterController()
+ {
+ if (!myToUpdateStaticParameters)
+ {
+ return;
+ }
+ setStatic(myOldValues);
+ }
+
+ //=======================================================================
+ // function : setStatic
+ // purpose :
+ //=======================================================================
+ void STEPCAFControl_ParameterController::setStatic(const STEPCAFControl_ConfigurationNode::STEPCAFControl_InternalSection theParameter)
+ {
+ Interface_Static::SetIVal("read.iges.bspline.continuity",
+ theParameter.ReadBSplineContinuity);
+ Interface_Static::SetIVal("read.precision.mode",
+ theParameter.ReadPrecisionMode);
+ Interface_Static::SetRVal("read.precision.val",
+ theParameter.ReadPrecisionVal);
+ Interface_Static::SetIVal("read.maxprecision.mode",
+ theParameter.ReadMaxPrecisionMode);
+ Interface_Static::SetRVal("read.maxprecision.val",
+ theParameter.ReadMaxPrecisionVal);
+ Interface_Static::SetIVal("read.stdsameparameter.mode",
+ theParameter.ReadSameParamMode);
+ Interface_Static::SetIVal("read.surfacecurve.mode",
+ theParameter.ReadSurfaceCurveMode);
+ Interface_Static::SetRVal("read.encoderegularity.angle",
+ theParameter.EncodeRegAngle * M_PI / 180.0);
+ Interface_Static::SetIVal("step.angleunit.mode",
+ theParameter.AngleUnit);
+
+ Interface_Static::SetCVal("read.step.resource.name",
+ theParameter.ReadResourceName.ToCString());
+ Interface_Static::SetCVal("read.step.sequence",
+ theParameter.ReadSequence.ToCString());
+ Interface_Static::SetIVal("read.step.product.mode",
+ theParameter.ReadProductMode);
+ Interface_Static::SetIVal("read.step.product.context",
+ theParameter.ReadProductContext);
+ Interface_Static::SetIVal("read.step.shape.repr",
+ theParameter.ReadShapeRepr);
+ Interface_Static::SetIVal("read.step.tessellated",
+ theParameter.ReadTessellated);
+ Interface_Static::SetIVal("read.step.assembly.level",
+ theParameter.ReadAssemblyLevel);
+ Interface_Static::SetIVal("read.step.shape.relationship",
+ theParameter.ReadRelationship);
+ Interface_Static::SetIVal("read.step.shape.aspect",
+ theParameter.ReadShapeAspect);
+ Interface_Static::SetIVal("read.step.constructivegeom.relationship",
+ theParameter.ReadConstrRelation);
+ Interface_Static::SetIVal("read.stepcaf.subshapes.name",
+ theParameter.ReadSubshapeNames);
+ Interface_Static::SetIVal("read.step.codepage",
+ theParameter.ReadCodePage);
+ Interface_Static::SetIVal("read.step.nonmanifold",
+ theParameter.ReadNonmanifold);
+ Interface_Static::SetIVal("read.step.ideas",
+ theParameter.ReadIdeas);
+ Interface_Static::SetIVal("read.step.all.shapes",
+ theParameter.ReadAllShapes);
+ Interface_Static::SetIVal("read.step.root.transformation",
+ theParameter.ReadRootTransformation);
+
+ Interface_Static::SetIVal("write.precision.mode",
+ theParameter.WritePrecisionMode);
+ Interface_Static::SetRVal("write.precision.val",
+ theParameter.WritePrecisionVal);
+ Interface_Static::SetIVal("write.step.assembly",
+ theParameter.WriteAssembly);
+ Interface_Static::SetIVal("write.step.schema",
+ theParameter.WriteSchema);
+ Interface_Static::SetIVal("write.step.tessellated",
+ theParameter.WriteTessellated);
+ Interface_Static::SetCVal("write.step.product.name",
+ theParameter.WriteProductName.ToCString());
+ Interface_Static::SetIVal("write.surfacecurve.mode",
+ theParameter.WriteSurfaceCurMode);
+ Interface_Static::SetIVal("write.step.unit",
+ theParameter.WriteUnit);
+ Interface_Static::SetCVal("write.resource.name",
+ theParameter.WriteResourceName.ToCString());
+ Interface_Static::SetCVal("write.step.sequence",
+ theParameter.WriteSequence.ToCString());
+ Interface_Static::SetIVal("write.step.vertex.mode",
+ theParameter.WriteVertexMode);
+ Interface_Static::SetIVal("write.stepcaf.subshapes.name",
+ theParameter.WriteSubshapeNames);
+ }
+}
+
//=======================================================================
// function : STEPCAFControl_Provider
// purpose :
}
}
-//=======================================================================
-// function : initStatic
-// purpose :
-//=======================================================================
-void STEPCAFControl_Provider::initStatic(const Handle(DE_ConfigurationNode)& theNode)
-{
- Handle(STEPCAFControl_ConfigurationNode) aNode =
- Handle(STEPCAFControl_ConfigurationNode)::DownCast(theNode);
- STEPCAFControl_Controller::Init();
- if (!myToUpdateStaticParameters)
- {
- return;
- }
- // Get previous values
- myOldValues.ReadBSplineContinuity =
- (STEPCAFControl_ConfigurationNode::ReadMode_BSplineContinuity)
- Interface_Static::IVal("read.iges.bspline.continuity");
- myOldValues.ReadPrecisionMode =
- (STEPCAFControl_ConfigurationNode::ReadMode_Precision)
- Interface_Static::IVal("read.precision.mode");
- myOldValues.ReadPrecisionVal =
- Interface_Static::RVal("read.precision.val");
- myOldValues.ReadMaxPrecisionMode =
- (STEPCAFControl_ConfigurationNode::ReadMode_MaxPrecision)
- Interface_Static::IVal("read.maxprecision.mode");
- myOldValues.ReadMaxPrecisionVal =
- Interface_Static::RVal("read.maxprecision.val");
- myOldValues.ReadSameParamMode =
- Interface_Static::IVal("read.stdsameparameter.mode") == 1;
- myOldValues.ReadSurfaceCurveMode =
- (STEPCAFControl_ConfigurationNode::ReadMode_SurfaceCurve)
- Interface_Static::IVal("read.surfacecurve.mode");
- myOldValues.EncodeRegAngle =
- Interface_Static::RVal("read.encoderegularity.angle") * 180.0 / M_PI;
- myOldValues.AngleUnit =
- (STEPCAFControl_ConfigurationNode::AngleUnitMode)
- Interface_Static::IVal("step.angleunit.mode");
-
- myOldValues.ReadResourceName =
- Interface_Static::CVal("read.step.resource.name");
- myOldValues.ReadSequence =
- Interface_Static::CVal("read.step.sequence");
- myOldValues.ReadProductMode =
- Interface_Static::IVal("read.step.product.mode") == 1;
- myOldValues.ReadProductContext =
- (STEPCAFControl_ConfigurationNode::ReadMode_ProductContext)
- Interface_Static::IVal("read.step.product.context");
- myOldValues.ReadShapeRepr =
- (STEPCAFControl_ConfigurationNode::ReadMode_ShapeRepr)
- Interface_Static::IVal("read.step.shape.repr");
- myOldValues.ReadTessellated =
- (STEPCAFControl_ConfigurationNode::RWMode_Tessellated)
- Interface_Static::IVal("read.step.tessellated");
- myOldValues.ReadAssemblyLevel =
- (STEPCAFControl_ConfigurationNode::ReadMode_AssemblyLevel)
- Interface_Static::IVal("read.step.assembly.level");
- myOldValues.ReadRelationship =
- Interface_Static::IVal("read.step.shape.relationship") == 1;
- myOldValues.ReadShapeAspect =
- Interface_Static::IVal("read.step.shape.aspect") == 1;
- myOldValues.ReadConstrRelation =
- Interface_Static::IVal("read.step.constructivegeom.relationship") == 1;
- myOldValues.ReadSubshapeNames =
- Interface_Static::IVal("read.stepcaf.subshapes.name") == 1;
- myOldValues.ReadCodePage =
- (Resource_FormatType)Interface_Static::IVal("read.step.codepage");
- myOldValues.ReadNonmanifold =
- Interface_Static::IVal("read.step.nonmanifold") == 1;
- myOldValues.ReadIdeas =
- Interface_Static::IVal("read.step.ideas") == 1;
- myOldValues.ReadAllShapes =
- Interface_Static::IVal("read.step.all.shapes") == 1;
- myOldValues.ReadRootTransformation =
- Interface_Static::IVal("read.step.root.transformation") == 1;
-
- myOldValues.WritePrecisionMode =
- (STEPCAFControl_ConfigurationNode::WriteMode_PrecisionMode)
- Interface_Static::IVal("write.precision.mode");
- myOldValues.WritePrecisionVal =
- Interface_Static::RVal("write.precision.val");
- myOldValues.WriteAssembly =
- (STEPCAFControl_ConfigurationNode::WriteMode_Assembly)
- Interface_Static::IVal("write.step.assembly");
- myOldValues.WriteSchema =
- (STEPCAFControl_ConfigurationNode::WriteMode_StepSchema)
- Interface_Static::IVal("write.step.schema");
- myOldValues.WriteTessellated =
- (STEPCAFControl_ConfigurationNode::RWMode_Tessellated)
- Interface_Static::IVal("write.step.tessellated");
- myOldValues.WriteProductName =
- Interface_Static::CVal("write.step.product.name");
- myOldValues.WriteSurfaceCurMode =
- Interface_Static::IVal("write.surfacecurve.mode") == 1;
- myOldValues.WriteUnit =
- (UnitsMethods_LengthUnit)Interface_Static::IVal("write.step.unit");
- myOldValues.WriteResourceName =
- Interface_Static::CVal("write.resource.name");
- myOldValues.WriteSequence =
- Interface_Static::CVal("write.step.sequence");
- myOldValues.WriteVertexMode =
- (STEPCAFControl_ConfigurationNode::WriteMode_VertexMode)
- Interface_Static::IVal("write.step.vertex.mode");
- myOldValues.WriteSubshapeNames =
- Interface_Static::IVal("write.stepcaf.subshapes.name") == 1;
-
- // Set new values
- setStatic(aNode->InternalParameters);
-}
-
-//=======================================================================
-// function : setStatic
-// purpose :
-//=======================================================================
-void STEPCAFControl_Provider::setStatic(const STEPCAFControl_ConfigurationNode::STEPCAFControl_InternalSection theParameter)
-{
- Interface_Static::SetIVal("read.iges.bspline.continuity",
- theParameter.ReadBSplineContinuity);
- Interface_Static::SetIVal("read.precision.mode",
- theParameter.ReadPrecisionMode);
- Interface_Static::SetRVal("read.precision.val",
- theParameter.ReadPrecisionVal);
- Interface_Static::SetIVal("read.maxprecision.mode",
- theParameter.ReadMaxPrecisionMode);
- Interface_Static::SetRVal("read.maxprecision.val",
- theParameter.ReadMaxPrecisionVal);
- Interface_Static::SetIVal("read.stdsameparameter.mode",
- theParameter.ReadSameParamMode);
- Interface_Static::SetIVal("read.surfacecurve.mode",
- theParameter.ReadSurfaceCurveMode);
- Interface_Static::SetRVal("read.encoderegularity.angle",
- theParameter.EncodeRegAngle * M_PI / 180.0);
- Interface_Static::SetIVal("step.angleunit.mode",
- theParameter.AngleUnit);
-
- Interface_Static::SetCVal("read.step.resource.name",
- theParameter.ReadResourceName.ToCString());
- Interface_Static::SetCVal("read.step.sequence",
- theParameter.ReadSequence.ToCString());
- Interface_Static::SetIVal("read.step.product.mode",
- theParameter.ReadProductMode);
- Interface_Static::SetIVal("read.step.product.context",
- theParameter.ReadProductContext);
- Interface_Static::SetIVal("read.step.shape.repr",
- theParameter.ReadShapeRepr);
- Interface_Static::SetIVal("read.step.tessellated",
- theParameter.ReadTessellated);
- Interface_Static::SetIVal("read.step.assembly.level",
- theParameter.ReadAssemblyLevel);
- Interface_Static::SetIVal("read.step.shape.relationship",
- theParameter.ReadRelationship);
- Interface_Static::SetIVal("read.step.shape.aspect",
- theParameter.ReadShapeAspect);
- Interface_Static::SetIVal("read.step.constructivegeom.relationship",
- theParameter.ReadConstrRelation);
- Interface_Static::SetIVal("read.stepcaf.subshapes.name",
- theParameter.ReadSubshapeNames);
- Interface_Static::SetIVal("read.step.codepage",
- theParameter.ReadCodePage);
- Interface_Static::SetIVal("read.step.nonmanifold",
- theParameter.ReadNonmanifold);
- Interface_Static::SetIVal("read.step.ideas",
- theParameter.ReadIdeas);
- Interface_Static::SetIVal("read.step.all.shapes",
- theParameter.ReadAllShapes);
- Interface_Static::SetIVal("read.step.root.transformation",
- theParameter.ReadRootTransformation);
-
- Interface_Static::SetIVal("write.precision.mode",
- theParameter.WritePrecisionMode);
- Interface_Static::SetRVal("write.precision.val",
- theParameter.WritePrecisionVal);
- Interface_Static::SetIVal("write.step.assembly",
- theParameter.WriteAssembly);
- Interface_Static::SetIVal("write.step.schema",
- theParameter.WriteSchema);
- Interface_Static::SetIVal("write.step.tessellated",
- theParameter.WriteTessellated);
- Interface_Static::SetCVal("write.step.product.name",
- theParameter.WriteProductName.ToCString());
- Interface_Static::SetIVal("write.surfacecurve.mode",
- theParameter.WriteSurfaceCurMode);
- Interface_Static::SetIVal("write.step.unit",
- theParameter.WriteUnit);
- Interface_Static::SetCVal("write.resource.name",
- theParameter.WriteResourceName.ToCString());
- Interface_Static::SetCVal("write.step.sequence",
- theParameter.WriteSequence.ToCString());
- Interface_Static::SetIVal("write.step.vertex.mode",
- theParameter.WriteVertexMode);
- Interface_Static::SetIVal("write.stepcaf.subshapes.name",
- theParameter.WriteSubshapeNames);
-}
-
-//=======================================================================
-// function : resetStatic
-// purpose :
-//=======================================================================
-void STEPCAFControl_Provider::resetStatic()
-{
- if (!myToUpdateStaticParameters)
- {
- return;
- }
- setStatic(myOldValues);
-}
-
//=======================================================================
// function : Read
// purpose :
}
Handle(STEPCAFControl_ConfigurationNode) aNode =
Handle(STEPCAFControl_ConfigurationNode)::DownCast(GetNode());
- initStatic(aNode);
-
+ STEPCAFControl_ParameterController aParamController(aNode, myToUpdateStaticParameters);
personizeWS(theWS);
XCAFDoc_DocumentTool::SetLengthUnit(theDocument,
aNode->GlobalParameters.LengthUnit,
{
Message::SendFail() << "Error: STEPCAFControl_Provider : ["
<< aFile << "] : abandon, no model loaded";
- resetStatic();
return false;
}
if (!aReader.Transfer(theDocument, theProgress))
{
Message::SendFail() << "Error: STEPCAFControl_Provider : [" <<
aFile << "] : Cannot read any relevant data from the STEP file";
- resetStatic();
return false;
}
- resetStatic();
myProcessedExtFiles = aReader.ExternFiles();
return true;
}
}
Handle(STEPCAFControl_ConfigurationNode) aNode =
Handle(STEPCAFControl_ConfigurationNode)::DownCast(GetNode());
- initStatic(aNode);
-
+ STEPCAFControl_ParameterController aParamController(aNode, myToUpdateStaticParameters);
personizeWS(theWS);
XCAFDoc_DocumentTool::SetLengthUnit(theDocument,
aNode->GlobalParameters.LengthUnit,
{
Message::SendFail() << "Error: STEPCAFControl_Provider : "
<< "Abandon, no model loaded via stream";
- resetStatic();
return false;
}
if (!aReader.Transfer(theDocument, theProgress))
{
Message::SendFail() << "Error: STEPCAFControl_Provider : "
<< "Cannot read any relevant data from the STEP file";
- resetStatic();
return false;
}
- resetStatic();
myProcessedExtFiles = aReader.ExternFiles();
return true;
}
}
Handle(STEPCAFControl_ConfigurationNode) aNode =
Handle(STEPCAFControl_ConfigurationNode)::DownCast(GetNode());
- initStatic(aNode);
+ STEPCAFControl_ParameterController aParamController(aNode, myToUpdateStaticParameters);
+ personizeWS(theWS);
XCAFDoc_DocumentTool::SetLengthUnit(theDocument,
- UnitsMethods::GetLengthUnitScale(
- aNode->InternalParameters.WriteUnit,
- UnitsMethods_LengthUnit_Millimeter),
+ aNode->GlobalParameters.LengthUnit,
UnitsMethods_LengthUnit_Millimeter);
- personizeWS(theWS);
STEPCAFControl_Writer aWriter(theWS, Standard_True);
STEPControl_StepModelType aMode =
static_cast<STEPControl_StepModelType>(aNode->InternalParameters.WriteModelType);
{
Message::SendFail() << "Error: STEPCAFControl_Provider : "
<< "The document cannot be translated or gives no result";
- resetStatic();
return false;
}
if (thePath == ".")
{
- resetStatic();
Message::SendInfo() << "Document has been translated into the session";
return true;
}
{
Message::SendFail() << "Error: STEPCAFControl_Provider : [" <<
thePath << "] : Write failed";
- resetStatic();
return false;
}
Message::SendInfo() << "STEP file [" << thePath << "] Successfully written";
- resetStatic();
myProcessedExtFiles = aWriter.ExternFiles();
return true;
}
}
Handle(STEPCAFControl_ConfigurationNode) aNode =
Handle(STEPCAFControl_ConfigurationNode)::DownCast(GetNode());
- initStatic(aNode);
+ STEPCAFControl_ParameterController aParamController(aNode, myToUpdateStaticParameters);
personizeWS(theWS);
STEPCAFControl_Writer aWriter(theWS, Standard_True);
STEPControl_StepModelType aMode =
aWriter.SetNameMode(aNode->InternalParameters.WriteName);
aWriter.SetLayerMode(aNode->InternalParameters.WriteLayer);
aWriter.SetPropsMode(aNode->InternalParameters.WriteProps);
- Handle(StepData_StepModel) aModel = aWriter.ChangeWriter().Model();
- aModel->SetWriteLengthUnit(UnitsMethods::GetLengthUnitScale(
- aNode->InternalParameters.WriteUnit,
- UnitsMethods_LengthUnit_Millimeter));
TDF_LabelSequence aLabels;
TCollection_AsciiString aLabelsString;
for (TColStd_ListOfAsciiString::Iterator anIter(aNode->InternalParameters.WriteLabels);
{
Message::SendFail() << "Error: STEPCAFControl_Provider : "
<< "The document cannot be translated or gives no result";
- resetStatic();
return false;
}
if (aWriter.WriteStream(theOStream) != IFSelect_RetDone)
{
Message::SendFail() << "Error: STEPCAFControl_Provider : Write to stream failed";
- resetStatic();
return false;
}
Message::SendInfo() << "STEP file to stream successfully written";
- resetStatic();
myProcessedExtFiles = aWriter.ExternFiles();
return true;
}
}
Handle(STEPCAFControl_ConfigurationNode) aNode =
Handle(STEPCAFControl_ConfigurationNode)::DownCast(GetNode());
- initStatic(aNode);
+ STEPCAFControl_ParameterController aParamController(aNode, myToUpdateStaticParameters);
personizeWS(theWS);
STEPControl_Reader aReader(theWS);
if (aReader.ReadFile(thePath.ToCString()) != IFSelect_RetDone)
{
Message::SendFail() << "Error: STEPCAFControl_Provider : ["
<< thePath << "] : abandon, no model loaded";
- resetStatic();
return false;
}
Handle(StepData_StepModel) aModel = Handle(StepData_StepModel)::DownCast(aReader.Model());
{
Message::SendFail() << "Error: STEPCAFControl_Provider : [" <<
thePath << "] : Cannot read any relevant data from the STEP file";
- resetStatic();
return false;
}
theShape = aReader.OneShape();
- resetStatic();
return true;
}
}
Handle(STEPCAFControl_ConfigurationNode) aNode =
Handle(STEPCAFControl_ConfigurationNode)::DownCast(GetNode());
- initStatic(aNode);
+ STEPCAFControl_ParameterController aParamController(aNode, myToUpdateStaticParameters);
personizeWS(theWS);
STEPControl_Reader aReader(theWS);
if (aReader.ReadStream(theName.ToCString(), theIStream) != IFSelect_RetDone)
{
Message::SendFail() << "Error: STEPCAFControl_Provider : "
<< "Abandon, no model loaded from STEP stream";
- resetStatic();
return false;
}
Handle(StepData_StepModel) aModel = Handle(StepData_StepModel)::DownCast(aReader.Model());
{
Message::SendFail() << "Error: STEPCAFControl_Provider : "
<< "Cannot read any relevant data from the STEP stream";
- resetStatic();
return false;
}
theShape = aReader.OneShape();
- resetStatic();
return true;
}
}
Handle(STEPCAFControl_ConfigurationNode) aNode =
Handle(STEPCAFControl_ConfigurationNode)::DownCast(GetNode());
- initStatic(aNode);
-
+ STEPCAFControl_ParameterController aParamController(aNode, myToUpdateStaticParameters);
personizeWS(theWS);
STEPControl_Writer aWriter(theWS, Standard_True);
Handle(StepData_StepModel) aModel = aWriter.Model();
{
Message::SendFail() << "Error: STEPCAFControl_Provider : "
<< "Can't translate shape to STEP model";
- resetStatic();
return false;
}
if (thePath == ".")
{
- resetStatic();
Message::SendInfo() << "Step model has been translated into the session";
return true;
}
{
Message::SendFail() << "Error: STEPCAFControl_Provider : "
<< "Can't write STEP file " << thePath;
- resetStatic();
return false;
}
- resetStatic();
return true;
}
}
Handle(STEPCAFControl_ConfigurationNode) aNode =
Handle(STEPCAFControl_ConfigurationNode)::DownCast(GetNode());
- initStatic(aNode);
-
+ STEPCAFControl_ParameterController aParamController(aNode, myToUpdateStaticParameters);
personizeWS(theWS);
STEPControl_Writer aWriter(theWS, Standard_True);
Handle(StepData_StepModel) aModel = aWriter.Model();
{
Message::SendFail() << "Error: STEPCAFControl_Provider : "
<< "Can't translate shape to STEP model";
- resetStatic();
return false;
}
if (aWriter.WriteStream(theOStream) != IFSelect_RetDone)
{
Message::SendFail() << "Error: STEPCAFControl_Provider : "
<< "Can't write STEP to stream";
- resetStatic();
return false;
}
- resetStatic();
return true;
}