54 lines
1.5 KiB
C++
54 lines
1.5 KiB
C++
// Jolt Physics Library (https://github.com/jrouwe/JoltPhysics)
|
|
// SPDX-FileCopyrightText: 2021 Jorrit Rouwe
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
#include <Jolt/Jolt.h>
|
|
|
|
#include <Jolt/Physics/Body/MotionProperties.h>
|
|
#include <Jolt/Physics/StateRecorder.h>
|
|
|
|
JPH_NAMESPACE_BEGIN
|
|
|
|
void MotionProperties::SaveState(StateRecorder &inStream) const
|
|
{
|
|
// Only write properties that can change at runtime
|
|
inStream.Write(mLinearVelocity);
|
|
inStream.Write(mAngularVelocity);
|
|
inStream.Write(mForce);
|
|
inStream.Write(mTorque);
|
|
inStream.Write(mLinearDamping);
|
|
inStream.Write(mAngularDamping);
|
|
inStream.Write(mMaxLinearVelocity);
|
|
inStream.Write(mMaxAngularVelocity);
|
|
inStream.Write(mGravityFactor);
|
|
#ifdef JPH_DOUBLE_PRECISION
|
|
inStream.Write(mSleepTestOffset);
|
|
#endif // JPH_DOUBLE_PRECISION
|
|
inStream.Write(mSleepTestSpheres);
|
|
inStream.Write(mSleepTestTimer);
|
|
inStream.Write(mMotionQuality);
|
|
inStream.Write(mAllowSleeping);
|
|
}
|
|
|
|
void MotionProperties::RestoreState(StateRecorder &inStream)
|
|
{
|
|
inStream.Read(mLinearVelocity);
|
|
inStream.Read(mAngularVelocity);
|
|
inStream.Read(mForce);
|
|
inStream.Read(mTorque);
|
|
inStream.Read(mLinearDamping);
|
|
inStream.Read(mAngularDamping);
|
|
inStream.Read(mMaxLinearVelocity);
|
|
inStream.Read(mMaxAngularVelocity);
|
|
inStream.Read(mGravityFactor);
|
|
#ifdef JPH_DOUBLE_PRECISION
|
|
inStream.Read(mSleepTestOffset);
|
|
#endif // JPH_DOUBLE_PRECISION
|
|
inStream.Read(mSleepTestSpheres);
|
|
inStream.Read(mSleepTestTimer);
|
|
inStream.Read(mMotionQuality);
|
|
inStream.Read(mAllowSleeping);
|
|
}
|
|
|
|
JPH_NAMESPACE_END
|