]> OCCT Git - occt-copy.git/commitdiff
0031362: Inspectors - MessageView plugin for message alerts
authornds <nds@opencascade.com>
Thu, 8 Oct 2020 09:27:06 +0000 (12:27 +0300)
committernds <nds@opencascade.com>
Thu, 12 Nov 2020 08:39:34 +0000 (11:39 +0300)
DumpJson correction

(cherry picked from commit 1f4dcce7ee5da0846acd124a3ff900aaad1d2cbd)
(cherry picked from commit 03f183f4fea1992f1ee05ded17a88db1dc434ee0)
(cherry picked from commit 45db541dd3dac1890ac10ce09b6605ddcce82e53)

18 files changed:
src/Message/Message.cxx
src/Message/Message_AttributeMeter.cxx
src/Message/Message_AttributeStream.cxx
src/Message/Message_CompositeAlerts.cxx
src/Message/Message_MetricType.hxx
src/OSD/OSD_Timer.hxx
src/Select3D/Select3D_SensitiveEntity.cxx
src/SelectMgr/SelectMgr_Selection.cxx
src/Standard/Standard_Dump.cxx
src/Standard/Standard_Dump.hxx
src/gp/gp_Ax1.cxx
src/gp/gp_Ax2.cxx
src/gp/gp_Ax3.cxx
src/gp/gp_Dir.cxx
src/gp/gp_Mat.cxx
src/gp/gp_Pnt.cxx
src/gp/gp_Trsf.cxx
src/gp/gp_XYZ.cxx

index 9dc3a7107e7a952aebae9fb391bcb20bfb510859..4ec8d0e0be3619fad9842868bb0b7ac0f7fed7df 100644 (file)
 
 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"
   };
 }
index d37cc8b7c3acc87c99daddb2304afa4edc8f4e17..875939ff3dfb13e271f44263bda051b638f95f60 100644 (file)
@@ -17,6 +17,7 @@
 #include <Message.hxx>
 #include <Message_Report.hxx>
 #include <OSD_Chronometer.hxx>
+#include <OSD_Timer.hxx>
 
 #include <Precision.hxx>
 #include <Standard_Dump.hxx>
@@ -128,6 +129,16 @@ void Message_AttributeMeter::SetAlertMetrics (const Handle(Message_AlertExtended
   const NCollection_IndexedMap<Message_MetricType>& 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<Message_MetricType, StartToStopValue>::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)
   }
 }
index ba0ff7e8a0e6f33b8f8dbe6f14ea2473f96d0bbd..357439558412d356de78fce90f9c983bf1bc5fc8 100644 (file)
@@ -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)
 }
index 312b0596346012ebd4de667300f2257461eaf344..e0a9cafca909d3465050e4ec9aead5d7f758f48e 100644 (file)
@@ -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)
     }
   }
 }
index 89a1ac479946ab3a234c5e36d9d3d6efea667ac6..a35e87e5e580f6991c4d086b9110cfc2e131a088 100644 (file)
@@ -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
index 2b483283bfaca170f009b18c49b2800a4b07a145..897d3442c0b20cfa9b1510ae8ba1cf329f68d4c3 100644 (file)
@@ -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;
 
index 43804bad6973f73113b42733d4bc1147826cb015..df5c4dbf27d6f1b3842f1382f4a5ef52ef3e32d9 100644 (file)
@@ -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);
 }
index 8df00b29a834cf0196b5a1ee4970e968890f016c..72b663b2eeedac12ce304465f2ae2d5a8535c226 100644 (file)
@@ -125,6 +125,27 @@ void SelectMgr_Selection::DumpJson (Standard_OStream& theOStream, const Standard
 {
   OCCT_DUMP_CLASS_BEGIN (theOStream, SelectMgr_Selection);
 
+  NCollection_IndexedMap<Handle(SelectMgr_EntityOwner)> anOwners;
+  for (NCollection_Vector<Handle(SelectMgr_SensitiveEntity)>::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<Handle(SelectMgr_EntityOwner)>::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<Handle(SelectMgr_SensitiveEntity)>::Iterator anIterator (myEntities); anIterator.More(); anIterator.Next())
   {
     Handle(SelectMgr_SensitiveEntity) anEntity = anIterator.Value();
index 3157ba55810b6a79da4c12f8f88a477e6a44565e..c065dab3ddd83aaa8bdfe0dada3487d3481ebe6b 100644 (file)
@@ -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;
 }
index d9b28ef5e869e77dd12d323b693d46090f8a9b99..fffedf4ffdb5ee8d2d08d87fa3df0e39fafce4f4 100644 (file)
@@ -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
index 3421373befae748694857dfbba70df4af4e7488f..a97a8ea7270acc8f5c3e4703ccd8e41910b4a69f 100644 (file)
@@ -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)
index 537c251b8a937a6062a504fe24b1c06f81a54f88..f329ddd80b68b3014557c35e6d03e3a7e9ddb2af 100644 (file)
@@ -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)
index e2ed05513b8cea36082a6f3215a3f1480d55d0db..826af118bcf6a2237b8a9d60956f23657467c830 100644 (file)
@@ -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)
index f58d8cc5dfc371c160c9af3148c919e84c317b23..11723924345e57d81d6d963e925183be4419d4ac 100644 (file)
@@ -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)
index 014797b851cb1fe0745001f6e2e5474f3df02152..44c9fb404f005e879a17dc5f3479da582a8c2c25 100644 (file)
@@ -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);
 }
index 515267108d526e3925a43185357f0cd7b503ecf7..f713edb4a7f9ce6aba76b7da5e2e4b05be5081be 100644 (file)
@@ -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)
index 9ad34a3a80f098a8b830b822b10f332c53aada60..2766690208b436413f9f5187b1740cf5b2a14383 100644 (file)
@@ -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))
 
index 72317f4fbe2bc3c081f822932d9629b23434438c..9ee20c0e0d90e9031d80e003156e4be4bfd03615 100644 (file)
@@ -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)
 }
 
 //=======================================================================