//! Dumps the content of me into the stream
Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE;
+
protected:
//! The TypeOfPresention3d means that the interactive object
BRepMesh_Context::~BRepMesh_Context ()
{
}
+
+//=======================================================================
+//function : DumpJson
+//purpose :
+//=======================================================================
+void BRepMesh_Context::DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth) const
+{
+ OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream)
+ OCCT_DUMP_BASE_CLASS (theOStream, theDepth, IMeshTools_Context)
+}
//! Destructor.
Standard_EXPORT virtual ~BRepMesh_Context ();
+ //! Dumps the content of me into the stream
+ Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE;
+
DEFINE_STANDARD_RTTI_INLINE(BRepMesh_Context, IMeshTools_Context)
};
void BRepMesh_DiscretRoot::init()
{
}
+
+//=======================================================================
+//function : DumpJson
+//purpose :
+//=======================================================================
+void BRepMesh_DiscretRoot::DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth) const
+{
+ OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream)
+
+ OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, &myShape)
+ OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myIsDone)
+}
//! Compute triangulation for set shape.
virtual void Perform() = 0;
+ //! Dumps the content of me into the stream
+ Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1);
DEFINE_STANDARD_RTTIEXT(BRepMesh_DiscretRoot,Standard_Transient)
}
}
}
+
+//=======================================================================
+// Function: DumpJson
+// Purpose :
+//=======================================================================
+void BRepMesh_EdgeDiscret::DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth) const
+{
+ OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream)
+ OCCT_DUMP_BASE_CLASS (theOStream, theDepth, IMeshTools_ModelAlgo)
+}
const IMeshData::IEdgeHandle& theDEdge,
const Standard_Boolean theUpdateEnds);
+ //! Dumps the content of me into the stream
+ Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE;
+
DEFINE_STANDARD_RTTI_INLINE(BRepMesh_EdgeDiscret, IMeshTools_ModelAlgo)
protected:
aDFace->SetStatus (IMeshData_Failure);
}
}
+
+//=======================================================================
+// Function: DumpJson
+// Purpose :
+//=======================================================================
+void BRepMesh_FaceDiscret::DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth) const
+{
+ OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream)
+ OCCT_DUMP_BASE_CLASS (theOStream, theDepth, IMeshTools_ModelAlgo)
+}
process(theFaceIndex);
}
+ //! Dumps the content of me into the stream
+ Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE;
+
DEFINE_STANDARD_RTTI_INLINE(BRepMesh_FaceDiscret, IMeshTools_ModelAlgo)
protected:
IS_IN_PARALLEL = theInParallel;
}
+//=======================================================================
+//function : DumpJson
+//purpose :
+//=======================================================================
+void BRepMesh_IncrementalMesh::DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth) const
+{
+ OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream)
+ OCCT_DUMP_BASE_CLASS (theOStream, theDepth, BRepMesh_DiscretRoot)
+
+ OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, &myParameters)
+ OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myModified)
+ OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myStatus)
+}
+
//! Export Mesh Plugin entry function
DISCRETPLUGIN(BRepMesh_IncrementalMesh)
//! Discret() static method (thus applied only to Mesh Factories).
Standard_EXPORT static void SetParallelDefault(const Standard_Boolean isInParallel);
+ //! Dumps the content of me into the stream
+ Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE;
+
DEFINE_STANDARD_RTTI_INLINE(BRepMesh_IncrementalMesh, BRepMesh_DiscretRoot)
protected:
const TopoDS_Shape& theShape,
const IMeshTools_Parameters& theParameters)
{
+ MESSAGE_ADD_LEVEL_SENTRY
+ Handle(Message_Messenger) sout = aContext->GetModelBuilder()->GetMessenger();
+ sout << "BRepMesh_ModelBuilder::performInternal" << "" << Message_EndLine;
+
Handle (BRepMeshData_Model) aModel;
Bnd_Box aBox;
return aModel;
}
+
+//=======================================================================
+//function : DumpJson
+//purpose :
+//=======================================================================
+void BRepMesh_ModelBuilder::DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth) const
+{
+ OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream)
+
+ OCCT_DUMP_BASE_CLASS (theOStream, theDepth, IMeshTools_ModelBuilder)
+}
//! Destructor.
Standard_EXPORT virtual ~BRepMesh_ModelBuilder ();
+ //! Dumps the content of me into the stream
+ Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE;
+
DEFINE_STANDARD_RTTI_INLINE(BRepMesh_ModelBuilder, IMeshTools_ModelBuilder)
protected:
return Standard_True;
}
+
+//=======================================================================
+// Function: DumpJson
+// Purpose :
+//=======================================================================
+void BRepMesh_ModelHealer::DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth) const
+{
+ OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream)
+ OCCT_DUMP_BASE_CLASS (theOStream, theDepth, IMeshTools_ModelAlgo)
+}
process(theDFace);
}
+ //! Dumps the content of me into the stream
+ Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE;
+
DEFINE_STANDARD_RTTI_INLINE(BRepMesh_ModelHealer, IMeshTools_ModelAlgo)
protected:
//! Destructor.
Standard_EXPORT virtual ~BRepMesh_ModelPostProcessor();
- DEFINE_STANDARD_RTTI_INLINE(BRepMesh_ModelPostProcessor, IMeshTools_ModelAlgo)
+ //! Dumps the content of me into the stream
+ Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE;
+
+ //! Dumps the content of me into the stream
+ virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE
+ {
+ OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream)
+ OCCT_DUMP_BASE_CLASS (theOStream, theDepth, IMeshTools_ModelAlgo)
+ }
protected:
//! Destructor.
Standard_EXPORT virtual ~BRepMesh_ModelPreProcessor();
+ //! Dumps the content of me into the stream
+ virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE
+ {
+ OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream)
+ OCCT_DUMP_BASE_CLASS (theOStream, theDepth, IMeshTools_ModelAlgo)
+ }
+
DEFINE_STANDARD_RTTI_INLINE(BRepMesh_ModelPreProcessor, IMeshTools_ModelAlgo)
protected:
{
return myDEdges (theIndex);
}
+
+//=======================================================================
+//function : DumpJson
+//purpose :
+//=======================================================================
+void BRepMeshData_Model::DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth) const
+{
+ OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream)
+ OCCT_DUMP_BASE_CLASS (theOStream, theDepth, IMeshData_Model)
+
+ OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myMaxSize)
+ if (!myDFaces.IsNull())
+ OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myDFaces.Size())
+ if (!myDEdges.IsNull())
+ OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myDEdges.Size())
+}
//! Gets model's edge with the given index.
Standard_EXPORT virtual const IMeshData::IEdgeHandle& GetEdge (const Standard_Integer theIndex) const Standard_OVERRIDE;
+ //! Dumps the content of me into the stream
+ Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE;
+
private:
Standard_Real myMaxSize;
//! Removes point with the given index.
Standard_EXPORT virtual void RemovePoint (const Standard_Integer theIndex) = 0;
+ //! Dumps the content of me into the stream
+ Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE;
+
DEFINE_STANDARD_RTTI_INLINE(IMeshData_Curve, IMeshData_ParametersList)
protected:
myDegenerated = theValue;
}
+ //! Dumps the content of me into the stream
+ Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE;
+
DEFINE_STANDARD_RTTI_INLINE(IMeshData_Edge, IMeshData_TessellatedShape)
protected:
//! Gets model's edge with the given index.
Standard_EXPORT virtual const IMeshData::IEdgeHandle& GetEdge (const Standard_Integer theIndex) const = 0;
+ //! Dumps the content of me into the stream
+ virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE
+ {
+ OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream)
+ OCCT_DUMP_BASE_CLASS (theOStream, theDepth, IMeshData_Shape)
+ }
+
protected:
//! Constructor.
return myDFace;
}
+ //! Dumps the content of me into the stream
+ Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE;
+
DEFINE_STANDARD_RTTI_INLINE(IMeshData_PCurve, IMeshData_ParametersList)
protected:
//! Clears parameters list.
Standard_EXPORT virtual void Clear(const Standard_Boolean isKeepEndPoints) = 0;
+ //! Dumps the content of me into the stream
+ virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const {}
+
DEFINE_STANDARD_RTTI_INLINE(IMeshData_ParametersList, Standard_Transient)
protected:
#define _IMeshData_Shape_HeaderFile
#include <Standard_Type.hxx>
+#include <Standard_Dump.hxx>
#include <TopoDS_Shape.hxx>
//! Interface class representing model with associated TopoDS_Shape.
return myShape;
}
+ //! Dumps the content of me into the stream
+ virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const
+ {
+ OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream)
+ OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, myShape)
+ }
+
DEFINE_STANDARD_RTTI_INLINE(IMeshData_Shape, Standard_Transient)
protected:
myDeflection = theValue;
}
+ //! Dumps the content of me into the stream
+ Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE;
+
+ //! Dumps the content of me into the stream
+ virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE
+ {
+ OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream)
+ OCCT_DUMP_BASE_CLASS (theOStream, theDepth, IMeshData_Shape)
+
+ OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myDeflection)
+ }
+
+
DEFINE_STANDARD_RTTI_INLINE(IMeshData_TessellatedShape, IMeshData_Shape)
protected:
+IMeshTools_Context.cxx
IMeshTools_Context.hxx
IMeshTools_CurveTessellator.hxx
IMeshTools_MeshAlgo.hxx
--- /dev/null
+// Copyright (c) 2019 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 <IMeshTools_Context.hxx>
+
+//=======================================================================
+//function : DumpJson
+//purpose :
+//=======================================================================
+void IMeshTools_Context::DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth) const
+{
+ OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream)
+ OCCT_DUMP_BASE_CLASS (theOStream, theDepth, IMeshData_Shape)
+
+ OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, myModelBuilder.get())
+ OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, myModel.get())
+
+ OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, myEdgeDiscret.get())
+ OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, myModelHealer.get())
+ OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, myPreProcessor.get())
+ OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, myFaceDiscret.get())
+ OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, myPostProcessor.get())
+
+ OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, &myParameters)
+}
+
return Standard_False;
}
+ MESSAGE_ADD_LEVEL_SENTRY
+ Handle(Message_Messenger) sout = GetModelBuilder()->GetMessenger();
+ sout << "DiscretizeEdges" << "" << Message_EndLine;
+
// Discretize edges of a model.
return myEdgeDiscret->Perform(myModel, myParameters);
}
return Standard_False;
}
+ MESSAGE_ADD_LEVEL_SENTRY
+ Handle(Message_Messenger) sout = GetModelBuilder()->GetMessenger();
+ sout << "HealModel" << "" << Message_EndLine;
return myModelHealer.IsNull() ?
Standard_True :
myModelHealer->Perform(myModel, myParameters);
return Standard_False;
}
+ MESSAGE_ADD_LEVEL_SENTRY
+ Handle(Message_Messenger) sout = GetModelBuilder()->GetMessenger();
+ sout << "PreProcessModel" << "" << Message_EndLine;
return myPreProcessor.IsNull() ?
Standard_True :
myPreProcessor->Perform(myModel, myParameters);
return Standard_False;
}
+ MESSAGE_ADD_LEVEL_SENTRY
+ Handle(Message_Messenger) sout = GetModelBuilder()->GetMessenger();
+ sout << "DiscretizeFaces" << "" << Message_EndLine;
// Discretize faces of a model.
return myFaceDiscret->Perform(myModel, myParameters);
}
return Standard_False;
}
+ MESSAGE_ADD_LEVEL_SENTRY
+ Handle(Message_Messenger) sout = GetModelBuilder()->GetMessenger();
+ sout << "PostProcessModel" << "" << Message_EndLine;
return myPostProcessor.IsNull() ?
Standard_True :
myPostProcessor->Perform(myModel, myParameters);
return myModel;
}
+ //! Dumps the content of me into the stream
+ Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE;
+
DEFINE_STANDARD_RTTI_INLINE(IMeshTools_Context, IMeshData_Shape)
private:
return;
}
+ MESSAGE_ADD_LEVEL_SENTRY
+ Handle(Message_Messenger) sout = aContext->GetModelBuilder()->GetMessenger();
+ sout << "IMeshTools_MeshBuilder::Perform" << "" << Message_EndLine;
+
if (aContext->BuildModel ())
{
if (aContext->DiscretizeEdges ())
aContext->Clean ();
}
+
+//=======================================================================
+//function : DumpJson
+//purpose :
+//=======================================================================
+void IMeshTools_MeshBuilder::DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth) const
+{
+ OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream)
+
+ OCCT_DUMP_BASE_CLASS (theOStream, theDepth, Message_Algorithm)
+ OCCT_DUMP_FIELD_VALUE_POINTER (theOStream, myContext.get())
+}
//! Performs meshing ot the shape using current context.
Standard_EXPORT virtual void Perform ();
+ //! Dumps the content of me into the stream
+ Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE;
+
DEFINE_STANDARD_RTTI_INLINE(IMeshTools_MeshBuilder, Message_Algorithm)
private:
}
}
+ //! Dumps the content of me into the stream
+ virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const
+ {
+ (void)theDepth;
+ OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream)
+ }
+
DEFINE_STANDARD_RTTI_INLINE(IMeshTools_ModelAlgo, Standard_Transient)
protected:
}
}
+ //! Dumps the content of me into the stream
+ Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE;
+
DEFINE_STANDARD_RTTI_INLINE(IMeshTools_ModelBuilder, Message_Algorithm)
protected:
}
return aNewReport;
}
+
+//=======================================================================
+//function : DumpJson
+//purpose :
+//=======================================================================
+void Message_Algorithm::DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth) const
+{
+ OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream)
+
+ OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, myStatus)
+ OCCT_DUMP_FIELD_VALUE_POINTER (theOStream, myMessenger)
+
+ if (!myReportIntegers.IsEmpty())
+ OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myReportIntegers.Length())
+ if (!myReportStrings.IsEmpty())
+ OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myReportStrings.Length())
+ if (!myReportMessages.IsEmpty())
+ OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myReportMessages.Length())
+}
//! in theReportSeq sequence, but not more than theMaxCount
Standard_EXPORT static TCollection_ExtendedString PrepareReport (const TColStd_SequenceOfHExtendedString& theReportSeq, const Standard_Integer theMaxCount);
+ //! Dumps the content of me into the stream
+ Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const;
+
#include <Message_StatusType.hxx>
#include <Message_Status.hxx>
+#include <Standard_Dump.hxx>
+
/**
* Tiny class for extended handling of error / execution
* status of algorithm in universal way.
const Message_ExecStatus& operator &= ( const Message_ExecStatus& theOther )
{ And ( theOther ); return *this; }
+ //! Dumps the content of me into the stream
+ virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const
+ {
+ (void)theDepth;
+ OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myDone)
+ OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myWarn)
+ OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myAlarm)
+ OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myFail)
+ }
+
//@}
public:
#include <Message_Level.hxx>
#include <Message_Report.hxx>
+#include <BinTools.hxx>
#include <Standard_Dump.hxx>
#include <TCollection.hxx>
#include <TDocStd_Application.hxx>
#include <TDocStd_Document.hxx>
+#include <TopoDS_AlertWithShape.hxx>
+
#include <XmlDrivers.hxx>
// =======================================================================
TDataStd_AsciiString::Set (theAlertLabel, anAttribute->GetName());
Standard_CString aDynamicTypeName = anAttribute->DynamicType()->Name();
+ TCollection_AsciiString aStreamText;
if (aDynamicTypeName == STANDARD_TYPE (Message_AttributeStream)->Name())
{
Handle(Message_AttributeStream) aValuesArrayAlert = Handle(Message_AttributeStream)::DownCast (anAttribute);
- // store values
- TCollection_AsciiString aStreamText = Standard_Dump::Text (aValuesArrayAlert->Stream());
- if (aStreamText.IsEmpty())
- return;
+ aStreamText = Standard_Dump::Text (aValuesArrayAlert->Stream());
+ }
+ else if (aDynamicTypeName == STANDARD_TYPE (TopoDS_AlertWithShape)->Name())
+ {
+ Handle(TopoDS_AlertWithShape) aShapeAttribute = Handle(TopoDS_AlertWithShape)::DownCast (anAttribute);
+ Standard_SStream aStream;
+ if (BinTools::Write (aShapeAttribute->GetShape(), aStream))
+ aStreamText = Standard_Dump::Text (aStream);
+ }
+ if (!aStreamText.IsEmpty())
+ {
Handle(TDataStd_ExtStringArray) aListAttribute = TDataStd_ExtStringArray::Set (theAlertLabel, 0, 0);
aListAttribute->SetValue (0, aStreamText);
}
Handle(Message_Attribute) aMessageAttribute;
if (aDynamicTypeName == STANDARD_TYPE (Message_Attribute)->Name())
aMessageAttribute = new Message_Attribute();
- else if (aDynamicTypeName == STANDARD_TYPE (Message_AttributeStream)->Name())
+ else if (aDynamicTypeName == STANDARD_TYPE (Message_AttributeStream)->Name() ||
+ aDynamicTypeName == STANDARD_TYPE (TopoDS_AlertWithShape)->Name())
{
// values
NCollection_Vector<TCollection_AsciiString> anArrayValues;
{
aStream << aValuesAttribute->Value (aValueId);
}
- aMessageAttribute = new Message_AttributeStream (aStream);
+
+ if (aDynamicTypeName == STANDARD_TYPE (Message_AttributeStream)->Name())
+ {
+ aMessageAttribute = new Message_AttributeStream (aStream);
+ }
+ else if (aDynamicTypeName == STANDARD_TYPE (TopoDS_AlertWithShape)->Name())
+ {
+ TopoDS_Shape aShape;
+ if (BinTools::Read (aShape, aStream))
+ aMessageAttribute = new TopoDS_AlertWithShape (aShape);
+ }
}
if (!aMessageAttribute.IsNull())