19 virtual void ReadBytes(
void *outData,
size_t inNumBytes) = 0;
28 template <
class T, std::enable_if_t<std::is_trivially_copyable_v<T>,
bool> = true>
31 ReadBytes(&outT,
sizeof(outT));
35 template <
class T,
class A, std::enable_if_t<std::is_trivially_copyable_v<T>,
bool> = true>
40 if (!IsEOF() && !IsFailed())
43 if constexpr (std::is_same_v<T, Vec3> || std::is_same_v<T, DVec3> || std::is_same_v<T, DMat44>)
52 ReadBytes(outT.
data(), len *
sizeof(T));
60 template <
class Type,
class Traits,
class Allocator>
61 void Read(std::basic_string<Type, Traits, Allocator> &outString)
65 if (!IsEOF() && !IsFailed())
67 outString.resize(len);
68 ReadBytes(outString.data(), len *
sizeof(Type));
75 template <
class T,
class A,
typename F>
80 if (!IsEOF() && !IsFailed())
84 inReadElement(*
this, outT[i]);
93 ReadBytes(&outVec, 3 *
sizeof(
float));
100 ReadBytes(&outVec, 3 *
sizeof(
double));
115 outVec =
DMat44(x, y, z, t);
#define JPH_EXPORT
Definition: Core.h:236
#define JPH_NAMESPACE_END
Definition: Core.h:378
std::uint32_t uint32
Definition: Core.h:455
#define JPH_NAMESPACE_BEGIN
Definition: Core.h:372
void resize(size_type inNewSize)
Resize array to new length.
Definition: Array.h:118
size_t size_type
Definition: Array.h:39
const T * data() const
Definition: Array.h:442
size_type size() const
Returns amount of elements in the array.
Definition: Array.h:318
void clear()
Destruct all elements and set length to zero.
Definition: Array.h:143
Holds a 4x4 matrix of floats with the last column consisting of doubles.
Definition: DMat44.h:13
static JPH_INLINE Type sFixW(TypeArg inValue)
Internal helper function that ensures that the Z component is replicated to the W component to preven...
Definition: DVec3.inl:92
Type mValue
Definition: DVec3.h:279
Class that makes another class non-copyable. Usage: Inherit from NonCopyable.
Definition: NonCopyable.h:11
Simple binary input stream.
Definition: StreamIn.h:13
virtual ~StreamIn()=default
Virtual destructor.
void Read(T &outT)
Read a primitive (e.g. float, int, etc.) from the binary stream.
Definition: StreamIn.h:29
void Read(Array< T, A > &outT, const F &inReadElement)
Read a vector of primitives from the binary stream using a custom function to read the elements.
Definition: StreamIn.h:76
void Read(std::basic_string< Type, Traits, Allocator > &outString)
Read a string from the binary stream (reads the number of characters and then the characters)
Definition: StreamIn.h:61
void Read(Vec3 &outVec)
Read a Vec3 (don't read W)
Definition: StreamIn.h:91
virtual void ReadBytes(void *outData, size_t inNumBytes)=0
Read a string of bytes from the binary stream.
virtual bool IsEOF() const =0
Returns true when an attempt has been made to read past the end of the file.
virtual bool IsFailed() const =0
Returns true if there was an IO failure.
void Read(DMat44 &outVec)
Read a DMat44 (don't read W component of translation)
Definition: StreamIn.h:105
void Read(Array< T, A > &outT)
Read a vector of primitives from the binary stream.
Definition: StreamIn.h:36
void Read(DVec3 &outVec)
Read a DVec3 (don't read W)
Definition: StreamIn.h:98
static JPH_INLINE Type sFixW(Type inValue)
Internal helper function that ensures that the Z component is replicated to the W component to preven...
Type mValue
Definition: Vec3.h:286