Path: blob/master/thirdparty/jolt_physics/Jolt/Physics/Constraints/Constraint.cpp
9913 views
// Jolt Physics Library (https://github.com/jrouwe/JoltPhysics)1// SPDX-FileCopyrightText: 2021 Jorrit Rouwe2// SPDX-License-Identifier: MIT34#include <Jolt/Jolt.h>56#include <Jolt/Physics/Constraints/Constraint.h>7#include <Jolt/Physics/StateRecorder.h>8#include <Jolt/ObjectStream/TypeDeclarations.h>9#include <Jolt/Core/StreamUtils.h>1011JPH_NAMESPACE_BEGIN1213JPH_IMPLEMENT_SERIALIZABLE_VIRTUAL(ConstraintSettings)14{15JPH_ADD_BASE_CLASS(ConstraintSettings, SerializableObject)1617JPH_ADD_ATTRIBUTE(ConstraintSettings, mEnabled)18JPH_ADD_ATTRIBUTE(ConstraintSettings, mDrawConstraintSize)19JPH_ADD_ATTRIBUTE(ConstraintSettings, mConstraintPriority)20JPH_ADD_ATTRIBUTE(ConstraintSettings, mNumVelocityStepsOverride)21JPH_ADD_ATTRIBUTE(ConstraintSettings, mNumPositionStepsOverride)22JPH_ADD_ATTRIBUTE(ConstraintSettings, mUserData)23}2425void ConstraintSettings::SaveBinaryState(StreamOut &inStream) const26{27inStream.Write(GetRTTI()->GetHash());28inStream.Write(mEnabled);29inStream.Write(mDrawConstraintSize);30inStream.Write(mConstraintPriority);31inStream.Write(mNumVelocityStepsOverride);32inStream.Write(mNumPositionStepsOverride);33}3435void ConstraintSettings::RestoreBinaryState(StreamIn &inStream)36{37// Type hash read by sRestoreFromBinaryState38inStream.Read(mEnabled);39inStream.Read(mDrawConstraintSize);40inStream.Read(mConstraintPriority);41inStream.Read(mNumVelocityStepsOverride);42inStream.Read(mNumPositionStepsOverride);43}4445ConstraintSettings::ConstraintResult ConstraintSettings::sRestoreFromBinaryState(StreamIn &inStream)46{47return StreamUtils::RestoreObject<ConstraintSettings>(inStream, &ConstraintSettings::RestoreBinaryState);48}4950void Constraint::SaveState(StateRecorder &inStream) const51{52inStream.Write(mEnabled);53}5455void Constraint::RestoreState(StateRecorder &inStream)56{57inStream.Read(mEnabled);58}5960void Constraint::ToConstraintSettings(ConstraintSettings &outSettings) const61{62outSettings.mEnabled = mEnabled;63outSettings.mConstraintPriority = mConstraintPriority;64outSettings.mNumVelocityStepsOverride = mNumVelocityStepsOverride;65outSettings.mNumPositionStepsOverride = mNumPositionStepsOverride;66outSettings.mUserData = mUserData;67#ifdef JPH_DEBUG_RENDERER68outSettings.mDrawConstraintSize = mDrawConstraintSize;69#endif // JPH_DEBUG_RENDERER70}7172JPH_NAMESPACE_END737475