1
0
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:
bugmaster
2011-03-16 07:30:28 +00:00
committed by bugmaster
parent 4903637061
commit 7fd59977df
16375 changed files with 3882564 additions and 0 deletions

27
src/XmlMPrsStd/XmlMPrsStd.cdl Executable file
View File

@@ -0,0 +1,27 @@
-- File: XmlMPrsStd.cdl
-- Created: Mon Jul 9 12:29:49 MSK DST 2001
-- Author: Julia DOROVSKIKH
---Copyright: MATRA DATAVISION 2001
package XmlMPrsStd
uses
TDF,
CDM,
XmlMDF,
XmlObjMgt
is
---Category: Classes
-- =============================================================
class PositionDriver;
class AISPresentationDriver;
AddDrivers (aDriverTable : ADriverTable from XmlMDF;
theMessageDriver: MessageDriver from CDM);
---Purpose: Adds the attribute storage drivers to <aDriverTable>.
end XmlMPrsStd;

20
src/XmlMPrsStd/XmlMPrsStd.cxx Executable file
View File

@@ -0,0 +1,20 @@
// File: XmlMPrsStd.cxx
// Created: Mon Jul 9 12:29:49 MSK DST 2001
// Author: Julia DOROVSKIKH
// Copyright: Matra Datavision 2001
#include <XmlMPrsStd.ixx>
#include <XmlMPrsStd_PositionDriver.hxx>
#include <XmlMPrsStd_AISPresentationDriver.hxx>
///=======================================================================
//function : AddDrivers
//purpose :
//=======================================================================
void XmlMPrsStd::AddDrivers (const Handle(XmlMDF_ADriverTable)& aDriverTable,
const Handle(CDM_MessageDriver)& aMessageDriver)
{
aDriverTable->AddDriver(new XmlMPrsStd_PositionDriver(aMessageDriver));
aDriverTable->AddDriver(new XmlMPrsStd_AISPresentationDriver(aMessageDriver));
}

View File

@@ -0,0 +1,32 @@
-- File: XmlMPrsStd_AISPresentationDriver.cdl
-- Created: 04.09.01 14:47:31
-- Author: Julia DOROVSKIKH
-- Copyright: Open Cascade 2001
class AISPresentationDriver from XmlMPrsStd 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 AISPresentationDriver from XmlMPrsStd;
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 AISPresentationDriver;

View File

