From 8b7b151aa4ccbe46ddeeecf59d18577e0fb3d8b2 Mon Sep 17 00:00:00 2001 From: nds Date: Thu, 8 Oct 2020 12:27:06 +0300 Subject: [PATCH] 0031362: Inspectors - MessageView plugin for message alerts DumpJson correction (cherry picked from commit 1f4dcce7ee5da0846acd124a3ff900aaad1d2cbd) (cherry picked from commit 03f183f4fea1992f1ee05ded17a88db1dc434ee0) (cherry picked from commit 45db541dd3dac1890ac10ce09b6605ddcce82e53) --- src/Message/Message.cxx | 5 +-- src/Message/Message_AttributeMeter.cxx | 21 +++++++----- src/Message/Message_AttributeStream.cxx | 3 +- src/Message/Message_CompositeAlerts.cxx | 8 +++-- src/Message/Message_MetricType.hxx | 1 + src/OSD/OSD_Timer.hxx | 3 ++ src/Select3D/Select3D_SensitiveEntity.cxx | 2 +- src/SelectMgr/SelectMgr_Selection.cxx | 21 ++++++++++++ src/Standard/Standard_Dump.cxx | 39 +++++++++++++++++++---- src/Standard/Standard_Dump.hxx | 32 ++++++++++++++++++- src/gp/gp_Ax1.cxx | 4 +-- src/gp/gp_Ax2.cxx | 8 ++--- src/gp/gp_Ax3.cxx | 8 ++--- src/gp/gp_Dir.cxx | 2 +- src/gp/gp_Mat.cxx | 2 +- src/gp/gp_Pnt.cxx | 2 +- src/gp/gp_Trsf.cxx | 4 +-- src/gp/gp_XYZ.cxx | 2 +- 18 files changed, 129 insertions(+), 38 deletions(-) diff --git a/src/Message/Message.cxx b/src/Message/Message.cxx index 9dc3a7107e..4ec8d0e0be 100644 --- a/src/Message/Message.cxx +++ b/src/Message/Message.cxx @@ -25,9 +25,10 @@ namespace { - static Standard_CString Message_Table_PrintMetricTypeEnum[10] = + static Standard_CString Message_Table_PrintMetricTypeEnum[13] = { - "NONE", "UserTimeCPU", "SystemTimeInfo", "MemPrivate", "MemVirtual", + "NONE", "UserThreadCPU", "SystemThreadCPU", "UserTimeCPU", "SystemTimeCPU", + "WallClock", "MemPrivate", "MemVirtual", "MemWorkingSet", "MemWorkingSetPeak", "MemSwapUsage", "MemSwapUsagePeak", "MemHeapUsage" }; } diff --git a/src/Message/Message_AttributeMeter.cxx b/src/Message/Message_AttributeMeter.cxx index d37cc8b7c3..875939ff3d 100644 --- a/src/Message/Message_AttributeMeter.cxx +++ b/src/Message/Message_AttributeMeter.cxx @@ -17,6 +17,7 @@ #include #include #include +#include #include #include @@ -128,6 +129,16 @@ void Message_AttributeMeter::SetAlertMetrics (const Handle(Message_AlertExtended const NCollection_IndexedMap& anActiveMetrics = aReport->ActiveMetrics(); // time metrics + if (anActiveMetrics.Contains (Message_MetricType_WallClock)) + { + OSD_Timer aTimer; + aTimer.Start(); + Standard_Real aTime = aTimer.StartTime(); + if (theStartValue) + aMeterAttribute->SetStartValue (Message_MetricType_WallClock, aTime); + else + aMeterAttribute->SetStopValue (Message_MetricType_WallClock, aTime); + } if (anActiveMetrics.Contains (Message_MetricType_ProcessCPUUserTime) || anActiveMetrics.Contains (Message_MetricType_ProcessCPUSystemTime) || anActiveMetrics.Contains (Message_MetricType_ThreadCPUUserTime) || @@ -244,13 +255,7 @@ void Message_AttributeMeter::DumpJson (Standard_OStream& theOStream, for (NCollection_IndexedDataMap::Iterator anIterator (myMetrics); anIterator.More(); anIterator.Next()) { - Message_MetricType aMetricType = anIterator.Key(); - OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, aMetricType) - - Standard_Real aStartValue = anIterator.Value().first; - OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, aStartValue) - - Standard_Real aStopValue = anIterator.Value().second; - OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, aStopValue) + OCCT_DUMP_VECTOR_CLASS (theOStream, Message::MetricToString (anIterator.Key()), + 2, anIterator.Value().first, anIterator.Value().second) } } diff --git a/src/Message/Message_AttributeStream.cxx b/src/Message/Message_AttributeStream.cxx index ba0ff7e8a0..3574395584 100644 --- a/src/Message/Message_AttributeStream.cxx +++ b/src/Message/Message_AttributeStream.cxx @@ -47,6 +47,5 @@ void Message_AttributeStream::DumpJson (Standard_OStream& theOStream, OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream) OCCT_DUMP_BASE_CLASS (theOStream, theDepth, Message_Attribute) - TCollection_AsciiString aStream = Standard_Dump::Text (myStream); - OCCT_DUMP_FIELD_VALUE_STRING (theOStream, aStream) + OCCT_DUMP_STREAM_VALUE_DUMPED (theOStream, myStream) } diff --git a/src/Message/Message_CompositeAlerts.cxx b/src/Message/Message_CompositeAlerts.cxx index 312b059634..e0a9cafca9 100644 --- a/src/Message/Message_CompositeAlerts.cxx +++ b/src/Message/Message_CompositeAlerts.cxx @@ -171,13 +171,17 @@ void Message_CompositeAlerts::DumpJson (Standard_OStream& theOStream, for (unsigned int i = 0; i < sizeof(myAlerts)/sizeof(myAlerts[0]); ++i) { + if (myAlerts[i].IsEmpty()) + continue; + Message_Gravity aGravity = (Message_Gravity)i; OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, aGravity) - for (Message_ListOfAlert::Iterator anIt (myAlerts[i]); anIt.More(); anIt.Next()) + Standard_Integer anInc = 1; + for (Message_ListOfAlert::Iterator anIt (myAlerts[i]); anIt.More(); anIt.Next(), anInc++) { const Handle(Message_Alert)& anAlert = anIt.Value(); - OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, anAlert.get()) + OCCT_DUMP_FIELD_VALUES_DUMPED_INC (theOStream, theDepth, anAlert.get(), anInc) } } } diff --git a/src/Message/Message_MetricType.hxx b/src/Message/Message_MetricType.hxx index 89a1ac4799..a35e87e5e5 100644 --- a/src/Message/Message_MetricType.hxx +++ b/src/Message/Message_MetricType.hxx @@ -22,6 +22,7 @@ enum Message_MetricType Message_MetricType_ThreadCPUSystemTime, //!< OSD_Chronometer::GetThreadCPU system time Message_MetricType_ProcessCPUUserTime, //!< OSD_Chronometer::GetProcessCPU user time Message_MetricType_ProcessCPUSystemTime, //!< OSD_Chronometer::GetProcessCPU system time + Message_MetricType_WallClock, //!< OSD_Timer elapsed time Message_MetricType_MemPrivate, //!< OSD_MemInfo::MemPrivate Message_MetricType_MemVirtual, //!< OSD_MemInfo::MemVirtual Message_MetricType_MemWorkingSet, //!< OSD_MemInfo::MemWorkingSet diff --git a/src/OSD/OSD_Timer.hxx b/src/OSD/OSD_Timer.hxx index 2b483283bf..897d3442c0 100644 --- a/src/OSD/OSD_Timer.hxx +++ b/src/OSD/OSD_Timer.hxx @@ -79,6 +79,9 @@ public: //! the Timer. Standard_EXPORT virtual void Start() Standard_OVERRIDE; + //! Returns start time in seconds. + Standard_Real StartTime() const { return myTimeStart; } + //! Returns elapsed time in seconds. Standard_EXPORT Standard_Real ElapsedTime() const; diff --git a/src/Select3D/Select3D_SensitiveEntity.cxx b/src/Select3D/Select3D_SensitiveEntity.cxx index 43804bad69..df5c4dbf27 100644 --- a/src/Select3D/Select3D_SensitiveEntity.cxx +++ b/src/Select3D/Select3D_SensitiveEntity.cxx @@ -39,6 +39,6 @@ void Select3D_SensitiveEntity::DumpJson (Standard_OStream& theOStream, const Sta { OCCT_DUMP_CLASS_BEGIN (theOStream, Select3D_SensitiveEntity); - OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, myOwnerId.get()); + OCCT_DUMP_FIELD_VALUE_POINTER (theOStream, myOwnerId.get()) OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, mySFactor); } diff --git a/src/SelectMgr/SelectMgr_Selection.cxx b/src/SelectMgr/SelectMgr_Selection.cxx index 8df00b29a8..72b663b2ee 100644 --- a/src/SelectMgr/SelectMgr_Selection.cxx +++ b/src/SelectMgr/SelectMgr_Selection.cxx @@ -125,6 +125,27 @@ void SelectMgr_Selection::DumpJson (Standard_OStream& theOStream, const Standard { OCCT_DUMP_CLASS_BEGIN (theOStream, SelectMgr_Selection); + NCollection_IndexedMap anOwners; + for (NCollection_Vector::Iterator anIterator (myEntities); anIterator.More(); anIterator.Next()) + { + const Handle(SelectMgr_SensitiveEntity)& anEntity = anIterator.Value(); + if (anEntity.IsNull() || anEntity->BaseSensitive().IsNull()) + { + continue; + } + const Handle(SelectMgr_EntityOwner)& anOwner = anEntity->BaseSensitive()->OwnerId(); + if (!anOwners.Contains (anOwner)) + { + anOwners.Add (anOwner); + } + } + + for (NCollection_IndexedMap::Iterator anIterator (anOwners); anIterator.More(); anIterator.Next()) + { + const Handle(SelectMgr_EntityOwner)& anOwner = anIterator.Value(); + OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, anOwner.get()) + } + for (NCollection_Vector::Iterator anIterator (myEntities); anIterator.More(); anIterator.Next()) { Handle(SelectMgr_SensitiveEntity) anEntity = anIterator.Value(); diff --git a/src/Standard/Standard_Dump.cxx b/src/Standard/Standard_Dump.cxx index 3157ba5581..c065dab3dd 100644 --- a/src/Standard/Standard_Dump.cxx +++ b/src/Standard/Standard_Dump.cxx @@ -43,7 +43,7 @@ void Standard_Dump::AddValuesSeparator (Standard_OStream& theOStream) Standard_SStream aStream; aStream << theOStream.rdbuf(); TCollection_AsciiString aStreamStr = Standard_Dump::Text (aStream); - if (!aStreamStr.IsEmpty() && !aStreamStr.EndsWith ("{")) + if (!aStreamStr.IsEmpty() && !aStreamStr.EndsWith ("{") && !aStreamStr.EndsWith (", ")) theOStream << ", "; } @@ -284,16 +284,25 @@ TCollection_AsciiString Standard_Dump::DumpFieldToName (const TCollection_AsciiS aName.Remove (1, 1); } - if (::LowerCase (aName.Value(1)) == 'm' && aName.Value (2) == 'y') + if (aName.Length() > 1 && aName.Value (1) == 'a') + { + if (aName.Length() > 2 && aName.Value (2) == 'n') + { + aName.Remove (1, 2); + } + else + aName.Remove (1, 1); + } + else if (aName.Length() > 2 && ::LowerCase (aName.Value (1)) == 'm' && aName.Value (2) == 'y') { aName.Remove (1, 2); } - - if (TCollection_AsciiString (aName).EndsWith (".get()")) + + if (aName.EndsWith (".get()")) { aName = aName.SubString (1, aName.Length() - TCollection_AsciiString (".get()").Length()); } - else if (TCollection_AsciiString (aName).EndsWith ("()")) + else if (aName.EndsWith ("()")) { aName = aName.SubString (1, aName.Length() - TCollection_AsciiString ("()").Length()); } @@ -323,9 +332,15 @@ TCollection_AsciiString Standard_Dump::FormatJson (const Standard_SStream& theSt Standard_Integer anIndentCount = 0; Standard_Boolean isMassiveValues = Standard_False; - for (Standard_Integer anIndex = 1; anIndex < aStreamStr.Length(); anIndex++) + for (Standard_Integer anIndex = 1; anIndex <= aStreamStr.Length(); anIndex++) { Standard_Character aSymbol = aStreamStr.Value (anIndex); + if (anIndex == 1 && aText.IsEmpty() && aSymbol != '{') + { + // append opening brace for json start + aSymbol = '{'; + anIndex--; + } if (aSymbol == '{') { anIndentCount++; @@ -371,6 +386,18 @@ TCollection_AsciiString Standard_Dump::FormatJson (const Standard_SStream& theSt } else aText += aSymbol; + + if (anIndex == aStreamStr.Length() && aSymbol != '}') + { + // append closing brace for json end + aSymbol = '}'; + + anIndentCount--; + aText += '\n'; + for (int anIndent = 0; anIndent < anIndentCount; anIndent++) + aText += anIndentStr; + aText += aSymbol; + } } return aText; } diff --git a/src/Standard/Standard_Dump.hxx b/src/Standard/Standard_Dump.hxx index d9b28ef5e8..fffedf4ffd 100644 --- a/src/Standard/Standard_Dump.hxx +++ b/src/Standard/Standard_Dump.hxx @@ -123,6 +123,35 @@ class Standard_DumpSentry; } \ } +//! @def OCCT_DUMP_FIELD_VALUES_DUMPED +//! Append into output value: "Name": { field dumped values } +//! It computes Dump of the fields. The expected field is a pointer. +//! Use this macro for fields of the dumped class which has own Dump implementation. +//! The macros is recursive. Recursion is stopped when the depth value becomes equal to zero. +//! Depth = -1 is the default value, dump here is unlimited. +#define OCCT_DUMP_FIELD_VALUES_DUMPED_INC(theOStream, theDepth, theField, theIncName) \ +{ \ + if (theDepth != 0 && (void*)(theField) != NULL) \ + { \ + Standard_SStream aFieldStream; \ + (theField)->DumpJson (aFieldStream, theDepth - 1); \ + TCollection_AsciiString aName = Standard_Dump::DumpFieldToName (#theField) + theIncName; \ + Standard_Dump::DumpKeyToClass (theOStream, aName, Standard_Dump::Text (aFieldStream)); \ + } \ +} + +//! @def OCCT_DUMP_FIELD_VALUES_DUMPED +//! Append into output value: "Name": { field dumped values } +//! It computes Dump of the fields. The expected field is a pointer. +//! Use this macro for fields of the dumped class which has own Dump implementation. +//! The macros is recursive. Recursion is stopped when the depth value becomes equal to zero. +//! Depth = -1 is the default value, dump here is unlimited. +#define OCCT_DUMP_STREAM_VALUE_DUMPED(theOStream, theField) \ +{ \ + TCollection_AsciiString aName = Standard_Dump::DumpFieldToName (#theField); \ + Standard_Dump::DumpKeyToClass (theOStream, aName, Standard_Dump::Text (theField)); \ +} + //! @def OCCT_INIT_FIELD_VALUES_DUMPED //! Append into output value: "Name": { field dumped values } //! It computes Dump of the fields. The expected field is a pointer. @@ -179,7 +208,7 @@ class Standard_DumpSentry; #define OCCT_DUMP_VECTOR_CLASS(theOStream, theName, theCount, ...) \ { \ Standard_Dump::AddValuesSeparator (theOStream); \ - theOStream << "\"" << OCCT_CLASS_NAME(theName) << "\": ["; \ + theOStream << "\"" << theName << "\": ["; \ Standard_Dump::DumpRealValues (theOStream, theCount, __VA_ARGS__);\ theOStream << "]"; \ } @@ -252,6 +281,7 @@ public: //! - for '{' append after '\n' and indent to the next value, increment current indent value //! - for '}' append '\n' and current indent before it, decrement indent value //! - for ',' append after '\n' and indent to the next value. If the current symbol is in massive container [], do nothing + //! Covers result with opened and closed brackets on the top level, if it has no symbols there. //! @param theStream source value //! @param theIndent count of ' ' symbols to apply hierarchical indent of the text values //! @return text presentation diff --git a/src/gp/gp_Ax1.cxx b/src/gp/gp_Ax1.cxx index 3421373bef..a97a8ea727 100644 --- a/src/gp/gp_Ax1.cxx +++ b/src/gp/gp_Ax1.cxx @@ -88,8 +88,8 @@ gp_Ax1 gp_Ax1::Mirrored (const gp_Ax2& A2) const void gp_Ax1::DumpJson (Standard_OStream& theOStream, const Standard_Integer) const { - OCCT_DUMP_VECTOR_CLASS (theOStream, Location, 3, loc.X(), loc.Y(), loc.Z()) - OCCT_DUMP_VECTOR_CLASS (theOStream, Direction, 3, vdir.X(), vdir.Y(), vdir.Z()) + OCCT_DUMP_VECTOR_CLASS (theOStream, "Location", 3, loc.X(), loc.Y(), loc.Z()) + OCCT_DUMP_VECTOR_CLASS (theOStream, "Direction", 3, vdir.X(), vdir.Y(), vdir.Z()) } Standard_Boolean gp_Ax1::InitJson (const Standard_SStream& theSStream, Standard_Integer& theStreamPos) diff --git a/src/gp/gp_Ax2.cxx b/src/gp/gp_Ax2.cxx index 537c251b8a..f329ddd80b 100644 --- a/src/gp/gp_Ax2.cxx +++ b/src/gp/gp_Ax2.cxx @@ -116,11 +116,11 @@ gp_Ax2 gp_Ax2::Mirrored(const gp_Ax2& A2) const void gp_Ax2::DumpJson (Standard_OStream& theOStream, const Standard_Integer) const { - OCCT_DUMP_VECTOR_CLASS (theOStream, Location, 3, axis.Location().X(), axis.Location().Y(), axis.Location().Z()) - OCCT_DUMP_VECTOR_CLASS (theOStream, Direction, 3, axis.Direction().X(), axis.Direction().Y(), axis.Direction().Z()) + OCCT_DUMP_VECTOR_CLASS (theOStream, "Location", 3, axis.Location().X(), axis.Location().Y(), axis.Location().Z()) + OCCT_DUMP_VECTOR_CLASS (theOStream, "Direction", 3, axis.Direction().X(), axis.Direction().Y(), axis.Direction().Z()) - OCCT_DUMP_VECTOR_CLASS (theOStream, XDirection, 3, vxdir.X(), vxdir.Y(), vxdir.Z()) - OCCT_DUMP_VECTOR_CLASS (theOStream, YDirection, 3, vydir.X(), vydir.Y(), vydir.Z()) + OCCT_DUMP_VECTOR_CLASS (theOStream, "XDirection", 3, vxdir.X(), vxdir.Y(), vxdir.Z()) + OCCT_DUMP_VECTOR_CLASS (theOStream, "YDirection", 3, vydir.X(), vydir.Y(), vydir.Z()) } Standard_Boolean gp_Ax2::InitJson (const Standard_SStream& theSStream, Standard_Integer& theStreamPos) diff --git a/src/gp/gp_Ax3.cxx b/src/gp/gp_Ax3.cxx index e2ed05513b..826af118bc 100644 --- a/src/gp/gp_Ax3.cxx +++ b/src/gp/gp_Ax3.cxx @@ -109,11 +109,11 @@ gp_Ax3 gp_Ax3::Mirrored(const gp_Ax2& A2)const void gp_Ax3::DumpJson (Standard_OStream& theOStream, const Standard_Integer) const { - OCCT_DUMP_VECTOR_CLASS (theOStream, Location, 3, Location().X(), Location().Y(), Location().Z()) - OCCT_DUMP_VECTOR_CLASS (theOStream, Direction, 3, Direction().X(), Direction().Y(), Direction().Z()) + OCCT_DUMP_VECTOR_CLASS (theOStream, "Location", 3, Location().X(), Location().Y(), Location().Z()) + OCCT_DUMP_VECTOR_CLASS (theOStream, "Direction", 3, Direction().X(), Direction().Y(), Direction().Z()) - OCCT_DUMP_VECTOR_CLASS (theOStream, XDirection, 3, XDirection().X(), XDirection().Y(), XDirection().Z()) - OCCT_DUMP_VECTOR_CLASS (theOStream, YDirection, 3, YDirection().X(), YDirection().Y(), YDirection().Z()) + OCCT_DUMP_VECTOR_CLASS (theOStream, "XDirection", 3, XDirection().X(), XDirection().Y(), XDirection().Z()) + OCCT_DUMP_VECTOR_CLASS (theOStream, "YDirection", 3, YDirection().X(), YDirection().Y(), YDirection().Z()) } Standard_Boolean gp_Ax3::InitJson (const Standard_SStream& theSStream, Standard_Integer& theStreamPos) diff --git a/src/gp/gp_Dir.cxx b/src/gp/gp_Dir.cxx index f58d8cc5df..1172392434 100644 --- a/src/gp/gp_Dir.cxx +++ b/src/gp/gp_Dir.cxx @@ -142,7 +142,7 @@ gp_Dir gp_Dir::Mirrored (const gp_Ax2& A2) const void gp_Dir::DumpJson (Standard_OStream& theOStream, const Standard_Integer theDepth) const { - OCCT_DUMP_VECTOR_CLASS (theOStream, gp_Dir, 3, coord.X(), coord.Y(), coord.Z()) + OCCT_DUMP_VECTOR_CLASS (theOStream, "gp_Dir", 3, coord.X(), coord.Y(), coord.Z()) } Standard_Boolean gp_Dir::InitJson (const Standard_SStream& theSStream, Standard_Integer& theStreamPos) diff --git a/src/gp/gp_Mat.cxx b/src/gp/gp_Mat.cxx index 014797b851..44c9fb404f 100644 --- a/src/gp/gp_Mat.cxx +++ b/src/gp/gp_Mat.cxx @@ -275,5 +275,5 @@ void gp_Mat::Power (const Standard_Integer N) //======================================================================= void gp_Mat::DumpJson (Standard_OStream& theOStream, const Standard_Integer) const { - OCCT_DUMP_VECTOR_CLASS (theOStream, gp_Mat, 9, Mat00, Mat01, Mat02, Mat10, Mat11, Mat12, Mat20, Mat21, Mat22); + OCCT_DUMP_VECTOR_CLASS (theOStream, "gp_Mat", 9, Mat00, Mat01, Mat02, Mat10, Mat11, Mat12, Mat20, Mat21, Mat22); } diff --git a/src/gp/gp_Pnt.cxx b/src/gp/gp_Pnt.cxx index 515267108d..f713edb4a7 100644 --- a/src/gp/gp_Pnt.cxx +++ b/src/gp/gp_Pnt.cxx @@ -88,7 +88,7 @@ gp_Pnt gp_Pnt::Mirrored (const gp_Ax2& A2) const void gp_Pnt::DumpJson (Standard_OStream& theOStream, const Standard_Integer theDepth) const { - OCCT_DUMP_VECTOR_CLASS (theOStream, gp_Pnt, 3, coord.X(), coord.Y(), coord.Z()) + OCCT_DUMP_VECTOR_CLASS (theOStream, "gp_Pnt", 3, coord.X(), coord.Y(), coord.Z()) } Standard_Boolean gp_Pnt::InitJson (const Standard_SStream& theSStream, Standard_Integer& theStreamPos) diff --git a/src/gp/gp_Trsf.cxx b/src/gp/gp_Trsf.cxx index 9ad34a3a80..2766690208 100644 --- a/src/gp/gp_Trsf.cxx +++ b/src/gp/gp_Trsf.cxx @@ -857,8 +857,8 @@ void gp_Trsf::Orthogonalize() //======================================================================= void gp_Trsf::DumpJson (Standard_OStream& theOStream, const Standard_Integer theDepth) const { - OCCT_DUMP_VECTOR_CLASS (theOStream, Location, 3, loc.X(), loc.Y(), loc.Z()) - OCCT_DUMP_VECTOR_CLASS (theOStream, Matrix, 9, matrix.Value(1, 1), matrix.Value(1, 2), matrix.Value(1, 3), + OCCT_DUMP_VECTOR_CLASS (theOStream, "Location", 3, loc.X(), loc.Y(), loc.Z()) + OCCT_DUMP_VECTOR_CLASS (theOStream, "Matrix", 9, matrix.Value(1, 1), matrix.Value(1, 2), matrix.Value(1, 3), matrix.Value(2, 1), matrix.Value(2, 2), matrix.Value(2, 3), matrix.Value(3, 1), matrix.Value(3, 2), matrix.Value(3, 3)) diff --git a/src/gp/gp_XYZ.cxx b/src/gp/gp_XYZ.cxx index 72317f4fbe..9ee20c0e0d 100644 --- a/src/gp/gp_XYZ.cxx +++ b/src/gp/gp_XYZ.cxx @@ -40,7 +40,7 @@ Standard_Boolean gp_XYZ::IsEqual (const gp_XYZ& Other, //======================================================================= void gp_XYZ::DumpJson (Standard_OStream& theOStream, const Standard_Integer) const { - OCCT_DUMP_VECTOR_CLASS (theOStream, gp_XYZ, 3, x, y, z) + OCCT_DUMP_VECTOR_CLASS (theOStream, "gp_XYZ", 3, x, y, z) } //======================================================================= -- 2.39.5