1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-09 13:22:24 +03:00

0031313: Foundation Classes - Dump improvement for classes

- Provide DumpJson for geometrical, ocaf and visualization classes;
- Change depth parameter of DumpJson (constant is not obligate here)
- Introduce a new macro for transient objects to be called as the first row in DumpJson: OCCT_DUMP_TRANSIENT_CLASS_BEGIN. We need not put the class name in the macro, using get_type_name of Standard_Transient for it.
- change implementation of OCCT_DUMP_CLASS_BEGIN and OCCT_DUMP_TRANSIENT_CLASS_BEGIN. It is not an sentry more and it does not create a new hierarchy level. It appends a new row into the output stream: "className": <className>
- OCCT_DUMP_* does not require semicolon
- class header is included first in source files of TDataStd, TDocStd, TCAFDoc
This commit is contained in:
nds
2020-01-28 12:03:38 +03:00
committed by bugmaster
parent 00ea7f2676
commit bc73b00672
532 changed files with 5237 additions and 419 deletions

View File

@@ -17,6 +17,7 @@
#define _NCollection_Buffer_HeaderFile
#include <NCollection_BaseAllocator.hxx>
#include <Standard_Dump.hxx>
#include <Standard_Transient.hxx>
//! Low-level buffer object.
@@ -122,6 +123,15 @@ public:
mySize = 0;
}
//! 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_POINTER (theOStream, myData)
OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, mySize)
OCCT_DUMP_FIELD_VALUE_POINTER (theOStream, myAllocator.get())
}
protected:
Standard_Byte* myData; //!< data pointer

View File

@@ -17,6 +17,8 @@
#define _NCollection_Mat4_HeaderFile
#include <NCollection_Vec4.hxx>
#include <Standard_Dump.hxx>
#include <Standard_OStream.hxx>
//! Generic matrix of 4 x 4 elements.
//! To be used in conjunction with NCollection_Vec4 entities.
@@ -461,6 +463,16 @@ public:
return *reinterpret_cast<const NCollection_Mat4<Element_t>*> (theData);
}
//! Dumps the content of me into the stream
void DumpJson (Standard_OStream& theOStream, Standard_Integer) const
{
OCCT_DUMP_FIELD_VALUES_NUMERICAL (theOStream, "NCollection_Mat4", 16,
GetValue (0, 0), GetValue (0, 1), GetValue (0, 2), GetValue (0, 3),
GetValue (1, 0), GetValue (1, 1), GetValue (1, 2), GetValue (1, 3),
GetValue (2, 0), GetValue (2, 1), GetValue (2, 2), GetValue (2, 3),
GetValue (3, 0), GetValue (3, 1), GetValue (3, 2), GetValue (3, 3))
}
private:
Element_t myMat[16];

View File

@@ -18,6 +18,7 @@
#include <cstring>
#include <cmath>
#include <NCollection_Vec2.hxx>
#include <Standard_Dump.hxx>
//! Auxiliary macros to define couple of similar access components as vector methods
#define NCOLLECTION_VEC_COMPONENTS_3D(theX, theY, theZ) \
@@ -403,6 +404,13 @@ public:
return NCollection_Vec3 (Element_t(0), Element_t(0), Element_t(1));
}
//! Dumps the content of me into the stream
void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const
{
(void)theDepth;
OCCT_DUMP_FIELD_VALUES_NUMERICAL (theOStream, "Vec3", 3, v[0], v[1], v[2])
}
private:
Element_t v[3]; //!< define the vector as array to avoid structure alignment issues

View File

@@ -16,6 +16,7 @@
#define _NCollection_Vec4_H__
#include <NCollection_Vec3.hxx>
#include <Standard_Dump.hxx>
//! Generic 4-components vector.
//! To be used as RGBA color vector or XYZW 3D-point with special W-component
@@ -375,6 +376,13 @@ public:
return aResult /= theRight;
}
//! Dumps the content of me into the stream
void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const
{
(void)theDepth;
OCCT_DUMP_FIELD_VALUES_NUMERICAL (theOStream, "Vec4", 4, v[0], v[1], v[2], v[3])
}
private:
Element_t v[4]; //!< define the vector as array to avoid structure alignment issues