@@ -0,0 +1,234 @@
// File: XmlMPrsStd_AISPresentationDriver.cxx
// Created: 04.09.01 14:47:31
// Author: Julia DOROVSKIKH
// Copyright: Open Cascade 2001
// History:
#include <XmlMPrsStd_AISPresentationDriver.ixx>
#include <XmlObjMgt.hxx>
#include <TPrsStd_AISPresentation.hxx>
#define OCC6010 // vro: 09.06.2004
IMPLEMENT_DOMSTRING (GuidString, "guid")
IMPLEMENT_DOMSTRING (IsDisplayedString, "isdisplayed")
IMPLEMENT_DOMSTRING (ColorString, "color")
IMPLEMENT_DOMSTRING (MaterialString, "material")
IMPLEMENT_DOMSTRING (TransparencyString,"transparency")
IMPLEMENT_DOMSTRING (WidthString, "width")
IMPLEMENT_DOMSTRING (ModeString, "mode")
IMPLEMENT_DOMSTRING (DisplayedString, "true")
//=======================================================================
//function : XmlMPrsStd_AISPresentationDriver
//purpose : Constructor
//=======================================================================
XmlMPrsStd_AISPresentationDriver::XmlMPrsStd_AISPresentationDriver
(const Handle(CDM_MessageDriver)& theMsgDriver)
: XmlMDF_ADriver (theMsgDriver, NULL)
{}
//=======================================================================
//function : NewEmpty
//purpose :
//=======================================================================
Handle(TDF_Attribute) XmlMPrsStd_AISPresentationDriver::NewEmpty() const
{
return (new TPrsStd_AISPresentation());
}
//=======================================================================
//function : Paste
//purpose : persistent -> transient (retrieve)
//=======================================================================
Standard_Boolean XmlMPrsStd_AISPresentationDriver::Paste
(const XmlObjMgt_Persistent& theSource,
const Handle(TDF_Attribute)& theTarget,
XmlObjMgt_RRelocationTable& ) const
{
TCollection_ExtendedString aMessageString;
XmlObjMgt_DOMString aDOMStr;
Handle(TPrsStd_AISPresentation) aTPrs =
Handle(TPrsStd_AISPresentation)::DownCast(theTarget);
const XmlObjMgt_Element& anElem = theSource;
//convert attribute value into GUID
aDOMStr = anElem.getAttribute(::GuidString());
if (aDOMStr == NULL)
{
WriteMessage("Cannot retrieve guid string from attribute");
return Standard_False;
}
Standard_CString aGuidStr = (Standard_CString) aDOMStr.GetString();
aTPrs->SetDriverGUID(aGuidStr);
// is displayed
aDOMStr = anElem.getAttribute(::IsDisplayedString());
aTPrs->SetDisplayed(aDOMStr != NULL);
Standard_Integer anIValue;
// color
aDOMStr = anElem.getAttribute(::ColorString());
if (aDOMStr != NULL)
{
if (!aDOMStr.GetInteger(anIValue))
{
aMessageString = TCollection_ExtendedString
("Cannot retrieve Integer value from \"") + aDOMStr + "\"";
WriteMessage (aMessageString);
return Standard_False;
}
aTPrs->SetColor((Quantity_NameOfColor)anIValue);
}
else
{
aTPrs->UnsetColor();
}
// material
aDOMStr = anElem.getAttribute(::MaterialString());
if (aDOMStr != NULL)
{
if (!aDOMStr.GetInteger(anIValue))
{
aMessageString = TCollection_ExtendedString
("Cannot retrieve Integer value from \"") + aDOMStr + "\"";
WriteMessage (aMessageString);
return Standard_False;
}
aTPrs->SetMaterial((Graphic3d_NameOfMaterial)anIValue);
}
else
{
aTPrs->UnsetMaterial();
}
Standard_Real aValue;
// transparency
aDOMStr = anElem.getAttribute(::TransparencyString());
if (aDOMStr != NULL)
{
if (!XmlObjMgt::GetReal(aDOMStr, aValue))
{
aMessageString = TCollection_ExtendedString
("Cannot retrieve Real value from \"") + aDOMStr + "\"";
WriteMessage (aMessageString);
return Standard_False;
}
aTPrs->SetTransparency(aValue);
}
else
{
aTPrs->UnsetTransparency();
}
// width
aDOMStr = anElem.getAttribute(::WidthString());
if (aDOMStr != NULL)
{
if (!XmlObjMgt::GetReal(aDOMStr, aValue))
{
aMessageString = TCollection_ExtendedString
("Cannot retrieve Real value from \"") + aDOMStr + "\"";
WriteMessage (aMessageString);
return Standard_False;
}
aTPrs->SetWidth(aValue);
}
else
{
aTPrs->UnsetWidth();
}
#ifdef OCC6010
// mode
aDOMStr = anElem.getAttribute(::ModeString());
if (aDOMStr != NULL)
{
if (!aDOMStr.GetInteger(anIValue))
{
aMessageString = TCollection_ExtendedString
("Cannot retrieve Integer value from \"") + aDOMStr + "\"";
WriteMessage (aMessageString);
return Standard_False;
}
aTPrs->SetMode(anIValue);
}
else
{
aTPrs->UnsetMode();
}
#endif
return Standard_True;
}
//=======================================================================
//function : Paste
//purpose : transient -> persistent (store)
//=======================================================================
void XmlMPrsStd_AISPresentationDriver::Paste
(const Handle(TDF_Attribute)& theSource,
XmlObjMgt_Persistent& theTarget,
XmlObjMgt_SRelocationTable& ) const
{
Handle(TPrsStd_AISPresentation) aTPrs =
Handle(TPrsStd_AISPresentation)::DownCast(theSource);
if (aTPrs.IsNull()) return;
//convert GUID into attribute value
Standard_Character aGuidStr [40];
Standard_PCharacter pGuidStr;
pGuidStr=aGuidStr;
aTPrs->GetDriverGUID().ToCString (pGuidStr);
theTarget.Element().setAttribute(::GuidString(), aGuidStr);
// is displayed
if (aTPrs->IsDisplayed())
theTarget.Element().setAttribute(::IsDisplayedString(), ::DisplayedString());
Standard_Integer aNb;
// color
if (aTPrs->HasOwnColor())
{
aNb = (Standard_Integer)(aTPrs->Color());
theTarget.Element().setAttribute(::ColorString(), aNb);
}
// material
if (aTPrs->HasOwnMaterial())
{
aNb = (Standard_Integer)(aTPrs->Material());
theTarget.Element().setAttribute(::MaterialString(), aNb);
}
// transparency
if (aTPrs->HasOwnTransparency())
{
TCollection_AsciiString aRNbStr (aTPrs->Transparency());
theTarget.Element().setAttribute(::TransparencyString(), aRNbStr.ToCString());
}
// width
if (aTPrs->HasOwnWidth())
{
TCollection_AsciiString aRNbStr (aTPrs->Width());
theTarget.Element().setAttribute(::WidthString(), aRNbStr.ToCString());
}
#ifdef OCC6010
// mode
if (aTPrs->HasOwnMode())
{
aNb = aTPrs->Mode();
theTarget.Element().setAttribute(::ModeString(), aNb);
}
#endif
}

