aGroup->SetGroupPrimitivesAspect (aTextAspect->Aspect());
}
}
+
+void AIS_InteractiveObject::Dump (Standard_OStream& theOStream) const
+{
+ Standard_Dump::Sentry aSentry (theOStream, CLASS_NAME (AIS_InteractiveObject));
+ DUMP_FIELD_VALUES_PARENT (theOStream, SelectMgr_SelectableObject);
+ DUMP_FIELD_VALUES_POINTER (theOStream, myCTXPtr);
+ DUMP_FIELD_VALUES_POINTER (theOStream, myOwner);
+}
Standard_DEPRECATED("Deprecated method, results might be undefined")
Standard_EXPORT void SetAspect (const Handle(Prs3d_BasicAspect)& anAspect);
+ //! Dumps the content of me into the stream
+ Standard_EXPORT virtual void Dump (Standard_OStream& theOStream) const Standard_OVERRIDE;
protected:
//! The TypeOfPresention3d means that the interactive object
#include <Draw_Marker3D.hxx>
#include <Draw_MarkerShape.hxx>
#include <BRepPrimAPI_MakeBox.hxx>
+
+#include <Standard_Dump.hxx>
+
#include <stdio.h>
Standard_IMPORT Draw_Viewer dout;
Bnd_Box anAABB;
Standard_Boolean doPrint = Standard_False;
+ Standard_Boolean doDump = Standard_False;
Standard_Boolean useOldSyntax = Standard_False;
Standard_Boolean isOBB = Standard_False;
Standard_Boolean isTriangulationReq = Standard_True;
aResShapeName = theArgVal[++anArgIter];
hasToDraw = Standard_False;
}
- else if (anArgCase == "-dump"
- || anArgCase == "-print")
+ else if (anArgCase == "-print")
{
doPrint = Standard_True;
}
+ else if (anArgCase == "-dump")
+ {
+ doDump = Standard_True;
+ }
else if (anArgCase == "-save"
&& anArgIter + 6 < theNArg
&& anOutVars[0].IsEmpty())
}
// enable printing (old syntax) if neither saving to shape nor to DRAW variables is requested
- if (! doPrint && anOutVars[0].IsEmpty() && aResShapeName.IsEmpty())
+ if (! doPrint && ! doDump && anOutVars[0].IsEmpty() && aResShapeName.IsEmpty())
{
doPrint = Standard_True;
useOldSyntax = Standard_True;
<< "Half Z: " << anOBB.ZHSize() << "\n";
}
+ if (doDump)
+ {
+ Standard_SStream aStream;
+ anOBB.Dump (aStream);
+
+ theDI << "Oriented bounding box\n";
+ theDI << Standard_Dump::ConvertDumpToText (aStream);
+ }
+
if (hasToDraw
&& !anOBB.IsVoid())
{
theCommands.Add ("bounding",
"bounding {shape | xmin ymin zmin xmax ymax zmax}"
"\n\t\t: [-obb] [-noTriangulation] [-optimal] [-extToler]"
- "\n\t\t: [-dump] [-shape name] [-nodraw] [-finitePart]"
+ "\n\t\t: [-dump] [-print] [-shape name] [-nodraw] [-finitePart]"
"\n\t\t: [-save xmin ymin zmin xmax ymax zmax]"
"\n\t\t:"
"\n\t\t: Computes a bounding box. Two types of the source data are supported:"
"\n\t\t: -extToler Include tolerance of the shape in the resulting box."
"\n\t\t:"
"\n\t\t: Output options:"
- "\n\t\t: -dump Prints the information about computed Bounding Box."
+ "\n\t\t: -print Prints the information about computed Bounding Box."
"\n\t\t: It is enabled by default (with plain old syntax for AABB)"
"\n\t\t: if neither -shape nor -save is specified."
+ "\n\t\t: -dump Prints Dump information about Bounding Box."
"\n\t\t: -shape Stores computed box as solid in DRAW variable with specified name."
"\n\t\t: -save Stores min and max coordinates of AABB in specified variables."
"\n\t\t: -noDraw Avoid drawing resulting Bounding Box in DRAW viewer."
#include <BVH_Constants.hxx>
#include <BVH_Types.hxx>
#include <Standard_ShortReal.hxx>
+#include <Standard_Dump.hxx>
#include <limits>
//! Returns center of bounding box along the given axis.
T Center (const Standard_Integer theAxis) const;
+ //! Dumps the content of me into the stream
+ void Dump (Standard_OStream& theOStream) const
+ {
+ Standard_Dump::Sentry aSentry (theOStream, CLASS_NAME (BVH_Box));
+ DUMP_FIELD_VALUES (theOStream, IsValid());
+ Bnd_Box aBndBox = BVH::ToBndBox (CornerMin(), CornerMax());
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, &aBndBox);
+ }
+
public:
//! Checks if the Box is out of the other box.
DEFINE_STANDARD_RTTIEXT(BVH_TreeBaseTransient, Standard_Transient)
protected:
BVH_TreeBaseTransient() {}
+ //! Dumps the content of me into the stream
+ virtual void Dump (Standard_OStream& theOStream) const { (void)theOStream; }
+ //! Dumps the content of me into the stream
+ virtual void DumpNode (const int theNodeIndex, Standard_OStream& theOStream) const
+ { (void)theNodeIndex; (void)theOStream; }
};
//! Stores parameters of bounding volume hierarchy (BVH).
return myMaxPointBuffer;
}
+ //! Dumps the content of me into the stream
+ Standard_EXPORT virtual void Dump (Standard_OStream& theOStream) const Standard_OVERRIDE
+ {
+ Standard_Dump::Sentry aSentry (theOStream, CLASS_NAME (BVH_TreeBase));
+ DUMP_FIELD_VALUES (theOStream, myDepth);
+ DUMP_FIELD_VALUES (theOStream, Length());
+
+ for (Standard_Integer aNodeIdx = 0; aNodeIdx < Length(); ++aNodeIdx)
+ {
+ DumpNode (aNodeIdx, theOStream);
+ }
+ }
+
+ //! Dumps the content of node into the stream
+ Standard_EXPORT virtual void DumpNode (const int theNodeIndex, Standard_OStream& theOStream) const Standard_OVERRIDE
+ {
+ Standard_Dump::Sentry aSentry (theOStream, "BVH_TreeNode");
+ DUMP_FIELD_VALUES (theOStream, theNodeIndex);
+
+ Bnd_Box aBndBox = BVH::ToBndBox (MinPoint (theNodeIndex), MaxPoint (theNodeIndex));
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, &aBndBox);
+
+ DUMP_FIELD_VALUES (theOStream, BegPrimitive (theNodeIndex));
+ DUMP_FIELD_VALUES (theOStream, EndPrimitive (theNodeIndex));
+ DUMP_FIELD_VALUES (theOStream, Level (theNodeIndex));
+ DUMP_FIELD_VALUES (theOStream, IsOuter (theNodeIndex));
+ }
+
public: //! @name protected fields
//! Array of node data records.
#include <vector>
+#include <Bnd_Box.hxx>
#include <NCollection_Mat4.hxx>
#include <NCollection_Vec2.hxx>
#include <NCollection_Vec3.hxx>
#include <NCollection_Vector.hxx>
+#include <Standard_OStream.hxx>
#include <Standard_Type.hxx>
// GCC supports shrink function only in C++11 mode
typedef NCollection_Vec3<T> Type;
};
+ template<class T> Bnd_Box ToBndBox (const T& theType1, const T& theType2)
+ {
+ return Bnd_Box (theType1, 0., 0., theType2, 0., 0.);
+ }
+
+ template<class T> Bnd_Box ToBndBox (const NCollection_Vec2<T>& theType1,
+ const NCollection_Vec2<T>& theType2)
+ {
+ return Bnd_Box (theType1.x(), theType1.y(), 0.,
+ theType2.x(), theType2.y(), 0.);
+ }
+
+ template<class T> Bnd_Box ToBndBox (const NCollection_Vec3<T>& theType1,
+ const NCollection_Vec3<T>& theType2)
+ {
+ return Bnd_Box (theType1.x(), theType1.y(), theType1.z(),
+ theType2.x(), theType2.y(), theType2.z());
+ }
+
+ template<class T> Bnd_Box ToBndBox (const NCollection_Vec4<T>& theType1,
+ const NCollection_Vec4<T>& theType2)
+ {
+ return Bnd_Box (theType1.x(), theType1.y(), theType1.z(),
+ theType2.x(), theType2.y(), theType2.z());
+ }
+
template<class T> struct VectorType<T, 4>
{
typedef NCollection_Vec4<T> Type;
#include <gp_Pnt.hxx>
#include <gp_Trsf.hxx>
#include <Standard_ConstructionError.hxx>
+#include <Standard_Dump.hxx>
// set the flag to one
#define ClearVoidFlag() ( Flags &= ~VoidMask )
SetVoid();
}
+//=======================================================================
+//function : Bnd_Box
+//purpose :
+//=======================================================================
+Bnd_Box::Bnd_Box (const Standard_Real theXmin, const Standard_Real theYmin, const Standard_Real theZmin,
+ const Standard_Real theXmax, const Standard_Real theYmax, const Standard_Real theZmax)
+: Gap (0.0)
+{
+ SetVoid();
+ Update (theXmin, theYmin, theZmin, theXmax, theYmax, theZmax);
+}
+
+
//=======================================================================
//function : Set
//purpose :
std::cout << "\n Gap : " << Gap;
std::cout << "\n";
}
+
+//=======================================================================
+//function : Dump
+//purpose :
+//=======================================================================
+void Bnd_Box::Dump (Standard_OStream& theOStream) const
+{
+ Standard_Dump::Sentry aSentry (theOStream, CLASS_NAME (Bnd_Box));
+
+ DUMP_FIELD_VALUES (theOStream, Xmin);
+ DUMP_FIELD_VALUES (theOStream, Ymin);
+ DUMP_FIELD_VALUES (theOStream, Zmin);
+ DUMP_FIELD_VALUES (theOStream, Xmax);
+ DUMP_FIELD_VALUES (theOStream, Ymax);
+ DUMP_FIELD_VALUES (theOStream, Zmax);
+ DUMP_FIELD_VALUES (theOStream, Gap);
+ DUMP_FIELD_VALUES (theOStream, Flags);
+}
//! The constructed box is qualified Void. Its gap is null.
Standard_EXPORT Bnd_Box();
+ //! Creates a bounding box, it contains:
+ //! - interval [ aXmin,aXmax ] in the "X Direction",
+ //! - interval [ aYmin,aYmax ] in the "Y Direction",
+ //! - interval [ aZmin,aZmax ] in the "Z Direction";
+ //! The constructed box is qualified Void. Its gap is null.
+ Standard_EXPORT Bnd_Box (const Standard_Real aXmin, const Standard_Real aYmin, const Standard_Real aZmin,
+ const Standard_Real aXmax, const Standard_Real aYmax, const Standard_Real aZmax);
//! Sets this bounding box so that it covers the whole of 3D space.
//! It is infinitely long in all directions.
void SetWhole() { Flags = WholeMask; }
&& Xmax >= Xmin;
}
+ //! Dumps the content of me into the stream
+ Standard_EXPORT void Dump (Standard_OStream& theOStream) const;
+
protected:
//! Bit flags.
#include <NCollection_Array1.hxx>
#include <Precision.hxx>
+#include <Standard_Dump.hxx>
#include <TColStd_Array1OfReal.hxx>
//! Auxiliary class to select from the points stored in
ReBuild(TColgp_Array1OfPnt(aList[0], 0, 15));
}
+//=======================================================================
+//function : Dump
+//purpose :
+//=======================================================================
+void Bnd_OBB::Dump (Standard_OStream& theOStream) const
+{
+ Standard_Dump::Sentry aSentry (theOStream, CLASS_NAME (Bnd_OBB));
+
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, &myCenter);
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, &XDirection());
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, &YDirection());
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, &ZDirection());
+
+ DUMP_FIELD_VALUES (theOStream, XHSize());
+ DUMP_FIELD_VALUES (theOStream, YHSize());
+ DUMP_FIELD_VALUES (theOStream, ZHSize());
+ DUMP_FIELD_VALUES (theOStream, myIsAABox);
+}
#include <Standard_Handle.hxx>
#include <Standard_Real.hxx>
#include <Standard_Boolean.hxx>
+#include <Standard_OStream.hxx>
#include <Bnd_Box.hxx>
#include <gp_Ax3.hxx>
//! (which it was created from) and theP.
Standard_EXPORT void Add(const gp_Pnt& theP);
+ //! Dumps the content of me into the stream
+ Standard_EXPORT void Dump (Standard_OStream& theOStream) const;
+
protected:
void ProcessOnePoint(const gp_Pnt& theP)
#include <Bnd_Range.hxx>
+#include <Standard_Dump.hxx>
//=======================================================================
//function : Common
{
theList.Append(Bnd_Range(aValPrev, myLast));
}
-}
\ No newline at end of file
+}
+// =======================================================================
+// function : Dump
+// purpose :
+// =======================================================================
+void Bnd_Range::Dump (Standard_OStream& theOStream) const
+{
+ Standard_Dump::Sentry aSentry (theOStream, CLASS_NAME (Bnd_Range));
+
+ DUMP_FIELD_VALUES (theOStream, myFirst);
+ DUMP_FIELD_VALUES (theOStream, myLast);
+}
return ((myFirst == theOther.myFirst) && (myLast == theOther.myLast));
}
+ //! Dumps the content of me into the stream
+ Standard_EXPORT void Dump (Standard_OStream& theOStream) const;
+
private:
Standard_Real myFirst; //!< Start of range
Graphic3d_NameOfTextureEnv.hxx
Graphic3d_NameOfTexturePlane.hxx
Graphic3d_NMapOfTransient.hxx
+Graphic3d_PolygonOffset.cxx
Graphic3d_PolygonOffset.hxx
Graphic3d_PriorityDefinitionError.hxx
Graphic3d_RenderingMode.hxx
// commercial license or contractual agreement.
#include <Graphic3d_Aspects.hxx>
+#include <Standard_Dump.hxx>
IMPLEMENT_STANDARD_RTTIEXT(Graphic3d_Aspects, Standard_Transient)
myTextureSet = new Graphic3d_TextureSet (theTexture);
}
+
+//=======================================================================
+//function : Dump
+//purpose :
+//=======================================================================
+void Graphic3d_Aspects::Dump (Standard_OStream& theOStream) const
+{
+ Standard_Dump::Sentry aSentry (theOStream, CLASS_NAME (Graphic3d_Aspects));
+
+ /*Handle(Graphic3d_ShaderProgram) myProgram;
+ Handle(Graphic3d_TextureSet) myTextureSet;
+ Handle(Graphic3d_MarkerImage) myMarkerImage;
+ Handle(Graphic3d_HatchStyle) myHatchStyle;
+ Handle(TCollection_HAsciiString) myTextFont;
+ Graphic3d_MaterialAspect myFrontMaterial;
+ Graphic3d_MaterialAspect myBackMaterial;
+ */
+
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, &myInteriorColor);
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, &myBackInteriorColor);
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, &myEdgeColor);
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, &myPolygonOffset);
+
+
+ /*Aspect_InteriorStyle myInteriorStyle;
+ Graphic3d_TypeOfShadingModel myShadingModel;
+ Graphic3d_AlphaMode myAlphaMode;
+ Standard_ShortReal myAlphaCutoff;
+
+ Aspect_TypeOfLine myLineType;
+ Standard_ShortReal myLineWidth;
+
+ Aspect_TypeOfMarker myMarkerType;
+ Standard_ShortReal myMarkerScale;
+
+ Aspect_TypeOfStyleText myTextStyle;
+ Aspect_TypeOfDisplayText myTextDisplayType;
+ Font_FontAspect myTextFontAspect;
+ Standard_ShortReal myTextAngle;
+ */
+
+ DUMP_FIELD_VALUES (theOStream, myToSkipFirstEdge);
+ DUMP_FIELD_VALUES (theOStream, myToDistinguishMaterials);
+ DUMP_FIELD_VALUES (theOStream, myToDrawEdges);
+ DUMP_FIELD_VALUES (theOStream, myToDrawSilhouette);
+ DUMP_FIELD_VALUES (theOStream, myToSuppressBackFaces);
+ DUMP_FIELD_VALUES (theOStream, myToMapTexture);
+ DUMP_FIELD_VALUES (theOStream, myIsTextZoomable);
+}
&& myIsTextZoomable == theOther.myIsTextZoomable;
}
+ //! Dumps the content of me into the stream
+ Standard_EXPORT void Dump (Standard_OStream& theOStream) const;
+
protected:
Handle(Graphic3d_ShaderProgram) myProgram;
Update();
}
+
+// =======================================================================
+// function : Dump
+// purpose :
+// =======================================================================
+void Graphic3d_Group::Dump (Standard_OStream& theOStream) const
+{
+ Standard_Dump::Sentry aSentry (theOStream, CLASS_NAME (Graphic3d_Group));
+
+ //Graphic3d_Structure* myStructure; //!< pointer to the parent structure
+ //Graphic3d_BndBox4f myBounds; //!< bounding box
+
+ DUMP_FIELD_VALUES (theOStream, myIsClosed);
+ DUMP_FIELD_VALUES (theOStream, myContainsFacet);
+}
const Standard_Boolean theHasOwnAnchor = Standard_True);
+ //! Dumps the content of me into the stream
+ Standard_EXPORT virtual void Dump (Standard_OStream& theOStream) const;
+
protected:
//! Creates a group in the structure <AStructure>.
--- /dev/null
+// Copyright (c) 2016 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 <Graphic3d_PolygonOffset.hxx>
+
+#include <Standard_Dump.hxx>
+
+//=======================================================================
+//function : Dump
+//purpose :
+//=======================================================================
+void Graphic3d_PolygonOffset::Dump (Standard_OStream& theOStream) const
+{
+ Standard_Dump::Sentry aSentry (theOStream, CLASS_NAME (Graphic3d_PolygonOffset));
+
+ DUMP_FIELD_VALUES (theOStream, Mode);
+ DUMP_FIELD_VALUES (theOStream, Factor);
+ DUMP_FIELD_VALUES (theOStream, Units);
+}
#define _Graphic3d_PolygonOffset_HeaderFile
#include <Aspect_PolygonOffsetMode.hxx>
+#include <Standard_OStream.hxx>
//! Polygon offset parameters.
struct Graphic3d_PolygonOffset
&& Factor == theOther.Factor
&& Units == theOther.Units;
}
+
+ //! Dumps the content of me into the stream
+ Standard_EXPORT void Dump (Standard_OStream& theOStream) const;
+
};
#endif // _Graphic3d_PolygonOffset_HeaderFile
myResSprite.Release (theContext);
myResProgram.Release (theContext);
}
+
+// =======================================================================
+// function : Dump
+// purpose :
+// =======================================================================
+void OpenGl_Aspects::Dump (Standard_OStream& theOStream) const
+{
+ Standard_Dump::Sentry aSentry (theOStream, CLASS_NAME (OpenGl_Aspects));
+
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, myAspect);
+ DUMP_FIELD_VALUES (theOStream, myShadingModel);
+
+ //mutable OpenGl_AspectsProgram myResProgram;
+ //mutable OpenGl_AspectsTextureSet myResTextureSet;
+ //mutable OpenGl_AspectsSprite myResSprite;
+}
//! Update presentation aspects parameters after their modification.
virtual void SynchronizeAspects() Standard_OVERRIDE { SetAspect (myAspect); }
+ //! Dumps the content of me into the stream
+ Standard_EXPORT void Dump (Standard_OStream& theOStream) const;
+
protected:
//! OpenGl resources
OpenGl_Element::Destroy (theGlCtx.get(), myAspects);
}
+
+// =======================================================================
+// function : Dump
+// purpose :
+// =======================================================================
+void OpenGl_Group::Dump (Standard_OStream& theOStream) const
+{
+ Standard_Dump::Sentry aSentry (theOStream, CLASS_NAME (OpenGl_Group));
+
+ DUMP_FIELD_VALUES_PARENT (theOStream, Graphic3d_Group);
+
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, myAspects);
+ //OpenGl_CappingPlaneResource* myAspectFillCapping;
+ //OpenGl_ElementNode* myFirst;
+ //OpenGl_ElementNode* myLast;
+
+ DUMP_FIELD_VALUES (theOStream, myIsRaytracable);
+}
//! Returns OpenGL capping filling aspect.
const OpenGl_CappingPlaneResource* AspectFillCapping() const { return myAspectFillCapping; }
+ //! Dumps the content of me into the stream
+ Standard_EXPORT virtual void Dump (Standard_OStream& theOStream) const Standard_OVERRIDE;
+
protected:
Standard_EXPORT virtual ~OpenGl_Group();
#include <Prs3d_ArrowAspect.hxx>
#include <Prs3d_InvalidAngle.hxx>
+#include <Standard_Dump.hxx>
IMPLEMENT_STANDARD_RTTIEXT(Prs3d_ArrowAspect, Prs3d_BasicAspect)
|| theAngle >= M_PI / 2.0, "Prs3d_ArrowAspect::SetAngle() - angle out of range");
myAngle = theAngle;
}
+
+// =======================================================================
+// function : Dump
+// purpose :
+// =======================================================================
+void Prs3d_ArrowAspect::Dump (Standard_OStream& theOStream) const
+{
+ Standard_Dump::Sentry aSentry (theOStream, CLASS_NAME (Prs3d_ArrowAspect));
+
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, myArrowAspect);
+
+ DUMP_FIELD_VALUES (theOStream, myAngle);
+ DUMP_FIELD_VALUES (theOStream, myLength);
+}
void SetAspect (const Handle(Graphic3d_AspectLine3d)& theAspect) { myArrowAspect = theAspect; }
+ //! Dumps the content of me into the stream
+ Standard_EXPORT virtual void Dump (Standard_OStream& theOStream) const Standard_OVERRIDE;
+
protected:
Handle(Graphic3d_AspectLine3d) myArrowAspect;
#define _Prs3d_BasicAspect_HeaderFile
#include <Standard.hxx>
+#include <Standard_OStream.hxx>
#include <Standard_Type.hxx>
#include <Standard_Transient.hxx>
class Prs3d_BasicAspect : public Standard_Transient
{
DEFINE_STANDARD_RTTIEXT(Prs3d_BasicAspect, Standard_Transient)
+
+ //! Dumps the content of me into the stream
+ virtual void Dump (Standard_OStream& theOStream) const = 0;
+
};
DEFINE_STANDARD_HANDLE(Prs3d_BasicAspect, Standard_Transient)
#include <Prs3d_DatumAspect.hxx>
+#include <Standard_Dump.hxx>
+
IMPLEMENT_STANDARD_RTTIEXT(Prs3d_DatumAspect, Prs3d_BasicAspect)
// =======================================================================
}
return Prs3d_DP_None;
}
+
+// =======================================================================
+// function : Dump
+// purpose :
+// =======================================================================
+void Prs3d_DatumAspect::Dump (Standard_OStream& theOStream) const
+{
+ Standard_Dump::Sentry aSentry (theOStream, CLASS_NAME (Prs3d_DatumAspect));
+
+ DUMP_FIELD_VALUES (theOStream, myAxes);
+ DUMP_FIELD_VALUES (theOStream, myToDrawLabels);
+ DUMP_FIELD_VALUES (theOStream, myToDrawArrows);
+
+ //NCollection_DataMap<Prs3d_DatumAttribute, Standard_Real> myAttributes;
+ //NCollection_DataMap<Prs3d_DatumParts, Handle(Prs3d_ShadingAspect)> myShadedAspects;
+ //NCollection_DataMap<Prs3d_DatumParts, Handle(Prs3d_LineAspect)> myLineAspects;
+
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, myTextAspect);
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, myPointAspect);
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, myArrowAspect);
+}
+
//! Returns type of arrow for a type of axis
Standard_EXPORT Prs3d_DatumParts ArrowPartForAxis (Prs3d_DatumParts thePart) const;
+ //! Dumps the content of me into the stream
+ Standard_EXPORT virtual void Dump (Standard_OStream& theOStream) const Standard_OVERRIDE;
+
private:
Prs3d_DatumAxes myAxes;
Standard_Boolean myToDrawLabels;
#include <Aspect_TypeOfLine.hxx>
#include <Graphic3d_AspectText3d.hxx>
+#include <Standard_Dump.hxx>
IMPLEMENT_STANDARD_RTTIEXT(Prs3d_DimensionAspect, Prs3d_BasicAspect)
myTextAspect->SetColor (theColor);
myArrowAspect->SetColor (theColor);
}
+
+// =======================================================================
+// function : Dump
+// purpose :
+// =======================================================================
+void Prs3d_DimensionAspect::Dump (Standard_OStream& theOStream) const
+{
+ Standard_Dump::Sentry aSentry (theOStream, CLASS_NAME (Prs3d_DimensionAspect));
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, myLineAspect);
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, myTextAspect);
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, myArrowAspect);
+
+ DUMP_FIELD_VALUES (theOStream, myValueStringFormat);
+ DUMP_FIELD_VALUES (theOStream, myExtensionSize);
+ DUMP_FIELD_VALUES (theOStream, myArrowTailSize);
+ DUMP_FIELD_VALUES (theOStream, myArrowOrientation);
+ DUMP_FIELD_VALUES (theOStream, myTextHPosition);
+ DUMP_FIELD_VALUES (theOStream, myTextVPosition);
+ DUMP_FIELD_VALUES (theOStream, myToDisplayUnits);
+ DUMP_FIELD_VALUES (theOStream, myIsText3d);
+ DUMP_FIELD_VALUES (theOStream, myIsTextShaded);
+ DUMP_FIELD_VALUES (theOStream, myIsArrows3d);
+}
+
//! Returns format.
const TCollection_AsciiString& ValueStringFormat() const { return myValueStringFormat; }
+ //! Dumps the content of me into the stream
+ Standard_EXPORT virtual void Dump (Standard_OStream& theOStream) const Standard_OVERRIDE;
+
protected:
Handle(Prs3d_LineAspect) myLineAspect;
#include <Prs3d_PointAspect.hxx>
#include <Prs3d_ShadingAspect.hxx>
#include <Prs3d_TextAspect.hxx>
+#include <Standard_Dump.hxx>
IMPLEMENT_STANDARD_RTTIEXT(Prs3d_Drawer, Graphic3d_PresentationAttributes)
return isUpdateNeeded;
}
+
+// =======================================================================
+// function : Dump
+// purpose :
+// =======================================================================
+void Prs3d_Drawer::Dump (Standard_OStream& theOStream) const
+{
+ Standard_Dump::Sentry aSentry (theOStream, CLASS_NAME (Prs3d_Drawer));
+
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, myShadingAspect);
+}
Standard_EXPORT bool SetShadingModel (Graphic3d_TypeOfShadingModel theModel,
bool theToOverrideDefaults = false);
+ //! Dumps the content of me into the stream
+ Standard_EXPORT void Dump (Standard_OStream& theOStream) const;
+
protected:
Handle(Prs3d_Drawer) myLink;
#include <Prs3d_LineAspect.hxx>
+#include <Standard_Dump.hxx>
+
IMPLEMENT_STANDARD_RTTIEXT(Prs3d_LineAspect, Prs3d_BasicAspect)
// =======================================================================
{
//
}
+
+// =======================================================================
+// function : Dump
+// purpose :
+// =======================================================================
+void Prs3d_LineAspect::Dump (Standard_OStream& theOStream) const
+{
+ Standard_Dump::Sentry aSentry (theOStream, CLASS_NAME (Prs3d_LineAspect));
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, myAspect);
+}
+
void SetAspect (const Handle(Graphic3d_AspectLine3d)& theAspect) { myAspect = theAspect; }
+ //! Dumps the content of me into the stream
+ Standard_EXPORT virtual void Dump (Standard_OStream& theOStream) const Standard_OVERRIDE;
+
protected:
Handle(Graphic3d_AspectLine3d) myAspect;
#include <Prs3d_PlaneAspect.hxx>
+#include <Standard_Dump.hxx>
+
IMPLEMENT_STANDARD_RTTIEXT(Prs3d_PlaneAspect, Prs3d_BasicAspect)
// =======================================================================
{
//
}
+
+// =======================================================================
+// function : Dump
+// purpose :
+// =======================================================================
+void Prs3d_PlaneAspect::Dump (Standard_OStream& theOStream) const
+{
+ Standard_Dump::Sentry aSentry (theOStream, CLASS_NAME (Prs3d_PlaneAspect));
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, myEdgesAspect);
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, myIsoAspect);
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, myArrowAspect);
+
+ DUMP_FIELD_VALUES (theOStream, myArrowsLength);
+ DUMP_FIELD_VALUES (theOStream, myArrowsSize);
+ DUMP_FIELD_VALUES (theOStream, myArrowsAngle);
+ DUMP_FIELD_VALUES (theOStream, myPlaneXLength);
+ DUMP_FIELD_VALUES (theOStream, myPlaneYLength);
+ DUMP_FIELD_VALUES (theOStream, myIsoDistance);
+ DUMP_FIELD_VALUES (theOStream, myDrawCenterArrow);
+ DUMP_FIELD_VALUES (theOStream, myDrawEdgesArrows);
+ DUMP_FIELD_VALUES (theOStream, myDrawEdges);
+ DUMP_FIELD_VALUES (theOStream, myDrawIso);
+}
+
//! Returns the distance between isoparameters used in the display of planes.
Standard_Real IsoDistance() const { return myIsoDistance; }
+ //! Dumps the content of me into the stream
+ Standard_EXPORT virtual void Dump (Standard_OStream& theOStream) const Standard_OVERRIDE;
+
protected:
Handle(Prs3d_LineAspect) myEdgesAspect;
#include <Prs3d_PointAspect.hxx>
+#include <Standard_Dump.hxx>
+
IMPLEMENT_STANDARD_RTTIEXT(Prs3d_PointAspect, Prs3d_BasicAspect)
// =======================================================================
{
//
}
+
+// =======================================================================
+// function : Dump
+// purpose :
+// =======================================================================
+void Prs3d_PointAspect::Dump (Standard_OStream& theOStream) const
+{
+ Standard_Dump::Sentry aSentry (theOStream, CLASS_NAME (Prs3d_PointAspect));
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, myAspect);
+}
+
//! Returns marker's texture.
const Handle(Graphic3d_MarkerImage)& GetTexture() const { return myAspect->GetMarkerImage(); }
+ //! Dumps the content of me into the stream
+ Standard_EXPORT virtual void Dump (Standard_OStream& theOStream) const Standard_OVERRIDE;
+
protected:
Handle(Graphic3d_AspectMarker3d) myAspect;
#include <Graphic3d_MaterialAspect.hxx>
#include <Quantity_Color.hxx>
#include <Standard_Type.hxx>
+#include <Standard_Dump.hxx>
IMPLEMENT_STANDARD_RTTIEXT(Prs3d_ShadingAspect, Prs3d_BasicAspect)
}
return 0.0;
}
+
+// =======================================================================
+// function : Dump
+// purpose :
+// =======================================================================
+void Prs3d_ShadingAspect::Dump (Standard_OStream& theOStream) const
+{
+ Standard_Dump::Sentry aSentry (theOStream, CLASS_NAME (Prs3d_ShadingAspect), this);
+
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, myAspect);
+}
+
void SetAspect (const Handle(Graphic3d_AspectFillArea3d)& theAspect) { myAspect = theAspect; }
+ //! Dumps the content of me into the stream
+ Standard_EXPORT virtual void Dump (Standard_OStream& theOStream) const Standard_OVERRIDE;
+
protected:
Handle(Graphic3d_AspectFillArea3d) myAspect;
#include <Prs3d_TextAspect.hxx>
#include <Font_NameOfFont.hxx>
+#include <Standard_Dump.hxx>
IMPLEMENT_STANDARD_RTTIEXT(Prs3d_TextAspect, Prs3d_BasicAspect)
{
//
}
+
+// =======================================================================
+// function : Dump
+// purpose :
+// =======================================================================
+void Prs3d_TextAspect::Dump (Standard_OStream& theOStream) const
+{
+ Standard_Dump::Sentry aSentry (theOStream, CLASS_NAME (Prs3d_TextAspect));
+
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, myTextAspect);
+
+ DUMP_FIELD_VALUES (theOStream, "Height");
+
+ DUMP_FIELD_VALUES (theOStream, "HorizontalJustification");
+ DUMP_FIELD_VALUES (theOStream, "VerticalJustification");
+ DUMP_FIELD_VALUES (theOStream, "Orientation");
+}
+
void SetAspect (const Handle(Graphic3d_AspectText3d)& theAspect) { myTextAspect = theAspect; }
+ //! Dumps the content of me into the stream
+ Standard_EXPORT virtual void Dump (Standard_OStream& theOStream) const Standard_OVERRIDE;
+
protected:
Handle(Graphic3d_AspectText3d) myTextAspect;
myDrawer->ShadingAspect()->Aspect()->PolygonOffsets (theMode, theFactor, theUnits);
}
}
+
+// =======================================================================
+// function : Dump
+// purpose :
+// =======================================================================
+void PrsMgr_PresentableObject::Dump (Standard_OStream& theOStream) const
+{
+ Standard_Dump::Sentry aSentry (theOStream, CLASS_NAME (PrsMgr_PresentableObject));
+
+ DUMP_FIELD_VALUES (theOStream, myParent);
+
+ DUMP_FIELD_VALUES (theOStream, myOwnWidth);
+ DUMP_FIELD_VALUES (theOStream, hasOwnColor);
+ DUMP_FIELD_VALUES (theOStream, hasOwnMaterial);
+
+ DUMP_FIELD_VALUES (theOStream, myInfiniteState);
+ DUMP_FIELD_VALUES (theOStream, myIsMutable);
+ DUMP_FIELD_VALUES (theOStream, myHasOwnPresentations);
+
+/*
+ PrsMgr_Presentations myPresentations; //!< list of presentations
+ Handle(Graphic3d_SequenceOfHClipPlane) myClipPlanes; //!< sequence of object-specific clipping planes
+ Handle(Prs3d_Drawer) myDrawer; //!< main presentation attributes
+ Handle(Prs3d_Drawer) myHilightDrawer; //!< (optional) custom presentation attributes for highlighting selected object
+ Handle(Prs3d_Drawer) myDynHilightDrawer; //!< (optional) custom presentation attributes for highlighting detected object
+ Handle(Graphic3d_TransformPers) myTransformPersistence; //!< transformation persistence
+ Handle(Geom_Transformation) myLocalTransformation; //!< local transformation relative to parent object
+ Handle(Geom_Transformation) myTransformation; //!< absolute transformation of this object (combined parents + local transformations)
+ Handle(Geom_Transformation) myCombinedParentTransform; //!< transformation of parent object (combined for all parents)
+ PrsMgr_ListOfPresentableObjects myChildren; //!< list of children
+ gp_GTrsf myInvTransformation; //!< inversion of absolute transformation (combined parents + local transformations)
+ PrsMgr_TypeOfPresentation3d myTypeOfPresentation3d; //!< presentation type
+
+ Aspect_TypeOfFacingModel myCurrentFacingModel; //!< current facing model
+*/
+}
//! Clears settings provided by the drawing tool aDrawer.
Standard_EXPORT virtual void UnsetAttributes();
+ //! Dumps the content of me into the stream
+ Standard_EXPORT virtual void Dump (Standard_OStream& theOStream) const;
+
public: //! @name deprecated methods
//! gives the list of modes which are flagged "to be updated".
#include <Quantity_ColorRGBA.hxx>
#include <Standard_ErrorHandler.hxx>
#include <Standard_OutOfRange.hxx>
+#include <Standard_Dump.hxx>
#include <TCollection_AsciiString.hxx>
#include <string.h>
if (h < 0.0) h += 360.0;
}
}
+
+//=======================================================================
+//function : Dump
+//purpose :
+//=======================================================================
+void Quantity_Color::Dump (Standard_OStream& theOStream) const
+{
+ Standard_Dump::Sentry aSentry (theOStream, CLASS_NAME (Quantity_Color));
+
+ DUMP_FIELD_VALUES (theOStream, MyRed);
+ DUMP_FIELD_VALUES (theOStream, MyGreen);
+ DUMP_FIELD_VALUES (theOStream, MyBlue);
+}
//! Internal test
Standard_EXPORT static void Test();
+ //! Dumps the content of me into the stream
+ Standard_EXPORT void Dump (Standard_OStream& theOStream) const;
+
private:
//! Converts HLS components into RGB ones.
#include <Quantity_ColorRGBA.hxx>
#include <Graphic3d_Vec4.hxx>
+#include <Standard_Dump.hxx>
#include <algorithm>
const ColorInteger aColorComponentBase = isShort ? THE_HEX_COLOR_COMPONENT_SHORT_BASE : THE_HEX_COLOR_COMPONENT_BASE;
return convertIntegerToColorRGBA (aHexColorInteger, aColorComponentBase, hasAlphaComponent, theColor);
}
+
+//=======================================================================
+//function : Dump
+//purpose :
+//=======================================================================
+void Quantity_ColorRGBA::Dump (Standard_OStream& theOStream) const
+{
+ Standard_Dump::Sentry aSentry (theOStream, CLASS_NAME (Quantity_ColorRGBA));
+
+ DUMP_FIELD_VALUES (theOStream, myAlpha);
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, &myRgb);
+}
Quantity_ColorRGBA& theColor,
const bool theAlphaComponentIsOff = false);
+ //! Dumps the content of me into the stream
+ Standard_EXPORT void Dump (Standard_OStream& theOStream) const;
+
private:
static void myTestSize3() { Standard_STATIC_ASSERT (sizeof(float) * 3 == sizeof(Quantity_Color)); }
#include <SelectMgr_BaseFrustum.hxx>
+#include <Message.hxx>
+
+#include <Standard_Dump.hxx>
+
IMPLEMENT_STANDARD_RTTIEXT(SelectMgr_BaseFrustum,Standard_Transient)
//=======================================================================
{
return gp_Pnt (RealLast(), RealLast(), RealLast());
}
+
+//=======================================================================
+//function : Dump
+//purpose :
+//=======================================================================
+void SelectMgr_BaseFrustum::Dump(Standard_OStream& theOStream)const
+{
+ Standard_Dump::Sentry aSentry (theOStream, CLASS_NAME (SelectMgr_BaseFrustum));
+
+ DUMP_FIELD_VALUES (theOStream, myPixelTolerance);
+ DUMP_FIELD_VALUES (theOStream, myIsOrthographic);
+ DUMP_FIELD_VALUES_POINTER (theOStream, myBuilder);
+ DUMP_FIELD_VALUES_POINTER (theOStream, myCamera);
+}
#include <TColgp_Array1OfPnt.hxx>
#include <TColgp_Array1OfPnt2d.hxx>
+#include <Standard_OStream.hxx>
+
//! This class is an interface for different types of selecting frustums,
//! defining different selection types, like point, box or polyline
//! selection. It contains signatures of functions for detection of
return;
}
+ //! Dumps the content of me into the stream
+ Standard_EXPORT virtual void Dump (Standard_OStream& theOStream) const;
+
DEFINE_STANDARD_RTTIEXT(SelectMgr_BaseFrustum,Standard_Transient)
protected:
mySelectable->HilightOwnerWithColor (thePM, theStyle, this);
}
}
+
+// =======================================================================
+// function : Dump
+// purpose :
+// =======================================================================
+void SelectMgr_EntityOwner::Dump (Standard_OStream& theOStream) const
+{
+ Standard_Dump::Sentry aSentry (theOStream, CLASS_NAME (SelectMgr_EntityOwner));
+
+ DUMP_FIELD_VALUES_POINTER (theOStream, mySelectable);
+ DUMP_FIELD_VALUES (theOStream, mypriority);
+ DUMP_FIELD_VALUES (theOStream, myIsSelected);
+ DUMP_FIELD_VALUES (theOStream, myFromDecomposition);
+}
//! Sets flag indicating this owner points to a part of object (TRUE) or to entire object (FALSE).
void SetComesFromDecomposition (const Standard_Boolean theIsFromDecomposition) { myFromDecomposition = theIsFromDecomposition; }
+ //! Dumps the content of me into the stream
+ Standard_EXPORT virtual void Dump (Standard_OStream& theOStream) const;
+
public:
//! Sets the selectable object.
{
return THE_NULL_ENTITYOWNER;
}
+
+// =======================================================================
+// function : Dump
+// purpose :
+// =======================================================================
+void SelectMgr_SelectableObject::Dump (Standard_OStream& theOStream) const
+{
+ Standard_Dump::Sentry aSentry (theOStream, CLASS_NAME (SelectMgr_SelectableObject));
+
+ DUMP_FIELD_VALUES_PARENT (theOStream, PrsMgr_PresentableObject);
+
+ DUMP_FIELD_VALUES (theOStream, myGlobalSelMode);
+ //DUMP_FIELD_VALUES (theOStream, "mycurrent", mycurrent);
+ DUMP_FIELD_VALUES (theOStream, myAutoHilight);
+
+/*
+ SelectMgr_SequenceOfSelection myselections; //!< list of selections
+ Handle(Prs3d_Presentation) mySelectionPrs; //!< optional presentation for highlighting selected object
+ Handle(Prs3d_Presentation) myHilightPrs; //!< optional presentation for highlighting detected object
+*/
+}
//! Returns common entity owner if the object is an assembly
Standard_EXPORT virtual const Handle(SelectMgr_EntityOwner)& GetAssemblyOwner() const;
+ //! Dumps the content of me into the stream
+ Standard_EXPORT virtual void Dump (Standard_OStream& theOStream) const Standard_OVERRIDE;
+
public:
//! Begins the iteration scanning for sensitive primitives.
}
}
}
+
+// =======================================================================
+// function : Dump
+// purpose :
+// =======================================================================
+void SelectMgr_ViewClipRange::Dump (Standard_OStream& theOStream) const
+{
+ Standard_Dump::Sentry aSentry (theOStream, CLASS_NAME (SelectMgr_ViewClipRange));
+
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, &myUnclipRange);
+ for (size_t aRangeIter = 0; aRangeIter < myClipRanges.size(); ++aRangeIter)
+ {
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, &myClipRanges[aRangeIter]);
+ }
+}
#include <Bnd_Range.hxx>
#include <Standard_TypeDef.hxx>
+#include <Standard_OStream.hxx>
+#include <Standard_Dump.hxx>
#include <vector>
//! Adds a clipping sub-range (for clipping chains).
void AddClipSubRange (const Bnd_Range& theRange) { myClipRanges.push_back (theRange); }
+ //! Dumps the content of me into the stream
+ Standard_EXPORT void Dump (Standard_OStream& theOStream) const;
+
private:
std::vector<Bnd_Range> myClipRanges;
{
mySelectingVolumeMgr.AllowOverlapDetection (theIsToAllow);
}
+
+//=======================================================================
+//function : Dump
+//purpose :
+//=======================================================================
+void SelectMgr_ViewerSelector::Dump(Standard_OStream& theOStream)const
+{
+ Standard_Dump::Sentry aSentry (theOStream, CLASS_NAME (SelectMgr_ViewerSelector));
+
+ DUMP_FIELD_VALUES (theOStream, preferclosest);
+ DUMP_FIELD_VALUES (theOStream, myToUpdateTolerance);
+ DUMP_FIELD_VALUES (theOStream, mystored.Extent());
+ //DUMP_FIELD_VALUES (theOStream, mySelectingVolumeMgr);
+
+ Standard_Integer aNbOfSelected = 0;
+ for (SelectMgr_SelectableObjectSet::Iterator aSelectableIt (mySelectableObjects); aSelectableIt.More(); aSelectableIt.Next())
+ {
+ aNbOfSelected++;
+ }
+ DUMP_FIELD_VALUES (theOStream, aNbOfSelected);
+ DUMP_FIELD_VALUES (theOStream, myTolerances.Tolerance());
+ DUMP_FIELD_VALUES (theOStream, myTolerances.CustomTolerance());
+ DUMP_FIELD_VALUES (theOStream, myZLayerOrderMap.Size());
+}
//! mark both included and overlapped entities as matched
Standard_EXPORT void AllowOverlapDetection (const Standard_Boolean theIsToAllow);
+ //! Dumps the content of me into the stream
+ Standard_EXPORT void Dump (Standard_OStream& theOStream) const;
+
public:
//! Begins an iteration scanning for the owners detected at a position in the view.
Standard_DimensionMismatch.hxx
Standard_DivideByZero.hxx
Standard_DomainError.hxx
+Standard_Dump.cxx
+Standard_Dump.hxx
Standard_ErrorHandler.cxx
Standard_ErrorHandler.hxx
Standard_ExtCharacter.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 <Standard_Dump.hxx>
+
+// =======================================================================
+// function : Sentry constructor
+// purpose :
+// =======================================================================
+Standard_Dump::Sentry::Sentry (Standard_OStream& theOStream,
+ const TCollection_AsciiString& theClassName,
+ const void* thePointer)
+: myOStream (&theOStream), myClassName (theClassName)
+{
+ (*myOStream) << startKey (myClassName);
+ if (thePointer)
+ {
+ TCollection_AsciiString Pointer = Standard_Dump::GetPointerInfo (thePointer);
+ DUMP_FIELD_VALUES(theOStream, Pointer)
+ }
+}
+
+// =======================================================================
+// function : GetPointerInfo
+// purpose :
+// =======================================================================
+TCollection_AsciiString Standard_Dump::GetPointerInfo (const Handle(Standard_Transient)& thePointer,
+ const bool isShortInfo)
+{
+ if (thePointer.IsNull())
+ return TCollection_AsciiString();
+
+ return GetPointerInfo (thePointer.get(), isShortInfo);
+}
+
+// =======================================================================
+// function : GetPointerInfo
+// purpose :
+// =======================================================================
+TCollection_AsciiString Standard_Dump::GetPointerInfo (const void* thePointer, const bool isShortInfo)
+{
+ std::ostringstream aPtrStr;
+ aPtrStr << thePointer;
+ if (!isShortInfo)
+ return aPtrStr.str().c_str();
+
+ TCollection_AsciiString anInfoPtr (aPtrStr.str().c_str());
+ for (int aSymbolId = 1; aSymbolId < anInfoPtr.Length(); aSymbolId++)
+ {
+ if (anInfoPtr.Value(aSymbolId) != '0')
+ {
+ anInfoPtr = anInfoPtr.SubString (aSymbolId, anInfoPtr.Length());
+ anInfoPtr.Prepend (GetPointerPrefix());
+ return anInfoPtr;
+ }
+ }
+ return aPtrStr.str().c_str();
+}
+
+// ----------------------------------------------------------------------------
+// Split
+// ----------------------------------------------------------------------------
+void Standard_Dump::Split (const Standard_SStream& theStream,
+ NCollection_IndexedDataMap<TCollection_AsciiString, TCollection_AsciiString>& theValues,
+ TCollection_AsciiString& theStreamKey)
+{
+ TCollection_AsciiString aStreamStr (theStream.str().c_str());
+
+ split (aStreamStr, theValues, theStreamKey);
+}
+
+// ----------------------------------------------------------------------------
+// split
+// ----------------------------------------------------------------------------
+void Standard_Dump::split (const TCollection_AsciiString& theStreamStr,
+ NCollection_IndexedDataMap<TCollection_AsciiString, TCollection_AsciiString>& theValues,
+ TCollection_AsciiString& theStreamKey)
+{
+ TCollection_AsciiString aStreamStr = theStreamStr;
+
+ TCollection_AsciiString aSplitValue, aTailValue, aKey;
+ if (splitDumped (aStreamStr, aSplitValue, aTailValue, aKey))
+ {
+ if (aTailValue.IsEmpty())
+ {
+ theStreamKey = aKey;
+ splitKey (aSplitValue, aStreamStr, aKey);
+ }
+ }
+
+ NCollection_List<TCollection_AsciiString> aValues;
+ splitValue (aStreamStr, DumpSeparator(), aValues);
+
+ for (NCollection_List<TCollection_AsciiString>::Iterator anIterator (aValues); anIterator.More(); anIterator.Next())
+ {
+ TCollection_AsciiString aKey = anIterator.Value();
+ anIterator.Next();
+ if (!anIterator.More())
+ break;
+ theValues.Add (aKey, anIterator.Value());
+ }
+}
+
+// ----------------------------------------------------------------------------
+// splitValue
+// ----------------------------------------------------------------------------
+void Standard_Dump::splitValue (const TCollection_AsciiString& theValue,
+ const TCollection_AsciiString& theSeparator,
+ NCollection_List<TCollection_AsciiString>& theValues)
+{
+ TCollection_AsciiString aCurrentString = theValue;
+
+ TCollection_AsciiString aSplitValue, aTailValue, aKey;
+ while (!aCurrentString.IsEmpty())
+ {
+ TCollection_AsciiString aValueString = aCurrentString;
+ if (splitDumped (aValueString, aSplitValue, aTailValue, aKey))
+ {
+ aValueString = aSplitValue;
+ aCurrentString = aTailValue;
+ }
+ else
+ {
+ Standard_Integer aPosition = aValueString.Search (theSeparator);
+ if (aPosition < 0 )
+ break;
+ aCurrentString = aValueString.Split (aPosition - 1);
+ }
+ theValues.Append (aValueString);
+ if (aCurrentString.IsEmpty())
+ break;
+
+ aCurrentString = aCurrentString.Split (theSeparator.Length());
+ }
+}
+
+// ----------------------------------------------------------------------------
+// DumpFieldToName
+// ----------------------------------------------------------------------------
+void Standard_Dump::DumpFieldToName (const char* theField, const char*& theName)
+{
+ theName = theField;
+
+ if (theName[0] == '&')
+ {
+ theName = theName + 1;
+ }
+ if (::LowerCase (theName[0]) == 'm' && theName[1] == 'y')
+ {
+ theName = theName + 2;
+ }
+}
+
+// ----------------------------------------------------------------------------
+// ToString
+// ----------------------------------------------------------------------------
+TCollection_AsciiString Standard_Dump::ToDumpString (const Standard_SStream& theStream)
+{
+ return TCollection_AsciiString (theStream.str().c_str());
+}
+
+// ----------------------------------------------------------------------------
+// ConvertDumpToText
+// ----------------------------------------------------------------------------
+TCollection_AsciiString Standard_Dump::ConvertDumpToText (const Standard_SStream& theStream)
+{
+ TCollection_AsciiString aText;
+
+ Standard_Integer aLevel = 0;
+ convertDumpToText (ToDumpString (theStream), aLevel, aText);
+
+ return aText;
+}
+
+TCollection_AsciiString getLevelIndent (const int theLevel)
+{
+ TCollection_AsciiString aLevelIndent;
+ for (int i = 0; i < theLevel; i++)
+ aLevelIndent += " ";
+ return aLevelIndent;
+}
+
+// ----------------------------------------------------------------------------
+// convertDumpToText
+// ----------------------------------------------------------------------------
+void Standard_Dump::convertDumpToText (const TCollection_AsciiString& theStreamStr,
+ const Standard_Integer theLevel,
+ TCollection_AsciiString& theText)
+{
+
+ NCollection_IndexedDataMap<TCollection_AsciiString, TCollection_AsciiString> aSplitValues;
+ TCollection_AsciiString aStreamKey;
+ split (theStreamStr, aSplitValues, aStreamKey);
+ Standard_Integer aLevel = theLevel;
+ //if (!aStreamKey.IsEmpty())
+ //{
+ // theText += getLevelIndent (aLevel) + aStreamKey + "\n";
+ // aLevel++;
+ //}
+
+ for (Standard_Integer anIndex = 1; anIndex <= aSplitValues.Size(); anIndex++)
+ {
+ TCollection_AsciiString aValue = aSplitValues.FindFromIndex (anIndex);
+ TCollection_AsciiString aKey = aSplitValues.FindKey (anIndex);
+
+ if (Standard_Dump::HasBracketKey (aValue))
+ {
+ theText += getLevelIndent (aLevel + 1) + aKey + "\n";
+ convertDumpToText (aValue, aLevel + 2, theText);
+ }
+ else
+ {
+ theText += getLevelIndent (aLevel + 1) + aKey + " = " + aValue + "\n";
+ }
+ }
+}
+
+// ----------------------------------------------------------------------------
+// splitDumped
+// ----------------------------------------------------------------------------
+Standard_Boolean Standard_Dump::splitDumped (const TCollection_AsciiString& theSourceValue,
+ TCollection_AsciiString& theSplitValue,
+ TCollection_AsciiString& theTailValue,
+ TCollection_AsciiString& theKey)
+{
+ Standard_Integer aBracketPosition = theSourceValue.Search (XMLBracketOpen());
+ // the first symbol is bracket
+ if (aBracketPosition != 1 || aBracketPosition >= theSourceValue.Length())
+ return Standard_False;
+
+ TCollection_AsciiString aValue = theSourceValue.SubString (aBracketPosition + 1, theSourceValue.Length());
+
+ aBracketPosition = aValue.Search (XMLBracketClose());
+ if (aBracketPosition <= 1 || aBracketPosition >= theSourceValue.Length())
+ return Standard_False;
+
+ theKey = aValue;
+
+ TCollection_AsciiString aTailValue = theKey.Split (aBracketPosition - 1);
+ aTailValue = aTailValue.SubString (2, aTailValue.Length()); // remove close bracket
+ TCollection_AsciiString aStopKey = stopKey (theKey);
+
+ aBracketPosition = theSourceValue.Search (aStopKey);
+
+ Standard_Integer aStopKeyLastPosition = aBracketPosition + aStopKey.Length() - 1;
+
+ if (aBracketPosition <= 1 || aStopKeyLastPosition > theSourceValue.Length())
+ return Standard_False;
+
+ theSplitValue = theSourceValue;
+ theTailValue = theSplitValue.Split (aStopKeyLastPosition);
+
+ return Standard_True;
+}
+
+// ----------------------------------------------------------------------------
+// splitKey
+// ----------------------------------------------------------------------------
+Standard_Boolean Standard_Dump::splitKey (const TCollection_AsciiString& theSourceValue,
+ TCollection_AsciiString& theSplitValue,
+ TCollection_AsciiString& theKey)
+{
+ Standard_Integer aBracketPosition = theSourceValue.Search (XMLBracketOpen());
+ // the first symbol is bracket
+ if (aBracketPosition != 1 || aBracketPosition >= theSourceValue.Length())
+ return Standard_False;
+
+ TCollection_AsciiString aValue = theSourceValue.SubString (aBracketPosition + 1, theSourceValue.Length());
+
+ aBracketPosition = aValue.Search (XMLBracketClose());
+ if (aBracketPosition <= 1 || aBracketPosition >= theSourceValue.Length())
+ return Standard_False;
+
+ theKey = aValue;
+
+ TCollection_AsciiString aTailValue = theKey.Split (aBracketPosition - 1);
+ aTailValue = aTailValue.SubString (2, aTailValue.Length()); // remove close bracket
+ TCollection_AsciiString aStopKey = stopKey (theKey);
+
+ aBracketPosition = aTailValue.Search (aStopKey);
+ if (aBracketPosition <= 1 || aBracketPosition >= aTailValue.Length())
+ return Standard_False;
+
+ theSplitValue = aTailValue;
+ aTailValue = theSplitValue.Split (aBracketPosition - 1);
+
+ return Standard_True;
+}
--- /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.
+
+#ifndef _Standard_Dump_HeaderFile
+#define _Standard_Dump_HeaderFile
+
+#include <NCollection_IndexedDataMap.hxx>
+#include <NCollection_IndexedMap.hxx>
+#include <NCollection_List.hxx>
+#include <NCollection_Vector.hxx>
+
+#include <Standard_SStream.hxx>
+#include <TCollection_AsciiString.hxx>
+
+
+//! The interface to prepare and parse an object Dump.
+class Standard_Dump
+{
+public:
+ /**
+ * @brief Simple sentry class providing convenient interface to dump.
+ *
+ * Appends start and last rows in dump with class name key
+ *
+ * Create instance of that class in the first row of Dump.
+ */
+ class Sentry
+ {
+ public:
+ //! Constructor - add parameters of start class name definition in the stream
+ Standard_EXPORT Sentry (Standard_OStream& theOStream, const TCollection_AsciiString& theClassName, const void* thePointer = NULL);
+
+ //! Destructor - add parameters of stop class name definition in the stream
+ ~Sentry() { (*myOStream) << stopKey (myClassName); }
+
+ private:
+ Standard_OStream* myOStream;
+ TCollection_AsciiString myClassName;
+ };
+
+ //! Returns separator symbol of Dump information
+ static Standard_Character DumpSeparator() { return '\\'; }
+
+ //! Returns separator symbol of class name prefix
+ static Standard_CString ClassNameSeparator() { return " ,"; }
+
+ //! Returns default prefix added for each pointer info string
+ Standard_EXPORT static TCollection_AsciiString GetPointerPrefix() { return "0x"; }
+
+ //! Convert handle pointer to string value
+ //! @param thePointer a pointer
+ //! @param isShortInfo if true, all '0' symbols in the beginning of the pointer are skipped
+ //! @return the string value
+ Standard_EXPORT static TCollection_AsciiString GetPointerInfo (const Handle(Standard_Transient)& thePointer,
+ const bool isShortInfo = true);
+
+ //! Convert pointer to string value
+ //! @param thePointer a pointer
+ //! @param isShortInfo if true, all '0' symbols in the beginning of the pointer are skipped
+ //! @return the string value
+ Standard_EXPORT static TCollection_AsciiString GetPointerInfo (const void* thePointer,
+ const bool isShortInfo = true);
+
+ //! Converts stream into map of values. Values are not empty if the stream contains at least two values.
+ //!
+ //! The one level stream example: <class_name>key_1\value_1\key_2\value_2</class_name>
+ //! In output: theStreamKey equals class_name, theValues contains key_1, value_1, key_2, and value_2.
+ //!
+ //! Two level stream example: <class_name>key_1\value_1\key_2\value_2\key_3<subclass_name>subclass_key_1\subclass_value1</subclass_name></class_name>
+ //! In output: theStreamKey equals class_name, theValues contains key_1, value_1, key_2, and value_2, key_3 and
+ //! <subclass_name>subclass_key_1\subclass_value1</subclass_name>.
+ //! The last value might be processed later using the same method.
+ //!
+ //! @param theStream stream value
+ //! @param theValues [out] container of split values
+ Standard_EXPORT static void Split (const Standard_SStream& theStream,
+ NCollection_IndexedDataMap<TCollection_AsciiString, TCollection_AsciiString>& theValues,
+ TCollection_AsciiString& theStreamKey);
+
+ //! Unites list of string into one string using the separator
+ Standard_EXPORT static TCollection_AsciiString Join (const NCollection_List<TCollection_AsciiString>& theValues,
+ const TCollection_AsciiString& theSeparator);
+
+ //! Convert field name into dump text value, removes "&" and "my" prefixes
+ //! @param theField a source value
+ //! @param theName [out] an updated name
+ Standard_EXPORT static void DumpFieldToName (const char* theField, const char*& theName);
+
+ //! Converts stream value to string value
+ Standard_EXPORT static TCollection_AsciiString ToDumpString (const Standard_SStream& theStream);
+
+ //! Converts stream value to string value
+ Standard_EXPORT static TCollection_AsciiString ConvertDumpToText (const Standard_SStream& theStream);
+
+ //! Returns true if the value has bracket key
+ static Standard_Boolean HasBracketKey (const TCollection_AsciiString& theSourceValue)
+ { return theSourceValue.Search (XMLBracketOpen()) >= 0; }
+
+private:
+ //! Converts stream value to string value
+ static TCollection_AsciiString startKey (const TCollection_AsciiString& theValue)
+ { return XMLBracketOpen() + theValue + XMLBracketClose(); }
+
+ //! Converts stream value to string value
+ static TCollection_AsciiString stopKey (const TCollection_AsciiString& theValue)
+ { return XMLBracketOpen() + XMLFinishKey() + theValue + XMLBracketClose(); }
+
+ //! Converts stream text into map of values.
+ //! @param theStream stream value
+ //! @param theValues [out] container of split values
+ Standard_EXPORT static void split (const TCollection_AsciiString& theStreamStr,
+ NCollection_IndexedDataMap<TCollection_AsciiString, TCollection_AsciiString>& theValues,
+ TCollection_AsciiString& theStreamKey);
+
+ //! Splits value into container of value using separator.
+ //! It is not recursive, do not split sub class values.
+ //!
+ //! Two level stream example: key_1\value_1\key_2\value_2\key_3<subclass_name>subclass_key_1\subclass_value1</subclass_name>
+ //! In out, theValues contains: key_1, value_1, key_2, and value_2, key_3 and <subclass_name>subclass_key_1\subclass_value1</subclass_name>.
+ //!
+ //! @param theValue source stream value
+ //! @param theSeparator split separator
+ //! @param theValues [out] container of split values
+ Standard_EXPORT static void splitValue (const TCollection_AsciiString& theValue,
+ const TCollection_AsciiString& theSeparator,
+ NCollection_List<TCollection_AsciiString>& theValues);
+
+ //! Splits value into two sub-strings using Dump keys.
+ //! Example:
+ //! aString contains "<key>abc</key>defg"
+ //! splitDumped(aString) gives theSplitValue = "abc", theTailValue = "defg", theKey = "key"
+ //! @param theSourceValue source stream value to split
+ //! @param theSplitValue [out] split value
+ //! @param theTailValue [out] value out of the key on the left
+ //! @param theKey [out] key of split value
+ Standard_EXPORT static Standard_Boolean splitDumped (const TCollection_AsciiString& theSourceValue,
+ TCollection_AsciiString& theSplitValue,
+ TCollection_AsciiString& theTailValue,
+ TCollection_AsciiString& theKey);
+
+ //! Splits value that contains a key in form: <key>value</key>. In this case the values are:
+ //! theSplitValue = value, theKey = key.
+ //! @param theSourceValue source stream value to split
+ //! @param theSplitValue [out] split value
+ //! @param theKey [out] key of split value
+ Standard_EXPORT static Standard_Boolean splitKey (const TCollection_AsciiString& theSourceValue,
+ TCollection_AsciiString& theSplitValue,
+ TCollection_AsciiString& theKey);
+
+ //! Converts stream value to string value
+ static void convertDumpToText (const TCollection_AsciiString& theStreamStr,
+ const Standard_Integer theLevel,
+ TCollection_AsciiString& theText);
+
+ //! Stream value open key separator
+ static TCollection_AsciiString XMLBracketOpen() { return TCollection_AsciiString ("<"); }
+
+ //! Stream value close key separator
+ static TCollection_AsciiString XMLBracketClose() { return TCollection_AsciiString (">"); }
+
+ //! Stream value finish key separator
+ static TCollection_AsciiString XMLFinishKey() { return TCollection_AsciiString ("\\"); }
+
+};
+
+#define CLASS_NAME(theClass) #theClass
+
+#define DUMP_FIELD_VALUES(theOStream, theField) \
+{ \
+ const char* aName = NULL; \
+ Standard_Dump::DumpFieldToName (#theField, aName); \
+ theOStream << aName << Standard_Dump::DumpSeparator() << theField << Standard_Dump::DumpSeparator(); \
+}
+
+#define DUMP_FIELD_VALUES_POINTER(theOStream, theField) \
+{ \
+ const char* aName = NULL; \
+ Standard_Dump::DumpFieldToName (#theField, aName); \
+ theOStream << aName << Standard_Dump::DumpSeparator() << Standard_Dump::GetPointerInfo (theField) << Standard_Dump::DumpSeparator(); \
+}
+
+#define DUMP_FIELD_VALUES_SUBCLASS(theOStream, theField) \
+{ \
+ Standard_SStream aFieldStream; \
+ if (theField) (theField)->Dump (aFieldStream); \
+ const char* aName = NULL; \
+ Standard_Dump::DumpFieldToName (#theField, aName); \
+ theOStream << aName << Standard_Dump::DumpSeparator() << Standard_Dump::ToDumpString (aFieldStream) << Standard_Dump::DumpSeparator(); \
+}
+
+#define DUMP_FIELD_VALUES_PARENT(theOStream, theField) \
+{ \
+ Standard_SStream aTmpStream; \
+ theField::Dump (aTmpStream); \
+ const char* aName = NULL; \
+ Standard_Dump::DumpFieldToName (#theField, aName); \
+ theOStream << aName << Standard_Dump::DumpSeparator() << Standard_Dump::ToDumpString (aTmpStream) << Standard_Dump::DumpSeparator(); \
+}
+
+#endif // _Standard_Dump_HeaderFile
#include <Standard_ConstructionError.hxx>
#include <Standard_Stream.hxx>
#include <Standard_Type.hxx>
+#include <Standard_Dump.hxx>
#include <TopLoc_Datum3D.hxx>
IMPLEMENT_STANDARD_RTTIEXT(TopLoc_Datum3D,Standard_Transient)
{
}
+//=======================================================================
+//function : Dump
+//purpose :
+//=======================================================================
+void TopLoc_Datum3D::Dump (Standard_OStream& theOStream) const
+{
+ Standard_Dump::Sentry aSentry (theOStream, CLASS_NAME (TopLoc_Datum3D));
+
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, &myTrsf);
+}
+
//=======================================================================
//function : ShallowDump
//purpose :
const gp_Trsf& Transformation() const;
+ //! Dumps the content of me into the stream
+ Standard_EXPORT void Dump (Standard_OStream& theOStream) const;
+
//! Writes the contents of this Datum3D to the stream S.
Standard_EXPORT void ShallowDump (Standard_OStream& S) const;
#include <TopLoc_Datum3D.hxx>
+#include <Standard_Dump.hxx>
#include <TopLoc_ItemLocation.hxx>
#include <TopLoc_Location.hxx>
#include <TopLoc_SListOfItemLocation.hxx>
myTrsf (D->Transformation().Powered (P))
{
}
+
+//=======================================================================
+//function : Dump
+//purpose :
+//=======================================================================
+void TopLoc_ItemLocation::Dump (Standard_OStream& theOStream) const
+{
+ Standard_Dump::Sentry aSentry (theOStream, CLASS_NAME (TopLoc_ItemLocation));
+
+ DUMP_FIELD_VALUES (theOStream, myPower);
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, &myTrsf);
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, myDatum);
+}
#include <Standard_Handle.hxx>
#include <Standard_Integer.hxx>
+#include <Standard_OStream.hxx>
#include <gp_Trsf.hxx>
class TopLoc_Datum3D;
class TopLoc_Location;
//! Sets the exponent to <P>
Standard_EXPORT TopLoc_ItemLocation(const Handle(TopLoc_Datum3D)& D, const Standard_Integer P);
+ //! Dumps the content of me into the stream
+ Standard_EXPORT void Dump (Standard_OStream& theOStream) const;
+
friend class TopLoc_Location;
friend class TopLoc_SListOfItemLocation;
#include <gp_Trsf.hxx>
#include <Standard_ConstructionError.hxx>
#include <Standard_NoSuchObject.hxx>
+#include <Standard_Dump.hxx>
#include <TopLoc_Datum3D.hxx>
#include <TopLoc_ItemLocation.hxx>
#include <TopLoc_Location.hxx>
return !IsEqual(Other);
}
+//=======================================================================
+//function : Dump
+//purpose :
+//=======================================================================
+void TopLoc_Location::Dump (Standard_OStream& theOStream) const
+{
+ Standard_Dump::Sentry aSentry (theOStream, CLASS_NAME (TopLoc_Location));
+
+ DUMP_FIELD_VALUES (theOStream, IsIdentity());
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, &Transformation());
+
+ /*TopLoc_SListOfItemLocation items = myItems;
+ if (!items.IsEmpty())
+ {
+ while (items.More())
+ {
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, &items.Value());
+ items.Next();
+ }
+ }*/
+}
+
//=======================================================================
//function : ShallowDump
//purpose :
return IsDifferent(Other);
}
+ //! Dumps the content of me into the stream
+ Standard_EXPORT void Dump (Standard_OStream& theOStream) const;
+
//! Prints the contents of <me> on the stream <s>.
Standard_EXPORT void ShallowDump (Standard_OStream& S) const;
#include <Standard_DomainError.hxx>
#include <Standard_NullObject.hxx>
#include <Standard_TypeMismatch.hxx>
+#include <Standard_Dump.hxx>
#include <TopLoc_Location.hxx>
#include <TopoDS_TShape.hxx>
const Standard_Integer aHL = myLocation.HashCode (theUpperBound);
return ::HashCode (aHS ^ aHL, theUpperBound);
}
+
+//=======================================================================
+//function : Dump
+//purpose :
+//=======================================================================
+void TopoDS_Shape::Dump (Standard_OStream& theOStream) const
+{
+ Standard_Dump::Sentry aSentry (theOStream, CLASS_NAME (TopoDS_Shape));
+
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, myTShape);
+ DUMP_FIELD_VALUES (theOStream, myOrient);
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, &myLocation);
+}
void TShape (const Handle(TopoDS_TShape)& theTShape) { myTShape = theTShape; }
+ //! Dumps the content of me into the stream
+ Standard_EXPORT void Dump (Standard_OStream& theOStream) const;
+
private:
Handle(TopoDS_TShape) myTShape;
#include <TopoDS_TShape.hxx>
#include <TopoDS_Shape.hxx>
+#include <Standard_Dump.hxx>
+
IMPLEMENT_STANDARD_RTTIEXT(TopoDS_TShape,Standard_Transient)
+
+//=======================================================================
+//function : Dump
+//purpose :
+//=======================================================================
+void TopoDS_TShape::Dump (Standard_OStream& theOStream) const
+{
+ Standard_Dump::Sentry aSentry (theOStream, CLASS_NAME (TopoDS_TShape), this);
+
+ DUMP_FIELD_VALUES (theOStream, myFlags);
+ //TopoDS_ListOfShape myShapes;
+}
//! @sa TopoDS_Iterator for accessing sub-shapes
Standard_Integer NbChildren() const { return myShapes.Size(); }
+ //! Dumps the content of me into the stream
+ Standard_EXPORT void Dump (Standard_OStream& theOStream) const;
+
friend class TopoDS_Iterator;
friend class TopoDS_Builder;
//function : VAspects
//purpose :
//==============================================================================
-static Standard_Integer VAspects (Draw_Interpretor& /*theDI*/,
+static Standard_Integer VAspects (Draw_Interpretor& theDI,
Standard_Integer theArgNb,
const char** theArgVec)
{
// parse syntax of legacy commands
bool toParseAliasArgs = false;
+ Standard_Boolean toDump = false;
if (aCmdName == "vsetwidth")
{
if (aNames.IsEmpty()
aChangeSet->ToSetTypeOfEdge = -1;
aChangeSet->TypeOfEdge = Aspect_TOL_SOLID;
}
+ else if (anArg == "-dump")
+ {
+ toDump = Standard_True;
+ }
else
{
std::cout << "Error: wrong syntax at " << anArg << "\n";
aCtx->Redisplay (aPrs, Standard_False);
}
}
+ if (toDump)
+ {
+ Standard_SStream aStream;
+ aDrawer->Dump (aStream);
+
+ theDI << Standard_Dump::ConvertDumpToText (aStream);
+ }
return 0;
}
{
aPrs->SynchronizeAspects();
}
+
+ if (toDump)
+ {
+ Standard_SStream aStream;
+ aDrawer->Dump (aStream);
+
+ theDI << aName << ": \n";
+ theDI << Standard_Dump::ConvertDumpToText (aStream);
+ theDI << "\n";
+ }
}
}
return 0;
"\n\t\t: [-setDrawEdges {0|1}] [-setEdgeType LineType] [-setEdgeColor R G B] [-setQuadEdges {0|1}]"
"\n\t\t: [-setDrawSilhouette {0|1}]"
"\n\t\t: [-setAlphaMode {opaque|mask|blend|blendauto} [alphaCutOff=0.5]]"
+ "\n\t\t: [-dump]"
"\n\t\t: Manage presentation properties of all, selected or named objects."
"\n\t\t: When -subshapes is specified than following properties will be"
"\n\t\t: assigned to specified sub-shapes."
#include <XCAFPrs_Style.hxx>
+#include <Standard_Dump.hxx>
+
//=======================================================================
//function : XCAFPrs_Style
//purpose :
myHasColorCurv = Standard_False;
myColorCurv.SetValues (Quantity_NOC_YELLOW);
}
+
+//=======================================================================
+//function : Dump
+//purpose :
+//=======================================================================
+void XCAFPrs_Style::Dump (Standard_OStream& theOStream) const
+{
+ Standard_Dump::Sentry aSentry (theOStream, CLASS_NAME (XCAFPrs_Style));
+
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, &myColorSurf);
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, &myColorCurv);
+
+ DUMP_FIELD_VALUES (theOStream, myHasColorSurf);
+ DUMP_FIELD_VALUES (theOStream, myHasColorCurv);
+ DUMP_FIELD_VALUES (theOStream, myIsVisible);
+}
return theS1.IsEqual (theS2);
}
+ //! Dumps the content of me into the stream
+ Standard_EXPORT void Dump (Standard_OStream& theOStream) const;
+
protected:
Quantity_ColorRGBA myColorSurf;
#include <gp_XYZ.hxx>
#include <Standard_ConstructionError.hxx>
#include <Standard_OutOfRange.hxx>
+#include <Standard_Dump.hxx>
#define M00 ((Standard_Real*)M)[0]
#define M01 ((Standard_Real*)M)[1]
}
}
+void gp_Mat::Dump (Standard_OStream& theOStream) const
+{
+ Standard_Dump::Sentry aSentry (theOStream, CLASS_NAME (gp_Mat));
+
+ DUMP_FIELD_VALUES (theOStream, Mat00);
+ DUMP_FIELD_VALUES (theOStream, Mat01);
+ DUMP_FIELD_VALUES (theOStream, Mat02);
+
+ DUMP_FIELD_VALUES (theOStream, Mat10);
+ DUMP_FIELD_VALUES (theOStream, Mat11);
+ DUMP_FIELD_VALUES (theOStream, Mat12);
+
+ DUMP_FIELD_VALUES (theOStream, Mat20);
+ DUMP_FIELD_VALUES (theOStream, Mat21);
+ DUMP_FIELD_VALUES (theOStream, Mat22);
+}
//! Transposes the matrix. A(j, i) -> A (i, j)
Standard_NODISCARD gp_Mat Transposed() const;
+ //! Dumps the content of me into the stream
+ Standard_EXPORT void Dump (Standard_OStream& theOStream) const;
+
friend class gp_XYZ;
friend class gp_Trsf;
#include <gp_XYZ.hxx>
#include <Standard_ConstructionError.hxx>
#include <Standard_OutOfRange.hxx>
+#include <Standard_Dump.hxx>
//=======================================================================
//function : gp_Trsf
matrix = aTM;
}
+
+//=======================================================================
+//function : Dump
+//purpose :
+//=======================================================================
+void gp_Trsf::Dump (Standard_OStream& theOStream) const
+{
+ Standard_Dump::Sentry aSentry (theOStream, CLASS_NAME (gp_Trsf));
+
+ DUMP_FIELD_VALUES (theOStream, Form());
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, &TranslationPart());
+ DUMP_FIELD_VALUES (theOStream, ScaleFactor());
+ DUMP_FIELD_VALUES (theOStream, ScaleFactor());
+ DUMP_FIELD_VALUES_SUBCLASS (theOStream, &HVectorialPart());
+}
#include <Standard_DefineAlloc.hxx>
#include <Standard_Integer.hxx>
#include <Standard_Handle.hxx>
+#include <Standard_OStream.hxx>
#include <Standard_Real.hxx>
class Standard_ConstructionError;
theMat.SetValue (3, 3, static_cast<T> (1));
}
+ //! Dumps the content of me into the stream
+ Standard_EXPORT void Dump (Standard_OStream& theOStream) const;
+
friend class gp_GTrsf;
protected:
#include <gp_Mat.hxx>
#include <gp_XYZ.hxx>
+#include <NCollection_List.hxx>
#include <Standard_ConstructionError.hxx>
#include <Standard_OutOfRange.hxx>
+#include <Standard_Dump.hxx>
+#include <TCollection_AsciiString.hxx>
+
+#include <TCollection_AsciiString.hxx>
Standard_Boolean gp_XYZ::IsEqual (const gp_XYZ& Other,
const Standard_Real Tolerance) const {
return Standard_True;
}
+//=======================================================================
+//function : Dump
+//purpose :
+//=======================================================================
+void gp_XYZ::Dump (Standard_OStream& theOStream) const
+{
+ Standard_Dump::Sentry aSentry (theOStream, CLASS_NAME (gp_XYZ));
+
+ DUMP_FIELD_VALUES (theOStream, x);
+ DUMP_FIELD_VALUES (theOStream, y);
+ DUMP_FIELD_VALUES (theOStream, z);
+}
#include <Standard_Real.hxx>
#include <Standard_Integer.hxx>
#include <Standard_Boolean.hxx>
+
+#include <Standard_OStream.hxx>
+
class Standard_ConstructionError;
class Standard_OutOfRange;
class gp_Mat;
void SetLinearForm (const gp_XYZ& XYZ1, const gp_XYZ& XYZ2);
+ //! Dumps the content of me into the stream
+ Standard_EXPORT void Dump (Standard_OStream& theOStream) const;
protected:
vertex vv $px $py $pz
set log [bounding vv -obb -dump]
-if {![regexp {Center: +([-0-9.+eE]+) +([-0-9.+eE]+) +([-0-9.+eE]+)} $log full xc yc zc]} {
+if {![regexp {Center\n x = +([-0-9.+eE]+)\n y = +([-0-9.+eE]+)\n z = +([-0-9.+eE]+)} $log full xc yc zc]} {
puts "Error in Dump."
}
--- /dev/null
+puts "============="
+puts "0030949: Foundation Classes - Dump improvement for OCCT classes"
+puts "============="
+
+pload VISUALIZATION
+vinit View
+
+set pred 0.329
+set pgreen 0.224
+set pblue 0.027
+
+set log [vaspects -defaults -dump]
+
+if {![regexp {Red = +([-0-9.+eE]+)\n Green = +([-0-9.+eE]+)\n Blue = +([-0-9.+eE]+)} $log full cred cgreen cblue]} {
+ puts "Error in Dump."
+}
+
+checkreal "Cred" $cred $pred 1.0e-7 0.0
+checkreal "Cgreen" $cgreen $pgreen 1.0e-7 0.0
+checkreal "Cblue" $cblue $pblue 1.0e-7 0.0