ObjectStreamTextOut.h 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. // Jolt Physics Library (https://github.com/jrouwe/JoltPhysics)
  2. // SPDX-FileCopyrightText: 2021 Jorrit Rouwe
  3. // SPDX-License-Identifier: MIT
  4. #pragma once
  5. #include <Jolt/ObjectStream/ObjectStreamOut.h>
  6. #ifdef JPH_OBJECT_STREAM
  7. JPH_NAMESPACE_BEGIN
  8. /// Implementation of ObjectStream text output stream.
  9. class JPH_EXPORT ObjectStreamTextOut : public ObjectStreamOut
  10. {
  11. public:
  12. JPH_OVERRIDE_NEW_DELETE
  13. /// Constructor and destructor
  14. explicit ObjectStreamTextOut(ostream &inStream);
  15. ///@name Output type specific operations
  16. virtual void WriteDataType(EOSDataType inType) override;
  17. virtual void WriteName(const char *inName) override;
  18. virtual void WriteIdentifier(Identifier inIdentifier) override;
  19. virtual void WriteCount(uint32 inCount) override;
  20. virtual void WritePrimitiveData(const uint8 &inPrimitive) override;
  21. virtual void WritePrimitiveData(const uint16 &inPrimitive) override;
  22. virtual void WritePrimitiveData(const int &inPrimitive) override;
  23. virtual void WritePrimitiveData(const uint32 &inPrimitive) override;
  24. virtual void WritePrimitiveData(const uint64 &inPrimitive) override;
  25. virtual void WritePrimitiveData(const float &inPrimitive) override;
  26. virtual void WritePrimitiveData(const double &inPrimitive) override;
  27. virtual void WritePrimitiveData(const bool &inPrimitive) override;
  28. virtual void WritePrimitiveData(const String &inPrimitive) override;
  29. virtual void WritePrimitiveData(const Float3 &inPrimitive) override;
  30. virtual void WritePrimitiveData(const Float4 &inPrimitive) override;
  31. virtual void WritePrimitiveData(const Double3 &inPrimitive) override;
  32. virtual void WritePrimitiveData(const Vec3 &inPrimitive) override;
  33. virtual void WritePrimitiveData(const DVec3 &inPrimitive) override;
  34. virtual void WritePrimitiveData(const Vec4 &inPrimitive) override;
  35. virtual void WritePrimitiveData(const UVec4 &inPrimitive) override;
  36. virtual void WritePrimitiveData(const Quat &inPrimitive) override;
  37. virtual void WritePrimitiveData(const Mat44 &inPrimitive) override;
  38. virtual void WritePrimitiveData(const DMat44 &inPrimitive) override;
  39. ///@name Layout hints (for text output)
  40. virtual void HintNextItem() override;
  41. virtual void HintIndentUp() override;
  42. virtual void HintIndentDown() override;
  43. private:
  44. void WriteChar(char inChar);
  45. void WriteWord(const string_view &inWord);
  46. int mIndentation = 0;
  47. };
  48. JPH_NAMESPACE_END
  49. #endif // JPH_OBJECT_STREAM