Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
godotengine
GitHub Repository: godotengine/godot
Path: blob/master/thirdparty/jolt_physics/Jolt/Physics/Constraints/MotorSettings.cpp
9912 views
1
// Jolt Physics Library (https://github.com/jrouwe/JoltPhysics)
2
// SPDX-FileCopyrightText: 2021 Jorrit Rouwe
3
// SPDX-License-Identifier: MIT
4
5
#include <Jolt/Jolt.h>
6
7
#include <Jolt/Physics/Constraints/MotorSettings.h>
8
#include <Jolt/ObjectStream/TypeDeclarations.h>
9
#include <Jolt/Core/StreamIn.h>
10
#include <Jolt/Core/StreamOut.h>
11
12
JPH_NAMESPACE_BEGIN
13
14
JPH_IMPLEMENT_SERIALIZABLE_NON_VIRTUAL(MotorSettings)
15
{
16
JPH_ADD_ENUM_ATTRIBUTE_WITH_ALIAS(MotorSettings, mSpringSettings.mMode, "mSpringMode")
17
JPH_ADD_ATTRIBUTE_WITH_ALIAS(MotorSettings, mSpringSettings.mFrequency, "mFrequency") // Renaming attributes to stay compatible with old versions of the library
18
JPH_ADD_ATTRIBUTE_WITH_ALIAS(MotorSettings, mSpringSettings.mDamping, "mDamping")
19
JPH_ADD_ATTRIBUTE(MotorSettings, mMinForceLimit)
20
JPH_ADD_ATTRIBUTE(MotorSettings, mMaxForceLimit)
21
JPH_ADD_ATTRIBUTE(MotorSettings, mMinTorqueLimit)
22
JPH_ADD_ATTRIBUTE(MotorSettings, mMaxTorqueLimit)
23
}
24
25
void MotorSettings::SaveBinaryState(StreamOut &inStream) const
26
{
27
mSpringSettings.SaveBinaryState(inStream);
28
inStream.Write(mMinForceLimit);
29
inStream.Write(mMaxForceLimit);
30
inStream.Write(mMinTorqueLimit);
31
inStream.Write(mMaxTorqueLimit);
32
}
33
34
void MotorSettings::RestoreBinaryState(StreamIn &inStream)
35
{
36
mSpringSettings.RestoreBinaryState(inStream);
37
inStream.Read(mMinForceLimit);
38
inStream.Read(mMaxForceLimit);
39
inStream.Read(mMinTorqueLimit);
40
inStream.Read(mMaxTorqueLimit);
41
}
42
43
JPH_NAMESPACE_END
44
45