mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-14 13:30:48 +03:00
Integration of OCCT 6.5.0 from SVN
This commit is contained in:
16
src/XmlTObjDrivers/FILES
Executable file
16
src/XmlTObjDrivers/FILES
Executable file
@@ -0,0 +1,16 @@
|
||||
XmlTObjDrivers.cxx
|
||||
XmlTObjDrivers.hxx
|
||||
XmlTObjDrivers_DocumentRetrievalDriver.cxx
|
||||
XmlTObjDrivers_DocumentRetrievalDriver.hxx
|
||||
XmlTObjDrivers_DocumentStorageDriver.cxx
|
||||
XmlTObjDrivers_DocumentStorageDriver.hxx
|
||||
XmlTObjDrivers_IntSparseArrayDriver.cxx
|
||||
XmlTObjDrivers_IntSparseArrayDriver.hxx
|
||||
XmlTObjDrivers_ModelDriver.cxx
|
||||
XmlTObjDrivers_ModelDriver.hxx
|
||||
XmlTObjDrivers_ObjectDriver.cxx
|
||||
XmlTObjDrivers_ObjectDriver.hxx
|
||||
XmlTObjDrivers_ReferenceDriver.cxx
|
||||
XmlTObjDrivers_ReferenceDriver.hxx
|
||||
XmlTObjDrivers_XYZDriver.cxx
|
||||
XmlTObjDrivers_XYZDriver.hxx
|
64
src/XmlTObjDrivers/XmlTObjDrivers.cxx
Executable file
64
src/XmlTObjDrivers/XmlTObjDrivers.cxx
Executable file
@@ -0,0 +1,64 @@
|
||||
// File: XmlTObjDrivers.cxx
|
||||
// Created: 24.11.04 11:10:33
|
||||
// Author: Michael SAZONOV
|
||||
// Copyright: Open CASCADE 2007
|
||||
// The original implementation Copyright: (C) RINA S.p.A
|
||||
|
||||
#include <XmlLDrivers.hxx>
|
||||
#include <XmlTObjDrivers.hxx>
|
||||
#include <XmlMDF_ADriverTable.hxx>
|
||||
#include <XmlTObjDrivers_DocumentStorageDriver.hxx>
|
||||
#include <XmlTObjDrivers_DocumentRetrievalDriver.hxx>
|
||||
#include <XmlTObjDrivers_ModelDriver.hxx>
|
||||
#include <XmlTObjDrivers_ObjectDriver.hxx>
|
||||
#include <XmlTObjDrivers_ReferenceDriver.hxx>
|
||||
#include <XmlTObjDrivers_XYZDriver.hxx>
|
||||
#include <XmlTObjDrivers_IntSparseArrayDriver.hxx>
|
||||
|
||||
#include <Plugin_Macro.hxx>
|
||||
|
||||
// avoid warnings on 'extern "C"' functions returning C++ classes
|
||||
#ifdef WNT
|
||||
#pragma warning(4:4190)
|
||||
#endif
|
||||
|
||||
static Standard_GUID XmlStorageDriver ("f78ff4a0-a779-11d5-aab4-0050044b1af1");
|
||||
static Standard_GUID XmlRetrievalDriver("f78ff4a1-a779-11d5-aab4-0050044b1af1");
|
||||
|
||||
Handle(Standard_Transient) XmlTObjDrivers::Factory(const Standard_GUID& aGUID)
|
||||
{
|
||||
if(aGUID == XmlStorageDriver)
|
||||
{
|
||||
cout << "XmlTObjDrivers : Storage Plugin" << endl;
|
||||
static Handle(XmlTObjDrivers_DocumentStorageDriver) model_sd
|
||||
= new XmlTObjDrivers_DocumentStorageDriver
|
||||
("Copyright: Open CASCADE 2004"); // default copyright
|
||||
return model_sd;
|
||||
}
|
||||
|
||||
if(aGUID == XmlRetrievalDriver)
|
||||
{
|
||||
cout << "XmlTObjDrivers : Retrieval Plugin" << endl;
|
||||
static Handle (XmlTObjDrivers_DocumentRetrievalDriver) model_rd
|
||||
= new XmlTObjDrivers_DocumentRetrievalDriver;
|
||||
return model_rd;
|
||||
}
|
||||
|
||||
return XmlLDrivers::Factory (aGUID);
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : AddDrivers
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void XmlTObjDrivers::AddDrivers (const Handle(XmlMDF_ADriverTable)& aDriverTable,
|
||||
const Handle(CDM_MessageDriver)& anMsgDrv)
|
||||
{
|
||||
aDriverTable -> AddDriver (new XmlTObjDrivers_ModelDriver (anMsgDrv));
|
||||
aDriverTable -> AddDriver (new XmlTObjDrivers_ObjectDriver (anMsgDrv));
|
||||
aDriverTable -> AddDriver (new XmlTObjDrivers_ReferenceDriver (anMsgDrv));
|
||||
aDriverTable -> AddDriver (new XmlTObjDrivers_XYZDriver (anMsgDrv));
|
||||
aDriverTable -> AddDriver (new XmlTObjDrivers_IntSparseArrayDriver(anMsgDrv));
|
||||
}
|
||||
|
||||
PLUGIN(XmlTObjDrivers)
|
38
src/XmlTObjDrivers/XmlTObjDrivers.hxx
Executable file
38
src/XmlTObjDrivers/XmlTObjDrivers.hxx
Executable file
@@ -0,0 +1,38 @@
|
||||
// File: XmlTObjDrivers.hxx
|
||||
// Created: 24.11.04 11:11:08
|
||||
// Author: Michael SAZONOV
|
||||
// Copyright: Open CASCADE 2007
|
||||
// The original implementation Copyright: (C) RINA S.p.A
|
||||
|
||||
#ifndef XmlTObjDrivers_HeaderFile
|
||||
#define XmlTObjDrivers_HeaderFile
|
||||
|
||||
#include <TObj_Common.hxx>
|
||||
#include <Standard_GUID.hxx>
|
||||
|
||||
class Handle(XmlMDF_ADriverTable);
|
||||
class Handle(CDM_MessageDriver);
|
||||
|
||||
// Class for registering storage/retrieval drivers for TObj XML persistence
|
||||
//
|
||||
|
||||
class XmlTObjDrivers
|
||||
{
|
||||
public:
|
||||
// ---------- PUBLIC METHODS ----------
|
||||
|
||||
Standard_EXPORT static Handle(Standard_Transient) Factory
|
||||
(const Standard_GUID& aGUID);
|
||||
// Returns a driver corresponding to <aGUID>. Used for plugin.
|
||||
|
||||
Standard_EXPORT static void AddDrivers
|
||||
(const Handle(XmlMDF_ADriverTable)& aDriverTable,
|
||||
const Handle(CDM_MessageDriver)& anMsgDrv);
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma once
|
||||
#endif
|
41
src/XmlTObjDrivers/XmlTObjDrivers_DocumentRetrievalDriver.cxx
Executable file
41
src/XmlTObjDrivers/XmlTObjDrivers_DocumentRetrievalDriver.cxx
Executable file
@@ -0,0 +1,41 @@
|
||||
// File: XmlTObjDrivers_DocumentRetrievalDriver.cxx
|
||||
// Created: 24.11.04 18:52:29
|
||||
// Author: Michael SAZONOV
|
||||
// Copyright: Open CASCADE 2007
|
||||
// The original implementation Copyright: (C) RINA S.p.A
|
||||
|
||||
#include <XmlTObjDrivers_DocumentRetrievalDriver.hxx>
|
||||
#include <XmlLDrivers.hxx>
|
||||
#include <XmlTObjDrivers.hxx>
|
||||
|
||||
IMPLEMENT_STANDARD_HANDLE (XmlTObjDrivers_DocumentRetrievalDriver,
|
||||
XmlLDrivers_DocumentRetrievalDriver)
|
||||
IMPLEMENT_STANDARD_RTTIEXT(XmlTObjDrivers_DocumentRetrievalDriver,
|
||||
XmlLDrivers_DocumentRetrievalDriver)
|
||||
|
||||
//=======================================================================
|
||||
//function : XmlTObjDrivers_DocumentRetrievalDriver
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
XmlTObjDrivers_DocumentRetrievalDriver::XmlTObjDrivers_DocumentRetrievalDriver()
|
||||
{
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : AttributeDrivers
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
Handle(XmlMDF_ADriverTable)
|
||||
XmlTObjDrivers_DocumentRetrievalDriver::AttributeDrivers
|
||||
(const Handle(CDM_MessageDriver)& theMsgDrv)
|
||||
{
|
||||
// Standard drivers
|
||||
Handle(XmlMDF_ADriverTable) aTable = XmlLDrivers::AttributeDrivers (theMsgDrv);
|
||||
|
||||
// Native drivers
|
||||
XmlTObjDrivers::AddDrivers(aTable, theMsgDrv);
|
||||
|
||||
return aTable;
|
||||
}
|
44
src/XmlTObjDrivers/XmlTObjDrivers_DocumentRetrievalDriver.hxx
Executable file
44
src/XmlTObjDrivers/XmlTObjDrivers_DocumentRetrievalDriver.hxx
Executable file
@@ -0,0 +1,44 @@
|
||||
// File: XmlTObjDrivers_DocumentRetrievalDriver.hxx
|
||||
// Created: 24.11.04 18:41:43
|
||||
// Author: Michael SAZONOV
|
||||
// Copyright: Open CASCADE 2007
|
||||
// The original implementation Copyright: (C) RINA S.p.A
|
||||
|
||||
#ifndef XmlTObjDrivers_DocumentRetrievalDriver_HeaderFile
|
||||
#define XmlTObjDrivers_DocumentRetrievalDriver_HeaderFile
|
||||
|
||||
#include <TObj_Common.hxx>
|
||||
#include <XmlLDrivers_DocumentRetrievalDriver.hxx>
|
||||
#include <Handle_XmlMDF_ADriverTable.hxx>
|
||||
|
||||
class Handle(CDM_MessageDriver);
|
||||
|
||||
// Retrieval driver of a TObj XML document
|
||||
//
|
||||
|
||||
class XmlTObjDrivers_DocumentRetrievalDriver :
|
||||
public XmlLDrivers_DocumentRetrievalDriver
|
||||
{
|
||||
public:
|
||||
// ---------- PUBLIC METHODS ----------
|
||||
|
||||
Standard_EXPORT XmlTObjDrivers_DocumentRetrievalDriver ();
|
||||
// Constructor
|
||||
|
||||
Standard_EXPORT virtual Handle(XmlMDF_ADriverTable) AttributeDrivers
|
||||
(const Handle(CDM_MessageDriver)& theMsgDriver);
|
||||
|
||||
public:
|
||||
// Declaration of CASCADE RTTI
|
||||
DEFINE_STANDARD_RTTI (XmlTObjDrivers_DocumentRetrievalDriver)
|
||||
};
|
||||
|
||||
// Definition of HANDLE object using Standard_DefineHandle.hxx
|
||||
DEFINE_STANDARD_HANDLE (XmlTObjDrivers_DocumentRetrievalDriver,
|
||||
XmlLDrivers_DocumentRetrievalDriver)
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma once
|
||||
#endif
|
43
src/XmlTObjDrivers/XmlTObjDrivers_DocumentStorageDriver.cxx
Executable file
43
src/XmlTObjDrivers/XmlTObjDrivers_DocumentStorageDriver.cxx
Executable file
@@ -0,0 +1,43 @@
|
||||
// File: XmlTObjDrivers_DocumentStorageDriver.cxx
|
||||
// Created: 24.11.04 19:00:21
|
||||
// Author: Michael SAZONOV
|
||||
// Copyright: Open CASCADE 2007
|
||||
// The original implementation Copyright: (C) RINA S.p.A
|
||||
|
||||
#include <XmlTObjDrivers_DocumentStorageDriver.hxx>
|
||||
#include <XmlLDrivers.hxx>
|
||||
#include <XmlTObjDrivers.hxx>
|
||||
|
||||
IMPLEMENT_STANDARD_HANDLE (XmlTObjDrivers_DocumentStorageDriver,
|
||||
XmlLDrivers_DocumentStorageDriver)
|
||||
IMPLEMENT_STANDARD_RTTIEXT(XmlTObjDrivers_DocumentStorageDriver,
|
||||
XmlLDrivers_DocumentStorageDriver)
|
||||
|
||||
//=======================================================================
|
||||
//function : XmlTObjDrivers_DocumentStorageDriver
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
XmlTObjDrivers_DocumentStorageDriver::XmlTObjDrivers_DocumentStorageDriver
|
||||
(const TCollection_ExtendedString& theCopyright)
|
||||
: XmlLDrivers_DocumentStorageDriver (theCopyright)
|
||||
{
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : AttributeDrivers
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
Handle(XmlMDF_ADriverTable)
|
||||
XmlTObjDrivers_DocumentStorageDriver::AttributeDrivers
|
||||
(const Handle(CDM_MessageDriver)& theMsgDrv)
|
||||
{
|
||||
// Standard drivers
|
||||
Handle(XmlMDF_ADriverTable) aTable = XmlLDrivers::AttributeDrivers (theMsgDrv);
|
||||
|
||||
// Native drivers
|
||||
XmlTObjDrivers::AddDrivers(aTable, theMsgDrv);
|
||||
|
||||
return aTable;
|
||||
}
|
45
src/XmlTObjDrivers/XmlTObjDrivers_DocumentStorageDriver.hxx
Executable file
45
src/XmlTObjDrivers/XmlTObjDrivers_DocumentStorageDriver.hxx
Executable file
@@ -0,0 +1,45 @@
|
||||
// File: XmlTObjDrivers_DocumentStorageDriver.hxx
|
||||
// Created: 24.11.04 18:56:20
|
||||
// Author: Michael SAZONOV
|
||||
// Copyright: Open CASCADE 2007
|
||||
// The original implementation Copyright: (C) RINA S.p.A
|
||||
|
||||
#ifndef XmlTObjDrivers_DocumentStorageDriver_HeaderFile
|
||||
#define XmlTObjDrivers_DocumentStorageDriver_HeaderFile
|
||||
|
||||
#include <TObj_Common.hxx>
|
||||
#include <XmlLDrivers_DocumentStorageDriver.hxx>
|
||||
#include <Handle_XmlMDF_ADriverTable.hxx>
|
||||
|
||||
class Handle(CDM_MessageDriver);
|
||||
|
||||
// Block of comments describing class XmlTObjDrivers_DocumentStorageDriver
|
||||
//
|
||||
|
||||
class XmlTObjDrivers_DocumentStorageDriver :
|
||||
public XmlLDrivers_DocumentStorageDriver
|
||||
{
|
||||
public:
|
||||
// ---------- PUBLIC METHODS ----------
|
||||
|
||||
Standard_EXPORT XmlTObjDrivers_DocumentStorageDriver
|
||||
(const TCollection_ExtendedString& theCopyright);
|
||||
// Constructor
|
||||
|
||||
Standard_EXPORT virtual Handle(XmlMDF_ADriverTable) AttributeDrivers
|
||||
(const Handle(CDM_MessageDriver)& theMsgDriver);
|
||||
|
||||
public:
|
||||
// Declaration of CASCADE RTTI
|
||||
DEFINE_STANDARD_RTTI (XmlTObjDrivers_DocumentStorageDriver)
|
||||
};
|
||||
|
||||
// Definition of HANDLE object using Standard_DefineHandle.hxx
|
||||
DEFINE_STANDARD_HANDLE (XmlTObjDrivers_DocumentStorageDriver,
|
||||
XmlLDrivers_DocumentStorageDriver)
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma once
|
||||
#endif
|
119
src/XmlTObjDrivers/XmlTObjDrivers_IntSparseArrayDriver.cxx
Executable file
119
src/XmlTObjDrivers/XmlTObjDrivers_IntSparseArrayDriver.cxx
Executable file
@@ -0,0 +1,119 @@
|
||||
// File : XmlTObjDrivers_IntSparseArrayDriver.cxx
|
||||
// Created : 30.03.2007
|
||||
// Author : Michael SAZONOV
|
||||
// Copyright: Open CASCADE 2007
|
||||
// The original implementation Copyright: (C) RINA S.p.A
|
||||
|
||||
#include <XmlTObjDrivers_IntSparseArrayDriver.hxx>
|
||||
#include <CDM_MessageDriver.hxx>
|
||||
#include <TDF_Attribute.hxx>
|
||||
#include <XmlObjMgt_Persistent.hxx>
|
||||
#include <TObj_TIntSparseArray.hxx>
|
||||
#include <TObj_Assistant.hxx>
|
||||
#include <TCollection_AsciiString.hxx>
|
||||
#include <TDF_Tool.hxx>
|
||||
|
||||
IMPLEMENT_STANDARD_HANDLE(XmlTObjDrivers_IntSparseArrayDriver,XmlMDF_ADriver)
|
||||
IMPLEMENT_STANDARD_RTTIEXT(XmlTObjDrivers_IntSparseArrayDriver,XmlMDF_ADriver)
|
||||
|
||||
#define ITEM_ID "itemId_"
|
||||
#define ITEM_VALUE "itemValue_"
|
||||
|
||||
//=======================================================================
|
||||
//function : XmlTObjDrivers_IntSparseArrayDriver
|
||||
//purpose : constructor
|
||||
//=======================================================================
|
||||
|
||||
XmlTObjDrivers_IntSparseArrayDriver::XmlTObjDrivers_IntSparseArrayDriver
|
||||
(const Handle(CDM_MessageDriver)& theMessageDriver)
|
||||
: XmlMDF_ADriver( theMessageDriver, NULL)
|
||||
{
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : NewEmpty
|
||||
//purpose : Creates a new attribute
|
||||
//=======================================================================
|
||||
|
||||
Handle(TDF_Attribute) XmlTObjDrivers_IntSparseArrayDriver::NewEmpty() const
|
||||
{
|
||||
return new TObj_TIntSparseArray;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : Paste
|
||||
//purpose : Retrieve. Translate the contents of <theSource> and put it
|
||||
// into <theTarget>.
|
||||
//=======================================================================
|
||||
|
||||
Standard_Boolean XmlTObjDrivers_IntSparseArrayDriver::Paste
|
||||
(const XmlObjMgt_Persistent& theSource,
|
||||
const Handle(TDF_Attribute)& theTarget,
|
||||
XmlObjMgt_RRelocationTable&) const
|
||||
{
|
||||
const XmlObjMgt_Element& anElement = theSource;
|
||||
Handle(TObj_TIntSparseArray) aTarget =
|
||||
Handle(TObj_TIntSparseArray)::DownCast(theTarget);
|
||||
|
||||
// get pairs (ID, value) while ID != 0
|
||||
Standard_Integer i = 1;
|
||||
TCollection_AsciiString anItemID;
|
||||
TCollection_AsciiString anIdStr = TCollection_AsciiString( ITEM_ID ) +
|
||||
TCollection_AsciiString( i );
|
||||
anItemID = anElement.getAttribute( anIdStr.ToCString() );
|
||||
while( anItemID.IsIntegerValue() && anItemID.IntegerValue() != 0 )
|
||||
{
|
||||
TCollection_AsciiString aStrIndex = TCollection_AsciiString( ITEM_VALUE ) +
|
||||
TCollection_AsciiString( i );
|
||||
TCollection_AsciiString anItemValue = anElement.getAttribute( aStrIndex.ToCString() );
|
||||
if ( anItemValue.IsIntegerValue() )
|
||||
{
|
||||
// store the value in the target array
|
||||
aTarget->SetDoBackup (Standard_False);
|
||||
aTarget->SetValue (anItemID.IntegerValue(), anItemValue.IntegerValue());
|
||||
aTarget->SetDoBackup (Standard_True);
|
||||
}
|
||||
i++;
|
||||
}
|
||||
return Standard_True;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : Paste
|
||||
//purpose : Store. Translate the contents of <theSource> and put it
|
||||
// into <theTarget>
|
||||
//=======================================================================
|
||||
|
||||
void XmlTObjDrivers_IntSparseArrayDriver::Paste
|
||||
(const Handle(TDF_Attribute)& theSource,
|
||||
XmlObjMgt_Persistent& theTarget,
|
||||
XmlObjMgt_SRelocationTable&) const
|
||||
{
|
||||
Handle(TObj_TIntSparseArray) aSource =
|
||||
Handle(TObj_TIntSparseArray)::DownCast (theSource);
|
||||
|
||||
// put only non-null values as pairs (ID, value)
|
||||
// terminate the list by ID=0
|
||||
TObj_TIntSparseArray::Iterator anIt = aSource->GetIterator();
|
||||
Standard_Integer i = 1;
|
||||
for ( ; anIt.More() ; anIt.Next() )
|
||||
{
|
||||
Standard_Integer aValue = anIt.Value();
|
||||
if (aValue == 0)
|
||||
continue;
|
||||
TCollection_AsciiString anIdStr = TCollection_AsciiString( ITEM_ID ) +
|
||||
TCollection_AsciiString( i );
|
||||
TCollection_AsciiString aStrIndex = TCollection_AsciiString( ITEM_VALUE ) +
|
||||
TCollection_AsciiString( i );
|
||||
theTarget.Element().setAttribute( anIdStr.ToCString(), anIt.Index() );
|
||||
theTarget.Element().setAttribute( aStrIndex.ToCString(), anIt.Value() );
|
||||
i++;
|
||||
}
|
||||
// write last item
|
||||
TCollection_AsciiString anIdStr = TCollection_AsciiString( ITEM_ID ) +
|
||||
TCollection_AsciiString( i );
|
||||
TCollection_AsciiString aStrIndex = TCollection_AsciiString( ITEM_VALUE ) +
|
||||
TCollection_AsciiString( i );
|
||||
theTarget.Element().setAttribute( anIdStr.ToCString(), 0 );
|
||||
theTarget.Element().setAttribute( aStrIndex.ToCString(), 0 );
|
||||
}
|
51
src/XmlTObjDrivers/XmlTObjDrivers_IntSparseArrayDriver.hxx
Executable file
51
src/XmlTObjDrivers/XmlTObjDrivers_IntSparseArrayDriver.hxx
Executable file
@@ -0,0 +1,51 @@
|
||||
// File : XmlTObjDrivers_IntSparseArrayDriver.hxx
|
||||
// Created : 30.03.2007
|
||||
// Author : Michael SAZONOV
|
||||
// Copyright: Open CASCADE 2007
|
||||
// The original implementation Copyright: (C) RINA S.p.A
|
||||
|
||||
#ifndef XmlTObjDrivers_IntSparseArrayDriver_HeaderFile
|
||||
#define XmlTObjDrivers_IntSparseArrayDriver_HeaderFile
|
||||
|
||||
#include <TObj_Common.hxx>
|
||||
#include <XmlMDF_ADriver.hxx>
|
||||
|
||||
class XmlTObjDrivers_IntSparseArrayDriver : public XmlMDF_ADriver
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
Standard_EXPORT XmlTObjDrivers_IntSparseArrayDriver
|
||||
(const Handle(CDM_MessageDriver)& theMessageDriver);
|
||||
// constructor
|
||||
|
||||
Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const;
|
||||
// Creates a new attribute
|
||||
|
||||
Standard_EXPORT Standard_Boolean Paste
|
||||
(const XmlObjMgt_Persistent& theSource,
|
||||
const Handle(TDF_Attribute)& theTarget,
|
||||
XmlObjMgt_RRelocationTable& theRelocTable) const;
|
||||
// Translate the contents of <theSource> and put it
|
||||
// into <theTarget>
|
||||
|
||||
Standard_EXPORT void Paste
|
||||
(const Handle(TDF_Attribute)& theSource,
|
||||
XmlObjMgt_Persistent& theTarget,
|
||||
XmlObjMgt_SRelocationTable& theRelocTable) const;
|
||||
// Translate the contents of <aSource> and put it
|
||||
// into <aTarget>
|
||||
|
||||
public:
|
||||
// CASCADE RTTI
|
||||
DEFINE_STANDARD_RTTI(XmlTObjDrivers_IntSparseArrayDriver)
|
||||
};
|
||||
|
||||
// Define handle class
|
||||
DEFINE_STANDARD_HANDLE(XmlTObjDrivers_IntSparseArrayDriver,XmlMDF_ADriver)
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma once
|
||||
#endif
|
100
src/XmlTObjDrivers/XmlTObjDrivers_ModelDriver.cxx
Executable file
100
src/XmlTObjDrivers/XmlTObjDrivers_ModelDriver.cxx
Executable file
@@ -0,0 +1,100 @@
|
||||
// File : XmlTObjDrivers_ModelDriver.cxx
|
||||
// Created : Wed Nov 24 11:14:21 2004
|
||||
// Author : Edward AGAPOV
|
||||
// Copyright: Open CASCADE 2007
|
||||
// The original implementation Copyright: (C) RINA S.p.A
|
||||
|
||||
|
||||
#include "XmlTObjDrivers_ModelDriver.hxx"
|
||||
|
||||
#include <CDM_MessageDriver.hxx>
|
||||
#include <XmlObjMgt_Persistent.hxx>
|
||||
#include <XmlObjMgt_RRelocationTable.hxx>
|
||||
#include <XmlObjMgt.hxx>
|
||||
#include <Standard_GUID.hxx>
|
||||
#include <TDF_Attribute.hxx>
|
||||
|
||||
#include <TObj_TModel.hxx>
|
||||
#include <TObj_Model.hxx>
|
||||
#include <TObj_Assistant.hxx>
|
||||
|
||||
IMPLEMENT_STANDARD_HANDLE(XmlTObjDrivers_ModelDriver,XmlMDF_ADriver)
|
||||
IMPLEMENT_STANDARD_RTTIEXT(XmlTObjDrivers_ModelDriver,XmlMDF_ADriver);
|
||||
|
||||
//=======================================================================
|
||||
//function : XmlTObjDrivers_ModelDriver
|
||||
//purpose : constructor
|
||||
//=======================================================================
|
||||
|
||||
XmlTObjDrivers_ModelDriver::XmlTObjDrivers_ModelDriver
|
||||
(const Handle(CDM_MessageDriver)& theMessageDriver)
|
||||
: XmlMDF_ADriver( theMessageDriver, NULL)
|
||||
{
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : NewEmpty
|
||||
//purpose : Creates a new attribute
|
||||
//=======================================================================
|
||||
|
||||
Handle(TDF_Attribute) XmlTObjDrivers_ModelDriver::NewEmpty() const
|
||||
{
|
||||
return new TObj_TModel;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : Paste
|
||||
//purpose : Translate the contents of <aSource> and put it
|
||||
// into <aTarget>, using the relocation table
|
||||
// <aRelocTable> to keep the sharings.
|
||||
// Set CurrentModel of TObj_Assistant into Target TObj_TModel
|
||||
// if its GUID and GUID stored in Source are same
|
||||
//=======================================================================
|
||||
|
||||
Standard_Boolean XmlTObjDrivers_ModelDriver::Paste
|
||||
(const XmlObjMgt_Persistent& Source,
|
||||
const Handle(TDF_Attribute)& Target,
|
||||
XmlObjMgt_RRelocationTable& /*RelocTable*/) const
|
||||
{
|
||||
TCollection_ExtendedString aString;
|
||||
if (XmlObjMgt::GetExtendedString (Source, aString))
|
||||
{
|
||||
Standard_GUID aGUID (aString.ToExtString());
|
||||
Handle(TObj_Model) aCurrentModel = TObj_Assistant::GetCurrentModel();
|
||||
if (aGUID == aCurrentModel->GetGUID())
|
||||
{
|
||||
Handle(TObj_TModel) aTModel = Handle(TObj_TModel)::DownCast( Target );
|
||||
aCurrentModel->SetLabel ( aTModel->Label() );
|
||||
aTModel->Set( aCurrentModel );
|
||||
return Standard_True;
|
||||
}
|
||||
WriteMessage("TObj_TModel retrieval: wrong model GUID");
|
||||
return Standard_False;
|
||||
}
|
||||
WriteMessage("error retrieving ExtendedString for type TObj_TModel");
|
||||
return Standard_False;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : Paste
|
||||
//purpose : Translate the contents of <aSource> and put it
|
||||
// into <aTarget>, using the relocation table
|
||||
// <aRelocTable> to keep the sharings.
|
||||
// a Model is stored as its GUID
|
||||
//=======================================================================
|
||||
|
||||
void XmlTObjDrivers_ModelDriver::Paste
|
||||
(const Handle(TDF_Attribute)& Source,
|
||||
XmlObjMgt_Persistent& Target,
|
||||
XmlObjMgt_SRelocationTable& /*RelocTable*/) const
|
||||
{
|
||||
Handle(TObj_TModel) aTModel =
|
||||
Handle(TObj_TModel)::DownCast( Source );
|
||||
Handle(TObj_Model) aModel = aTModel->Model();
|
||||
|
||||
// Store model GUID.
|
||||
Standard_PCharacter aPGuidString = new Standard_Character[256];
|
||||
aModel->GetGUID().ToCString( aPGuidString );
|
||||
XmlObjMgt::SetExtendedString (Target, *aPGuidString);
|
||||
delete []aPGuidString;
|
||||
}
|
57
src/XmlTObjDrivers/XmlTObjDrivers_ModelDriver.hxx
Executable file
57
src/XmlTObjDrivers/XmlTObjDrivers_ModelDriver.hxx
Executable file
@@ -0,0 +1,57 @@
|
||||
// File : XmlTObjDrivers_ModelDriver.hxx
|
||||
// Created : Wed Nov 24 11:15:32 2004
|
||||
// Author : Edward AGAPOV
|
||||
// Copyright: Open CASCADE 2007
|
||||
// The original implementation Copyright: (C) RINA S.p.A
|
||||
|
||||
#ifndef XmlTObjDrivers_ModelDriver_HeaderFile
|
||||
#define XmlTObjDrivers_ModelDriver_HeaderFile
|
||||
|
||||
#include <TObj_Common.hxx>
|
||||
#include <XmlMDF_ADriver.hxx>
|
||||
|
||||
class XmlTObjDrivers_ModelDriver : public XmlMDF_ADriver
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
Standard_EXPORT XmlTObjDrivers_ModelDriver
|
||||
(const Handle(CDM_MessageDriver)& theMessageDriver);
|
||||
// constructor
|
||||
|
||||
Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const;
|
||||
// Creates a new attribute
|
||||
|
||||
Standard_EXPORT Standard_Boolean Paste
|
||||
(const XmlObjMgt_Persistent& Source,
|
||||
const Handle(TDF_Attribute)& Target,
|
||||
XmlObjMgt_RRelocationTable& RelocTable) const;
|
||||
// Translate the contents of <aSource> and put it
|
||||
// into <aTarget>, using the relocation table
|
||||
// <aRelocTable> to keep the sharings.
|
||||
// Set CurrentModel of TObj_Persistence into Target TObj_TModel
|
||||
// if its GUID and GUID stored in Source are same
|
||||
|
||||
Standard_EXPORT void Paste
|
||||
(const Handle(TDF_Attribute)& Source,
|
||||
XmlObjMgt_Persistent& Target,
|
||||
XmlObjMgt_SRelocationTable& RelocTable) const;
|
||||
// Translate the contents of <aSource> and put it
|
||||
// into <aTarget>, using the relocation table
|
||||
// <aRelocTable> to keep the sharings.
|
||||
// a Model is stored as its GUID
|
||||
|
||||
public:
|
||||
// CASCADE RTTI
|
||||
DEFINE_STANDARD_RTTI(XmlTObjDrivers_ModelDriver)
|
||||
};
|
||||
|
||||
// Define handle class
|
||||
DEFINE_STANDARD_HANDLE(XmlTObjDrivers_ModelDriver,XmlMDF_ADriver)
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma once
|
||||
#endif
|
84
src/XmlTObjDrivers/XmlTObjDrivers_ObjectDriver.cxx
Executable file
84
src/XmlTObjDrivers/XmlTObjDrivers_ObjectDriver.cxx
Executable file
@@ -0,0 +1,84 @@
|
||||
// File : XmlTObjDrivers_ObjectDriver.cxx
|
||||
// Created : Wed Nov 24 11:16:34 2004
|
||||
// Author : Edward AGAPOV
|
||||
// Copyright: Open CASCADE 2007
|
||||
// The original implementation Copyright: (C) RINA S.p.A
|
||||
|
||||
|
||||
#include <CDM_MessageDriver.hxx>
|
||||
#include "XmlTObjDrivers_ObjectDriver.hxx"
|
||||
#include <TObj_TObject.hxx>
|
||||
#include <TObj_Persistence.hxx>
|
||||
#include <XmlObjMgt_Persistent.hxx>
|
||||
#include <XmlObjMgt_RRelocationTable.hxx>
|
||||
#include <XmlObjMgt.hxx>
|
||||
|
||||
IMPLEMENT_STANDARD_HANDLE(XmlTObjDrivers_ObjectDriver,XmlMDF_ADriver)
|
||||
IMPLEMENT_STANDARD_RTTIEXT(XmlTObjDrivers_ObjectDriver,XmlMDF_ADriver);
|
||||
|
||||
//=======================================================================
|
||||
//function : XmlTObjDrivers_ObjectDriver
|
||||
//purpose : constructor
|
||||
//=======================================================================
|
||||
|
||||
XmlTObjDrivers_ObjectDriver::XmlTObjDrivers_ObjectDriver
|
||||
(const Handle(CDM_MessageDriver)& theMessageDriver)
|
||||
: XmlMDF_ADriver( theMessageDriver, NULL)
|
||||
{
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : NewEmpty
|
||||
//purpose : Creates a new attribute
|
||||
//=======================================================================
|
||||
|
||||
Handle(TDF_Attribute) XmlTObjDrivers_ObjectDriver::NewEmpty() const
|
||||
{
|
||||
return new TObj_TObject;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : Paste
|
||||
//purpose : Translate the contents of <aSource> and put it
|
||||
// into <aTarget>, using the relocation table
|
||||
// <aRelocTable> to keep the sharings.
|
||||
//=======================================================================
|
||||
|
||||
Standard_Boolean XmlTObjDrivers_ObjectDriver::Paste
|
||||
(const XmlObjMgt_Persistent& Source,
|
||||
const Handle(TDF_Attribute)& Target,
|
||||
XmlObjMgt_RRelocationTable& /*RelocTable*/) const
|
||||
{
|
||||
TCollection_ExtendedString aString;
|
||||
if (XmlObjMgt::GetExtendedString (Source, aString))
|
||||
{
|
||||
TCollection_AsciiString anAscii (aString);
|
||||
Handle(TObj_Object) anObject =
|
||||
TObj_Persistence::CreateNewObject(anAscii.ToCString(),Target->Label());
|
||||
Handle(TObj_TObject)::DownCast (Target) ->Set( anObject );
|
||||
return Standard_True;
|
||||
}
|
||||
WriteMessage("error retrieving ExtendedString for type TObj_TModel");
|
||||
return Standard_False;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : Paste
|
||||
//purpose : Translate the contents of <aSource> and put it
|
||||
// into <aTarget>, using the relocation table
|
||||
// <aRelocTable> to keep the sharings.
|
||||
// anObject is stored as a Name of class derived from TObj_Object
|
||||
//=======================================================================
|
||||
|
||||
void XmlTObjDrivers_ObjectDriver::Paste
|
||||
(const Handle(TDF_Attribute)& Source,
|
||||
XmlObjMgt_Persistent& Target,
|
||||
XmlObjMgt_SRelocationTable& /*RelocTable*/) const
|
||||
{
|
||||
Handle(TObj_TObject) aTObj =
|
||||
Handle(TObj_TObject)::DownCast( Source );
|
||||
Handle(TObj_Object) anIObject = aTObj->Get();
|
||||
|
||||
XmlObjMgt::SetExtendedString (Target, anIObject->DynamicType()->Name());
|
||||
}
|
||||
|
58
src/XmlTObjDrivers/XmlTObjDrivers_ObjectDriver.hxx
Executable file
58
src/XmlTObjDrivers/XmlTObjDrivers_ObjectDriver.hxx
Executable file
@@ -0,0 +1,58 @@
|
||||
// File : XmlTObjDrivers_ObjectDriver.hxx
|
||||
// Created : Wed Nov 24 11:17:02 2004
|
||||
// Author : Edward AGAPOV
|
||||
// Copyright: Open CASCADE 2007
|
||||
// The original implementation Copyright: (C) RINA S.p.A
|
||||
|
||||
|
||||
#ifndef XmlTObjDrivers_ObjectDriver_HeaderFile
|
||||
#define XmlTObjDrivers_ObjectDriver_HeaderFile
|
||||
|
||||
#include <TObj_Common.hxx>
|
||||
#include <XmlMDF_ADriver.hxx>
|
||||
|
||||
class XmlTObjDrivers_ObjectDriver : public XmlMDF_ADriver
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
Standard_EXPORT XmlTObjDrivers_ObjectDriver
|
||||
(const Handle(CDM_MessageDriver)& theMessageDriver);
|
||||
// constructor
|
||||
|
||||
Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const;
|
||||
// Creates a new attribute
|
||||
|
||||
Standard_EXPORT Standard_Boolean Paste
|
||||
(const XmlObjMgt_Persistent& Source,
|
||||
const Handle(TDF_Attribute)& Target,
|
||||
XmlObjMgt_RRelocationTable& RelocTable) const;
|
||||
// Translate the contents of <aSource> and put it
|
||||
// into <aTarget>, using the relocation table
|
||||
// <aRelocTable> to keep the sharings.
|
||||
// an TObj_Object is restored by TObj_Persistence basing on class name
|
||||
// stored in Source
|
||||
|
||||
Standard_EXPORT void Paste
|
||||
(const Handle(TDF_Attribute)& Source,
|
||||
XmlObjMgt_Persistent& Target,
|
||||
XmlObjMgt_SRelocationTable& RelocTable) const;
|
||||
// Translate the contents of <aSource> and put it
|
||||
// into <aTarget>, using the relocation table
|
||||
// <aRelocTable> to keep the sharings.
|
||||
// anObject is stored as a Name of class derived from TObj_Object
|
||||
|
||||
public:
|
||||
// CASCADE RTTI
|
||||
DEFINE_STANDARD_RTTI(XmlTObjDrivers_ObjectDriver)
|
||||
};
|
||||
|
||||
// Define handle class
|
||||
DEFINE_STANDARD_HANDLE(XmlTObjDrivers_ObjectDriver,XmlMDF_ADriver)
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma once
|
||||
#endif
|
133
src/XmlTObjDrivers/XmlTObjDrivers_ReferenceDriver.cxx
Executable file
133
src/XmlTObjDrivers/XmlTObjDrivers_ReferenceDriver.cxx
Executable file
@@ -0,0 +1,133 @@
|
||||
// File : XmlTObjDrivers_ReferenceDriver.cxx
|
||||
// Created : Wed Nov 24 11:18:43 2004
|
||||
// Author : Edward AGAPOV
|
||||
// Copyright: Open CASCADE 2007
|
||||
// The original implementation Copyright: (C) RINA S.p.A
|
||||
|
||||
|
||||
#include "XmlTObjDrivers_ReferenceDriver.hxx"
|
||||
|
||||
#include <CDM_MessageDriver.hxx>
|
||||
#include <TDF_Tool.hxx>
|
||||
#include <TDF_Attribute.hxx>
|
||||
|
||||
#include <XmlObjMgt.hxx>
|
||||
#include <XmlObjMgt_Persistent.hxx>
|
||||
#include <XmlObjMgt_RRelocationTable.hxx>
|
||||
|
||||
#include <TObj_TReference.hxx>
|
||||
#include <TObj_Model.hxx>
|
||||
#include <TObj_Object.hxx>
|
||||
#include <TObj_Assistant.hxx>
|
||||
#include <TDF_ChildIterator.hxx>
|
||||
|
||||
|
||||
IMPLEMENT_STANDARD_HANDLE(XmlTObjDrivers_ReferenceDriver,XmlMDF_ADriver)
|
||||
IMPLEMENT_STANDARD_RTTIEXT(XmlTObjDrivers_ReferenceDriver,XmlMDF_ADriver)
|
||||
|
||||
IMPLEMENT_DOMSTRING (MasterEntry, "master")
|
||||
IMPLEMENT_DOMSTRING (ReferredEntry, "entry")
|
||||
IMPLEMENT_DOMSTRING (ReferredModelEntry, "modelentry")
|
||||
|
||||
//=======================================================================
|
||||
//function : XmlTObjDrivers_ReferenceDriver
|
||||
//purpose : constructor
|
||||
//=======================================================================
|
||||
|
||||
XmlTObjDrivers_ReferenceDriver::XmlTObjDrivers_ReferenceDriver
|
||||
(const Handle(CDM_MessageDriver)& theMessageDriver)
|
||||
: XmlMDF_ADriver( theMessageDriver, NULL)
|
||||
{
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : NewEmpty
|
||||
//purpose : Creates a new attribute
|
||||
//=======================================================================
|
||||
|
||||
Handle(TDF_Attribute) XmlTObjDrivers_ReferenceDriver::NewEmpty() const
|
||||
{
|
||||
return new TObj_TReference;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : Paste
|
||||
//purpose : Translate the contents of <aSource> and put it
|
||||
// into <aTarget>, using the relocation table
|
||||
// <aRelocTable> to keep the sharings.
|
||||
//=======================================================================
|
||||
|
||||
Standard_Boolean XmlTObjDrivers_ReferenceDriver::Paste
|
||||
(const XmlObjMgt_Persistent& Source,
|
||||
const Handle(TDF_Attribute)& Target,
|
||||
XmlObjMgt_RRelocationTable& /*RelocTable*/) const
|
||||
{
|
||||
const XmlObjMgt_Element& anElement = Source;
|
||||
|
||||
// get entries
|
||||
TCollection_AsciiString RefEntry = anElement.getAttribute(::ReferredEntry());
|
||||
TCollection_AsciiString MasterEntry = anElement.getAttribute(::MasterEntry());
|
||||
// entry in model holder
|
||||
TCollection_AsciiString InHolderEntry =
|
||||
anElement.getAttribute(::ReferredModelEntry());
|
||||
|
||||
// master label
|
||||
TDF_Label aLabel, aMasterLabel;
|
||||
TDF_Tool::Label (Target->Label().Data(), MasterEntry, aMasterLabel);
|
||||
// referred label
|
||||
if (InHolderEntry.IsEmpty())
|
||||
TDF_Tool::Label (Target->Label().Data(), RefEntry, aLabel, Standard_True);
|
||||
else
|
||||
{
|
||||
Handle(TObj_Model) aModel = Handle(TObj_Model)::DownCast
|
||||
( TObj_Assistant::FindModel( InHolderEntry.ToCString() ));
|
||||
TDF_Tool::Label (aModel->GetLabel().Data(), RefEntry, aLabel, Standard_True);
|
||||
}
|
||||
Handle(TObj_TReference) aTarget =
|
||||
Handle(TObj_TReference)::DownCast (Target);
|
||||
aTarget->Set ( aLabel, aMasterLabel );
|
||||
|
||||
return !aLabel.IsNull() && !aMasterLabel.IsNull();
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : Paste
|
||||
//purpose : Translate the contents of <aSource> and put it
|
||||
// into <aTarget>, using the relocation table
|
||||
// <aRelocTable> to keep the sharings.
|
||||
// Store master and referred labels as entry, the other model referred
|
||||
// as entry in model-container
|
||||
//=======================================================================
|
||||
|
||||
void XmlTObjDrivers_ReferenceDriver::Paste
|
||||
(const Handle(TDF_Attribute)& Source,
|
||||
XmlObjMgt_Persistent& Target,
|
||||
XmlObjMgt_SRelocationTable& /*RelocTable*/) const
|
||||
{
|
||||
Handle(TObj_TReference) aSource =
|
||||
Handle(TObj_TReference)::DownCast (Source);
|
||||
|
||||
Handle(TObj_Object) aLObject = aSource->Get();
|
||||
if (aLObject.IsNull())
|
||||
return;
|
||||
|
||||
// referred entry
|
||||
TCollection_AsciiString entry;
|
||||
TDF_Label aLabel = aLObject->GetLabel();
|
||||
TDF_Tool::Entry( aLabel, entry );
|
||||
Target.Element().setAttribute(::ReferredEntry(), entry.ToCString());
|
||||
|
||||
// master entry
|
||||
entry.Clear();
|
||||
TDF_Label aMasterLabel = aSource->GetMasterLabel();
|
||||
TDF_Tool::Entry( aMasterLabel, entry );
|
||||
Target.Element().setAttribute(::MasterEntry(), entry.ToCString());
|
||||
|
||||
// is reference to other document
|
||||
if (aLabel.Root() == aMasterLabel.Root()) return;
|
||||
|
||||
Handle(TObj_Model) aModel =
|
||||
Handle(TObj_Model)::DownCast( aLObject->GetModel() );
|
||||
TCollection_AsciiString aModelName( aModel->GetModelName()->String() );
|
||||
Target.Element().setAttribute(::ReferredModelEntry(), aModelName.ToCString());
|
||||
}
|
57
src/XmlTObjDrivers/XmlTObjDrivers_ReferenceDriver.hxx
Executable file
57
src/XmlTObjDrivers/XmlTObjDrivers_ReferenceDriver.hxx
Executable file
@@ -0,0 +1,57 @@
|
||||
// File : XmlTObjDrivers_ReferenceDriver.hxx
|
||||
// Created : Wed Nov 24 11:19:22 2004
|
||||
// Author : Edward AGAPOV
|
||||
// Copyright: Open CASCADE 2007
|
||||
// The original implementation Copyright: (C) RINA S.p.A
|
||||
|
||||
|
||||
#ifndef XmlTObjDrivers_ReferenceDriver_HeaderFile
|
||||
#define XmlTObjDrivers_ReferenceDriver_HeaderFile
|
||||
|
||||
#include <TObj_Common.hxx>
|
||||
#include <XmlMDF_ADriver.hxx>
|
||||
|
||||
class XmlTObjDrivers_ReferenceDriver : public XmlMDF_ADriver
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
Standard_EXPORT XmlTObjDrivers_ReferenceDriver
|
||||
(const Handle(CDM_MessageDriver)& theMessageDriver);
|
||||
// constructor
|
||||
|
||||
Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const;
|
||||
// Creates a new attribute
|
||||
|
||||
Standard_EXPORT Standard_Boolean Paste
|
||||
(const XmlObjMgt_Persistent& Source,
|
||||
const Handle(TDF_Attribute)& Target,
|
||||
XmlObjMgt_RRelocationTable& RelocTable) const;
|
||||
// Translate the contents of <aSource> and put it
|
||||
// into <aTarget>, using the relocation table
|
||||
// <aRelocTable> to keep the sharings.
|
||||
|
||||
Standard_EXPORT void Paste
|
||||
(const Handle(TDF_Attribute)& Source,
|
||||
XmlObjMgt_Persistent& Target,
|
||||
XmlObjMgt_SRelocationTable& RelocTable) const;
|
||||
// Translate the contents of <aSource> and put it
|
||||
// into <aTarget>, using the relocation table
|
||||
// <aRelocTable> to keep the sharings.
|
||||
// Store master and referred labels as entry, the other model referred
|
||||
// as entry in model-container
|
||||
// The reference pointing nowhere is not stored
|
||||
|
||||
public:
|
||||
// CASCADE RTTI
|
||||
DEFINE_STANDARD_RTTI(XmlTObjDrivers_ReferenceDriver)
|
||||
};
|
||||
|
||||
// Define handle class
|
||||
DEFINE_STANDARD_HANDLE(XmlTObjDrivers_ReferenceDriver,XmlMDF_ADriver)
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma once
|
||||
#endif
|
124
src/XmlTObjDrivers/XmlTObjDrivers_XYZDriver.cxx
Executable file
124
src/XmlTObjDrivers/XmlTObjDrivers_XYZDriver.cxx
Executable file
@@ -0,0 +1,124 @@
|
||||
// File : XmlTObjDrivers_XYZDriver.cxx
|
||||
// Created : Wed Nov 24 11:20:06 2004
|
||||
// Author : Edward AGAPOV
|
||||
// Copyright: Open CASCADE 2007
|
||||
// The original implementation Copyright: (C) RINA S.p.A
|
||||
|
||||
|
||||
#include <XmlTObjDrivers_XYZDriver.hxx>
|
||||
|
||||
#include <CDM_MessageDriver.hxx>
|
||||
#include <TDF_Attribute.hxx>
|
||||
|
||||
#include <XmlObjMgt.hxx>
|
||||
#include <XmlObjMgt_Persistent.hxx>
|
||||
#include <XmlObjMgt_RRelocationTable.hxx>
|
||||
|
||||
#include <TObj_TXYZ.hxx>
|
||||
|
||||
IMPLEMENT_STANDARD_HANDLE(XmlTObjDrivers_XYZDriver,XmlMDF_ADriver)
|
||||
IMPLEMENT_STANDARD_RTTIEXT(XmlTObjDrivers_XYZDriver,XmlMDF_ADriver)
|
||||
|
||||
IMPLEMENT_DOMSTRING (CoordX, "X")
|
||||
IMPLEMENT_DOMSTRING (CoordY, "Y")
|
||||
IMPLEMENT_DOMSTRING (CoordZ, "Z")
|
||||
|
||||
//=======================================================================
|
||||
//function : XmlTObjDrivers_XYZDriver
|
||||
//purpose : constructor
|
||||
//=======================================================================
|
||||
|
||||
XmlTObjDrivers_XYZDriver::XmlTObjDrivers_XYZDriver
|
||||
(const Handle(CDM_MessageDriver)& theMessageDriver)
|
||||
: XmlMDF_ADriver( theMessageDriver, NULL)
|
||||
{
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : NewEmpty
|
||||
//purpose : Creates a new attribute
|
||||
//=======================================================================
|
||||
|
||||
Handle(TDF_Attribute) XmlTObjDrivers_XYZDriver::NewEmpty() const
|
||||
{
|
||||
return new TObj_TXYZ;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : Paste
|
||||
//purpose : Translate the contents of <aSource> and put it
|
||||
// into <aTarget>, using the relocation table
|
||||
// <aRelocTable> to keep the sharings.
|
||||
//=======================================================================
|
||||
|
||||
Standard_Boolean XmlTObjDrivers_XYZDriver::Paste
|
||||
(const XmlObjMgt_Persistent& Source,
|
||||
const Handle(TDF_Attribute)& Target,
|
||||
XmlObjMgt_RRelocationTable& /*RelocTable*/) const
|
||||
{
|
||||
const XmlObjMgt_Element& anElement = Source;
|
||||
|
||||
// get co-ordinates
|
||||
TCollection_AsciiString CoordX = anElement.getAttribute(::CoordX());
|
||||
TCollection_AsciiString CoordY = anElement.getAttribute(::CoordY());
|
||||
TCollection_AsciiString CoordZ = anElement.getAttribute(::CoordZ());
|
||||
|
||||
// creating gp_XYZ
|
||||
gp_XYZ aXYZ;
|
||||
Standard_CString aStr;
|
||||
Standard_Real aCoord;
|
||||
|
||||
aStr = CoordX.ToCString();
|
||||
if(!XmlObjMgt::GetReal( aStr, aCoord )) return Standard_False;
|
||||
aXYZ.SetX(aCoord);
|
||||
|
||||
aStr = CoordY.ToCString();
|
||||
if(!XmlObjMgt::GetReal( aStr, aCoord )) return Standard_False;
|
||||
aXYZ.SetY(aCoord);
|
||||
|
||||
aStr = CoordZ.ToCString();
|
||||
if(!XmlObjMgt::GetReal( aStr, aCoord )) return Standard_False;
|
||||
aXYZ.SetZ(aCoord);
|
||||
|
||||
// setting gp_XYZ
|
||||
Handle(TObj_TXYZ) aTarget = Handle(TObj_TXYZ)::DownCast (Target);
|
||||
aTarget->Set ( aXYZ );
|
||||
|
||||
return Standard_True;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : Paste
|
||||
//purpose : Translate the contents of <aSource> and put it
|
||||
// into <aTarget>, using the relocation table
|
||||
// <aRelocTable> to keep the sharings.
|
||||
// Store master and referred labels as entry, the other model referred
|
||||
// as entry in model-container
|
||||
//=======================================================================
|
||||
|
||||
void XmlTObjDrivers_XYZDriver::Paste
|
||||
(const Handle(TDF_Attribute)& Source,
|
||||
XmlObjMgt_Persistent& Target,
|
||||
XmlObjMgt_SRelocationTable& /*RelocTable*/) const
|
||||
{
|
||||
Handle(TObj_TXYZ) aSource =
|
||||
Handle(TObj_TXYZ)::DownCast (Source);
|
||||
|
||||
if(aSource.IsNull()) return;
|
||||
|
||||
gp_XYZ aXYZ = aSource->Get();
|
||||
|
||||
TCollection_AsciiString aCoord;
|
||||
|
||||
// co-ordinate X
|
||||
aCoord = TCollection_AsciiString( aXYZ.X() );
|
||||
Target.Element().setAttribute(::CoordX(), aCoord.ToCString());
|
||||
|
||||
// co-ordinate Y
|
||||
aCoord = TCollection_AsciiString( aXYZ.Y() );
|
||||
Target.Element().setAttribute(::CoordY(), aCoord.ToCString());
|
||||
|
||||
// co-ordinate Z
|
||||
aCoord = TCollection_AsciiString( aXYZ.Z() );
|
||||
Target.Element().setAttribute(::CoordZ(), aCoord.ToCString());
|
||||
}
|
57
src/XmlTObjDrivers/XmlTObjDrivers_XYZDriver.hxx
Executable file
57
src/XmlTObjDrivers/XmlTObjDrivers_XYZDriver.hxx
Executable file
@@ -0,0 +1,57 @@
|
||||
// File : XmlTObjDrivers_XYZDriver.hxx
|
||||
// Created : Wed Nov 24 11:21:42 2004
|
||||
// Author : Edward AGAPOV
|
||||
// Copyright: Open CASCADE 2007
|
||||
// The original implementation Copyright: (C) RINA S.p.A
|
||||
|
||||
|
||||
#ifndef XmlTObjDrivers_XYZDriver_HeaderFile
|
||||
#define XmlTObjDrivers_XYZDriver_HeaderFile
|
||||
|
||||
#include <TObj_Common.hxx>
|
||||
#include <XmlMDF_ADriver.hxx>
|
||||
|
||||
class XmlTObjDrivers_XYZDriver : public XmlMDF_ADriver
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
Standard_EXPORT XmlTObjDrivers_XYZDriver
|
||||
(const Handle(CDM_MessageDriver)& theMessageDriver);
|
||||
// constructor
|
||||
|
||||
Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const;
|
||||
// Creates a new attribute
|
||||
|
||||
Standard_EXPORT Standard_Boolean Paste
|
||||
(const XmlObjMgt_Persistent& Source,
|
||||
const Handle(TDF_Attribute)& Target,
|
||||
XmlObjMgt_RRelocationTable& RelocTable) const;
|
||||
// Translate the contents of <aSource> and put it
|
||||
// into <aTarget>, using the relocation table
|
||||
// <aRelocTable> to keep the sharings.
|
||||
|
||||
Standard_EXPORT void Paste
|
||||
(const Handle(TDF_Attribute)& Source,
|
||||
XmlObjMgt_Persistent& Target,
|
||||
XmlObjMgt_SRelocationTable& RelocTable) const;
|
||||
// Translate the contents of <aSource> and put it
|
||||
// into <aTarget>, using the relocation table
|
||||
// <aRelocTable> to keep the sharings.
|
||||
// Store master and referred labels as entry, the other model referred
|
||||
// as entry in model-container
|
||||
// The XYZ pointing nowhere is not stored
|
||||
|
||||
public:
|
||||
// CASCADE RTTI
|
||||
DEFINE_STANDARD_RTTI(XmlTObjDrivers_XYZDriver)
|
||||
};
|
||||
|
||||
// Define handle class
|
||||
DEFINE_STANDARD_HANDLE(XmlTObjDrivers_XYZDriver,XmlMDF_ADriver)
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma once
|
||||
#endif
|
Reference in New Issue
Block a user