View File

@@ -0,0 +1,32 @@
-- File: XmlMPrsStd_PositionDriver.cdl
-- Created: 04.09.01 14:47:31
-- Author: Julia DOROVSKIKH
-- Copyright: Open Cascade 2001
class PositionDriver from XmlMPrsStd 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 PositionDriver from XmlMPrsStd;
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 PositionDriver;

View File

@@ -0,0 +1,114 @@
// File: XmlMPrsStd_PositionDriver.cxx
// Created: 04.09.01 14:47:31
// Author: Julia DOROVSKIKH
// Copyright: Open Cascade 2001
// History:
#include <XmlMPrsStd_PositionDriver.ixx>
#include <XmlObjMgt.hxx>
#include <TDataXtd_Position.hxx>
#include <gp_XYZ.hxx>
#include <stdio.h>
//=======================================================================
//function : XmlMPrsStd_PositionDriver
//purpose : Constructor
//=======================================================================
XmlMPrsStd_PositionDriver::XmlMPrsStd_PositionDriver
(const Handle(CDM_MessageDriver)& theMsgDriver)
: XmlMDF_ADriver (theMsgDriver, NULL)
{}
//=======================================================================
//function : NewEmpty
//purpose :
//=======================================================================
Handle(TDF_Attribute) XmlMPrsStd_PositionDriver::NewEmpty() const
{
return (new TDataXtd_Position());
}
//=======================================================================
//function : Paste
//purpose : persistent -> transient (retrieve)
//=======================================================================
Standard_Boolean XmlMPrsStd_PositionDriver::Paste
(const XmlObjMgt_Persistent& theSource,
const Handle(TDF_Attribute)& theTarget,
XmlObjMgt_RRelocationTable& ) const
{
Handle(TDataXtd_Position) aTPos = Handle(TDataXtd_Position)::DownCast(theTarget);
// position
XmlObjMgt_DOMString aPosStr = XmlObjMgt::GetStringValue(theSource.Element());
if (aPosStr == NULL)
{
WriteMessage ("Cannot retrieve position string from element");
return Standard_False;
}
gp_Pnt aPos;
Standard_Real aValue;
Standard_CString aValueStr = Standard_CString(aPosStr.GetString());
// X
if (!XmlObjMgt::GetReal(aValueStr, aValue))
{
TCollection_ExtendedString aMessageString =
TCollection_ExtendedString
("Cannot retrieve X coordinate for TDataXtd_Position attribute as \"")
+ aValueStr + "\"";
WriteMessage (aMessageString);
return Standard_False;
}
aPos.SetX(aValue);
// Y
if (!XmlObjMgt::GetReal(aValueStr, aValue))
{
TCollection_ExtendedString aMessageString =
TCollection_ExtendedString
("Cannot retrieve Y coordinate for TDataXtd_Position attribute as \"")
+ aValueStr + "\"";
WriteMessage (aMessageString);
return Standard_False;
}
aPos.SetY(aValue);
// Z
if (!XmlObjMgt::GetReal(aValueStr, aValue))
{
TCollection_ExtendedString aMessageString =
TCollection_ExtendedString
("Cannot retrieve Z coordinate for TDataXtd_Position attribute as \"")
+ aValueStr + "\"";
WriteMessage (aMessageString);
return Standard_False;
}
aPos.SetZ(aValue);
aTPos->SetPosition(aPos);
return Standard_True;
}
//=======================================================================
//function : Paste
//purpose : transient -> persistent (store)
//=======================================================================
void XmlMPrsStd_PositionDriver::Paste
(const Handle(TDF_Attribute)& theSource,
XmlObjMgt_Persistent& theTarget,
XmlObjMgt_SRelocationTable& ) const
{
Handle(TDataXtd_Position) aTPos = Handle(TDataXtd_Position)::DownCast(theSource);
if (!aTPos.IsNull())
{
gp_Pnt aPos = aTPos->GetPosition();
char buf [64];
sprintf (buf, "%.17g %.17g %.17g", aPos.X(), aPos.Y(), aPos.Z());
XmlObjMgt::SetStringValue(theTarget.Element(), buf);
}
}