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:
42
src/XmlMDataXtd/XmlMDataXtd.cdl
Executable file
42
src/XmlMDataXtd/XmlMDataXtd.cdl
Executable file
@@ -0,0 +1,42 @@
|
||||
-- File: XmlMDataXtd.cdl
|
||||
|
||||
package XmlMDataXtd
|
||||
|
||||
---Purpose: Storage and Retrieval drivers for modelling attributes.
|
||||
-- Transient attributes are defined in package TDataXtd.
|
||||
|
||||
uses XmlMDF,
|
||||
XmlObjMgt,
|
||||
TDF,
|
||||
CDM
|
||||
|
||||
is
|
||||
---Purpose: Storage/Retrieval drivers for TDataXtd attributes
|
||||
-- =======================================
|
||||
|
||||
class AxisDriver;
|
||||
|
||||
class ShapeDriver;
|
||||
|
||||
class PointDriver;
|
||||
|
||||
class PlaneDriver;
|
||||
|
||||
class GeometryDriver;
|
||||
|
||||
class ConstraintDriver;
|
||||
|
||||
class PlacementDriver;
|
||||
|
||||
class PatternStdDriver;
|
||||
|
||||
|
||||
AddDrivers (aDriverTable : ADriverTable from XmlMDF;
|
||||
anMsgDrv : MessageDriver from CDM);
|
||||
---Purpose: Adds the attribute drivers to <aDriverTable>.
|
||||
|
||||
SetDocumentVersion (DocVersion : Integer from Standard);
|
||||
|
||||
DocumentVersion returns Integer from Standard;
|
||||
|
||||
end XmlMDataXtd;
|
52
src/XmlMDataXtd/XmlMDataXtd.cxx
Executable file
52
src/XmlMDataXtd/XmlMDataXtd.cxx
Executable file
@@ -0,0 +1,52 @@
|
||||
// File: XmlMDataXtd.cxx
|
||||
// Created: Mon Aug 27 17:33:16 2001
|
||||
// Author: Alexander GRIGORIEV
|
||||
// Copyright: Open Cascade 2001
|
||||
// History:
|
||||
// modified 20.04.2009 Sergey Zaritchny
|
||||
|
||||
#include <XmlMDataXtd.ixx>
|
||||
|
||||
#include <XmlMDataXtd_ShapeDriver.hxx>
|
||||
#include <XmlMDataXtd_PointDriver.hxx>
|
||||
#include <XmlMDataXtd_AxisDriver.hxx>
|
||||
#include <XmlMDataXtd_PlaneDriver.hxx>
|
||||
#include <XmlMDataXtd_GeometryDriver.hxx>
|
||||
#include <XmlMDataXtd_ConstraintDriver.hxx>
|
||||
#include <XmlMDataXtd_PlacementDriver.hxx>
|
||||
#include <XmlMDataXtd_PatternStdDriver.hxx>
|
||||
|
||||
static Standard_Integer myDocumentVersion = -1;
|
||||
//=======================================================================
|
||||
//function : AddDrivers
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void XmlMDataXtd::AddDrivers (const Handle(XmlMDF_ADriverTable)& aDriverTable,
|
||||
const Handle(CDM_MessageDriver)& anMsgDrv)
|
||||
{
|
||||
aDriverTable-> AddDriver (new XmlMDataXtd_ShapeDriver (anMsgDrv));
|
||||
aDriverTable-> AddDriver (new XmlMDataXtd_PointDriver (anMsgDrv));
|
||||
aDriverTable-> AddDriver (new XmlMDataXtd_AxisDriver (anMsgDrv));
|
||||
aDriverTable-> AddDriver (new XmlMDataXtd_PlaneDriver (anMsgDrv));
|
||||
aDriverTable-> AddDriver (new XmlMDataXtd_GeometryDriver (anMsgDrv));
|
||||
aDriverTable-> AddDriver (new XmlMDataXtd_ConstraintDriver (anMsgDrv));
|
||||
aDriverTable-> AddDriver (new XmlMDataXtd_PlacementDriver (anMsgDrv));
|
||||
aDriverTable-> AddDriver (new XmlMDataXtd_PatternStdDriver (anMsgDrv));
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : SetDocumentVersion
|
||||
//purpose : Sets current document version
|
||||
//=======================================================================
|
||||
void XmlMDataXtd::SetDocumentVersion(const Standard_Integer theVersion)
|
||||
{
|
||||
myDocumentVersion = theVersion;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : DocumentVersion
|
||||
//purpose : Retrieved document version
|
||||
//=======================================================================
|
||||
Standard_Integer XmlMDataXtd::DocumentVersion()
|
||||
{
|
||||
return myDocumentVersion;
|
||||
}
|
32
src/XmlMDataXtd/XmlMDataXtd_AxisDriver.cdl
Executable file
32
src/XmlMDataXtd/XmlMDataXtd_AxisDriver.cdl
Executable file
@@ -0,0 +1,32 @@
|
||||
-- File: XmlMDataXtd_AxisDriver.cdl
|
||||
-- Created: Fri Aug 24 20:16:51 2001
|
||||
-- Author: Alexander GRIGORIEV
|
||||
-- Copyright: Open Cascade 2001
|
||||
|
||||
class AxisDriver from XmlMDataXtd inherits ADriver from XmlMDF
|
||||
|
||||
---Purpose: Attribute Driver.
|
||||
|
||||
uses
|
||||
SRelocationTable from XmlObjMgt,
|
||||
RRelocationTable from XmlObjMgt,
|
||||
Persistent from XmlObjMgt,
|
||||
MessageDriver from CDM,
|
||||
Attribute from TDF
|
||||
|
||||
is
|
||||
Create (theMessageDriver:MessageDriver from CDM)
|
||||
returns mutable AxisDriver from XmlMDataXtd;
|
||||
|
||||
NewEmpty (me) returns mutable Attribute from TDF;
|
||||
|
||||
Paste(me; Source : Persistent from XmlObjMgt;
|
||||
Target : mutable Attribute from TDF;
|
||||
RelocTable : out RRelocationTable from XmlObjMgt)
|
||||
returns Boolean from Standard;
|
||||
|
||||
Paste(me; Source : Attribute from TDF;
|
||||
Target : in out Persistent from XmlObjMgt;
|
||||
RelocTable : out SRelocationTable from XmlObjMgt);
|
||||
|
||||
end AxisDriver;
|
52
src/XmlMDataXtd/XmlMDataXtd_AxisDriver.cxx
Executable file
52
src/XmlMDataXtd/XmlMDataXtd_AxisDriver.cxx
Executable file
@@ -0,0 +1,52 @@
|
||||
// File: XmlMDataXtd_AxisDriver.cxx
|
||||
// Created: Fri Aug 24 20:46:58 2001
|
||||
// Author: Alexnder GRIGORIEV
|
||||
// Copyright: Open Cascade 2001
|
||||
// History:
|
||||
|
||||
#include <XmlMDataXtd_AxisDriver.ixx>
|
||||
#include <TDataXtd_Axis.hxx>
|
||||
|
||||
//=======================================================================
|
||||
//function : XmlMDataXtd_AxisDriver
|
||||
//purpose : Constructor
|
||||
//=======================================================================
|
||||
|
||||
XmlMDataXtd_AxisDriver::XmlMDataXtd_AxisDriver
|
||||
(const Handle(CDM_MessageDriver)& theMsgDriver)
|
||||
: XmlMDF_ADriver (theMsgDriver, NULL)
|
||||
{}
|
||||
|
||||
//=======================================================================
|
||||
//function : NewEmpty
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
Handle(TDF_Attribute) XmlMDataXtd_AxisDriver::NewEmpty() const
|
||||
{
|
||||
return (new TDataXtd_Axis());
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : Paste
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
Standard_Boolean XmlMDataXtd_AxisDriver::Paste
|
||||
(const XmlObjMgt_Persistent&,
|
||||
const Handle(TDF_Attribute)&,
|
||||
XmlObjMgt_RRelocationTable& ) const
|
||||
{
|
||||
return Standard_True;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : Paste
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
void XmlMDataXtd_AxisDriver::Paste (const Handle(TDF_Attribute)&,
|
||||
XmlObjMgt_Persistent&,
|
||||
XmlObjMgt_SRelocationTable& ) const
|
||||
{
|
||||
}
|
32
src/XmlMDataXtd/XmlMDataXtd_ConstraintDriver.cdl
Executable file
32
src/XmlMDataXtd/XmlMDataXtd_ConstraintDriver.cdl
Executable file
@@ -0,0 +1,32 @@
|
||||
-- File: XmlMDataXtd_ConstraintDriver.cdl
|
||||
-- Created: Fri Aug 24 20:16:51 2001
|
||||
-- Author: Alexander GRIGORIEV
|
||||
-- Copyright: Open Cascade 2001
|
||||
|
||||
class ConstraintDriver from XmlMDataXtd inherits ADriver from XmlMDF
|
||||
|
||||
---Purpose: Attribute Driver.
|
||||
|
||||
uses
|
||||
SRelocationTable from XmlObjMgt,
|
||||
RRelocationTable from XmlObjMgt,
|
||||
Persistent from XmlObjMgt,
|
||||
MessageDriver from CDM,
|
||||
Attribute from TDF
|
||||
|
||||
is
|
||||
Create (theMessageDriver:MessageDriver from CDM)
|
||||
returns mutable ConstraintDriver from XmlMDataXtd;
|
||||
|
||||
NewEmpty (me) returns mutable Attribute from TDF;
|
||||
|
||||
Paste(me; Source : Persistent from XmlObjMgt;
|
||||
Target : mutable Attribute from TDF;
|
||||
RelocTable : out RRelocationTable from XmlObjMgt)
|
||||
returns Boolean from Standard;
|
||||
|
||||
Paste(me; Source : Attribute from TDF;
|
||||
Target : in out Persistent from XmlObjMgt;
|
||||
RelocTable : out SRelocationTable from XmlObjMgt);
|
||||
|
||||
end ConstraintDriver;
|
381
src/XmlMDataXtd/XmlMDataXtd_ConstraintDriver.cxx
Executable file
381
src/XmlMDataXtd/XmlMDataXtd_ConstraintDriver.cxx
Executable file
@@ -0,0 +1,381 @@
|
||||
// File: XmlMDataXtd_ConstraintDriver.cxx
|
||||
// Created: Fri Aug 24 20:46:58 2001
|
||||
// Author: Alexnder GRIGORIEV
|
||||
// Copyright: Open Cascade 2001
|
||||
// History:
|
||||
|
||||
#include <XmlMDataXtd_ConstraintDriver.ixx>
|
||||
|
||||
#include <TDataXtd_Constraint.hxx>
|
||||
#include <TDataStd_Real.hxx>
|
||||
#include <TNaming_NamedShape.hxx>
|
||||
|
||||
#include <XmlObjMgt.hxx>
|
||||
|
||||
static TDataXtd_ConstraintEnum ConstraintTypeEnum
|
||||
(const XmlObjMgt_DOMString&);
|
||||
static const XmlObjMgt_DOMString& ConstraintTypeString
|
||||
(const TDataXtd_ConstraintEnum);
|
||||
|
||||
IMPLEMENT_DOMSTRING (TypeString, "contype")
|
||||
IMPLEMENT_DOMSTRING (ValueString, "valueref")
|
||||
IMPLEMENT_DOMSTRING (GeometriesString, "geometries")
|
||||
IMPLEMENT_DOMSTRING (PlaneString, "plane")
|
||||
IMPLEMENT_DOMSTRING (StatusString, "flags")
|
||||
// planar constraints
|
||||
IMPLEMENT_DOMSTRING (ConRadiusString, "radius")
|
||||
IMPLEMENT_DOMSTRING (ConDiameterString, "diameter")
|
||||
IMPLEMENT_DOMSTRING (ConMinRadiusString, "minorradius")
|
||||
IMPLEMENT_DOMSTRING (ConMajRadiusString, "majorradius")
|
||||
IMPLEMENT_DOMSTRING (ConTangentString, "tangent")
|
||||
IMPLEMENT_DOMSTRING (ConParallelString, "parallel")
|
||||
IMPLEMENT_DOMSTRING (ConPerpendicularString, "perpendicular")
|
||||
IMPLEMENT_DOMSTRING (ConConcentricString, "concentric")
|
||||
IMPLEMENT_DOMSTRING (ConCoincidentString, "coincident")
|
||||
IMPLEMENT_DOMSTRING (ConDistanceString, "distance")
|
||||
IMPLEMENT_DOMSTRING (ConAngleString, "angle")
|
||||
IMPLEMENT_DOMSTRING (ConEqualRadiusString, "equalradius")
|
||||
IMPLEMENT_DOMSTRING (ConSymmetryString, "symmetry")
|
||||
IMPLEMENT_DOMSTRING (ConMidPointString, "midpoint")
|
||||
IMPLEMENT_DOMSTRING (ConEqualDistanceString, "equaldist")
|
||||
IMPLEMENT_DOMSTRING (ConFixString, "fix")
|
||||
IMPLEMENT_DOMSTRING (ConRigidString, "rigid")
|
||||
// placement constraints
|
||||
IMPLEMENT_DOMSTRING (ConFromString, "from")
|
||||
IMPLEMENT_DOMSTRING (ConAxisString, "axis")
|
||||
IMPLEMENT_DOMSTRING (ConMateString, "mate")
|
||||
IMPLEMENT_DOMSTRING (ConAlignFacesString, "alignfaces")
|
||||
IMPLEMENT_DOMSTRING (ConAlignAxesString, "alignaxes")
|
||||
IMPLEMENT_DOMSTRING (ConAxesAngleString, "axesangle")
|
||||
IMPLEMENT_DOMSTRING (ConFacesAngleString, "facesangle")
|
||||
IMPLEMENT_DOMSTRING (ConRoundString, "round")
|
||||
IMPLEMENT_DOMSTRING (ConOffsetString, "offset")
|
||||
|
||||
//=======================================================================
|
||||
//function : XmlMDataXtd_ConstraintDriver
|
||||
//purpose : Constructor
|
||||
//=======================================================================
|
||||
XmlMDataXtd_ConstraintDriver::XmlMDataXtd_ConstraintDriver
|
||||
(const Handle(CDM_MessageDriver)& theMsgDriver)
|
||||
: XmlMDF_ADriver (theMsgDriver, NULL)
|
||||
{}
|
||||
|
||||
//=======================================================================
|
||||
//function : NewEmpty
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
Handle(TDF_Attribute) XmlMDataXtd_ConstraintDriver::NewEmpty() const
|
||||
{
|
||||
return (new TDataXtd_Constraint());
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : Paste
|
||||
//purpose : persistent -> transient (retrieve)
|
||||
//=======================================================================
|
||||
Standard_Boolean XmlMDataXtd_ConstraintDriver::Paste
|
||||
(const XmlObjMgt_Persistent& theSource,
|
||||
const Handle(TDF_Attribute)& theTarget,
|
||||
XmlObjMgt_RRelocationTable& theRelocTable) const
|
||||
{
|
||||
Handle(TDataXtd_Constraint) aC =
|
||||
Handle(TDataXtd_Constraint)::DownCast(theTarget);
|
||||
const XmlObjMgt_Element& anElem = theSource;
|
||||
|
||||
Standard_Integer aNb;
|
||||
TCollection_ExtendedString aMsgString;
|
||||
|
||||
// value
|
||||
Handle(TDataStd_Real) aTValue;
|
||||
XmlObjMgt_DOMString aDOMStr = anElem.getAttribute(::ValueString());
|
||||
if (aDOMStr != NULL)
|
||||
{
|
||||
if (!aDOMStr.GetInteger(aNb))
|
||||
{
|
||||
aMsgString = TCollection_ExtendedString
|
||||
("XmlMDataXtd_ConstraintDriver: "
|
||||
"Cannot retrieve reference on Integer attribute from \"")
|
||||
+ aDOMStr + "\"";
|
||||
WriteMessage (aMsgString);
|
||||
return Standard_False;
|
||||
}
|
||||
if (aNb > 0)
|
||||
{
|
||||
if (theRelocTable.IsBound(aNb))
|
||||
aTValue = Handle(TDataStd_Real)::DownCast(theRelocTable.Find(aNb));
|
||||
else
|
||||
{
|
||||
aTValue = new TDataStd_Real;
|
||||
theRelocTable.Bind(aNb, aTValue);
|
||||
}
|
||||
aC->SetValue(aTValue);
|
||||
}
|
||||
}
|
||||
|
||||
// geometries
|
||||
aDOMStr = anElem.getAttribute(::GeometriesString());
|
||||
if (aDOMStr != NULL)
|
||||
{
|
||||
Standard_CString aGs = Standard_CString(aDOMStr.GetString());
|
||||
|
||||
// first geometry
|
||||
if (!XmlObjMgt::GetInteger(aGs, aNb))
|
||||
{
|
||||
aMsgString = TCollection_ExtendedString
|
||||
("XmlMDataXtd_ConstraintDriver: Cannot retrieve reference on first Geometry from \"")
|
||||
+ aDOMStr + "\"";
|
||||
WriteMessage (aMsgString);
|
||||
return Standard_False;
|
||||
}
|
||||
Standard_Integer i = 1;
|
||||
while (aNb > 0)
|
||||
{
|
||||
Handle(TNaming_NamedShape) aG;
|
||||
if (theRelocTable.IsBound(aNb))
|
||||
aG = Handle(TNaming_NamedShape)::DownCast(theRelocTable.Find(aNb));
|
||||
else
|
||||
{
|
||||
aG = new TNaming_NamedShape;
|
||||
theRelocTable.Bind(aNb, aG);
|
||||
}
|
||||
aC->SetGeometry (i, aG);
|
||||
|
||||
// next geometry
|
||||
if (!XmlObjMgt::GetInteger(aGs, aNb)) aNb = 0;
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
// plane
|
||||
aDOMStr = anElem.getAttribute(::PlaneString());
|
||||
if (aDOMStr != NULL)
|
||||
{
|
||||
if (!aDOMStr.GetInteger(aNb))
|
||||
{
|
||||
aMsgString = TCollection_ExtendedString
|
||||
("XmlMDataXtd_ConstraintDriver: Cannot retrieve reference on Plane from \"")
|
||||
+ aDOMStr + "\"";
|
||||
WriteMessage (aMsgString);
|
||||
return Standard_False;
|
||||
}
|
||||
Handle(TNaming_NamedShape) aTPlane;
|
||||
if (aNb > 0)
|
||||
{
|
||||
if (theRelocTable.IsBound(aNb))
|
||||
aTPlane = Handle(TNaming_NamedShape)::DownCast(theRelocTable.Find(aNb));
|
||||
else
|
||||
{
|
||||
aTPlane = new TNaming_NamedShape;
|
||||
theRelocTable.Bind(aNb, aTPlane);
|
||||
}
|
||||
aC->SetPlane(aTPlane);
|
||||
}
|
||||
}
|
||||
|
||||
// constraint type
|
||||
XmlObjMgt_DOMString aType = anElem.getAttribute(::TypeString());
|
||||
aC->SetType(ConstraintTypeEnum(aType));
|
||||
|
||||
// flags
|
||||
XmlObjMgt_DOMString aString = anElem.getAttribute(::StatusString());
|
||||
const char * aPtr = aString.GetString();
|
||||
aC->Verified((*aPtr) == '+');
|
||||
aPtr ++;
|
||||
aC->Inverted((*aPtr) == '+');
|
||||
aPtr ++;
|
||||
aC->Reversed((*aPtr) == '+');
|
||||
|
||||
return Standard_True;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : Paste
|
||||
//purpose : transient -> persistent (store)
|
||||
//=======================================================================
|
||||
void XmlMDataXtd_ConstraintDriver::Paste
|
||||
(const Handle(TDF_Attribute)& theSource,
|
||||
XmlObjMgt_Persistent& theTarget,
|
||||
XmlObjMgt_SRelocationTable& theRelocTable) const
|
||||
{
|
||||
Handle(TDataXtd_Constraint) aC =
|
||||
Handle(TDataXtd_Constraint)::DownCast(theSource);
|
||||
XmlObjMgt_Element& anElem = theTarget;
|
||||
|
||||
Standard_Integer aNb;
|
||||
|
||||
// value
|
||||
Handle(TDataStd_Real) aValue = aC->GetValue();
|
||||
if (!aValue.IsNull())
|
||||
{
|
||||
aNb = theRelocTable.FindIndex(aValue);
|
||||
if (aNb == 0)
|
||||
{
|
||||
aNb = theRelocTable.Add(aValue);
|
||||
}
|
||||
anElem.setAttribute(::ValueString(), aNb);
|
||||
}
|
||||
|
||||
// geometries
|
||||
Standard_Integer NbGeom = aC->NbGeometries();
|
||||
if (NbGeom >= 1)
|
||||
{
|
||||
TCollection_AsciiString aGsStr;
|
||||
for (Standard_Integer i = 1; i <= NbGeom; i++)
|
||||
{
|
||||
Handle(TNaming_NamedShape) aG = aC->GetGeometry(i);
|
||||
aNb = 0;
|
||||
if (!aG.IsNull())
|
||||
{
|
||||
aNb = theRelocTable.FindIndex(aG);
|
||||
if (aNb == 0)
|
||||
{
|
||||
aNb = theRelocTable.Add(aG);
|
||||
}
|
||||
aGsStr += TCollection_AsciiString(aNb) + " ";
|
||||
}
|
||||
else aGsStr += "0 ";
|
||||
}
|
||||
anElem.setAttribute(::GeometriesString(), aGsStr.ToCString());
|
||||
}
|
||||
|
||||
// plane
|
||||
Handle(TNaming_NamedShape) aTPlane = aC->GetPlane();
|
||||
if (!aTPlane.IsNull())
|
||||
{
|
||||
aNb = theRelocTable.FindIndex(aTPlane);
|
||||
if (aNb == 0)
|
||||
{
|
||||
aNb = theRelocTable.Add(aTPlane);
|
||||
}
|
||||
anElem.setAttribute(::PlaneString(), aNb);
|
||||
}
|
||||
|
||||
// constraint type
|
||||
anElem.setAttribute(::TypeString(), ConstraintTypeString(aC->GetType()));
|
||||
|
||||
// flags
|
||||
TCollection_AsciiString aStatusStr;
|
||||
|
||||
if (aC->Verified()) aStatusStr += "+";
|
||||
else aStatusStr += "-";
|
||||
|
||||
if (aC->Inverted()) aStatusStr += "+";
|
||||
else aStatusStr += "-";
|
||||
|
||||
if (aC->Reversed()) aStatusStr += "+";
|
||||
else aStatusStr += "-";
|
||||
|
||||
anElem.setAttribute(::StatusString(), aStatusStr.ToCString());
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : ConstraintTypeEnum
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
static TDataXtd_ConstraintEnum ConstraintTypeEnum (const XmlObjMgt_DOMString& theString)
|
||||
{
|
||||
TDataXtd_ConstraintEnum aResult = TDataXtd_RADIUS;
|
||||
// planar constraints
|
||||
if (!theString.equals (::ConRadiusString()))
|
||||
{
|
||||
if (theString.equals (::ConDiameterString()))
|
||||
aResult = TDataXtd_DIAMETER;
|
||||
else if (theString.equals (::ConMinRadiusString()))
|
||||
aResult = TDataXtd_MINOR_RADIUS;
|
||||
else if (theString.equals (::ConMajRadiusString()))
|
||||
aResult = TDataXtd_MAJOR_RADIUS;
|
||||
else if (theString.equals (::ConTangentString()))
|
||||
aResult = TDataXtd_TANGENT;
|
||||
else if (theString.equals (::ConParallelString()))
|
||||
aResult = TDataXtd_PARALLEL;
|
||||
else if (theString.equals (::ConPerpendicularString()))
|
||||
aResult = TDataXtd_PERPENDICULAR;
|
||||
else if (theString.equals (::ConConcentricString()))
|
||||
aResult = TDataXtd_CONCENTRIC;
|
||||
else if (theString.equals (::ConCoincidentString()))
|
||||
aResult = TDataXtd_COINCIDENT;
|
||||
else if (theString.equals (::ConDistanceString()))
|
||||
aResult = TDataXtd_DISTANCE;
|
||||
else if (theString.equals (::ConAngleString()))
|
||||
aResult = TDataXtd_ANGLE;
|
||||
else if (theString.equals (::ConEqualRadiusString()))
|
||||
aResult = TDataXtd_EQUAL_RADIUS;
|
||||
else if (theString.equals (::ConSymmetryString()))
|
||||
aResult = TDataXtd_SYMMETRY;
|
||||
else if (theString.equals (::ConMidPointString()))
|
||||
aResult = TDataXtd_MIDPOINT;
|
||||
else if (theString.equals (::ConEqualDistanceString()))
|
||||
aResult = TDataXtd_EQUAL_DISTANCE;
|
||||
else if (theString.equals (::ConFixString()))
|
||||
aResult = TDataXtd_FIX;
|
||||
else if (theString.equals (::ConRigidString()))
|
||||
aResult = TDataXtd_RIGID;
|
||||
// placement constraints
|
||||
else if (theString.equals (::ConFromString()))
|
||||
aResult = TDataXtd_FROM;
|
||||
else if (theString.equals (::ConAxisString()))
|
||||
aResult = TDataXtd_AXIS;
|
||||
else if (theString.equals (::ConMateString()))
|
||||
aResult = TDataXtd_MATE;
|
||||
else if (theString.equals (::ConAlignFacesString()))
|
||||
aResult = TDataXtd_ALIGN_FACES;
|
||||
else if (theString.equals (::ConAlignAxesString()))
|
||||
aResult = TDataXtd_ALIGN_AXES;
|
||||
else if (theString.equals (::ConAxesAngleString()))
|
||||
aResult = TDataXtd_AXES_ANGLE;
|
||||
else if (theString.equals (::ConFacesAngleString()))
|
||||
aResult = TDataXtd_FACES_ANGLE;
|
||||
else if (theString.equals (::ConRoundString()))
|
||||
aResult = TDataXtd_ROUND;
|
||||
else if (theString.equals (::ConOffsetString()))
|
||||
aResult = TDataXtd_OFFSET;
|
||||
else
|
||||
Standard_DomainError::Raise
|
||||
("TDataXtd_ConstraintEnum; string value without enum term equivalence");
|
||||
}
|
||||
return aResult;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : ConstraintTypeString
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
static const XmlObjMgt_DOMString& ConstraintTypeString (const TDataXtd_ConstraintEnum theE)
|
||||
{
|
||||
switch (theE)
|
||||
{
|
||||
// planar constraints
|
||||
case TDataXtd_RADIUS : return ::ConRadiusString();
|
||||
case TDataXtd_DIAMETER : return ::ConDiameterString();
|
||||
case TDataXtd_MINOR_RADIUS : return ::ConMinRadiusString();
|
||||
case TDataXtd_MAJOR_RADIUS : return ::ConMajRadiusString();
|
||||
case TDataXtd_TANGENT : return ::ConTangentString();
|
||||
case TDataXtd_PARALLEL : return ::ConParallelString();
|
||||
case TDataXtd_PERPENDICULAR : return ::ConPerpendicularString();
|
||||
case TDataXtd_CONCENTRIC : return ::ConConcentricString();
|
||||
case TDataXtd_COINCIDENT : return ::ConCoincidentString();
|
||||
case TDataXtd_DISTANCE : return ::ConDistanceString();
|
||||
case TDataXtd_ANGLE : return ::ConAngleString();
|
||||
case TDataXtd_EQUAL_RADIUS : return ::ConEqualRadiusString();
|
||||
case TDataXtd_SYMMETRY : return ::ConSymmetryString();
|
||||
case TDataXtd_MIDPOINT : return ::ConMidPointString();
|
||||
case TDataXtd_EQUAL_DISTANCE : return ::ConEqualDistanceString();
|
||||
case TDataXtd_FIX : return ::ConFixString();
|
||||
case TDataXtd_RIGID : return ::ConRigidString();
|
||||
// placement constraints
|
||||
case TDataXtd_FROM : return ::ConFromString();
|
||||
case TDataXtd_AXIS : return ::ConAxisString();
|
||||
case TDataXtd_MATE : return ::ConMateString();
|
||||
case TDataXtd_ALIGN_FACES : return ::ConAlignFacesString();
|
||||
case TDataXtd_ALIGN_AXES : return ::ConAlignAxesString();
|
||||
case TDataXtd_AXES_ANGLE : return ::ConAxesAngleString();
|
||||
case TDataXtd_FACES_ANGLE : return ::ConFacesAngleString();
|
||||
case TDataXtd_ROUND : return ::ConRoundString();
|
||||
case TDataXtd_OFFSET : return ::ConOffsetString();
|
||||
|
||||
default:
|
||||
Standard_DomainError::Raise("TDataXtd_ConstraintEnum; enum term unknown");
|
||||
}
|
||||
static XmlObjMgt_DOMString aNullString;
|
||||
return aNullString; // To avoid compilation error message.
|
||||
}
|
32
src/XmlMDataXtd/XmlMDataXtd_GeometryDriver.cdl
Executable file
32
src/XmlMDataXtd/XmlMDataXtd_GeometryDriver.cdl
Executable file
@@ -0,0 +1,32 @@
|
||||
-- File: XmlMDataXtd_GeometryDriver.cdl
|
||||
-- Created: Fri Aug 24 20:16:51 2001
|
||||
-- Author: Alexander GRIGORIEV
|
||||
-- Copyright: Open Cascade 2001
|
||||
|
||||
class GeometryDriver from XmlMDataXtd inherits ADriver from XmlMDF
|
||||
|
||||
---Purpose: Attribute Driver.
|
||||
|
||||
uses
|
||||
SRelocationTable from XmlObjMgt,
|
||||
RRelocationTable from XmlObjMgt,
|
||||
Persistent from XmlObjMgt,
|
||||
MessageDriver from CDM,
|
||||
Attribute from TDF
|
||||
|
||||
is
|
||||
Create (theMessageDriver:MessageDriver from CDM)
|
||||
returns mutable GeometryDriver from XmlMDataXtd;
|
||||
|
||||
NewEmpty (me) returns mutable Attribute from TDF;
|
||||
|
||||
Paste(me; Source : Persistent from XmlObjMgt;
|
||||
Target : mutable Attribute from TDF;
|
||||
RelocTable : out RRelocationTable from XmlObjMgt)
|
||||
returns Boolean from Standard;
|
||||
|
||||
Paste(me; Source : Attribute from TDF;
|
||||
Target : in out Persistent from XmlObjMgt;
|
||||
RelocTable : out SRelocationTable from XmlObjMgt);
|
||||
|
||||
end GeometryDriver;
|
124
src/XmlMDataXtd/XmlMDataXtd_GeometryDriver.cxx
Executable file
124
src/XmlMDataXtd/XmlMDataXtd_GeometryDriver.cxx
Executable file
@@ -0,0 +1,124 @@
|
||||
// File: XmlMDataXtd_GeometryDriver.cxx
|
||||
// Created: Fri Aug 24 20:46:58 2001
|
||||
// Author: Alexnder GRIGORIEV
|
||||
// Copyright: Open Cascade 2001
|
||||
// History:
|
||||
|
||||
#include <XmlMDataXtd_GeometryDriver.ixx>
|
||||
#include <TDataXtd_Geometry.hxx>
|
||||
|
||||
static const XmlObjMgt_DOMString& GeometryTypeString
|
||||
(const TDataXtd_GeometryEnum);
|
||||
static Standard_Boolean GeometryTypeEnum
|
||||
(const XmlObjMgt_DOMString& theString,
|
||||
TDataXtd_GeometryEnum& theResult);
|
||||
|
||||
IMPLEMENT_DOMSTRING (TypeString, "geomtype")
|
||||
|
||||
IMPLEMENT_DOMSTRING (GeomAnyString, "any")
|
||||
IMPLEMENT_DOMSTRING (GeomPointString, "point")
|
||||
IMPLEMENT_DOMSTRING (GeomLineString, "line")
|
||||
IMPLEMENT_DOMSTRING (GeomCircleString, "circle")
|
||||
IMPLEMENT_DOMSTRING (GeomEllipseString, "ellipse")
|
||||
|
||||
//=======================================================================
|
||||
//function : XmlMDataXtd_GeometryDriver
|
||||
//purpose : Constructor
|
||||
//=======================================================================
|
||||
XmlMDataXtd_GeometryDriver::XmlMDataXtd_GeometryDriver
|
||||
(const Handle(CDM_MessageDriver)& theMsgDriver)
|
||||
: XmlMDF_ADriver (theMsgDriver, NULL)
|
||||
{}
|
||||
|
||||
//=======================================================================
|
||||
//function : NewEmpty
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
Handle(TDF_Attribute) XmlMDataXtd_GeometryDriver::NewEmpty() const
|
||||
{
|
||||
return (new TDataXtd_Geometry());
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : Paste
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
Standard_Boolean XmlMDataXtd_GeometryDriver::Paste
|
||||
(const XmlObjMgt_Persistent& theSource,
|
||||
const Handle(TDF_Attribute)& theTarget,
|
||||
XmlObjMgt_RRelocationTable& ) const
|
||||
{
|
||||
Handle(TDataXtd_Geometry) aT =
|
||||
Handle(TDataXtd_Geometry)::DownCast (theTarget);
|
||||
|
||||
XmlObjMgt_DOMString aType = theSource.Element().getAttribute(::TypeString());
|
||||
TDataXtd_GeometryEnum aTypeEnum;
|
||||
if (GeometryTypeEnum (aType, aTypeEnum) == Standard_False) {
|
||||
WriteMessage ("TDataXtd_GeometryEnum; "
|
||||
"string value without enum term equivalence");
|
||||
return Standard_False;
|
||||
}
|
||||
|
||||
aT->SetType (aTypeEnum);
|
||||
return Standard_True;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : Paste
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void XmlMDataXtd_GeometryDriver::Paste (const Handle(TDF_Attribute)& theSource,
|
||||
XmlObjMgt_Persistent& theTarget,
|
||||
XmlObjMgt_SRelocationTable& ) const
|
||||
{
|
||||
Handle(TDataXtd_Geometry) aG = Handle(TDataXtd_Geometry)::DownCast(theSource);
|
||||
theTarget.Element().setAttribute (::TypeString(),
|
||||
GeometryTypeString (aG->GetType()));
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : GeometryTypeEnum
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
static Standard_Boolean GeometryTypeEnum (const XmlObjMgt_DOMString& theString,
|
||||
TDataXtd_GeometryEnum& theResult)
|
||||
{
|
||||
TDataXtd_GeometryEnum aResult = TDataXtd_ANY_GEOM;
|
||||
if (!theString.equals (::GeomAnyString()))
|
||||
{
|
||||
if (theString.equals (::GeomPointString()))
|
||||
aResult = TDataXtd_POINT;
|
||||
else if (theString.equals (::GeomLineString()))
|
||||
aResult = TDataXtd_LINE;
|
||||
else if (theString.equals (::GeomCircleString()))
|
||||
aResult = TDataXtd_CIRCLE;
|
||||
else if (theString.equals (::GeomEllipseString()))
|
||||
aResult = TDataXtd_ELLIPSE;
|
||||
else
|
||||
return Standard_False;
|
||||
}
|
||||
theResult = aResult;
|
||||
return Standard_True;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : GeometryTypeString
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
static const XmlObjMgt_DOMString& GeometryTypeString
|
||||
(const TDataXtd_GeometryEnum theE)
|
||||
{
|
||||
switch (theE)
|
||||
{
|
||||
case TDataXtd_ANY_GEOM : return ::GeomAnyString();
|
||||
case TDataXtd_POINT : return ::GeomPointString();
|
||||
case TDataXtd_LINE : return ::GeomLineString();
|
||||
case TDataXtd_CIRCLE : return ::GeomCircleString();
|
||||
case TDataXtd_ELLIPSE : return ::GeomEllipseString();
|
||||
|
||||
default:
|
||||
Standard_DomainError::Raise("TDataXtd_GeometryEnum; enum term unknown");
|
||||
}
|
||||
static XmlObjMgt_DOMString aNullString;
|
||||
return aNullString; // To avoid compilation error message.
|
||||
}
|
32
src/XmlMDataXtd/XmlMDataXtd_PatternStdDriver.cdl
Executable file
32
src/XmlMDataXtd/XmlMDataXtd_PatternStdDriver.cdl
Executable file
@@ -0,0 +1,32 @@
|
||||
-- File: XmlMDataXtd_PatternStdDriver.cdl
|
||||
-- Created: Fri Aug 24 20:16:51 2001
|
||||
-- Author: Alexander GRIGORIEV
|
||||
-- Copyright: Open Cascade 2001
|
||||
|
||||
class PatternStdDriver from XmlMDataXtd inherits ADriver from XmlMDF
|
||||
|
||||
---Purpose: Attribute Driver.
|
||||
|
||||
uses
|
||||
SRelocationTable from XmlObjMgt,
|
||||
RRelocationTable from XmlObjMgt,
|
||||
Persistent from XmlObjMgt,
|
||||
MessageDriver from CDM,
|
||||
Attribute from TDF
|
||||
|
||||
is
|
||||
Create (theMessageDriver:MessageDriver from CDM)
|
||||
returns mutable PatternStdDriver from XmlMDataXtd;
|
||||
|
||||
NewEmpty (me) returns mutable Attribute from TDF;
|
||||
|
||||
Paste(me; Source : Persistent from XmlObjMgt;
|
||||
Target : mutable Attribute from TDF;
|
||||
RelocTable : out RRelocationTable from XmlObjMgt)
|
||||
returns Boolean from Standard;
|
||||
|
||||
Paste(me; Source : Attribute from TDF;
|
||||
Target : in out Persistent from XmlObjMgt;
|
||||
RelocTable : out SRelocationTable from XmlObjMgt);
|
||||
|
||||
end PatternStdDriver;
|
310
src/XmlMDataXtd/XmlMDataXtd_PatternStdDriver.cxx
Executable file
310
src/XmlMDataXtd/XmlMDataXtd_PatternStdDriver.cxx
Executable file
@@ -0,0 +1,310 @@
|
||||
// File: XmlMDataXtd_PatternStdDriver.cxx
|
||||
// Created: Fri Aug 24 20:46:58 2001
|
||||
// Author: Alexnder GRIGORIEV
|
||||
// Copyright: Open Cascade 2001
|
||||
// History:
|
||||
|
||||
#include <XmlMDataXtd_PatternStdDriver.ixx>
|
||||
|
||||
#include <TDataStd_Real.hxx>
|
||||
#include <TDataStd_Integer.hxx>
|
||||
#include <TDataXtd_PatternStd.hxx>
|
||||
#include <TNaming_NamedShape.hxx>
|
||||
|
||||
IMPLEMENT_DOMSTRING (SignatureString, "signature")
|
||||
IMPLEMENT_DOMSTRING (Axis1RevString, "axis1reversed")
|
||||
IMPLEMENT_DOMSTRING (Axis2RevString, "axis2reversed")
|
||||
|
||||
IMPLEMENT_DOMSTRING (NbInstances1RefString, "nbinstances1")
|
||||
IMPLEMENT_DOMSTRING (Value1RefString, "value1ref")
|
||||
IMPLEMENT_DOMSTRING (Axis1RefString, "axis1")
|
||||
|
||||
IMPLEMENT_DOMSTRING (NbInstances2RefString, "nbinstances2")
|
||||
IMPLEMENT_DOMSTRING (Value2RefString, "value2ref")
|
||||
IMPLEMENT_DOMSTRING (Axis2RefString, "axis2")
|
||||
|
||||
IMPLEMENT_DOMSTRING (MirrorRefString, "mirror")
|
||||
|
||||
IMPLEMENT_DOMSTRING (TrueString, "true")
|
||||
|
||||
//=======================================================================
|
||||
//function : XmlMDataXtd_PatternStdDriver
|
||||
//purpose : Constructor
|
||||
//=======================================================================
|
||||
XmlMDataXtd_PatternStdDriver::XmlMDataXtd_PatternStdDriver
|
||||
(const Handle(CDM_MessageDriver)& theMsgDriver)
|
||||
: XmlMDF_ADriver (theMsgDriver, NULL)
|
||||
{}
|
||||
|
||||
//=======================================================================
|
||||
//function : NewEmpty
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
Handle(TDF_Attribute) XmlMDataXtd_PatternStdDriver::NewEmpty() const
|
||||
{
|
||||
return (new TDataXtd_PatternStd());
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : Paste
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
Standard_Boolean XmlMDataXtd_PatternStdDriver::Paste
|
||||
(const XmlObjMgt_Persistent& theSource,
|
||||
const Handle(TDF_Attribute)& theTarget,
|
||||
XmlObjMgt_RRelocationTable& theRelocTable) const
|
||||
{
|
||||
Handle(TDataXtd_PatternStd) aP =
|
||||
Handle(TDataXtd_PatternStd)::DownCast(theTarget);
|
||||
const XmlObjMgt_Element& anElem = theSource;
|
||||
|
||||
Standard_Integer aNb;
|
||||
TCollection_ExtendedString aMsgString;
|
||||
|
||||
Standard_Integer signature;
|
||||
if (!anElem.getAttribute(::SignatureString()).GetInteger(signature))
|
||||
{
|
||||
aMsgString = TCollection_ExtendedString
|
||||
("XmlMDataXtd_PatternStdDriver: Bad or undefined value for a \"")
|
||||
+ ::SignatureString() + "\" attribute (must be integer)";
|
||||
WriteMessage (aMsgString);
|
||||
return Standard_False;
|
||||
}
|
||||
|
||||
aP->Signature(signature);
|
||||
|
||||
XmlObjMgt_DOMString aString = anElem.getAttribute(::Axis1RevString());
|
||||
aP->Axis1Reversed(aString != NULL);
|
||||
aString = anElem.getAttribute(::Axis2RevString());
|
||||
aP->Axis2Reversed(aString != NULL);
|
||||
|
||||
Handle(TNaming_NamedShape) TNS;
|
||||
Handle(TDataStd_Real) TReal;
|
||||
Handle(TDataStd_Integer) TInt;
|
||||
|
||||
if (signature < 5)
|
||||
{
|
||||
if (!anElem.getAttribute(::Axis1RefString()).GetInteger(aNb))
|
||||
{
|
||||
aMsgString = TCollection_ExtendedString
|
||||
("XmlMDataXtd_PatternStdDriver: Bad or undefined value for a \"")
|
||||
+ ::Axis1RefString() + "\" attribute (must be integer)";
|
||||
WriteMessage (aMsgString);
|
||||
return Standard_False;
|
||||
}
|
||||
if (theRelocTable.IsBound(aNb))
|
||||
TNS = Handle(TNaming_NamedShape)::DownCast(theRelocTable.Find(aNb));
|
||||
else
|
||||
{
|
||||
TNS = new TNaming_NamedShape;
|
||||
theRelocTable.Bind(aNb, TNS);
|
||||
}
|
||||
aP->Axis1(TNS);
|
||||
|
||||
if (!anElem.getAttribute(::Value1RefString()).GetInteger(aNb))
|
||||
{
|
||||
aMsgString = TCollection_ExtendedString
|
||||
("XmlMDataXtd_PatternStdDriver: Bad or undefined value for a \"")
|
||||
+ ::Value1RefString() + "\" attribute (must be integer)";
|
||||
WriteMessage (aMsgString);
|
||||
return Standard_False;
|
||||
}
|
||||
if (theRelocTable.IsBound(aNb))
|
||||
TReal = Handle(TDataStd_Real)::DownCast(theRelocTable.Find(aNb));
|
||||
else
|
||||
{
|
||||
TReal = new TDataStd_Real;
|
||||
theRelocTable.Bind(aNb, TReal);
|
||||
}
|
||||
aP->Value1(TReal);
|
||||
|
||||
if (!anElem.getAttribute(::NbInstances1RefString()).GetInteger(aNb))
|
||||
{
|
||||
aMsgString = TCollection_ExtendedString
|
||||
("XmlMDataXtd_PatternStdDriver: Bad or undefined value for a \"")
|
||||
+ ::NbInstances1RefString() + "\" attribute (must be integer)";
|
||||
WriteMessage (aMsgString);
|
||||
return Standard_False;
|
||||
}
|
||||
if (theRelocTable.IsBound(aNb))
|
||||
TInt = Handle(TDataStd_Integer)::DownCast(theRelocTable.Find(aNb));
|
||||
else
|
||||
{
|
||||
TInt = new TDataStd_Integer;
|
||||
theRelocTable.Bind(aNb, TInt);
|
||||
}
|
||||
aP->NbInstances1(TInt);
|
||||
|
||||
if (signature > 2)
|
||||
{
|
||||
if (!anElem.getAttribute(::Axis2RefString()).GetInteger(aNb))
|
||||
{
|
||||
aMsgString = TCollection_ExtendedString
|
||||
("XmlMDataXtd_PatternStdDriver: Bad or undefined value for a \"")
|
||||
+ ::Axis2RefString() + "\" attribute (must be integer)";
|
||||
WriteMessage (aMsgString);
|
||||
return Standard_False;
|
||||
}
|
||||
if (theRelocTable.IsBound(aNb))
|
||||
TNS = Handle(TNaming_NamedShape)::DownCast(theRelocTable.Find(aNb));
|
||||
else
|
||||
{
|
||||
TNS = new TNaming_NamedShape;
|
||||
theRelocTable.Bind(aNb, TNS);
|
||||
}
|
||||
aP->Axis2(TNS);
|
||||
|
||||
if (!anElem.getAttribute(::Value2RefString()).GetInteger(aNb))
|
||||
{
|
||||
aMsgString = TCollection_ExtendedString
|
||||
("XmlMDataXtd_PatternStdDriver: Bad or undefined value for a \"")
|
||||
+ ::Value2RefString() + "\" attribute (must be integer)";
|
||||
WriteMessage (aMsgString);
|
||||
return Standard_False;
|
||||
}
|
||||
if (theRelocTable.IsBound(aNb))
|
||||
TReal = Handle(TDataStd_Real)::DownCast(theRelocTable.Find(aNb));
|
||||
else
|
||||
{
|
||||
TReal = new TDataStd_Real;
|
||||
theRelocTable.Bind(aNb, TReal);
|
||||
}
|
||||
aP->Value2(TReal);
|
||||
|
||||
if (!anElem.getAttribute(::NbInstances2RefString()).GetInteger(aNb))
|
||||
{
|
||||
aMsgString = TCollection_ExtendedString
|
||||
("XmlMDataXtd_PatternStdDriver: Bad or undefined value for a \"")
|
||||
+ ::NbInstances2RefString() + "\" attribute (must be integer)";
|
||||
WriteMessage (aMsgString);
|
||||
return Standard_False;
|
||||
}
|
||||
if (theRelocTable.IsBound(aNb))
|
||||
TInt = Handle(TDataStd_Integer)::DownCast(theRelocTable.Find(aNb));
|
||||
else
|
||||
{
|
||||
TInt = new TDataStd_Integer;
|
||||
theRelocTable.Bind(aNb, TInt);
|
||||
}
|
||||
aP->NbInstances2(TInt);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!anElem.getAttribute(::MirrorRefString()).GetInteger(aNb))
|
||||
{
|
||||
aMsgString = TCollection_ExtendedString
|
||||
("XmlMDataXtd_PatternStdDriver: Bad or undefined value for a \"")
|
||||
+ ::MirrorRefString() + "\" attribute (must be integer)";
|
||||
WriteMessage (aMsgString);
|
||||
return Standard_False;
|
||||
}
|
||||
if (theRelocTable.IsBound(aNb))
|
||||
TNS = Handle(TNaming_NamedShape)::DownCast(theRelocTable.Find(aNb));
|
||||
else
|
||||
{
|
||||
TNS = new TNaming_NamedShape;
|
||||
theRelocTable.Bind(aNb, TNS);
|
||||
}
|
||||
aP->Mirror(TNS);
|
||||
}
|
||||
return Standard_True;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : Paste
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void XmlMDataXtd_PatternStdDriver::Paste
|
||||
(const Handle(TDF_Attribute)& theSource,
|
||||
XmlObjMgt_Persistent& theTarget,
|
||||
XmlObjMgt_SRelocationTable& theRelocTable) const
|
||||
{
|
||||
Handle(TDataXtd_PatternStd) aP =
|
||||
Handle(TDataXtd_PatternStd)::DownCast(theSource);
|
||||
XmlObjMgt_Element& anElem = theTarget;
|
||||
|
||||
Standard_Integer signature = aP->Signature();
|
||||
anElem.setAttribute(::SignatureString(), signature);
|
||||
|
||||
if (aP->Axis1Reversed())
|
||||
anElem.setAttribute(::Axis1RevString(), ::TrueString());
|
||||
if (aP->Axis2Reversed())
|
||||
anElem.setAttribute(::Axis2RevString(), ::TrueString());
|
||||
|
||||
Handle(TNaming_NamedShape) TNS;
|
||||
Handle(TDataStd_Real) TReal;
|
||||
Handle(TDataStd_Integer) TInt;
|
||||
|
||||
Standard_Integer aNb;
|
||||
|
||||
if (signature < 5)
|
||||
{
|
||||
// axis 1
|
||||
TNS = aP->Axis1();
|
||||
aNb = theRelocTable.FindIndex(TNS);
|
||||
if (aNb == 0)
|
||||
{
|
||||
aNb = theRelocTable.Add(TNS);
|
||||
}
|
||||
anElem.setAttribute(::Axis1RefString(), aNb);
|
||||
|
||||
// real value 1
|
||||
TReal = aP->Value1();
|
||||
aNb = theRelocTable.FindIndex(TReal);
|
||||
if (aNb == 0)
|
||||
{
|
||||
aNb = theRelocTable.Add(TReal);
|
||||
}
|
||||
anElem.setAttribute(::Value1RefString(), aNb);
|
||||
|
||||
// number of instances 1
|
||||
TInt = aP->NbInstances1();
|
||||
aNb = theRelocTable.FindIndex(TInt);
|
||||
if (aNb == 0)
|
||||
{
|
||||
aNb = theRelocTable.Add(TInt);
|
||||
}
|
||||
anElem.setAttribute(::NbInstances1RefString(), aNb);
|
||||
|
||||
if (signature > 2)
|
||||
{
|
||||
// axis 2
|
||||
TNS = aP->Axis2();
|
||||
aNb = theRelocTable.FindIndex(TNS);
|
||||
if (aNb == 0)
|
||||
{
|
||||
aNb = theRelocTable.Add(TNS);
|
||||
}
|
||||
anElem.setAttribute(::Axis2RefString(), aNb);
|
||||
|
||||
// real value 2
|
||||
TReal = aP->Value2();
|
||||
aNb = theRelocTable.FindIndex(TReal);
|
||||
if (aNb == 0)
|
||||
{
|
||||
aNb = theRelocTable.Add(TReal);
|
||||
}
|
||||
anElem.setAttribute(::Value2RefString(), aNb);
|
||||
|
||||
// number of instances 2
|
||||
TInt = aP->NbInstances2();
|
||||
aNb = theRelocTable.FindIndex(TInt);
|
||||
if (aNb == 0)
|
||||
{
|
||||
aNb = theRelocTable.Add(TInt);
|
||||
}
|
||||
anElem.setAttribute(::NbInstances2RefString(), aNb);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
TNS = aP->Mirror();
|
||||
aNb = theRelocTable.FindIndex(TNS);
|
||||
if (aNb == 0)
|
||||
{
|
||||
aNb = theRelocTable.Add(TNS);
|
||||
}
|
||||
anElem.setAttribute(::MirrorRefString(), aNb);
|
||||
}
|
||||
}
|
32
src/XmlMDataXtd/XmlMDataXtd_PlacementDriver.cdl
Executable file
32
src/XmlMDataXtd/XmlMDataXtd_PlacementDriver.cdl
Executable file
@@ -0,0 +1,32 @@
|
||||
-- File: XmlMDataXtd_PlacementDriver.cdl
|
||||
-- Created: Fri Aug 24 20:16:51 2001
|
||||
-- Author: Alexander GRIGORIEV
|
||||
-- Copyright: Open Cascade 2001
|
||||
|
||||
class PlacementDriver from XmlMDataXtd inherits ADriver from XmlMDF
|
||||
|
||||
---Purpose: Attribute Driver.
|
||||
|
||||
uses
|
||||
SRelocationTable from XmlObjMgt,
|
||||
RRelocationTable from XmlObjMgt,
|
||||
Persistent from XmlObjMgt,
|
||||
MessageDriver from CDM,
|
||||
Attribute from TDF
|
||||
|
||||
is
|
||||
Create (theMessageDriver:MessageDriver from CDM)
|
||||
returns mutable PlacementDriver from XmlMDataXtd;
|
||||
|
||||
NewEmpty (me) returns mutable Attribute from TDF;
|
||||
|
||||
Paste(me; Source : Persistent from XmlObjMgt;
|
||||
Target : mutable Attribute from TDF;
|
||||
RelocTable : out RRelocationTable from XmlObjMgt)
|
||||
returns Boolean from Standard;
|
||||
|
||||
Paste(me; Source : Attribute from TDF;
|
||||
Target : in out Persistent from XmlObjMgt;
|
||||
RelocTable : out SRelocationTable from XmlObjMgt);
|
||||
|
||||
end PlacementDriver;
|
52
src/XmlMDataXtd/XmlMDataXtd_PlacementDriver.cxx
Executable file
52
src/XmlMDataXtd/XmlMDataXtd_PlacementDriver.cxx
Executable file
@@ -0,0 +1,52 @@
|
||||
// File: XmlMDataXtd_PlacementDriver.cxx
|
||||
// Created: Fri Aug 24 20:46:58 2001
|
||||
// Author: Alexnder GRIGORIEV
|
||||
// Copyright: Open Cascade 2001
|
||||
// History:
|
||||
|
||||
#include <XmlMDataXtd_PlacementDriver.ixx>
|
||||
#include <TDataXtd_Placement.hxx>
|
||||
|
||||
//=======================================================================
|
||||
//function : XmlMDataXtd_PlacementDriver
|
||||
//purpose : Constructor
|
||||
//=======================================================================
|
||||
|
||||
XmlMDataXtd_PlacementDriver::XmlMDataXtd_PlacementDriver
|
||||
(const Handle(CDM_MessageDriver)& theMsgDriver)
|
||||
: XmlMDF_ADriver (theMsgDriver, NULL)
|
||||
{}
|
||||
|
||||
//=======================================================================
|
||||
//function : NewEmpty
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
Handle(TDF_Attribute) XmlMDataXtd_PlacementDriver::NewEmpty() const
|
||||
{
|
||||
return (new TDataXtd_Placement());
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : Paste
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
Standard_Boolean XmlMDataXtd_PlacementDriver::Paste
|
||||
(const XmlObjMgt_Persistent&,
|
||||
const Handle(TDF_Attribute)&,
|
||||
XmlObjMgt_RRelocationTable& ) const
|
||||
{
|
||||
return Standard_True;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : Paste
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
void XmlMDataXtd_PlacementDriver::Paste (const Handle(TDF_Attribute)&,
|
||||
XmlObjMgt_Persistent&,
|
||||
XmlObjMgt_SRelocationTable& ) const
|
||||
{
|
||||
}
|
32
src/XmlMDataXtd/XmlMDataXtd_PlaneDriver.cdl
Executable file
32
src/XmlMDataXtd/XmlMDataXtd_PlaneDriver.cdl
Executable file
@@ -0,0 +1,32 @@
|
||||
-- File: XmlMDataXtd_PlaneDriver.cdl
|
||||
-- Created: Fri Aug 24 20:16:51 2001
|
||||
-- Author: Alexander GRIGORIEV
|
||||
-- Copyright: Open Cascade 2001
|
||||
|
||||
class PlaneDriver from XmlMDataXtd inherits ADriver from XmlMDF
|
||||
|
||||
---Purpose: Attribute Driver.
|
||||
|
||||
uses
|
||||
SRelocationTable from XmlObjMgt,
|
||||
RRelocationTable from XmlObjMgt,
|
||||
Persistent from XmlObjMgt,
|
||||
MessageDriver from CDM,
|
||||
Attribute from TDF
|
||||
|
||||
is
|
||||
Create (theMessageDriver:MessageDriver from CDM)
|
||||
returns mutable PlaneDriver from XmlMDataXtd;
|
||||
|
||||
NewEmpty (me) returns mutable Attribute from TDF;
|
||||
|
||||
Paste(me; Source : Persistent from XmlObjMgt;
|
||||
Target : mutable Attribute from TDF;
|
||||
RelocTable : out RRelocationTable from XmlObjMgt)
|
||||
returns Boolean from Standard;
|
||||
|
||||
Paste(me; Source : Attribute from TDF;
|
||||
Target : in out Persistent from XmlObjMgt;
|
||||
RelocTable : out SRelocationTable from XmlObjMgt);
|
||||
|
||||
end PlaneDriver;
|
52
src/XmlMDataXtd/XmlMDataXtd_PlaneDriver.cxx
Executable file
52
src/XmlMDataXtd/XmlMDataXtd_PlaneDriver.cxx
Executable file
@@ -0,0 +1,52 @@
|
||||
// File: XmlMDataXtd_PlaneDriver.cxx
|
||||
// Created: Fri Aug 24 20:46:58 2001
|
||||
// Author: Alexnder GRIGORIEV
|
||||
// Copyright: Open Cascade 2001
|
||||
// History:
|
||||
|
||||
#include <XmlMDataXtd_PlaneDriver.ixx>
|
||||
#include <TDataXtd_Plane.hxx>
|
||||
|
||||
//=======================================================================
|
||||
//function : XmlMDataXtd_PlaneDriver
|
||||
//purpose : Constructor
|
||||
//=======================================================================
|
||||
|
||||
XmlMDataXtd_PlaneDriver::XmlMDataXtd_PlaneDriver
|
||||
(const Handle(CDM_MessageDriver)& theMsgDriver)
|
||||
: XmlMDF_ADriver (theMsgDriver, NULL)
|
||||
{}
|
||||
|
||||
//=======================================================================
|
||||
//function : NewEmpty
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
Handle(TDF_Attribute) XmlMDataXtd_PlaneDriver::NewEmpty() const
|
||||
{
|
||||
return (new TDataXtd_Plane());
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : Paste
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
Standard_Boolean XmlMDataXtd_PlaneDriver::Paste
|
||||
(const XmlObjMgt_Persistent&,
|
||||
const Handle(TDF_Attribute)&,
|
||||
XmlObjMgt_RRelocationTable& ) const
|
||||
{
|
||||
return Standard_True;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : Paste
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
void XmlMDataXtd_PlaneDriver::Paste (const Handle(TDF_Attribute)&,
|
||||
XmlObjMgt_Persistent&,
|
||||
XmlObjMgt_SRelocationTable& ) const
|
||||
{
|
||||
}
|
32
src/XmlMDataXtd/XmlMDataXtd_PointDriver.cdl
Executable file
32
src/XmlMDataXtd/XmlMDataXtd_PointDriver.cdl
Executable file
@@ -0,0 +1,32 @@
|
||||
-- File: XmlMDataXtd_PointDriver.cdl
|
||||
-- Created: Fri Aug 24 20:16:51 2001
|
||||
-- Author: Alexander GRIGORIEV
|
||||
-- Copyright: Open Cascade 2001
|
||||
|
||||
class PointDriver from XmlMDataXtd inherits ADriver from XmlMDF
|
||||
|
||||
---Purpose: Attribute Driver.
|
||||
|
||||
uses
|
||||
SRelocationTable from XmlObjMgt,
|
||||
RRelocationTable from XmlObjMgt,
|
||||
Persistent from XmlObjMgt,
|
||||
MessageDriver from CDM,
|
||||
Attribute from TDF
|
||||
|
||||
is
|
||||
Create (theMessageDriver:MessageDriver from CDM)
|
||||
returns mutable PointDriver from XmlMDataXtd;
|
||||
|
||||
NewEmpty (me) returns mutable Attribute from TDF;
|
||||
|
||||
Paste(me; Source : Persistent from XmlObjMgt;
|
||||
Target : mutable Attribute from TDF;
|
||||
RelocTable : out RRelocationTable from XmlObjMgt)
|
||||
returns Boolean from Standard;
|
||||
|
||||
Paste(me; Source : Attribute from TDF;
|
||||
Target : in out Persistent from XmlObjMgt;
|
||||
RelocTable : out SRelocationTable from XmlObjMgt);
|
||||
|
||||
end PointDriver;
|
52
src/XmlMDataXtd/XmlMDataXtd_PointDriver.cxx
Executable file
52
src/XmlMDataXtd/XmlMDataXtd_PointDriver.cxx
Executable file
@@ -0,0 +1,52 @@
|
||||
// File: XmlMDataXtd_PointDriver.cxx
|
||||
// Created: Fri Aug 24 20:46:58 2001
|
||||
// Author: Alexnder GRIGORIEV
|
||||
// Copyright: Open Cascade 2001
|
||||
// History:
|
||||
|
||||
#include <XmlMDataXtd_PointDriver.ixx>
|
||||
#include <TDataXtd_Point.hxx>
|
||||
|
||||
//=======================================================================
|
||||
//function : XmlMDataXtd_PointDriver
|
||||
//purpose : Constructor
|
||||
//=======================================================================
|
||||
|
||||
XmlMDataXtd_PointDriver::XmlMDataXtd_PointDriver
|
||||
(const Handle(CDM_MessageDriver)& theMsgDriver)
|
||||
: XmlMDF_ADriver (theMsgDriver, NULL)
|
||||
{}
|
||||
|
||||
//=======================================================================
|
||||
//function : NewEmpty
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
Handle(TDF_Attribute) XmlMDataXtd_PointDriver::NewEmpty() const
|
||||
{
|
||||
return (new TDataXtd_Point());
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : Paste
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
Standard_Boolean XmlMDataXtd_PointDriver::Paste
|
||||
(const XmlObjMgt_Persistent&,
|
||||
const Handle(TDF_Attribute)&,
|
||||
XmlObjMgt_RRelocationTable& ) const
|
||||
{
|
||||
return Standard_True;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : Paste
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
void XmlMDataXtd_PointDriver::Paste (const Handle(TDF_Attribute)&,
|
||||
XmlObjMgt_Persistent&,
|
||||
XmlObjMgt_SRelocationTable& ) const
|
||||
{
|
||||
}
|
32
src/XmlMDataXtd/XmlMDataXtd_ShapeDriver.cdl
Executable file
32
src/XmlMDataXtd/XmlMDataXtd_ShapeDriver.cdl
Executable file
@@ -0,0 +1,32 @@
|
||||
-- File: XmlMDataXtd_ShapeDriver.cdl
|
||||
-- Created: Fri Aug 24 20:16:51 2001
|
||||
-- Author: Alexander GRIGORIEV
|
||||
-- Copyright: Open Cascade 2001
|
||||
|
||||
class ShapeDriver from XmlMDataXtd inherits ADriver from XmlMDF
|
||||
|
||||
---Purpose: Attribute Driver.
|
||||
|
||||
uses
|
||||
SRelocationTable from XmlObjMgt,
|
||||
RRelocationTable from XmlObjMgt,
|
||||
Persistent from XmlObjMgt,
|
||||
MessageDriver from CDM,
|
||||
Attribute from TDF
|
||||
|
||||
is
|
||||
Create (theMessageDriver:MessageDriver from CDM)
|
||||
returns mutable ShapeDriver from XmlMDataXtd;
|
||||
|
||||
NewEmpty (me) returns mutable Attribute from TDF;
|
||||
|
||||
Paste(me; Source : Persistent from XmlObjMgt;
|
||||
Target : mutable Attribute from TDF;
|
||||
RelocTable : out RRelocationTable from XmlObjMgt)
|
||||
returns Boolean from Standard;
|
||||
|
||||
Paste(me; Source : Attribute from TDF;
|
||||
Target : in out Persistent from XmlObjMgt;
|
||||
RelocTable : out SRelocationTable from XmlObjMgt);
|
||||
|
||||
end ShapeDriver;
|
52
src/XmlMDataXtd/XmlMDataXtd_ShapeDriver.cxx
Executable file
52
src/XmlMDataXtd/XmlMDataXtd_ShapeDriver.cxx
Executable file
@@ -0,0 +1,52 @@
|
||||
// File: XmlMDataXtd_ShapeDriver.cxx
|
||||
// Created: Fri Aug 24 20:46:58 2001
|
||||
// Author: Alexnder GRIGORIEV
|
||||
// Copyright: Open Cascade 2001
|
||||
// History:
|
||||
|
||||
#include <XmlMDataXtd_ShapeDriver.ixx>
|
||||
#include <TDataXtd_Shape.hxx>
|
||||
|
||||
//=======================================================================
|
||||
//function : XmlMDataXtd_ShapeDriver
|
||||
//purpose : Constructor
|
||||
//=======================================================================
|
||||
|
||||
XmlMDataXtd_ShapeDriver::XmlMDataXtd_ShapeDriver
|
||||
(const Handle(CDM_MessageDriver)& theMsgDriver)
|
||||
: XmlMDF_ADriver (theMsgDriver, NULL)
|
||||
{}
|
||||
|
||||
//=======================================================================
|
||||
//function : NewEmpty
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
Handle(TDF_Attribute) XmlMDataXtd_ShapeDriver::NewEmpty() const
|
||||
{
|
||||
return (new TDataXtd_Shape());
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : Paste
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
Standard_Boolean XmlMDataXtd_ShapeDriver::Paste
|
||||
(const XmlObjMgt_Persistent&,
|
||||
const Handle(TDF_Attribute)&,
|
||||
XmlObjMgt_RRelocationTable& ) const
|
||||
{
|
||||
return Standard_True;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : Paste
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
void XmlMDataXtd_ShapeDriver::Paste (const Handle(TDF_Attribute)&,
|
||||
XmlObjMgt_Persistent&,
|
||||
XmlObjMgt_SRelocationTable& ) const
|
||||
{
|
||||
}
|
Reference in New Issue
Block a user