From: snn Date: Mon, 20 Feb 2017 10:35:39 +0000 (+0300) Subject: XCAF: assembly item ref driver added, file name typo correction X-Git-Tag: V_01_2017_06_30~18 X-Git-Url: http://git.dev.opencascade.org/gitweb/?a=commitdiff_plain;h=918b022dae89fb1e63a69231e0210dbd82700497;p=occt-copy.git XCAF: assembly item ref driver added, file name typo correction --- diff --git a/src/BinMXCAFDoc/BinMXCAFDoc.cxx b/src/BinMXCAFDoc/BinMXCAFDoc.cxx index 8c55dfbe94..55d1ac0e0d 100644 --- a/src/BinMXCAFDoc/BinMXCAFDoc.cxx +++ b/src/BinMXCAFDoc/BinMXCAFDoc.cxx @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include @@ -68,6 +69,7 @@ void BinMXCAFDoc::AddDrivers(const Handle(BinMDF_ADriverTable)& theDriverTable, } theDriverTable->AddDriver( aLocationDriver); + theDriverTable->AddDriver( new BinMXCAFDoc_AssemblyItemRefDriver(theMsgDrv)); theDriverTable->AddDriver( new BinMXCAFDoc_VolumeDriver (theMsgDrv)); theDriverTable->AddDriver( new BinMXCAFDoc_DatumDriver (theMsgDrv)); theDriverTable->AddDriver( new BinMXCAFDoc_GeomToleranceDriver (theMsgDrv)); diff --git a/src/XCAFDoc/XCAFDoc_Note.cxx b/src/XCAFDoc/XCAFDoc_Note.cxx index 9ea85d0176..9a69acac5c 100644 --- a/src/XCAFDoc/XCAFDoc_Note.cxx +++ b/src/XCAFDoc/XCAFDoc_Note.cxx @@ -90,6 +90,7 @@ XCAFDoc_Note::Paste(const Handle(TDF_Attribute)& theAttrInto, Standard_OStream& XCAFDoc_Note::Dump(Standard_OStream& theOS) const { + TDF_Attribute::Dump(theOS); theOS << "Note : " << (myUserName.IsEmpty() ? myUserName : "") diff --git a/src/XmlMXCAFDoc/FILES b/src/XmlMXCAFDoc/FILES index fe6d23aaf1..1ee7b6d56f 100644 --- a/src/XmlMXCAFDoc/FILES +++ b/src/XmlMXCAFDoc/FILES @@ -1,7 +1,7 @@ XmlMXCAFDoc.cxx XmlMXCAFDoc.hxx -XmlMXCAFDoc_AssemblyAtemRefDriver.cxx -XmlMXCAFDoc_AssemblyAtemRefDriver.hxx +XmlMXCAFDoc_AssemblyItemRefDriver.cxx +XmlMXCAFDoc_AssemblyItemRefDriver.hxx XmlMXCAFDoc_AreaDriver.cxx XmlMXCAFDoc_AreaDriver.hxx XmlMXCAFDoc_CentroidDriver.cxx diff --git a/src/XmlMXCAFDoc/XmlMXCAFDoc.cxx b/src/XmlMXCAFDoc/XmlMXCAFDoc.cxx index 7c959f9ee9..5bb22d739d 100644 --- a/src/XmlMXCAFDoc/XmlMXCAFDoc.cxx +++ b/src/XmlMXCAFDoc/XmlMXCAFDoc.cxx @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -64,7 +65,8 @@ void XmlMXCAFDoc::AddDrivers (const Handle(XmlMDF_ADriverTable)& aDriverTable, aLocationDriver->SetSharedLocations( &(aNamedShapeDriver->GetShapesLocations()) ); } - aDriverTable -> AddDriver( aLocationDriver); + aDriverTable -> AddDriver (aLocationDriver); + aDriverTable -> AddDriver (new XmlMXCAFDoc_AssemblyItemRefDriver(anMsgDrv)); aDriverTable -> AddDriver (new XmlMXCAFDoc_VolumeDriver (anMsgDrv)); aDriverTable -> AddDriver (new XmlMXCAFDoc_DatumDriver (anMsgDrv)); aDriverTable -> AddDriver (new XmlMXCAFDoc_DimTolDriver (anMsgDrv)); diff --git a/src/XmlMXCAFDoc/XmlMXCAFDoc_AssemblyAtemRefDriver.cxx b/src/XmlMXCAFDoc/XmlMXCAFDoc_AssemblyAtemRefDriver.cxx deleted file mode 100644 index 118a9460ec..0000000000 --- a/src/XmlMXCAFDoc/XmlMXCAFDoc_AssemblyAtemRefDriver.cxx +++ /dev/null @@ -1,80 +0,0 @@ -// Created on: 2017-02-14 -// Created by: Sergey NIKONOV -// Copyright (c) 2008-2017 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 -#include -#include -#include -#include -#include - -IMPLEMENT_STANDARD_RTTIEXT(XmlMXCAFDoc_AssemblyItemRefDriver, XmlMDF_ADriver) -IMPLEMENT_DOMSTRING(Path, "path") - -//======================================================================= -//function : -//purpose : -//======================================================================= -XmlMXCAFDoc_AssemblyItemRefDriver::XmlMXCAFDoc_AssemblyItemRefDriver(const Handle(CDM_MessageDriver)& theMsgDriver) -: XmlMDF_ADriver(theMsgDriver, STANDARD_TYPE(XCAFDoc_AssemblyItemRef)->Name()) -{ -} - -//======================================================================= -//function : -//purpose : -//======================================================================= -Handle(TDF_Attribute) XmlMXCAFDoc_AssemblyItemRefDriver::NewEmpty() const -{ - return new XCAFDoc_AssemblyItemRef(); -} - -//======================================================================= -//function : -//purpose : -//======================================================================= -Standard_Boolean XmlMXCAFDoc_AssemblyItemRefDriver::Paste(const XmlObjMgt_Persistent& theSource, - const Handle(TDF_Attribute)& theTarget, - XmlObjMgt_RRelocationTable& /*theRelocTable*/) const -{ - const XmlObjMgt_Element& anElement = theSource; - - XmlObjMgt_DOMString aPath = anElement.getAttribute(::Path()); - if (aPath == NULL) - return Standard_False; - - Handle(XCAFDoc_AssemblyItemRef) aThis = Handle(XCAFDoc_AssemblyItemRef)::DownCast(theTarget); - if (aThis.IsNull()) - return Standard_False; - - aThis->Set(aPath.GetString()); - - return Standard_True; -} - -//======================================================================= -//function : -//purpose : -//======================================================================= -void XmlMXCAFDoc_AssemblyItemRefDriver::Paste(const Handle(TDF_Attribute)& theSource, - XmlObjMgt_Persistent& theTarget, - XmlObjMgt_SRelocationTable& /*theRelocTable*/) const -{ - Handle(XCAFDoc_AssemblyItemRef) aThis = Handle(XCAFDoc_AssemblyItemRef)::DownCast(theSource); - - XmlObjMgt_DOMString aPath(aThis->Get().ToString().ToCString()); - - theTarget.Element().setAttribute(::Path(), aPath); -} diff --git a/src/XmlMXCAFDoc/XmlMXCAFDoc_AssemblyAtemRefDriver.hxx b/src/XmlMXCAFDoc/XmlMXCAFDoc_AssemblyAtemRefDriver.hxx deleted file mode 100644 index 2be1a1e751..0000000000 --- a/src/XmlMXCAFDoc/XmlMXCAFDoc_AssemblyAtemRefDriver.hxx +++ /dev/null @@ -1,55 +0,0 @@ -// Created on: 2017-02-16 -// Created by: Sergey NIKONOV -// Copyright (c) 2008-2017 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 _XmlMXCAFDoc_AssemblyItemRefDriver_HeaderFile -#define _XmlMXCAFDoc_AssemblyItemRefDriver_HeaderFile - -#include -#include - -#include -#include -#include -#include - -class CDM_MessageDriver; -class TDF_Attribute; -class XmlObjMgt_Persistent; - -class XmlMXCAFDoc_AssemblyItemRefDriver; -DEFINE_STANDARD_HANDLE(XmlMXCAFDoc_AssemblyItemRefDriver, XmlMDF_ADriver) - -//! Attribute Driver. -class XmlMXCAFDoc_AssemblyItemRefDriver : public XmlMDF_ADriver -{ -public: - - Standard_EXPORT XmlMXCAFDoc_AssemblyItemRefDriver(const Handle(CDM_MessageDriver)& theMessageDriver); - - Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE; - - Standard_EXPORT Standard_Boolean Paste(const XmlObjMgt_Persistent& theSource, - const Handle(TDF_Attribute)& theTarget, - XmlObjMgt_RRelocationTable& theRelocTable) const Standard_OVERRIDE; - - Standard_EXPORT void Paste(const Handle(TDF_Attribute)& theSource, - XmlObjMgt_Persistent& theTarget, - XmlObjMgt_SRelocationTable& theRelocTable) const Standard_OVERRIDE; - - DEFINE_STANDARD_RTTIEXT(XmlMXCAFDoc_AssemblyItemRefDriver, XmlMDF_ADriver) - -}; - -#endif // _XmlMXCAFDoc_AssemblyItemRefDriver_HeaderFile diff --git a/src/XmlMXCAFDoc/XmlMXCAFDoc_AssemblyItemRefDriver.cxx b/src/XmlMXCAFDoc/XmlMXCAFDoc_AssemblyItemRefDriver.cxx new file mode 100644 index 0000000000..23404ed1f3 --- /dev/null +++ b/src/XmlMXCAFDoc/XmlMXCAFDoc_AssemblyItemRefDriver.cxx @@ -0,0 +1,80 @@ +// Created on: 2017-02-14 +// Created by: Sergey NIKONOV +// Copyright (c) 2008-2017 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 +#include +#include +#include +#include +#include + +IMPLEMENT_STANDARD_RTTIEXT(XmlMXCAFDoc_AssemblyItemRefDriver, XmlMDF_ADriver) +IMPLEMENT_DOMSTRING(Path, "path") + +//======================================================================= +//function : +//purpose : +//======================================================================= +XmlMXCAFDoc_AssemblyItemRefDriver::XmlMXCAFDoc_AssemblyItemRefDriver(const Handle(CDM_MessageDriver)& theMsgDriver) +: XmlMDF_ADriver(theMsgDriver, STANDARD_TYPE(XCAFDoc_AssemblyItemRef)->Name()) +{ +} + +//======================================================================= +//function : +//purpose : +//======================================================================= +Handle(TDF_Attribute) XmlMXCAFDoc_AssemblyItemRefDriver::NewEmpty() const +{ + return new XCAFDoc_AssemblyItemRef(); +} + +//======================================================================= +//function : +//purpose : +//======================================================================= +Standard_Boolean XmlMXCAFDoc_AssemblyItemRefDriver::Paste(const XmlObjMgt_Persistent& theSource, + const Handle(TDF_Attribute)& theTarget, + XmlObjMgt_RRelocationTable& /*theRelocTable*/) const +{ + const XmlObjMgt_Element& anElement = theSource; + + XmlObjMgt_DOMString aPath = anElement.getAttribute(::Path()); + if (aPath == NULL) + return Standard_False; + + Handle(XCAFDoc_AssemblyItemRef) aThis = Handle(XCAFDoc_AssemblyItemRef)::DownCast(theTarget); + if (aThis.IsNull()) + return Standard_False; + + aThis->Set(aPath.GetString()); + + return Standard_True; +} + +//======================================================================= +//function : +//purpose : +//======================================================================= +void XmlMXCAFDoc_AssemblyItemRefDriver::Paste(const Handle(TDF_Attribute)& theSource, + XmlObjMgt_Persistent& theTarget, + XmlObjMgt_SRelocationTable& /*theRelocTable*/) const +{ + Handle(XCAFDoc_AssemblyItemRef) aThis = Handle(XCAFDoc_AssemblyItemRef)::DownCast(theSource); + + XmlObjMgt_DOMString aPath(aThis->Get().ToString().ToCString()); + + theTarget.Element().setAttribute(::Path(), aPath); +} diff --git a/src/XmlMXCAFDoc/XmlMXCAFDoc_AssemblyItemRefDriver.hxx b/src/XmlMXCAFDoc/XmlMXCAFDoc_AssemblyItemRefDriver.hxx new file mode 100644 index 0000000000..2be1a1e751 --- /dev/null +++ b/src/XmlMXCAFDoc/XmlMXCAFDoc_AssemblyItemRefDriver.hxx @@ -0,0 +1,55 @@ +// Created on: 2017-02-16 +// Created by: Sergey NIKONOV +// Copyright (c) 2008-2017 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 _XmlMXCAFDoc_AssemblyItemRefDriver_HeaderFile +#define _XmlMXCAFDoc_AssemblyItemRefDriver_HeaderFile + +#include +#include + +#include +#include +#include +#include + +class CDM_MessageDriver; +class TDF_Attribute; +class XmlObjMgt_Persistent; + +class XmlMXCAFDoc_AssemblyItemRefDriver; +DEFINE_STANDARD_HANDLE(XmlMXCAFDoc_AssemblyItemRefDriver, XmlMDF_ADriver) + +//! Attribute Driver. +class XmlMXCAFDoc_AssemblyItemRefDriver : public XmlMDF_ADriver +{ +public: + + Standard_EXPORT XmlMXCAFDoc_AssemblyItemRefDriver(const Handle(CDM_MessageDriver)& theMessageDriver); + + Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Boolean Paste(const XmlObjMgt_Persistent& theSource, + const Handle(TDF_Attribute)& theTarget, + XmlObjMgt_RRelocationTable& theRelocTable) const Standard_OVERRIDE; + + Standard_EXPORT void Paste(const Handle(TDF_Attribute)& theSource, + XmlObjMgt_Persistent& theTarget, + XmlObjMgt_SRelocationTable& theRelocTable) const Standard_OVERRIDE; + + DEFINE_STANDARD_RTTIEXT(XmlMXCAFDoc_AssemblyItemRefDriver, XmlMDF_ADriver) + +}; + +#endif // _XmlMXCAFDoc_AssemblyItemRefDriver_HeaderFile