1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-06 12:20:30 +00:00
Files
godot/thirdparty/jolt_physics/Jolt/Core/StreamWrapper.h
Mikael Hermansson d470c2ac6a Add Jolt Physics as an alternative 3D physics engine
Co-authored-by: Jorrit Rouwe <jrouwe@gmail.com>
2024-12-11 13:57:25 +01:00

54 lines
1.5 KiB
C++

// Jolt Physics Library (https://github.com/jrouwe/JoltPhysics)
// SPDX-FileCopyrightText: 2021 Jorrit Rouwe
// SPDX-License-Identifier: MIT
#pragma once
#include <Jolt/Core/StreamIn.h>
#include <Jolt/Core/StreamOut.h>
JPH_SUPPRESS_WARNINGS_STD_BEGIN
#include <ostream>
JPH_SUPPRESS_WARNINGS_STD_END
JPH_NAMESPACE_BEGIN
/// Wrapper around std::ostream
class StreamOutWrapper : public StreamOut
{
public:
/// Constructor
StreamOutWrapper(ostream &ioWrapped) : mWrapped(ioWrapped) { }
/// Write a string of bytes to the binary stream
virtual void WriteBytes(const void *inData, size_t inNumBytes) override { mWrapped.write((const char *)inData, inNumBytes); }
/// Returns true if there was an IO failure
virtual bool IsFailed() const override { return mWrapped.fail(); }
private:
ostream & mWrapped;
};
/// Wrapper around std::istream
class StreamInWrapper : public StreamIn
{
public:
/// Constructor
StreamInWrapper(istream &ioWrapped) : mWrapped(ioWrapped) { }
/// Write a string of bytes to the binary stream
virtual void ReadBytes(void *outData, size_t inNumBytes) override { mWrapped.read((char *)outData, inNumBytes); }
/// Returns true when an attempt has been made to read past the end of the file
virtual bool IsEOF() const override { return mWrapped.eof(); }
/// Returns true if there was an IO failure
virtual bool IsFailed() const override { return mWrapped.fail(); }
private:
istream & mWrapped;
};
JPH_NAMESPACE_END