0031313: Foundation Classes - Dump improvement for classes
[occt.git] / src / OpenGl / OpenGl_MatrixState.hxx
index 00f16d0..ef56e6c 100644 (file)
@@ -18,6 +18,7 @@
 
 #include <OpenGl_Vec.hxx>
 #include <NCollection_Vector.hxx>
+#include <Standard_Dump.hxx>
 
 //! Software implementation for OpenGL matrix stack.
 template<class T>
@@ -84,6 +85,20 @@ public:
     myCurrent = typename OpenGl::MatrixType<T>::Mat4();
   }
 
+  //! 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, "myCurrent", 16,
+      myCurrent.GetValue (0, 0),  myCurrent.GetValue (0, 1), myCurrent.GetValue (0, 2),  myCurrent.GetValue (0, 3),
+      myCurrent.GetValue (1, 0),  myCurrent.GetValue (1, 1), myCurrent.GetValue (1, 2),  myCurrent.GetValue (1, 3),
+      myCurrent.GetValue (2, 0),  myCurrent.GetValue (2, 1), myCurrent.GetValue (2, 2),  myCurrent.GetValue (2, 3),
+      myCurrent.GetValue (3, 0),  myCurrent.GetValue (3, 1), myCurrent.GetValue (3, 2),  myCurrent.GetValue (3, 3))
+
+    OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myStack.Size())
+    OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myStackHead)
+  }
+
 private:
 
   NCollection_Vector<typename OpenGl::MatrixType<T>::Mat4> myStack;     //!< Collection used to maintenance matrix stack