mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-09 13:22:24 +03:00
Additional commit
This commit is contained in:
@@ -6,7 +6,5 @@ HeaderSection_FileName.cxx
|
||||
HeaderSection_FileName.hxx
|
||||
HeaderSection_FileSchema.cxx
|
||||
HeaderSection_FileSchema.hxx
|
||||
HeaderSection_HeaderRecognizer.cxx
|
||||
HeaderSection_HeaderRecognizer.hxx
|
||||
HeaderSection_Protocol.cxx
|
||||
HeaderSection_Protocol.hxx
|
||||
|
@@ -15,12 +15,10 @@
|
||||
#include <HeaderSection.hxx>
|
||||
#include <HeaderSection_Protocol.hxx>
|
||||
|
||||
//szv_c1:StaticHandle(HeaderSection_Protocol, proto);
|
||||
static Handle(HeaderSection_Protocol) proto;
|
||||
|
||||
const Handle(HeaderSection_Protocol) & HeaderSection::Protocol()
|
||||
{
|
||||
//szv_c1:InitHandleVoid(HeaderSection_Protocol, proto)
|
||||
if (proto.IsNull()) proto = new HeaderSection_Protocol;
|
||||
static Handle(HeaderSection_Protocol) proto;
|
||||
if (proto.IsNull())
|
||||
proto = new HeaderSection_Protocol;
|
||||
return proto;
|
||||
}
|
||||
|
@@ -1,51 +0,0 @@
|
||||
// Created on: 1994-06-27
|
||||
// Created by: Frederic MAUPAS
|
||||
// Copyright (c) 1994-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
|
||||
#include <HeaderSection_FileDescription.hxx>
|
||||
#include <HeaderSection_FileName.hxx>
|
||||
#include <HeaderSection_FileSchema.hxx>
|
||||
#include <HeaderSection_HeaderRecognizer.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
#include <TCollection_AsciiString.hxx>
|
||||
|
||||
IMPLEMENT_STANDARD_RTTIEXT(HeaderSection_HeaderRecognizer,StepData_FileRecognizer)
|
||||
|
||||
static TCollection_AsciiString reco_FileName ("FILE_NAME");
|
||||
static TCollection_AsciiString reco_FileSchema ("FILE_SCHEMA");
|
||||
static TCollection_AsciiString reco_FileDescription ("FILE_DESCRIPTION");
|
||||
|
||||
|
||||
|
||||
HeaderSection_HeaderRecognizer::HeaderSection_HeaderRecognizer ()
|
||||
{ }
|
||||
|
||||
void HeaderSection_HeaderRecognizer::Eval
|
||||
(const TCollection_AsciiString& key)
|
||||
{
|
||||
if (key.IsEqual(reco_FileName)) {
|
||||
SetOK(new HeaderSection_FileName);
|
||||
return;
|
||||
}
|
||||
if (key.IsEqual(reco_FileSchema)) {
|
||||
SetOK(new HeaderSection_FileSchema);
|
||||
return;
|
||||
}
|
||||
if (key.IsEqual(reco_FileDescription)) {
|
||||
SetOK(new HeaderSection_FileDescription);
|
||||
return;
|
||||
}
|
||||
}
|
@@ -1,66 +0,0 @@
|
||||
// Created on: 1994-06-27
|
||||
// Created by: Frederic MAUPAS
|
||||
// Copyright (c) 1994-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _HeaderSection_HeaderRecognizer_HeaderFile
|
||||
#define _HeaderSection_HeaderRecognizer_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
|
||||
#include <StepData_FileRecognizer.hxx>
|
||||
class TCollection_AsciiString;
|
||||
|
||||
|
||||
class HeaderSection_HeaderRecognizer;
|
||||
DEFINE_STANDARD_HANDLE(HeaderSection_HeaderRecognizer, StepData_FileRecognizer)
|
||||
|
||||
//! Recognizes STEP Standard Header Entities
|
||||
//! (FileName, FileDescription, FileSchema)
|
||||
class HeaderSection_HeaderRecognizer : public StepData_FileRecognizer
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
|
||||
Standard_EXPORT HeaderSection_HeaderRecognizer();
|
||||
|
||||
|
||||
|
||||
|
||||
DEFINE_STANDARD_RTTIEXT(HeaderSection_HeaderRecognizer,StepData_FileRecognizer)
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
//! Recognizes data types of Header STEP Standard
|
||||
Standard_EXPORT void Eval (const TCollection_AsciiString& key) Standard_OVERRIDE;
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _HeaderSection_HeaderRecognizer_HeaderFile
|
@@ -14,7 +14,6 @@
|
||||
|
||||
#include <IFGraph_AllShared.hxx>
|
||||
#include <Interface_EntityIterator.hxx>
|
||||
#include <Interface_InterfaceModel.hxx>
|
||||
|
||||
|
||||
IFGraph_AllShared::IFGraph_AllShared (const Interface_Graph& agraph, const Handle(Standard_Transient)& ent)
|
||||
|
@@ -16,8 +16,6 @@
|
||||
#include <IFGraph_Cumulate.hxx>
|
||||
#include <Interface_EntityIterator.hxx>
|
||||
#include <Interface_Graph.hxx>
|
||||
#include <Interface_InterfaceModel.hxx>
|
||||
#include <Standard_Transient.hxx>
|
||||
|
||||
// Calcul de cumul
|
||||
// Tres simple, on note les entites demandees, et a la fin
|
||||
|
@@ -20,7 +20,6 @@
|
||||
#include <Dico_DictionaryOfTransient.hxx>
|
||||
#include <Message_Messenger.hxx>
|
||||
#include <Interface_Macros.hxx>
|
||||
#include <Interface_GTool.hxx>
|
||||
#include <Interface_HGraph.hxx>
|
||||
#include <Interface_MSG.hxx>
|
||||
#include <Interface_Category.hxx>
|
||||
@@ -60,6 +59,7 @@ IFSelect_WorkSession::IFSelect_WorkSession ()
|
||||
: myNames(new Dico_DictionaryOfTransient),
|
||||
myVars(new IFSelect_Vars)
|
||||
{
|
||||
errhand = Standard_True;
|
||||
}
|
||||
|
||||
|
||||
@@ -704,7 +704,7 @@ Interface_EntityIterator IFSelect_WorkSession::EvalSelection (const Handle(IFSel
|
||||
iter = EvalSelection(sel); // appel normal (donc, code pas duplique)
|
||||
}
|
||||
catch (Standard_Failure) {
|
||||
Handle(Message_Messenger) sout = Message::DefaultMessenger();
|
||||
const Handle(Message_Messenger) &sout = Message::DefaultMessenger();
|
||||
sout<<" **** Interruption EvalSelection par Exception : ****\n";
|
||||
sout<<Standard_Failure::Caught()->GetMessageString();
|
||||
sout<<"\n Abandon"<<endl;
|
||||
@@ -734,7 +734,7 @@ Handle(TColStd_HSequenceOfTransient) IFSelect_WorkSession::SelectionResult (cons
|
||||
res = SelectionResult(sel); // appel normal (->code unique)
|
||||
}
|
||||
catch (Standard_Failure) {
|
||||
Handle(Message_Messenger) sout = Message::DefaultMessenger();
|
||||
const Handle(Message_Messenger) &sout = Message::DefaultMessenger();
|
||||
sout<<" **** Interruption SelectionResult par Exception : ****\n";
|
||||
sout<<Standard_Failure::Caught()->GetMessageString();
|
||||
sout<<"\n Abandon"<<endl;
|
||||
|
@@ -76,10 +76,9 @@ static Handle(Standard_Type) atype01,atype02,atype03,atype04,atype05,atype06,
|
||||
Handle(Interface_Protocol) IGESAppli_Protocol::Resource
|
||||
(const Standard_Integer num) const
|
||||
{
|
||||
Handle(Interface_Protocol) res;
|
||||
if (num == 1) res = IGESDefs::Protocol();
|
||||
if (num == 2) res = IGESDraw::Protocol();
|
||||
return res;
|
||||
if (num == 1) return IGESDefs::Protocol();
|
||||
if (num == 2) return IGESDraw::Protocol();
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Standard_Integer IGESAppli_Protocol::TypeNumber
|
||||
|
@@ -67,8 +67,7 @@ static Handle(Standard_Type) atype01,atype02,atype03,atype04,atype05,atype06,
|
||||
Handle(Interface_Protocol) IGESBasic_Protocol::Resource
|
||||
(const Standard_Integer /*num*/) const
|
||||
{
|
||||
Handle(Interface_Protocol) res = IGESData::Protocol();
|
||||
return res;
|
||||
return IGESData::Protocol();
|
||||
}
|
||||
|
||||
Standard_Integer IGESBasic_Protocol::TypeNumber
|
||||
|
@@ -30,12 +30,18 @@
|
||||
#include <gp_XYZ.hxx>
|
||||
#include <IGESControl_Controller.hxx>
|
||||
#include <IGESControl_Writer.hxx>
|
||||
#include <IGESData.hxx>
|
||||
#include <IGESData_DirChecker.hxx>
|
||||
#include <IGESData_IGESEntity.hxx>
|
||||
#include <IGESData_IGESModel.hxx>
|
||||
#include <IGESData_IGESWriter.hxx>
|
||||
#include <IGESData_Protocol.hxx>
|
||||
#include <IGESData_GeneralModule.hxx>
|
||||
#include <IGESData_SpecificModule.hxx>
|
||||
#include <Interface_Macros.hxx>
|
||||
#include <Interface_Static.hxx>
|
||||
#include <Interface_Graph.hxx>
|
||||
#include <Interface_EntityIterator.hxx>
|
||||
#include <Message_ProgressIndicator.hxx>
|
||||
#include <OSD_OpenFile.hxx>
|
||||
#include <ShapeAnalysis_ShapeTolerance.hxx>
|
||||
@@ -51,34 +57,28 @@ IGESControl_Writer::IGESControl_Writer ()
|
||||
: myTP (new Transfer_FinderProcess(10000)),
|
||||
myIsComputed (Standard_False)
|
||||
{
|
||||
// faudrait aussi (?) prendre les parametres par defaut ... ?
|
||||
IGESControl_Controller::Init();
|
||||
myEditor.Init(IGESControl_Controller::DefineProtocol());
|
||||
myEditor.SetUnitName(Interface_Static::CVal ("write.iges.unit"));
|
||||
myEditor.ApplyUnit();
|
||||
InitProtocol();
|
||||
myWriteMode = Interface_Static::IVal ("write.iges.brep.mode");
|
||||
myModel = myEditor.Model();
|
||||
myModel = IGESData::NewModel();
|
||||
SetUnitName(Interface_Static::CVal ("write.iges.unit"));
|
||||
}
|
||||
|
||||
IGESControl_Writer::IGESControl_Writer
|
||||
(const Standard_CString unit, const Standard_Integer modecr)
|
||||
IGESControl_Writer::IGESControl_Writer (const Standard_CString unit, const Standard_Integer modecr)
|
||||
: myTP (new Transfer_FinderProcess(10000)),
|
||||
myWriteMode (modecr), myIsComputed (Standard_False)
|
||||
{
|
||||
// faudrait aussi (?) prendre les parametres par defaut ... ?
|
||||
IGESControl_Controller::Init();
|
||||
myEditor.Init(IGESControl_Controller::DefineProtocol());
|
||||
myEditor.SetUnitName(unit);
|
||||
myEditor.ApplyUnit();
|
||||
myModel = myEditor.Model();
|
||||
InitProtocol();
|
||||
myModel = IGESData::NewModel();
|
||||
SetUnitName(unit);
|
||||
}
|
||||
|
||||
IGESControl_Writer::IGESControl_Writer
|
||||
(const Handle(IGESData_IGESModel)& model, const Standard_Integer modecr)
|
||||
IGESControl_Writer::IGESControl_Writer (const Handle(IGESData_IGESModel)& model, const Standard_Integer modecr)
|
||||
: myTP (new Transfer_FinderProcess(10000)),
|
||||
myModel (model),
|
||||
myEditor (model,IGESControl_Controller::DefineProtocol()) ,
|
||||
myWriteMode (modecr) , myIsComputed (Standard_False) { }
|
||||
myWriteMode (modecr), myIsComputed (Standard_False)
|
||||
{
|
||||
InitProtocol();
|
||||
}
|
||||
|
||||
Standard_Boolean IGESControl_Writer::AddShape (const TopoDS_Shape& theShape)
|
||||
{
|
||||
@@ -218,8 +218,8 @@ Standard_Boolean IGESControl_Writer::AddEntity (const Handle(IGESData_IGESEntity
|
||||
void IGESControl_Writer::ComputeModel ()
|
||||
{
|
||||
if (!myIsComputed) {
|
||||
myEditor.ComputeStatus();
|
||||
myEditor.AutoCorrectModel();
|
||||
ComputeStatus();
|
||||
AutoCorrectModel();
|
||||
myIsComputed = Standard_True;
|
||||
}
|
||||
}
|
||||
@@ -266,3 +266,166 @@ Standard_Boolean IGESControl_Writer::Write
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
void IGESControl_Writer::InitProtocol ()
|
||||
{
|
||||
IGESControl_Controller::Init();
|
||||
const Handle(IGESData_Protocol) &aProtocol = IGESControl_Controller::DefineProtocol();
|
||||
myGLib = Interface_GeneralLib (aProtocol);
|
||||
mySLib = IGESData_SpecificLib (aProtocol);
|
||||
}
|
||||
|
||||
void IGESControl_Writer::SetUnitName (const Standard_CString name)
|
||||
{
|
||||
if (myModel.IsNull()) return;
|
||||
|
||||
const Standard_Integer flag = IGESData::UnitNameFlag (name);
|
||||
IGESData_GlobalSection GS = myModel->GlobalSection();
|
||||
if (GS.UnitFlag() == 3) {
|
||||
char* nam = (char *)name;
|
||||
if (name[1] == 'H') nam = (char *)&name[2];
|
||||
GS.SetUnitName (new TCollection_HAsciiString(nam));
|
||||
myModel->SetGlobalSection (GS);
|
||||
}
|
||||
else if (flag >= 1 && flag <= 11) {
|
||||
//! Set a new unit from its flag (param 14 of Global Section)
|
||||
//! Returns True if done, False if <flag> is incorrect
|
||||
Handle(TCollection_HAsciiString) name = GS.UnitName();
|
||||
Standard_CString nam = IGESData::UnitFlagName (flag);
|
||||
if (nam[0] != '\0') name = new TCollection_HAsciiString (nam);
|
||||
GS.SetUnitFlag (flag);
|
||||
GS.SetUnitName (name);
|
||||
myModel->SetGlobalSection (GS);
|
||||
|
||||
Standard_Real unit = GS.UnitValue();
|
||||
if (unit <= 0.) return;
|
||||
if (unit != 1.) {
|
||||
GS.SetMaxLineWeight (GS.MaxLineWeight () / unit);
|
||||
GS.SetResolution (GS.Resolution () / unit);
|
||||
GS.SetMaxCoord (GS.MaxCoord () / unit);
|
||||
myModel->SetGlobalSection (GS);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void IGESControl_Writer::ComputeStatus ()
|
||||
{
|
||||
if (myModel.IsNull()) return;
|
||||
Standard_Integer nb = myModel->NbEntities();
|
||||
if (nb == 0) return;
|
||||
TColStd_Array1OfInteger subs (0,nb); subs.Init(0); // gere Subordinate Status
|
||||
Interface_Graph G (myModel); // gere & memorise UseFlag
|
||||
G.ResetStatus();
|
||||
|
||||
// 2 phases : d abord on fait un calcul d ensemble. Ensuite on applique
|
||||
// Tout le modele est traite, pas de jaloux
|
||||
|
||||
// Chaque entite va donner une contribution sur ses descendents propres :
|
||||
// pour Subordinate (1 ou 2 cumulables), pour UseFlag (1 a 6 exclusifs)
|
||||
// (6 depuis IGES-5.2)
|
||||
|
||||
// Pour Subordinate : Drawing et 402 (sauf p-e dimensioned geometry ?) donnent
|
||||
// Logical, le reste implique Physical (sur descendants directs propres)
|
||||
|
||||
// Pour UseFlag, un peu plus complique :
|
||||
// D une part, les UseFlag se propagent aux descendants directs ou non
|
||||
// D autre part les cas sont plus compliques (et pas aussi clairs)
|
||||
|
||||
// ATTENTION, on ne peut traiter que ce qui se deduit du graphe en s appuyant
|
||||
// sur les "IGES Type Number", on n a pas le droit ici d acceder a la
|
||||
// description specifique des differents types : traites par AutoCorrect.
|
||||
// Exemple : une courbe est 3D ou parametrique 2D(UV), non seulement selon son
|
||||
// ascendant, mais selon le role qu elle y joue (ex. pour CurveOnSurface :
|
||||
// CurveUV/Curve3D)
|
||||
// Traites actuellement (necessaires) :
|
||||
// 1(Annotation), aussi 4(pour maillage). 5(ParamUV) traite par AutoCorrect
|
||||
|
||||
Standard_Integer CN;
|
||||
Standard_Integer i; // svv Jan11 2000 : porting on DEC
|
||||
for (i = 1; i <= nb; i ++) {
|
||||
// Subordinate (sur directs en propre seulement)
|
||||
Handle(IGESData_IGESEntity) ent = myModel->Entity(i);
|
||||
Standard_Integer igt = ent->TypeNumber();
|
||||
Handle(Interface_GeneralModule) gmodule;
|
||||
if (myGLib.Select (ent,gmodule,CN)) {
|
||||
Handle(IGESData_GeneralModule) gmod =
|
||||
Handle(IGESData_GeneralModule)::DownCast (gmodule);
|
||||
Interface_EntityIterator sh;
|
||||
gmod->OwnSharedCase (CN,ent,sh);
|
||||
for (sh.Start(); sh.More(); sh.Next()) {
|
||||
Standard_Integer nums = myModel->Number(sh.Value());
|
||||
if (igt == 402 || igt == 404) subs.SetValue (nums,subs.Value(nums) | 2);
|
||||
else subs.SetValue (nums,subs.Value(nums) | 1);
|
||||
//// cout<<"ComputeStatus : nums = "<<nums<<" ->"<<subs.Value(nums)<<endl;
|
||||
}
|
||||
}
|
||||
// UseFlag (a propager)
|
||||
if (igt / 100 == 2) {
|
||||
G.GetFromEntity(ent,Standard_True,1); // Annotation
|
||||
G.GetFromEntity(ent,Standard_False,ent->UseFlag());
|
||||
} else if (igt == 134 || igt == 116 || igt == 132) {
|
||||
Interface_EntityIterator sh = G.Sharings(ent); // Maillage ...
|
||||
if (sh.NbEntities() > 0) G.GetFromEntity(ent,Standard_True,4);
|
||||
}
|
||||
}
|
||||
|
||||
// A present, on va appliquer tout cela "de force"
|
||||
// Seule exception : des UseFlags non nuls deja en place sont laisses
|
||||
|
||||
for (i = 1; i <= nb; i ++) {
|
||||
Handle(IGESData_IGESEntity) ent = myModel->Entity(i);
|
||||
Standard_Integer bl = ent->BlankStatus();
|
||||
Standard_Integer uf = ent->UseFlag();
|
||||
if (uf == 0) uf = G.Status(i);
|
||||
Standard_Integer hy = ent->HierarchyStatus();
|
||||
ent->InitStatus(bl,subs.Value(i),uf,hy);
|
||||
}
|
||||
}
|
||||
|
||||
Standard_Boolean IGESControl_Writer::AutoCorrect (const Handle(IGESData_IGESEntity)& ent)
|
||||
{
|
||||
if (myModel.IsNull()) return Standard_False;
|
||||
Handle(IGESData_IGESEntity) bof, subent;
|
||||
Handle(IGESData_LineFontEntity) linefont;
|
||||
Handle(IGESData_LevelListEntity) levelist;
|
||||
Handle(IGESData_ViewKindEntity) view;
|
||||
Handle(IGESData_TransfEntity) transf;
|
||||
Handle(IGESData_LabelDisplayEntity) labdisp;
|
||||
Handle(IGESData_ColorEntity) color;
|
||||
|
||||
Standard_Boolean done = Standard_False;
|
||||
if (ent.IsNull()) return done;
|
||||
|
||||
// Corrections dans les Assocs (les Props restent attachees a l Entite)
|
||||
Interface_EntityIterator iter = ent->Associativities();
|
||||
for (iter.Start(); iter.More(); iter.Next()) {
|
||||
subent = GetCasted(IGESData_IGESEntity,iter.Value());
|
||||
if (!subent.IsNull() && myModel->Number(subent) == 0)
|
||||
{ subent->Dissociate(ent); done = Standard_True; }
|
||||
}
|
||||
|
||||
// Corrections specifiques
|
||||
Standard_Integer CN;
|
||||
Handle(Interface_GeneralModule) gmodule;
|
||||
if (myGLib.Select (ent,gmodule,CN)) {
|
||||
Handle(IGESData_GeneralModule) gmod =
|
||||
Handle(IGESData_GeneralModule)::DownCast (gmodule);
|
||||
IGESData_DirChecker DC = gmod->DirChecker(CN,ent);
|
||||
done |= DC.Correct(ent);
|
||||
}
|
||||
|
||||
Handle(IGESData_SpecificModule) smod;
|
||||
if (mySLib.Select (ent,smod,CN)) done |= smod->OwnCorrect (CN,ent);
|
||||
|
||||
return done;
|
||||
}
|
||||
|
||||
Standard_Integer IGESControl_Writer::AutoCorrectModel ()
|
||||
{
|
||||
Standard_Integer res = 0;
|
||||
Standard_Integer nb = myModel->NbEntities();
|
||||
for (Standard_Integer i = 1; i <= nb; i ++) {
|
||||
if (AutoCorrect (myModel->Entity(i))) res ++;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
@@ -21,15 +21,12 @@
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <IGESData_BasicEditor.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_CString.hxx>
|
||||
#include <Standard_OStream.hxx>
|
||||
#include <Interface_GeneralLib.hxx>
|
||||
#include <IGESData_SpecificLib.hxx>
|
||||
class TopoDS_Shape;
|
||||
class Transfer_FinderProcess;
|
||||
class IGESData_IGESModel;
|
||||
class TopoDS_Shape;
|
||||
class Standard_Transient;
|
||||
class IGESData_IGESEntity;
|
||||
|
||||
|
||||
@@ -111,11 +108,39 @@ public:
|
||||
|
||||
private:
|
||||
|
||||
//! Initialize a Protocol and Libraries
|
||||
Standard_EXPORT void InitProtocol ();
|
||||
|
||||
//! Sets a new unit from its name (param 15 of Global Section)
|
||||
//! Remark : if <flag> has been set to 3 (user defined), <name> is then free
|
||||
Standard_EXPORT void SetUnitName (const Standard_CString name);
|
||||
|
||||
//! Performs the re-computation of status on the whole model
|
||||
//! (Subordinate Status and Use Flag of each IGES Entity), which
|
||||
//! can have required values according the way they are referenced
|
||||
//! (see definitions of Logical use, Physical use, etc...)
|
||||
Standard_EXPORT void ComputeStatus();
|
||||
|
||||
//! Performs auto-correction on an IGESEntity
|
||||
//! Returns True if something has changed, False if nothing done.
|
||||
//!
|
||||
//! Works with the specific IGES Services : DirChecker which
|
||||
//! allows to correct data in "Directory Part" of Entities (such
|
||||
//! as required values for status, or references to be null), and
|
||||
//! the specific IGES service OwnCorrect, which is specialised for
|
||||
//! each type of entity.
|
||||
Standard_EXPORT Standard_Boolean AutoCorrect (const Handle(IGESData_IGESEntity)& ent);
|
||||
|
||||
//! Performs auto-correction on the whole Model
|
||||
//! Returns the count of modified entities
|
||||
Standard_EXPORT Standard_Integer AutoCorrectModel();
|
||||
|
||||
Handle(Transfer_FinderProcess) myTP;
|
||||
Handle(IGESData_IGESModel) myModel;
|
||||
IGESData_BasicEditor myEditor;
|
||||
Standard_Integer myWriteMode;
|
||||
Standard_Boolean myIsComputed;
|
||||
Interface_GeneralLib myGLib;
|
||||
IGESData_SpecificLib mySLib;
|
||||
};
|
||||
|
||||
#endif // _IGESControl_Writer_HeaderFile
|
||||
|
@@ -2,8 +2,6 @@ IGESData.cxx
|
||||
IGESData.hxx
|
||||
IGESData_Array1OfDirPart.hxx
|
||||
IGESData_Array1OfIGESEntity.hxx
|
||||
IGESData_BasicEditor.cxx
|
||||
IGESData_BasicEditor.hxx
|
||||
IGESData_ColorEntity.cxx
|
||||
IGESData_ColorEntity.hxx
|
||||
IGESData_DefaultGeneral.cxx
|
||||
|
@@ -193,8 +193,103 @@ const Handle(IGESData_Protocol) & IGESData::Protocol ()
|
||||
|
||||
Handle(IGESData_IGESModel) IGESData::NewModel ()
|
||||
{
|
||||
if (gIGESModel.IsNull()) return NULL;
|
||||
Handle(Interface_InterfaceModel) newmod = gIGESModel->NewEmptyModel();
|
||||
Handle(IGESData_IGESModel) newmod;
|
||||
if (!gIGESModel.IsNull()) {
|
||||
newmod = new IGESData_IGESModel;
|
||||
newmod->GetFromAnother (gIGESModel);
|
||||
return Handle(IGESData_IGESModel)::DownCast(newmod);
|
||||
}
|
||||
return newmod;
|
||||
}
|
||||
|
||||
Standard_Integer IGESData::UnitNameFlag (const Standard_CString name)
|
||||
{
|
||||
char* nam = (char *)&name[0];
|
||||
if (name[1] == 'H') {
|
||||
nam = (char *)&name[2];
|
||||
}
|
||||
if (!strcmp (nam,"INCH")) return 1;
|
||||
if (!strcmp (nam,"IN")) return 1;
|
||||
if (!strcmp (nam,"MM")) return 2;
|
||||
if (!strcmp (nam,"FT")) return 4;
|
||||
if (!strcmp (nam,"MI")) return 5;
|
||||
if (!strcmp (nam,"M")) return 6;
|
||||
if (!strcmp (nam,"KM")) return 7;
|
||||
if (!strcmp (nam,"MIL")) return 8;
|
||||
if (!strcmp (nam,"UM")) return 9;
|
||||
if (!strcmp (nam,"CM")) return 10;
|
||||
if (!strcmp (nam,"UIN")) return 11;
|
||||
return 0;
|
||||
}
|
||||
|
||||
Standard_Real IGESData::UnitFlagValue (const Standard_Integer flag)
|
||||
{
|
||||
switch (flag) {
|
||||
case 1 : return 0.0254;
|
||||
case 2 : return 0.001;
|
||||
case 3 : return 1.;
|
||||
case 4 : return 0.3048;
|
||||
case 5 : return 1609.27;
|
||||
case 6 : return 1.;
|
||||
case 7 : return 1000.;
|
||||
case 8 : return 0.0000254;
|
||||
case 9 : return 0.000001;
|
||||
case 10 : return 0.01;
|
||||
case 11 : return 0.0000000254;
|
||||
default : break;
|
||||
}
|
||||
return 0.;
|
||||
}
|
||||
|
||||
Standard_CString IGESData::UnitFlagName (const Standard_Integer flag)
|
||||
{
|
||||
Standard_CString name = "";
|
||||
switch (flag) {
|
||||
case 1 : name = "INCH"; break;
|
||||
case 2 : name = "MM"; break;
|
||||
case 4 : name = "FT"; break;
|
||||
case 5 : name = "MI"; break;
|
||||
case 6 : name = "M"; break;
|
||||
case 7 : name = "KM"; break;
|
||||
case 8 : name = "MIL"; break;
|
||||
case 9 : name = "UM"; break;
|
||||
case 10 : name = "CM"; break;
|
||||
case 11 : name = "UIN"; break;
|
||||
default : break;
|
||||
}
|
||||
return name;
|
||||
}
|
||||
|
||||
Standard_CString IGESData::IGESVersionName (const Standard_Integer flag)
|
||||
{
|
||||
switch (flag) {
|
||||
case 1 : return "1.0";
|
||||
case 2 : return "ANSI Y14.26M-1981";
|
||||
case 3 : return "2.0";
|
||||
case 4 : return "3.0";
|
||||
case 5 : return "ANSI Y14.26M-1987";
|
||||
case 6 : return "4.0";
|
||||
case 7 : return "ANSI Y14.26M-1989";
|
||||
case 8 : return "5.0";
|
||||
case 9 : return "5.1";
|
||||
case 10: return "5.2";
|
||||
case 11: return "5.3";
|
||||
default : break;
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
Standard_CString IGESData::DraftingName (const Standard_Integer flag)
|
||||
{
|
||||
switch (flag) {
|
||||
case 0 : return "(None)";
|
||||
case 1 : return "ISO";
|
||||
case 2 : return "AFNOR";
|
||||
case 3 : return "ANSI";
|
||||
case 4 : return "BSI";
|
||||
case 5 : return "CSA";
|
||||
case 6 : return "DIN";
|
||||
case 7 : return "JIS";
|
||||
default : break;
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
@@ -36,6 +36,28 @@ class IGESData
|
||||
|
||||
//! Returns a Protocol from IGESData (avoids to create it)
|
||||
Standard_EXPORT static Handle(IGESData_IGESModel) NewModel ();
|
||||
|
||||
//! From the name of unit, computes flag number, 0 if incorrect
|
||||
//! (in this case, user defined entity remains possible)
|
||||
Standard_EXPORT static Standard_Integer UnitNameFlag (const Standard_CString name);
|
||||
|
||||
//! From the flag of unit, determines value in MM, 0 if incorrect
|
||||
Standard_EXPORT static Standard_Real UnitFlagValue (const Standard_Integer flag);
|
||||
|
||||
//! From the flag of unit, determines its name, "" if incorrect
|
||||
Standard_EXPORT static Standard_CString UnitFlagName (const Standard_Integer flag);
|
||||
|
||||
//! From the flag of IGES version, returns name, "" if incorrect
|
||||
Standard_EXPORT static Standard_CString IGESVersionName (const Standard_Integer flag);
|
||||
|
||||
//! Returns the maximum allowed value for IGESVersion Flag
|
||||
static Standard_Integer IGESVersionMax () { return 11; }
|
||||
|
||||
//! From the flag of drafting standard, returns name, "" if incorrect
|
||||
Standard_EXPORT static Standard_CString DraftingName (const Standard_Integer flag);
|
||||
|
||||
//! Returns the maximum allowed value for Drafting Flag
|
||||
static Standard_Integer DraftingMax () { return 7; }
|
||||
};
|
||||
|
||||
#endif // _IGESData_HeaderFile
|
||||
|
@@ -1,436 +0,0 @@
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
//#73 rln 10.03.99 S4135: "read.scale.unit" does not affect GlobalSection
|
||||
|
||||
#include <IGESData.hxx>
|
||||
#include <IGESData_BasicEditor.hxx>
|
||||
#include <IGESData_ColorEntity.hxx>
|
||||
#include <IGESData_DirChecker.hxx>
|
||||
#include <IGESData_GeneralModule.hxx>
|
||||
#include <IGESData_IGESEntity.hxx>
|
||||
#include <IGESData_IGESModel.hxx>
|
||||
#include <IGESData_LabelDisplayEntity.hxx>
|
||||
#include <IGESData_LevelListEntity.hxx>
|
||||
#include <IGESData_LineFontEntity.hxx>
|
||||
#include <IGESData_Protocol.hxx>
|
||||
#include <IGESData_SpecificModule.hxx>
|
||||
#include <IGESData_TransfEntity.hxx>
|
||||
#include <IGESData_ViewKindEntity.hxx>
|
||||
#include <IGESGeom_Boundary.hxx>
|
||||
#include <IGESGeom_CurveOnSurface.hxx>
|
||||
#include <Interface_EntityIterator.hxx>
|
||||
#include <Interface_Graph.hxx>
|
||||
#include <Interface_Macros.hxx>
|
||||
#include <Interface_Static.hxx>
|
||||
#include <TCollection_HAsciiString.hxx>
|
||||
#include <TColStd_Array1OfInteger.hxx>
|
||||
#include <UnitsMethods.hxx>
|
||||
|
||||
IGESData_BasicEditor::IGESData_BasicEditor(const Handle(IGESData_Protocol)& protocol)
|
||||
{
|
||||
Init(protocol);
|
||||
}
|
||||
|
||||
IGESData_BasicEditor::IGESData_BasicEditor(const Handle(IGESData_IGESModel)& model,
|
||||
const Handle(IGESData_Protocol)& protocol)
|
||||
{
|
||||
Init(model, protocol);
|
||||
}
|
||||
|
||||
IGESData_BasicEditor::IGESData_BasicEditor() { }
|
||||
|
||||
void IGESData_BasicEditor::Init (const Handle(IGESData_Protocol)& protocol)
|
||||
{
|
||||
theunit = Standard_False;
|
||||
theproto = protocol;
|
||||
themodel = IGESData::NewModel();
|
||||
theglib = Interface_GeneralLib (protocol);
|
||||
theslib = protocol;
|
||||
}
|
||||
|
||||
void IGESData_BasicEditor::Init (const Handle(IGESData_IGESModel)& model, const Handle(IGESData_Protocol)& protocol)
|
||||
{
|
||||
theunit = Standard_False;
|
||||
theproto = protocol;
|
||||
themodel = model;
|
||||
theglib = Interface_GeneralLib (protocol);
|
||||
theslib = protocol;
|
||||
}
|
||||
|
||||
Handle(IGESData_IGESModel) IGESData_BasicEditor::Model () const
|
||||
{ return themodel; }
|
||||
|
||||
// #### Travaux sur le Header (GlobalSection) ####
|
||||
|
||||
Standard_Boolean IGESData_BasicEditor::SetUnitFlag
|
||||
(const Standard_Integer flag)
|
||||
{
|
||||
if (themodel.IsNull()) return Standard_False;
|
||||
if (flag < 1 || flag > 11) return Standard_False;
|
||||
IGESData_GlobalSection GS = themodel->GlobalSection();
|
||||
Handle(TCollection_HAsciiString) name = GS.UnitName();
|
||||
Standard_CString nam = IGESData_BasicEditor::UnitFlagName (flag);
|
||||
if (nam[0] != '\0') name = new TCollection_HAsciiString (nam);
|
||||
GS.SetUnitFlag (flag);
|
||||
GS.SetUnitName (name);
|
||||
themodel->SetGlobalSection (GS);
|
||||
theunit = Standard_True;
|
||||
return Standard_True;
|
||||
}
|
||||
|
||||
Standard_Boolean IGESData_BasicEditor::SetUnitValue
|
||||
(const Standard_Real val)
|
||||
{
|
||||
if (val <= 0.) return Standard_False;
|
||||
Standard_Real vmm = val * UnitsMethods::GetCasCadeLengthUnit(); //abv 20 Feb 00: adding cascade unit factor
|
||||
//#73 rln 10.03.99 S4135: "read.scale.unit" does not affect GlobalSection
|
||||
//if (Interface_Static::IVal("read.scale.unit") == 1) vmm = vmm * 1000.;
|
||||
// vmm est exprime en MILLIMETRES
|
||||
if (vmm >= 25. && vmm <= 26. ) return SetUnitFlag(1);
|
||||
if (vmm >= 0.9 && vmm <= 1.1 ) return SetUnitFlag(2);
|
||||
if (vmm >= 300. && vmm <= 310. ) return SetUnitFlag(4);
|
||||
if (vmm >= 1600000. && vmm <= 1620000. ) return SetUnitFlag(5);
|
||||
if (vmm >= 990. && vmm <= 1010. ) return SetUnitFlag(6);
|
||||
if (vmm >= 990000. && vmm <= 1010000. ) return SetUnitFlag(7);
|
||||
if (vmm >= 0.025 && vmm <= 0.026 ) return SetUnitFlag(8);
|
||||
if (vmm >= 0.0009 && vmm <= 0.0011 ) return SetUnitFlag(9);
|
||||
if (vmm >= 9. && vmm <= 11. ) return SetUnitFlag(10);
|
||||
if (vmm >= 0.000025 && vmm <= 0.000026) return SetUnitFlag(11);
|
||||
return Standard_False;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : SetUnitName
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
Standard_Boolean IGESData_BasicEditor::SetUnitName (const Standard_CString name)
|
||||
{
|
||||
if (themodel.IsNull()) return Standard_False;
|
||||
Standard_Integer flag = IGESData_BasicEditor::UnitNameFlag (name);
|
||||
IGESData_GlobalSection GS = themodel->GlobalSection();
|
||||
if (GS.UnitFlag() == 3) {
|
||||
char* nam = (char *)name;
|
||||
if (name[1] == 'H') nam = (char *)&name[2];
|
||||
GS.SetUnitName (new TCollection_HAsciiString(nam));
|
||||
themodel->SetGlobalSection (GS);
|
||||
return Standard_True;
|
||||
}
|
||||
if (flag > 0) return SetUnitFlag(flag);
|
||||
return (flag > 0);
|
||||
}
|
||||
|
||||
void IGESData_BasicEditor::ApplyUnit (const Standard_Boolean enforce)
|
||||
{
|
||||
if (themodel.IsNull()) return;
|
||||
if (!enforce && !theunit) return;
|
||||
IGESData_GlobalSection GS = themodel->GlobalSection();
|
||||
Standard_Real unit = GS.UnitValue();
|
||||
if (unit <= 0.) return;
|
||||
if (unit != 1.) {
|
||||
GS.SetMaxLineWeight (GS.MaxLineWeight () / unit);
|
||||
GS.SetResolution (GS.Resolution () / unit);
|
||||
GS.SetMaxCoord (GS.MaxCoord () / unit);
|
||||
themodel->SetGlobalSection (GS);
|
||||
}
|
||||
theunit = Standard_False;
|
||||
}
|
||||
|
||||
|
||||
// #### Travaux globaux sur les entites ####
|
||||
|
||||
void IGESData_BasicEditor::ComputeStatus ()
|
||||
{
|
||||
if (themodel.IsNull()) return;
|
||||
Standard_Integer nb = themodel->NbEntities();
|
||||
if (nb == 0) return;
|
||||
TColStd_Array1OfInteger subs (0,nb); subs.Init(0); // gere Subordinate Status
|
||||
Interface_Graph G (themodel); // gere & memorise UseFlag
|
||||
G.ResetStatus();
|
||||
|
||||
// 2 phases : d abord on fait un calcul d ensemble. Ensuite on applique
|
||||
// Tout le modele est traite, pas de jaloux
|
||||
|
||||
// Chaque entite va donner une contribution sur ses descendents propres :
|
||||
// pour Subordinate (1 ou 2 cumulables), pour UseFlag (1 a 6 exclusifs)
|
||||
// (6 depuis IGES-5.2)
|
||||
|
||||
// Pour Subordinate : Drawing et 402 (sauf p-e dimensioned geometry ?) donnent
|
||||
// Logical, le reste implique Physical (sur descendants directs propres)
|
||||
|
||||
// Pour UseFlag, un peu plus complique :
|
||||
// D une part, les UseFlag se propagent aux descendants directs ou non
|
||||
// D autre part les cas sont plus compliques (et pas aussi clairs)
|
||||
|
||||
// ATTENTION, on ne peut traiter que ce qui se deduit du graphe en s appuyant
|
||||
// sur les "IGES Type Number", on n a pas le droit ici d acceder a la
|
||||
// description specifique des differents types : traites par AutoCorrect.
|
||||
// Exemple : une courbe est 3D ou parametrique 2D(UV), non seulement selon son
|
||||
// ascendant, mais selon le role qu elle y joue (ex. pour CurveOnSurface :
|
||||
// CurveUV/Curve3D)
|
||||
// Traites actuellement (necessaires) :
|
||||
// 1(Annotation), aussi 4(pour maillage). 5(ParamUV) traite par AutoCorrect
|
||||
|
||||
Standard_Integer CN;
|
||||
Standard_Integer i; // svv Jan11 2000 : porting on DEC
|
||||
for (i = 1; i <= nb; i ++) {
|
||||
// Subordinate (sur directs en propre seulement)
|
||||
Handle(IGESData_IGESEntity) ent = themodel->Entity(i);
|
||||
Standard_Integer igt = ent->TypeNumber();
|
||||
Handle(Interface_GeneralModule) gmodule;
|
||||
if (theglib.Select (ent,gmodule,CN)) {
|
||||
Handle(IGESData_GeneralModule) gmod =
|
||||
Handle(IGESData_GeneralModule)::DownCast (gmodule);
|
||||
Interface_EntityIterator sh;
|
||||
gmod->OwnSharedCase (CN,ent,sh);
|
||||
for (sh.Start(); sh.More(); sh.Next()) {
|
||||
Standard_Integer nums = themodel->Number(sh.Value());
|
||||
if (igt == 402 || igt == 404) subs.SetValue (nums,subs.Value(nums) | 2);
|
||||
else subs.SetValue (nums,subs.Value(nums) | 1);
|
||||
//// cout<<"ComputeStatus : nums = "<<nums<<" ->"<<subs.Value(nums)<<endl;
|
||||
}
|
||||
}
|
||||
// UseFlag (a propager)
|
||||
if (igt / 100 == 2) {
|
||||
G.GetFromEntity(ent,Standard_True,1); // Annotation
|
||||
G.GetFromEntity(ent,Standard_False,ent->UseFlag());
|
||||
} else if (igt == 134 || igt == 116 || igt == 132) {
|
||||
Interface_EntityIterator sh = G.Sharings(ent); // Maillage ...
|
||||
if (sh.NbEntities() > 0) G.GetFromEntity(ent,Standard_True,4);
|
||||
// UV : voir AutoCorrect des classes concernees (Boundary et CurveOnSurface)
|
||||
/*
|
||||
} else if (ent->IsKind(STANDARD_TYPE(IGESGeom_CurveOnSurface))) {
|
||||
DeclareAndCast(IGESGeom_CurveOnSurface,cos,ent); // Curve UV
|
||||
G.GetFromEntity (cos->CurveUV(),Standard_True,5);
|
||||
} else if (ent->IsKind(STANDARD_TYPE(IGESGeom_Boundary))) {
|
||||
DeclareAndCast(IGESGeom_Boundary,bnd,ent); // Curve UV
|
||||
Standard_Integer nc = bnd->NbModelSpaceCurves();
|
||||
for (Standard_Integer ic = 1; ic <= nc; ic ++) {
|
||||
Standard_Integer nuv = bnd->NbParameterCurves(ic);
|
||||
for (Standard_Integer juv = 1; juv <= nuv; juv ++)
|
||||
G.GetFromEntity(bnd->ParameterCurve(ic,juv),Standard_True,5);
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
// A present, on va appliquer tout cela "de force"
|
||||
// Seule exception : des UseFlags non nuls deja en place sont laisses
|
||||
|
||||
for (i = 1; i <= nb; i ++) {
|
||||
Handle(IGESData_IGESEntity) ent = themodel->Entity(i);
|
||||
Standard_Integer bl = ent->BlankStatus();
|
||||
Standard_Integer uf = ent->UseFlag();
|
||||
if (uf == 0) uf = G.Status(i);
|
||||
Standard_Integer hy = ent->HierarchyStatus();
|
||||
//// cout<<" Ent.n0."<<i<<" Subord="<<subs.Value(i)<<" Use="<<uf<<endl;
|
||||
ent->InitStatus(bl,subs.Value(i),uf,hy);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Standard_Boolean IGESData_BasicEditor::AutoCorrect
|
||||
(const Handle(IGESData_IGESEntity)& ent)
|
||||
{
|
||||
if (themodel.IsNull()) return Standard_False;
|
||||
Handle(IGESData_IGESEntity) bof, subent;
|
||||
Handle(IGESData_LineFontEntity) linefont;
|
||||
Handle(IGESData_LevelListEntity) levelist;
|
||||
Handle(IGESData_ViewKindEntity) view;
|
||||
Handle(IGESData_TransfEntity) transf;
|
||||
Handle(IGESData_LabelDisplayEntity) labdisp;
|
||||
Handle(IGESData_ColorEntity) color;
|
||||
|
||||
Standard_Boolean done = Standard_False;
|
||||
if (ent.IsNull()) return done;
|
||||
// Corrections dans l entete (entites presentes)
|
||||
// On ne verifie pas les items "Shared", presents de toute facon
|
||||
// Entete : traite par DirChecker pour les cas standard
|
||||
/*
|
||||
linefont = ent->LineFont();
|
||||
if (!linefont.IsNull() && themodel->Number(linefont) == 0) {
|
||||
linefont.Nullify();
|
||||
ent->InitLineFont(linefont,0);
|
||||
done = Standard_True;
|
||||
}
|
||||
levelist = ent->LevelList();
|
||||
if (!levelist.IsNull() && themodel->Number(levelist) == 0) {
|
||||
levelist.Nullify();
|
||||
ent->InitLevel(levelist,0);
|
||||
done = Standard_True;
|
||||
}
|
||||
view = ent->View();
|
||||
if (!view.IsNull() && themodel->Number(view) == 0) {
|
||||
view.Nullify();
|
||||
ent->InitView(view);
|
||||
done = Standard_True;
|
||||
}
|
||||
transf = ent->Transf();
|
||||
if (!transf.IsNull() && themodel->Number(transf) == 0) {
|
||||
transf.Nullify();
|
||||
ent->InitTransf(transf);
|
||||
done = Standard_True;
|
||||
}
|
||||
labdisp = ent->LabelDisplay();
|
||||
if (!labdisp.IsNull() && themodel->Number(labdisp) == 0) {
|
||||
labdisp.Nullify();
|
||||
ent->InitMisc (ent->Structure(),labdisp,ent->LineWeightNumber());
|
||||
done = Standard_True;
|
||||
}
|
||||
color = ent->Color();
|
||||
if (!color.IsNull() && themodel->Number(color) == 0) {
|
||||
color.Nullify();
|
||||
ent->InitColor(color,0);
|
||||
done = Standard_True;
|
||||
}
|
||||
*/
|
||||
|
||||
// Corrections dans les Assocs (les Props restent attachees a l Entite)
|
||||
Interface_EntityIterator iter = ent->Associativities();
|
||||
for (iter.Start(); iter.More(); iter.Next()) {
|
||||
subent = GetCasted(IGESData_IGESEntity,iter.Value());
|
||||
if (!subent.IsNull() && themodel->Number(subent) == 0)
|
||||
{ subent->Dissociate(ent); done = Standard_True; }
|
||||
}
|
||||
|
||||
// Corrections specifiques
|
||||
Standard_Integer CN;
|
||||
Handle(Interface_GeneralModule) gmodule;
|
||||
if (theglib.Select (ent,gmodule,CN)) {
|
||||
Handle(IGESData_GeneralModule) gmod =
|
||||
Handle(IGESData_GeneralModule)::DownCast (gmodule);
|
||||
IGESData_DirChecker DC = gmod->DirChecker(CN,ent);
|
||||
done |= DC.Correct(ent);
|
||||
}
|
||||
|
||||
Handle(IGESData_SpecificModule) smod;
|
||||
if (theslib.Select (ent,smod,CN)) done |= smod->OwnCorrect (CN,ent);
|
||||
|
||||
return done;
|
||||
}
|
||||
|
||||
|
||||
Standard_Integer IGESData_BasicEditor::AutoCorrectModel ()
|
||||
{
|
||||
Standard_Integer res = 0;
|
||||
Standard_Integer nb = themodel->NbEntities();
|
||||
for (Standard_Integer i = 1; i <= nb; i ++) {
|
||||
if (AutoCorrect (themodel->Entity(i))) res ++;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//=======================================================================
|
||||
//function : UnitNameFlag
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
Standard_Integer IGESData_BasicEditor::UnitNameFlag (const Standard_CString name)
|
||||
{
|
||||
char* nam = (char *)&name[0];
|
||||
if (name[1] == 'H') {
|
||||
nam = (char *)&name[2];
|
||||
}
|
||||
if (!strcmp (nam,"INCH")) return 1;
|
||||
if (!strcmp (nam,"IN")) return 1;
|
||||
if (!strcmp (nam,"MM")) return 2;
|
||||
if (!strcmp (nam,"FT")) return 4;
|
||||
if (!strcmp (nam,"MI")) return 5;
|
||||
if (!strcmp (nam,"M")) return 6;
|
||||
if (!strcmp (nam,"KM")) return 7;
|
||||
if (!strcmp (nam,"MIL")) return 8;
|
||||
if (!strcmp (nam,"UM")) return 9;
|
||||
if (!strcmp (nam,"CM")) return 10;
|
||||
if (!strcmp (nam,"UIN")) return 11;
|
||||
return 0;
|
||||
}
|
||||
|
||||
Standard_Real IGESData_BasicEditor::UnitFlagValue (const Standard_Integer flag)
|
||||
{
|
||||
switch (flag) {
|
||||
case 1 : return 0.0254;
|
||||
case 2 : return 0.001;
|
||||
case 3 : return 1.;
|
||||
case 4 : return 0.3048;
|
||||
case 5 : return 1609.27;
|
||||
case 6 : return 1.;
|
||||
case 7 : return 1000.;
|
||||
case 8 : return 0.0000254;
|
||||
case 9 : return 0.000001;
|
||||
case 10 : return 0.01;
|
||||
case 11 : return 0.0000000254;
|
||||
default : break;
|
||||
}
|
||||
return 0.;
|
||||
}
|
||||
|
||||
Standard_CString IGESData_BasicEditor::UnitFlagName (const Standard_Integer flag)
|
||||
{
|
||||
Standard_CString name = "";
|
||||
switch (flag) {
|
||||
case 1 : name = "INCH"; break;
|
||||
case 2 : name = "MM"; break;
|
||||
case 4 : name = "FT"; break;
|
||||
case 5 : name = "MI"; break;
|
||||
case 6 : name = "M"; break;
|
||||
case 7 : name = "KM"; break;
|
||||
case 8 : name = "MIL"; break;
|
||||
case 9 : name = "UM"; break;
|
||||
case 10 : name = "CM"; break;
|
||||
case 11 : name = "UIN"; break;
|
||||
default : break;
|
||||
}
|
||||
return name;
|
||||
}
|
||||
|
||||
Standard_CString IGESData_BasicEditor::IGESVersionName (const Standard_Integer flag)
|
||||
{
|
||||
switch (flag) {
|
||||
case 1 : return "1.0";
|
||||
case 2 : return "ANSI Y14.26M-1981";
|
||||
case 3 : return "2.0";
|
||||
case 4 : return "3.0";
|
||||
case 5 : return "ANSI Y14.26M-1987";
|
||||
case 6 : return "4.0";
|
||||
case 7 : return "ANSI Y14.26M-1989";
|
||||
case 8 : return "5.0";
|
||||
case 9 : return "5.1";
|
||||
case 10: return "5.2";
|
||||
case 11: return "5.3";
|
||||
default : break;
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
Standard_Integer IGESData_BasicEditor::IGESVersionMax ()
|
||||
{ return 11; }
|
||||
|
||||
Standard_CString IGESData_BasicEditor::DraftingName (const Standard_Integer flag)
|
||||
{
|
||||
switch (flag) {
|
||||
case 0 : return "(None)";
|
||||
case 1 : return "ISO";
|
||||
case 2 : return "AFNOR";
|
||||
case 3 : return "ANSI";
|
||||
case 4 : return "BSI";
|
||||
case 5 : return "CSA";
|
||||
case 6 : return "DIN";
|
||||
case 7 : return "JIS";
|
||||
default : break;
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
Standard_Integer IGESData_BasicEditor::DraftingMax ()
|
||||
{ return 7; }
|
@@ -1,163 +0,0 @@
|
||||
// Created on: 1995-08-25
|
||||
// Created by: Christian CAILLET
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _IGESData_BasicEditor_HeaderFile
|
||||
#define _IGESData_BasicEditor_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Interface_GeneralLib.hxx>
|
||||
#include <IGESData_SpecificLib.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_CString.hxx>
|
||||
class IGESData_Protocol;
|
||||
class IGESData_IGESModel;
|
||||
class IGESData_IGESEntity;
|
||||
|
||||
|
||||
//! This class provides various functions of basic edition,
|
||||
//! such as :
|
||||
//! - setting header unit (WARNING : DOES NOT convert entities)
|
||||
//! - computation of the status (Subordinate, UseFlag) of entities
|
||||
//! of IGES Entities on a whole model
|
||||
//! - auto correction of IGES Entities, defined both by DirChecker
|
||||
//! and by specific service AutoCorrect
|
||||
//! (this auto correction performs non-ambigious, rather logic,
|
||||
//! editions)
|
||||
class IGESData_BasicEditor
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
//! Creates an empty Basic Editor which should be initialized via Init() method.
|
||||
Standard_EXPORT IGESData_BasicEditor();
|
||||
|
||||
//! Creates a Basic Editor, with a new IGESModel, ready to run
|
||||
Standard_EXPORT IGESData_BasicEditor(const Handle(IGESData_Protocol)& protocol);
|
||||
|
||||
//! Creates a Basic Editor for IGES Data, ready to run
|
||||
Standard_EXPORT IGESData_BasicEditor(const Handle(IGESData_IGESModel)& model, const Handle(IGESData_Protocol)& protocol);
|
||||
|
||||
//! Initialize a Basic Editor, with a new IGESModel, ready to run
|
||||
Standard_EXPORT void Init (const Handle(IGESData_Protocol)& protocol);
|
||||
|
||||
//! Initialize a Basic Editor for IGES Data, ready to run
|
||||
Standard_EXPORT void Init (const Handle(IGESData_IGESModel)& model, const Handle(IGESData_Protocol)& protocol);
|
||||
|
||||
//! Returns the designated model
|
||||
Standard_EXPORT Handle(IGESData_IGESModel) Model() const;
|
||||
|
||||
//! Sets a new unit from its flag (param 14 of Global Section)
|
||||
//! Returns True if done, False if <flag> is incorrect
|
||||
Standard_EXPORT Standard_Boolean SetUnitFlag (const Standard_Integer flag);
|
||||
|
||||
//! Sets a new unit from its value in meters (rounded to the
|
||||
//! closest one, max gap 1%)
|
||||
//! Returns True if done, False if <val> is too far from a
|
||||
//! suitable value
|
||||
Standard_EXPORT Standard_Boolean SetUnitValue (const Standard_Real val);
|
||||
|
||||
//! Sets a new unit from its name (param 15 of Global Section)
|
||||
//! Returns True if done, False if <name> is incorrect
|
||||
//! Remark : if <flag> has been set to 3 (user defined), <name>
|
||||
//! is then free
|
||||
Standard_EXPORT Standard_Boolean SetUnitName (const Standard_CString name);
|
||||
|
||||
//! Applies unit value to convert header data : Resolution,
|
||||
//! MaxCoord, MaxLineWeight
|
||||
//! Applies unit only once after SetUnit... has been called,
|
||||
//! if <enforce> is given as True.
|
||||
//! It can be called just before writing the model to a file,
|
||||
//! i.e. when definitive values are finally known
|
||||
Standard_EXPORT void ApplyUnit (const Standard_Boolean enforce = Standard_False);
|
||||
|
||||
//! Performs the re-computation of status on the whole model
|
||||
//! (Subordinate Status and Use Flag of each IGES Entity), which
|
||||
//! can have required values according the way they are referenced
|
||||
//! (see definitions of Logical use, Physical use, etc...)
|
||||
Standard_EXPORT void ComputeStatus();
|
||||
|
||||
//! Performs auto-correction on an IGESEntity
|
||||
//! Returns True if something has changed, False if nothing done.
|
||||
//!
|
||||
//! Works with the specific IGES Services : DirChecker which
|
||||
//! allows to correct data in "Directory Part" of Entities (such
|
||||
//! as required values for status, or references to be null), and
|
||||
//! the specific IGES service OwnCorrect, which is specialised for
|
||||
//! each type of entity.
|
||||
Standard_EXPORT Standard_Boolean AutoCorrect (const Handle(IGESData_IGESEntity)& ent);
|
||||
|
||||
//! Performs auto-correction on the whole Model
|
||||
//! Returns the count of modified entities
|
||||
Standard_EXPORT Standard_Integer AutoCorrectModel();
|
||||
|
||||
//! From the name of unit, computes flag number, 0 if incorrect
|
||||
//! (in this case, user defined entity remains possible)
|
||||
Standard_EXPORT static Standard_Integer UnitNameFlag (const Standard_CString name);
|
||||
|
||||
//! From the flag of unit, determines value in MM, 0 if incorrect
|
||||
Standard_EXPORT static Standard_Real UnitFlagValue (const Standard_Integer flag);
|
||||
|
||||
//! From the flag of unit, determines its name, "" if incorrect
|
||||
Standard_EXPORT static Standard_CString UnitFlagName (const Standard_Integer flag);
|
||||
|
||||
//! From the flag of IGES version, returns name, "" if incorrect
|
||||
Standard_EXPORT static Standard_CString IGESVersionName (const Standard_Integer flag);
|
||||
|
||||
//! Returns the maximum allowed value for IGESVersion Flag
|
||||
Standard_EXPORT static Standard_Integer IGESVersionMax();
|
||||
|
||||
//! From the flag of drafting standard, returns name, "" if incorrect
|
||||
Standard_EXPORT static Standard_CString DraftingName (const Standard_Integer flag);
|
||||
|
||||
//! Returns the maximum allowed value for Drafting Flag
|
||||
Standard_EXPORT static Standard_Integer DraftingMax();
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Standard_Boolean theunit;
|
||||
Handle(IGESData_Protocol) theproto;
|
||||
Handle(IGESData_IGESModel) themodel;
|
||||
Interface_GeneralLib theglib;
|
||||
IGESData_SpecificLib theslib;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _IGESData_BasicEditor_HeaderFile
|
@@ -21,8 +21,8 @@
|
||||
#include <Standard_Type.hxx>
|
||||
|
||||
#include <Standard_Transient.hxx>
|
||||
class Interface_Protocol;
|
||||
class IGESData_SpecificModule;
|
||||
class IGESData_Protocol;
|
||||
class IGESData_IGESEntity;
|
||||
class IGESData_SpecificLib;
|
||||
class IGESData_NodeOfSpecificLib;
|
||||
@@ -45,13 +45,13 @@ public:
|
||||
//! nothing if already in the list, THAT IS, Same Type (exact
|
||||
//! match) and Same State (that is, IsEqual is not required)
|
||||
//! Once added, stores its attached Protocol in correspondance
|
||||
Standard_EXPORT void Add (const Handle(IGESData_SpecificModule)& amodule, const Handle(IGESData_Protocol)& aprotocol);
|
||||
Standard_EXPORT void Add (const Handle(IGESData_SpecificModule)& amodule, const Handle(Interface_Protocol)& aprotocol);
|
||||
|
||||
//! Returns the Module stored in a given GlobalNode
|
||||
Standard_EXPORT const Handle(IGESData_SpecificModule)& Module() const;
|
||||
|
||||
//! Returns the attached Protocol stored in a given GlobalNode
|
||||
Standard_EXPORT const Handle(IGESData_Protocol)& Protocol() const;
|
||||
Standard_EXPORT const Handle(Interface_Protocol)& Protocol() const;
|
||||
|
||||
//! Returns the Next GlobalNode. If none is defined, returned
|
||||
//! value is a Null Handle
|
||||
@@ -71,7 +71,7 @@ private:
|
||||
|
||||
|
||||
Handle(IGESData_SpecificModule) themod;
|
||||
Handle(IGESData_Protocol) theprot;
|
||||
Handle(Interface_Protocol) theprot;
|
||||
Handle(IGESData_GlobalNodeOfSpecificLib) thenext;
|
||||
|
||||
|
||||
|
@@ -19,29 +19,16 @@
|
||||
#include <Standard_Type.hxx>
|
||||
|
||||
#include <IGESData_SpecificModule.hxx>
|
||||
#include <IGESData_Protocol.hxx>
|
||||
#include <IGESData_GlobalNodeOfSpecificLib.hxx>
|
||||
#include <IGESData_IGESEntity.hxx>
|
||||
#include <IGESData_SpecificLib.hxx>
|
||||
#include <IGESData_NodeOfSpecificLib.hxx>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#define TheObject Handle(IGESData_IGESEntity)
|
||||
#define TheObject_hxx <IGESData_IGESEntity.hxx>
|
||||
#define Handle_TheModule Handle(IGESData_SpecificModule)
|
||||
#define TheModule IGESData_SpecificModule
|
||||
#define TheModule_hxx <IGESData_SpecificModule.hxx>
|
||||
#define Handle_TheProtocol Handle(IGESData_Protocol)
|
||||
#define TheProtocol IGESData_Protocol
|
||||
#define TheProtocol_hxx <IGESData_Protocol.hxx>
|
||||
#define LibCtl_GlobalNode IGESData_GlobalNodeOfSpecificLib
|
||||
#define LibCtl_GlobalNode_hxx <IGESData_GlobalNodeOfSpecificLib.hxx>
|
||||
#define LibCtl_Node IGESData_NodeOfSpecificLib
|
||||
@@ -51,4 +38,3 @@
|
||||
#define LibCtl_Library IGESData_SpecificLib
|
||||
#define LibCtl_Library_hxx <IGESData_SpecificLib.hxx>
|
||||
#include <LibCtl_GlobalNode.gxx>
|
||||
|
||||
|
@@ -21,8 +21,8 @@
|
||||
#include <Standard_Type.hxx>
|
||||
|
||||
#include <Standard_Transient.hxx>
|
||||
class Interface_Protocol;
|
||||
class IGESData_ReadWriteModule;
|
||||
class IGESData_Protocol;
|
||||
class IGESData_IGESEntity;
|
||||
class IGESData_WriterLib;
|
||||
class IGESData_NodeOfWriterLib;
|
||||
@@ -45,13 +45,13 @@ public:
|
||||
//! nothing if already in the list, THAT IS, Same Type (exact
|
||||
//! match) and Same State (that is, IsEqual is not required)
|
||||
//! Once added, stores its attached Protocol in correspondance
|
||||
Standard_EXPORT void Add (const Handle(IGESData_ReadWriteModule)& amodule, const Handle(IGESData_Protocol)& aprotocol);
|
||||
Standard_EXPORT void Add (const Handle(IGESData_ReadWriteModule)& amodule, const Handle(Interface_Protocol)& aprotocol);
|
||||
|
||||
//! Returns the Module stored in a given GlobalNode
|
||||
Standard_EXPORT const Handle(IGESData_ReadWriteModule)& Module() const;
|
||||
|
||||
//! Returns the attached Protocol stored in a given GlobalNode
|
||||
Standard_EXPORT const Handle(IGESData_Protocol)& Protocol() const;
|
||||
Standard_EXPORT const Handle(Interface_Protocol)& Protocol() const;
|
||||
|
||||
//! Returns the Next GlobalNode. If none is defined, returned
|
||||
//! value is a Null Handle
|
||||
@@ -71,7 +71,7 @@ private:
|
||||
|
||||
|
||||
Handle(IGESData_ReadWriteModule) themod;
|
||||
Handle(IGESData_Protocol) theprot;
|
||||
Handle(Interface_Protocol) theprot;
|
||||
Handle(IGESData_GlobalNodeOfWriterLib) thenext;
|
||||
|
||||
|
||||
|
@@ -19,29 +19,16 @@
|
||||
#include <Standard_Type.hxx>
|
||||
|
||||
#include <IGESData_ReadWriteModule.hxx>
|
||||
#include <IGESData_Protocol.hxx>
|
||||
#include <IGESData_GlobalNodeOfWriterLib.hxx>
|
||||
#include <IGESData_IGESEntity.hxx>
|
||||
#include <IGESData_WriterLib.hxx>
|
||||
#include <IGESData_NodeOfWriterLib.hxx>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#define TheObject Handle(IGESData_IGESEntity)
|
||||
#define TheObject_hxx <IGESData_IGESEntity.hxx>
|
||||
#define Handle_TheModule Handle(IGESData_ReadWriteModule)
|
||||
#define TheModule IGESData_ReadWriteModule
|
||||
#define TheModule_hxx <IGESData_ReadWriteModule.hxx>
|
||||
#define Handle_TheProtocol Handle(IGESData_Protocol)
|
||||
#define TheProtocol IGESData_Protocol
|
||||
#define TheProtocol_hxx <IGESData_Protocol.hxx>
|
||||
#define LibCtl_GlobalNode IGESData_GlobalNodeOfWriterLib
|
||||
#define LibCtl_GlobalNode_hxx <IGESData_GlobalNodeOfWriterLib.hxx>
|
||||
#define LibCtl_Node IGESData_NodeOfWriterLib
|
||||
@@ -51,4 +38,3 @@
|
||||
#define LibCtl_Library IGESData_WriterLib
|
||||
#define LibCtl_Library_hxx <IGESData_WriterLib.hxx>
|
||||
#include <LibCtl_GlobalNode.gxx>
|
||||
|
||||
|
@@ -18,7 +18,7 @@
|
||||
//#73 rln 10.03.99 S4135: "read.scale.unit" is applied after translation
|
||||
|
||||
#include <gp_XYZ.hxx>
|
||||
#include <IGESData_BasicEditor.hxx>
|
||||
#include <IGESData.hxx>
|
||||
#include <IGESData_GlobalSection.hxx>
|
||||
#include <Interface_Check.hxx>
|
||||
#include <Interface_FileParameter.hxx>
|
||||
@@ -249,7 +249,7 @@ void IGESData_GlobalSection::Init(const Handle(Interface_ParamSet)& params,
|
||||
//default (inches) value taken
|
||||
corrected = 1;
|
||||
else
|
||||
corrected = IGESData_BasicEditor::UnitNameFlag (theUnitName->ToCString());
|
||||
corrected = IGESData::UnitNameFlag (theUnitName->ToCString());
|
||||
if (corrected > 0) theUnitFlag = corrected;
|
||||
else if (theUnitFlag == 3) {
|
||||
Message_Msg Msg49 ("XSTEP_49");
|
||||
|
@@ -15,7 +15,7 @@
|
||||
//#73 rln 10.03.99 S4135: "read.scale.unit" does not affect GlobalSection
|
||||
//#13 smh 13.01.2000 : Parsing long year date
|
||||
|
||||
#include <IGESData_BasicEditor.hxx>
|
||||
#include <IGESData.hxx>
|
||||
#include <IGESData_GlobalSection.hxx>
|
||||
#include <IGESData_IGESEntity.hxx>
|
||||
#include <IGESData_IGESModel.hxx>
|
||||
@@ -138,11 +138,11 @@ void IGESData_IGESModel::DumpHeader
|
||||
if (!str.IsNull()) S<<"[22] Company : "<<str->ToCString()<<"\n";
|
||||
Standard_Integer num = theheader.IGESVersion();
|
||||
S << "[23] IGES Version Number : " << num << " -> Name : "
|
||||
<< IGESData_BasicEditor::IGESVersionName(num);
|
||||
<< IGESData::IGESVersionName(num);
|
||||
|
||||
num = theheader.DraftingStandard();
|
||||
S << "\n[24] Drafting Standard : " << num;
|
||||
if (num > 0) S<< " -> Name : " << IGESData_BasicEditor::DraftingName(num);
|
||||
if (num > 0) S<< " -> Name : " << IGESData::DraftingName(num);
|
||||
S<<endl;
|
||||
|
||||
if (theheader.HasLastChangeDate()) {
|
||||
@@ -232,26 +232,6 @@ void IGESData_IGESModel::AddStartLine
|
||||
}
|
||||
|
||||
|
||||
|
||||
//=======================================================================
|
||||
//function : GlobalSection
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
const IGESData_GlobalSection& IGESData_IGESModel::GlobalSection () const
|
||||
{ return theheader; }
|
||||
|
||||
|
||||
//=======================================================================
|
||||
//function : SetGlobalSection
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
void IGESData_IGESModel::SetGlobalSection
|
||||
(const IGESData_GlobalSection& header)
|
||||
{ theheader = header; }
|
||||
|
||||
|
||||
//=======================================================================
|
||||
//function : ApplyStatic
|
||||
//purpose :
|
||||
@@ -317,25 +297,14 @@ Standard_Integer IGESData_IGESModel::DNum
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
void IGESData_IGESModel::GetFromAnother
|
||||
(const Handle(Interface_InterfaceModel)& other)
|
||||
void IGESData_IGESModel::GetFromAnother (const Handle(IGESData_IGESModel)& other)
|
||||
{
|
||||
DeclareAndCast(IGESData_IGESModel,another,other);
|
||||
theheader = another->GlobalSection();
|
||||
theheader = other->GlobalSection();
|
||||
theheader.CopyRefs();
|
||||
SetStartSection (another->StartSection(),Standard_True);
|
||||
SetStartSection (other->StartSection(),Standard_True);
|
||||
}
|
||||
|
||||
|
||||
//=======================================================================
|
||||
//function : NewEmptyModel
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
Handle(Interface_InterfaceModel) IGESData_IGESModel::NewEmptyModel () const
|
||||
{ return new IGESData_IGESModel; }
|
||||
|
||||
|
||||
//=======================================================================
|
||||
//function : VerifyCheck
|
||||
//purpose :
|
||||
@@ -467,14 +436,14 @@ void IGESData_IGESModel::VerifyCheck (Handle(Interface_Check)& ach) const
|
||||
|
||||
// Sending of message : Version Flag parameter is incorrect.
|
||||
if (theheader.IGESVersion() < 1 ||
|
||||
theheader.IGESVersion() > IGESData_BasicEditor::IGESVersionMax()) {
|
||||
theheader.IGESVersion() > IGESData::IGESVersionMax()) {
|
||||
Message_Msg Msg53 ("XSTEP_53");
|
||||
ach->SendWarning(Msg53);
|
||||
}
|
||||
|
||||
// Sending of message : Drafting Standard Flag parameter is incorrect.
|
||||
if (theheader.DraftingStandard() < 0 ||
|
||||
theheader.DraftingStandard() > IGESData_BasicEditor::DraftingMax()) {
|
||||
theheader.DraftingStandard() > IGESData::DraftingMax()) {
|
||||
Message_Msg Msg54 ("XSTEP_54");
|
||||
ach->SendWarning(Msg54);
|
||||
}
|
||||
|
@@ -99,10 +99,10 @@ public:
|
||||
Standard_EXPORT void AddStartLine (const Standard_CString line, const Standard_Integer atnum = 0);
|
||||
|
||||
//! Returns the Global section of the IGES file.
|
||||
Standard_EXPORT const IGESData_GlobalSection& GlobalSection() const;
|
||||
const IGESData_GlobalSection& GlobalSection() const { return theheader; }
|
||||
|
||||
//! Sets the Global section of the IGES file.
|
||||
Standard_EXPORT void SetGlobalSection (const IGESData_GlobalSection& header);
|
||||
void SetGlobalSection (const IGESData_GlobalSection& header) { theheader = header; }
|
||||
|
||||
//! Sets some of the Global section
|
||||
//! parameters with the values defined by the translation
|
||||
@@ -113,7 +113,7 @@ public:
|
||||
//! The default value for param is an empty string.
|
||||
//! Returns True when done and if param is given, False if param is
|
||||
//! unknown or empty. Note: Set the unit in the IGES
|
||||
//! file Global section via IGESData_BasicEditor class.
|
||||
//! file Global section via IGESData class.
|
||||
Standard_EXPORT Standard_Boolean ApplyStatic (const Standard_CString param = "");
|
||||
|
||||
//! Returns an IGES entity given by its rank number.
|
||||
@@ -125,10 +125,7 @@ public:
|
||||
Standard_EXPORT Standard_Integer DNum (const Handle(IGESData_IGESEntity)& ent) const;
|
||||
|
||||
//! gets Header (GlobalSection) from another Model
|
||||
Standard_EXPORT void GetFromAnother (const Handle(Interface_InterfaceModel)& other) Standard_OVERRIDE;
|
||||
|
||||
//! Returns a New Empty Model, same type as <me> i.e. IGESModel
|
||||
Standard_EXPORT Handle(Interface_InterfaceModel) NewEmptyModel() const Standard_OVERRIDE;
|
||||
Standard_EXPORT void GetFromAnother (const Handle(IGESData_IGESModel)& other);
|
||||
|
||||
//! Checks that the IGES file Global
|
||||
//! section contains valid data that conforms to the IGES specifications.
|
||||
|
@@ -169,7 +169,6 @@ IGESData_IGESReaderTool::IGESData_IGESReaderTool
|
||||
return (!ach->HasFailed());
|
||||
}
|
||||
ReadProps (ent,igesdat,PR);
|
||||
// thestep = IGESData_ReadEnd;
|
||||
if (!PR.IsCheckEmpty()) ach = PR.Check();
|
||||
return (!ach->HasFailed());
|
||||
}
|
||||
@@ -177,11 +176,6 @@ IGESData_IGESReaderTool::IGESData_IGESReaderTool
|
||||
void IGESData_IGESReaderTool::EndRead
|
||||
(const Handle(Interface_InterfaceModel)& /* amodel */)
|
||||
{
|
||||
/*
|
||||
DeclareAndCast(IGESData_IGESModel,amod,amodel);
|
||||
DeclareAndCast(IGESData_IGESReaderData,igesdat,Data());
|
||||
amod->SetLineWeights(igesdat->DefaultLineWeight());
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
@@ -356,7 +350,6 @@ IGESData_IGESReaderTool::IGESData_IGESReaderTool
|
||||
undent->ReadOwnParams(IR,PR);
|
||||
// IGESEntity creee puis non reconnue ... (bizarre, non ?)
|
||||
} else {
|
||||
// IGESData_IGESType DT = ent->IGESType();
|
||||
// Sending of message : Unknown Entity
|
||||
Message_Msg Msg36 ("XSTEP_36");
|
||||
Msg36.Arg(thecnum);
|
||||
|
@@ -49,7 +49,6 @@ public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
//! creates IGESReaderTool to work with an IGESReaderData and an
|
||||
//! IGES Protocol.
|
||||
//! Actually, no Lib is used
|
||||
@@ -61,17 +60,19 @@ public:
|
||||
//! Also loads the list of parameters for ParamReader
|
||||
Standard_EXPORT void Prepare (const Handle(IGESData_FileRecognizer)& reco);
|
||||
|
||||
private:
|
||||
|
||||
//! recognizes records by asking Protocol (on data of DirType)
|
||||
Standard_EXPORT Standard_Boolean Recognize (const Standard_Integer num, Handle(Interface_Check)& ach, Handle(Standard_Transient)& ent) Standard_OVERRIDE;
|
||||
Standard_EXPORT virtual Standard_Boolean Recognize (const Standard_Integer num, Handle(Interface_Check)& ach, Handle(Standard_Transient)& ent) Standard_OVERRIDE;
|
||||
|
||||
//! fills model's header, that is, its GlobalSection
|
||||
Standard_EXPORT void BeginRead (const Handle(Interface_InterfaceModel)& amodel) Standard_OVERRIDE;
|
||||
Standard_EXPORT virtual void BeginRead (const Handle(Interface_InterfaceModel)& amodel) Standard_OVERRIDE;
|
||||
|
||||
//! fills an entity, given record no; works by calling ReadDirPart
|
||||
//! then ReadParams (with help of a ParamReader), then if required
|
||||
//! ReadProps and ReadAssocs, from IGESEntity
|
||||
//! Returns True if no fail has been recorded
|
||||
Standard_EXPORT Standard_Boolean AnalyseRecord (const Standard_Integer num, const Handle(Standard_Transient)& anent, Handle(Interface_Check)& acheck) Standard_OVERRIDE;
|
||||
Standard_EXPORT virtual Standard_Boolean AnalyseRecord (const Standard_Integer num, const Handle(Standard_Transient)& anent, Handle(Interface_Check)& acheck) Standard_OVERRIDE;
|
||||
|
||||
//! after reading entities, true line weights can be computed
|
||||
Standard_EXPORT virtual void EndRead (const Handle(Interface_InterfaceModel)& amodel) Standard_OVERRIDE;
|
||||
@@ -101,19 +102,6 @@ public:
|
||||
//! Note that "Associated" entities are not declared "Shared"
|
||||
Standard_EXPORT void ReadAssocs (const Handle(IGESData_IGESEntity)& ent, const Handle(IGESData_IGESReaderData)& IR, IGESData_ParamReader& PR) const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Handle(Interface_ParamList) thelist;
|
||||
Handle(IGESData_FileRecognizer) thereco;
|
||||
Interface_GeneralLib theglib;
|
||||
@@ -125,14 +113,6 @@ private:
|
||||
Standard_Integer thegradweight;
|
||||
Standard_Real themaxweight;
|
||||
Standard_Real thedefweight;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _IGESData_IGESReaderTool_HeaderFile
|
||||
|
@@ -21,10 +21,10 @@
|
||||
#include <Standard_Type.hxx>
|
||||
|
||||
#include <MMgt_TShared.hxx>
|
||||
class Interface_Protocol;
|
||||
class IGESData_GlobalNodeOfSpecificLib;
|
||||
class IGESData_IGESEntity;
|
||||
class IGESData_SpecificModule;
|
||||
class IGESData_Protocol;
|
||||
class IGESData_SpecificLib;
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ public:
|
||||
Standard_EXPORT const Handle(IGESData_SpecificModule)& Module() const;
|
||||
|
||||
//! Returns the Protocol designated by a precise Node
|
||||
Standard_EXPORT const Handle(IGESData_Protocol)& Protocol() const;
|
||||
Standard_EXPORT const Handle(Interface_Protocol)& Protocol() const;
|
||||
|
||||
//! Returns the Next Node. If none was defined, returned value
|
||||
//! is a Null Handle
|
||||
|
@@ -22,26 +22,13 @@
|
||||
#include <IGESData_NodeOfSpecificLib.hxx>
|
||||
#include <IGESData_IGESEntity.hxx>
|
||||
#include <IGESData_SpecificModule.hxx>
|
||||
#include <IGESData_Protocol.hxx>
|
||||
#include <IGESData_SpecificLib.hxx>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#define TheObject Handle(IGESData_IGESEntity)
|
||||
#define TheObject_hxx <IGESData_IGESEntity.hxx>
|
||||
#define Handle_TheModule Handle(IGESData_SpecificModule)
|
||||
#define TheModule IGESData_SpecificModule
|
||||
#define TheModule_hxx <IGESData_SpecificModule.hxx>
|
||||
#define Handle_TheProtocol Handle(IGESData_Protocol)
|
||||
#define TheProtocol IGESData_Protocol
|
||||
#define TheProtocol_hxx <IGESData_Protocol.hxx>
|
||||
#define LibCtl_GlobalNode IGESData_GlobalNodeOfSpecificLib
|
||||
#define LibCtl_GlobalNode_hxx <IGESData_GlobalNodeOfSpecificLib.hxx>
|
||||
#define LibCtl_Node IGESData_NodeOfSpecificLib
|
||||
@@ -51,4 +38,3 @@
|
||||
#define LibCtl_Library IGESData_SpecificLib
|
||||
#define LibCtl_Library_hxx <IGESData_SpecificLib.hxx>
|
||||
#include <LibCtl_Node.gxx>
|
||||
|
||||
|
@@ -21,10 +21,10 @@
|
||||
#include <Standard_Type.hxx>
|
||||
|
||||
#include <MMgt_TShared.hxx>
|
||||
class Interface_Protocol;
|
||||
class IGESData_GlobalNodeOfWriterLib;
|
||||
class IGESData_IGESEntity;
|
||||
class IGESData_ReadWriteModule;
|
||||
class IGESData_Protocol;
|
||||
class IGESData_WriterLib;
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ public:
|
||||
Standard_EXPORT const Handle(IGESData_ReadWriteModule)& Module() const;
|
||||
|
||||
//! Returns the Protocol designated by a precise Node
|
||||
Standard_EXPORT const Handle(IGESData_Protocol)& Protocol() const;
|
||||
Standard_EXPORT const Handle(Interface_Protocol)& Protocol() const;
|
||||
|
||||
//! Returns the Next Node. If none was defined, returned value
|
||||
//! is a Null Handle
|
||||
|
@@ -22,26 +22,13 @@
|
||||
#include <IGESData_NodeOfWriterLib.hxx>
|
||||
#include <IGESData_IGESEntity.hxx>
|
||||
#include <IGESData_ReadWriteModule.hxx>
|
||||
#include <IGESData_Protocol.hxx>
|
||||
#include <IGESData_WriterLib.hxx>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#define TheObject Handle(IGESData_IGESEntity)
|
||||
#define TheObject_hxx <IGESData_IGESEntity.hxx>
|
||||
#define Handle_TheModule Handle(IGESData_ReadWriteModule)
|
||||
#define TheModule IGESData_ReadWriteModule
|
||||
#define TheModule_hxx <IGESData_ReadWriteModule.hxx>
|
||||
#define Handle_TheProtocol Handle(IGESData_Protocol)
|
||||
#define TheProtocol IGESData_Protocol
|
||||
#define TheProtocol_hxx <IGESData_Protocol.hxx>
|
||||
#define LibCtl_GlobalNode IGESData_GlobalNodeOfWriterLib
|
||||
#define LibCtl_GlobalNode_hxx <IGESData_GlobalNodeOfWriterLib.hxx>
|
||||
#define LibCtl_Node IGESData_NodeOfWriterLib
|
||||
@@ -51,4 +38,3 @@
|
||||
#define LibCtl_Library IGESData_WriterLib
|
||||
#define LibCtl_Library_hxx <IGESData_WriterLib.hxx>
|
||||
#include <LibCtl_Node.gxx>
|
||||
|
||||
|
@@ -24,16 +24,6 @@
|
||||
|
||||
IMPLEMENT_STANDARD_RTTIEXT(IGESData_Protocol,Interface_Protocol)
|
||||
|
||||
IGESData_Protocol::IGESData_Protocol () { }
|
||||
|
||||
|
||||
Standard_Integer IGESData_Protocol::NbResources () const { return 0; }
|
||||
|
||||
Handle(Interface_Protocol) IGESData_Protocol::Resource
|
||||
(const Standard_Integer /*num*/) const
|
||||
{ Handle(Interface_Protocol) nulpro; return nulpro; }
|
||||
|
||||
|
||||
// TypeNumber : Ici, on reconnait UndefinedEntity (faut bien quelqu un)
|
||||
|
||||
Standard_Integer IGESData_Protocol::TypeNumber
|
||||
|
@@ -37,17 +37,9 @@ DEFINE_STANDARD_HANDLE(IGESData_Protocol, Interface_Protocol)
|
||||
//! Undefined-FreeFormat-Entity
|
||||
class IGESData_Protocol : public Interface_Protocol
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
|
||||
Standard_EXPORT IGESData_Protocol();
|
||||
|
||||
//! Gives the count of Resource Protocol. Here, none
|
||||
Standard_EXPORT Standard_Integer NbResources() const Standard_OVERRIDE;
|
||||
|
||||
//! Returns a Resource, given a rank. Here, none
|
||||
Standard_EXPORT Handle(Interface_Protocol) Resource (const Standard_Integer num) const Standard_OVERRIDE;
|
||||
IGESData_Protocol() {}
|
||||
|
||||
//! Returns a Case Number, specific of each recognized Type
|
||||
//! Here, Undefined and Free Format Entities have the Number 1.
|
||||
|
@@ -27,9 +27,8 @@ class IGESData_NodeOfSpecificLib;
|
||||
class Standard_NoSuchObject;
|
||||
class IGESData_IGESEntity;
|
||||
class IGESData_SpecificModule;
|
||||
class IGESData_Protocol;
|
||||
class IGESData_GlobalNodeOfSpecificLib;
|
||||
class Standard_Transient;
|
||||
class Interface_Protocol;
|
||||
|
||||
|
||||
|
||||
@@ -42,13 +41,13 @@ public:
|
||||
|
||||
//! Adds a couple (Module-Protocol) into the global definition set
|
||||
//! for this class of Library.
|
||||
Standard_EXPORT static void SetGlobal (const Handle(IGESData_SpecificModule)& amodule, const Handle(IGESData_Protocol)& aprotocol);
|
||||
Standard_EXPORT static void SetGlobal (const Handle(IGESData_SpecificModule)& amodule, const Handle(Interface_Protocol)& aprotocol);
|
||||
|
||||
//! Creates a Library which complies with a Protocol, that is :
|
||||
//! Same class (criterium IsInstance)
|
||||
//! This creation gets the Modules from the global set, those
|
||||
//! which are bound to the given Protocol and its Resources
|
||||
Standard_EXPORT IGESData_SpecificLib(const Handle(IGESData_Protocol)& aprotocol);
|
||||
Standard_EXPORT IGESData_SpecificLib(const Handle(Interface_Protocol)& aprotocol);
|
||||
|
||||
//! Creates an empty Library : it will later by filled by method
|
||||
//! AddProtocol
|
||||
@@ -57,17 +56,13 @@ public:
|
||||
//! Adds a couple (Module-Protocol) to the Library, given the
|
||||
//! class of a Protocol. Takes Resources into account.
|
||||
//! (if <aprotocol> is not of type TheProtocol, it is not added)
|
||||
Standard_EXPORT void AddProtocol (const Handle(Standard_Transient)& aprotocol);
|
||||
Standard_EXPORT void AddProtocol (const Handle(Interface_Protocol)& aprotocol);
|
||||
|
||||
//! Clears the list of Modules of a library (can be used to
|
||||
//! redefine the order of Modules before action : Clear then
|
||||
//! refill the Library by calls to AddProtocol)
|
||||
Standard_EXPORT void Clear();
|
||||
|
||||
//! Sets a library to be defined with the complete Global list
|
||||
//! (all the couples Protocol/Modules recorded in it)
|
||||
Standard_EXPORT void SetComplete();
|
||||
|
||||
//! Selects a Module from the Library, given an Object.
|
||||
//! Returns True if Select has succeeded, False else.
|
||||
//! Also Returns (as arguments) the selected Module and the Case
|
||||
@@ -90,7 +85,7 @@ public:
|
||||
Standard_EXPORT const Handle(IGESData_SpecificModule)& Module() const;
|
||||
|
||||
//! Returns the current Protocol in the Iteration
|
||||
Standard_EXPORT const Handle(IGESData_Protocol)& Protocol() const;
|
||||
Standard_EXPORT const Handle(Interface_Protocol)& Protocol() const;
|
||||
|
||||
|
||||
|
||||
|
@@ -20,9 +20,7 @@
|
||||
#include <Standard_NoSuchObject.hxx>
|
||||
#include <IGESData_IGESEntity.hxx>
|
||||
#include <IGESData_SpecificModule.hxx>
|
||||
#include <IGESData_Protocol.hxx>
|
||||
#include <IGESData_GlobalNodeOfSpecificLib.hxx>
|
||||
#include <Standard_Transient.hxx>
|
||||
|
||||
|
||||
#define TheObject Handle(IGESData_IGESEntity)
|
||||
@@ -30,9 +28,6 @@
|
||||
#define Handle_TheModule Handle(IGESData_SpecificModule)
|
||||
#define TheModule IGESData_SpecificModule
|
||||
#define TheModule_hxx <IGESData_SpecificModule.hxx>
|
||||
#define Handle_TheProtocol Handle(IGESData_Protocol)
|
||||
#define TheProtocol IGESData_Protocol
|
||||
#define TheProtocol_hxx <IGESData_Protocol.hxx>
|
||||
#define LibCtl_GlobalNode IGESData_GlobalNodeOfSpecificLib
|
||||
#define LibCtl_GlobalNode_hxx <IGESData_GlobalNodeOfSpecificLib.hxx>
|
||||
#define LibCtl_Node IGESData_NodeOfSpecificLib
|
||||
@@ -42,4 +37,3 @@
|
||||
#define LibCtl_Library IGESData_SpecificLib
|
||||
#define LibCtl_Library_hxx <IGESData_SpecificLib.hxx>
|
||||
#include <LibCtl_Library.gxx>
|
||||
|
||||
|
@@ -27,9 +27,8 @@ class IGESData_NodeOfWriterLib;
|
||||
class Standard_NoSuchObject;
|
||||
class IGESData_IGESEntity;
|
||||
class IGESData_ReadWriteModule;
|
||||
class IGESData_Protocol;
|
||||
class IGESData_GlobalNodeOfWriterLib;
|
||||
class Standard_Transient;
|
||||
class Interface_Protocol;
|
||||
|
||||
|
||||
|
||||
@@ -42,13 +41,13 @@ public:
|
||||
|
||||
//! Adds a couple (Module-Protocol) into the global definition set
|
||||
//! for this class of Library.
|
||||
Standard_EXPORT static void SetGlobal (const Handle(IGESData_ReadWriteModule)& amodule, const Handle(IGESData_Protocol)& aprotocol);
|
||||
Standard_EXPORT static void SetGlobal (const Handle(IGESData_ReadWriteModule)& amodule, const Handle(Interface_Protocol)& aprotocol);
|
||||
|
||||
//! Creates a Library which complies with a Protocol, that is :
|
||||
//! Same class (criterium IsInstance)
|
||||
//! This creation gets the Modules from the global set, those
|
||||
//! which are bound to the given Protocol and its Resources
|
||||
Standard_EXPORT IGESData_WriterLib(const Handle(IGESData_Protocol)& aprotocol);
|
||||
Standard_EXPORT IGESData_WriterLib(const Handle(Interface_Protocol)& aprotocol);
|
||||
|
||||
//! Creates an empty Library : it will later by filled by method
|
||||
//! AddProtocol
|
||||
@@ -57,17 +56,13 @@ public:
|
||||
//! Adds a couple (Module-Protocol) to the Library, given the
|
||||
//! class of a Protocol. Takes Resources into account.
|
||||
//! (if <aprotocol> is not of type TheProtocol, it is not added)
|
||||
Standard_EXPORT void AddProtocol (const Handle(Standard_Transient)& aprotocol);
|
||||
Standard_EXPORT void AddProtocol (const Handle(Interface_Protocol)& aprotocol);
|
||||
|
||||
//! Clears the list of Modules of a library (can be used to
|
||||
//! redefine the order of Modules before action : Clear then
|
||||
//! refill the Library by calls to AddProtocol)
|
||||
Standard_EXPORT void Clear();
|
||||
|
||||
//! Sets a library to be defined with the complete Global list
|
||||
//! (all the couples Protocol/Modules recorded in it)
|
||||
Standard_EXPORT void SetComplete();
|
||||
|
||||
//! Selects a Module from the Library, given an Object.
|
||||
//! Returns True if Select has succeeded, False else.
|
||||
//! Also Returns (as arguments) the selected Module and the Case
|
||||
@@ -90,7 +85,7 @@ public:
|
||||
Standard_EXPORT const Handle(IGESData_ReadWriteModule)& Module() const;
|
||||
|
||||
//! Returns the current Protocol in the Iteration
|
||||
Standard_EXPORT const Handle(IGESData_Protocol)& Protocol() const;
|
||||
Standard_EXPORT const Handle(Interface_Protocol)& Protocol() const;
|
||||
|
||||
|
||||
|
||||
|
@@ -20,9 +20,7 @@
|
||||
#include <Standard_NoSuchObject.hxx>
|
||||
#include <IGESData_IGESEntity.hxx>
|
||||
#include <IGESData_ReadWriteModule.hxx>
|
||||
#include <IGESData_Protocol.hxx>
|
||||
#include <IGESData_GlobalNodeOfWriterLib.hxx>
|
||||
#include <Standard_Transient.hxx>
|
||||
|
||||
|
||||
#define TheObject Handle(IGESData_IGESEntity)
|
||||
@@ -30,9 +28,6 @@
|
||||
#define Handle_TheModule Handle(IGESData_ReadWriteModule)
|
||||
#define TheModule IGESData_ReadWriteModule
|
||||
#define TheModule_hxx <IGESData_ReadWriteModule.hxx>
|
||||
#define Handle_TheProtocol Handle(IGESData_Protocol)
|
||||
#define TheProtocol IGESData_Protocol
|
||||
#define TheProtocol_hxx <IGESData_Protocol.hxx>
|
||||
#define LibCtl_GlobalNode IGESData_GlobalNodeOfWriterLib
|
||||
#define LibCtl_GlobalNode_hxx <IGESData_GlobalNodeOfWriterLib.hxx>
|
||||
#define LibCtl_Node IGESData_NodeOfWriterLib
|
||||
@@ -42,4 +37,3 @@
|
||||
#define LibCtl_Library IGESData_WriterLib
|
||||
#define LibCtl_Library_hxx <IGESData_WriterLib.hxx>
|
||||
#include <LibCtl_Library.gxx>
|
||||
|
||||
|
@@ -48,8 +48,7 @@ static Handle(Standard_Type) atype1,atype2,atype3,atype4,atype5,atype6,atype7;
|
||||
Handle(Interface_Protocol) IGESDefs_Protocol::Resource
|
||||
(const Standard_Integer /*num*/) const
|
||||
{
|
||||
Handle(Interface_Protocol) res = IGESGraph::Protocol();
|
||||
return res;
|
||||
return IGESGraph::Protocol();
|
||||
}
|
||||
|
||||
Standard_Integer IGESDefs_Protocol::TypeNumber
|
||||
|
@@ -84,10 +84,9 @@ static Handle(Standard_Type) atype01,atype02,atype03,atype04,atype05,atype06,
|
||||
Handle(Interface_Protocol) IGESDimen_Protocol::Resource
|
||||
(const Standard_Integer num) const
|
||||
{
|
||||
Handle(Interface_Protocol) res;
|
||||
if (num == 1) res = IGESGraph::Protocol();
|
||||
if (num == 2) res = IGESGeom::Protocol();
|
||||
return res;
|
||||
if (num == 1) return IGESGraph::Protocol();
|
||||
if (num == 2) return IGESGeom::Protocol();
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Standard_Integer IGESDimen_Protocol::TypeNumber
|
||||
|
@@ -63,8 +63,7 @@ static Handle(Standard_Type) atype01,atype02,atype03,atype04,atype05,atype06,
|
||||
Handle(Interface_Protocol) IGESDraw_Protocol::Resource
|
||||
(const Standard_Integer /*num*/) const
|
||||
{
|
||||
Handle(Interface_Protocol) res = IGESDimen::Protocol();;
|
||||
return res;
|
||||
return IGESDimen::Protocol();
|
||||
}
|
||||
|
||||
Standard_Integer IGESDraw_Protocol::TypeNumber
|
||||
|
@@ -164,7 +164,6 @@ Standard_Integer IGESFile_Read
|
||||
iges_finfile(1);
|
||||
IGESData_IGESReaderTool IT (IR,protocol);
|
||||
IT.Prepare(reco);
|
||||
IT.SetErrorHandle(Standard_True);
|
||||
|
||||
// Sending of message : Loading of Model : Beginning
|
||||
IT.LoadModel(amodel);
|
||||
|
@@ -82,8 +82,7 @@ static Handle(Standard_Type) atype01,atype02,atype03,atype04,atype05,atype06,
|
||||
Handle(Interface_Protocol) IGESGeom_Protocol::Resource
|
||||
(const Standard_Integer /*num*/) const
|
||||
{
|
||||
Handle(Interface_Protocol) res = IGESBasic::Protocol();;
|
||||
return res;
|
||||
return IGESBasic::Protocol();
|
||||
}
|
||||
|
||||
Standard_Integer IGESGeom_Protocol::TypeNumber
|
||||
|
@@ -63,8 +63,7 @@ static Handle(Standard_Type) atype01,atype02,atype03,atype04,atype05,atype06,
|
||||
Handle(Interface_Protocol) IGESGraph_Protocol::Resource
|
||||
(const Standard_Integer /*num*/) const
|
||||
{
|
||||
Handle(Interface_Protocol) res = IGESBasic::Protocol();;
|
||||
return res;
|
||||
return IGESBasic::Protocol();
|
||||
}
|
||||
|
||||
Standard_Integer IGESGraph_Protocol::TypeNumber
|
||||
|
@@ -84,8 +84,7 @@ static Handle(Standard_Type) atype01,atype02,atype03,atype04,atype05,atype06,
|
||||
Handle(Interface_Protocol) IGESSolid_Protocol::Resource
|
||||
(const Standard_Integer /*num*/) const
|
||||
{
|
||||
Handle(Interface_Protocol) res = IGESGeom::Protocol();;
|
||||
return res;
|
||||
return IGESGeom::Protocol();
|
||||
}
|
||||
|
||||
Standard_Integer IGESSolid_Protocol::TypeNumber
|
||||
|
@@ -53,21 +53,6 @@ Interface_CopyTool::Interface_CopyTool
|
||||
const Handle(Interface_Protocol)& protocol)
|
||||
: thelib (protocol) , thelst (amodel->NbEntities())
|
||||
{
|
||||
thelst.Init(Standard_False);
|
||||
themod = amodel;
|
||||
themap = new Interface_CopyMap (amodel);
|
||||
therep = new Interface_CopyMap (amodel);
|
||||
thelev = 0; theimp = Standard_False;
|
||||
}
|
||||
|
||||
|
||||
Interface_CopyTool::Interface_CopyTool
|
||||
(const Handle(Interface_InterfaceModel)& amodel)
|
||||
: thelib (Interface_Protocol::Active()) , thelst (amodel->NbEntities())
|
||||
{
|
||||
if (Interface_Protocol::Active().IsNull()) Interface_InterfaceError::Raise
|
||||
("Interface CopyTool : Create with Active Protocol undefined");
|
||||
|
||||
thelst.Init(Standard_False);
|
||||
themod = amodel;
|
||||
themap = new Interface_CopyMap (amodel);
|
||||
@@ -110,7 +95,6 @@ Interface_CopyTool::Interface_CopyTool
|
||||
Standard_Boolean res = thelib.Select (entfrom,themdu,theCN);
|
||||
if (res) res = themdu->NewVoid (theCN,entto);
|
||||
if (!res) res = themdu->NewCopiedCase (theCN,entfrom,entto,*this);
|
||||
// if (!res) entto = entfrom->ShallowCopy(); sorry, nothing more possible
|
||||
return res;
|
||||
}
|
||||
|
||||
@@ -283,23 +267,6 @@ Interface_CopyTool::Interface_CopyTool
|
||||
}
|
||||
|
||||
|
||||
void Interface_CopyTool::FillModel
|
||||
(const Handle(Interface_InterfaceModel)& bmodel)
|
||||
{
|
||||
// Travaux preparatoires concernant les modeles
|
||||
// On commence : cela implique le Header
|
||||
bmodel->Clear();
|
||||
bmodel->GetFromAnother(themod);
|
||||
|
||||
// Transfert Passe 1 : On prend les Entites prealablement copiees
|
||||
Interface_EntityIterator list = CompleteResult(Standard_True);
|
||||
bmodel->GetFromTransfer(list);
|
||||
|
||||
// Transfert Passe 2 : recuperation des relations non "Share" (mais "Imply")
|
||||
RenewImpliedRefs();
|
||||
}
|
||||
|
||||
|
||||
Interface_EntityIterator Interface_CopyTool::CompleteResult
|
||||
(const Standard_Boolean withreports) const
|
||||
{
|
||||
|
@@ -67,7 +67,6 @@ public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
//! Creates a CopyTool adapted to work from a Model. Works
|
||||
//! with a General Service Library, given as an argument
|
||||
Standard_EXPORT Interface_CopyTool(const Handle(Interface_InterfaceModel)& amodel, const Interface_GeneralLib& lib);
|
||||
@@ -75,9 +74,6 @@ public:
|
||||
//! Same as above, but Library is defined through a Protocol
|
||||
Standard_EXPORT Interface_CopyTool(const Handle(Interface_InterfaceModel)& amodel, const Handle(Interface_Protocol)& protocol);
|
||||
|
||||
//! Same as above, but works with the Active Protocol
|
||||
Standard_EXPORT Interface_CopyTool(const Handle(Interface_InterfaceModel)& amodel);
|
||||
|
||||
//! Returns the Model on which the CopyTool works
|
||||
Standard_EXPORT Handle(Interface_InterfaceModel) Model() const;
|
||||
|
||||
@@ -161,10 +157,6 @@ public:
|
||||
//! "back pointers".
|
||||
Standard_EXPORT void RenewImpliedRefs();
|
||||
|
||||
//! Fills a Model with the result of the transfer (TransferList)
|
||||
//! Commands copy of Header too, and calls RenewImpliedRefs
|
||||
Standard_EXPORT void FillModel (const Handle(Interface_InterfaceModel)& bmodel);
|
||||
|
||||
//! Returns the complete list of copied Entities
|
||||
//! If <withreports> is given True, the entities which were
|
||||
//! reported in the Starting Model are replaced in the list
|
||||
|
@@ -42,10 +42,7 @@
|
||||
#endif
|
||||
#include <stdio.h>
|
||||
|
||||
// MGE 16/06/98
|
||||
// To use Msg class
|
||||
#include <Message_Msg.hxx>
|
||||
// To use TCollectionHAsciiString
|
||||
#include <TCollection_HAsciiString.hxx>
|
||||
|
||||
// Failure pour recuperer erreur en lecture fichier,
|
||||
@@ -62,68 +59,11 @@
|
||||
//=======================================================================
|
||||
|
||||
Interface_FileReaderTool::Interface_FileReaderTool ()
|
||||
: themessenger(Message::DefaultMessenger()),
|
||||
thetrace(1),
|
||||
thenbrep0(0),
|
||||
thenbreps(0)
|
||||
{
|
||||
themessenger = Message::DefaultMessenger();
|
||||
theerrhand = Standard_True;
|
||||
thetrace = 1;
|
||||
thenbrep0 = thenbreps = 0;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : SetData
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
void Interface_FileReaderTool::SetData(const Handle(Interface_FileReaderData)& reader,
|
||||
const Handle(Interface_Protocol)& protocol)
|
||||
{
|
||||
thereader = reader;
|
||||
theproto = protocol;
|
||||
}
|
||||
|
||||
|
||||
//=======================================================================
|
||||
//function : Protocol
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
Handle(Interface_Protocol) Interface_FileReaderTool::Protocol () const
|
||||
{
|
||||
return theproto;
|
||||
}
|
||||
|
||||
|
||||
//=======================================================================
|
||||
//function : Data
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
Handle(Interface_FileReaderData) Interface_FileReaderTool::Data () const
|
||||
{
|
||||
return thereader;
|
||||
}
|
||||
|
||||
|
||||
//=======================================================================
|
||||
//function : SetModel
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
void Interface_FileReaderTool::SetModel
|
||||
(const Handle(Interface_InterfaceModel)& amodel)
|
||||
{
|
||||
themodel = amodel;
|
||||
}
|
||||
|
||||
|
||||
//=======================================================================
|
||||
//function : Model
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
Handle(Interface_InterfaceModel) Interface_FileReaderTool::Model () const
|
||||
{
|
||||
return themodel;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
@@ -133,61 +73,7 @@ Handle(Interface_InterfaceModel) Interface_FileReaderTool::Model () const
|
||||
|
||||
void Interface_FileReaderTool::SetMessenger (const Handle(Message_Messenger)& messenger)
|
||||
{
|
||||
if ( messenger.IsNull() )
|
||||
themessenger = Message::DefaultMessenger();
|
||||
else
|
||||
themessenger = messenger;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : Messenger
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
Handle(Message_Messenger) Interface_FileReaderTool::Messenger () const
|
||||
{
|
||||
return themessenger;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : SetTraceLevel
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
void Interface_FileReaderTool::SetTraceLevel (const Standard_Integer tracelev)
|
||||
{
|
||||
thetrace = tracelev;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : TraceLevel
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
Standard_Integer Interface_FileReaderTool::TraceLevel () const
|
||||
{
|
||||
return thetrace;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : SetErrorHandle
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
void Interface_FileReaderTool::SetErrorHandle(const Standard_Boolean err)
|
||||
{
|
||||
theerrhand = err;
|
||||
}
|
||||
|
||||
|
||||
//=======================================================================
|
||||
//function : ErrorHandle
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
Standard_Boolean Interface_FileReaderTool::ErrorHandle() const
|
||||
{
|
||||
return theerrhand;
|
||||
themessenger = ( messenger.IsNull()? Message::DefaultMessenger() : messenger );
|
||||
}
|
||||
|
||||
// .... Actions Connexes au CHARGEMENT DU MODELE ....
|
||||
@@ -213,16 +99,11 @@ void Interface_FileReaderTool::SetEntities ()
|
||||
num = thereader->FindNextRecord(num)) {
|
||||
Handle(Standard_Transient) newent;
|
||||
Handle(Interface_Check) ach = new Interface_Check;
|
||||
if (!Recognize (num,ach,newent)) {
|
||||
newent = UnknownEntity();
|
||||
if (thereports.IsNull()) thereports =
|
||||
new TColStd_HArray1OfTransient (1,thereader->NbRecords());
|
||||
thenbreps ++; thenbrep0 ++;
|
||||
thereports->SetValue (num,new Interface_ReportEntity(ach,newent));
|
||||
}
|
||||
else if ((ach->NbFails() + ach->NbWarnings() > 0) && !newent.IsNull()) {
|
||||
if (thereports.IsNull()) thereports =
|
||||
new TColStd_HArray1OfTransient (1,thereader->NbRecords());
|
||||
Standard_Boolean res = Recognize (num,ach,newent);
|
||||
if (!res) newent = theproto->UnknownEntity();
|
||||
else res = ((ach->NbFails() + ach->NbWarnings()) == 0) || newent.IsNull();
|
||||
if (!res) {
|
||||
if (thereports.IsNull()) thereports = new TColStd_HArray1OfTransient (1,thereader->NbRecords());
|
||||
thenbreps ++; thenbrep0 ++;
|
||||
thereports->SetValue (num,new Interface_ReportEntity(ach,newent));
|
||||
}
|
||||
@@ -231,66 +112,6 @@ void Interface_FileReaderTool::SetEntities ()
|
||||
}
|
||||
|
||||
|
||||
//=======================================================================
|
||||
//function : RecognizeByLib
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
Standard_Boolean Interface_FileReaderTool::RecognizeByLib(const Standard_Integer num,
|
||||
Interface_GeneralLib& glib,
|
||||
Interface_ReaderLib& rlib,
|
||||
Handle(Interface_Check)& ach,
|
||||
Handle(Standard_Transient)& ent) const
|
||||
{
|
||||
Handle(Interface_GeneralModule) gmod;
|
||||
Handle(Interface_ReaderModule) rmod;
|
||||
Handle(Interface_Protocol) proto;
|
||||
Standard_Integer CN = 0;
|
||||
// Chercher dans ReaderLib : Reconnaissance de cas -> CN , proto
|
||||
for (rlib.Start(); rlib.More(); rlib.Next()) {
|
||||
rmod = rlib.Module();
|
||||
if (rmod.IsNull()) continue;
|
||||
CN = rmod->CaseNum(thereader,num);
|
||||
if (CN > 0) { proto = rlib.Protocol(); break; }
|
||||
}
|
||||
if (CN <= 0 || proto.IsNull()) return Standard_False;
|
||||
// Se recaler dans GeneralLib : Creation de l entite vide
|
||||
Handle(Standard_Type) typrot = proto->DynamicType();
|
||||
for (glib.Start(); glib.More(); glib.Next()) {
|
||||
proto = glib.Protocol();
|
||||
if (proto.IsNull()) continue;
|
||||
if (proto->DynamicType() != typrot) continue;
|
||||
Standard_Boolean res = glib.Module()->NewVoid(CN,ent);
|
||||
if (res) return res;
|
||||
if (!rmod.IsNull()) return rmod->NewRead (CN,thereader,num,ach,ent);
|
||||
// return res;
|
||||
}
|
||||
return Standard_False;
|
||||
}
|
||||
|
||||
|
||||
//=======================================================================
|
||||
//function : UnknownEntity
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
Handle(Standard_Transient) Interface_FileReaderTool::UnknownEntity() const
|
||||
{
|
||||
return theproto->UnknownEntity();
|
||||
}
|
||||
|
||||
|
||||
//=======================================================================
|
||||
//function : NewModel
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
Handle(Interface_InterfaceModel) Interface_FileReaderTool::NewModel() const
|
||||
{
|
||||
return theproto->NewModel();
|
||||
}
|
||||
|
||||
|
||||
//=======================================================================
|
||||
//function : EndRead
|
||||
//purpose :
|
||||
@@ -309,8 +130,7 @@ void Interface_FileReaderTool::EndRead(const Handle(Interface_InterfaceModel)& )
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
void Interface_FileReaderTool::LoadModel
|
||||
(const Handle(Interface_InterfaceModel)& amodel)
|
||||
void Interface_FileReaderTool::LoadModel (const Handle(Interface_InterfaceModel)& amodel)
|
||||
//
|
||||
// Methode generale de lecture d un fichier : il est lu via un FileReaderData
|
||||
// qui doit y donner acces de la facon la plus performante possible
|
||||
@@ -326,7 +146,6 @@ void Interface_FileReaderTool::LoadModel
|
||||
SetModel(amodel);
|
||||
|
||||
// .. Demarrage : Lecture du Header ..
|
||||
if (theerrhand) {
|
||||
try {
|
||||
OCC_CATCH_SIGNALS
|
||||
BeginRead(amodel); // selon la norme
|
||||
@@ -336,9 +155,6 @@ void Interface_FileReaderTool::LoadModel
|
||||
Message_Msg Msg11("XSTEP_11");
|
||||
TF->Send (Msg11, Message_Info);
|
||||
}
|
||||
}
|
||||
else
|
||||
BeginRead(amodel); // selon la norme
|
||||
|
||||
// .. Lecture des Entites ..
|
||||
|
||||
@@ -430,7 +246,7 @@ void Interface_FileReaderTool::LoadModel
|
||||
thenbreps ++;
|
||||
Handle(Interface_ReportEntity) rep =
|
||||
new Interface_ReportEntity(ach,anent);
|
||||
Handle(Standard_Transient) undef = UnknownEntity();
|
||||
Handle(Standard_Transient) undef = theproto->UnknownEntity();
|
||||
AnalyseRecord(num,undef,ach);
|
||||
rep->SetContent(undef);
|
||||
|
||||
@@ -476,7 +292,6 @@ void Interface_FileReaderTool::LoadModel
|
||||
}
|
||||
|
||||
// Conclusion : peut ne rien faire : selon necessite
|
||||
if (theerrhand) {
|
||||
try {
|
||||
OCC_CATCH_SIGNALS
|
||||
EndRead(amodel); // selon la norme
|
||||
@@ -487,9 +302,6 @@ void Interface_FileReaderTool::LoadModel
|
||||
TF->Send (Msg11, Message_Info);
|
||||
}
|
||||
}
|
||||
else
|
||||
EndRead(amodel); // selon la norme
|
||||
}
|
||||
|
||||
|
||||
//=======================================================================
|
||||
@@ -497,8 +309,7 @@ void Interface_FileReaderTool::LoadModel
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
Handle(Standard_Transient) Interface_FileReaderTool::LoadedEntity
|
||||
(const Standard_Integer num)
|
||||
Handle(Standard_Transient) Interface_FileReaderTool::LoadedEntity (const Standard_Integer num)
|
||||
{
|
||||
Handle(Standard_Transient) anent = thereader->BoundEntity(num);
|
||||
Handle(Interface_Check) ach = new Interface_Check(anent);
|
||||
@@ -552,30 +363,47 @@ Handle(Standard_Transient) Interface_FileReaderTool::LoadedEntity
|
||||
// Rechargement ? si oui, dans une UnknownEntity fournie par le protocole
|
||||
if (thereader->IsErrorLoad()) nbf = (thereader->ResetErrorLoad() ? 1 : 0);
|
||||
if (nbf > 0) {
|
||||
Handle(Standard_Transient) undef = UnknownEntity();
|
||||
Handle(Standard_Transient) undef = theproto->UnknownEntity();
|
||||
AnalyseRecord(num,undef,ach);
|
||||
rep->SetContent(undef);
|
||||
}
|
||||
|
||||
// Conclusion (Unknown : traite en externe because traitement Raise)
|
||||
//// if (irep > 0) themodel->SetReportEntity (nbe,rep); en bloc a la fin
|
||||
|
||||
return anent;
|
||||
}
|
||||
|
||||
|
||||
//=======================================================================
|
||||
//function : ~Interface_FileReaderTool
|
||||
//function : RecognizeByLib
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
Interface_FileReaderTool::~Interface_FileReaderTool()
|
||||
{}
|
||||
|
||||
void Interface_FileReaderTool::Clear()
|
||||
Standard_Boolean Interface_FileReaderTool::RecognizeByLib(const Standard_Integer num,
|
||||
Interface_GeneralLib& glib,
|
||||
Interface_ReaderLib& rlib,
|
||||
Handle(Interface_Check)& ach,
|
||||
Handle(Standard_Transient)& ent) const
|
||||
{
|
||||
theproto.Nullify();
|
||||
thereader.Nullify();
|
||||
themodel.Nullify();
|
||||
thereports.Nullify();
|
||||
Handle(Interface_GeneralModule) gmod;
|
||||
Handle(Interface_ReaderModule) rmod;
|
||||
Handle(Interface_Protocol) proto;
|
||||
Standard_Integer CN = 0;
|
||||
// Chercher dans ReaderLib : Reconnaissance de cas -> CN , proto
|
||||
for (rlib.Start(); rlib.More(); rlib.Next()) {
|
||||
rmod = rlib.Module();
|
||||
if (rmod.IsNull()) continue;
|
||||
CN = rmod->CaseNum(thereader,num);
|
||||
if (CN > 0) { proto = rlib.Protocol(); break; }
|
||||
}
|
||||
if (CN <= 0 || proto.IsNull()) return Standard_False;
|
||||
// Se recaler dans GeneralLib : Creation de l entite vide
|
||||
Handle(Standard_Type) typrot = proto->DynamicType();
|
||||
for (glib.Start(); glib.More(); glib.Next()) {
|
||||
proto = glib.Protocol();
|
||||
if (proto.IsNull()) continue;
|
||||
if (proto->DynamicType() != typrot) continue;
|
||||
Standard_Boolean res = glib.Module()->NewVoid(CN,ent);
|
||||
if (res) return res;
|
||||
if (!rmod.IsNull()) return rmod->NewRead (CN,thereader,num,ach,ent);
|
||||
}
|
||||
return Standard_False;
|
||||
}
|
||||
|
@@ -55,21 +55,24 @@ public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
//! Sets Data to a FileReaderData. Works with a Protocol
|
||||
Standard_EXPORT void SetData (const Handle(Interface_FileReaderData)& reader, const Handle(Interface_Protocol)& protocol);
|
||||
void SetData (const Handle(Interface_FileReaderData)& reader, const Handle(Interface_Protocol)& protocol)
|
||||
{
|
||||
thereader = reader;
|
||||
theproto = protocol;
|
||||
}
|
||||
|
||||
//! Returns the Protocol given at creation time
|
||||
Standard_EXPORT Handle(Interface_Protocol) Protocol() const;
|
||||
const Handle(Interface_Protocol) & Protocol() const { return theproto; }
|
||||
|
||||
//! Returns the FileReaderData which is used to work
|
||||
Standard_EXPORT Handle(Interface_FileReaderData) Data() const;
|
||||
const Handle(Interface_FileReaderData) & Data() const { return thereader; }
|
||||
|
||||
//! Stores a Model. Used when the Model has been loaded
|
||||
Standard_EXPORT void SetModel (const Handle(Interface_InterfaceModel)& amodel);
|
||||
void SetModel (const Handle(Interface_InterfaceModel)& amodel) { themodel = amodel; }
|
||||
|
||||
//! Returns the stored Model
|
||||
Standard_EXPORT Handle(Interface_InterfaceModel) Model() const;
|
||||
const Handle(Interface_InterfaceModel) & Model() const { return themodel; }
|
||||
|
||||
//! Sets Messenger used for outputting messages
|
||||
Standard_EXPORT void SetMessenger (const Handle(Message_Messenger)& messenger);
|
||||
@@ -77,7 +80,7 @@ public:
|
||||
//! Returns Messenger used for outputting messages.
|
||||
//! The returned object is guaranteed to be non-null;
|
||||
//! default is Message::Messenger().
|
||||
Standard_EXPORT Handle(Message_Messenger) Messenger() const;
|
||||
const Handle(Message_Messenger) & Messenger() const { return themessenger; }
|
||||
|
||||
//! Sets trace level used for outputting messages
|
||||
//! - 0: no trace at all
|
||||
@@ -85,20 +88,10 @@ public:
|
||||
//! - 2: errors and warnings
|
||||
//! - 3: all messages
|
||||
//! Default is 1 : Errors traced
|
||||
Standard_EXPORT void SetTraceLevel (const Standard_Integer tracelev);
|
||||
void SetTraceLevel (const Standard_Integer tracelev) { thetrace = tracelev; }
|
||||
|
||||
//! Returns trace level used for outputting messages.
|
||||
Standard_EXPORT Standard_Integer TraceLevel() const;
|
||||
|
||||
//! Allows controlling whether exception raisings are handled
|
||||
//! If err is False, they are not (hence, dbx can take control)
|
||||
//! If err is True, they are, and they are traced
|
||||
//! (by putting on messenger Entity's Number and file record num)
|
||||
//! Default given at Model's creation time is True
|
||||
Standard_EXPORT void SetErrorHandle (const Standard_Boolean err);
|
||||
|
||||
//! Returns ErrorHandle flag
|
||||
Standard_EXPORT Standard_Boolean ErrorHandle() const;
|
||||
Standard_Integer TraceLevel() const { return thetrace; }
|
||||
|
||||
//! Fills records with empty entities; once done, each entity can
|
||||
//! ask the FileReaderTool for any entity referenced through an
|
||||
@@ -106,39 +99,6 @@ public:
|
||||
//! type of FileReaderTool
|
||||
Standard_EXPORT void SetEntities();
|
||||
|
||||
//! Recognizes a record, given its number. Specific to each
|
||||
//! Interface; called by SetEntities. It can call the basic method
|
||||
//! RecognizeByLib.
|
||||
//! Returns False if recognition has failed, True else.
|
||||
//! <ach> has not to be filled if simply Recognition has failed :
|
||||
//! it must record true error messages : RecognizeByLib can
|
||||
//! generate error messages if NewRead is called
|
||||
//!
|
||||
//! Note that it works thru a Recognizer (method Evaluate) which
|
||||
//! has to be memorized before starting
|
||||
Standard_EXPORT virtual Standard_Boolean Recognize (const Standard_Integer num, Handle(Interface_Check)& ach, Handle(Standard_Transient)& ent) = 0;
|
||||
|
||||
//! Recognizes a record with the help of Libraries. Can be used
|
||||
//! to implement the method Recognize.
|
||||
//! <rlib> is used to find Protocol and CaseNumber to apply
|
||||
//! <glib> performs the creation (by service NewVoid, or NewRead
|
||||
//! if NewVoid gave no result)
|
||||
//! <ach> is a check, which is transmitted to NewRead if it is
|
||||
//! called, gives a result but which is false
|
||||
//! <ent> is the result
|
||||
//! Returns False if recognition has failed, True else
|
||||
Standard_EXPORT Standard_Boolean RecognizeByLib (const Standard_Integer num, Interface_GeneralLib& glib, Interface_ReaderLib& rlib, Handle(Interface_Check)& ach, Handle(Standard_Transient)& ent) const;
|
||||
|
||||
//! Provides an unknown entity, specific to the Interface
|
||||
//! called by SetEntities when Recognize has failed (Unknown alone)
|
||||
//! or by LoadModel when an Entity has caused a Fail on reading
|
||||
//! (to keep at least its literal description)
|
||||
//! Uses Protocol to do it
|
||||
Standard_EXPORT Handle(Standard_Transient) UnknownEntity() const;
|
||||
|
||||
//! Creates an empty Model of the norm. Uses Protocol to do it
|
||||
Standard_EXPORT Handle(Interface_InterfaceModel) NewModel() const;
|
||||
|
||||
//! Reads and fills Entities from the FileReaderData set by
|
||||
//! SetData to an InterfaceModel.
|
||||
//! It enchains required operations, the specific ones correspond
|
||||
@@ -156,6 +116,34 @@ public:
|
||||
//! literal Content (as an UnknownEntity). Performs also Trace
|
||||
Standard_EXPORT Handle(Standard_Transient) LoadedEntity (const Standard_Integer num);
|
||||
|
||||
protected:
|
||||
|
||||
//! Constructor; sets default fields
|
||||
Standard_EXPORT Interface_FileReaderTool();
|
||||
|
||||
//! Recognizes a record with the help of Libraries. Can be used
|
||||
//! to implement the method Recognize.
|
||||
//! <rlib> is used to find Protocol and CaseNumber to apply
|
||||
//! <glib> performs the creation (by service NewVoid, or NewRead
|
||||
//! if NewVoid gave no result)
|
||||
//! <ach> is a check, which is transmitted to NewRead if it is
|
||||
//! called, gives a result but which is false
|
||||
//! <ent> is the result
|
||||
//! Returns False if recognition has failed, True else
|
||||
Standard_EXPORT Standard_Boolean RecognizeByLib (const Standard_Integer num, Interface_GeneralLib& glib, Interface_ReaderLib& rlib, Handle(Interface_Check)& ach, Handle(Standard_Transient)& ent) const;
|
||||
|
||||
//! Recognizes a record, given its number. Specific to each
|
||||
//! Interface; called by SetEntities. It can call the basic method
|
||||
//! RecognizeByLib.
|
||||
//! Returns False if recognition has failed, True else.
|
||||
//! <ach> has not to be filled if simply Recognition has failed :
|
||||
//! it must record true error messages : RecognizeByLib can
|
||||
//! generate error messages if NewRead is called
|
||||
//!
|
||||
//! Note that it works thru a Recognizer (method Evaluate) which
|
||||
//! has to be memorized before starting
|
||||
Standard_EXPORT virtual Standard_Boolean Recognize (const Standard_Integer num, Handle(Interface_Check)& ach, Handle(Standard_Transient)& ent) = 0;
|
||||
|
||||
//! Fills model's header; each Interface defines for its Model its
|
||||
//! own file header; this method fills it from FileReaderTool.+
|
||||
//! It is called by AnalyseFile from InterfaceModel
|
||||
@@ -175,48 +163,20 @@ public:
|
||||
//! else (in case of syntactic fail)
|
||||
Standard_EXPORT virtual Standard_Boolean AnalyseRecord (const Standard_Integer num, const Handle(Standard_Transient)& anent, Handle(Interface_Check)& acheck) = 0;
|
||||
|
||||
Standard_EXPORT virtual ~Interface_FileReaderTool();
|
||||
|
||||
//! Ends file reading after reading all the entities
|
||||
//! default is doing nothing; redefinable as necessary
|
||||
Standard_EXPORT virtual void EndRead (const Handle(Interface_InterfaceModel)& amodel);
|
||||
|
||||
//! Clear filelds
|
||||
Standard_EXPORT void Clear();
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
//! Constructor; sets default fields
|
||||
Standard_EXPORT Interface_FileReaderTool();
|
||||
|
||||
|
||||
|
||||
Standard_EXPORT virtual void EndRead (const Handle(Interface_InterfaceModel)& amodel) = 0;
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Handle(Interface_Protocol) theproto;
|
||||
Handle(Interface_FileReaderData) thereader;
|
||||
Handle(Interface_InterfaceModel) themodel;
|
||||
Handle(Message_Messenger) themessenger;
|
||||
Standard_Integer thetrace;
|
||||
Standard_Boolean theerrhand;
|
||||
Standard_Integer thenbrep0;
|
||||
Standard_Integer thenbreps;
|
||||
Handle(TColStd_HArray1OfTransient) thereports;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _Interface_FileReaderTool_HeaderFile
|
||||
|
@@ -23,20 +23,11 @@
|
||||
|
||||
IMPLEMENT_STANDARD_RTTIEXT(Interface_GTool,MMgt_TShared)
|
||||
|
||||
Interface_GTool::Interface_GTool () { }
|
||||
|
||||
Interface_GTool::Interface_GTool
|
||||
(const Handle(Interface_Protocol)& proto, const Standard_Integer nb)
|
||||
: theproto (proto) , thelib (proto)
|
||||
{ if (nb > 0) { thentnum.ReSize(nb); thentmod.ReSize(nb); } }
|
||||
|
||||
|
||||
void Interface_GTool::SetSignType (const Handle(Interface_SignType)& sign)
|
||||
{ thesign = sign; }
|
||||
|
||||
Handle(Interface_SignType) Interface_GTool::SignType () const
|
||||
{ return thesign; }
|
||||
|
||||
Standard_CString Interface_GTool::SignValue
|
||||
(const Handle(Standard_Transient)& ent,
|
||||
const Handle(Interface_InterfaceModel)& model) const
|
||||
@@ -52,7 +43,6 @@ Interface_GTool::Interface_GTool () { }
|
||||
return thesign->Name();
|
||||
}
|
||||
|
||||
|
||||
void Interface_GTool::SetProtocol
|
||||
(const Handle(Interface_Protocol)& proto, const Standard_Boolean enforce)
|
||||
{
|
||||
@@ -62,12 +52,6 @@ Interface_GTool::Interface_GTool () { }
|
||||
thelib.AddProtocol (proto);
|
||||
}
|
||||
|
||||
Handle(Interface_Protocol) Interface_GTool::Protocol () const
|
||||
{ return theproto; }
|
||||
|
||||
Interface_GeneralLib& Interface_GTool::Lib ()
|
||||
{ return thelib; }
|
||||
|
||||
void Interface_GTool::Reservate
|
||||
(const Standard_Integer nb, const Standard_Boolean enforce)
|
||||
{
|
||||
|
@@ -46,22 +46,20 @@ DEFINE_STANDARD_HANDLE(Interface_GTool, MMgt_TShared)
|
||||
//! Shareable between several users : as a Handle
|
||||
class Interface_GTool : public MMgt_TShared
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
|
||||
//! Creates an empty, not set, GTool
|
||||
Standard_EXPORT Interface_GTool();
|
||||
Interface_GTool() {}
|
||||
|
||||
//! Creates a GTool from a Protocol
|
||||
//! Optional starting count of entities
|
||||
Standard_EXPORT Interface_GTool(const Handle(Interface_Protocol)& proto, const Standard_Integer nbent = 0);
|
||||
|
||||
//! Sets a new SignType
|
||||
Standard_EXPORT void SetSignType (const Handle(Interface_SignType)& sign);
|
||||
void SetSignType (const Handle(Interface_SignType)& sign) { thesign = sign; }
|
||||
|
||||
//! Returns the SignType. Can be null
|
||||
Standard_EXPORT Handle(Interface_SignType) SignType() const;
|
||||
const Handle(Interface_SignType) & SignType() const { return thesign; }
|
||||
|
||||
//! Returns the Signature for a Transient Object in a Model
|
||||
//! It calls SignType to do that
|
||||
@@ -77,10 +75,10 @@ public:
|
||||
Standard_EXPORT void SetProtocol (const Handle(Interface_Protocol)& proto, const Standard_Boolean enforce = Standard_False);
|
||||
|
||||
//! Returns the Protocol. Warning : it can be Null
|
||||
Standard_EXPORT Handle(Interface_Protocol) Protocol() const;
|
||||
const Handle(Interface_Protocol) & Protocol() const { return theproto; }
|
||||
|
||||
//! Returns the GeneralLib itself
|
||||
Standard_EXPORT Interface_GeneralLib& Lib();
|
||||
Interface_GeneralLib& Lib() { return thelib; }
|
||||
|
||||
//! Reservates maps for a count of entities
|
||||
//! <enforce> False : minimum count
|
||||
|
@@ -25,7 +25,7 @@
|
||||
#include <Standard_Integer.hxx>
|
||||
class Interface_NodeOfGeneralLib;
|
||||
class Standard_NoSuchObject;
|
||||
class Standard_Transient;
|
||||
class Interface_Protocol;
|
||||
class Interface_GeneralModule;
|
||||
class Interface_Protocol;
|
||||
class Interface_GlobalNodeOfGeneralLib;
|
||||
@@ -56,17 +56,13 @@ public:
|
||||
//! Adds a couple (Module-Protocol) to the Library, given the
|
||||
//! class of a Protocol. Takes Resources into account.
|
||||
//! (if <aprotocol> is not of type TheProtocol, it is not added)
|
||||
Standard_EXPORT void AddProtocol (const Handle(Standard_Transient)& aprotocol);
|
||||
Standard_EXPORT void AddProtocol (const Handle(Interface_Protocol)& aprotocol);
|
||||
|
||||
//! Clears the list of Modules of a library (can be used to
|
||||
//! redefine the order of Modules before action : Clear then
|
||||
//! refill the Library by calls to AddProtocol)
|
||||
Standard_EXPORT void Clear();
|
||||
|
||||
//! Sets a library to be defined with the complete Global list
|
||||
//! (all the couples Protocol/Modules recorded in it)
|
||||
Standard_EXPORT void SetComplete();
|
||||
|
||||
//! Selects a Module from the Library, given an Object.
|
||||
//! Returns True if Select has succeeded, False else.
|
||||
//! Also Returns (as arguments) the selected Module and the Case
|
||||
|
@@ -20,7 +20,6 @@
|
||||
#include <Standard_NoSuchObject.hxx>
|
||||
#include <Standard_Transient.hxx>
|
||||
#include <Interface_GeneralModule.hxx>
|
||||
#include <Interface_Protocol.hxx>
|
||||
#include <Interface_GlobalNodeOfGeneralLib.hxx>
|
||||
|
||||
|
||||
@@ -29,9 +28,6 @@
|
||||
#define Handle_TheModule Handle(Interface_GeneralModule)
|
||||
#define TheModule Interface_GeneralModule
|
||||
#define TheModule_hxx <Interface_GeneralModule.hxx>
|
||||
#define Handle_TheProtocol Handle(Interface_Protocol)
|
||||
#define TheProtocol Interface_Protocol
|
||||
#define TheProtocol_hxx <Interface_Protocol.hxx>
|
||||
#define LibCtl_GlobalNode Interface_GlobalNodeOfGeneralLib
|
||||
#define LibCtl_GlobalNode_hxx <Interface_GlobalNodeOfGeneralLib.hxx>
|
||||
#define LibCtl_Node Interface_NodeOfGeneralLib
|
||||
|
@@ -19,29 +19,16 @@
|
||||
#include <Standard_Type.hxx>
|
||||
|
||||
#include <Interface_GeneralModule.hxx>
|
||||
#include <Interface_Protocol.hxx>
|
||||
#include <Interface_GlobalNodeOfGeneralLib.hxx>
|
||||
#include <Standard_Transient.hxx>
|
||||
#include <Interface_GeneralLib.hxx>
|
||||
#include <Interface_NodeOfGeneralLib.hxx>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#define TheObject Handle(Standard_Transient)
|
||||
#define TheObject_hxx <Standard_Transient.hxx>
|
||||
#define Handle_TheModule Handle(Interface_GeneralModule)
|
||||
#define TheModule Interface_GeneralModule
|
||||
#define TheModule_hxx <Interface_GeneralModule.hxx>
|
||||
#define Handle_TheProtocol Handle(Interface_Protocol)
|
||||
#define TheProtocol Interface_Protocol
|
||||
#define TheProtocol_hxx <Interface_Protocol.hxx>
|
||||
#define LibCtl_GlobalNode Interface_GlobalNodeOfGeneralLib
|
||||
#define LibCtl_GlobalNode_hxx <Interface_GlobalNodeOfGeneralLib.hxx>
|
||||
#define LibCtl_Node Interface_NodeOfGeneralLib
|
||||
@@ -51,4 +38,3 @@
|
||||
#define LibCtl_Library Interface_GeneralLib
|
||||
#define LibCtl_Library_hxx <Interface_GeneralLib.hxx>
|
||||
#include <LibCtl_GlobalNode.gxx>
|
||||
|
||||
|
@@ -19,29 +19,16 @@
|
||||
#include <Standard_Type.hxx>
|
||||
|
||||
#include <Interface_ReaderModule.hxx>
|
||||
#include <Interface_Protocol.hxx>
|
||||
#include <Interface_GlobalNodeOfReaderLib.hxx>
|
||||
#include <Standard_Transient.hxx>
|
||||
#include <Interface_ReaderLib.hxx>
|
||||
#include <Interface_NodeOfReaderLib.hxx>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#define TheObject Handle(Standard_Transient)
|
||||
#define TheObject_hxx <Standard_Transient.hxx>
|
||||
#define Handle_TheModule Handle(Interface_ReaderModule)
|
||||
#define TheModule Interface_ReaderModule
|
||||
#define TheModule_hxx <Interface_ReaderModule.hxx>
|
||||
#define Handle_TheProtocol Handle(Interface_Protocol)
|
||||
#define TheProtocol Interface_Protocol
|
||||
#define TheProtocol_hxx <Interface_Protocol.hxx>
|
||||
#define LibCtl_GlobalNode Interface_GlobalNodeOfReaderLib
|
||||
#define LibCtl_GlobalNode_hxx <Interface_GlobalNodeOfReaderLib.hxx>
|
||||
#define LibCtl_Node Interface_NodeOfReaderLib
|
||||
@@ -51,4 +38,3 @@
|
||||
#define LibCtl_Library Interface_ReaderLib
|
||||
#define LibCtl_Library_hxx <Interface_ReaderLib.hxx>
|
||||
#include <LibCtl_GlobalNode.gxx>
|
||||
|
||||
|
@@ -440,7 +440,7 @@ Handle(TCollection_HAsciiString) Interface_Graph::Name(const Handle(Standard_Tr
|
||||
if (themodel.IsNull()) return str;
|
||||
if (themodel->Number(ent)) return str;
|
||||
|
||||
Handle(Interface_GTool) gtool = themodel->GTool();
|
||||
const Handle(Interface_GTool) >ool = themodel->GTool();
|
||||
if (gtool.IsNull()) return str;
|
||||
|
||||
Handle(Interface_GeneralModule) module;
|
||||
|
@@ -31,7 +31,6 @@
|
||||
|
||||
class Interface_GeneralLib;
|
||||
class Interface_Protocol;
|
||||
class Interface_GTool;
|
||||
class Standard_Transient;
|
||||
class Interface_BitMap;
|
||||
class Interface_EntityIterator;
|
||||
|
@@ -83,7 +83,7 @@ Interface_InterfaceModel::~Interface_InterfaceModel () // on fait un mimumum
|
||||
|
||||
void Interface_InterfaceModel::SetProtocol(const Handle(Interface_Protocol)& proto)
|
||||
{
|
||||
thegtool = new Interface_GTool(proto);
|
||||
myGTool = new Interface_GTool(proto);
|
||||
}
|
||||
|
||||
|
||||
@@ -92,10 +92,10 @@ void Interface_InterfaceModel::SetProtocol(const Handle(Interface_Protocol)& pro
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
Handle(Interface_Protocol) Interface_InterfaceModel::Protocol () const
|
||||
const Handle(Interface_Protocol) & Interface_InterfaceModel::Protocol () const
|
||||
{
|
||||
Handle(Interface_Protocol) proto;
|
||||
if (!thegtool.IsNull()) return thegtool->Protocol();
|
||||
static const Handle(Interface_Protocol) proto;
|
||||
if (!myGTool.IsNull()) return myGTool->Protocol();
|
||||
return proto;
|
||||
}
|
||||
|
||||
@@ -127,8 +127,8 @@ void Interface_InterfaceModel::ClearEntities ()
|
||||
therepch.Clear();
|
||||
haschecksem = Standard_False;
|
||||
|
||||
if (!thegtool.IsNull()) {
|
||||
thegtool->ClearEntities(); //smh#14 FRA62479
|
||||
if (!myGTool.IsNull()) {
|
||||
myGTool->ClearEntities(); //smh#14 FRA62479
|
||||
}
|
||||
isdispatch = Standard_False;
|
||||
theentities.Clear();
|
||||
@@ -181,8 +181,8 @@ Standard_Integer Interface_InterfaceModel::Number (const Handle(Standard_Transie
|
||||
|
||||
Standard_Integer Interface_InterfaceModel::NbTypes (const Handle(Standard_Transient)& ent) const
|
||||
{
|
||||
if (Protocol().IsNull()) return 1;
|
||||
return Protocol()->NbTypes(ent);
|
||||
if (myGTool.IsNull() || myGTool->Protocol().IsNull()) return 1;
|
||||
return myGTool->Protocol()->NbTypes(ent);
|
||||
}
|
||||
|
||||
|
||||
@@ -194,8 +194,8 @@ Standard_Integer Interface_InterfaceModel::NbTypes (const Handle(Standard_Transi
|
||||
Handle(Standard_Type) Interface_InterfaceModel::Type
|
||||
(const Handle(Standard_Transient)& ent, const Standard_Integer nt) const
|
||||
{
|
||||
if (Protocol().IsNull()) return ent->DynamicType();
|
||||
return Protocol()->Type(ent,nt);
|
||||
if (myGTool.IsNull() || myGTool->Protocol().IsNull()) return ent->DynamicType();
|
||||
return myGTool->Protocol()->Type(ent,nt);
|
||||
}
|
||||
|
||||
|
||||
@@ -207,7 +207,7 @@ Handle(Standard_Type) Interface_InterfaceModel::Type
|
||||
Standard_CString Interface_InterfaceModel::TypeName
|
||||
(const Handle(Standard_Transient)& ent, const Standard_Boolean complet) const
|
||||
{
|
||||
if (!thegtool.IsNull()) return thegtool->SignValue (ent,this);
|
||||
if (!myGTool.IsNull()) return myGTool->SignValue (ent,this);
|
||||
Standard_CString tn = ent->DynamicType()->Name();
|
||||
if (complet) return tn;
|
||||
return Interface_InterfaceModel::ClassName(tn);
|
||||
@@ -501,7 +501,8 @@ void Interface_InterfaceModel::AddWithRefs(const Handle(Standard_Transient)& ane
|
||||
}
|
||||
Interface_GeneralLib lib(proto);
|
||||
AddWithRefs (anent,lib,level,listall);
|
||||
if (Protocol().IsNull() && !proto.IsNull()) SetProtocol(proto);
|
||||
if ((myGTool.IsNull() || myGTool->Protocol().IsNull()) && !proto.IsNull())
|
||||
SetProtocol(proto);
|
||||
}
|
||||
|
||||
|
||||
@@ -514,10 +515,9 @@ void Interface_InterfaceModel::AddWithRefs(const Handle(Standard_Transient)& ane
|
||||
const Standard_Integer level,
|
||||
const Standard_Boolean listall)
|
||||
{
|
||||
Handle(Interface_Protocol) proto = Protocol();
|
||||
if (proto.IsNull()) Interface_InterfaceMismatch::Raise
|
||||
("InterfaceModel : AddWithRefs");
|
||||
AddWithRefs (anent,proto,level,listall);
|
||||
if (myGTool.IsNull() || myGTool->Protocol().IsNull())
|
||||
Interface_InterfaceMismatch::Raise ("InterfaceModel : AddWithRefs");
|
||||
AddWithRefs (anent,myGTool->Protocol(),level,listall);
|
||||
}
|
||||
|
||||
|
||||
|
@@ -78,13 +78,13 @@ class Interface_InterfaceModel : public MMgt_TShared
|
||||
|
||||
//! Returns the Protocol which has been set by SetProtocol, or
|
||||
//! AddWithRefs with Protocol
|
||||
Standard_EXPORT virtual Handle(Interface_Protocol) Protocol() const;
|
||||
Standard_EXPORT const Handle(Interface_Protocol) & Protocol() const;
|
||||
|
||||
//! Sets a GTool for this model, which already defines a Protocol
|
||||
void SetGTool (const Handle(Interface_GTool)& gtool) { thegtool = gtool; }
|
||||
void SetGTool (const Handle(Interface_GTool)& gtool) { myGTool = gtool; }
|
||||
|
||||
//! Returns the GTool, set by SetProtocol or by SetGTool
|
||||
const Handle(Interface_GTool) & GTool() const { return thegtool; }
|
||||
const Handle(Interface_GTool) & GTool() const { return myGTool; }
|
||||
|
||||
//! Returns the Dispatch Status, either for get or set
|
||||
//! A Model which is produced from Dispatch may share entities
|
||||
@@ -276,16 +276,6 @@ class Interface_InterfaceModel : public MMgt_TShared
|
||||
//! Transfer tool (e.g TransferCopy). Starts from clear
|
||||
Standard_EXPORT void GetFromTransfer (const Interface_EntityIterator& aniter);
|
||||
|
||||
//! Gets header (data specific of a defined Interface) from
|
||||
//! another InterfaceModel; called from TransferCopy
|
||||
Standard_EXPORT virtual void GetFromAnother (const Handle(Interface_InterfaceModel)& other) = 0;
|
||||
|
||||
//! Returns a New Empty Model, same type as <me> (whatever its
|
||||
//! Type); called to Copy parts a Model into other ones, then
|
||||
//! followed by a call to GetFromAnother (Header) then filling
|
||||
//! with specified Entities, themselves copied
|
||||
Standard_EXPORT virtual Handle(Interface_InterfaceModel) NewEmptyModel() const = 0;
|
||||
|
||||
//! Records a category number for an entity number
|
||||
//! Returns True when done, False if <num> is out of range
|
||||
Standard_EXPORT Standard_Boolean SetCategoryNumber (const Standard_Integer num, const Standard_Integer val);
|
||||
@@ -386,7 +376,7 @@ class Interface_InterfaceModel : public MMgt_TShared
|
||||
Standard_Boolean haschecksem;
|
||||
Standard_Boolean isdispatch;
|
||||
Handle(TCollection_HAsciiString) thecategory;
|
||||
Handle(Interface_GTool) thegtool;
|
||||
Handle(Interface_GTool) myGTool;
|
||||
};
|
||||
|
||||
#endif // _Interface_InterfaceModel_HeaderFile
|
||||
|
@@ -22,26 +22,13 @@
|
||||
#include <Interface_NodeOfGeneralLib.hxx>
|
||||
#include <Standard_Transient.hxx>
|
||||
#include <Interface_GeneralModule.hxx>
|
||||
#include <Interface_Protocol.hxx>
|
||||
#include <Interface_GeneralLib.hxx>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#define TheObject Handle(Standard_Transient)
|
||||
#define TheObject_hxx <Standard_Transient.hxx>
|
||||
#define Handle_TheModule Handle(Interface_GeneralModule)
|
||||
#define TheModule Interface_GeneralModule
|
||||
#define TheModule_hxx <Interface_GeneralModule.hxx>
|
||||
#define Handle_TheProtocol Handle(Interface_Protocol)
|
||||
#define TheProtocol Interface_Protocol
|
||||
#define TheProtocol_hxx <Interface_Protocol.hxx>
|
||||
#define LibCtl_GlobalNode Interface_GlobalNodeOfGeneralLib
|
||||
#define LibCtl_GlobalNode_hxx <Interface_GlobalNodeOfGeneralLib.hxx>
|
||||
#define LibCtl_Node Interface_NodeOfGeneralLib
|
||||
|
@@ -22,26 +22,13 @@
|
||||
#include <Interface_NodeOfReaderLib.hxx>
|
||||
#include <Standard_Transient.hxx>
|
||||
#include <Interface_ReaderModule.hxx>
|
||||
#include <Interface_Protocol.hxx>
|
||||
#include <Interface_ReaderLib.hxx>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#define TheObject Handle(Standard_Transient)
|
||||
#define TheObject_hxx <Standard_Transient.hxx>
|
||||
#define Handle_TheModule Handle(Interface_ReaderModule)
|
||||
#define TheModule Interface_ReaderModule
|
||||
#define TheModule_hxx <Interface_ReaderModule.hxx>
|
||||
#define Handle_TheProtocol Handle(Interface_Protocol)
|
||||
#define TheProtocol Interface_Protocol
|
||||
#define TheProtocol_hxx <Interface_Protocol.hxx>
|
||||
#define LibCtl_GlobalNode Interface_GlobalNodeOfReaderLib
|
||||
#define LibCtl_GlobalNode_hxx <Interface_GlobalNodeOfReaderLib.hxx>
|
||||
#define LibCtl_Node Interface_NodeOfReaderLib
|
||||
@@ -51,4 +38,3 @@
|
||||
#define LibCtl_Library Interface_ReaderLib
|
||||
#define LibCtl_Library_hxx <Interface_ReaderLib.hxx>
|
||||
#include <LibCtl_Node.gxx>
|
||||
|
||||
|
@@ -12,60 +12,33 @@
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
|
||||
#include <Interface_Check.hxx>
|
||||
#include <Interface_Graph.hxx>
|
||||
#include <Interface_InterfaceError.hxx>
|
||||
#include <Interface_InterfaceModel.hxx>
|
||||
#include <Interface_Protocol.hxx>
|
||||
#include <Standard_Transient.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
|
||||
IMPLEMENT_STANDARD_RTTIEXT(Interface_Protocol,MMgt_TShared)
|
||||
|
||||
// Gestion du Protocol actif : tres simple, une variable statique
|
||||
static Handle(Interface_Protocol)& theactive()
|
||||
{
|
||||
static Handle(Interface_Protocol) theact;
|
||||
return theact;
|
||||
}
|
||||
|
||||
|
||||
//=======================================================================
|
||||
//function : Active
|
||||
//function : NbResources
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
Handle(Interface_Protocol) Interface_Protocol::Active ()
|
||||
Standard_Integer Interface_Protocol::NbResources() const
|
||||
{
|
||||
return theactive();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
//=======================================================================
|
||||
//function : SetActive
|
||||
//function : Resource
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
void Interface_Protocol::SetActive(const Handle(Interface_Protocol)& aprotocol)
|
||||
Handle(Interface_Protocol) Interface_Protocol::Resource (const Standard_Integer) const
|
||||
{
|
||||
theactive() = aprotocol;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
//=======================================================================
|
||||
//function : ClearActive
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
void Interface_Protocol::ClearActive ()
|
||||
{
|
||||
theactive().Nullify();
|
||||
}
|
||||
|
||||
|
||||
// === Typage (formules fournies par defaut)
|
||||
|
||||
|
||||
//=======================================================================
|
||||
//function : CaseNumber
|
||||
//purpose :
|
||||
|
@@ -44,26 +44,13 @@ DEFINE_STANDARD_HANDLE(Interface_Protocol, MMgt_TShared)
|
||||
//! like multi-typing, may involve another way
|
||||
class Interface_Protocol : public MMgt_TShared
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
|
||||
//! Returns the Active Protocol, if defined (else, returns a
|
||||
//! Null Handle, which means "no defined active protocol")
|
||||
Standard_EXPORT static Handle(Interface_Protocol) Active();
|
||||
|
||||
//! Sets a given Protocol to be the Active one (for the users of
|
||||
//! Active, see just above). Applies to every sub-type of Protocol
|
||||
Standard_EXPORT static void SetActive (const Handle(Interface_Protocol)& aprotocol);
|
||||
|
||||
//! Erases the Active Protocol (hence it becomes undefined)
|
||||
Standard_EXPORT static void ClearActive();
|
||||
|
||||
//! Returns count of Protocol used as Resources (level one)
|
||||
Standard_EXPORT virtual Standard_Integer NbResources() const = 0;
|
||||
Standard_EXPORT virtual Standard_Integer NbResources() const;
|
||||
|
||||
//! Returns a Resource, given its rank (between 1 and NbResources)
|
||||
Standard_EXPORT virtual Handle(Interface_Protocol) Resource (const Standard_Integer num) const = 0;
|
||||
Standard_EXPORT virtual Handle(Interface_Protocol) Resource (const Standard_Integer num) const;
|
||||
|
||||
//! Returns a unique positive CaseNumber for each Recognized
|
||||
//! Object. By default, recognition is based on Type(1)
|
||||
@@ -114,27 +101,7 @@ public:
|
||||
//! (for an Entity out of the Norm, answer can be unpredicable)
|
||||
Standard_EXPORT virtual Standard_Boolean IsUnknownEntity (const Handle(Standard_Transient)& ent) const = 0;
|
||||
|
||||
|
||||
|
||||
|
||||
DEFINE_STANDARD_RTTIEXT(Interface_Protocol,MMgt_TShared)
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _Interface_Protocol_HeaderFile
|
||||
|
@@ -25,7 +25,6 @@
|
||||
#include <Standard_Integer.hxx>
|
||||
class Interface_NodeOfReaderLib;
|
||||
class Standard_NoSuchObject;
|
||||
class Standard_Transient;
|
||||
class Interface_ReaderModule;
|
||||
class Interface_Protocol;
|
||||
class Interface_GlobalNodeOfReaderLib;
|
||||
@@ -56,17 +55,13 @@ public:
|
||||
//! Adds a couple (Module-Protocol) to the Library, given the
|
||||
//! class of a Protocol. Takes Resources into account.
|
||||
//! (if <aprotocol> is not of type TheProtocol, it is not added)
|
||||
Standard_EXPORT void AddProtocol (const Handle(Standard_Transient)& aprotocol);
|
||||
Standard_EXPORT void AddProtocol (const Handle(Interface_Protocol)& aprotocol);
|
||||
|
||||
//! Clears the list of Modules of a library (can be used to
|
||||
//! redefine the order of Modules before action : Clear then
|
||||
//! refill the Library by calls to AddProtocol)
|
||||
Standard_EXPORT void Clear();
|
||||
|
||||
//! Sets a library to be defined with the complete Global list
|
||||
//! (all the couples Protocol/Modules recorded in it)
|
||||
Standard_EXPORT void SetComplete();
|
||||
|
||||
//! Selects a Module from the Library, given an Object.
|
||||
//! Returns True if Select has succeeded, False else.
|
||||
//! Also Returns (as arguments) the selected Module and the Case
|
||||
|
@@ -20,7 +20,6 @@
|
||||
#include <Standard_NoSuchObject.hxx>
|
||||
#include <Standard_Transient.hxx>
|
||||
#include <Interface_ReaderModule.hxx>
|
||||
#include <Interface_Protocol.hxx>
|
||||
#include <Interface_GlobalNodeOfReaderLib.hxx>
|
||||
|
||||
|
||||
@@ -29,9 +28,6 @@
|
||||
#define Handle_TheModule Handle(Interface_ReaderModule)
|
||||
#define TheModule Interface_ReaderModule
|
||||
#define TheModule_hxx <Interface_ReaderModule.hxx>
|
||||
#define Handle_TheProtocol Handle(Interface_Protocol)
|
||||
#define TheProtocol Interface_Protocol
|
||||
#define TheProtocol_hxx <Interface_Protocol.hxx>
|
||||
#define LibCtl_GlobalNode Interface_GlobalNodeOfReaderLib
|
||||
#define LibCtl_GlobalNode_hxx <Interface_GlobalNodeOfReaderLib.hxx>
|
||||
#define LibCtl_Node Interface_NodeOfReaderLib
|
||||
@@ -41,4 +37,3 @@
|
||||
#define LibCtl_Library Interface_ReaderLib
|
||||
#define LibCtl_Library_hxx <Interface_ReaderLib.hxx>
|
||||
#include <LibCtl_Library.gxx>
|
||||
|
||||
|
@@ -12,12 +12,7 @@
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
|
||||
#include <Interface_Check.hxx>
|
||||
#include <Interface_FileReaderData.hxx>
|
||||
#include <Interface_ReaderModule.hxx>
|
||||
#include <Standard_DomainError.hxx>
|
||||
#include <Standard_Transient.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
|
||||
IMPLEMENT_STANDARD_RTTIEXT(Interface_ReaderModule,MMgt_TShared)
|
||||
|
||||
|
@@ -21,12 +21,8 @@
|
||||
#include <Standard_Type.hxx>
|
||||
|
||||
#include <MMgt_TShared.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
class Standard_DomainError;
|
||||
class Interface_FileReaderData;
|
||||
class Interface_Check;
|
||||
class Standard_Transient;
|
||||
|
||||
|
||||
class Interface_ReaderModule;
|
||||
@@ -43,10 +39,8 @@ DEFINE_STANDARD_HANDLE(Interface_ReaderModule, MMgt_TShared)
|
||||
//! ReaderModule reads it according to this Case Number
|
||||
class Interface_ReaderModule : public MMgt_TShared
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
|
||||
//! Translates the type of record <num> in <data> to a positive
|
||||
//! Case Number. If Recognition fails, must return 0
|
||||
Standard_EXPORT virtual Standard_Integer CaseNum (const Handle(Interface_FileReaderData)& data, const Standard_Integer num) const = 0;
|
||||
@@ -69,27 +63,7 @@ public:
|
||||
//! treated as "Unrecognized case" by reader tool.
|
||||
Standard_EXPORT virtual Standard_Boolean NewRead (const Standard_Integer casenum, const Handle(Interface_FileReaderData)& data, const Standard_Integer num, Handle(Interface_Check)& ach, Handle(Standard_Transient)& ent) const;
|
||||
|
||||
|
||||
|
||||
|
||||
DEFINE_STANDARD_RTTIEXT(Interface_ReaderModule,MMgt_TShared)
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _Interface_ReaderModule_HeaderFile
|
||||
|
@@ -59,7 +59,7 @@ Interface_ShareFlags::Interface_ShareFlags
|
||||
(const Handle(Interface_InterfaceModel)& amodel)
|
||||
: theflags (amodel->NbEntities())
|
||||
{
|
||||
Handle(Interface_GTool) gtool = themodel->GTool();
|
||||
const Handle(Interface_GTool) >ool = themodel->GTool();
|
||||
gtool->Reservate(amodel->NbEntities());
|
||||
themodel = amodel;
|
||||
Evaluate (gtool->Lib(),gtool);
|
||||
|
@@ -16,7 +16,6 @@
|
||||
#include <Interface_GeneralLib.hxx>
|
||||
#include <Interface_GeneralModule.hxx>
|
||||
#include <Interface_Graph.hxx>
|
||||
#include <Interface_GTool.hxx>
|
||||
#include <Interface_HGraph.hxx>
|
||||
#include <Interface_InterfaceError.hxx>
|
||||
#include <Interface_InterfaceModel.hxx>
|
||||
|
@@ -12,19 +12,18 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
//#include <LibCtl_GlobalNode.ixx>
|
||||
|
||||
// Classe generique imbriquee dans Library : utilisee pour construire les
|
||||
// listes globales de Modules attaches a une classe instanciee de Library
|
||||
// (cf Library pour plus de details)
|
||||
|
||||
#include <Interface_Protocol.hxx>
|
||||
|
||||
LibCtl_GlobalNode::LibCtl_GlobalNode () { }
|
||||
|
||||
// ATTENTION, Add agit en substitution : pour un Protocol donne, c est le
|
||||
// dernier appel qui l emporte
|
||||
void LibCtl_GlobalNode::Add
|
||||
(const Handle(TheModule)& amodule, const Handle(TheProtocol)& aprotocol)
|
||||
(const Handle(TheModule)& amodule, const Handle(Interface_Protocol)& aprotocol)
|
||||
{
|
||||
if (themod == amodule) return;
|
||||
if (theprot == aprotocol) themod = amodule;
|
||||
@@ -41,7 +40,7 @@ LibCtl_GlobalNode::LibCtl_GlobalNode () { }
|
||||
const Handle(TheModule)& LibCtl_GlobalNode::Module () const
|
||||
{ return themod; }
|
||||
|
||||
const Handle(TheProtocol)& LibCtl_GlobalNode::Protocol () const
|
||||
const Handle(Interface_Protocol)& LibCtl_GlobalNode::Protocol () const
|
||||
{ return theprot; }
|
||||
|
||||
const Handle(LibCtl_GlobalNode)& LibCtl_GlobalNode::Next () const
|
||||
|
@@ -12,7 +12,7 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
//#include <LibCtl_Library.ixx>
|
||||
#include <Interface_Protocol.hxx>
|
||||
#include <Standard_NoSuchObject.hxx>
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ static Handle(LibCtl_GlobalNode) theglobal;
|
||||
|
||||
// Donnees pour optimisation (dernier Protocole demande)
|
||||
|
||||
static Handle(TheProtocol) theprotocol;
|
||||
static Handle(Interface_Protocol) theprotocol;
|
||||
static Handle(LibCtl_Node) thelast;
|
||||
|
||||
|
||||
@@ -30,14 +30,14 @@ static Handle(LibCtl_Node) thelast;
|
||||
// ATTENTION : SetGlobal fait de la substitution, c-a-d que c est le dernier
|
||||
// qui a raison pour un Protocol donne
|
||||
void LibCtl_Library::SetGlobal
|
||||
(const Handle(TheModule)& amodule, const Handle(TheProtocol)& aprotocol)
|
||||
(const Handle(TheModule)& amodule, const Handle(Interface_Protocol)& aprotocol)
|
||||
{
|
||||
if (theglobal.IsNull()) theglobal = new LibCtl_GlobalNode;
|
||||
theglobal->Add(amodule,aprotocol);
|
||||
}
|
||||
|
||||
// Constructeur d apres Protocole
|
||||
LibCtl_Library::LibCtl_Library (const Handle(TheProtocol)& aprotocol)
|
||||
LibCtl_Library::LibCtl_Library (const Handle(Interface_Protocol)& aprotocol)
|
||||
{
|
||||
Standard_Boolean last = Standard_False;
|
||||
if (aprotocol.IsNull()) return; // PAS de protocole = Lib VIDE
|
||||
@@ -60,17 +60,14 @@ static Handle(LibCtl_Node) thelast;
|
||||
|
||||
// Ajout d un Protocol : attention, desoptimise (sinon risque de confusion !)
|
||||
void LibCtl_Library::AddProtocol
|
||||
(const Handle(Standard_Transient)& aprotocol)
|
||||
(const Handle(Interface_Protocol)& aprotocol)
|
||||
{
|
||||
// DownCast car Protocol->Resources, meme redefini et utilise dans d autres
|
||||
// librairies, doit toujours renvoyer le type le plus haut
|
||||
Handle(TheProtocol) aproto = Handle(TheProtocol)::DownCast(aprotocol);
|
||||
if (aproto.IsNull()) return;
|
||||
if (aprotocol.IsNull()) return;
|
||||
|
||||
// D abord, ajouter celui-ci a la liste : chercher le Node
|
||||
Handle(LibCtl_GlobalNode) curr;
|
||||
for (curr = theglobal; !curr.IsNull(); ) { // curr->Next : plus loin
|
||||
const Handle(TheProtocol)& protocol = curr->Protocol();
|
||||
const Handle(Interface_Protocol)& protocol = curr->Protocol();
|
||||
if (!protocol.IsNull()) {
|
||||
// Match Protocol ?
|
||||
if (protocol->DynamicType() == aprotocol->DynamicType()) {
|
||||
@@ -82,9 +79,9 @@ static Handle(LibCtl_Node) thelast;
|
||||
curr = curr->Next(); // cette formule est refusee dans "for"
|
||||
}
|
||||
// Ensuite, Traiter les ressources
|
||||
Standard_Integer nb = aproto->NbResources();
|
||||
Standard_Integer nb = aprotocol->NbResources();
|
||||
for (Standard_Integer i = 1; i <= nb; i ++) {
|
||||
AddProtocol (aproto->Resource(i));
|
||||
AddProtocol (aprotocol->Resource(i));
|
||||
}
|
||||
// Ne pas oublier de desoptimiser
|
||||
theprotocol.Nullify();
|
||||
@@ -94,20 +91,6 @@ static Handle(LibCtl_Node) thelast;
|
||||
void LibCtl_Library::Clear ()
|
||||
{ thelist = new LibCtl_Node; }
|
||||
|
||||
void LibCtl_Library::SetComplete ()
|
||||
{
|
||||
thelist = new LibCtl_Node;
|
||||
// On prend chacun des Protocoles de la Liste Globale et on l ajoute
|
||||
Handle(LibCtl_GlobalNode) curr;
|
||||
for (curr = theglobal; !curr.IsNull(); ) { // curr->Next : plus loin
|
||||
const Handle(TheProtocol)& protocol = curr->Protocol();
|
||||
// Comme on prend tout tout tout, on ne se preoccupe pas des Ressources !
|
||||
if (!protocol.IsNull()) thelist->AddNode(curr);
|
||||
curr = curr->Next(); // cette formule est refusee dans "for"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Selection : Tres fort, on retourne le Module correspondant a un Type
|
||||
// (ainsi que le CaseNumber retourne par le protocole correspondant)
|
||||
|
||||
@@ -119,7 +102,7 @@ static Handle(LibCtl_Node) thelast;
|
||||
if (thelist.IsNull()) return Standard_False;
|
||||
Handle(LibCtl_Node) curr = thelist;
|
||||
for (curr = thelist; !curr.IsNull(); ) { // curr->Next : plus loin
|
||||
const Handle(TheProtocol)& protocol = curr->Protocol();
|
||||
const Handle(Interface_Protocol)& protocol = curr->Protocol();
|
||||
if (!protocol.IsNull()) {
|
||||
CN = protocol->CaseNumber(obj);
|
||||
if (CN > 0) {
|
||||
@@ -150,7 +133,7 @@ static Handle(LibCtl_Node) thelast;
|
||||
return thecurr->Module();
|
||||
}
|
||||
|
||||
const Handle(TheProtocol)& LibCtl_Library::Protocol () const
|
||||
const Handle(Interface_Protocol)& LibCtl_Library::Protocol () const
|
||||
{
|
||||
if (thecurr.IsNull()) Standard_NoSuchObject::Raise("Library from LibCtl");
|
||||
return thecurr->Protocol();
|
||||
|
@@ -12,9 +12,6 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
//#include <LibCtl_Node.ixx>
|
||||
|
||||
|
||||
// Classe generique imbriquee dans Library : utilisee pour construire la
|
||||
// listes de Modules d une librairie (cf Library pour plus de details)
|
||||
// (En fait : Liste de Global Nodes -> Module + Protocol)
|
||||
@@ -38,7 +35,7 @@ LibCtl_Node::LibCtl_Node () { }
|
||||
const Handle(TheModule)& LibCtl_Node::Module () const
|
||||
{ return thenode->Module(); }
|
||||
|
||||
const Handle(TheProtocol)& LibCtl_Node::Protocol () const
|
||||
const Handle(Interface_Protocol)& LibCtl_Node::Protocol () const
|
||||
{ return thenode->Protocol(); }
|
||||
|
||||
const Handle(LibCtl_Node)& LibCtl_Node::Next () const
|
||||
|
@@ -15,14 +15,13 @@
|
||||
#include <RWHeaderSection.hxx>
|
||||
#include <RWHeaderSection_GeneralModule.hxx>
|
||||
#include <RWHeaderSection_ReadWriteModule.hxx>
|
||||
#include <StepData.hxx>
|
||||
#include <HeaderSection.hxx>
|
||||
|
||||
static Handle(RWHeaderSection_ReadWriteModule) rwm;
|
||||
static Handle(RWHeaderSection_GeneralModule) rwg;
|
||||
|
||||
void RWHeaderSection::Init()
|
||||
{
|
||||
const Handle(StepData_Protocol) &hp = StepData::HeaderProtocol();
|
||||
if (rwm.IsNull()) rwm = new RWHeaderSection_ReadWriteModule;
|
||||
if (rwg.IsNull()) rwg = new RWHeaderSection_GeneralModule;
|
||||
}
|
||||
|
@@ -12,6 +12,7 @@
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
|
||||
#include <HeaderSection.hxx>
|
||||
#include <HeaderSection_FileDescription.hxx>
|
||||
#include <HeaderSection_FileName.hxx>
|
||||
#include <HeaderSection_FileSchema.hxx>
|
||||
@@ -44,7 +45,7 @@ static TCollection_AsciiString Reco_FileSchema ("FILE_SCHEMA");
|
||||
|
||||
RWHeaderSection_ReadWriteModule::RWHeaderSection_ReadWriteModule ()
|
||||
{
|
||||
Handle(HeaderSection_Protocol) protocol = new HeaderSection_Protocol;
|
||||
const Handle(HeaderSection_Protocol) &protocol = HeaderSection::Protocol();
|
||||
StepData_WriterLib::SetGlobal(this,protocol);
|
||||
Interface_ReaderLib::SetGlobal(this,protocol);
|
||||
}
|
||||
|
@@ -26,7 +26,6 @@
|
||||
#include <StepAP214_Protocol.hxx>
|
||||
#include <StepData_StepReaderData.hxx>
|
||||
#include <StepData_StepWriter.hxx>
|
||||
#include <StepData_WriterLib.hxx>
|
||||
#include <TCollection_AsciiString.hxx>
|
||||
|
||||
IMPLEMENT_STANDARD_RTTIEXT(RWStepAP214_ReadWriteModule,StepData_ReadWriteModule)
|
||||
@@ -2041,9 +2040,6 @@ static Handle(Dico_DictionaryOfInteger) typeshor;
|
||||
|
||||
RWStepAP214_ReadWriteModule::RWStepAP214_ReadWriteModule ()
|
||||
{
|
||||
// Handle(StepAP214_Protocol) protocol = new StepAP214_Protocol;
|
||||
// StepData_WriterLib::SetGlobal(Handle(RWStepAP214_ReadWriteModule)::DownCast(This()),protocol);
|
||||
// Interface_ReaderLib::SetGlobal(Handle(RWStepAP214_ReadWriteModule)::DownCast(This()),protocol);
|
||||
if (!typenums.IsNull()) return;
|
||||
typenums = new Dico_DictionaryOfInteger;
|
||||
typenums->SetItem (Reco_CartesianPoint, 59);
|
||||
|
@@ -27,10 +27,6 @@
|
||||
|
||||
IMPLEMENT_STANDARD_RTTIEXT(STEPSelections_SelectDerived,StepSelect_StepType)
|
||||
|
||||
STEPSelections_SelectDerived::STEPSelections_SelectDerived():StepSelect_StepType()
|
||||
{
|
||||
}
|
||||
|
||||
static Handle(Standard_Type) GetStepType(const Handle(StepData_ReadWriteModule)& module,
|
||||
const TCollection_AsciiString& type)
|
||||
{
|
||||
|
@@ -17,15 +17,7 @@
|
||||
#ifndef _STEPSelections_SelectDerived_HeaderFile
|
||||
#define _STEPSelections_SelectDerived_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
|
||||
#include <StepSelect_StepType.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
class Standard_Transient;
|
||||
class Interface_InterfaceModel;
|
||||
class TCollection_AsciiString;
|
||||
|
||||
|
||||
class STEPSelections_SelectDerived;
|
||||
DEFINE_STANDARD_HANDLE(STEPSelections_SelectDerived, StepSelect_StepType)
|
||||
@@ -33,35 +25,13 @@ DEFINE_STANDARD_HANDLE(STEPSelections_SelectDerived, StepSelect_StepType)
|
||||
|
||||
class STEPSelections_SelectDerived : public StepSelect_StepType
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
|
||||
Standard_EXPORT STEPSelections_SelectDerived();
|
||||
STEPSelections_SelectDerived() {}
|
||||
|
||||
Standard_EXPORT virtual Standard_Boolean Matches (const Handle(Standard_Transient)& ent, const Handle(Interface_InterfaceModel)& model, const TCollection_AsciiString& text, const Standard_Boolean exact) const Standard_OVERRIDE;
|
||||
|
||||
|
||||
|
||||
|
||||
DEFINE_STANDARD_RTTIEXT(STEPSelections_SelectDerived,StepSelect_StepType)
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _STEPSelections_SelectDerived_HeaderFile
|
||||
|
@@ -131,11 +131,6 @@ Standard_Boolean ShapeAnalysis_Geom::NearestPlane(const TColgp_Array1OfPnt& Pnts
|
||||
for (Standard_Integer j = 1; j <= 4; j ++)
|
||||
gtrsf.SetValue (i,j, coefs->Value(i,j));
|
||||
|
||||
//try { //szv#4:S4163:12Mar99 waste try
|
||||
//// trsf = gtrsf.Trsf();
|
||||
// --- Prec et Unit ont ete lues suite aux StepFile_Read
|
||||
// Valables pour tous les composants d un assemblage transmis
|
||||
//trsf = gp_Trsf(); // Identite forcee au depart //szv#4:S4163:12Mar99 not needed
|
||||
// On prend le contenu de <gtrsf>. Attention a l adressage
|
||||
gp_XYZ v1 ( gtrsf.Value(1,1), gtrsf.Value(2,1), gtrsf.Value(3,1) );
|
||||
gp_XYZ v2 ( gtrsf.Value(1,2), gtrsf.Value(2,2), gtrsf.Value(3,2) );
|
||||
@@ -148,15 +143,12 @@ Standard_Boolean ShapeAnalysis_Geom::NearestPlane(const TColgp_Array1OfPnt& Pnts
|
||||
// D abord est-elle singuliere cette matrice ?
|
||||
if (m1 < prec || m2 < prec || m3 < prec) return Standard_False;
|
||||
Standard_Real mm = (m1+m2+m3)/3.; // voici la Norme moyenne, cf Scale
|
||||
//szv#4:S4163:12Mar99 optimized
|
||||
Standard_Real pmm = prec*mm;
|
||||
if ( Abs(m1 - mm) > pmm || Abs(m2 - mm) > pmm || Abs(m3 - mm) > pmm )
|
||||
return Standard_False;
|
||||
//szv#4:S4163:12Mar99 warning
|
||||
v1.Divide(m1);
|
||||
v2.Divide(m2);
|
||||
v3.Divide(m3);
|
||||
//szv#4:S4163:12Mar99 optimized
|
||||
if ( Abs(v1.Dot(v2)) > prec || Abs(v2.Dot(v3)) > prec || Abs(v3.Dot(v1)) > prec )
|
||||
return Standard_False;
|
||||
|
||||
@@ -180,11 +172,6 @@ Standard_Boolean ShapeAnalysis_Geom::NearestPlane(const TColgp_Array1OfPnt& Pnts
|
||||
gp_Vec tp (gtrsf.TranslationPart());
|
||||
if (unit != 1.) tp.Multiply(unit);
|
||||
if (tp.X() != 0 || tp.Y() != 0 || tp.Z() != 0) trsf.SetTranslationPart(tp);
|
||||
/* }
|
||||
catch(Standard_Failure) {
|
||||
trsf = gp_Trsf();
|
||||
result = Standard_False;
|
||||
} */
|
||||
|
||||
return result;
|
||||
}
|
||||
|
@@ -1,14 +1,8 @@
|
||||
StepData.cxx
|
||||
StepData.hxx
|
||||
StepData_Array1OfField.hxx
|
||||
StepData_DefaultGeneral.cxx
|
||||
StepData_DefaultGeneral.hxx
|
||||
StepData_DescrGeneral.cxx
|
||||
StepData_DescrGeneral.hxx
|
||||
StepData_Described.cxx
|
||||
StepData_Described.hxx
|
||||
StepData_DescrReadWrite.cxx
|
||||
StepData_DescrReadWrite.hxx
|
||||
StepData_ECDescr.cxx
|
||||
StepData_ECDescr.hxx
|
||||
StepData_EDescr.cxx
|
||||
@@ -27,8 +21,6 @@ StepData_FieldListD.cxx
|
||||
StepData_FieldListD.hxx
|
||||
StepData_FieldListN.cxx
|
||||
StepData_FieldListN.hxx
|
||||
StepData_FileRecognizer.hxx
|
||||
StepData_FileRecognizer_0.cxx
|
||||
StepData_FreeFormEntity.cxx
|
||||
StepData_FreeFormEntity.hxx
|
||||
StepData_GeneralModule.cxx
|
||||
|
@@ -11,31 +11,11 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
// abv 09.04.99 S4136: eliminate parameter step.readaccept.void
|
||||
// svv #2 23.02.00: porting on SIL
|
||||
|
||||
#include <StepData.hxx>
|
||||
#include <Interface_Macros.hxx>
|
||||
#include <HeaderSection.hxx>
|
||||
#include <HeaderSection_Protocol.hxx>
|
||||
#include <StepData_Protocol.hxx>
|
||||
|
||||
//szv_c1:StaticHandle(StepData_Protocol,proto);
|
||||
static Handle(StepData_Protocol) proto;
|
||||
|
||||
//szv_c1:StaticHandleA(StepData_Protocol,theheader);
|
||||
static Handle(StepData_Protocol) theheader;
|
||||
|
||||
const Handle(StepData_Protocol) & StepData::Protocol ()
|
||||
{
|
||||
//szv_c1:InitHandleVoid(StepData_Protocol,proto);// svv #2
|
||||
if (proto.IsNull()) proto = new StepData_Protocol;
|
||||
return proto;
|
||||
}
|
||||
|
||||
const Handle(StepData_Protocol) & StepData::HeaderProtocol ()
|
||||
{
|
||||
/*szv_c1:UseHandle(StepData_Protocol,theheader);
|
||||
return theheader;*/
|
||||
return HeaderSection::Protocol();
|
||||
}
|
||||
|
@@ -28,9 +28,6 @@ class StepData
|
||||
{
|
||||
public:
|
||||
|
||||
//! Returns a Protocol from StepData
|
||||
Standard_EXPORT static const Handle(StepData_Protocol) & Protocol();
|
||||
|
||||
//! Returns the recorded HeaderProtocol, which can be :
|
||||
//! - a Null Handle if no Header Protocol was yet defined
|
||||
//! - a simple Protocol if only one was defined
|
||||
|
@@ -1,82 +0,0 @@
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
|
||||
#include <Interface_Check.hxx>
|
||||
#include <Interface_CopyTool.hxx>
|
||||
#include <Interface_EntityIterator.hxx>
|
||||
#include <Interface_GeneralLib.hxx>
|
||||
#include <Interface_Macros.hxx>
|
||||
#include <Interface_ParamType.hxx>
|
||||
#include <Interface_ShareTool.hxx>
|
||||
#include <Interface_UndefinedContent.hxx>
|
||||
#include <Standard_Transient.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
#include <StepData.hxx>
|
||||
#include <StepData_DefaultGeneral.hxx>
|
||||
#include <StepData_Protocol.hxx>
|
||||
#include <StepData_UndefinedEntity.hxx>
|
||||
|
||||
IMPLEMENT_STANDARD_RTTIEXT(StepData_DefaultGeneral,StepData_GeneralModule)
|
||||
|
||||
// DefaultGeneral de StepData reconnait UN SEUL TYPE : UndefinedEntity
|
||||
StepData_DefaultGeneral::StepData_DefaultGeneral ()
|
||||
{
|
||||
Interface_GeneralLib::SetGlobal (this, StepData::Protocol());
|
||||
}
|
||||
|
||||
void StepData_DefaultGeneral::FillSharedCase
|
||||
(const Standard_Integer casenum, const Handle(Standard_Transient)& ent,
|
||||
Interface_EntityIterator& iter) const
|
||||
{
|
||||
if (casenum != 1) return;
|
||||
DeclareAndCast(StepData_UndefinedEntity,undf,ent);
|
||||
Handle(Interface_UndefinedContent) cont = undf->UndefinedContent();
|
||||
Standard_Integer nb = cont->NbParams();
|
||||
for (Standard_Integer i = 1; i <= nb; i ++) {
|
||||
Interface_ParamType ptype = cont->ParamType(i);
|
||||
if (ptype == Interface_ParamSub) {
|
||||
DeclareAndCast(StepData_UndefinedEntity,subent,cont->ParamEntity(i));
|
||||
FillSharedCase(casenum,cont->ParamEntity(i),iter);
|
||||
} else if (ptype == Interface_ParamIdent) {
|
||||
iter.GetOneItem(cont->ParamEntity(i));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void StepData_DefaultGeneral::CheckCase(const Standard_Integer,
|
||||
const Handle(Standard_Transient)&,
|
||||
const Interface_ShareTool&,
|
||||
Handle(Interface_Check)&) const
|
||||
{
|
||||
} // pas de Check sur une UndefinedEntity
|
||||
|
||||
|
||||
Standard_Boolean StepData_DefaultGeneral::NewVoid
|
||||
(const Standard_Integer CN, Handle(Standard_Transient)& ent) const
|
||||
{
|
||||
if (CN != 1) return Standard_False;
|
||||
ent = new StepData_UndefinedEntity;
|
||||
return Standard_True;
|
||||
}
|
||||
|
||||
void StepData_DefaultGeneral::CopyCase
|
||||
(const Standard_Integer casenum, const Handle(Standard_Transient)& entfrom,
|
||||
const Handle(Standard_Transient)& entto, Interface_CopyTool& TC) const
|
||||
{
|
||||
if (casenum != 1) return;
|
||||
DeclareAndCast(StepData_UndefinedEntity,undfrom,entfrom);
|
||||
DeclareAndCast(StepData_UndefinedEntity,undto,entto);
|
||||
undto->GetFromAnother(undfrom,TC); // On pourrait rapatrier cela
|
||||
}
|
@@ -1,85 +0,0 @@
|
||||
// Created on: 1993-03-26
|
||||
// Created by: Christian CAILLET
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _StepData_DefaultGeneral_HeaderFile
|
||||
#define _StepData_DefaultGeneral_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
|
||||
#include <StepData_GeneralModule.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
class Standard_Transient;
|
||||
class Interface_EntityIterator;
|
||||
class Interface_ShareTool;
|
||||
class Interface_Check;
|
||||
class Interface_CopyTool;
|
||||
|
||||
|
||||
class StepData_DefaultGeneral;
|
||||
DEFINE_STANDARD_HANDLE(StepData_DefaultGeneral, StepData_GeneralModule)
|
||||
|
||||
//! DefaultGeneral defines a GeneralModule which processes
|
||||
//! Unknown Entity from StepData only
|
||||
class StepData_DefaultGeneral : public StepData_GeneralModule
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
|
||||
//! Creates a Default General Module
|
||||
Standard_EXPORT StepData_DefaultGeneral();
|
||||
|
||||
//! Specific filling of the list of Entities shared by an Entity
|
||||
//! <ent>, which is an UnknownEntity from StepData.
|
||||
Standard_EXPORT void FillSharedCase (const Standard_Integer casenum, const Handle(Standard_Transient)& ent, Interface_EntityIterator& iter) const Standard_OVERRIDE;
|
||||
|
||||
//! Specific Checking of an Entity <ent>
|
||||
Standard_EXPORT void CheckCase (const Standard_Integer casenum, const Handle(Standard_Transient)& ent, const Interface_ShareTool& shares, Handle(Interface_Check)& ach) const Standard_OVERRIDE;
|
||||
|
||||
//! Specific creation of a new void entity
|
||||
Standard_EXPORT Standard_Boolean NewVoid (const Standard_Integer CN, Handle(Standard_Transient)& entto) const Standard_OVERRIDE;
|
||||
|
||||
//! Specific Copy ("Deep") from <entfrom> to <entto> (same type)
|
||||
//! by using a CopyTool which provides its working Map.
|
||||
//! Use method Transferred from TransferControl to work
|
||||
Standard_EXPORT void CopyCase (const Standard_Integer casenum, const Handle(Standard_Transient)& entfrom, const Handle(Standard_Transient)& entto, Interface_CopyTool& TC) const Standard_OVERRIDE;
|
||||
|
||||
|
||||
|
||||
|
||||
DEFINE_STANDARD_RTTIEXT(StepData_DefaultGeneral,StepData_GeneralModule)
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _StepData_DefaultGeneral_HeaderFile
|
@@ -1,62 +0,0 @@
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
|
||||
#include <Interface_Check.hxx>
|
||||
#include <Interface_CopyTool.hxx>
|
||||
#include <Interface_EntityIterator.hxx>
|
||||
#include <Interface_ShareTool.hxx>
|
||||
#include <Standard_Transient.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
#include <StepData_DescrGeneral.hxx>
|
||||
#include <StepData_Described.hxx>
|
||||
#include <StepData_EDescr.hxx>
|
||||
#include <StepData_Protocol.hxx>
|
||||
|
||||
IMPLEMENT_STANDARD_RTTIEXT(StepData_DescrGeneral,StepData_GeneralModule)
|
||||
|
||||
StepData_DescrGeneral::StepData_DescrGeneral
|
||||
(const Handle(StepData_Protocol)& proto)
|
||||
: theproto (proto) { }
|
||||
|
||||
|
||||
void StepData_DescrGeneral::FillSharedCase
|
||||
(const Standard_Integer, const Handle(Standard_Transient)& ent,
|
||||
Interface_EntityIterator& iter) const
|
||||
{
|
||||
Handle(StepData_Described) ds = Handle(StepData_Described)::DownCast(ent);
|
||||
if (!ds.IsNull()) ds->Shared (iter);
|
||||
}
|
||||
|
||||
|
||||
void StepData_DescrGeneral::CheckCase(const Standard_Integer ,
|
||||
const Handle(Standard_Transient)&,
|
||||
const Interface_ShareTool&,
|
||||
Handle(Interface_Check)&) const
|
||||
{
|
||||
} // pour l instant
|
||||
|
||||
|
||||
void StepData_DescrGeneral::CopyCase(const Standard_Integer,
|
||||
const Handle(Standard_Transient)&,
|
||||
const Handle(Standard_Transient)&,
|
||||
Interface_CopyTool&) const
|
||||
{
|
||||
} // pour l instant
|
||||
|
||||
Standard_Boolean StepData_DescrGeneral::NewVoid
|
||||
(const Standard_Integer CN, Handle(Standard_Transient)& ent) const
|
||||
{
|
||||
ent = theproto->Descr(CN)->NewEntity();
|
||||
return (!ent.IsNull());
|
||||
}
|
@@ -1,78 +0,0 @@
|
||||
// Created on: 1997-05-21
|
||||
// Created by: Christian CAILLET
|
||||
// Copyright (c) 1997-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _StepData_DescrGeneral_HeaderFile
|
||||
#define _StepData_DescrGeneral_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
|
||||
#include <StepData_GeneralModule.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
class StepData_Protocol;
|
||||
class Standard_Transient;
|
||||
class Interface_EntityIterator;
|
||||
class Interface_ShareTool;
|
||||
class Interface_Check;
|
||||
class Interface_CopyTool;
|
||||
|
||||
|
||||
class StepData_DescrGeneral;
|
||||
DEFINE_STANDARD_HANDLE(StepData_DescrGeneral, StepData_GeneralModule)
|
||||
|
||||
//! Works with a Protocol by considering its entity descriptions
|
||||
class StepData_DescrGeneral : public StepData_GeneralModule
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
|
||||
Standard_EXPORT StepData_DescrGeneral(const Handle(StepData_Protocol)& proto);
|
||||
|
||||
Standard_EXPORT void FillSharedCase (const Standard_Integer CN, const Handle(Standard_Transient)& ent, Interface_EntityIterator& iter) const Standard_OVERRIDE;
|
||||
|
||||
Standard_EXPORT void CheckCase (const Standard_Integer CN, const Handle(Standard_Transient)& ent, const Interface_ShareTool& shares, Handle(Interface_Check)& ach) const Standard_OVERRIDE;
|
||||
|
||||
Standard_EXPORT void CopyCase (const Standard_Integer CN, const Handle(Standard_Transient)& entfrom, const Handle(Standard_Transient)& entto, Interface_CopyTool& TC) const Standard_OVERRIDE;
|
||||
|
||||
Standard_EXPORT Standard_Boolean NewVoid (const Standard_Integer CN, Handle(Standard_Transient)& ent) const Standard_OVERRIDE;
|
||||
|
||||
|
||||
|
||||
|
||||
DEFINE_STANDARD_RTTIEXT(StepData_DescrGeneral,StepData_GeneralModule)
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
Handle(StepData_Protocol) theproto;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _StepData_DescrGeneral_HeaderFile
|
@@ -1,143 +0,0 @@
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
|
||||
#include <Interface_Check.hxx>
|
||||
#include <Interface_Macros.hxx>
|
||||
#include <Standard_Transient.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
#include <StepData_DescrReadWrite.hxx>
|
||||
#include <StepData_ECDescr.hxx>
|
||||
#include <StepData_EDescr.hxx>
|
||||
#include <StepData_ESDescr.hxx>
|
||||
#include <StepData_FieldListN.hxx>
|
||||
#include <StepData_Plex.hxx>
|
||||
#include <StepData_Protocol.hxx>
|
||||
#include <StepData_Simple.hxx>
|
||||
#include <StepData_StepReaderData.hxx>
|
||||
#include <StepData_StepWriter.hxx>
|
||||
#include <TCollection_AsciiString.hxx>
|
||||
#include <TColStd_HSequenceOfAsciiString.hxx>
|
||||
|
||||
IMPLEMENT_STANDARD_RTTIEXT(StepData_DescrReadWrite,StepData_ReadWriteModule)
|
||||
|
||||
static TCollection_AsciiString nocp("?");
|
||||
|
||||
|
||||
StepData_DescrReadWrite::StepData_DescrReadWrite
|
||||
(const Handle(StepData_Protocol)& proto)
|
||||
: theproto (proto) { }
|
||||
|
||||
Standard_Integer StepData_DescrReadWrite::CaseStep
|
||||
(const TCollection_AsciiString& atype) const
|
||||
{
|
||||
Handle(StepData_ESDescr) descr = theproto->ESDescr (atype.ToCString(),Standard_False);
|
||||
if (descr.IsNull()) return 0;
|
||||
return theproto->DescrNumber (descr);
|
||||
}
|
||||
|
||||
Standard_Integer StepData_DescrReadWrite::CaseStep
|
||||
(const TColStd_SequenceOfAsciiString& types) const
|
||||
{
|
||||
Handle(StepData_ECDescr) descr = theproto->ECDescr (types,Standard_False);
|
||||
if (descr.IsNull()) return 0;
|
||||
return theproto->DescrNumber (descr);
|
||||
}
|
||||
|
||||
|
||||
Standard_Boolean StepData_DescrReadWrite::IsComplex
|
||||
(const Standard_Integer CN) const
|
||||
{
|
||||
Handle(StepData_EDescr) descr = theproto->Descr (CN);
|
||||
if (descr.IsNull()) return Standard_False;
|
||||
return descr->IsComplex();
|
||||
}
|
||||
|
||||
const TCollection_AsciiString& StepData_DescrReadWrite::StepType
|
||||
(const Standard_Integer CN) const
|
||||
{
|
||||
Handle(StepData_ESDescr) descr = Handle(StepData_ESDescr)::DownCast
|
||||
(theproto->Descr (CN));
|
||||
if (descr.IsNull()) return nocp;
|
||||
return descr->StepType();
|
||||
}
|
||||
|
||||
Standard_Boolean StepData_DescrReadWrite::ComplexType
|
||||
(const Standard_Integer CN, TColStd_SequenceOfAsciiString& types) const
|
||||
{
|
||||
Handle(StepData_ECDescr) descr = Handle(StepData_ECDescr)::DownCast
|
||||
(theproto->Descr (CN));
|
||||
if (descr.IsNull()) return Standard_False;
|
||||
Handle(TColStd_HSequenceOfAsciiString) list = descr->TypeList();
|
||||
if (list.IsNull()) return Standard_False;
|
||||
Standard_Integer i, nb = list->Length();
|
||||
for (i = 1; i <= nb; i ++) types.Append (list->Value(i));
|
||||
return Standard_True;
|
||||
}
|
||||
|
||||
|
||||
void StepData_DescrReadWrite::ReadStep(const Standard_Integer CN,
|
||||
const Handle(StepData_StepReaderData)& data,
|
||||
const Standard_Integer num,
|
||||
Handle(Interface_Check)& ach,
|
||||
const Handle(Standard_Transient)&ent) const
|
||||
{
|
||||
if (CN == 0) return;
|
||||
DeclareAndCast(StepData_Simple,sent,ent);
|
||||
if (!sent.IsNull()) {
|
||||
Handle(StepData_ESDescr) sdescr = sent->ESDescr();
|
||||
StepData_FieldListN& fl = sent->CFields();
|
||||
data->ReadList (num,ach,sdescr,fl);
|
||||
return;
|
||||
}
|
||||
|
||||
DeclareAndCast(StepData_Plex,cent,ent);
|
||||
Standard_Integer i, nb=0;
|
||||
if (!cent.IsNull()) nb = cent->NbMembers();
|
||||
Standard_Integer n0 = num;
|
||||
for (i = 1; i <= nb; i ++) {
|
||||
Handle(StepData_Simple) si = cent->Member(i);
|
||||
Handle(StepData_ESDescr) sdescr = si->ESDescr();
|
||||
StepData_FieldListN& fl = si->CFields();
|
||||
data->ReadList (n0,ach,sdescr,fl);
|
||||
if (i < nb) n0 = data->NextForComplex(n0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void StepData_DescrReadWrite::WriteStep
|
||||
(const Standard_Integer CN,
|
||||
StepData_StepWriter& SW,
|
||||
const Handle(Standard_Transient)&ent) const
|
||||
{
|
||||
if (CN == 0) return;
|
||||
|
||||
DeclareAndCast(StepData_Simple,sent,ent);
|
||||
if (!sent.IsNull()) {
|
||||
Handle(StepData_ESDescr) sdescr = sent->ESDescr();
|
||||
const StepData_FieldListN& fl = sent->Fields();
|
||||
SW.SendList (fl,sdescr);
|
||||
return;
|
||||
}
|
||||
|
||||
DeclareAndCast(StepData_Plex,cent,ent);
|
||||
Standard_Integer i, nb=0;
|
||||
if (!cent.IsNull()) nb = cent->NbMembers();
|
||||
for (i = 1; i <= nb; i ++) {
|
||||
Handle(StepData_Simple) si = cent->Member(i);
|
||||
Handle(StepData_ESDescr) sdescr = si->ESDescr();
|
||||
const StepData_FieldListN& fl = si->Fields();
|
||||
SW.StartEntity (sdescr->TypeName());
|
||||
SW.SendList (fl,sdescr);
|
||||
}
|
||||
}
|
@@ -1,85 +0,0 @@
|
||||
// Created on: 1997-05-21
|
||||
// Created by: Christian CAILLET
|
||||
// Copyright (c) 1997-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _StepData_DescrReadWrite_HeaderFile
|
||||
#define _StepData_DescrReadWrite_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
|
||||
#include <StepData_ReadWriteModule.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <TColStd_SequenceOfAsciiString.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
class StepData_Protocol;
|
||||
class TCollection_AsciiString;
|
||||
class StepData_StepReaderData;
|
||||
class Interface_Check;
|
||||
class Standard_Transient;
|
||||
class StepData_StepWriter;
|
||||
|
||||
|
||||
class StepData_DescrReadWrite;
|
||||
DEFINE_STANDARD_HANDLE(StepData_DescrReadWrite, StepData_ReadWriteModule)
|
||||
|
||||
|
||||
class StepData_DescrReadWrite : public StepData_ReadWriteModule
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
|
||||
Standard_EXPORT StepData_DescrReadWrite(const Handle(StepData_Protocol)& proto);
|
||||
|
||||
Standard_EXPORT Standard_Integer CaseStep (const TCollection_AsciiString& atype) const Standard_OVERRIDE;
|
||||
|
||||
Standard_EXPORT virtual Standard_Integer CaseStep (const TColStd_SequenceOfAsciiString& types) const Standard_OVERRIDE;
|
||||
|
||||
Standard_EXPORT virtual Standard_Boolean IsComplex (const Standard_Integer CN) const Standard_OVERRIDE;
|
||||
|
||||
Standard_EXPORT const TCollection_AsciiString& StepType (const Standard_Integer CN) const Standard_OVERRIDE;
|
||||
|
||||
Standard_EXPORT virtual Standard_Boolean ComplexType (const Standard_Integer CN, TColStd_SequenceOfAsciiString& types) const Standard_OVERRIDE;
|
||||
|
||||
Standard_EXPORT void ReadStep (const Standard_Integer CN, const Handle(StepData_StepReaderData)& data, const Standard_Integer num, Handle(Interface_Check)& ach, const Handle(Standard_Transient)& ent) const Standard_OVERRIDE;
|
||||
|
||||
Standard_EXPORT void WriteStep (const Standard_Integer CN, StepData_StepWriter& SW, const Handle(Standard_Transient)& ent) const Standard_OVERRIDE;
|
||||
|
||||
|
||||
|
||||
|
||||
DEFINE_STANDARD_RTTIEXT(StepData_DescrReadWrite,StepData_ReadWriteModule)
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
Handle(StepData_Protocol) theproto;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _StepData_DescrReadWrite_HeaderFile
|
@@ -1,100 +0,0 @@
|
||||
// Created on: 1992-02-11
|
||||
// Created by: Christian CAILLET
|
||||
// Copyright (c) 1992-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _StepData_FileRecognizer_HeaderFile
|
||||
#define _StepData_FileRecognizer_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Transient.hxx>
|
||||
class Standard_Transient;
|
||||
class Standard_NoSuchObject;
|
||||
class TCollection_AsciiString;
|
||||
|
||||
|
||||
class StepData_FileRecognizer;
|
||||
DEFINE_STANDARD_HANDLE(StepData_FileRecognizer, Standard_Transient)
|
||||
|
||||
|
||||
class StepData_FileRecognizer : public Standard_Transient
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
|
||||
//! Evaluates if recognition has a result, returns it if yes
|
||||
//! In case of success, Returns True and puts result in "res"
|
||||
//! In case of Failure, simply Returns False
|
||||
//! Works by calling deferred method Eval, and in case of failure,
|
||||
//! looks for Added Recognizers to work
|
||||
Standard_EXPORT Standard_Boolean Evaluate (const TCollection_AsciiString& akey, Handle(Standard_Transient)& res);
|
||||
|
||||
//! Returns result of last recognition (call of Evaluate)
|
||||
Standard_EXPORT Handle(Standard_Transient) Result() const;
|
||||
|
||||
//! Adds a new Recognizer to the Compound, at the end
|
||||
//! Several calls to Add work by adding in the order of calls :
|
||||
//! Hence, when Eval has failed to recognize, Evaluate will call
|
||||
//! Evaluate from the first added Recognizer if there is one,
|
||||
//! and to the second if there is still no result, and so on
|
||||
Standard_EXPORT void Add (const Handle(StepData_FileRecognizer)& reco);
|
||||
|
||||
|
||||
|
||||
|
||||
DEFINE_STANDARD_RTTI_INLINE(StepData_FileRecognizer,Standard_Transient)
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
//! Assumes that no result has yet been recognized
|
||||
Standard_EXPORT StepData_FileRecognizer();
|
||||
|
||||
//! Records the result of the recognition. Called by specific
|
||||
//! method Eval to record a result : after calling it, Eval has
|
||||
//! finished and can return
|
||||
Standard_EXPORT void SetOK (const Handle(Standard_Transient)& aresult);
|
||||
|
||||
//! Records that recognition gives no result
|
||||
Standard_EXPORT void SetKO();
|
||||
|
||||
//! THIS METHOD DEFINES THE RECOGNITION PROTOCOL, it is proper to
|
||||
//! each precise type of Recognizer
|
||||
//! For a suitable type of akey, it calls SetOK(result) where
|
||||
//! result is an empty result of appropriate type, then returns
|
||||
Standard_EXPORT virtual void Eval (const TCollection_AsciiString& akey) = 0;
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
Handle(Standard_Transient) theres;
|
||||
Standard_Boolean hasnext;
|
||||
Handle(StepData_FileRecognizer) thenext;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _StepData_FileRecognizer_HeaderFile
|
@@ -1,44 +0,0 @@
|
||||
// Created on: 1992-02-11
|
||||
// Created by: Christian CAILLET
|
||||
// Copyright (c) 1992-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <StepData_FileRecognizer.hxx>
|
||||
|
||||
#include <Standard_Type.hxx>
|
||||
|
||||
#include <Standard_Transient.hxx>
|
||||
#include <StepData_FileRecognizer.hxx>
|
||||
#include <Standard_NoSuchObject.hxx>
|
||||
#include <TCollection_AsciiString.hxx>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#define TheKey TCollection_AsciiString
|
||||
#define TheKey_hxx <TCollection_AsciiString.hxx>
|
||||
#define Handle_TheResul Handle(Standard_Transient)
|
||||
#define TheResul Standard_Transient
|
||||
#define TheResul_hxx <Standard_Transient.hxx>
|
||||
#define Interface_Recognizer StepData_FileRecognizer
|
||||
#define Interface_Recognizer_hxx <StepData_FileRecognizer.hxx>
|
||||
#define Handle_Interface_Recognizer Handle(StepData_FileRecognizer)
|
||||
#include <Interface_Recognizer.gxx>
|
||||
|
@@ -12,12 +12,6 @@
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
|
||||
#include <Interface_Check.hxx>
|
||||
#include <Interface_CopyTool.hxx>
|
||||
#include <Interface_EntityIterator.hxx>
|
||||
#include <Interface_ShareTool.hxx>
|
||||
#include <Standard_Transient.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
#include <StepData_GeneralModule.hxx>
|
||||
|
||||
IMPLEMENT_STANDARD_RTTIEXT(StepData_GeneralModule,Interface_GeneralModule)
|
@@ -35,10 +35,8 @@ DEFINE_STANDARD_HANDLE(StepData_GeneralModule, Interface_GeneralModule)
|
||||
//! Specific features for General Services adapted to STEP
|
||||
class StepData_GeneralModule : public Interface_GeneralModule
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
|
||||
//! Specific filling of the list of Entities shared by an Entity
|
||||
//! <ent>. Can use the internal utility method Share, below
|
||||
Standard_EXPORT virtual void FillSharedCase (const Standard_Integer casenum, const Handle(Standard_Transient)& ent, Interface_EntityIterator& iter) const Standard_OVERRIDE = 0;
|
||||
@@ -46,36 +44,7 @@ public:
|
||||
//! Specific Checking of an Entity <ent>
|
||||
Standard_EXPORT virtual void CheckCase (const Standard_Integer casenum, const Handle(Standard_Transient)& ent, const Interface_ShareTool& shares, Handle(Interface_Check)& ach) const Standard_OVERRIDE = 0;
|
||||
|
||||
//! Specific Copy ("Deep") from <entfrom> to <entto> (same type)
|
||||
//! by using a TransferControl which provides its working Map.
|
||||
//! Use method Transferred from TransferControl to work
|
||||
//! Specific Copying of Implied References
|
||||
//! A Default is provided which does nothing (must current case !)
|
||||
//! Already copied references (by CopyFrom) must remain unchanged
|
||||
//! Use method Search from TransferControl to work
|
||||
Standard_EXPORT virtual void CopyCase (const Standard_Integer casenum, const Handle(Standard_Transient)& entfrom, const Handle(Standard_Transient)& entto, Interface_CopyTool& TC) const Standard_OVERRIDE = 0;
|
||||
|
||||
|
||||
|
||||
|
||||
DEFINE_STANDARD_RTTIEXT(StepData_GeneralModule,Interface_GeneralModule)
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _StepData_GeneralModule_HeaderFile
|
||||
|
@@ -22,7 +22,7 @@
|
||||
|
||||
#include <Standard_Transient.hxx>
|
||||
class StepData_ReadWriteModule;
|
||||
class StepData_Protocol;
|
||||
class Interface_Protocol;
|
||||
class Standard_Transient;
|
||||
class StepData_WriterLib;
|
||||
class StepData_NodeOfWriterLib;
|
||||
@@ -45,13 +45,13 @@ public:
|
||||
//! nothing if already in the list, THAT IS, Same Type (exact
|
||||
//! match) and Same State (that is, IsEqual is not required)
|
||||
//! Once added, stores its attached Protocol in correspondance
|
||||
Standard_EXPORT void Add (const Handle(StepData_ReadWriteModule)& amodule, const Handle(StepData_Protocol)& aprotocol);
|
||||
Standard_EXPORT void Add (const Handle(StepData_ReadWriteModule)& amodule, const Handle(Interface_Protocol)& aprotocol);
|
||||
|
||||
//! Returns the Module stored in a given GlobalNode
|
||||
Standard_EXPORT const Handle(StepData_ReadWriteModule)& Module() const;
|
||||
|
||||
//! Returns the attached Protocol stored in a given GlobalNode
|
||||
Standard_EXPORT const Handle(StepData_Protocol)& Protocol() const;
|
||||
Standard_EXPORT const Handle(Interface_Protocol)& Protocol() const;
|
||||
|
||||
//! Returns the Next GlobalNode. If none is defined, returned
|
||||
//! value is a Null Handle
|
||||
@@ -71,7 +71,7 @@ private:
|
||||
|
||||
|
||||
Handle(StepData_ReadWriteModule) themod;
|
||||
Handle(StepData_Protocol) theprot;
|
||||
Handle(Interface_Protocol) theprot;
|
||||
Handle(StepData_GlobalNodeOfWriterLib) thenext;
|
||||
|
||||
|
||||
|
@@ -19,29 +19,16 @@
|
||||
#include <Standard_Type.hxx>
|
||||
|
||||
#include <StepData_ReadWriteModule.hxx>
|
||||
#include <StepData_Protocol.hxx>
|
||||
#include <StepData_GlobalNodeOfWriterLib.hxx>
|
||||
#include <Standard_Transient.hxx>
|
||||
#include <StepData_WriterLib.hxx>
|
||||
#include <StepData_NodeOfWriterLib.hxx>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#define TheObject Handle(Standard_Transient)
|
||||
#define TheObject_hxx <Standard_Transient.hxx>
|
||||
#define Handle_TheModule Handle(StepData_ReadWriteModule)
|
||||
#define TheModule StepData_ReadWriteModule
|
||||
#define TheModule_hxx <StepData_ReadWriteModule.hxx>
|
||||
#define Handle_TheProtocol Handle(StepData_Protocol)
|
||||
#define TheProtocol StepData_Protocol
|
||||
#define TheProtocol_hxx <StepData_Protocol.hxx>
|
||||
#define LibCtl_GlobalNode StepData_GlobalNodeOfWriterLib
|
||||
#define LibCtl_GlobalNode_hxx <StepData_GlobalNodeOfWriterLib.hxx>
|
||||
#define LibCtl_Node StepData_NodeOfWriterLib
|
||||
@@ -51,4 +38,3 @@
|
||||
#define LibCtl_Library StepData_WriterLib
|
||||
#define LibCtl_Library_hxx <StepData_WriterLib.hxx>
|
||||
#include <LibCtl_GlobalNode.gxx>
|
||||
|
||||
|
@@ -24,7 +24,7 @@
|
||||
class StepData_GlobalNodeOfWriterLib;
|
||||
class Standard_Transient;
|
||||
class StepData_ReadWriteModule;
|
||||
class StepData_Protocol;
|
||||
class Interface_Protocol;
|
||||
class StepData_WriterLib;
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ public:
|
||||
Standard_EXPORT const Handle(StepData_ReadWriteModule)& Module() const;
|
||||
|
||||
//! Returns the Protocol designated by a precise Node
|
||||
Standard_EXPORT const Handle(StepData_Protocol)& Protocol() const;
|
||||
Standard_EXPORT const Handle(Interface_Protocol)& Protocol() const;
|
||||
|
||||
//! Returns the Next Node. If none was defined, returned value
|
||||
//! is a Null Handle
|
||||
|
@@ -18,30 +18,18 @@
|
||||
|
||||
#include <Standard_Type.hxx>
|
||||
|
||||
#include <Interface_Protocol.hxx>
|
||||
#include <StepData_GlobalNodeOfWriterLib.hxx>
|
||||
#include <StepData_NodeOfWriterLib.hxx>
|
||||
#include <Standard_Transient.hxx>
|
||||
#include <StepData_ReadWriteModule.hxx>
|
||||
#include <StepData_Protocol.hxx>
|
||||
#include <StepData_WriterLib.hxx>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#define TheObject Handle(Standard_Transient)
|
||||
#define TheObject_hxx <Standard_Transient.hxx>
|
||||
#define Handle_TheModule Handle(StepData_ReadWriteModule)
|
||||
#define TheModule StepData_ReadWriteModule
|
||||
#define TheModule_hxx <StepData_ReadWriteModule.hxx>
|
||||
#define Handle_TheProtocol Handle(StepData_Protocol)
|
||||
#define TheProtocol StepData_Protocol
|
||||
#define TheProtocol_hxx <StepData_Protocol.hxx>
|
||||
#define LibCtl_GlobalNode StepData_GlobalNodeOfWriterLib
|
||||
#define LibCtl_GlobalNode_hxx <StepData_GlobalNodeOfWriterLib.hxx>
|
||||
#define LibCtl_Node StepData_NodeOfWriterLib
|
||||
|
@@ -34,24 +34,6 @@ IMPLEMENT_STANDARD_RTTIEXT(StepData_Protocol,Interface_Protocol)
|
||||
//static TCollection_AsciiString thename("(DEFAULT)");
|
||||
static Standard_CString thename = "(DEFAULT)";
|
||||
|
||||
StepData_Protocol::StepData_Protocol ()
|
||||
{
|
||||
}
|
||||
|
||||
Standard_Integer StepData_Protocol::NbResources () const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Handle(Interface_Protocol) StepData_Protocol::Resource
|
||||
(const Standard_Integer /*num*/) const
|
||||
{
|
||||
Handle(Interface_Protocol) nulproto;
|
||||
return nulproto;
|
||||
}
|
||||
|
||||
|
||||
Standard_Integer StepData_Protocol::CaseNumber
|
||||
(const Handle(Standard_Transient)& obj) const
|
||||
{
|
||||
|
@@ -47,18 +47,9 @@ DEFINE_STANDARD_HANDLE(StepData_Protocol, Interface_Protocol)
|
||||
//! NbResources and Resources.
|
||||
class StepData_Protocol : public Interface_Protocol
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
|
||||
Standard_EXPORT StepData_Protocol();
|
||||
|
||||
//! Gives the count of Protocols used as Resource (can be zero)
|
||||
//! Here, No resource
|
||||
Standard_EXPORT Standard_Integer NbResources() const Standard_OVERRIDE;
|
||||
|
||||
//! Returns a Resource, given a rank. Here, none
|
||||
Standard_EXPORT Handle(Interface_Protocol) Resource (const Standard_Integer num) const Standard_OVERRIDE;
|
||||
StepData_Protocol() {}
|
||||
|
||||
//! Returns a unique positive number for any recognized entity
|
||||
//! Redefined to work by calling both TypeNumber and, for a
|
||||
|
@@ -41,25 +41,6 @@ Handle(Standard_Transient) StepData_StepModel::Entity
|
||||
(const Standard_Integer num) const
|
||||
{ return Value(num); } // nom plus joli
|
||||
|
||||
void StepData_StepModel::GetFromAnother
|
||||
(const Handle(Interface_InterfaceModel)& other)
|
||||
{
|
||||
theheader.Clear();
|
||||
DeclareAndCast(StepData_StepModel,another,other);
|
||||
if (another.IsNull()) return;
|
||||
Interface_EntityIterator iter = another->Header();
|
||||
// recopier le header. Attention, header distinct du contenu ...
|
||||
Interface_CopyTool TC (this,StepData::HeaderProtocol());
|
||||
for (; iter.More(); iter.Next()) {
|
||||
Handle(Standard_Transient) newhead;
|
||||
if (!TC.Copy(iter.Value(),newhead,Standard_False,Standard_False)) continue;
|
||||
if (!newhead.IsNull()) theheader.Append(newhead);
|
||||
}
|
||||
}
|
||||
|
||||
Handle(Interface_InterfaceModel) StepData_StepModel::NewEmptyModel () const
|
||||
{ return new StepData_StepModel; }
|
||||
|
||||
|
||||
Interface_EntityIterator StepData_StepModel::Header () const
|
||||
{
|
||||
|
@@ -54,12 +54,6 @@ public:
|
||||
//! Same as InterfaceEntity, but with a shorter name
|
||||
Standard_EXPORT Handle(Standard_Transient) Entity (const Standard_Integer num) const;
|
||||
|
||||
//! gets header from another Model (uses Header Protocol)
|
||||
Standard_EXPORT void GetFromAnother (const Handle(Interface_InterfaceModel)& other) Standard_OVERRIDE;
|
||||
|
||||
//! Returns a New Empty Model, same type as <me>, i.e. StepModel
|
||||
Standard_EXPORT Handle(Interface_InterfaceModel) NewEmptyModel() const Standard_OVERRIDE;
|
||||
|
||||
//! returns Header entities under the form of an iterator
|
||||
Standard_EXPORT Interface_EntityIterator Header() const;
|
||||
|
||||
|
@@ -19,8 +19,6 @@
|
||||
#include <Message_Messenger.hxx>
|
||||
#include <Standard_ErrorHandler.hxx>
|
||||
#include <Standard_Failure.hxx>
|
||||
#include <Standard_Transient.hxx>
|
||||
#include <StepData_FileRecognizer.hxx>
|
||||
#include <StepData_Protocol.hxx>
|
||||
#include <StepData_ReadWriteModule.hxx>
|
||||
#include <StepData_StepModel.hxx>
|
||||
@@ -42,29 +40,6 @@ StepData_StepReaderTool::StepData_StepReaderTool
|
||||
}
|
||||
|
||||
|
||||
//=======================================================================
|
||||
//function : Recognize
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
Standard_Boolean StepData_StepReaderTool::Recognize(const Standard_Integer num,
|
||||
Handle(Interface_Check)& ach,
|
||||
Handle(Standard_Transient)& ent)
|
||||
{
|
||||
// Handle(Standard_Transient) bid; // pas exploite
|
||||
// return thereco->Evaluate(thetypes.Value(num),bid);
|
||||
|
||||
// Recognizer : C est lui qui assure la Reconnaissance (-> Liste limitative)
|
||||
if (!thereco.IsNull()) {
|
||||
DeclareAndCast(StepData_StepReaderData,stepdat,Data());
|
||||
return thereco->Evaluate(stepdat->RecordType(num),ent);
|
||||
}
|
||||
|
||||
// Pas de Recognizer : Reconnaissance par la librairie
|
||||
return RecognizeByLib (num,theglib,therlib,ach,ent);
|
||||
}
|
||||
|
||||
|
||||
// .... Methodes de preparations propres a StepReaderTool ....
|
||||
|
||||
|
||||
@@ -73,42 +48,22 @@ Standard_Boolean StepData_StepReaderTool::Recognize(const Standard_Integer num,
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
void StepData_StepReaderTool::Prepare
|
||||
(const Handle(StepData_FileRecognizer)& reco, const Standard_Boolean optim)
|
||||
{
|
||||
thereco = reco;
|
||||
Prepare(optim);
|
||||
}
|
||||
|
||||
|
||||
//=======================================================================
|
||||
//function : Prepare
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
void StepData_StepReaderTool::Prepare (const Standard_Boolean optim)
|
||||
void StepData_StepReaderTool::Prepare ()
|
||||
{
|
||||
// SetEntityNumbers a ete mis du cote de ReaderData, because beaucoup acces
|
||||
Standard_Boolean erh = ErrorHandle();
|
||||
DeclareAndCast(StepData_StepReaderData,stepdat,Data());
|
||||
if (erh) {
|
||||
try {
|
||||
OCC_CATCH_SIGNALS
|
||||
stepdat->SetEntityNumbers(optim);
|
||||
stepdat->SetEntityNumbers(Standard_True);
|
||||
SetEntities();
|
||||
}
|
||||
catch(Standard_Failure) {
|
||||
Handle(Message_Messenger) sout = Message::DefaultMessenger();
|
||||
const Handle(Message_Messenger) &sout = Message::DefaultMessenger();
|
||||
sout << " Exception Raised during Preparation :\n";
|
||||
sout << Standard_Failure::Caught()->GetMessageString();
|
||||
sout << "\n Now, trying to continue, but with presomption of failure\n";
|
||||
}
|
||||
}
|
||||
else {
|
||||
stepdat->SetEntityNumbers(optim);
|
||||
SetEntities();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// .... Gestion du Header : Preparation, lecture .... //
|
||||
@@ -119,8 +74,7 @@ void StepData_StepReaderTool::Prepare (const Standard_Boolean optim)
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
void StepData_StepReaderTool::PrepareHeader
|
||||
(const Handle(StepData_FileRecognizer)& reco)
|
||||
void StepData_StepReaderTool::PrepareHeader ()
|
||||
{
|
||||
Standard_Integer i = 0;
|
||||
|
||||
@@ -128,16 +82,9 @@ void StepData_StepReaderTool::PrepareHeader
|
||||
DeclareAndCast(StepData_StepReaderData,stepdat,Data());
|
||||
while ( (i = stepdat->FindNextHeaderRecord(i)) != 0) {
|
||||
Handle(Standard_Transient) ent;
|
||||
// On a donne un Recognizer : il fixe une liste limitative de types reconnus
|
||||
if (!reco.IsNull()) {
|
||||
if (!reco->Evaluate(stepdat->RecordType(i),ent)) {
|
||||
ent = Protocol()->UnknownEntity();
|
||||
}
|
||||
} else {
|
||||
// Pas de Recognizer : Reconnaissance par la librairie
|
||||
// Reconnaissance par la librairie
|
||||
Handle(Interface_Check) ach = new Interface_Check; // faudrait le lister ... ?
|
||||
RecognizeByLib (i,theglib,therlib,ach,ent);
|
||||
}
|
||||
if (ent.IsNull()) ent = Protocol()->UnknownEntity();
|
||||
stepdat->BindEntity(i,ent);
|
||||
}
|
||||
@@ -148,6 +95,20 @@ void StepData_StepReaderTool::PrepareHeader
|
||||
}
|
||||
|
||||
|
||||
//=======================================================================
|
||||
//function : Recognize
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
Standard_Boolean StepData_StepReaderTool::Recognize(const Standard_Integer num,
|
||||
Handle(Interface_Check)& ach,
|
||||
Handle(Standard_Transient)& ent)
|
||||
{
|
||||
// Reconnaissance par la librairie
|
||||
return RecognizeByLib (num,theglib,therlib,ach,ent);
|
||||
}
|
||||
|
||||
|
||||
// .... Methodes pour la lecture du Modele (apres preparation) .... //
|
||||
|
||||
|
||||
@@ -156,8 +117,7 @@ void StepData_StepReaderTool::PrepareHeader
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
void StepData_StepReaderTool::BeginRead
|
||||
(const Handle(Interface_InterfaceModel)& amodel)
|
||||
void StepData_StepReaderTool::BeginRead (const Handle(Interface_InterfaceModel)& amodel)
|
||||
{
|
||||
Handle(Message_Messenger) sout = Message::DefaultMessenger();
|
||||
DeclareAndCast(StepData_StepModel,model,amodel);
|
||||
@@ -235,8 +195,7 @@ Standard_Boolean StepData_StepReaderTool::AnalyseRecord
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
void StepData_StepReaderTool::EndRead
|
||||
(const Handle(Interface_InterfaceModel)& amodel)
|
||||
void StepData_StepReaderTool::EndRead (const Handle(Interface_InterfaceModel)& amodel)
|
||||
{
|
||||
DeclareAndCast(StepData_StepReaderData,stepdat,Data());
|
||||
DeclareAndCast(StepData_StepModel,stepmodel,amodel);
|
||||
|
@@ -24,13 +24,9 @@
|
||||
#include <Interface_GeneralLib.hxx>
|
||||
#include <Interface_ReaderLib.hxx>
|
||||
#include <Interface_FileReaderTool.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
class StepData_FileRecognizer;
|
||||
class StepData_StepReaderData;
|
||||
class StepData_Protocol;
|
||||
class Interface_Check;
|
||||
class Standard_Transient;
|
||||
class Interface_InterfaceModel;
|
||||
|
||||
|
||||
@@ -44,41 +40,30 @@ public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
//! creates StepReaderTool to work with a StepReaderData according
|
||||
//! to a Step Protocol. Defines the ReaderLib at this time
|
||||
Standard_EXPORT StepData_StepReaderTool(const Handle(StepData_StepReaderData)& reader, const Handle(StepData_Protocol)& protocol);
|
||||
|
||||
//! Bounds empty entities to records, uses default Recognition
|
||||
//! provided by ReaderLib and ReaderModule. Also calls computation
|
||||
//! of references (SetEntityNumbers from StepReaderData)
|
||||
//! Bounds empty entities to records
|
||||
//! Works only on data entities (skips header)
|
||||
//! <optimize> given False allows to test some internal algorithms
|
||||
//! which are normally avoided (see also StepReaderData)
|
||||
Standard_EXPORT void Prepare (const Standard_Boolean optimize = Standard_True);
|
||||
Standard_EXPORT void Prepare ();
|
||||
|
||||
//! Bounds empty entities to records, works with a specific
|
||||
//! FileRecognizer, stored and later used in Recognize
|
||||
//! Works only on data entities (skips header)
|
||||
//! <optimize : same as above
|
||||
Standard_EXPORT void Prepare (const Handle(StepData_FileRecognizer)& reco, const Standard_Boolean optimize = Standard_True);
|
||||
//! Bounds empty entities and sub-lists to header records
|
||||
//! works like Prepare + SetEntityNumbers, but for header
|
||||
//! (N.B.: in Header, no Ident and no reference)
|
||||
Standard_EXPORT void PrepareHeader ();
|
||||
|
||||
private:
|
||||
|
||||
//! recognizes records, by asking either ReaderLib (default) or
|
||||
//! FileRecognizer (if defined) to do so. <ach> is to call
|
||||
//! RecognizeByLib
|
||||
Standard_EXPORT Standard_Boolean Recognize (const Standard_Integer num, Handle(Interface_Check)& ach, Handle(Standard_Transient)& ent) Standard_OVERRIDE;
|
||||
|
||||
//! bounds empty entities and sub-lists to header records
|
||||
//! works like Prepare + SetEntityNumbers, but for header
|
||||
//! (N.B.: in Header, no Ident and no reference)
|
||||
//! FileRecognizer is to specify Entities which are allowed to be
|
||||
//! defined in the Header (not every type can be)
|
||||
Standard_EXPORT void PrepareHeader (const Handle(StepData_FileRecognizer)& reco);
|
||||
Standard_EXPORT virtual Standard_Boolean Recognize (const Standard_Integer num, Handle(Interface_Check)& ach, Handle(Standard_Transient)& ent) Standard_OVERRIDE;
|
||||
|
||||
//! fills model's header; that is, gives to it Header entities
|
||||
//! and commands their loading. Also fills StepModel's Global
|
||||
//! Check from StepReaderData's GlobalCheck
|
||||
Standard_EXPORT void BeginRead (const Handle(Interface_InterfaceModel)& amodel) Standard_OVERRIDE;
|
||||
Standard_EXPORT virtual void BeginRead (const Handle(Interface_InterfaceModel)& amodel) Standard_OVERRIDE;
|
||||
|
||||
//! fills an entity, given record no; works by using a ReaderLib
|
||||
//! to load each entity, which must be a Transient
|
||||
@@ -89,30 +74,8 @@ public:
|
||||
//! Here, it binds in the model, Idents to Entities (for checks)
|
||||
Standard_EXPORT virtual void EndRead (const Handle(Interface_InterfaceModel)& amodel) Standard_OVERRIDE;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Handle(StepData_FileRecognizer) thereco;
|
||||
Interface_GeneralLib theglib;
|
||||
Interface_ReaderLib therlib;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _StepData_StepReaderTool_HeaderFile
|
||||
|
@@ -23,11 +23,9 @@
|
||||
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
class Interface_Protocol;
|
||||
class StepData_NodeOfWriterLib;
|
||||
class Standard_NoSuchObject;
|
||||
class Standard_Transient;
|
||||
class StepData_ReadWriteModule;
|
||||
class StepData_Protocol;
|
||||
class StepData_GlobalNodeOfWriterLib;
|
||||
|
||||
|
||||
@@ -38,16 +36,15 @@ public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
//! Adds a couple (Module-Protocol) into the global definition set
|
||||
//! for this class of Library.
|
||||
Standard_EXPORT static void SetGlobal (const Handle(StepData_ReadWriteModule)& amodule, const Handle(StepData_Protocol)& aprotocol);
|
||||
Standard_EXPORT static void SetGlobal (const Handle(StepData_ReadWriteModule)& amodule, const Handle(Interface_Protocol)& aprotocol);
|
||||
|
||||
//! Creates a Library which complies with a Protocol, that is :
|
||||
//! Same class (criterium IsInstance)
|
||||
//! This creation gets the Modules from the global set, those
|
||||
//! which are bound to the given Protocol and its Resources
|
||||
Standard_EXPORT StepData_WriterLib(const Handle(StepData_Protocol)& aprotocol);
|
||||
Standard_EXPORT StepData_WriterLib(const Handle(Interface_Protocol)& aprotocol);
|
||||
|
||||
//! Creates an empty Library : it will later by filled by method
|
||||
//! AddProtocol
|
||||
@@ -56,17 +53,13 @@ public:
|
||||
//! Adds a couple (Module-Protocol) to the Library, given the
|
||||
//! class of a Protocol. Takes Resources into account.
|
||||
//! (if <aprotocol> is not of type TheProtocol, it is not added)
|
||||
Standard_EXPORT void AddProtocol (const Handle(Standard_Transient)& aprotocol);
|
||||
Standard_EXPORT void AddProtocol (const Handle(Interface_Protocol)& aprotocol);
|
||||
|
||||
//! Clears the list of Modules of a library (can be used to
|
||||
//! redefine the order of Modules before action : Clear then
|
||||
//! refill the Library by calls to AddProtocol)
|
||||
Standard_EXPORT void Clear();
|
||||
|
||||
//! Sets a library to be defined with the complete Global list
|
||||
//! (all the couples Protocol/Modules recorded in it)
|
||||
Standard_EXPORT void SetComplete();
|
||||
|
||||
//! Selects a Module from the Library, given an Object.
|
||||
//! Returns True if Select has succeeded, False else.
|
||||
//! Also Returns (as arguments) the selected Module and the Case
|
||||
@@ -89,31 +82,12 @@ public:
|
||||
Standard_EXPORT const Handle(StepData_ReadWriteModule)& Module() const;
|
||||
|
||||
//! Returns the current Protocol in the Iteration
|
||||
Standard_EXPORT const Handle(StepData_Protocol)& Protocol() const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
Standard_EXPORT const Handle(Interface_Protocol)& Protocol() const;
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Handle(StepData_NodeOfWriterLib) thelist;
|
||||
Handle(StepData_NodeOfWriterLib) thecurr;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _StepData_WriterLib_HeaderFile
|
||||
|
@@ -20,7 +20,6 @@
|
||||
#include <Standard_NoSuchObject.hxx>
|
||||
#include <Standard_Transient.hxx>
|
||||
#include <StepData_ReadWriteModule.hxx>
|
||||
#include <StepData_Protocol.hxx>
|
||||
#include <StepData_GlobalNodeOfWriterLib.hxx>
|
||||
|
||||
|
||||
@@ -29,9 +28,6 @@
|
||||
#define Handle_TheModule Handle(StepData_ReadWriteModule)
|
||||
#define TheModule StepData_ReadWriteModule
|
||||
#define TheModule_hxx <StepData_ReadWriteModule.hxx>
|
||||
#define Handle_TheProtocol Handle(StepData_Protocol)
|
||||
#define TheProtocol StepData_Protocol
|
||||
#define TheProtocol_hxx <StepData_Protocol.hxx>
|
||||
#define LibCtl_GlobalNode StepData_GlobalNodeOfWriterLib
|
||||
#define LibCtl_GlobalNode_hxx <StepData_GlobalNodeOfWriterLib.hxx>
|
||||
#define LibCtl_Node StepData_NodeOfWriterLib
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user