text: // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  #include "beatsaber-hook/shared/utils/typedefs.h"
  // Including type: RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.UpdateDelegate
  #include "RootMotion/FinalIK/IKSolver_UpdateDelegate.hpp"
  // Including type: System.IAsyncResult
  #include "System/IAsyncResult.hpp"
  // Including type: System.AsyncCallback
  #include "System/AsyncCallback.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated method: RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.UpdateDelegate.Invoke
  void RootMotion::FinalIK::IKSolver::UpdateDelegate::Invoke() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolver::UpdateDelegate::Invoke");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Invoke", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.UpdateDelegate.BeginInvoke
  ::System::IAsyncResult* RootMotion::FinalIK::IKSolver::UpdateDelegate::BeginInvoke(::System::AsyncCallback* callback, ::Il2CppObject* object) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolver::UpdateDelegate::BeginInvoke");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "BeginInvoke", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(callback), ::il2cpp_utils::ExtractType(object)})));
    return ::il2cpp_utils::RunMethodRethrow<::System::IAsyncResult*, false>(this, ___internal__method, callback, object);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.UpdateDelegate.EndInvoke
  void RootMotion::FinalIK::IKSolver::UpdateDelegate::EndInvoke(::System::IAsyncResult* result) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolver::UpdateDelegate::EndInvoke");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "EndInvoke", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(result)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, result);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  #include "beatsaber-hook/shared/utils/typedefs.h"
  // Including type: RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.IterationDelegate
  #include "RootMotion/FinalIK/IKSolver_IterationDelegate.hpp"
  // Including type: System.IAsyncResult
  #include "System/IAsyncResult.hpp"
  // Including type: System.AsyncCallback
  #include "System/AsyncCallback.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated method: RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.IterationDelegate.Invoke
  void RootMotion::FinalIK::IKSolver::IterationDelegate::Invoke(int i) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolver::IterationDelegate::Invoke");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Invoke", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(i)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, i);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.IterationDelegate.BeginInvoke
  ::System::IAsyncResult* RootMotion::FinalIK::IKSolver::IterationDelegate::BeginInvoke(int i, ::System::AsyncCallback* callback, ::Il2CppObject* object) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolver::IterationDelegate::BeginInvoke");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "BeginInvoke", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(i), ::il2cpp_utils::ExtractType(callback), ::il2cpp_utils::ExtractType(object)})));
    return ::il2cpp_utils::RunMethodRethrow<::System::IAsyncResult*, false>(this, ___internal__method, i, callback, object);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.IterationDelegate.EndInvoke
  void RootMotion::FinalIK::IKSolver::IterationDelegate::EndInvoke(::System::IAsyncResult* result) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolver::IterationDelegate::EndInvoke");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "EndInvoke", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(result)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, result);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.IKSolverAim
  #include "RootMotion/FinalIK/IKSolverAim.hpp"
  // Including type: UnityEngine.Transform
  #include "UnityEngine/Transform.hpp"
  // Including type: RootMotion.FinalIK.RotationLimit
  #include "RootMotion/FinalIK/RotationLimit.hpp"
  // Including type: RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.IterationDelegate
  #include "RootMotion/FinalIK/IKSolver_IterationDelegate.hpp"
  // Including type: RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.Bone
  #include "RootMotion/FinalIK/IKSolver_Bone.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Transform transform
  ::UnityEngine::Transform*& RootMotion::FinalIK::IKSolverAim::dyn_transform() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverAim::dyn_transform");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "transform"))->offset;
    return *reinterpret_cast<::UnityEngine::Transform**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 axis
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverAim::dyn_axis() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverAim::dyn_axis");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "axis"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 poleAxis
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverAim::dyn_poleAxis() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverAim::dyn_poleAxis");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "poleAxis"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 polePosition
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverAim::dyn_polePosition() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverAim::dyn_polePosition");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "polePosition"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single poleWeight
  float& RootMotion::FinalIK::IKSolverAim::dyn_poleWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverAim::dyn_poleWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "poleWeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Transform poleTarget
  ::UnityEngine::Transform*& RootMotion::FinalIK::IKSolverAim::dyn_poleTarget() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverAim::dyn_poleTarget");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "poleTarget"))->offset;
    return *reinterpret_cast<::UnityEngine::Transform**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single clampWeight
  float& RootMotion::FinalIK::IKSolverAim::dyn_clampWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverAim::dyn_clampWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "clampWeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Int32 clampSmoothing
  int& RootMotion::FinalIK::IKSolverAim::dyn_clampSmoothing() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverAim::dyn_clampSmoothing");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "clampSmoothing"))->offset;
    return *reinterpret_cast<int*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.IterationDelegate OnPreIteration
  ::RootMotion::FinalIK::IKSolver::IterationDelegate*& RootMotion::FinalIK::IKSolverAim::dyn_OnPreIteration() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverAim::dyn_OnPreIteration");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "OnPreIteration"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IKSolver::IterationDelegate**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single step
  float& RootMotion::FinalIK::IKSolverAim::dyn_step() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverAim::dyn_step");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "step"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 clampedIKPosition
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverAim::dyn_clampedIKPosition() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverAim::dyn_clampedIKPosition");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "clampedIKPosition"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private RootMotion.FinalIK.RotationLimit transformLimit
  ::RootMotion::FinalIK::RotationLimit*& RootMotion::FinalIK::IKSolverAim::dyn_transformLimit() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverAim::dyn_transformLimit");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "transformLimit"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::RotationLimit**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Transform lastTransform
  ::UnityEngine::Transform*& RootMotion::FinalIK::IKSolverAim::dyn_lastTransform() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverAim::dyn_lastTransform");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "lastTransform"))->offset;
    return *reinterpret_cast<::UnityEngine::Transform**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverAim.get_transformAxis
  ::UnityEngine::Vector3 RootMotion::FinalIK::IKSolverAim::get_transformAxis() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverAim::get_transformAxis");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_transformAxis", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverAim.get_transformPoleAxis
  ::UnityEngine::Vector3 RootMotion::FinalIK::IKSolverAim::get_transformPoleAxis() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverAim::get_transformPoleAxis");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_transformPoleAxis", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverAim.GetAngle
  float RootMotion::FinalIK::IKSolverAim::GetAngle() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverAim::GetAngle");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetAngle", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<float, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverAim.Solve
  void RootMotion::FinalIK::IKSolverAim::Solve() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverAim::Solve");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Solve", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverAim.GetClampedIKPosition
  ::UnityEngine::Vector3 RootMotion::FinalIK::IKSolverAim::GetClampedIKPosition() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverAim::GetClampedIKPosition");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetClampedIKPosition", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverAim.RotateToTarget
  void RootMotion::FinalIK::IKSolverAim::RotateToTarget(::UnityEngine::Vector3 targetPosition, ::RootMotion::FinalIK::IKSolver::Bone* bone, float weight) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverAim::RotateToTarget");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "RotateToTarget", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(targetPosition), ::il2cpp_utils::ExtractType(bone), ::il2cpp_utils::ExtractType(weight)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, targetPosition, bone, weight);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverAim.get_minBones
  int RootMotion::FinalIK::IKSolverAim::get_minBones() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverAim::get_minBones");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_minBones", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<int, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverAim.get_localDirection
  ::UnityEngine::Vector3 RootMotion::FinalIK::IKSolverAim::get_localDirection() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverAim::get_localDirection");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_localDirection", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverAim.OnInitiate
  void RootMotion::FinalIK::IKSolverAim::OnInitiate() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverAim::OnInitiate");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnInitiate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverAim.OnUpdate
  void RootMotion::FinalIK::IKSolverAim::OnUpdate() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverAim::OnUpdate");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnUpdate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.IKSolverArm
  #include "RootMotion/FinalIK/IKSolverArm.hpp"
  // Including type: UnityEngine.Transform
  #include "UnityEngine/Transform.hpp"
  // Including type: RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.Point
  #include "RootMotion/FinalIK/IKSolver_Point.hpp"
  // Including type: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Arm
  #include "RootMotion/FinalIK/IKSolverVR_Arm.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public System.Single IKRotationWeight
  float& RootMotion::FinalIK::IKSolverArm::dyn_IKRotationWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverArm::dyn_IKRotationWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "IKRotationWeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Quaternion IKRotation
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverArm::dyn_IKRotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverArm::dyn_IKRotation");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "IKRotation"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.Point chest
  ::RootMotion::FinalIK::IKSolver::Point*& RootMotion::FinalIK::IKSolverArm::dyn_chest() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverArm::dyn_chest");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "chest"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IKSolver::Point**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.Point shoulder
  ::RootMotion::FinalIK::IKSolver::Point*& RootMotion::FinalIK::IKSolverArm::dyn_shoulder() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverArm::dyn_shoulder");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "shoulder"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IKSolver::Point**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.Point upperArm
  ::RootMotion::FinalIK::IKSolver::Point*& RootMotion::FinalIK::IKSolverArm::dyn_upperArm() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverArm::dyn_upperArm");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "upperArm"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IKSolver::Point**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.Point forearm
  ::RootMotion::FinalIK::IKSolver::Point*& RootMotion::FinalIK::IKSolverArm::dyn_forearm() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverArm::dyn_forearm");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "forearm"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IKSolver::Point**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.Point hand
  ::RootMotion::FinalIK::IKSolver::Point*& RootMotion::FinalIK::IKSolverArm::dyn_hand() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverArm::dyn_hand");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "hand"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IKSolver::Point**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Boolean isLeft
  bool& RootMotion::FinalIK::IKSolverArm::dyn_isLeft() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverArm::dyn_isLeft");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "isLeft"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Arm arm
  ::RootMotion::FinalIK::IKSolverVR::Arm*& RootMotion::FinalIK::IKSolverArm::dyn_arm() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverArm::dyn_arm");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "arm"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IKSolverVR::Arm**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3[] positions
  ::ArrayW<::UnityEngine::Vector3>& RootMotion::FinalIK::IKSolverArm::dyn_positions() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverArm::dyn_positions");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "positions"))->offset;
    return *reinterpret_cast<::ArrayW<::UnityEngine::Vector3>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Quaternion[] rotations
  ::ArrayW<::UnityEngine::Quaternion>& RootMotion::FinalIK::IKSolverArm::dyn_rotations() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverArm::dyn_rotations");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "rotations"))->offset;
    return *reinterpret_cast<::ArrayW<::UnityEngine::Quaternion>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverArm.SetChain
  bool RootMotion::FinalIK::IKSolverArm::SetChain(::UnityEngine::Transform* chest, ::UnityEngine::Transform* shoulder, ::UnityEngine::Transform* upperArm, ::UnityEngine::Transform* forearm, ::UnityEngine::Transform* hand, ::UnityEngine::Transform* root) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverArm::SetChain");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SetChain", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(chest), ::il2cpp_utils::ExtractType(shoulder), ::il2cpp_utils::ExtractType(upperArm), ::il2cpp_utils::ExtractType(forearm), ::il2cpp_utils::ExtractType(hand), ::il2cpp_utils::ExtractType(root)})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method, chest, shoulder, upperArm, forearm, hand, root);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverArm.Solve
  void RootMotion::FinalIK::IKSolverArm::Solve() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverArm::Solve");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Solve", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverArm.Read
  void RootMotion::FinalIK::IKSolverArm::Read() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverArm::Read");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Read", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverArm.Write
  void RootMotion::FinalIK::IKSolverArm::Write() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverArm::Write");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Write", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverArm.IsValid
  bool RootMotion::FinalIK::IKSolverArm::IsValid(ByRef<::StringW> message) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverArm::IsValid");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "IsValid", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(message)})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method, byref(message));
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverArm.GetPoints
  ::ArrayW<::RootMotion::FinalIK::IKSolver::Point*> RootMotion::FinalIK::IKSolverArm::GetPoints() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverArm::GetPoints");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetPoints", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::ArrayW<::RootMotion::FinalIK::IKSolver::Point*>, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverArm.GetPoint
  ::RootMotion::FinalIK::IKSolver::Point* RootMotion::FinalIK::IKSolverArm::GetPoint(::UnityEngine::Transform* transform) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverArm::GetPoint");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetPoint", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(transform)})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKSolver::Point*, false>(this, ___internal__method, transform);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverArm.StoreDefaultLocalState
  void RootMotion::FinalIK::IKSolverArm::StoreDefaultLocalState() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverArm::StoreDefaultLocalState");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "StoreDefaultLocalState", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverArm.FixTransforms
  void RootMotion::FinalIK::IKSolverArm::FixTransforms() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverArm::FixTransforms");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "FixTransforms", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverArm.OnInitiate
  void RootMotion::FinalIK::IKSolverArm::OnInitiate() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverArm::OnInitiate");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnInitiate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverArm.OnUpdate
  void RootMotion::FinalIK::IKSolverArm::OnUpdate() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverArm::OnUpdate");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnUpdate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.IKSolverCCD
  #include "RootMotion/FinalIK/IKSolverCCD.hpp"
  // Including type: UnityEngine.Vector3
  #include "UnityEngine/Vector3.hpp"
  // Including type: RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.IterationDelegate
  #include "RootMotion/FinalIK/IKSolver_IterationDelegate.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.IterationDelegate OnPreIteration
  ::RootMotion::FinalIK::IKSolver::IterationDelegate*& RootMotion::FinalIK::IKSolverCCD::dyn_OnPreIteration() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverCCD::dyn_OnPreIteration");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "OnPreIteration"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IKSolver::IterationDelegate**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverCCD.FadeOutBoneWeights
  void RootMotion::FinalIK::IKSolverCCD::FadeOutBoneWeights() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverCCD::FadeOutBoneWeights");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "FadeOutBoneWeights", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverCCD.Solve
  void RootMotion::FinalIK::IKSolverCCD::Solve(::UnityEngine::Vector3 targetPosition) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverCCD::Solve");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Solve", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(targetPosition)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, targetPosition);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverCCD.OnInitiate
  void RootMotion::FinalIK::IKSolverCCD::OnInitiate() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverCCD::OnInitiate");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnInitiate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverCCD.OnUpdate
  void RootMotion::FinalIK::IKSolverCCD::OnUpdate() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverCCD::OnUpdate");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnUpdate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.IKSolverFABRIK
  #include "RootMotion/FinalIK/IKSolverFABRIK.hpp"
  // Including type: UnityEngine.Quaternion
  #include "UnityEngine/Quaternion.hpp"
  // Including type: RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.IterationDelegate
  #include "RootMotion/FinalIK/IKSolver_IterationDelegate.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.IterationDelegate OnPreIteration
  ::RootMotion::FinalIK::IKSolver::IterationDelegate*& RootMotion::FinalIK::IKSolverFABRIK::dyn_OnPreIteration() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIK::dyn_OnPreIteration");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "OnPreIteration"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IKSolver::IterationDelegate**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean[] limitedBones
  ::ArrayW<bool>& RootMotion::FinalIK::IKSolverFABRIK::dyn_limitedBones() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIK::dyn_limitedBones");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "limitedBones"))->offset;
    return *reinterpret_cast<::ArrayW<bool>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3[] solverLocalPositions
  ::ArrayW<::UnityEngine::Vector3>& RootMotion::FinalIK::IKSolverFABRIK::dyn_solverLocalPositions() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIK::dyn_solverLocalPositions");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "solverLocalPositions"))->offset;
    return *reinterpret_cast<::ArrayW<::UnityEngine::Vector3>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFABRIK.SolveForward
  void RootMotion::FinalIK::IKSolverFABRIK::SolveForward(::UnityEngine::Vector3 position) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIK::SolveForward");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SolveForward", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(position)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, position);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFABRIK.SolveBackward
  void RootMotion::FinalIK::IKSolverFABRIK::SolveBackward(::UnityEngine::Vector3 position) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIK::SolveBackward");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SolveBackward", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(position)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, position);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFABRIK.SolveJoint
  ::UnityEngine::Vector3 RootMotion::FinalIK::IKSolverFABRIK::SolveJoint(::UnityEngine::Vector3 pos1, ::UnityEngine::Vector3 pos2, float length) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIK::SolveJoint");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SolveJoint", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(pos1), ::il2cpp_utils::ExtractType(pos2), ::il2cpp_utils::ExtractType(length)})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method, pos1, pos2, length);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFABRIK.OnPreSolve
  void RootMotion::FinalIK::IKSolverFABRIK::OnPreSolve() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIK::OnPreSolve");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnPreSolve", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFABRIK.OnPostSolve
  void RootMotion::FinalIK::IKSolverFABRIK::OnPostSolve() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIK::OnPostSolve");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnPostSolve", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFABRIK.Solve
  void RootMotion::FinalIK::IKSolverFABRIK::Solve(::UnityEngine::Vector3 targetPosition) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIK::Solve");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Solve", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(targetPosition)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, targetPosition);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFABRIK.ForwardReach
  void RootMotion::FinalIK::IKSolverFABRIK::ForwardReach(::UnityEngine::Vector3 position) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIK::ForwardReach");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "ForwardReach", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(position)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, position);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFABRIK.SolverMove
  void RootMotion::FinalIK::IKSolverFABRIK::SolverMove(int index, ::UnityEngine::Vector3 offset) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIK::SolverMove");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SolverMove", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(index), ::il2cpp_utils::ExtractType(offset)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, index, offset);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFABRIK.SolverRotate
  void RootMotion::FinalIK::IKSolverFABRIK::SolverRotate(int index, ::UnityEngine::Quaternion rotation, bool recursive) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIK::SolverRotate");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SolverRotate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(index), ::il2cpp_utils::ExtractType(rotation), ::il2cpp_utils::ExtractType(recursive)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, index, rotation, recursive);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFABRIK.SolverRotateChildren
  void RootMotion::FinalIK::IKSolverFABRIK::SolverRotateChildren(int index, ::UnityEngine::Quaternion rotation) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIK::SolverRotateChildren");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SolverRotateChildren", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(index), ::il2cpp_utils::ExtractType(rotation)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, index, rotation);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFABRIK.SolverMoveChildrenAroundPoint
  void RootMotion::FinalIK::IKSolverFABRIK::SolverMoveChildrenAroundPoint(int index, ::UnityEngine::Quaternion rotation) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIK::SolverMoveChildrenAroundPoint");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SolverMoveChildrenAroundPoint", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(index), ::il2cpp_utils::ExtractType(rotation)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, index, rotation);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFABRIK.GetParentSolverRotation
  ::UnityEngine::Quaternion RootMotion::FinalIK::IKSolverFABRIK::GetParentSolverRotation(int index) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIK::GetParentSolverRotation");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetParentSolverRotation", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(index)})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Quaternion, false>(this, ___internal__method, index);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFABRIK.GetParentSolverPosition
  ::UnityEngine::Vector3 RootMotion::FinalIK::IKSolverFABRIK::GetParentSolverPosition(int index) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIK::GetParentSolverPosition");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetParentSolverPosition", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(index)})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method, index);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFABRIK.GetLimitedRotation
  ::UnityEngine::Quaternion RootMotion::FinalIK::IKSolverFABRIK::GetLimitedRotation(int index, ::UnityEngine::Quaternion q, ByRef<bool> changed) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIK::GetLimitedRotation");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetLimitedRotation", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(index), ::il2cpp_utils::ExtractType(q), ::il2cpp_utils::ExtractIndependentType<bool&>()})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Quaternion, false>(this, ___internal__method, index, q, byref(changed));
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFABRIK.LimitForward
  void RootMotion::FinalIK::IKSolverFABRIK::LimitForward(int rotateBone, int limitBone) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIK::LimitForward");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "LimitForward", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(rotateBone), ::il2cpp_utils::ExtractType(limitBone)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, rotateBone, limitBone);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFABRIK.BackwardReach
  void RootMotion::FinalIK::IKSolverFABRIK::BackwardReach(::UnityEngine::Vector3 position) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIK::BackwardReach");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "BackwardReach", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(position)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, position);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFABRIK.BackwardReachUnlimited
  void RootMotion::FinalIK::IKSolverFABRIK::BackwardReachUnlimited(::UnityEngine::Vector3 position) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIK::BackwardReachUnlimited");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "BackwardReachUnlimited", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(position)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, position);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFABRIK.BackwardReachLimited
  void RootMotion::FinalIK::IKSolverFABRIK::BackwardReachLimited(::UnityEngine::Vector3 position) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIK::BackwardReachLimited");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "BackwardReachLimited", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(position)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, position);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFABRIK.MapToSolverPositions
  void RootMotion::FinalIK::IKSolverFABRIK::MapToSolverPositions() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIK::MapToSolverPositions");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "MapToSolverPositions", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFABRIK.MapToSolverPositionsLimited
  void RootMotion::FinalIK::IKSolverFABRIK::MapToSolverPositionsLimited() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIK::MapToSolverPositionsLimited");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "MapToSolverPositionsLimited", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFABRIK.get_boneLengthCanBeZero
  bool RootMotion::FinalIK::IKSolverFABRIK::get_boneLengthCanBeZero() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIK::get_boneLengthCanBeZero");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_boneLengthCanBeZero", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFABRIK.GetIKPosition
  ::UnityEngine::Vector3 RootMotion::FinalIK::IKSolverFABRIK::GetIKPosition() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIK::GetIKPosition");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetIKPosition", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFABRIK.OnInitiate
  void RootMotion::FinalIK::IKSolverFABRIK::OnInitiate() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIK::OnInitiate");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnInitiate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFABRIK.OnUpdate
  void RootMotion::FinalIK::IKSolverFABRIK::OnUpdate() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIK::OnUpdate");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnUpdate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.IKSolverFABRIKRoot
  #include "RootMotion/FinalIK/IKSolverFABRIKRoot.hpp"
  // Including type: RootMotion.FinalIK.FABRIKChain
  #include "RootMotion/FinalIK/FABRIKChain.hpp"
  // Including type: UnityEngine.Transform
  #include "UnityEngine/Transform.hpp"
  // Including type: RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.Point
  #include "RootMotion/FinalIK/IKSolver_Point.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public System.Int32 iterations
  int& RootMotion::FinalIK::IKSolverFABRIKRoot::dyn_iterations() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIKRoot::dyn_iterations");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "iterations"))->offset;
    return *reinterpret_cast<int*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single rootPin
  float& RootMotion::FinalIK::IKSolverFABRIKRoot::dyn_rootPin() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIKRoot::dyn_rootPin");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "rootPin"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.FABRIKChain[] chains
  ::ArrayW<::RootMotion::FinalIK::FABRIKChain*>& RootMotion::FinalIK::IKSolverFABRIKRoot::dyn_chains() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIKRoot::dyn_chains");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "chains"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::FABRIKChain*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean zeroWeightApplied
  bool& RootMotion::FinalIK::IKSolverFABRIKRoot::dyn_zeroWeightApplied() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIKRoot::dyn_zeroWeightApplied");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "zeroWeightApplied"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean[] isRoot
  ::ArrayW<bool>& RootMotion::FinalIK::IKSolverFABRIKRoot::dyn_isRoot() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIKRoot::dyn_isRoot");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "isRoot"))->offset;
    return *reinterpret_cast<::ArrayW<bool>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 rootDefaultPosition
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverFABRIKRoot::dyn_rootDefaultPosition() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIKRoot::dyn_rootDefaultPosition");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "rootDefaultPosition"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFABRIKRoot.IsRoot
  bool RootMotion::FinalIK::IKSolverFABRIKRoot::IsRoot(int index) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIKRoot::IsRoot");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "IsRoot", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(index)})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method, index);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFABRIKRoot.AddPointsToArray
  void RootMotion::FinalIK::IKSolverFABRIKRoot::AddPointsToArray(ByRef<::ArrayW<::RootMotion::FinalIK::IKSolver::Point*>> array, ::RootMotion::FinalIK::FABRIKChain* chain) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIKRoot::AddPointsToArray");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "AddPointsToArray", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(array), ::il2cpp_utils::ExtractType(chain)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, byref(array), chain);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFABRIKRoot.GetCentroid
  ::UnityEngine::Vector3 RootMotion::FinalIK::IKSolverFABRIKRoot::GetCentroid() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIKRoot::GetCentroid");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetCentroid", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFABRIKRoot.IsValid
  bool RootMotion::FinalIK::IKSolverFABRIKRoot::IsValid(ByRef<::StringW> message) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIKRoot::IsValid");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "IsValid", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(message)})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method, byref(message));
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFABRIKRoot.StoreDefaultLocalState
  void RootMotion::FinalIK::IKSolverFABRIKRoot::StoreDefaultLocalState() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIKRoot::StoreDefaultLocalState");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "StoreDefaultLocalState", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFABRIKRoot.FixTransforms
  void RootMotion::FinalIK::IKSolverFABRIKRoot::FixTransforms() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIKRoot::FixTransforms");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "FixTransforms", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFABRIKRoot.OnInitiate
  void RootMotion::FinalIK::IKSolverFABRIKRoot::OnInitiate() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIKRoot::OnInitiate");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnInitiate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFABRIKRoot.OnUpdate
  void RootMotion::FinalIK::IKSolverFABRIKRoot::OnUpdate() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIKRoot::OnUpdate");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnUpdate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFABRIKRoot.GetPoints
  ::ArrayW<::RootMotion::FinalIK::IKSolver::Point*> RootMotion::FinalIK::IKSolverFABRIKRoot::GetPoints() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIKRoot::GetPoints");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetPoints", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::ArrayW<::RootMotion::FinalIK::IKSolver::Point*>, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFABRIKRoot.GetPoint
  ::RootMotion::FinalIK::IKSolver::Point* RootMotion::FinalIK::IKSolverFABRIKRoot::GetPoint(::UnityEngine::Transform* transform) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFABRIKRoot::GetPoint");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetPoint", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(transform)})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKSolver::Point*, false>(this, ___internal__method, transform);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.IKSolverFullBody
  #include "RootMotion/FinalIK/IKSolverFullBody.hpp"
  // Including type: RootMotion.FinalIK.FBIKChain
  #include "RootMotion/FinalIK/FBIKChain.hpp"
  // Including type: RootMotion.FinalIK.IKEffector
  #include "RootMotion/FinalIK/IKEffector.hpp"
  // Including type: RootMotion.FinalIK.IKMappingSpine
  #include "RootMotion/FinalIK/IKMappingSpine.hpp"
  // Including type: RootMotion.FinalIK.IKMappingBone
  #include "RootMotion/FinalIK/IKMappingBone.hpp"
  // Including type: RootMotion.FinalIK.IKMappingLimb
  #include "RootMotion/FinalIK/IKMappingLimb.hpp"
  // Including type: UnityEngine.Transform
  #include "UnityEngine/Transform.hpp"
  // Including type: RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.UpdateDelegate
  #include "RootMotion/FinalIK/IKSolver_UpdateDelegate.hpp"
  // Including type: RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.IterationDelegate
  #include "RootMotion/FinalIK/IKSolver_IterationDelegate.hpp"
  // Including type: RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.Node
  #include "RootMotion/FinalIK/IKSolver_Node.hpp"
  // Including type: RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.Point
  #include "RootMotion/FinalIK/IKSolver_Point.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public System.Int32 iterations
  int& RootMotion::FinalIK::IKSolverFullBody::dyn_iterations() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBody::dyn_iterations");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "iterations"))->offset;
    return *reinterpret_cast<int*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.FBIKChain[] chain
  ::ArrayW<::RootMotion::FinalIK::FBIKChain*>& RootMotion::FinalIK::IKSolverFullBody::dyn_chain() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBody::dyn_chain");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "chain"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::FBIKChain*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKEffector[] effectors
  ::ArrayW<::RootMotion::FinalIK::IKEffector*>& RootMotion::FinalIK::IKSolverFullBody::dyn_effectors() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBody::dyn_effectors");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "effectors"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::IKEffector*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKMappingSpine spineMapping
  ::RootMotion::FinalIK::IKMappingSpine*& RootMotion::FinalIK::IKSolverFullBody::dyn_spineMapping() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBody::dyn_spineMapping");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "spineMapping"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IKMappingSpine**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKMappingBone[] boneMappings
  ::ArrayW<::RootMotion::FinalIK::IKMappingBone*>& RootMotion::FinalIK::IKSolverFullBody::dyn_boneMappings() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBody::dyn_boneMappings");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "boneMappings"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::IKMappingBone*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKMappingLimb[] limbMappings
  ::ArrayW<::RootMotion::FinalIK::IKMappingLimb*>& RootMotion::FinalIK::IKSolverFullBody::dyn_limbMappings() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBody::dyn_limbMappings");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "limbMappings"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::IKMappingLimb*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Boolean FABRIKPass
  bool& RootMotion::FinalIK::IKSolverFullBody::dyn_FABRIKPass() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBody::dyn_FABRIKPass");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "FABRIKPass"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.UpdateDelegate OnPreRead
  ::RootMotion::FinalIK::IKSolver::UpdateDelegate*& RootMotion::FinalIK::IKSolverFullBody::dyn_OnPreRead() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBody::dyn_OnPreRead");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "OnPreRead"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IKSolver::UpdateDelegate**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.UpdateDelegate OnPreSolve
  ::RootMotion::FinalIK::IKSolver::UpdateDelegate*& RootMotion::FinalIK::IKSolverFullBody::dyn_OnPreSolve() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBody::dyn_OnPreSolve");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "OnPreSolve"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IKSolver::UpdateDelegate**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.IterationDelegate OnPreIteration
  ::RootMotion::FinalIK::IKSolver::IterationDelegate*& RootMotion::FinalIK::IKSolverFullBody::dyn_OnPreIteration() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBody::dyn_OnPreIteration");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "OnPreIteration"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IKSolver::IterationDelegate**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.IterationDelegate OnPostIteration
  ::RootMotion::FinalIK::IKSolver::IterationDelegate*& RootMotion::FinalIK::IKSolverFullBody::dyn_OnPostIteration() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBody::dyn_OnPostIteration");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "OnPostIteration"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IKSolver::IterationDelegate**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.UpdateDelegate OnPreBend
  ::RootMotion::FinalIK::IKSolver::UpdateDelegate*& RootMotion::FinalIK::IKSolverFullBody::dyn_OnPreBend() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBody::dyn_OnPreBend");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "OnPreBend"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IKSolver::UpdateDelegate**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.UpdateDelegate OnPostSolve
  ::RootMotion::FinalIK::IKSolver::UpdateDelegate*& RootMotion::FinalIK::IKSolverFullBody::dyn_OnPostSolve() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBody::dyn_OnPostSolve");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "OnPostSolve"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IKSolver::UpdateDelegate**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.UpdateDelegate OnStoreDefaultLocalState
  ::RootMotion::FinalIK::IKSolver::UpdateDelegate*& RootMotion::FinalIK::IKSolverFullBody::dyn_OnStoreDefaultLocalState() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBody::dyn_OnStoreDefaultLocalState");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "OnStoreDefaultLocalState"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IKSolver::UpdateDelegate**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.UpdateDelegate OnFixTransforms
  ::RootMotion::FinalIK::IKSolver::UpdateDelegate*& RootMotion::FinalIK::IKSolverFullBody::dyn_OnFixTransforms() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBody::dyn_OnFixTransforms");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "OnFixTransforms"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IKSolver::UpdateDelegate**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBody.GetEffector
  ::RootMotion::FinalIK::IKEffector* RootMotion::FinalIK::IKSolverFullBody::GetEffector(::UnityEngine::Transform* t) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBody::GetEffector");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetEffector", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(t)})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKEffector*, false>(this, ___internal__method, t);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBody.GetChain
  ::RootMotion::FinalIK::FBIKChain* RootMotion::FinalIK::IKSolverFullBody::GetChain(::UnityEngine::Transform* transform) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBody::GetChain");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetChain", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(transform)})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::FBIKChain*, false>(this, ___internal__method, transform);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBody.GetChainIndex
  int RootMotion::FinalIK::IKSolverFullBody::GetChainIndex(::UnityEngine::Transform* transform) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBody::GetChainIndex");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetChainIndex", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(transform)})));
    return ::il2cpp_utils::RunMethodRethrow<int, false>(this, ___internal__method, transform);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBody.GetNode
  ::RootMotion::FinalIK::IKSolver::Node* RootMotion::FinalIK::IKSolverFullBody::GetNode(int chainIndex, int nodeIndex) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBody::GetNode");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetNode", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(chainIndex), ::il2cpp_utils::ExtractType(nodeIndex)})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKSolver::Node*, false>(this, ___internal__method, chainIndex, nodeIndex);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBody.GetChainAndNodeIndexes
  void RootMotion::FinalIK::IKSolverFullBody::GetChainAndNodeIndexes(::UnityEngine::Transform* transform, ByRef<int> chainIndex, ByRef<int> nodeIndex) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBody::GetChainAndNodeIndexes");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetChainAndNodeIndexes", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(transform), ::il2cpp_utils::ExtractIndependentType<int&>(), ::il2cpp_utils::ExtractIndependentType<int&>()})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, transform, byref(chainIndex), byref(nodeIndex));
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBody.ReadPose
  void RootMotion::FinalIK::IKSolverFullBody::ReadPose() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBody::ReadPose");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "ReadPose", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBody.Solve
  void RootMotion::FinalIK::IKSolverFullBody::Solve() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBody::Solve");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Solve", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBody.ApplyBendConstraints
  void RootMotion::FinalIK::IKSolverFullBody::ApplyBendConstraints() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBody::ApplyBendConstraints");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "ApplyBendConstraints", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBody.WritePose
  void RootMotion::FinalIK::IKSolverFullBody::WritePose() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBody::WritePose");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "WritePose", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBody.GetPoints
  ::ArrayW<::RootMotion::FinalIK::IKSolver::Point*> RootMotion::FinalIK::IKSolverFullBody::GetPoints() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBody::GetPoints");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetPoints", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::ArrayW<::RootMotion::FinalIK::IKSolver::Point*>, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBody.GetPoint
  ::RootMotion::FinalIK::IKSolver::Point* RootMotion::FinalIK::IKSolverFullBody::GetPoint(::UnityEngine::Transform* transform) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBody::GetPoint");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetPoint", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(transform)})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKSolver::Point*, false>(this, ___internal__method, transform);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBody.IsValid
  bool RootMotion::FinalIK::IKSolverFullBody::IsValid(ByRef<::StringW> message) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBody::IsValid");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "IsValid", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(message)})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method, byref(message));
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBody.StoreDefaultLocalState
  void RootMotion::FinalIK::IKSolverFullBody::StoreDefaultLocalState() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBody::StoreDefaultLocalState");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "StoreDefaultLocalState", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBody.FixTransforms
  void RootMotion::FinalIK::IKSolverFullBody::FixTransforms() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBody::FixTransforms");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "FixTransforms", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBody.OnInitiate
  void RootMotion::FinalIK::IKSolverFullBody::OnInitiate() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBody::OnInitiate");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnInitiate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBody.OnUpdate
  void RootMotion::FinalIK::IKSolverFullBody::OnUpdate() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBody::OnUpdate");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnUpdate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.FullBodyBipedEffector
  #include "RootMotion/FinalIK/FullBodyBipedEffector.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.FullBodyBipedEffector Body
  ::RootMotion::FinalIK::FullBodyBipedEffector RootMotion::FinalIK::FullBodyBipedEffector::_get_Body() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::FullBodyBipedEffector::_get_Body");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::FullBodyBipedEffector>("RootMotion.FinalIK", "FullBodyBipedEffector", "Body"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.FullBodyBipedEffector Body
  void RootMotion::FinalIK::FullBodyBipedEffector::_set_Body(::RootMotion::FinalIK::FullBodyBipedEffector value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::FullBodyBipedEffector::_set_Body");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "FullBodyBipedEffector", "Body", value));
  }
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.FullBodyBipedEffector LeftShoulder
  ::RootMotion::FinalIK::FullBodyBipedEffector RootMotion::FinalIK::FullBodyBipedEffector::_get_LeftShoulder() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::FullBodyBipedEffector::_get_LeftShoulder");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::FullBodyBipedEffector>("RootMotion.FinalIK", "FullBodyBipedEffector", "LeftShoulder"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.FullBodyBipedEffector LeftShoulder
  void RootMotion::FinalIK::FullBodyBipedEffector::_set_LeftShoulder(::RootMotion::FinalIK::FullBodyBipedEffector value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::FullBodyBipedEffector::_set_LeftShoulder");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "FullBodyBipedEffector", "LeftShoulder", value));
  }
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.FullBodyBipedEffector RightShoulder
  ::RootMotion::FinalIK::FullBodyBipedEffector RootMotion::FinalIK::FullBodyBipedEffector::_get_RightShoulder() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::FullBodyBipedEffector::_get_RightShoulder");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::FullBodyBipedEffector>("RootMotion.FinalIK", "FullBodyBipedEffector", "RightShoulder"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.FullBodyBipedEffector RightShoulder
  void RootMotion::FinalIK::FullBodyBipedEffector::_set_RightShoulder(::RootMotion::FinalIK::FullBodyBipedEffector value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::FullBodyBipedEffector::_set_RightShoulder");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "FullBodyBipedEffector", "RightShoulder", value));
  }
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.FullBodyBipedEffector LeftThigh
  ::RootMotion::FinalIK::FullBodyBipedEffector RootMotion::FinalIK::FullBodyBipedEffector::_get_LeftThigh() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::FullBodyBipedEffector::_get_LeftThigh");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::FullBodyBipedEffector>("RootMotion.FinalIK", "FullBodyBipedEffector", "LeftThigh"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.FullBodyBipedEffector LeftThigh
  void RootMotion::FinalIK::FullBodyBipedEffector::_set_LeftThigh(::RootMotion::FinalIK::FullBodyBipedEffector value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::FullBodyBipedEffector::_set_LeftThigh");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "FullBodyBipedEffector", "LeftThigh", value));
  }
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.FullBodyBipedEffector RightThigh
  ::RootMotion::FinalIK::FullBodyBipedEffector RootMotion::FinalIK::FullBodyBipedEffector::_get_RightThigh() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::FullBodyBipedEffector::_get_RightThigh");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::FullBodyBipedEffector>("RootMotion.FinalIK", "FullBodyBipedEffector", "RightThigh"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.FullBodyBipedEffector RightThigh
  void RootMotion::FinalIK::FullBodyBipedEffector::_set_RightThigh(::RootMotion::FinalIK::FullBodyBipedEffector value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::FullBodyBipedEffector::_set_RightThigh");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "FullBodyBipedEffector", "RightThigh", value));
  }
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.FullBodyBipedEffector LeftHand
  ::RootMotion::FinalIK::FullBodyBipedEffector RootMotion::FinalIK::FullBodyBipedEffector::_get_LeftHand() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::FullBodyBipedEffector::_get_LeftHand");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::FullBodyBipedEffector>("RootMotion.FinalIK", "FullBodyBipedEffector", "LeftHand"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.FullBodyBipedEffector LeftHand
  void RootMotion::FinalIK::FullBodyBipedEffector::_set_LeftHand(::RootMotion::FinalIK::FullBodyBipedEffector value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::FullBodyBipedEffector::_set_LeftHand");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "FullBodyBipedEffector", "LeftHand", value));
  }
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.FullBodyBipedEffector RightHand
  ::RootMotion::FinalIK::FullBodyBipedEffector RootMotion::FinalIK::FullBodyBipedEffector::_get_RightHand() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::FullBodyBipedEffector::_get_RightHand");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::FullBodyBipedEffector>("RootMotion.FinalIK", "FullBodyBipedEffector", "RightHand"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.FullBodyBipedEffector RightHand
  void RootMotion::FinalIK::FullBodyBipedEffector::_set_RightHand(::RootMotion::FinalIK::FullBodyBipedEffector value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::FullBodyBipedEffector::_set_RightHand");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "FullBodyBipedEffector", "RightHand", value));
  }
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.FullBodyBipedEffector LeftFoot
  ::RootMotion::FinalIK::FullBodyBipedEffector RootMotion::FinalIK::FullBodyBipedEffector::_get_LeftFoot() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::FullBodyBipedEffector::_get_LeftFoot");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::FullBodyBipedEffector>("RootMotion.FinalIK", "FullBodyBipedEffector", "LeftFoot"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.FullBodyBipedEffector LeftFoot
  void RootMotion::FinalIK::FullBodyBipedEffector::_set_LeftFoot(::RootMotion::FinalIK::FullBodyBipedEffector value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::FullBodyBipedEffector::_set_LeftFoot");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "FullBodyBipedEffector", "LeftFoot", value));
  }
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.FullBodyBipedEffector RightFoot
  ::RootMotion::FinalIK::FullBodyBipedEffector RootMotion::FinalIK::FullBodyBipedEffector::_get_RightFoot() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::FullBodyBipedEffector::_get_RightFoot");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::FullBodyBipedEffector>("RootMotion.FinalIK", "FullBodyBipedEffector", "RightFoot"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.FullBodyBipedEffector RightFoot
  void RootMotion::FinalIK::FullBodyBipedEffector::_set_RightFoot(::RootMotion::FinalIK::FullBodyBipedEffector value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::FullBodyBipedEffector::_set_RightFoot");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "FullBodyBipedEffector", "RightFoot", value));
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Int32 value__
  int& RootMotion::FinalIK::FullBodyBipedEffector::dyn_value__() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::FullBodyBipedEffector::dyn_value__");
    auto ___internal__instance = *this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "value__"))->offset;
    return *reinterpret_cast<int*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.FullBodyBipedChain
  #include "RootMotion/FinalIK/FullBodyBipedChain.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.FullBodyBipedChain LeftArm
  ::RootMotion::FinalIK::FullBodyBipedChain RootMotion::FinalIK::FullBodyBipedChain::_get_LeftArm() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::FullBodyBipedChain::_get_LeftArm");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::FullBodyBipedChain>("RootMotion.FinalIK", "FullBodyBipedChain", "LeftArm"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.FullBodyBipedChain LeftArm
  void RootMotion::FinalIK::FullBodyBipedChain::_set_LeftArm(::RootMotion::FinalIK::FullBodyBipedChain value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::FullBodyBipedChain::_set_LeftArm");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "FullBodyBipedChain", "LeftArm", value));
  }
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.FullBodyBipedChain RightArm
  ::RootMotion::FinalIK::FullBodyBipedChain RootMotion::FinalIK::FullBodyBipedChain::_get_RightArm() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::FullBodyBipedChain::_get_RightArm");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::FullBodyBipedChain>("RootMotion.FinalIK", "FullBodyBipedChain", "RightArm"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.FullBodyBipedChain RightArm
  void RootMotion::FinalIK::FullBodyBipedChain::_set_RightArm(::RootMotion::FinalIK::FullBodyBipedChain value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::FullBodyBipedChain::_set_RightArm");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "FullBodyBipedChain", "RightArm", value));
  }
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.FullBodyBipedChain LeftLeg
  ::RootMotion::FinalIK::FullBodyBipedChain RootMotion::FinalIK::FullBodyBipedChain::_get_LeftLeg() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::FullBodyBipedChain::_get_LeftLeg");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::FullBodyBipedChain>("RootMotion.FinalIK", "FullBodyBipedChain", "LeftLeg"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.FullBodyBipedChain LeftLeg
  void RootMotion::FinalIK::FullBodyBipedChain::_set_LeftLeg(::RootMotion::FinalIK::FullBodyBipedChain value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::FullBodyBipedChain::_set_LeftLeg");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "FullBodyBipedChain", "LeftLeg", value));
  }
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.FullBodyBipedChain RightLeg
  ::RootMotion::FinalIK::FullBodyBipedChain RootMotion::FinalIK::FullBodyBipedChain::_get_RightLeg() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::FullBodyBipedChain::_get_RightLeg");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::FullBodyBipedChain>("RootMotion.FinalIK", "FullBodyBipedChain", "RightLeg"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.FullBodyBipedChain RightLeg
  void RootMotion::FinalIK::FullBodyBipedChain::_set_RightLeg(::RootMotion::FinalIK::FullBodyBipedChain value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::FullBodyBipedChain::_set_RightLeg");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "FullBodyBipedChain", "RightLeg", value));
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Int32 value__
  int& RootMotion::FinalIK::FullBodyBipedChain::dyn_value__() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::FullBodyBipedChain::dyn_value__");
    auto ___internal__instance = *this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "value__"))->offset;
    return *reinterpret_cast<int*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.IKSolverFullBodyBiped
  #include "RootMotion/FinalIK/IKSolverFullBodyBiped.hpp"
  // Including type: UnityEngine.Transform
  #include "UnityEngine/Transform.hpp"
  // Including type: RootMotion.FinalIK.IKEffector
  #include "RootMotion/FinalIK/IKEffector.hpp"
  // Including type: RootMotion.FinalIK.FBIKChain
  #include "RootMotion/FinalIK/FBIKChain.hpp"
  // Including type: RootMotion.FinalIK.IKMappingLimb
  #include "RootMotion/FinalIK/IKMappingLimb.hpp"
  // Including type: RootMotion.FinalIK.IKMappingBone
  #include "RootMotion/FinalIK/IKMappingBone.hpp"
  // Including type: RootMotion.FinalIK.FullBodyBipedChain
  #include "RootMotion/FinalIK/FullBodyBipedChain.hpp"
  // Including type: RootMotion.FinalIK.FullBodyBipedEffector
  #include "RootMotion/FinalIK/FullBodyBipedEffector.hpp"
  // Including type: RootMotion.FinalIK.IKMappingSpine
  #include "RootMotion/FinalIK/IKMappingSpine.hpp"
  // Including type: RootMotion.FinalIK.IKConstraintBend
  #include "RootMotion/FinalIK/IKConstraintBend.hpp"
  // Including type: RootMotion.BipedReferences
  #include "RootMotion/BipedReferences.hpp"
  // Including type: RootMotion.BipedLimbOrientations/RootMotion.LimbOrientation
  #include "RootMotion/BipedLimbOrientations_LimbOrientation.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Transform rootNode
  ::UnityEngine::Transform*& RootMotion::FinalIK::IKSolverFullBodyBiped::dyn_rootNode() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::dyn_rootNode");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "rootNode"))->offset;
    return *reinterpret_cast<::UnityEngine::Transform**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single spineStiffness
  float& RootMotion::FinalIK::IKSolverFullBodyBiped::dyn_spineStiffness() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::dyn_spineStiffness");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "spineStiffness"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single pullBodyVertical
  float& RootMotion::FinalIK::IKSolverFullBodyBiped::dyn_pullBodyVertical() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::dyn_pullBodyVertical");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "pullBodyVertical"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single pullBodyHorizontal
  float& RootMotion::FinalIK::IKSolverFullBodyBiped::dyn_pullBodyHorizontal() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::dyn_pullBodyHorizontal");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "pullBodyHorizontal"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 <pullBodyOffset>k__BackingField
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverFullBodyBiped::dyn_$pullBodyOffset$k__BackingField() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::dyn_$pullBodyOffset$k__BackingField");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<pullBodyOffset>k__BackingField"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 offset
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverFullBodyBiped::dyn_offset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::dyn_offset");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "offset"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.get_bodyEffector
  ::RootMotion::FinalIK::IKEffector* RootMotion::FinalIK::IKSolverFullBodyBiped::get_bodyEffector() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::get_bodyEffector");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_bodyEffector", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKEffector*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.get_leftShoulderEffector
  ::RootMotion::FinalIK::IKEffector* RootMotion::FinalIK::IKSolverFullBodyBiped::get_leftShoulderEffector() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::get_leftShoulderEffector");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_leftShoulderEffector", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKEffector*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.get_rightShoulderEffector
  ::RootMotion::FinalIK::IKEffector* RootMotion::FinalIK::IKSolverFullBodyBiped::get_rightShoulderEffector() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::get_rightShoulderEffector");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_rightShoulderEffector", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKEffector*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.get_leftThighEffector
  ::RootMotion::FinalIK::IKEffector* RootMotion::FinalIK::IKSolverFullBodyBiped::get_leftThighEffector() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::get_leftThighEffector");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_leftThighEffector", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKEffector*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.get_rightThighEffector
  ::RootMotion::FinalIK::IKEffector* RootMotion::FinalIK::IKSolverFullBodyBiped::get_rightThighEffector() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::get_rightThighEffector");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_rightThighEffector", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKEffector*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.get_leftHandEffector
  ::RootMotion::FinalIK::IKEffector* RootMotion::FinalIK::IKSolverFullBodyBiped::get_leftHandEffector() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::get_leftHandEffector");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_leftHandEffector", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKEffector*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.get_rightHandEffector
  ::RootMotion::FinalIK::IKEffector* RootMotion::FinalIK::IKSolverFullBodyBiped::get_rightHandEffector() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::get_rightHandEffector");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_rightHandEffector", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKEffector*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.get_leftFootEffector
  ::RootMotion::FinalIK::IKEffector* RootMotion::FinalIK::IKSolverFullBodyBiped::get_leftFootEffector() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::get_leftFootEffector");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_leftFootEffector", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKEffector*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.get_rightFootEffector
  ::RootMotion::FinalIK::IKEffector* RootMotion::FinalIK::IKSolverFullBodyBiped::get_rightFootEffector() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::get_rightFootEffector");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_rightFootEffector", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKEffector*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.get_leftArmChain
  ::RootMotion::FinalIK::FBIKChain* RootMotion::FinalIK::IKSolverFullBodyBiped::get_leftArmChain() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::get_leftArmChain");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_leftArmChain", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::FBIKChain*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.get_rightArmChain
  ::RootMotion::FinalIK::FBIKChain* RootMotion::FinalIK::IKSolverFullBodyBiped::get_rightArmChain() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::get_rightArmChain");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_rightArmChain", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::FBIKChain*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.get_leftLegChain
  ::RootMotion::FinalIK::FBIKChain* RootMotion::FinalIK::IKSolverFullBodyBiped::get_leftLegChain() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::get_leftLegChain");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_leftLegChain", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::FBIKChain*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.get_rightLegChain
  ::RootMotion::FinalIK::FBIKChain* RootMotion::FinalIK::IKSolverFullBodyBiped::get_rightLegChain() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::get_rightLegChain");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_rightLegChain", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::FBIKChain*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.get_leftArmMapping
  ::RootMotion::FinalIK::IKMappingLimb* RootMotion::FinalIK::IKSolverFullBodyBiped::get_leftArmMapping() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::get_leftArmMapping");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_leftArmMapping", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKMappingLimb*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.get_rightArmMapping
  ::RootMotion::FinalIK::IKMappingLimb* RootMotion::FinalIK::IKSolverFullBodyBiped::get_rightArmMapping() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::get_rightArmMapping");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_rightArmMapping", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKMappingLimb*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.get_leftLegMapping
  ::RootMotion::FinalIK::IKMappingLimb* RootMotion::FinalIK::IKSolverFullBodyBiped::get_leftLegMapping() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::get_leftLegMapping");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_leftLegMapping", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKMappingLimb*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.get_rightLegMapping
  ::RootMotion::FinalIK::IKMappingLimb* RootMotion::FinalIK::IKSolverFullBodyBiped::get_rightLegMapping() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::get_rightLegMapping");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_rightLegMapping", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKMappingLimb*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.get_headMapping
  ::RootMotion::FinalIK::IKMappingBone* RootMotion::FinalIK::IKSolverFullBodyBiped::get_headMapping() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::get_headMapping");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_headMapping", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKMappingBone*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.get_pullBodyOffset
  ::UnityEngine::Vector3 RootMotion::FinalIK::IKSolverFullBodyBiped::get_pullBodyOffset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::get_pullBodyOffset");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_pullBodyOffset", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.set_pullBodyOffset
  void RootMotion::FinalIK::IKSolverFullBodyBiped::set_pullBodyOffset(::UnityEngine::Vector3 value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::set_pullBodyOffset");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "set_pullBodyOffset", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(value)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, value);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.SetChainWeights
  void RootMotion::FinalIK::IKSolverFullBodyBiped::SetChainWeights(::RootMotion::FinalIK::FullBodyBipedChain c, float pull, float reach) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::SetChainWeights");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SetChainWeights", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(c), ::il2cpp_utils::ExtractType(pull), ::il2cpp_utils::ExtractType(reach)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, c, pull, reach);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.SetEffectorWeights
  void RootMotion::FinalIK::IKSolverFullBodyBiped::SetEffectorWeights(::RootMotion::FinalIK::FullBodyBipedEffector effector, float positionWeight, float rotationWeight) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::SetEffectorWeights");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SetEffectorWeights", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(effector), ::il2cpp_utils::ExtractType(positionWeight), ::il2cpp_utils::ExtractType(rotationWeight)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, effector, positionWeight, rotationWeight);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.GetChain
  ::RootMotion::FinalIK::FBIKChain* RootMotion::FinalIK::IKSolverFullBodyBiped::GetChain(::RootMotion::FinalIK::FullBodyBipedChain c) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::GetChain");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetChain", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(c)})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::FBIKChain*, false>(this, ___internal__method, c);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.GetChain
  ::RootMotion::FinalIK::FBIKChain* RootMotion::FinalIK::IKSolverFullBodyBiped::GetChain(::RootMotion::FinalIK::FullBodyBipedEffector effector) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::GetChain");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetChain", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(effector)})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::FBIKChain*, false>(this, ___internal__method, effector);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.GetEffector
  ::RootMotion::FinalIK::IKEffector* RootMotion::FinalIK::IKSolverFullBodyBiped::GetEffector(::RootMotion::FinalIK::FullBodyBipedEffector effector) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::GetEffector");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetEffector", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(effector)})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKEffector*, false>(this, ___internal__method, effector);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.GetEndEffector
  ::RootMotion::FinalIK::IKEffector* RootMotion::FinalIK::IKSolverFullBodyBiped::GetEndEffector(::RootMotion::FinalIK::FullBodyBipedChain c) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::GetEndEffector");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetEndEffector", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(c)})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKEffector*, false>(this, ___internal__method, c);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.GetLimbMapping
  ::RootMotion::FinalIK::IKMappingLimb* RootMotion::FinalIK::IKSolverFullBodyBiped::GetLimbMapping(::RootMotion::FinalIK::FullBodyBipedChain chain) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::GetLimbMapping");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetLimbMapping", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(chain)})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKMappingLimb*, false>(this, ___internal__method, chain);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.GetLimbMapping
  ::RootMotion::FinalIK::IKMappingLimb* RootMotion::FinalIK::IKSolverFullBodyBiped::GetLimbMapping(::RootMotion::FinalIK::FullBodyBipedEffector effector) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::GetLimbMapping");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetLimbMapping", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(effector)})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKMappingLimb*, false>(this, ___internal__method, effector);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.GetSpineMapping
  ::RootMotion::FinalIK::IKMappingSpine* RootMotion::FinalIK::IKSolverFullBodyBiped::GetSpineMapping() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::GetSpineMapping");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetSpineMapping", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKMappingSpine*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.GetHeadMapping
  ::RootMotion::FinalIK::IKMappingBone* RootMotion::FinalIK::IKSolverFullBodyBiped::GetHeadMapping() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::GetHeadMapping");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetHeadMapping", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKMappingBone*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.GetBendConstraint
  ::RootMotion::FinalIK::IKConstraintBend* RootMotion::FinalIK::IKSolverFullBodyBiped::GetBendConstraint(::RootMotion::FinalIK::FullBodyBipedChain limb) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::GetBendConstraint");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetBendConstraint", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(limb)})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKConstraintBend*, false>(this, ___internal__method, limb);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.SetToReferences
  void RootMotion::FinalIK::IKSolverFullBodyBiped::SetToReferences(::RootMotion::BipedReferences* references, ::UnityEngine::Transform* rootNode) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::SetToReferences");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SetToReferences", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(references), ::il2cpp_utils::ExtractType(rootNode)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, references, rootNode);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.DetectRootNodeBone
  ::UnityEngine::Transform* RootMotion::FinalIK::IKSolverFullBodyBiped::DetectRootNodeBone(::RootMotion::BipedReferences* references) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::DetectRootNodeBone");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod("RootMotion.FinalIK", "IKSolverFullBodyBiped", "DetectRootNodeBone", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(references)})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Transform*, false>(static_cast<Il2CppObject*>(nullptr), ___internal__method, references);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.SetLimbOrientations
  void RootMotion::FinalIK::IKSolverFullBodyBiped::SetLimbOrientations(::RootMotion::BipedLimbOrientations* o) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::SetLimbOrientations");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SetLimbOrientations", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(o)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, o);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.SetLimbOrientation
  void RootMotion::FinalIK::IKSolverFullBodyBiped::SetLimbOrientation(::RootMotion::FinalIK::FullBodyBipedChain chain, ::RootMotion::BipedLimbOrientations::LimbOrientation* limbOrientation) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::SetLimbOrientation");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SetLimbOrientation", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(chain), ::il2cpp_utils::ExtractType(limbOrientation)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, chain, limbOrientation);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.GetLeftClavicle
  ::UnityEngine::Transform* RootMotion::FinalIK::IKSolverFullBodyBiped::GetLeftClavicle(::RootMotion::BipedReferences* references) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::GetLeftClavicle");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod("RootMotion.FinalIK", "IKSolverFullBodyBiped", "GetLeftClavicle", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(references)})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Transform*, false>(static_cast<Il2CppObject*>(nullptr), ___internal__method, references);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.GetRightClavicle
  ::UnityEngine::Transform* RootMotion::FinalIK::IKSolverFullBodyBiped::GetRightClavicle(::RootMotion::BipedReferences* references) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::GetRightClavicle");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod("RootMotion.FinalIK", "IKSolverFullBodyBiped", "GetRightClavicle", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(references)})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Transform*, false>(static_cast<Il2CppObject*>(nullptr), ___internal__method, references);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.Contains
  bool RootMotion::FinalIK::IKSolverFullBodyBiped::Contains(::ArrayW<::UnityEngine::Transform*> array, ::UnityEngine::Transform* transform) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::Contains");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod("RootMotion.FinalIK", "IKSolverFullBodyBiped", "Contains", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(array), ::il2cpp_utils::ExtractType(transform)})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(static_cast<Il2CppObject*>(nullptr), ___internal__method, array, transform);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.PullBody
  void RootMotion::FinalIK::IKSolverFullBodyBiped::PullBody() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::PullBody");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "PullBody", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.GetBodyOffset
  ::UnityEngine::Vector3 RootMotion::FinalIK::IKSolverFullBodyBiped::GetBodyOffset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::GetBodyOffset");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetBodyOffset", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.GetHandBodyPull
  ::UnityEngine::Vector3 RootMotion::FinalIK::IKSolverFullBodyBiped::GetHandBodyPull(::RootMotion::FinalIK::IKEffector* effector, ::RootMotion::FinalIK::FBIKChain* arm, ::UnityEngine::Vector3 offset) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::GetHandBodyPull");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetHandBodyPull", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(effector), ::il2cpp_utils::ExtractType(arm), ::il2cpp_utils::ExtractType(offset)})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method, effector, arm, offset);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.IsValid
  bool RootMotion::FinalIK::IKSolverFullBodyBiped::IsValid(ByRef<::StringW> message) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::IsValid");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "IsValid", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(message)})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method, byref(message));
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.ReadPose
  void RootMotion::FinalIK::IKSolverFullBodyBiped::ReadPose() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::ReadPose");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "ReadPose", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.ApplyBendConstraints
  void RootMotion::FinalIK::IKSolverFullBodyBiped::ApplyBendConstraints() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::ApplyBendConstraints");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "ApplyBendConstraints", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverFullBodyBiped.WritePose
  void RootMotion::FinalIK::IKSolverFullBodyBiped::WritePose() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverFullBodyBiped::WritePose");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "WritePose", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.IKSolverHeuristic
  #include "RootMotion/FinalIK/IKSolverHeuristic.hpp"
  // Including type: UnityEngine.Transform
  #include "UnityEngine/Transform.hpp"
  // Including type: RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.Bone
  #include "RootMotion/FinalIK/IKSolver_Bone.hpp"
  // Including type: RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.Point
  #include "RootMotion/FinalIK/IKSolver_Point.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Transform target
  ::UnityEngine::Transform*& RootMotion::FinalIK::IKSolverHeuristic::dyn_target() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverHeuristic::dyn_target");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "target"))->offset;
    return *reinterpret_cast<::UnityEngine::Transform**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single tolerance
  float& RootMotion::FinalIK::IKSolverHeuristic::dyn_tolerance() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverHeuristic::dyn_tolerance");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "tolerance"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Int32 maxIterations
  int& RootMotion::FinalIK::IKSolverHeuristic::dyn_maxIterations() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverHeuristic::dyn_maxIterations");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "maxIterations"))->offset;
    return *reinterpret_cast<int*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Boolean useRotationLimits
  bool& RootMotion::FinalIK::IKSolverHeuristic::dyn_useRotationLimits() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverHeuristic::dyn_useRotationLimits");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "useRotationLimits"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Boolean XY
  bool& RootMotion::FinalIK::IKSolverHeuristic::dyn_XY() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverHeuristic::dyn_XY");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "XY"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.Bone[] bones
  ::ArrayW<::RootMotion::FinalIK::IKSolver::Bone*>& RootMotion::FinalIK::IKSolverHeuristic::dyn_bones() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverHeuristic::dyn_bones");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "bones"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::IKSolver::Bone*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: protected UnityEngine.Vector3 lastLocalDirection
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverHeuristic::dyn_lastLocalDirection() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverHeuristic::dyn_lastLocalDirection");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "lastLocalDirection"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: protected System.Single chainLength
  float& RootMotion::FinalIK::IKSolverHeuristic::dyn_chainLength() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverHeuristic::dyn_chainLength");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "chainLength"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverHeuristic.get_minBones
  int RootMotion::FinalIK::IKSolverHeuristic::get_minBones() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverHeuristic::get_minBones");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_minBones", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<int, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverHeuristic.get_boneLengthCanBeZero
  bool RootMotion::FinalIK::IKSolverHeuristic::get_boneLengthCanBeZero() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverHeuristic::get_boneLengthCanBeZero");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_boneLengthCanBeZero", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverHeuristic.get_allowCommonParent
  bool RootMotion::FinalIK::IKSolverHeuristic::get_allowCommonParent() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverHeuristic::get_allowCommonParent");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_allowCommonParent", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverHeuristic.get_localDirection
  ::UnityEngine::Vector3 RootMotion::FinalIK::IKSolverHeuristic::get_localDirection() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverHeuristic::get_localDirection");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_localDirection", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverHeuristic.get_positionOffset
  float RootMotion::FinalIK::IKSolverHeuristic::get_positionOffset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverHeuristic::get_positionOffset");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_positionOffset", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<float, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverHeuristic.SetChain
  bool RootMotion::FinalIK::IKSolverHeuristic::SetChain(::ArrayW<::UnityEngine::Transform*> hierarchy, ::UnityEngine::Transform* root) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverHeuristic::SetChain");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SetChain", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(hierarchy), ::il2cpp_utils::ExtractType(root)})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method, hierarchy, root);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverHeuristic.AddBone
  void RootMotion::FinalIK::IKSolverHeuristic::AddBone(::UnityEngine::Transform* bone) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverHeuristic::AddBone");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "AddBone", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(bone)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, bone);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverHeuristic.InitiateBones
  void RootMotion::FinalIK::IKSolverHeuristic::InitiateBones() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverHeuristic::InitiateBones");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "InitiateBones", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverHeuristic.GetSingularityOffset
  ::UnityEngine::Vector3 RootMotion::FinalIK::IKSolverHeuristic::GetSingularityOffset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverHeuristic::GetSingularityOffset");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetSingularityOffset", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverHeuristic.SingularityDetected
  bool RootMotion::FinalIK::IKSolverHeuristic::SingularityDetected() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverHeuristic::SingularityDetected");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SingularityDetected", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverHeuristic.StoreDefaultLocalState
  void RootMotion::FinalIK::IKSolverHeuristic::StoreDefaultLocalState() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverHeuristic::StoreDefaultLocalState");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "StoreDefaultLocalState", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverHeuristic.FixTransforms
  void RootMotion::FinalIK::IKSolverHeuristic::FixTransforms() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverHeuristic::FixTransforms");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "FixTransforms", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverHeuristic.IsValid
  bool RootMotion::FinalIK::IKSolverHeuristic::IsValid(ByRef<::StringW> message) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverHeuristic::IsValid");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "IsValid", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(message)})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method, byref(message));
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverHeuristic.GetPoints
  ::ArrayW<::RootMotion::FinalIK::IKSolver::Point*> RootMotion::FinalIK::IKSolverHeuristic::GetPoints() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverHeuristic::GetPoints");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetPoints", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::ArrayW<::RootMotion::FinalIK::IKSolver::Point*>, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverHeuristic.GetPoint
  ::RootMotion::FinalIK::IKSolver::Point* RootMotion::FinalIK::IKSolverHeuristic::GetPoint(::UnityEngine::Transform* transform) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverHeuristic::GetPoint");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetPoint", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(transform)})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKSolver::Point*, false>(this, ___internal__method, transform);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverHeuristic.OnInitiate
  void RootMotion::FinalIK::IKSolverHeuristic::OnInitiate() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverHeuristic::OnInitiate");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnInitiate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverHeuristic.OnUpdate
  void RootMotion::FinalIK::IKSolverHeuristic::OnUpdate() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverHeuristic::OnUpdate");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnUpdate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.IKSolverLeg
  #include "RootMotion/FinalIK/IKSolverLeg.hpp"
  // Including type: UnityEngine.Transform
  #include "UnityEngine/Transform.hpp"
  // Including type: RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.Point
  #include "RootMotion/FinalIK/IKSolver_Point.hpp"
  // Including type: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Leg
  #include "RootMotion/FinalIK/IKSolverVR_Leg.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public System.Single IKRotationWeight
  float& RootMotion::FinalIK::IKSolverLeg::dyn_IKRotationWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLeg::dyn_IKRotationWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "IKRotationWeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Quaternion IKRotation
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverLeg::dyn_IKRotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLeg::dyn_IKRotation");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "IKRotation"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.Point pelvis
  ::RootMotion::FinalIK::IKSolver::Point*& RootMotion::FinalIK::IKSolverLeg::dyn_pelvis() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLeg::dyn_pelvis");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "pelvis"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IKSolver::Point**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.Point thigh
  ::RootMotion::FinalIK::IKSolver::Point*& RootMotion::FinalIK::IKSolverLeg::dyn_thigh() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLeg::dyn_thigh");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "thigh"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IKSolver::Point**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.Point calf
  ::RootMotion::FinalIK::IKSolver::Point*& RootMotion::FinalIK::IKSolverLeg::dyn_calf() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLeg::dyn_calf");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "calf"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IKSolver::Point**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.Point foot
  ::RootMotion::FinalIK::IKSolver::Point*& RootMotion::FinalIK::IKSolverLeg::dyn_foot() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLeg::dyn_foot");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "foot"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IKSolver::Point**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.Point toe
  ::RootMotion::FinalIK::IKSolver::Point*& RootMotion::FinalIK::IKSolverLeg::dyn_toe() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLeg::dyn_toe");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "toe"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IKSolver::Point**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Leg leg
  ::RootMotion::FinalIK::IKSolverVR::Leg*& RootMotion::FinalIK::IKSolverLeg::dyn_leg() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLeg::dyn_leg");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "leg"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IKSolverVR::Leg**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 heelOffset
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverLeg::dyn_heelOffset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLeg::dyn_heelOffset");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "heelOffset"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3[] positions
  ::ArrayW<::UnityEngine::Vector3>& RootMotion::FinalIK::IKSolverLeg::dyn_positions() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLeg::dyn_positions");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "positions"))->offset;
    return *reinterpret_cast<::ArrayW<::UnityEngine::Vector3>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Quaternion[] rotations
  ::ArrayW<::UnityEngine::Quaternion>& RootMotion::FinalIK::IKSolverLeg::dyn_rotations() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLeg::dyn_rotations");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "rotations"))->offset;
    return *reinterpret_cast<::ArrayW<::UnityEngine::Quaternion>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLeg.SetChain
  bool RootMotion::FinalIK::IKSolverLeg::SetChain(::UnityEngine::Transform* pelvis, ::UnityEngine::Transform* thigh, ::UnityEngine::Transform* calf, ::UnityEngine::Transform* foot, ::UnityEngine::Transform* toe, ::UnityEngine::Transform* root) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLeg::SetChain");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SetChain", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(pelvis), ::il2cpp_utils::ExtractType(thigh), ::il2cpp_utils::ExtractType(calf), ::il2cpp_utils::ExtractType(foot), ::il2cpp_utils::ExtractType(toe), ::il2cpp_utils::ExtractType(root)})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method, pelvis, thigh, calf, foot, toe, root);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLeg.Solve
  void RootMotion::FinalIK::IKSolverLeg::Solve() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLeg::Solve");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Solve", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLeg.Read
  void RootMotion::FinalIK::IKSolverLeg::Read() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLeg::Read");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Read", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLeg.Write
  void RootMotion::FinalIK::IKSolverLeg::Write() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLeg::Write");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Write", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLeg.IsValid
  bool RootMotion::FinalIK::IKSolverLeg::IsValid(ByRef<::StringW> message) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLeg::IsValid");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "IsValid", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(message)})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method, byref(message));
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLeg.GetPoints
  ::ArrayW<::RootMotion::FinalIK::IKSolver::Point*> RootMotion::FinalIK::IKSolverLeg::GetPoints() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLeg::GetPoints");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetPoints", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::ArrayW<::RootMotion::FinalIK::IKSolver::Point*>, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLeg.GetPoint
  ::RootMotion::FinalIK::IKSolver::Point* RootMotion::FinalIK::IKSolverLeg::GetPoint(::UnityEngine::Transform* transform) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLeg::GetPoint");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetPoint", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(transform)})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKSolver::Point*, false>(this, ___internal__method, transform);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLeg.StoreDefaultLocalState
  void RootMotion::FinalIK::IKSolverLeg::StoreDefaultLocalState() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLeg::StoreDefaultLocalState");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "StoreDefaultLocalState", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLeg.FixTransforms
  void RootMotion::FinalIK::IKSolverLeg::FixTransforms() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLeg::FixTransforms");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "FixTransforms", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLeg.OnInitiate
  void RootMotion::FinalIK::IKSolverLeg::OnInitiate() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLeg::OnInitiate");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnInitiate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLeg.OnUpdate
  void RootMotion::FinalIK::IKSolverLeg::OnUpdate() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLeg::OnUpdate");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnUpdate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.IKSolverLimb
  #include "RootMotion/FinalIK/IKSolverLimb.hpp"
  // Including type: UnityEngine.Transform
  #include "UnityEngine/Transform.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.AvatarIKGoal goal
  ::UnityEngine::AvatarIKGoal& RootMotion::FinalIK::IKSolverLimb::dyn_goal() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLimb::dyn_goal");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "goal"))->offset;
    return *reinterpret_cast<::UnityEngine::AvatarIKGoal*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolverLimb/RootMotion.FinalIK.BendModifier bendModifier
  ::RootMotion::FinalIK::IKSolverLimb::BendModifier& RootMotion::FinalIK::IKSolverLimb::dyn_bendModifier() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLimb::dyn_bendModifier");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "bendModifier"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IKSolverLimb::BendModifier*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single maintainRotationWeight
  float& RootMotion::FinalIK::IKSolverLimb::dyn_maintainRotationWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLimb::dyn_maintainRotationWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "maintainRotationWeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single bendModifierWeight
  float& RootMotion::FinalIK::IKSolverLimb::dyn_bendModifierWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLimb::dyn_bendModifierWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "bendModifierWeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Transform bendGoal
  ::UnityEngine::Transform*& RootMotion::FinalIK::IKSolverLimb::dyn_bendGoal() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLimb::dyn_bendGoal");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "bendGoal"))->offset;
    return *reinterpret_cast<::UnityEngine::Transform**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean maintainBendFor1Frame
  bool& RootMotion::FinalIK::IKSolverLimb::dyn_maintainBendFor1Frame() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLimb::dyn_maintainBendFor1Frame");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "maintainBendFor1Frame"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean maintainRotationFor1Frame
  bool& RootMotion::FinalIK::IKSolverLimb::dyn_maintainRotationFor1Frame() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLimb::dyn_maintainRotationFor1Frame");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "maintainRotationFor1Frame"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Quaternion defaultRootRotation
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverLimb::dyn_defaultRootRotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLimb::dyn_defaultRootRotation");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "defaultRootRotation"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Quaternion parentDefaultRotation
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverLimb::dyn_parentDefaultRotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLimb::dyn_parentDefaultRotation");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "parentDefaultRotation"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Quaternion bone3RotationBeforeSolve
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverLimb::dyn_bone3RotationBeforeSolve() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLimb::dyn_bone3RotationBeforeSolve");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "bone3RotationBeforeSolve"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Quaternion maintainRotation
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverLimb::dyn_maintainRotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLimb::dyn_maintainRotation");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "maintainRotation"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Quaternion bone3DefaultRotation
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverLimb::dyn_bone3DefaultRotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLimb::dyn_bone3DefaultRotation");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "bone3DefaultRotation"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 _bendNormal
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverLimb::dyn__bendNormal() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLimb::dyn__bendNormal");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "_bendNormal"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 animationNormal
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverLimb::dyn_animationNormal() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLimb::dyn_animationNormal");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "animationNormal"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private RootMotion.FinalIK.IKSolverLimb/RootMotion.FinalIK.AxisDirection[] axisDirectionsLeft
  ::ArrayW<::RootMotion::FinalIK::IKSolverLimb::AxisDirection>& RootMotion::FinalIK::IKSolverLimb::dyn_axisDirectionsLeft() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLimb::dyn_axisDirectionsLeft");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "axisDirectionsLeft"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::IKSolverLimb::AxisDirection>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private RootMotion.FinalIK.IKSolverLimb/RootMotion.FinalIK.AxisDirection[] axisDirectionsRight
  ::ArrayW<::RootMotion::FinalIK::IKSolverLimb::AxisDirection>& RootMotion::FinalIK::IKSolverLimb::dyn_axisDirectionsRight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLimb::dyn_axisDirectionsRight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "axisDirectionsRight"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::IKSolverLimb::AxisDirection>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLimb.get_axisDirections
  ::ArrayW<::RootMotion::FinalIK::IKSolverLimb::AxisDirection> RootMotion::FinalIK::IKSolverLimb::get_axisDirections() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLimb::get_axisDirections");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_axisDirections", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::ArrayW<::RootMotion::FinalIK::IKSolverLimb::AxisDirection>, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLimb.MaintainRotation
  void RootMotion::FinalIK::IKSolverLimb::MaintainRotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLimb::MaintainRotation");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "MaintainRotation", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLimb.MaintainBend
  void RootMotion::FinalIK::IKSolverLimb::MaintainBend() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLimb::MaintainBend");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "MaintainBend", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLimb.StoreAxisDirections
  void RootMotion::FinalIK::IKSolverLimb::StoreAxisDirections(ByRef<::ArrayW<::RootMotion::FinalIK::IKSolverLimb::AxisDirection>> axisDirections) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLimb::StoreAxisDirections");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "StoreAxisDirections", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(axisDirections)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, byref(axisDirections));
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLimb.GetModifiedBendNormal
  ::UnityEngine::Vector3 RootMotion::FinalIK::IKSolverLimb::GetModifiedBendNormal() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLimb::GetModifiedBendNormal");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetModifiedBendNormal", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLimb.OnInitiateVirtual
  void RootMotion::FinalIK::IKSolverLimb::OnInitiateVirtual() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLimb::OnInitiateVirtual");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnInitiateVirtual", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLimb.OnUpdateVirtual
  void RootMotion::FinalIK::IKSolverLimb::OnUpdateVirtual() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLimb::OnUpdateVirtual");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnUpdateVirtual", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLimb.OnPostSolveVirtual
  void RootMotion::FinalIK::IKSolverLimb::OnPostSolveVirtual() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLimb::OnPostSolveVirtual");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnPostSolveVirtual", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.IKSolverLimb/RootMotion.FinalIK.BendModifier
  #include "RootMotion/FinalIK/IKSolverLimb.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.IKSolverLimb/RootMotion.FinalIK.BendModifier Animation
  ::RootMotion::FinalIK::IKSolverLimb::BendModifier RootMotion::FinalIK::IKSolverLimb::BendModifier::_get_Animation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLimb::BendModifier::_get_Animation");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::IKSolverLimb::BendModifier>("RootMotion.FinalIK", "IKSolverLimb/BendModifier", "Animation"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.IKSolverLimb/RootMotion.FinalIK.BendModifier Animation
  void RootMotion::FinalIK::IKSolverLimb::BendModifier::_set_Animation(::RootMotion::FinalIK::IKSolverLimb::BendModifier value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLimb::BendModifier::_set_Animation");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "IKSolverLimb/BendModifier", "Animation", value));
  }
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.IKSolverLimb/RootMotion.FinalIK.BendModifier Target
  ::RootMotion::FinalIK::IKSolverLimb::BendModifier RootMotion::FinalIK::IKSolverLimb::BendModifier::_get_Target() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLimb::BendModifier::_get_Target");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::IKSolverLimb::BendModifier>("RootMotion.FinalIK", "IKSolverLimb/BendModifier", "Target"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.IKSolverLimb/RootMotion.FinalIK.BendModifier Target
  void RootMotion::FinalIK::IKSolverLimb::BendModifier::_set_Target(::RootMotion::FinalIK::IKSolverLimb::BendModifier value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLimb::BendModifier::_set_Target");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "IKSolverLimb/BendModifier", "Target", value));
  }
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.IKSolverLimb/RootMotion.FinalIK.BendModifier Parent
  ::RootMotion::FinalIK::IKSolverLimb::BendModifier RootMotion::FinalIK::IKSolverLimb::BendModifier::_get_Parent() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLimb::BendModifier::_get_Parent");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::IKSolverLimb::BendModifier>("RootMotion.FinalIK", "IKSolverLimb/BendModifier", "Parent"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.IKSolverLimb/RootMotion.FinalIK.BendModifier Parent
  void RootMotion::FinalIK::IKSolverLimb::BendModifier::_set_Parent(::RootMotion::FinalIK::IKSolverLimb::BendModifier value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLimb::BendModifier::_set_Parent");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "IKSolverLimb/BendModifier", "Parent", value));
  }
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.IKSolverLimb/RootMotion.FinalIK.BendModifier Arm
  ::RootMotion::FinalIK::IKSolverLimb::BendModifier RootMotion::FinalIK::IKSolverLimb::BendModifier::_get_Arm() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLimb::BendModifier::_get_Arm");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::IKSolverLimb::BendModifier>("RootMotion.FinalIK", "IKSolverLimb/BendModifier", "Arm"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.IKSolverLimb/RootMotion.FinalIK.BendModifier Arm
  void RootMotion::FinalIK::IKSolverLimb::BendModifier::_set_Arm(::RootMotion::FinalIK::IKSolverLimb::BendModifier value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLimb::BendModifier::_set_Arm");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "IKSolverLimb/BendModifier", "Arm", value));
  }
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.IKSolverLimb/RootMotion.FinalIK.BendModifier Goal
  ::RootMotion::FinalIK::IKSolverLimb::BendModifier RootMotion::FinalIK::IKSolverLimb::BendModifier::_get_Goal() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLimb::BendModifier::_get_Goal");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::IKSolverLimb::BendModifier>("RootMotion.FinalIK", "IKSolverLimb/BendModifier", "Goal"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.IKSolverLimb/RootMotion.FinalIK.BendModifier Goal
  void RootMotion::FinalIK::IKSolverLimb::BendModifier::_set_Goal(::RootMotion::FinalIK::IKSolverLimb::BendModifier value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLimb::BendModifier::_set_Goal");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "IKSolverLimb/BendModifier", "Goal", value));
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Int32 value__
  int& RootMotion::FinalIK::IKSolverLimb::BendModifier::dyn_value__() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLimb::BendModifier::dyn_value__");
    auto ___internal__instance = *this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "value__"))->offset;
    return *reinterpret_cast<int*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.IKSolverLimb/RootMotion.FinalIK.AxisDirection
  #include "RootMotion/FinalIK/IKSolverLimb.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 direction
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverLimb::AxisDirection::dyn_direction() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLimb::AxisDirection::dyn_direction");
    auto ___internal__instance = *this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "direction"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 axis
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverLimb::AxisDirection::dyn_axis() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLimb::AxisDirection::dyn_axis");
    auto ___internal__instance = *this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "axis"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single dot
  float& RootMotion::FinalIK::IKSolverLimb::AxisDirection::dyn_dot() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLimb::AxisDirection::dyn_dot");
    auto ___internal__instance = *this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "dot"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLimb/RootMotion.FinalIK.AxisDirection..ctor
  RootMotion::FinalIK::IKSolverLimb::AxisDirection::AxisDirection(::UnityEngine::Vector3 direction, ::UnityEngine::Vector3 axis) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLimb::AxisDirection::.ctor");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(*this, ".ctor", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(direction), ::il2cpp_utils::ExtractType(axis)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, direction, axis);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.IKSolverLookAt
  #include "RootMotion/FinalIK/IKSolverLookAt.hpp"
  // Including type: RootMotion.FinalIK.IKSolverLookAt/RootMotion.FinalIK.LookAtBone
  #include "RootMotion/FinalIK/IKSolverLookAt_LookAtBone.hpp"
  // Including type: UnityEngine.Transform
  #include "UnityEngine/Transform.hpp"
  // Including type: UnityEngine.AnimationCurve
  #include "UnityEngine/AnimationCurve.hpp"
  // Including type: RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.Point
  #include "RootMotion/FinalIK/IKSolver_Point.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Transform target
  ::UnityEngine::Transform*& RootMotion::FinalIK::IKSolverLookAt::dyn_target() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::dyn_target");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "target"))->offset;
    return *reinterpret_cast<::UnityEngine::Transform**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolverLookAt/RootMotion.FinalIK.LookAtBone[] spine
  ::ArrayW<::RootMotion::FinalIK::IKSolverLookAt::LookAtBone*>& RootMotion::FinalIK::IKSolverLookAt::dyn_spine() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::dyn_spine");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "spine"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::IKSolverLookAt::LookAtBone*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolverLookAt/RootMotion.FinalIK.LookAtBone head
  ::RootMotion::FinalIK::IKSolverLookAt::LookAtBone*& RootMotion::FinalIK::IKSolverLookAt::dyn_head() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::dyn_head");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "head"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IKSolverLookAt::LookAtBone**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolverLookAt/RootMotion.FinalIK.LookAtBone[] eyes
  ::ArrayW<::RootMotion::FinalIK::IKSolverLookAt::LookAtBone*>& RootMotion::FinalIK::IKSolverLookAt::dyn_eyes() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::dyn_eyes");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "eyes"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::IKSolverLookAt::LookAtBone*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single bodyWeight
  float& RootMotion::FinalIK::IKSolverLookAt::dyn_bodyWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::dyn_bodyWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "bodyWeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single headWeight
  float& RootMotion::FinalIK::IKSolverLookAt::dyn_headWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::dyn_headWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "headWeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single eyesWeight
  float& RootMotion::FinalIK::IKSolverLookAt::dyn_eyesWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::dyn_eyesWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "eyesWeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single clampWeight
  float& RootMotion::FinalIK::IKSolverLookAt::dyn_clampWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::dyn_clampWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "clampWeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single clampWeightHead
  float& RootMotion::FinalIK::IKSolverLookAt::dyn_clampWeightHead() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::dyn_clampWeightHead");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "clampWeightHead"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single clampWeightEyes
  float& RootMotion::FinalIK::IKSolverLookAt::dyn_clampWeightEyes() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::dyn_clampWeightEyes");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "clampWeightEyes"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Int32 clampSmoothing
  int& RootMotion::FinalIK::IKSolverLookAt::dyn_clampSmoothing() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::dyn_clampSmoothing");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "clampSmoothing"))->offset;
    return *reinterpret_cast<int*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.AnimationCurve spineWeightCurve
  ::UnityEngine::AnimationCurve*& RootMotion::FinalIK::IKSolverLookAt::dyn_spineWeightCurve() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::dyn_spineWeightCurve");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "spineWeightCurve"))->offset;
    return *reinterpret_cast<::UnityEngine::AnimationCurve**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 spineTargetOffset
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverLookAt::dyn_spineTargetOffset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::dyn_spineTargetOffset");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "spineTargetOffset"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: protected UnityEngine.Vector3[] spineForwards
  ::ArrayW<::UnityEngine::Vector3>& RootMotion::FinalIK::IKSolverLookAt::dyn_spineForwards() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::dyn_spineForwards");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "spineForwards"))->offset;
    return *reinterpret_cast<::ArrayW<::UnityEngine::Vector3>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: protected UnityEngine.Vector3[] headForwards
  ::ArrayW<::UnityEngine::Vector3>& RootMotion::FinalIK::IKSolverLookAt::dyn_headForwards() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::dyn_headForwards");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "headForwards"))->offset;
    return *reinterpret_cast<::ArrayW<::UnityEngine::Vector3>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: protected UnityEngine.Vector3[] eyeForward
  ::ArrayW<::UnityEngine::Vector3>& RootMotion::FinalIK::IKSolverLookAt::dyn_eyeForward() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::dyn_eyeForward");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "eyeForward"))->offset;
    return *reinterpret_cast<::ArrayW<::UnityEngine::Vector3>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLookAt.get_spineIsValid
  bool RootMotion::FinalIK::IKSolverLookAt::get_spineIsValid() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::get_spineIsValid");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_spineIsValid", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLookAt.get_spineIsEmpty
  bool RootMotion::FinalIK::IKSolverLookAt::get_spineIsEmpty() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::get_spineIsEmpty");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_spineIsEmpty", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLookAt.get_headIsValid
  bool RootMotion::FinalIK::IKSolverLookAt::get_headIsValid() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::get_headIsValid");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_headIsValid", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLookAt.get_headIsEmpty
  bool RootMotion::FinalIK::IKSolverLookAt::get_headIsEmpty() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::get_headIsEmpty");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_headIsEmpty", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLookAt.get_eyesIsValid
  bool RootMotion::FinalIK::IKSolverLookAt::get_eyesIsValid() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::get_eyesIsValid");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_eyesIsValid", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLookAt.get_eyesIsEmpty
  bool RootMotion::FinalIK::IKSolverLookAt::get_eyesIsEmpty() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::get_eyesIsEmpty");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_eyesIsEmpty", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLookAt.SetLookAtWeight
  void RootMotion::FinalIK::IKSolverLookAt::SetLookAtWeight(float weight) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::SetLookAtWeight");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SetLookAtWeight", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(weight)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, weight);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLookAt.SetLookAtWeight
  void RootMotion::FinalIK::IKSolverLookAt::SetLookAtWeight(float weight, float bodyWeight) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::SetLookAtWeight");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SetLookAtWeight", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(weight), ::il2cpp_utils::ExtractType(bodyWeight)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, weight, bodyWeight);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLookAt.SetLookAtWeight
  void RootMotion::FinalIK::IKSolverLookAt::SetLookAtWeight(float weight, float bodyWeight, float headWeight) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::SetLookAtWeight");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SetLookAtWeight", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(weight), ::il2cpp_utils::ExtractType(bodyWeight), ::il2cpp_utils::ExtractType(headWeight)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, weight, bodyWeight, headWeight);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLookAt.SetLookAtWeight
  void RootMotion::FinalIK::IKSolverLookAt::SetLookAtWeight(float weight, float bodyWeight, float headWeight, float eyesWeight) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::SetLookAtWeight");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SetLookAtWeight", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(weight), ::il2cpp_utils::ExtractType(bodyWeight), ::il2cpp_utils::ExtractType(headWeight), ::il2cpp_utils::ExtractType(eyesWeight)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, weight, bodyWeight, headWeight, eyesWeight);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLookAt.SetLookAtWeight
  void RootMotion::FinalIK::IKSolverLookAt::SetLookAtWeight(float weight, float bodyWeight, float headWeight, float eyesWeight, float clampWeight) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::SetLookAtWeight");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SetLookAtWeight", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(weight), ::il2cpp_utils::ExtractType(bodyWeight), ::il2cpp_utils::ExtractType(headWeight), ::il2cpp_utils::ExtractType(eyesWeight), ::il2cpp_utils::ExtractType(clampWeight)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, weight, bodyWeight, headWeight, eyesWeight, clampWeight);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLookAt.SetLookAtWeight
  void RootMotion::FinalIK::IKSolverLookAt::SetLookAtWeight(float weight, float bodyWeight, float headWeight, float eyesWeight, float clampWeight, float clampWeightHead, float clampWeightEyes) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::SetLookAtWeight");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SetLookAtWeight", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(weight), ::il2cpp_utils::ExtractType(bodyWeight), ::il2cpp_utils::ExtractType(headWeight), ::il2cpp_utils::ExtractType(eyesWeight), ::il2cpp_utils::ExtractType(clampWeight), ::il2cpp_utils::ExtractType(clampWeightHead), ::il2cpp_utils::ExtractType(clampWeightEyes)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, weight, bodyWeight, headWeight, eyesWeight, clampWeight, clampWeightHead, clampWeightEyes);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLookAt.SetChain
  bool RootMotion::FinalIK::IKSolverLookAt::SetChain(::ArrayW<::UnityEngine::Transform*> spine, ::UnityEngine::Transform* head, ::ArrayW<::UnityEngine::Transform*> eyes, ::UnityEngine::Transform* root) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::SetChain");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SetChain", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(spine), ::il2cpp_utils::ExtractType(head), ::il2cpp_utils::ExtractType(eyes), ::il2cpp_utils::ExtractType(root)})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method, spine, head, eyes, root);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLookAt.SolveSpine
  void RootMotion::FinalIK::IKSolverLookAt::SolveSpine() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::SolveSpine");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SolveSpine", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLookAt.SolveHead
  void RootMotion::FinalIK::IKSolverLookAt::SolveHead() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::SolveHead");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SolveHead", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLookAt.SolveEyes
  void RootMotion::FinalIK::IKSolverLookAt::SolveEyes() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::SolveEyes");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SolveEyes", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLookAt.GetForwards
  ::ArrayW<::UnityEngine::Vector3> RootMotion::FinalIK::IKSolverLookAt::GetForwards(ByRef<::ArrayW<::UnityEngine::Vector3>> forwards, ::UnityEngine::Vector3 baseForward, ::UnityEngine::Vector3 targetForward, int bones, float clamp) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::GetForwards");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetForwards", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(forwards), ::il2cpp_utils::ExtractType(baseForward), ::il2cpp_utils::ExtractType(targetForward), ::il2cpp_utils::ExtractType(bones), ::il2cpp_utils::ExtractType(clamp)})));
    return ::il2cpp_utils::RunMethodRethrow<::ArrayW<::UnityEngine::Vector3>, false>(this, ___internal__method, byref(forwards), baseForward, targetForward, bones, clamp);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLookAt.SetBones
  void RootMotion::FinalIK::IKSolverLookAt::SetBones(::ArrayW<::UnityEngine::Transform*> array, ByRef<::ArrayW<::RootMotion::FinalIK::IKSolverLookAt::LookAtBone*>> bones) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::SetBones");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SetBones", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(array), ::il2cpp_utils::ExtractType(bones)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, array, byref(bones));
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLookAt.StoreDefaultLocalState
  void RootMotion::FinalIK::IKSolverLookAt::StoreDefaultLocalState() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::StoreDefaultLocalState");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "StoreDefaultLocalState", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLookAt.FixTransforms
  void RootMotion::FinalIK::IKSolverLookAt::FixTransforms() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::FixTransforms");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "FixTransforms", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLookAt.IsValid
  bool RootMotion::FinalIK::IKSolverLookAt::IsValid(ByRef<::StringW> message) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::IsValid");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "IsValid", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(message)})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method, byref(message));
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLookAt.GetPoints
  ::ArrayW<::RootMotion::FinalIK::IKSolver::Point*> RootMotion::FinalIK::IKSolverLookAt::GetPoints() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::GetPoints");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetPoints", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::ArrayW<::RootMotion::FinalIK::IKSolver::Point*>, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLookAt.GetPoint
  ::RootMotion::FinalIK::IKSolver::Point* RootMotion::FinalIK::IKSolverLookAt::GetPoint(::UnityEngine::Transform* transform) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::GetPoint");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetPoint", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(transform)})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKSolver::Point*, false>(this, ___internal__method, transform);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLookAt.OnInitiate
  void RootMotion::FinalIK::IKSolverLookAt::OnInitiate() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::OnInitiate");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnInitiate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLookAt.OnUpdate
  void RootMotion::FinalIK::IKSolverLookAt::OnUpdate() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::OnUpdate");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnUpdate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.IKSolverLookAt/RootMotion.FinalIK.LookAtBone
  #include "RootMotion/FinalIK/IKSolverLookAt_LookAtBone.hpp"
  // Including type: UnityEngine.Transform
  #include "UnityEngine/Transform.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 baseForwardOffsetEuler
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverLookAt::LookAtBone::dyn_baseForwardOffsetEuler() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::LookAtBone::dyn_baseForwardOffsetEuler");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "baseForwardOffsetEuler"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLookAt/RootMotion.FinalIK.LookAtBone.get_forward
  ::UnityEngine::Vector3 RootMotion::FinalIK::IKSolverLookAt::LookAtBone::get_forward() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::LookAtBone::get_forward");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_forward", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLookAt/RootMotion.FinalIK.LookAtBone.Initiate
  void RootMotion::FinalIK::IKSolverLookAt::LookAtBone::Initiate(::UnityEngine::Transform* root) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::LookAtBone::Initiate");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Initiate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(root)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, root);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverLookAt/RootMotion.FinalIK.LookAtBone.LookAt
  void RootMotion::FinalIK::IKSolverLookAt::LookAtBone::LookAt(::UnityEngine::Vector3 direction, float weight) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverLookAt::LookAtBone::LookAt");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "LookAt", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(direction), ::il2cpp_utils::ExtractType(weight)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, direction, weight);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.IKSolverTrigonometric
  #include "RootMotion/FinalIK/IKSolverTrigonometric.hpp"
  // Including type: RootMotion.FinalIK.IKSolverTrigonometric/RootMotion.FinalIK.TrigonometricBone
  #include "RootMotion/FinalIK/IKSolverTrigonometric_TrigonometricBone.hpp"
  // Including type: UnityEngine.Transform
  #include "UnityEngine/Transform.hpp"
  // Including type: RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.Point
  #include "RootMotion/FinalIK/IKSolver_Point.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Transform target
  ::UnityEngine::Transform*& RootMotion::FinalIK::IKSolverTrigonometric::dyn_target() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverTrigonometric::dyn_target");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "target"))->offset;
    return *reinterpret_cast<::UnityEngine::Transform**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single IKRotationWeight
  float& RootMotion::FinalIK::IKSolverTrigonometric::dyn_IKRotationWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverTrigonometric::dyn_IKRotationWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "IKRotationWeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Quaternion IKRotation
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverTrigonometric::dyn_IKRotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverTrigonometric::dyn_IKRotation");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "IKRotation"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 bendNormal
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverTrigonometric::dyn_bendNormal() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverTrigonometric::dyn_bendNormal");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "bendNormal"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolverTrigonometric/RootMotion.FinalIK.TrigonometricBone bone1
  ::RootMotion::FinalIK::IKSolverTrigonometric::TrigonometricBone*& RootMotion::FinalIK::IKSolverTrigonometric::dyn_bone1() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverTrigonometric::dyn_bone1");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "bone1"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IKSolverTrigonometric::TrigonometricBone**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolverTrigonometric/RootMotion.FinalIK.TrigonometricBone bone2
  ::RootMotion::FinalIK::IKSolverTrigonometric::TrigonometricBone*& RootMotion::FinalIK::IKSolverTrigonometric::dyn_bone2() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverTrigonometric::dyn_bone2");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "bone2"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IKSolverTrigonometric::TrigonometricBone**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolverTrigonometric/RootMotion.FinalIK.TrigonometricBone bone3
  ::RootMotion::FinalIK::IKSolverTrigonometric::TrigonometricBone*& RootMotion::FinalIK::IKSolverTrigonometric::dyn_bone3() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverTrigonometric::dyn_bone3");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "bone3"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IKSolverTrigonometric::TrigonometricBone**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: protected UnityEngine.Vector3 weightIKPosition
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverTrigonometric::dyn_weightIKPosition() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverTrigonometric::dyn_weightIKPosition");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "weightIKPosition"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: protected System.Boolean directHierarchy
  bool& RootMotion::FinalIK::IKSolverTrigonometric::dyn_directHierarchy() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverTrigonometric::dyn_directHierarchy");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "directHierarchy"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverTrigonometric.SetBendGoalPosition
  void RootMotion::FinalIK::IKSolverTrigonometric::SetBendGoalPosition(::UnityEngine::Vector3 goalPosition, float weight) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverTrigonometric::SetBendGoalPosition");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SetBendGoalPosition", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(goalPosition), ::il2cpp_utils::ExtractType(weight)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, goalPosition, weight);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverTrigonometric.SetBendPlaneToCurrent
  void RootMotion::FinalIK::IKSolverTrigonometric::SetBendPlaneToCurrent() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverTrigonometric::SetBendPlaneToCurrent");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SetBendPlaneToCurrent", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverTrigonometric.SetIKRotation
  void RootMotion::FinalIK::IKSolverTrigonometric::SetIKRotation(::UnityEngine::Quaternion rotation) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverTrigonometric::SetIKRotation");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SetIKRotation", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(rotation)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, rotation);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverTrigonometric.SetIKRotationWeight
  void RootMotion::FinalIK::IKSolverTrigonometric::SetIKRotationWeight(float weight) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverTrigonometric::SetIKRotationWeight");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SetIKRotationWeight", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(weight)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, weight);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverTrigonometric.GetIKRotation
  ::UnityEngine::Quaternion RootMotion::FinalIK::IKSolverTrigonometric::GetIKRotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverTrigonometric::GetIKRotation");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetIKRotation", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Quaternion, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverTrigonometric.GetIKRotationWeight
  float RootMotion::FinalIK::IKSolverTrigonometric::GetIKRotationWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverTrigonometric::GetIKRotationWeight");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetIKRotationWeight", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<float, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverTrigonometric.SetChain
  bool RootMotion::FinalIK::IKSolverTrigonometric::SetChain(::UnityEngine::Transform* bone1, ::UnityEngine::Transform* bone2, ::UnityEngine::Transform* bone3, ::UnityEngine::Transform* root) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverTrigonometric::SetChain");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SetChain", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(bone1), ::il2cpp_utils::ExtractType(bone2), ::il2cpp_utils::ExtractType(bone3), ::il2cpp_utils::ExtractType(root)})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method, bone1, bone2, bone3, root);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverTrigonometric.Solve
  void RootMotion::FinalIK::IKSolverTrigonometric::Solve(::UnityEngine::Transform* bone1, ::UnityEngine::Transform* bone2, ::UnityEngine::Transform* bone3, ::UnityEngine::Vector3 targetPosition, ::UnityEngine::Vector3 bendNormal, float weight) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverTrigonometric::Solve");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod("RootMotion.FinalIK", "IKSolverTrigonometric", "Solve", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(bone1), ::il2cpp_utils::ExtractType(bone2), ::il2cpp_utils::ExtractType(bone3), ::il2cpp_utils::ExtractType(targetPosition), ::il2cpp_utils::ExtractType(bendNormal), ::il2cpp_utils::ExtractType(weight)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(static_cast<Il2CppObject*>(nullptr), ___internal__method, bone1, bone2, bone3, targetPosition, bendNormal, weight);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverTrigonometric.GetDirectionToBendPoint
  ::UnityEngine::Vector3 RootMotion::FinalIK::IKSolverTrigonometric::GetDirectionToBendPoint(::UnityEngine::Vector3 direction, float directionMag, ::UnityEngine::Vector3 bendDirection, float sqrMag1, float sqrMag2) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverTrigonometric::GetDirectionToBendPoint");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod("RootMotion.FinalIK", "IKSolverTrigonometric", "GetDirectionToBendPoint", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(direction), ::il2cpp_utils::ExtractType(directionMag), ::il2cpp_utils::ExtractType(bendDirection), ::il2cpp_utils::ExtractType(sqrMag1), ::il2cpp_utils::ExtractType(sqrMag2)})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(static_cast<Il2CppObject*>(nullptr), ___internal__method, direction, directionMag, bendDirection, sqrMag1, sqrMag2);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverTrigonometric.IsDirectHierarchy
  bool RootMotion::FinalIK::IKSolverTrigonometric::IsDirectHierarchy() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverTrigonometric::IsDirectHierarchy");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "IsDirectHierarchy", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverTrigonometric.InitiateBones
  void RootMotion::FinalIK::IKSolverTrigonometric::InitiateBones() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverTrigonometric::InitiateBones");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "InitiateBones", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverTrigonometric.OnInitiateVirtual
  void RootMotion::FinalIK::IKSolverTrigonometric::OnInitiateVirtual() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverTrigonometric::OnInitiateVirtual");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnInitiateVirtual", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverTrigonometric.OnUpdateVirtual
  void RootMotion::FinalIK::IKSolverTrigonometric::OnUpdateVirtual() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverTrigonometric::OnUpdateVirtual");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnUpdateVirtual", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverTrigonometric.OnPostSolveVirtual
  void RootMotion::FinalIK::IKSolverTrigonometric::OnPostSolveVirtual() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverTrigonometric::OnPostSolveVirtual");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnPostSolveVirtual", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverTrigonometric.GetBendDirection
  ::UnityEngine::Vector3 RootMotion::FinalIK::IKSolverTrigonometric::GetBendDirection(::UnityEngine::Vector3 IKPosition, ::UnityEngine::Vector3 bendNormal) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverTrigonometric::GetBendDirection");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetBendDirection", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(IKPosition), ::il2cpp_utils::ExtractType(bendNormal)})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method, IKPosition, bendNormal);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverTrigonometric.GetPoints
  ::ArrayW<::RootMotion::FinalIK::IKSolver::Point*> RootMotion::FinalIK::IKSolverTrigonometric::GetPoints() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverTrigonometric::GetPoints");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetPoints", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::ArrayW<::RootMotion::FinalIK::IKSolver::Point*>, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverTrigonometric.GetPoint
  ::RootMotion::FinalIK::IKSolver::Point* RootMotion::FinalIK::IKSolverTrigonometric::GetPoint(::UnityEngine::Transform* transform) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverTrigonometric::GetPoint");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetPoint", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(transform)})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKSolver::Point*, false>(this, ___internal__method, transform);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverTrigonometric.StoreDefaultLocalState
  void RootMotion::FinalIK::IKSolverTrigonometric::StoreDefaultLocalState() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverTrigonometric::StoreDefaultLocalState");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "StoreDefaultLocalState", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverTrigonometric.FixTransforms
  void RootMotion::FinalIK::IKSolverTrigonometric::FixTransforms() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverTrigonometric::FixTransforms");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "FixTransforms", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverTrigonometric.IsValid
  bool RootMotion::FinalIK::IKSolverTrigonometric::IsValid(ByRef<::StringW> message) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverTrigonometric::IsValid");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "IsValid", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(message)})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method, byref(message));
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverTrigonometric.OnInitiate
  void RootMotion::FinalIK::IKSolverTrigonometric::OnInitiate() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverTrigonometric::OnInitiate");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnInitiate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverTrigonometric.OnUpdate
  void RootMotion::FinalIK::IKSolverTrigonometric::OnUpdate() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverTrigonometric::OnUpdate");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnUpdate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.IKSolverTrigonometric/RootMotion.FinalIK.TrigonometricBone
  #include "RootMotion/FinalIK/IKSolverTrigonometric_TrigonometricBone.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Quaternion targetToLocalSpace
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverTrigonometric::TrigonometricBone::dyn_targetToLocalSpace() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverTrigonometric::TrigonometricBone::dyn_targetToLocalSpace");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "targetToLocalSpace"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 defaultLocalBendNormal
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverTrigonometric::TrigonometricBone::dyn_defaultLocalBendNormal() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverTrigonometric::TrigonometricBone::dyn_defaultLocalBendNormal");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "defaultLocalBendNormal"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverTrigonometric/RootMotion.FinalIK.TrigonometricBone.Initiate
  void RootMotion::FinalIK::IKSolverTrigonometric::TrigonometricBone::Initiate(::UnityEngine::Vector3 childPosition, ::UnityEngine::Vector3 bendNormal) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverTrigonometric::TrigonometricBone::Initiate");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Initiate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(childPosition), ::il2cpp_utils::ExtractType(bendNormal)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, childPosition, bendNormal);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverTrigonometric/RootMotion.FinalIK.TrigonometricBone.GetRotation
  ::UnityEngine::Quaternion RootMotion::FinalIK::IKSolverTrigonometric::TrigonometricBone::GetRotation(::UnityEngine::Vector3 direction, ::UnityEngine::Vector3 bendNormal) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverTrigonometric::TrigonometricBone::GetRotation");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetRotation", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(direction), ::il2cpp_utils::ExtractType(bendNormal)})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Quaternion, false>(this, ___internal__method, direction, bendNormal);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverTrigonometric/RootMotion.FinalIK.TrigonometricBone.GetBendNormalFromCurrentRotation
  ::UnityEngine::Vector3 RootMotion::FinalIK::IKSolverTrigonometric::TrigonometricBone::GetBendNormalFromCurrentRotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverTrigonometric::TrigonometricBone::GetBendNormalFromCurrentRotation");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetBendNormalFromCurrentRotation", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.IKSolverVR
  #include "RootMotion/FinalIK/IKSolverVR.hpp"
  // Including type: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Arm
  #include "RootMotion/FinalIK/IKSolverVR_Arm.hpp"
  // Including type: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.BodyPart
  #include "RootMotion/FinalIK/IKSolverVR_BodyPart.hpp"
  // Including type: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Footstep
  #include "RootMotion/FinalIK/IKSolverVR_Footstep.hpp"
  // Including type: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Leg
  #include "RootMotion/FinalIK/IKSolverVR_Leg.hpp"
  // Including type: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Locomotion
  #include "RootMotion/FinalIK/IKSolverVR_Locomotion.hpp"
  // Including type: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Spine
  #include "RootMotion/FinalIK/IKSolverVR_Spine.hpp"
  // Including type: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.PositionOffset
  #include "RootMotion/FinalIK/IKSolverVR_PositionOffset.hpp"
  // Including type: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.RotationOffset
  #include "RootMotion/FinalIK/IKSolverVR_RotationOffset.hpp"
  // Including type: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.VirtualBone
  #include "RootMotion/FinalIK/IKSolverVR_VirtualBone.hpp"
  // Including type: UnityEngine.Transform
  #include "UnityEngine/Transform.hpp"
  // Including type: RootMotion.FinalIK.VRIK/RootMotion.FinalIK.References
  #include "RootMotion/FinalIK/VRIK_References.hpp"
  // Including type: RootMotion.FinalIK.IKSolver/RootMotion.FinalIK.Point
  #include "RootMotion/FinalIK/IKSolver_Point.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Transform[] solverTransforms
  ::ArrayW<::UnityEngine::Transform*>& RootMotion::FinalIK::IKSolverVR::dyn_solverTransforms() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::dyn_solverTransforms");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "solverTransforms"))->offset;
    return *reinterpret_cast<::ArrayW<::UnityEngine::Transform*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean hasChest
  bool& RootMotion::FinalIK::IKSolverVR::dyn_hasChest() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::dyn_hasChest");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "hasChest"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean hasNeck
  bool& RootMotion::FinalIK::IKSolverVR::dyn_hasNeck() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::dyn_hasNeck");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "hasNeck"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean hasShoulders
  bool& RootMotion::FinalIK::IKSolverVR::dyn_hasShoulders() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::dyn_hasShoulders");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "hasShoulders"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean hasToes
  bool& RootMotion::FinalIK::IKSolverVR::dyn_hasToes() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::dyn_hasToes");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "hasToes"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean hasLegs
  bool& RootMotion::FinalIK::IKSolverVR::dyn_hasLegs() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::dyn_hasLegs");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "hasLegs"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3[] readPositions
  ::ArrayW<::UnityEngine::Vector3>& RootMotion::FinalIK::IKSolverVR::dyn_readPositions() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::dyn_readPositions");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "readPositions"))->offset;
    return *reinterpret_cast<::ArrayW<::UnityEngine::Vector3>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Quaternion[] readRotations
  ::ArrayW<::UnityEngine::Quaternion>& RootMotion::FinalIK::IKSolverVR::dyn_readRotations() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::dyn_readRotations");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "readRotations"))->offset;
    return *reinterpret_cast<::ArrayW<::UnityEngine::Quaternion>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3[] solvedPositions
  ::ArrayW<::UnityEngine::Vector3>& RootMotion::FinalIK::IKSolverVR::dyn_solvedPositions() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::dyn_solvedPositions");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "solvedPositions"))->offset;
    return *reinterpret_cast<::ArrayW<::UnityEngine::Vector3>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Quaternion[] solvedRotations
  ::ArrayW<::UnityEngine::Quaternion>& RootMotion::FinalIK::IKSolverVR::dyn_solvedRotations() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::dyn_solvedRotations");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "solvedRotations"))->offset;
    return *reinterpret_cast<::ArrayW<::UnityEngine::Quaternion>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Quaternion[] defaultLocalRotations
  ::ArrayW<::UnityEngine::Quaternion>& RootMotion::FinalIK::IKSolverVR::dyn_defaultLocalRotations() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::dyn_defaultLocalRotations");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "defaultLocalRotations"))->offset;
    return *reinterpret_cast<::ArrayW<::UnityEngine::Quaternion>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3[] defaultLocalPositions
  ::ArrayW<::UnityEngine::Vector3>& RootMotion::FinalIK::IKSolverVR::dyn_defaultLocalPositions() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::dyn_defaultLocalPositions");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "defaultLocalPositions"))->offset;
    return *reinterpret_cast<::ArrayW<::UnityEngine::Vector3>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 rootV
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::dyn_rootV() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::dyn_rootV");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "rootV"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 rootVelocity
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::dyn_rootVelocity() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::dyn_rootVelocity");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "rootVelocity"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 bodyOffset
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::dyn_bodyOffset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::dyn_bodyOffset");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "bodyOffset"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Int32 supportLegIndex
  int& RootMotion::FinalIK::IKSolverVR::dyn_supportLegIndex() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::dyn_supportLegIndex");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "supportLegIndex"))->offset;
    return *reinterpret_cast<int*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Int32 lastLOD
  int& RootMotion::FinalIK::IKSolverVR::dyn_lastLOD() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::dyn_lastLOD");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "lastLOD"))->offset;
    return *reinterpret_cast<int*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Int32 LOD
  int& RootMotion::FinalIK::IKSolverVR::dyn_LOD() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::dyn_LOD");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "LOD"))->offset;
    return *reinterpret_cast<int*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Boolean plantFeet
  bool& RootMotion::FinalIK::IKSolverVR::dyn_plantFeet() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::dyn_plantFeet");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "plantFeet"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.VirtualBone <rootBone>k__BackingField
  ::RootMotion::FinalIK::IKSolverVR::VirtualBone*& RootMotion::FinalIK::IKSolverVR::dyn_$rootBone$k__BackingField() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::dyn_$rootBone$k__BackingField");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<rootBone>k__BackingField"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IKSolverVR::VirtualBone**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Spine spine
  ::RootMotion::FinalIK::IKSolverVR::Spine*& RootMotion::FinalIK::IKSolverVR::dyn_spine() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::dyn_spine");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "spine"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IKSolverVR::Spine**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Arm leftArm
  ::RootMotion::FinalIK::IKSolverVR::Arm*& RootMotion::FinalIK::IKSolverVR::dyn_leftArm() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::dyn_leftArm");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "leftArm"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IKSolverVR::Arm**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Arm rightArm
  ::RootMotion::FinalIK::IKSolverVR::Arm*& RootMotion::FinalIK::IKSolverVR::dyn_rightArm() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::dyn_rightArm");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "rightArm"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IKSolverVR::Arm**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Leg leftLeg
  ::RootMotion::FinalIK::IKSolverVR::Leg*& RootMotion::FinalIK::IKSolverVR::dyn_leftLeg() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::dyn_leftLeg");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "leftLeg"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IKSolverVR::Leg**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Leg rightLeg
  ::RootMotion::FinalIK::IKSolverVR::Leg*& RootMotion::FinalIK::IKSolverVR::dyn_rightLeg() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::dyn_rightLeg");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "rightLeg"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IKSolverVR::Leg**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Locomotion locomotion
  ::RootMotion::FinalIK::IKSolverVR::Locomotion*& RootMotion::FinalIK::IKSolverVR::dyn_locomotion() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::dyn_locomotion");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "locomotion"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IKSolverVR::Locomotion**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Leg[] legs
  ::ArrayW<::RootMotion::FinalIK::IKSolverVR::Leg*>& RootMotion::FinalIK::IKSolverVR::dyn_legs() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::dyn_legs");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "legs"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::IKSolverVR::Leg*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Arm[] arms
  ::ArrayW<::RootMotion::FinalIK::IKSolverVR::Arm*>& RootMotion::FinalIK::IKSolverVR::dyn_arms() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::dyn_arms");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "arms"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::IKSolverVR::Arm*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 headPosition
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::dyn_headPosition() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::dyn_headPosition");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "headPosition"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 headDeltaPosition
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::dyn_headDeltaPosition() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::dyn_headDeltaPosition");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "headDeltaPosition"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 raycastOriginPelvis
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::dyn_raycastOriginPelvis() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::dyn_raycastOriginPelvis");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "raycastOriginPelvis"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 lastOffset
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::dyn_lastOffset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::dyn_lastOffset");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "lastOffset"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 debugPos1
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::dyn_debugPos1() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::dyn_debugPos1");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "debugPos1"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 debugPos2
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::dyn_debugPos2() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::dyn_debugPos2");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "debugPos2"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 debugPos3
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::dyn_debugPos3() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::dyn_debugPos3");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "debugPos3"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 debugPos4
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::dyn_debugPos4() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::dyn_debugPos4");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "debugPos4"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR.get_rootBone
  ::RootMotion::FinalIK::IKSolverVR::VirtualBone* RootMotion::FinalIK::IKSolverVR::get_rootBone() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::get_rootBone");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_rootBone", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKSolverVR::VirtualBone*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR.set_rootBone
  void RootMotion::FinalIK::IKSolverVR::set_rootBone(::RootMotion::FinalIK::IKSolverVR::VirtualBone* value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::set_rootBone");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "set_rootBone", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(value)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, value);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR.SetToReferences
  void RootMotion::FinalIK::IKSolverVR::SetToReferences(::RootMotion::FinalIK::VRIK::References* references) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::SetToReferences");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SetToReferences", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(references)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, references);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR.GuessHandOrientations
  void RootMotion::FinalIK::IKSolverVR::GuessHandOrientations(::RootMotion::FinalIK::VRIK::References* references, bool onlyIfZero) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::GuessHandOrientations");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GuessHandOrientations", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(references), ::il2cpp_utils::ExtractType(onlyIfZero)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, references, onlyIfZero);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR.DefaultAnimationCurves
  void RootMotion::FinalIK::IKSolverVR::DefaultAnimationCurves() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::DefaultAnimationCurves");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "DefaultAnimationCurves", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR.AddPositionOffset
  void RootMotion::FinalIK::IKSolverVR::AddPositionOffset(::RootMotion::FinalIK::IKSolverVR::PositionOffset positionOffset, ::UnityEngine::Vector3 value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::AddPositionOffset");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "AddPositionOffset", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(positionOffset), ::il2cpp_utils::ExtractType(value)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, positionOffset, value);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR.AddRotationOffset
  void RootMotion::FinalIK::IKSolverVR::AddRotationOffset(::RootMotion::FinalIK::IKSolverVR::RotationOffset rotationOffset, ::UnityEngine::Vector3 value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::AddRotationOffset");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "AddRotationOffset", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(rotationOffset), ::il2cpp_utils::ExtractType(value)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, rotationOffset, value);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR.AddRotationOffset
  void RootMotion::FinalIK::IKSolverVR::AddRotationOffset(::RootMotion::FinalIK::IKSolverVR::RotationOffset rotationOffset, ::UnityEngine::Quaternion value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::AddRotationOffset");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "AddRotationOffset", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(rotationOffset), ::il2cpp_utils::ExtractType(value)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, rotationOffset, value);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR.AddPlatformMotion
  void RootMotion::FinalIK::IKSolverVR::AddPlatformMotion(::UnityEngine::Vector3 deltaPosition, ::UnityEngine::Quaternion deltaRotation, ::UnityEngine::Vector3 platformPivot) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::AddPlatformMotion");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "AddPlatformMotion", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(deltaPosition), ::il2cpp_utils::ExtractType(deltaRotation), ::il2cpp_utils::ExtractType(platformPivot)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, deltaPosition, deltaRotation, platformPivot);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR.Reset
  void RootMotion::FinalIK::IKSolverVR::Reset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Reset");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Reset", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR.GetNormal
  ::UnityEngine::Vector3 RootMotion::FinalIK::IKSolverVR::GetNormal(::ArrayW<::UnityEngine::Transform*> transforms) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::GetNormal");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetNormal", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(transforms)})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method, transforms);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR.GuessWristToPalmAxis
  ::UnityEngine::Vector3 RootMotion::FinalIK::IKSolverVR::GuessWristToPalmAxis(::UnityEngine::Transform* hand, ::UnityEngine::Transform* forearm) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::GuessWristToPalmAxis");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GuessWristToPalmAxis", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(hand), ::il2cpp_utils::ExtractType(forearm)})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method, hand, forearm);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR.GuessPalmToThumbAxis
  ::UnityEngine::Vector3 RootMotion::FinalIK::IKSolverVR::GuessPalmToThumbAxis(::UnityEngine::Transform* hand, ::UnityEngine::Transform* forearm) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::GuessPalmToThumbAxis");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GuessPalmToThumbAxis", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(hand), ::il2cpp_utils::ExtractType(forearm)})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method, hand, forearm);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR.GetSineKeyframes
  ::ArrayW<::UnityEngine::Keyframe> RootMotion::FinalIK::IKSolverVR::GetSineKeyframes(float mag) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::GetSineKeyframes");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod("RootMotion.FinalIK", "IKSolverVR", "GetSineKeyframes", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(mag)})));
    return ::il2cpp_utils::RunMethodRethrow<::ArrayW<::UnityEngine::Keyframe>, false>(static_cast<Il2CppObject*>(nullptr), ___internal__method, mag);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR.UpdateSolverTransforms
  void RootMotion::FinalIK::IKSolverVR::UpdateSolverTransforms() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::UpdateSolverTransforms");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "UpdateSolverTransforms", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR.WriteTransforms
  void RootMotion::FinalIK::IKSolverVR::WriteTransforms() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::WriteTransforms");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "WriteTransforms", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR.Read
  void RootMotion::FinalIK::IKSolverVR::Read(::ArrayW<::UnityEngine::Vector3> positions, ::ArrayW<::UnityEngine::Quaternion> rotations, bool hasChest, bool hasNeck, bool hasShoulders, bool hasToes, bool hasLegs) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Read");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Read", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(positions), ::il2cpp_utils::ExtractType(rotations), ::il2cpp_utils::ExtractType(hasChest), ::il2cpp_utils::ExtractType(hasNeck), ::il2cpp_utils::ExtractType(hasShoulders), ::il2cpp_utils::ExtractType(hasToes), ::il2cpp_utils::ExtractType(hasLegs)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, positions, rotations, hasChest, hasNeck, hasShoulders, hasToes, hasLegs);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR.Solve
  void RootMotion::FinalIK::IKSolverVR::Solve() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Solve");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Solve", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR.GetPosition
  ::UnityEngine::Vector3 RootMotion::FinalIK::IKSolverVR::GetPosition(int index) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::GetPosition");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetPosition", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(index)})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method, index);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR.GetRotation
  ::UnityEngine::Quaternion RootMotion::FinalIK::IKSolverVR::GetRotation(int index) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::GetRotation");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetRotation", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(index)})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Quaternion, false>(this, ___internal__method, index);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR.Write
  void RootMotion::FinalIK::IKSolverVR::Write() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Write");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Write", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR.GetPelvisOffset
  ::UnityEngine::Vector3 RootMotion::FinalIK::IKSolverVR::GetPelvisOffset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::GetPelvisOffset");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetPelvisOffset", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR.StoreDefaultLocalState
  void RootMotion::FinalIK::IKSolverVR::StoreDefaultLocalState() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::StoreDefaultLocalState");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "StoreDefaultLocalState", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR.FixTransforms
  void RootMotion::FinalIK::IKSolverVR::FixTransforms() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::FixTransforms");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "FixTransforms", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR.GetPoints
  ::ArrayW<::RootMotion::FinalIK::IKSolver::Point*> RootMotion::FinalIK::IKSolverVR::GetPoints() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::GetPoints");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetPoints", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::ArrayW<::RootMotion::FinalIK::IKSolver::Point*>, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR.GetPoint
  ::RootMotion::FinalIK::IKSolver::Point* RootMotion::FinalIK::IKSolverVR::GetPoint(::UnityEngine::Transform* transform) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::GetPoint");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetPoint", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(transform)})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKSolver::Point*, false>(this, ___internal__method, transform);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR.IsValid
  bool RootMotion::FinalIK::IKSolverVR::IsValid(ByRef<::StringW> message) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::IsValid");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "IsValid", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(message)})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method, byref(message));
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR.OnInitiate
  void RootMotion::FinalIK::IKSolverVR::OnInitiate() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::OnInitiate");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnInitiate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR.OnUpdate
  void RootMotion::FinalIK::IKSolverVR::OnUpdate() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::OnUpdate");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnUpdate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Arm
  #include "RootMotion/FinalIK/IKSolverVR_Arm.hpp"
  // Including type: UnityEngine.AnimationCurve
  #include "UnityEngine/AnimationCurve.hpp"
  // Including type: UnityEngine.Transform
  #include "UnityEngine/Transform.hpp"
  // Including type: UnityEngine.Color
  #include "UnityEngine/Color.hpp"
  // Including type: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.VirtualBone
  #include "RootMotion/FinalIK/IKSolverVR_VirtualBone.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated static field getter
  // Get static field: static private System.Single yawOffsetAngle
  float RootMotion::FinalIK::IKSolverVR::Arm::_get_yawOffsetAngle() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::_get_yawOffsetAngle");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<float>("RootMotion.FinalIK", "IKSolverVR/Arm", "yawOffsetAngle"));
  }
  // Autogenerated static field setter
  // Set static field: static private System.Single yawOffsetAngle
  void RootMotion::FinalIK::IKSolverVR::Arm::_set_yawOffsetAngle(float value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::_set_yawOffsetAngle");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "IKSolverVR/Arm", "yawOffsetAngle", value));
  }
  // Autogenerated static field getter
  // Get static field: static private System.Single pitchOffsetAngle
  float RootMotion::FinalIK::IKSolverVR::Arm::_get_pitchOffsetAngle() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::_get_pitchOffsetAngle");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<float>("RootMotion.FinalIK", "IKSolverVR/Arm", "pitchOffsetAngle"));
  }
  // Autogenerated static field setter
  // Set static field: static private System.Single pitchOffsetAngle
  void RootMotion::FinalIK::IKSolverVR::Arm::_set_pitchOffsetAngle(float value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::_set_pitchOffsetAngle");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "IKSolverVR/Arm", "pitchOffsetAngle", value));
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Transform target
  ::UnityEngine::Transform*& RootMotion::FinalIK::IKSolverVR::Arm::dyn_target() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::dyn_target");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "target"))->offset;
    return *reinterpret_cast<::UnityEngine::Transform**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Transform bendGoal
  ::UnityEngine::Transform*& RootMotion::FinalIK::IKSolverVR::Arm::dyn_bendGoal() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::dyn_bendGoal");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "bendGoal"))->offset;
    return *reinterpret_cast<::UnityEngine::Transform**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single positionWeight
  float& RootMotion::FinalIK::IKSolverVR::Arm::dyn_positionWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::dyn_positionWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "positionWeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single rotationWeight
  float& RootMotion::FinalIK::IKSolverVR::Arm::dyn_rotationWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::dyn_rotationWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "rotationWeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Arm/RootMotion.FinalIK.ShoulderRotationMode shoulderRotationMode
  ::RootMotion::FinalIK::IKSolverVR::Arm::ShoulderRotationMode& RootMotion::FinalIK::IKSolverVR::Arm::dyn_shoulderRotationMode() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::dyn_shoulderRotationMode");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "shoulderRotationMode"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IKSolverVR::Arm::ShoulderRotationMode*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single shoulderRotationWeight
  float& RootMotion::FinalIK::IKSolverVR::Arm::dyn_shoulderRotationWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::dyn_shoulderRotationWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "shoulderRotationWeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single shoulderTwistWeight
  float& RootMotion::FinalIK::IKSolverVR::Arm::dyn_shoulderTwistWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::dyn_shoulderTwistWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "shoulderTwistWeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single bendGoalWeight
  float& RootMotion::FinalIK::IKSolverVR::Arm::dyn_bendGoalWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::dyn_bendGoalWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "bendGoalWeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single swivelOffset
  float& RootMotion::FinalIK::IKSolverVR::Arm::dyn_swivelOffset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::dyn_swivelOffset");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "swivelOffset"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 wristToPalmAxis
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::Arm::dyn_wristToPalmAxis() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::dyn_wristToPalmAxis");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "wristToPalmAxis"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 palmToThumbAxis
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::Arm::dyn_palmToThumbAxis() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::dyn_palmToThumbAxis");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "palmToThumbAxis"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single armLengthMlp
  float& RootMotion::FinalIK::IKSolverVR::Arm::dyn_armLengthMlp() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::dyn_armLengthMlp");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "armLengthMlp"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.AnimationCurve stretchCurve
  ::UnityEngine::AnimationCurve*& RootMotion::FinalIK::IKSolverVR::Arm::dyn_stretchCurve() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::dyn_stretchCurve");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "stretchCurve"))->offset;
    return *reinterpret_cast<::UnityEngine::AnimationCurve**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 IKPosition
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::Arm::dyn_IKPosition() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::dyn_IKPosition");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "IKPosition"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Quaternion IKRotation
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverVR::Arm::dyn_IKRotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::dyn_IKRotation");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "IKRotation"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 bendDirection
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::Arm::dyn_bendDirection() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::dyn_bendDirection");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "bendDirection"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 handPositionOffset
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::Arm::dyn_handPositionOffset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::dyn_handPositionOffset");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "handPositionOffset"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 <position>k__BackingField
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::Arm::dyn_$position$k__BackingField() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::dyn_$position$k__BackingField");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<position>k__BackingField"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Quaternion <rotation>k__BackingField
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverVR::Arm::dyn_$rotation$k__BackingField() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::dyn_$rotation$k__BackingField");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<rotation>k__BackingField"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean hasShoulder
  bool& RootMotion::FinalIK::IKSolverVR::Arm::dyn_hasShoulder() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::dyn_hasShoulder");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "hasShoulder"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 chestForwardAxis
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::Arm::dyn_chestForwardAxis() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::dyn_chestForwardAxis");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "chestForwardAxis"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 chestUpAxis
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::Arm::dyn_chestUpAxis() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::dyn_chestUpAxis");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "chestUpAxis"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Quaternion chestRotation
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverVR::Arm::dyn_chestRotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::dyn_chestRotation");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "chestRotation"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 chestForward
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::Arm::dyn_chestForward() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::dyn_chestForward");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "chestForward"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 chestUp
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::Arm::dyn_chestUp() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::dyn_chestUp");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "chestUp"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Quaternion forearmRelToUpperArm
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverVR::Arm::dyn_forearmRelToUpperArm() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::dyn_forearmRelToUpperArm");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "forearmRelToUpperArm"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 upperArmBendAxis
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::Arm::dyn_upperArmBendAxis() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::dyn_upperArmBendAxis");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "upperArmBendAxis"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Arm.get_position
  ::UnityEngine::Vector3 RootMotion::FinalIK::IKSolverVR::Arm::get_position() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::get_position");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_position", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Arm.set_position
  void RootMotion::FinalIK::IKSolverVR::Arm::set_position(::UnityEngine::Vector3 value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::set_position");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "set_position", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(value)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, value);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Arm.get_rotation
  ::UnityEngine::Quaternion RootMotion::FinalIK::IKSolverVR::Arm::get_rotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::get_rotation");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_rotation", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Quaternion, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Arm.set_rotation
  void RootMotion::FinalIK::IKSolverVR::Arm::set_rotation(::UnityEngine::Quaternion value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::set_rotation");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "set_rotation", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(value)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, value);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Arm.get_shoulder
  ::RootMotion::FinalIK::IKSolverVR::VirtualBone* RootMotion::FinalIK::IKSolverVR::Arm::get_shoulder() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::get_shoulder");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_shoulder", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKSolverVR::VirtualBone*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Arm.get_upperArm
  ::RootMotion::FinalIK::IKSolverVR::VirtualBone* RootMotion::FinalIK::IKSolverVR::Arm::get_upperArm() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::get_upperArm");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_upperArm", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKSolverVR::VirtualBone*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Arm.get_forearm
  ::RootMotion::FinalIK::IKSolverVR::VirtualBone* RootMotion::FinalIK::IKSolverVR::Arm::get_forearm() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::get_forearm");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_forearm", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKSolverVR::VirtualBone*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Arm.get_hand
  ::RootMotion::FinalIK::IKSolverVR::VirtualBone* RootMotion::FinalIK::IKSolverVR::Arm::get_hand() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::get_hand");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_hand", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKSolverVR::VirtualBone*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Arm.Stretching
  void RootMotion::FinalIK::IKSolverVR::Arm::Stretching() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::Stretching");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Stretching", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Arm.Solve
  void RootMotion::FinalIK::IKSolverVR::Arm::Solve(bool isLeft) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::Solve");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Solve", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(isLeft)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, isLeft);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Arm.DamperValue
  float RootMotion::FinalIK::IKSolverVR::Arm::DamperValue(float value, float min, float max, float weight) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::DamperValue");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "DamperValue", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(value), ::il2cpp_utils::ExtractType(min), ::il2cpp_utils::ExtractType(max), ::il2cpp_utils::ExtractType(weight)})));
    return ::il2cpp_utils::RunMethodRethrow<float, false>(this, ___internal__method, value, min, max, weight);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Arm.GetBendNormal
  ::UnityEngine::Vector3 RootMotion::FinalIK::IKSolverVR::Arm::GetBendNormal(::UnityEngine::Vector3 dir) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::GetBendNormal");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetBendNormal", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(dir)})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method, dir);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Arm.Visualize
  void RootMotion::FinalIK::IKSolverVR::Arm::Visualize(::RootMotion::FinalIK::IKSolverVR::VirtualBone* bone1, ::RootMotion::FinalIK::IKSolverVR::VirtualBone* bone2, ::RootMotion::FinalIK::IKSolverVR::VirtualBone* bone3, ::UnityEngine::Color color) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::Visualize");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Visualize", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(bone1), ::il2cpp_utils::ExtractType(bone2), ::il2cpp_utils::ExtractType(bone3), ::il2cpp_utils::ExtractType(color)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, bone1, bone2, bone3, color);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Arm.OnRead
  void RootMotion::FinalIK::IKSolverVR::Arm::OnRead(::ArrayW<::UnityEngine::Vector3> positions, ::ArrayW<::UnityEngine::Quaternion> rotations, bool hasChest, bool hasNeck, bool hasShoulders, bool hasToes, bool hasLegs, int rootIndex, int index) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::OnRead");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnRead", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(positions), ::il2cpp_utils::ExtractType(rotations), ::il2cpp_utils::ExtractType(hasChest), ::il2cpp_utils::ExtractType(hasNeck), ::il2cpp_utils::ExtractType(hasShoulders), ::il2cpp_utils::ExtractType(hasToes), ::il2cpp_utils::ExtractType(hasLegs), ::il2cpp_utils::ExtractType(rootIndex), ::il2cpp_utils::ExtractType(index)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, positions, rotations, hasChest, hasNeck, hasShoulders, hasToes, hasLegs, rootIndex, index);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Arm.PreSolve
  void RootMotion::FinalIK::IKSolverVR::Arm::PreSolve() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::PreSolve");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "PreSolve", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Arm.ApplyOffsets
  void RootMotion::FinalIK::IKSolverVR::Arm::ApplyOffsets() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::ApplyOffsets");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "ApplyOffsets", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Arm.ResetOffsets
  void RootMotion::FinalIK::IKSolverVR::Arm::ResetOffsets() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::ResetOffsets");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "ResetOffsets", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Arm.Write
  void RootMotion::FinalIK::IKSolverVR::Arm::Write(ByRef<::ArrayW<::UnityEngine::Vector3>> solvedPositions, ByRef<::ArrayW<::UnityEngine::Quaternion>> solvedRotations) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::Write");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Write", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(solvedPositions), ::il2cpp_utils::ExtractType(solvedRotations)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, byref(solvedPositions), byref(solvedRotations));
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Arm/RootMotion.FinalIK.ShoulderRotationMode
  #include "RootMotion/FinalIK/IKSolverVR_Arm.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Arm/RootMotion.FinalIK.ShoulderRotationMode YawPitch
  ::RootMotion::FinalIK::IKSolverVR::Arm::ShoulderRotationMode RootMotion::FinalIK::IKSolverVR::Arm::ShoulderRotationMode::_get_YawPitch() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::ShoulderRotationMode::_get_YawPitch");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::IKSolverVR::Arm::ShoulderRotationMode>("RootMotion.FinalIK", "IKSolverVR/Arm/ShoulderRotationMode", "YawPitch"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Arm/RootMotion.FinalIK.ShoulderRotationMode YawPitch
  void RootMotion::FinalIK::IKSolverVR::Arm::ShoulderRotationMode::_set_YawPitch(::RootMotion::FinalIK::IKSolverVR::Arm::ShoulderRotationMode value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::ShoulderRotationMode::_set_YawPitch");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "IKSolverVR/Arm/ShoulderRotationMode", "YawPitch", value));
  }
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Arm/RootMotion.FinalIK.ShoulderRotationMode FromTo
  ::RootMotion::FinalIK::IKSolverVR::Arm::ShoulderRotationMode RootMotion::FinalIK::IKSolverVR::Arm::ShoulderRotationMode::_get_FromTo() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::ShoulderRotationMode::_get_FromTo");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::IKSolverVR::Arm::ShoulderRotationMode>("RootMotion.FinalIK", "IKSolverVR/Arm/ShoulderRotationMode", "FromTo"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Arm/RootMotion.FinalIK.ShoulderRotationMode FromTo
  void RootMotion::FinalIK::IKSolverVR::Arm::ShoulderRotationMode::_set_FromTo(::RootMotion::FinalIK::IKSolverVR::Arm::ShoulderRotationMode value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::ShoulderRotationMode::_set_FromTo");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "IKSolverVR/Arm/ShoulderRotationMode", "FromTo", value));
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Int32 value__
  int& RootMotion::FinalIK::IKSolverVR::Arm::ShoulderRotationMode::dyn_value__() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Arm::ShoulderRotationMode::dyn_value__");
    auto ___internal__instance = *this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "value__"))->offset;
    return *reinterpret_cast<int*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.BodyPart
  #include "RootMotion/FinalIK/IKSolverVR_BodyPart.hpp"
  // Including type: UnityEngine.Color
  #include "UnityEngine/Color.hpp"
  // Including type: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.VirtualBone
  #include "RootMotion/FinalIK/IKSolverVR_VirtualBone.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: private System.Single <sqrMag>k__BackingField
  float& RootMotion::FinalIK::IKSolverVR::BodyPart::dyn_$sqrMag$k__BackingField() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::BodyPart::dyn_$sqrMag$k__BackingField");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<sqrMag>k__BackingField"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single <mag>k__BackingField
  float& RootMotion::FinalIK::IKSolverVR::BodyPart::dyn_$mag$k__BackingField() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::BodyPart::dyn_$mag$k__BackingField");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<mag>k__BackingField"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.VirtualBone[] bones
  ::ArrayW<::RootMotion::FinalIK::IKSolverVR::VirtualBone*>& RootMotion::FinalIK::IKSolverVR::BodyPart::dyn_bones() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::BodyPart::dyn_bones");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "bones"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::IKSolverVR::VirtualBone*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: protected System.Boolean initiated
  bool& RootMotion::FinalIK::IKSolverVR::BodyPart::dyn_initiated() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::BodyPart::dyn_initiated");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "initiated"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: protected UnityEngine.Vector3 rootPosition
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::BodyPart::dyn_rootPosition() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::BodyPart::dyn_rootPosition");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "rootPosition"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: protected UnityEngine.Quaternion rootRotation
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverVR::BodyPart::dyn_rootRotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::BodyPart::dyn_rootRotation");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "rootRotation"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: protected System.Int32 index
  int& RootMotion::FinalIK::IKSolverVR::BodyPart::dyn_index() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::BodyPart::dyn_index");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "index"))->offset;
    return *reinterpret_cast<int*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: protected System.Int32 LOD
  int& RootMotion::FinalIK::IKSolverVR::BodyPart::dyn_LOD() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::BodyPart::dyn_LOD");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "LOD"))->offset;
    return *reinterpret_cast<int*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.BodyPart.get_sqrMag
  float RootMotion::FinalIK::IKSolverVR::BodyPart::get_sqrMag() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::BodyPart::get_sqrMag");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_sqrMag", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<float, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.BodyPart.set_sqrMag
  void RootMotion::FinalIK::IKSolverVR::BodyPart::set_sqrMag(float value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::BodyPart::set_sqrMag");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "set_sqrMag", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(value)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, value);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.BodyPart.get_mag
  float RootMotion::FinalIK::IKSolverVR::BodyPart::get_mag() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::BodyPart::get_mag");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_mag", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<float, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.BodyPart.set_mag
  void RootMotion::FinalIK::IKSolverVR::BodyPart::set_mag(float value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::BodyPart::set_mag");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "set_mag", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(value)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, value);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.BodyPart.OnRead
  void RootMotion::FinalIK::IKSolverVR::BodyPart::OnRead(::ArrayW<::UnityEngine::Vector3> positions, ::ArrayW<::UnityEngine::Quaternion> rotations, bool hasChest, bool hasNeck, bool hasShoulders, bool hasToes, bool hasLegs, int rootIndex, int index) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::BodyPart::OnRead");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnRead", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(positions), ::il2cpp_utils::ExtractType(rotations), ::il2cpp_utils::ExtractType(hasChest), ::il2cpp_utils::ExtractType(hasNeck), ::il2cpp_utils::ExtractType(hasShoulders), ::il2cpp_utils::ExtractType(hasToes), ::il2cpp_utils::ExtractType(hasLegs), ::il2cpp_utils::ExtractType(rootIndex), ::il2cpp_utils::ExtractType(index)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, positions, rotations, hasChest, hasNeck, hasShoulders, hasToes, hasLegs, rootIndex, index);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.BodyPart.PreSolve
  void RootMotion::FinalIK::IKSolverVR::BodyPart::PreSolve() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::BodyPart::PreSolve");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "PreSolve", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.BodyPart.Write
  void RootMotion::FinalIK::IKSolverVR::BodyPart::Write(ByRef<::ArrayW<::UnityEngine::Vector3>> solvedPositions, ByRef<::ArrayW<::UnityEngine::Quaternion>> solvedRotations) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::BodyPart::Write");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Write", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(solvedPositions), ::il2cpp_utils::ExtractType(solvedRotations)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, byref(solvedPositions), byref(solvedRotations));
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.BodyPart.ApplyOffsets
  void RootMotion::FinalIK::IKSolverVR::BodyPart::ApplyOffsets() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::BodyPart::ApplyOffsets");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "ApplyOffsets", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.BodyPart.ResetOffsets
  void RootMotion::FinalIK::IKSolverVR::BodyPart::ResetOffsets() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::BodyPart::ResetOffsets");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "ResetOffsets", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.BodyPart.SetLOD
  void RootMotion::FinalIK::IKSolverVR::BodyPart::SetLOD(int LOD) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::BodyPart::SetLOD");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SetLOD", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(LOD)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, LOD);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.BodyPart.Read
  void RootMotion::FinalIK::IKSolverVR::BodyPart::Read(::ArrayW<::UnityEngine::Vector3> positions, ::ArrayW<::UnityEngine::Quaternion> rotations, bool hasChest, bool hasNeck, bool hasShoulders, bool hasToes, bool hasLegs, int rootIndex, int index) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::BodyPart::Read");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Read", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(positions), ::il2cpp_utils::ExtractType(rotations), ::il2cpp_utils::ExtractType(hasChest), ::il2cpp_utils::ExtractType(hasNeck), ::il2cpp_utils::ExtractType(hasShoulders), ::il2cpp_utils::ExtractType(hasToes), ::il2cpp_utils::ExtractType(hasLegs), ::il2cpp_utils::ExtractType(rootIndex), ::il2cpp_utils::ExtractType(index)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, positions, rotations, hasChest, hasNeck, hasShoulders, hasToes, hasLegs, rootIndex, index);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.BodyPart.MovePosition
  void RootMotion::FinalIK::IKSolverVR::BodyPart::MovePosition(::UnityEngine::Vector3 position) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::BodyPart::MovePosition");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "MovePosition", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(position)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, position);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.BodyPart.MoveRotation
  void RootMotion::FinalIK::IKSolverVR::BodyPart::MoveRotation(::UnityEngine::Quaternion rotation) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::BodyPart::MoveRotation");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "MoveRotation", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(rotation)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, rotation);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.BodyPart.Translate
  void RootMotion::FinalIK::IKSolverVR::BodyPart::Translate(::UnityEngine::Vector3 position, ::UnityEngine::Quaternion rotation) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::BodyPart::Translate");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Translate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(position), ::il2cpp_utils::ExtractType(rotation)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, position, rotation);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.BodyPart.TranslateRoot
  void RootMotion::FinalIK::IKSolverVR::BodyPart::TranslateRoot(::UnityEngine::Vector3 newRootPos, ::UnityEngine::Quaternion newRootRot) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::BodyPart::TranslateRoot");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "TranslateRoot", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(newRootPos), ::il2cpp_utils::ExtractType(newRootRot)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, newRootPos, newRootRot);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.BodyPart.RotateTo
  void RootMotion::FinalIK::IKSolverVR::BodyPart::RotateTo(::RootMotion::FinalIK::IKSolverVR::VirtualBone* bone, ::UnityEngine::Quaternion rotation, float weight) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::BodyPart::RotateTo");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "RotateTo", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(bone), ::il2cpp_utils::ExtractType(rotation), ::il2cpp_utils::ExtractType(weight)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, bone, rotation, weight);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.BodyPart.Visualize
  void RootMotion::FinalIK::IKSolverVR::BodyPart::Visualize(::UnityEngine::Color color) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::BodyPart::Visualize");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Visualize", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(color)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, color);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.BodyPart.Visualize
  void RootMotion::FinalIK::IKSolverVR::BodyPart::Visualize() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::BodyPart::Visualize");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Visualize", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Footstep
  #include "RootMotion/FinalIK/IKSolverVR_Footstep.hpp"
  // Including type: RootMotion.InterpolationMode
  #include "RootMotion/InterpolationMode.hpp"
  // Including type: UnityEngine.Events.UnityEvent
  #include "UnityEngine/Events/UnityEvent.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public System.Single stepSpeed
  float& RootMotion::FinalIK::IKSolverVR::Footstep::dyn_stepSpeed() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Footstep::dyn_stepSpeed");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "stepSpeed"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 characterSpaceOffset
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::Footstep::dyn_characterSpaceOffset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Footstep::dyn_characterSpaceOffset");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "characterSpaceOffset"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 position
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::Footstep::dyn_position() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Footstep::dyn_position");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "position"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Quaternion rotation
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverVR::Footstep::dyn_rotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Footstep::dyn_rotation");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "rotation"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Quaternion stepToRootRot
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverVR::Footstep::dyn_stepToRootRot() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Footstep::dyn_stepToRootRot");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "stepToRootRot"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Boolean isSupportLeg
  bool& RootMotion::FinalIK::IKSolverVR::Footstep::dyn_isSupportLeg() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Footstep::dyn_isSupportLeg");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "isSupportLeg"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single <stepProgress>k__BackingField
  float& RootMotion::FinalIK::IKSolverVR::Footstep::dyn_$stepProgress$k__BackingField() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Footstep::dyn_$stepProgress$k__BackingField");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<stepProgress>k__BackingField"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 stepFrom
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::Footstep::dyn_stepFrom() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Footstep::dyn_stepFrom");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "stepFrom"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 stepTo
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::Footstep::dyn_stepTo() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Footstep::dyn_stepTo");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "stepTo"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Quaternion stepFromRot
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverVR::Footstep::dyn_stepFromRot() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Footstep::dyn_stepFromRot");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "stepFromRot"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Quaternion stepToRot
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverVR::Footstep::dyn_stepToRot() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Footstep::dyn_stepToRot");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "stepToRot"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Quaternion footRelativeToRoot
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverVR::Footstep::dyn_footRelativeToRoot() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Footstep::dyn_footRelativeToRoot");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "footRelativeToRoot"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single supportLegW
  float& RootMotion::FinalIK::IKSolverVR::Footstep::dyn_supportLegW() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Footstep::dyn_supportLegW");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "supportLegW"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single supportLegWV
  float& RootMotion::FinalIK::IKSolverVR::Footstep::dyn_supportLegWV() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Footstep::dyn_supportLegWV");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "supportLegWV"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Footstep.get_isStepping
  bool RootMotion::FinalIK::IKSolverVR::Footstep::get_isStepping() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Footstep::get_isStepping");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_isStepping", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Footstep.get_stepProgress
  float RootMotion::FinalIK::IKSolverVR::Footstep::get_stepProgress() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Footstep::get_stepProgress");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_stepProgress", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<float, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Footstep.set_stepProgress
  void RootMotion::FinalIK::IKSolverVR::Footstep::set_stepProgress(float value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Footstep::set_stepProgress");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "set_stepProgress", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(value)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, value);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Footstep.Reset
  void RootMotion::FinalIK::IKSolverVR::Footstep::Reset(::UnityEngine::Quaternion rootRotation, ::UnityEngine::Vector3 footPosition, ::UnityEngine::Quaternion footRotation) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Footstep::Reset");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Reset", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(rootRotation), ::il2cpp_utils::ExtractType(footPosition), ::il2cpp_utils::ExtractType(footRotation)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, rootRotation, footPosition, footRotation);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Footstep.StepTo
  void RootMotion::FinalIK::IKSolverVR::Footstep::StepTo(::UnityEngine::Vector3 p, ::UnityEngine::Quaternion rootRotation, float stepThreshold) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Footstep::StepTo");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "StepTo", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(p), ::il2cpp_utils::ExtractType(rootRotation), ::il2cpp_utils::ExtractType(stepThreshold)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, p, rootRotation, stepThreshold);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Footstep.UpdateStepping
  void RootMotion::FinalIK::IKSolverVR::Footstep::UpdateStepping(::UnityEngine::Vector3 p, ::UnityEngine::Quaternion rootRotation, float speed) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Footstep::UpdateStepping");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "UpdateStepping", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(p), ::il2cpp_utils::ExtractType(rootRotation), ::il2cpp_utils::ExtractType(speed)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, p, rootRotation, speed);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Footstep.UpdateStanding
  void RootMotion::FinalIK::IKSolverVR::Footstep::UpdateStanding(::UnityEngine::Quaternion rootRotation, float minAngle, float speed) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Footstep::UpdateStanding");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "UpdateStanding", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(rootRotation), ::il2cpp_utils::ExtractType(minAngle), ::il2cpp_utils::ExtractType(speed)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, rootRotation, minAngle, speed);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Footstep.Update
  void RootMotion::FinalIK::IKSolverVR::Footstep::Update(::RootMotion::InterpolationMode interpolation, ::UnityEngine::Events::UnityEvent* onStep) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Footstep::Update");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Update", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(interpolation), ::il2cpp_utils::ExtractType(onStep)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, interpolation, onStep);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Leg
  #include "RootMotion/FinalIK/IKSolverVR_Leg.hpp"
  // Including type: UnityEngine.Transform
  #include "UnityEngine/Transform.hpp"
  // Including type: UnityEngine.AnimationCurve
  #include "UnityEngine/AnimationCurve.hpp"
  // Including type: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.VirtualBone
  #include "RootMotion/FinalIK/IKSolverVR_VirtualBone.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Transform target
  ::UnityEngine::Transform*& RootMotion::FinalIK::IKSolverVR::Leg::dyn_target() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::dyn_target");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "target"))->offset;
    return *reinterpret_cast<::UnityEngine::Transform**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Transform bendGoal
  ::UnityEngine::Transform*& RootMotion::FinalIK::IKSolverVR::Leg::dyn_bendGoal() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::dyn_bendGoal");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "bendGoal"))->offset;
    return *reinterpret_cast<::UnityEngine::Transform**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single positionWeight
  float& RootMotion::FinalIK::IKSolverVR::Leg::dyn_positionWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::dyn_positionWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "positionWeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single rotationWeight
  float& RootMotion::FinalIK::IKSolverVR::Leg::dyn_rotationWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::dyn_rotationWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "rotationWeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single bendGoalWeight
  float& RootMotion::FinalIK::IKSolverVR::Leg::dyn_bendGoalWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::dyn_bendGoalWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "bendGoalWeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single swivelOffset
  float& RootMotion::FinalIK::IKSolverVR::Leg::dyn_swivelOffset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::dyn_swivelOffset");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "swivelOffset"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single bendToTargetWeight
  float& RootMotion::FinalIK::IKSolverVR::Leg::dyn_bendToTargetWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::dyn_bendToTargetWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "bendToTargetWeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single legLengthMlp
  float& RootMotion::FinalIK::IKSolverVR::Leg::dyn_legLengthMlp() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::dyn_legLengthMlp");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "legLengthMlp"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.AnimationCurve stretchCurve
  ::UnityEngine::AnimationCurve*& RootMotion::FinalIK::IKSolverVR::Leg::dyn_stretchCurve() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::dyn_stretchCurve");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "stretchCurve"))->offset;
    return *reinterpret_cast<::UnityEngine::AnimationCurve**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 IKPosition
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::Leg::dyn_IKPosition() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::dyn_IKPosition");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "IKPosition"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Quaternion IKRotation
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverVR::Leg::dyn_IKRotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::dyn_IKRotation");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "IKRotation"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 footPositionOffset
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::Leg::dyn_footPositionOffset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::dyn_footPositionOffset");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "footPositionOffset"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 heelPositionOffset
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::Leg::dyn_heelPositionOffset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::dyn_heelPositionOffset");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "heelPositionOffset"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Quaternion footRotationOffset
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverVR::Leg::dyn_footRotationOffset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::dyn_footRotationOffset");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "footRotationOffset"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single currentMag
  float& RootMotion::FinalIK::IKSolverVR::Leg::dyn_currentMag() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::dyn_currentMag");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "currentMag"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Boolean useAnimatedBendNormal
  bool& RootMotion::FinalIK::IKSolverVR::Leg::dyn_useAnimatedBendNormal() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::dyn_useAnimatedBendNormal");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "useAnimatedBendNormal"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 <position>k__BackingField
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::Leg::dyn_$position$k__BackingField() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::dyn_$position$k__BackingField");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<position>k__BackingField"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Quaternion <rotation>k__BackingField
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverVR::Leg::dyn_$rotation$k__BackingField() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::dyn_$rotation$k__BackingField");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<rotation>k__BackingField"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean <hasToes>k__BackingField
  bool& RootMotion::FinalIK::IKSolverVR::Leg::dyn_$hasToes$k__BackingField() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::dyn_$hasToes$k__BackingField");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<hasToes>k__BackingField"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 <thighRelativeToPelvis>k__BackingField
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::Leg::dyn_$thighRelativeToPelvis$k__BackingField() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::dyn_$thighRelativeToPelvis$k__BackingField");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<thighRelativeToPelvis>k__BackingField"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 footPosition
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::Leg::dyn_footPosition() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::dyn_footPosition");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "footPosition"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Quaternion footRotation
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverVR::Leg::dyn_footRotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::dyn_footRotation");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "footRotation"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 bendNormal
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::Leg::dyn_bendNormal() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::dyn_bendNormal");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "bendNormal"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Quaternion calfRelToThigh
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverVR::Leg::dyn_calfRelToThigh() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::dyn_calfRelToThigh");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "calfRelToThigh"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Quaternion thighRelToFoot
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverVR::Leg::dyn_thighRelToFoot() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::dyn_thighRelToFoot");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "thighRelToFoot"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 bendNormalRelToPelvis
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::Leg::dyn_bendNormalRelToPelvis() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::dyn_bendNormalRelToPelvis");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "bendNormalRelToPelvis"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 bendNormalRelToTarget
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::Leg::dyn_bendNormalRelToTarget() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::dyn_bendNormalRelToTarget");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "bendNormalRelToTarget"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Leg.get_position
  ::UnityEngine::Vector3 RootMotion::FinalIK::IKSolverVR::Leg::get_position() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::get_position");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_position", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Leg.set_position
  void RootMotion::FinalIK::IKSolverVR::Leg::set_position(::UnityEngine::Vector3 value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::set_position");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "set_position", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(value)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, value);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Leg.get_rotation
  ::UnityEngine::Quaternion RootMotion::FinalIK::IKSolverVR::Leg::get_rotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::get_rotation");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_rotation", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Quaternion, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Leg.set_rotation
  void RootMotion::FinalIK::IKSolverVR::Leg::set_rotation(::UnityEngine::Quaternion value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::set_rotation");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "set_rotation", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(value)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, value);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Leg.get_hasToes
  bool RootMotion::FinalIK::IKSolverVR::Leg::get_hasToes() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::get_hasToes");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_hasToes", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Leg.set_hasToes
  void RootMotion::FinalIK::IKSolverVR::Leg::set_hasToes(bool value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::set_hasToes");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "set_hasToes", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(value)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, value);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Leg.get_thigh
  ::RootMotion::FinalIK::IKSolverVR::VirtualBone* RootMotion::FinalIK::IKSolverVR::Leg::get_thigh() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::get_thigh");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_thigh", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKSolverVR::VirtualBone*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Leg.get_calf
  ::RootMotion::FinalIK::IKSolverVR::VirtualBone* RootMotion::FinalIK::IKSolverVR::Leg::get_calf() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::get_calf");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_calf", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKSolverVR::VirtualBone*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Leg.get_foot
  ::RootMotion::FinalIK::IKSolverVR::VirtualBone* RootMotion::FinalIK::IKSolverVR::Leg::get_foot() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::get_foot");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_foot", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKSolverVR::VirtualBone*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Leg.get_toes
  ::RootMotion::FinalIK::IKSolverVR::VirtualBone* RootMotion::FinalIK::IKSolverVR::Leg::get_toes() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::get_toes");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_toes", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKSolverVR::VirtualBone*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Leg.get_lastBone
  ::RootMotion::FinalIK::IKSolverVR::VirtualBone* RootMotion::FinalIK::IKSolverVR::Leg::get_lastBone() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::get_lastBone");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_lastBone", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKSolverVR::VirtualBone*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Leg.get_thighRelativeToPelvis
  ::UnityEngine::Vector3 RootMotion::FinalIK::IKSolverVR::Leg::get_thighRelativeToPelvis() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::get_thighRelativeToPelvis");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_thighRelativeToPelvis", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Leg.set_thighRelativeToPelvis
  void RootMotion::FinalIK::IKSolverVR::Leg::set_thighRelativeToPelvis(::UnityEngine::Vector3 value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::set_thighRelativeToPelvis");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "set_thighRelativeToPelvis", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(value)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, value);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Leg.ApplyPositionOffset
  void RootMotion::FinalIK::IKSolverVR::Leg::ApplyPositionOffset(::UnityEngine::Vector3 offset, float weight) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::ApplyPositionOffset");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "ApplyPositionOffset", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(offset), ::il2cpp_utils::ExtractType(weight)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, offset, weight);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Leg.ApplyRotationOffset
  void RootMotion::FinalIK::IKSolverVR::Leg::ApplyRotationOffset(::UnityEngine::Quaternion offset, float weight) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::ApplyRotationOffset");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "ApplyRotationOffset", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(offset), ::il2cpp_utils::ExtractType(weight)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, offset, weight);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Leg.Solve
  void RootMotion::FinalIK::IKSolverVR::Leg::Solve(bool stretch) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::Solve");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Solve", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(stretch)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, stretch);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Leg.FixTwistRotations
  void RootMotion::FinalIK::IKSolverVR::Leg::FixTwistRotations() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::FixTwistRotations");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "FixTwistRotations", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Leg.Stretching
  void RootMotion::FinalIK::IKSolverVR::Leg::Stretching() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::Stretching");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Stretching", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Leg.OnRead
  void RootMotion::FinalIK::IKSolverVR::Leg::OnRead(::ArrayW<::UnityEngine::Vector3> positions, ::ArrayW<::UnityEngine::Quaternion> rotations, bool hasChest, bool hasNeck, bool hasShoulders, bool hasToes, bool hasLegs, int rootIndex, int index) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::OnRead");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnRead", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(positions), ::il2cpp_utils::ExtractType(rotations), ::il2cpp_utils::ExtractType(hasChest), ::il2cpp_utils::ExtractType(hasNeck), ::il2cpp_utils::ExtractType(hasShoulders), ::il2cpp_utils::ExtractType(hasToes), ::il2cpp_utils::ExtractType(hasLegs), ::il2cpp_utils::ExtractType(rootIndex), ::il2cpp_utils::ExtractType(index)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, positions, rotations, hasChest, hasNeck, hasShoulders, hasToes, hasLegs, rootIndex, index);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Leg.PreSolve
  void RootMotion::FinalIK::IKSolverVR::Leg::PreSolve() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::PreSolve");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "PreSolve", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Leg.ApplyOffsets
  void RootMotion::FinalIK::IKSolverVR::Leg::ApplyOffsets() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::ApplyOffsets");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "ApplyOffsets", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Leg.Write
  void RootMotion::FinalIK::IKSolverVR::Leg::Write(ByRef<::ArrayW<::UnityEngine::Vector3>> solvedPositions, ByRef<::ArrayW<::UnityEngine::Quaternion>> solvedRotations) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::Write");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Write", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(solvedPositions), ::il2cpp_utils::ExtractType(solvedRotations)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, byref(solvedPositions), byref(solvedRotations));
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Leg.ResetOffsets
  void RootMotion::FinalIK::IKSolverVR::Leg::ResetOffsets() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Leg::ResetOffsets");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "ResetOffsets", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Locomotion
  #include "RootMotion/FinalIK/IKSolverVR_Locomotion.hpp"
  // Including type: UnityEngine.AnimationCurve
  #include "UnityEngine/AnimationCurve.hpp"
  // Including type: UnityEngine.Events.UnityEvent
  #include "UnityEngine/Events/UnityEvent.hpp"
  // Including type: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Footstep
  #include "RootMotion/FinalIK/IKSolverVR_Footstep.hpp"
  // Including type: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.VirtualBone
  #include "RootMotion/FinalIK/IKSolverVR_VirtualBone.hpp"
  // Including type: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Spine
  #include "RootMotion/FinalIK/IKSolverVR_Spine.hpp"
  // Including type: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Leg
  #include "RootMotion/FinalIK/IKSolverVR_Leg.hpp"
  // Including type: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Arm
  #include "RootMotion/FinalIK/IKSolverVR_Arm.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public System.Single weight
  float& RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_weight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_weight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "weight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single footDistance
  float& RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_footDistance() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_footDistance");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "footDistance"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single stepThreshold
  float& RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_stepThreshold() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_stepThreshold");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "stepThreshold"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single angleThreshold
  float& RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_angleThreshold() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_angleThreshold");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "angleThreshold"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single comAngleMlp
  float& RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_comAngleMlp() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_comAngleMlp");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "comAngleMlp"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single maxVelocity
  float& RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_maxVelocity() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_maxVelocity");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "maxVelocity"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single velocityFactor
  float& RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_velocityFactor() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_velocityFactor");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "velocityFactor"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single maxLegStretch
  float& RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_maxLegStretch() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_maxLegStretch");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "maxLegStretch"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single rootSpeed
  float& RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_rootSpeed() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_rootSpeed");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "rootSpeed"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single stepSpeed
  float& RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_stepSpeed() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_stepSpeed");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "stepSpeed"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.AnimationCurve stepHeight
  ::UnityEngine::AnimationCurve*& RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_stepHeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_stepHeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "stepHeight"))->offset;
    return *reinterpret_cast<::UnityEngine::AnimationCurve**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.AnimationCurve heelHeight
  ::UnityEngine::AnimationCurve*& RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_heelHeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_heelHeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "heelHeight"))->offset;
    return *reinterpret_cast<::UnityEngine::AnimationCurve**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single relaxLegTwistMinAngle
  float& RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_relaxLegTwistMinAngle() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_relaxLegTwistMinAngle");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "relaxLegTwistMinAngle"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single relaxLegTwistSpeed
  float& RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_relaxLegTwistSpeed() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_relaxLegTwistSpeed");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "relaxLegTwistSpeed"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.InterpolationMode stepInterpolation
  ::RootMotion::InterpolationMode& RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_stepInterpolation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_stepInterpolation");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "stepInterpolation"))->offset;
    return *reinterpret_cast<::RootMotion::InterpolationMode*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 offset
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_offset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_offset");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "offset"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Boolean blockingEnabled
  bool& RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_blockingEnabled() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_blockingEnabled");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "blockingEnabled"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.LayerMask blockingLayers
  ::UnityEngine::LayerMask& RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_blockingLayers() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_blockingLayers");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "blockingLayers"))->offset;
    return *reinterpret_cast<::UnityEngine::LayerMask*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single raycastRadius
  float& RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_raycastRadius() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_raycastRadius");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "raycastRadius"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single raycastHeight
  float& RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_raycastHeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_raycastHeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "raycastHeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Events.UnityEvent onLeftFootstep
  ::UnityEngine::Events::UnityEvent*& RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_onLeftFootstep() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_onLeftFootstep");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "onLeftFootstep"))->offset;
    return *reinterpret_cast<::UnityEngine::Events::UnityEvent**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Events.UnityEvent onRightFootstep
  ::UnityEngine::Events::UnityEvent*& RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_onRightFootstep() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_onRightFootstep");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "onRightFootstep"))->offset;
    return *reinterpret_cast<::UnityEngine::Events::UnityEvent**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 <centerOfMass>k__BackingField
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_$centerOfMass$k__BackingField() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_$centerOfMass$k__BackingField");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<centerOfMass>k__BackingField"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Footstep[] footsteps
  ::ArrayW<::RootMotion::FinalIK::IKSolverVR::Footstep*>& RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_footsteps() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_footsteps");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "footsteps"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::IKSolverVR::Footstep*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 lastComPosition
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_lastComPosition() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_lastComPosition");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "lastComPosition"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 comVelocity
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_comVelocity() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_comVelocity");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "comVelocity"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Int32 leftFootIndex
  int& RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_leftFootIndex() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_leftFootIndex");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "leftFootIndex"))->offset;
    return *reinterpret_cast<int*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Int32 rightFootIndex
  int& RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_rightFootIndex() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::dyn_rightFootIndex");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "rightFootIndex"))->offset;
    return *reinterpret_cast<int*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Locomotion.get_centerOfMass
  ::UnityEngine::Vector3 RootMotion::FinalIK::IKSolverVR::Locomotion::get_centerOfMass() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::get_centerOfMass");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_centerOfMass", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Locomotion.set_centerOfMass
  void RootMotion::FinalIK::IKSolverVR::Locomotion::set_centerOfMass(::UnityEngine::Vector3 value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::set_centerOfMass");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "set_centerOfMass", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(value)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, value);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Locomotion.get_leftFootstepPosition
  ::UnityEngine::Vector3 RootMotion::FinalIK::IKSolverVR::Locomotion::get_leftFootstepPosition() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::get_leftFootstepPosition");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_leftFootstepPosition", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Locomotion.get_rightFootstepPosition
  ::UnityEngine::Vector3 RootMotion::FinalIK::IKSolverVR::Locomotion::get_rightFootstepPosition() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::get_rightFootstepPosition");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_rightFootstepPosition", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Locomotion.get_leftFootstepRotation
  ::UnityEngine::Quaternion RootMotion::FinalIK::IKSolverVR::Locomotion::get_leftFootstepRotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::get_leftFootstepRotation");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_leftFootstepRotation", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Quaternion, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Locomotion.get_rightFootstepRotation
  ::UnityEngine::Quaternion RootMotion::FinalIK::IKSolverVR::Locomotion::get_rightFootstepRotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::get_rightFootstepRotation");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_rightFootstepRotation", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Quaternion, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Locomotion.Initiate
  void RootMotion::FinalIK::IKSolverVR::Locomotion::Initiate(::ArrayW<::UnityEngine::Vector3> positions, ::ArrayW<::UnityEngine::Quaternion> rotations, bool hasToes) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::Initiate");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Initiate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(positions), ::il2cpp_utils::ExtractType(rotations), ::il2cpp_utils::ExtractType(hasToes)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, positions, rotations, hasToes);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Locomotion.Reset
  void RootMotion::FinalIK::IKSolverVR::Locomotion::Reset(::ArrayW<::UnityEngine::Vector3> positions, ::ArrayW<::UnityEngine::Quaternion> rotations) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::Reset");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Reset", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(positions), ::il2cpp_utils::ExtractType(rotations)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, positions, rotations);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Locomotion.AddDeltaRotation
  void RootMotion::FinalIK::IKSolverVR::Locomotion::AddDeltaRotation(::UnityEngine::Quaternion delta, ::UnityEngine::Vector3 pivot) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::AddDeltaRotation");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "AddDeltaRotation", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(delta), ::il2cpp_utils::ExtractType(pivot)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, delta, pivot);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Locomotion.AddDeltaPosition
  void RootMotion::FinalIK::IKSolverVR::Locomotion::AddDeltaPosition(::UnityEngine::Vector3 delta) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::AddDeltaPosition");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "AddDeltaPosition", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(delta)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, delta);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Locomotion.Solve
  void RootMotion::FinalIK::IKSolverVR::Locomotion::Solve(::RootMotion::FinalIK::IKSolverVR::VirtualBone* rootBone, ::RootMotion::FinalIK::IKSolverVR::Spine* spine, ::RootMotion::FinalIK::IKSolverVR::Leg* leftLeg, ::RootMotion::FinalIK::IKSolverVR::Leg* rightLeg, ::RootMotion::FinalIK::IKSolverVR::Arm* leftArm, ::RootMotion::FinalIK::IKSolverVR::Arm* rightArm, int supportLegIndex, ByRef<::UnityEngine::Vector3> leftFootPosition, ByRef<::UnityEngine::Vector3> rightFootPosition, ByRef<::UnityEngine::Quaternion> leftFootRotation, ByRef<::UnityEngine::Quaternion> rightFootRotation, ByRef<float> leftFootOffset, ByRef<float> rightFootOffset, ByRef<float> leftHeelOffset, ByRef<float> rightHeelOffset) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::Solve");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Solve", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(rootBone), ::il2cpp_utils::ExtractType(spine), ::il2cpp_utils::ExtractType(leftLeg), ::il2cpp_utils::ExtractType(rightLeg), ::il2cpp_utils::ExtractType(leftArm), ::il2cpp_utils::ExtractType(rightArm), ::il2cpp_utils::ExtractType(supportLegIndex), ::il2cpp_utils::ExtractIndependentType<::UnityEngine::Vector3&>(), ::il2cpp_utils::ExtractIndependentType<::UnityEngine::Vector3&>(), ::il2cpp_utils::ExtractIndependentType<::UnityEngine::Quaternion&>(), ::il2cpp_utils::ExtractIndependentType<::UnityEngine::Quaternion&>(), ::il2cpp_utils::ExtractIndependentType<float&>(), ::il2cpp_utils::ExtractIndependentType<float&>(), ::il2cpp_utils::ExtractIndependentType<float&>(), ::il2cpp_utils::ExtractIndependentType<float&>()})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, rootBone, spine, leftLeg, rightLeg, leftArm, rightArm, supportLegIndex, byref(leftFootPosition), byref(rightFootPosition), byref(leftFootRotation), byref(rightFootRotation), byref(leftFootOffset), byref(rightFootOffset), byref(leftHeelOffset), byref(rightHeelOffset));
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Locomotion.StepBlocked
  bool RootMotion::FinalIK::IKSolverVR::Locomotion::StepBlocked(::UnityEngine::Vector3 fromPosition, ::UnityEngine::Vector3 toPosition, ::UnityEngine::Vector3 rootPosition) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::StepBlocked");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "StepBlocked", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(fromPosition), ::il2cpp_utils::ExtractType(toPosition), ::il2cpp_utils::ExtractType(rootPosition)})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method, fromPosition, toPosition, rootPosition);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Locomotion.CanStep
  bool RootMotion::FinalIK::IKSolverVR::Locomotion::CanStep() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::CanStep");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "CanStep", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Locomotion.GetLineSphereCollision
  bool RootMotion::FinalIK::IKSolverVR::Locomotion::GetLineSphereCollision(::UnityEngine::Vector3 lineStart, ::UnityEngine::Vector3 lineEnd, ::UnityEngine::Vector3 sphereCenter, float sphereRadius) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Locomotion::GetLineSphereCollision");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod("RootMotion.FinalIK", "IKSolverVR/Locomotion", "GetLineSphereCollision", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(lineStart), ::il2cpp_utils::ExtractType(lineEnd), ::il2cpp_utils::ExtractType(sphereCenter), ::il2cpp_utils::ExtractType(sphereRadius)})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(static_cast<Il2CppObject*>(nullptr), ___internal__method, lineStart, lineEnd, sphereCenter, sphereRadius);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Spine
  #include "RootMotion/FinalIK/IKSolverVR_Spine.hpp"
  // Including type: UnityEngine.Transform
  #include "UnityEngine/Transform.hpp"
  // Including type: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.VirtualBone
  #include "RootMotion/FinalIK/IKSolverVR_VirtualBone.hpp"
  // Including type: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Arm
  #include "RootMotion/FinalIK/IKSolverVR_Arm.hpp"
  // Including type: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Leg
  #include "RootMotion/FinalIK/IKSolverVR_Leg.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Transform headTarget
  ::UnityEngine::Transform*& RootMotion::FinalIK::IKSolverVR::Spine::dyn_headTarget() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_headTarget");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "headTarget"))->offset;
    return *reinterpret_cast<::UnityEngine::Transform**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Transform pelvisTarget
  ::UnityEngine::Transform*& RootMotion::FinalIK::IKSolverVR::Spine::dyn_pelvisTarget() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_pelvisTarget");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "pelvisTarget"))->offset;
    return *reinterpret_cast<::UnityEngine::Transform**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single positionWeight
  float& RootMotion::FinalIK::IKSolverVR::Spine::dyn_positionWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_positionWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "positionWeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single rotationWeight
  float& RootMotion::FinalIK::IKSolverVR::Spine::dyn_rotationWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_rotationWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "rotationWeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single pelvisPositionWeight
  float& RootMotion::FinalIK::IKSolverVR::Spine::dyn_pelvisPositionWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_pelvisPositionWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "pelvisPositionWeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single pelvisRotationWeight
  float& RootMotion::FinalIK::IKSolverVR::Spine::dyn_pelvisRotationWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_pelvisRotationWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "pelvisRotationWeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Transform chestGoal
  ::UnityEngine::Transform*& RootMotion::FinalIK::IKSolverVR::Spine::dyn_chestGoal() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_chestGoal");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "chestGoal"))->offset;
    return *reinterpret_cast<::UnityEngine::Transform**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single chestGoalWeight
  float& RootMotion::FinalIK::IKSolverVR::Spine::dyn_chestGoalWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_chestGoalWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "chestGoalWeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single minHeadHeight
  float& RootMotion::FinalIK::IKSolverVR::Spine::dyn_minHeadHeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_minHeadHeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "minHeadHeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single bodyPosStiffness
  float& RootMotion::FinalIK::IKSolverVR::Spine::dyn_bodyPosStiffness() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_bodyPosStiffness");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "bodyPosStiffness"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single bodyRotStiffness
  float& RootMotion::FinalIK::IKSolverVR::Spine::dyn_bodyRotStiffness() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_bodyRotStiffness");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "bodyRotStiffness"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single neckStiffness
  float& RootMotion::FinalIK::IKSolverVR::Spine::dyn_neckStiffness() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_neckStiffness");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "neckStiffness"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single rotateChestByHands
  float& RootMotion::FinalIK::IKSolverVR::Spine::dyn_rotateChestByHands() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_rotateChestByHands");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "rotateChestByHands"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single chestClampWeight
  float& RootMotion::FinalIK::IKSolverVR::Spine::dyn_chestClampWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_chestClampWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "chestClampWeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single headClampWeight
  float& RootMotion::FinalIK::IKSolverVR::Spine::dyn_headClampWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_headClampWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "headClampWeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single moveBodyBackWhenCrouching
  float& RootMotion::FinalIK::IKSolverVR::Spine::dyn_moveBodyBackWhenCrouching() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_moveBodyBackWhenCrouching");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "moveBodyBackWhenCrouching"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single maintainPelvisPosition
  float& RootMotion::FinalIK::IKSolverVR::Spine::dyn_maintainPelvisPosition() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_maintainPelvisPosition");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "maintainPelvisPosition"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single maxRootAngle
  float& RootMotion::FinalIK::IKSolverVR::Spine::dyn_maxRootAngle() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_maxRootAngle");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "maxRootAngle"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single rootHeadingOffset
  float& RootMotion::FinalIK::IKSolverVR::Spine::dyn_rootHeadingOffset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_rootHeadingOffset");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "rootHeadingOffset"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 IKPositionHead
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::Spine::dyn_IKPositionHead() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_IKPositionHead");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "IKPositionHead"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Quaternion IKRotationHead
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverVR::Spine::dyn_IKRotationHead() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_IKRotationHead");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "IKRotationHead"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 IKPositionPelvis
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::Spine::dyn_IKPositionPelvis() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_IKPositionPelvis");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "IKPositionPelvis"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Quaternion IKRotationPelvis
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverVR::Spine::dyn_IKRotationPelvis() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_IKRotationPelvis");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "IKRotationPelvis"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 goalPositionChest
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::Spine::dyn_goalPositionChest() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_goalPositionChest");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "goalPositionChest"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 pelvisPositionOffset
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::Spine::dyn_pelvisPositionOffset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_pelvisPositionOffset");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "pelvisPositionOffset"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 chestPositionOffset
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::Spine::dyn_chestPositionOffset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_chestPositionOffset");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "chestPositionOffset"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 headPositionOffset
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::Spine::dyn_headPositionOffset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_headPositionOffset");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "headPositionOffset"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Quaternion pelvisRotationOffset
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverVR::Spine::dyn_pelvisRotationOffset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_pelvisRotationOffset");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "pelvisRotationOffset"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Quaternion chestRotationOffset
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverVR::Spine::dyn_chestRotationOffset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_chestRotationOffset");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "chestRotationOffset"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Quaternion headRotationOffset
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverVR::Spine::dyn_headRotationOffset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_headRotationOffset");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "headRotationOffset"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 faceDirection
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::Spine::dyn_faceDirection() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_faceDirection");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "faceDirection"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 locomotionHeadPositionOffset
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::Spine::dyn_locomotionHeadPositionOffset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_locomotionHeadPositionOffset");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "locomotionHeadPositionOffset"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 headPosition
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::Spine::dyn_headPosition() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_headPosition");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "headPosition"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Quaternion <anchorRotation>k__BackingField
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverVR::Spine::dyn_$anchorRotation$k__BackingField() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_$anchorRotation$k__BackingField");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<anchorRotation>k__BackingField"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Quaternion <anchorRelativeToHead>k__BackingField
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverVR::Spine::dyn_$anchorRelativeToHead$k__BackingField() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_$anchorRelativeToHead$k__BackingField");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<anchorRelativeToHead>k__BackingField"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Quaternion headRotation
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverVR::Spine::dyn_headRotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_headRotation");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "headRotation"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Quaternion pelvisRotation
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverVR::Spine::dyn_pelvisRotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_pelvisRotation");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "pelvisRotation"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Quaternion anchorRelativeToPelvis
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverVR::Spine::dyn_anchorRelativeToPelvis() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_anchorRelativeToPelvis");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "anchorRelativeToPelvis"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Quaternion pelvisRelativeRotation
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverVR::Spine::dyn_pelvisRelativeRotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_pelvisRelativeRotation");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "pelvisRelativeRotation"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Quaternion chestRelativeRotation
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverVR::Spine::dyn_chestRelativeRotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_chestRelativeRotation");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "chestRelativeRotation"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 headDeltaPosition
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::Spine::dyn_headDeltaPosition() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_headDeltaPosition");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "headDeltaPosition"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Quaternion pelvisDeltaRotation
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverVR::Spine::dyn_pelvisDeltaRotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_pelvisDeltaRotation");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "pelvisDeltaRotation"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Quaternion chestTargetRotation
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverVR::Spine::dyn_chestTargetRotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_chestTargetRotation");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "chestTargetRotation"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Int32 pelvisIndex
  int& RootMotion::FinalIK::IKSolverVR::Spine::dyn_pelvisIndex() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_pelvisIndex");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "pelvisIndex"))->offset;
    return *reinterpret_cast<int*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Int32 spineIndex
  int& RootMotion::FinalIK::IKSolverVR::Spine::dyn_spineIndex() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_spineIndex");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "spineIndex"))->offset;
    return *reinterpret_cast<int*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Int32 chestIndex
  int& RootMotion::FinalIK::IKSolverVR::Spine::dyn_chestIndex() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_chestIndex");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "chestIndex"))->offset;
    return *reinterpret_cast<int*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Int32 neckIndex
  int& RootMotion::FinalIK::IKSolverVR::Spine::dyn_neckIndex() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_neckIndex");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "neckIndex"))->offset;
    return *reinterpret_cast<int*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Int32 headIndex
  int& RootMotion::FinalIK::IKSolverVR::Spine::dyn_headIndex() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_headIndex");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "headIndex"))->offset;
    return *reinterpret_cast<int*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single length
  float& RootMotion::FinalIK::IKSolverVR::Spine::dyn_length() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_length");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "length"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean hasChest
  bool& RootMotion::FinalIK::IKSolverVR::Spine::dyn_hasChest() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_hasChest");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "hasChest"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean hasNeck
  bool& RootMotion::FinalIK::IKSolverVR::Spine::dyn_hasNeck() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_hasNeck");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "hasNeck"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean hasLegs
  bool& RootMotion::FinalIK::IKSolverVR::Spine::dyn_hasLegs() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_hasLegs");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "hasLegs"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single headHeight
  float& RootMotion::FinalIK::IKSolverVR::Spine::dyn_headHeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_headHeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "headHeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single sizeMlp
  float& RootMotion::FinalIK::IKSolverVR::Spine::dyn_sizeMlp() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_sizeMlp");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "sizeMlp"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 chestForward
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::Spine::dyn_chestForward() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::dyn_chestForward");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "chestForward"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Spine.get_pelvis
  ::RootMotion::FinalIK::IKSolverVR::VirtualBone* RootMotion::FinalIK::IKSolverVR::Spine::get_pelvis() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::get_pelvis");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_pelvis", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKSolverVR::VirtualBone*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Spine.get_firstSpineBone
  ::RootMotion::FinalIK::IKSolverVR::VirtualBone* RootMotion::FinalIK::IKSolverVR::Spine::get_firstSpineBone() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::get_firstSpineBone");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_firstSpineBone", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKSolverVR::VirtualBone*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Spine.get_chest
  ::RootMotion::FinalIK::IKSolverVR::VirtualBone* RootMotion::FinalIK::IKSolverVR::Spine::get_chest() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::get_chest");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_chest", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKSolverVR::VirtualBone*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Spine.get_neck
  ::RootMotion::FinalIK::IKSolverVR::VirtualBone* RootMotion::FinalIK::IKSolverVR::Spine::get_neck() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::get_neck");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_neck", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKSolverVR::VirtualBone*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Spine.get_head
  ::RootMotion::FinalIK::IKSolverVR::VirtualBone* RootMotion::FinalIK::IKSolverVR::Spine::get_head() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::get_head");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_head", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::IKSolverVR::VirtualBone*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Spine.get_anchorRotation
  ::UnityEngine::Quaternion RootMotion::FinalIK::IKSolverVR::Spine::get_anchorRotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::get_anchorRotation");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_anchorRotation", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Quaternion, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Spine.set_anchorRotation
  void RootMotion::FinalIK::IKSolverVR::Spine::set_anchorRotation(::UnityEngine::Quaternion value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::set_anchorRotation");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "set_anchorRotation", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(value)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, value);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Spine.get_anchorRelativeToHead
  ::UnityEngine::Quaternion RootMotion::FinalIK::IKSolverVR::Spine::get_anchorRelativeToHead() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::get_anchorRelativeToHead");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_anchorRelativeToHead", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Quaternion, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Spine.set_anchorRelativeToHead
  void RootMotion::FinalIK::IKSolverVR::Spine::set_anchorRelativeToHead(::UnityEngine::Quaternion value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::set_anchorRelativeToHead");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "set_anchorRelativeToHead", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(value)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, value);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Spine.CalculateChestTargetRotation
  void RootMotion::FinalIK::IKSolverVR::Spine::CalculateChestTargetRotation(::RootMotion::FinalIK::IKSolverVR::VirtualBone* rootBone, ::ArrayW<::RootMotion::FinalIK::IKSolverVR::Arm*> arms) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::CalculateChestTargetRotation");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "CalculateChestTargetRotation", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(rootBone), ::il2cpp_utils::ExtractType(arms)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, rootBone, arms);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Spine.Solve
  void RootMotion::FinalIK::IKSolverVR::Spine::Solve(::RootMotion::FinalIK::IKSolverVR::VirtualBone* rootBone, ::ArrayW<::RootMotion::FinalIK::IKSolverVR::Leg*> legs, ::ArrayW<::RootMotion::FinalIK::IKSolverVR::Arm*> arms) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::Solve");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Solve", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(rootBone), ::il2cpp_utils::ExtractType(legs), ::il2cpp_utils::ExtractType(arms)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, rootBone, legs, arms);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Spine.FABRIKPass
  void RootMotion::FinalIK::IKSolverVR::Spine::FABRIKPass(::UnityEngine::Vector3 animatedPelvisPos, ::UnityEngine::Vector3 rootUp, float weight) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::FABRIKPass");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "FABRIKPass", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(animatedPelvisPos), ::il2cpp_utils::ExtractType(rootUp), ::il2cpp_utils::ExtractType(weight)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, animatedPelvisPos, rootUp, weight);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Spine.SolvePelvis
  void RootMotion::FinalIK::IKSolverVR::Spine::SolvePelvis() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::SolvePelvis");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SolvePelvis", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Spine.AdjustChestByHands
  void RootMotion::FinalIK::IKSolverVR::Spine::AdjustChestByHands(ByRef<::UnityEngine::Quaternion> chestTargetRotation, ::ArrayW<::RootMotion::FinalIK::IKSolverVR::Arm*> arms) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::AdjustChestByHands");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "AdjustChestByHands", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(chestTargetRotation), ::il2cpp_utils::ExtractType(arms)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, byref(chestTargetRotation), arms);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Spine.InverseTranslateToHead
  void RootMotion::FinalIK::IKSolverVR::Spine::InverseTranslateToHead(::ArrayW<::RootMotion::FinalIK::IKSolverVR::Leg*> legs, bool limited, bool useCurrentLegMag, ::UnityEngine::Vector3 offset, float w) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::InverseTranslateToHead");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "InverseTranslateToHead", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(legs), ::il2cpp_utils::ExtractType(limited), ::il2cpp_utils::ExtractType(useCurrentLegMag), ::il2cpp_utils::ExtractType(offset), ::il2cpp_utils::ExtractType(w)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, legs, limited, useCurrentLegMag, offset, w);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Spine.TranslatePelvis
  void RootMotion::FinalIK::IKSolverVR::Spine::TranslatePelvis(::ArrayW<::RootMotion::FinalIK::IKSolverVR::Leg*> legs, ::UnityEngine::Vector3 deltaPosition, ::UnityEngine::Quaternion deltaRotation) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::TranslatePelvis");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "TranslatePelvis", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(legs), ::il2cpp_utils::ExtractType(deltaPosition), ::il2cpp_utils::ExtractType(deltaRotation)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, legs, deltaPosition, deltaRotation);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Spine.LimitPelvisPosition
  ::UnityEngine::Vector3 RootMotion::FinalIK::IKSolverVR::Spine::LimitPelvisPosition(::ArrayW<::RootMotion::FinalIK::IKSolverVR::Leg*> legs, ::UnityEngine::Vector3 pelvisPosition, bool useCurrentLegMag, int it) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::LimitPelvisPosition");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "LimitPelvisPosition", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(legs), ::il2cpp_utils::ExtractType(pelvisPosition), ::il2cpp_utils::ExtractType(useCurrentLegMag), ::il2cpp_utils::ExtractType(it)})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method, legs, pelvisPosition, useCurrentLegMag, it);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Spine.Bend
  void RootMotion::FinalIK::IKSolverVR::Spine::Bend(::ArrayW<::RootMotion::FinalIK::IKSolverVR::VirtualBone*> bones, int firstIndex, int lastIndex, ::UnityEngine::Quaternion targetRotation, float clampWeight, bool uniformWeight, float w) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::Bend");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Bend", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(bones), ::il2cpp_utils::ExtractType(firstIndex), ::il2cpp_utils::ExtractType(lastIndex), ::il2cpp_utils::ExtractType(targetRotation), ::il2cpp_utils::ExtractType(clampWeight), ::il2cpp_utils::ExtractType(uniformWeight), ::il2cpp_utils::ExtractType(w)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, bones, firstIndex, lastIndex, targetRotation, clampWeight, uniformWeight, w);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Spine.Bend
  void RootMotion::FinalIK::IKSolverVR::Spine::Bend(::ArrayW<::RootMotion::FinalIK::IKSolverVR::VirtualBone*> bones, int firstIndex, int lastIndex, ::UnityEngine::Quaternion targetRotation, ::UnityEngine::Quaternion rotationOffset, float clampWeight, bool uniformWeight, float w) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::Bend");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Bend", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(bones), ::il2cpp_utils::ExtractType(firstIndex), ::il2cpp_utils::ExtractType(lastIndex), ::il2cpp_utils::ExtractType(targetRotation), ::il2cpp_utils::ExtractType(rotationOffset), ::il2cpp_utils::ExtractType(clampWeight), ::il2cpp_utils::ExtractType(uniformWeight), ::il2cpp_utils::ExtractType(w)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, bones, firstIndex, lastIndex, targetRotation, rotationOffset, clampWeight, uniformWeight, w);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Spine.OnRead
  void RootMotion::FinalIK::IKSolverVR::Spine::OnRead(::ArrayW<::UnityEngine::Vector3> positions, ::ArrayW<::UnityEngine::Quaternion> rotations, bool hasChest, bool hasNeck, bool hasShoulders, bool hasToes, bool hasLegs, int rootIndex, int index) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::OnRead");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnRead", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(positions), ::il2cpp_utils::ExtractType(rotations), ::il2cpp_utils::ExtractType(hasChest), ::il2cpp_utils::ExtractType(hasNeck), ::il2cpp_utils::ExtractType(hasShoulders), ::il2cpp_utils::ExtractType(hasToes), ::il2cpp_utils::ExtractType(hasLegs), ::il2cpp_utils::ExtractType(rootIndex), ::il2cpp_utils::ExtractType(index)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, positions, rotations, hasChest, hasNeck, hasShoulders, hasToes, hasLegs, rootIndex, index);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Spine.PreSolve
  void RootMotion::FinalIK::IKSolverVR::Spine::PreSolve() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::PreSolve");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "PreSolve", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Spine.ApplyOffsets
  void RootMotion::FinalIK::IKSolverVR::Spine::ApplyOffsets() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::ApplyOffsets");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "ApplyOffsets", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Spine.Write
  void RootMotion::FinalIK::IKSolverVR::Spine::Write(ByRef<::ArrayW<::UnityEngine::Vector3>> solvedPositions, ByRef<::ArrayW<::UnityEngine::Quaternion>> solvedRotations) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::Write");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Write", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(solvedPositions), ::il2cpp_utils::ExtractType(solvedRotations)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, byref(solvedPositions), byref(solvedRotations));
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.Spine.ResetOffsets
  void RootMotion::FinalIK::IKSolverVR::Spine::ResetOffsets() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::Spine::ResetOffsets");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "ResetOffsets", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.PositionOffset
  #include "RootMotion/FinalIK/IKSolverVR_PositionOffset.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.PositionOffset Pelvis
  ::RootMotion::FinalIK::IKSolverVR::PositionOffset RootMotion::FinalIK::IKSolverVR::PositionOffset::_get_Pelvis() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::PositionOffset::_get_Pelvis");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::IKSolverVR::PositionOffset>("RootMotion.FinalIK", "IKSolverVR/PositionOffset", "Pelvis"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.PositionOffset Pelvis
  void RootMotion::FinalIK::IKSolverVR::PositionOffset::_set_Pelvis(::RootMotion::FinalIK::IKSolverVR::PositionOffset value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::PositionOffset::_set_Pelvis");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "IKSolverVR/PositionOffset", "Pelvis", value));
  }
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.PositionOffset Chest
  ::RootMotion::FinalIK::IKSolverVR::PositionOffset RootMotion::FinalIK::IKSolverVR::PositionOffset::_get_Chest() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::PositionOffset::_get_Chest");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::IKSolverVR::PositionOffset>("RootMotion.FinalIK", "IKSolverVR/PositionOffset", "Chest"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.PositionOffset Chest
  void RootMotion::FinalIK::IKSolverVR::PositionOffset::_set_Chest(::RootMotion::FinalIK::IKSolverVR::PositionOffset value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::PositionOffset::_set_Chest");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "IKSolverVR/PositionOffset", "Chest", value));
  }
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.PositionOffset Head
  ::RootMotion::FinalIK::IKSolverVR::PositionOffset RootMotion::FinalIK::IKSolverVR::PositionOffset::_get_Head() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::PositionOffset::_get_Head");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::IKSolverVR::PositionOffset>("RootMotion.FinalIK", "IKSolverVR/PositionOffset", "Head"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.PositionOffset Head
  void RootMotion::FinalIK::IKSolverVR::PositionOffset::_set_Head(::RootMotion::FinalIK::IKSolverVR::PositionOffset value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::PositionOffset::_set_Head");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "IKSolverVR/PositionOffset", "Head", value));
  }
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.PositionOffset LeftHand
  ::RootMotion::FinalIK::IKSolverVR::PositionOffset RootMotion::FinalIK::IKSolverVR::PositionOffset::_get_LeftHand() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::PositionOffset::_get_LeftHand");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::IKSolverVR::PositionOffset>("RootMotion.FinalIK", "IKSolverVR/PositionOffset", "LeftHand"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.PositionOffset LeftHand
  void RootMotion::FinalIK::IKSolverVR::PositionOffset::_set_LeftHand(::RootMotion::FinalIK::IKSolverVR::PositionOffset value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::PositionOffset::_set_LeftHand");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "IKSolverVR/PositionOffset", "LeftHand", value));
  }
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.PositionOffset RightHand
  ::RootMotion::FinalIK::IKSolverVR::PositionOffset RootMotion::FinalIK::IKSolverVR::PositionOffset::_get_RightHand() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::PositionOffset::_get_RightHand");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::IKSolverVR::PositionOffset>("RootMotion.FinalIK", "IKSolverVR/PositionOffset", "RightHand"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.PositionOffset RightHand
  void RootMotion::FinalIK::IKSolverVR::PositionOffset::_set_RightHand(::RootMotion::FinalIK::IKSolverVR::PositionOffset value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::PositionOffset::_set_RightHand");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "IKSolverVR/PositionOffset", "RightHand", value));
  }
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.PositionOffset LeftFoot
  ::RootMotion::FinalIK::IKSolverVR::PositionOffset RootMotion::FinalIK::IKSolverVR::PositionOffset::_get_LeftFoot() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::PositionOffset::_get_LeftFoot");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::IKSolverVR::PositionOffset>("RootMotion.FinalIK", "IKSolverVR/PositionOffset", "LeftFoot"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.PositionOffset LeftFoot
  void RootMotion::FinalIK::IKSolverVR::PositionOffset::_set_LeftFoot(::RootMotion::FinalIK::IKSolverVR::PositionOffset value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::PositionOffset::_set_LeftFoot");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "IKSolverVR/PositionOffset", "LeftFoot", value));
  }
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.PositionOffset RightFoot
  ::RootMotion::FinalIK::IKSolverVR::PositionOffset RootMotion::FinalIK::IKSolverVR::PositionOffset::_get_RightFoot() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::PositionOffset::_get_RightFoot");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::IKSolverVR::PositionOffset>("RootMotion.FinalIK", "IKSolverVR/PositionOffset", "RightFoot"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.PositionOffset RightFoot
  void RootMotion::FinalIK::IKSolverVR::PositionOffset::_set_RightFoot(::RootMotion::FinalIK::IKSolverVR::PositionOffset value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::PositionOffset::_set_RightFoot");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "IKSolverVR/PositionOffset", "RightFoot", value));
  }
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.PositionOffset LeftHeel
  ::RootMotion::FinalIK::IKSolverVR::PositionOffset RootMotion::FinalIK::IKSolverVR::PositionOffset::_get_LeftHeel() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::PositionOffset::_get_LeftHeel");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::IKSolverVR::PositionOffset>("RootMotion.FinalIK", "IKSolverVR/PositionOffset", "LeftHeel"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.PositionOffset LeftHeel
  void RootMotion::FinalIK::IKSolverVR::PositionOffset::_set_LeftHeel(::RootMotion::FinalIK::IKSolverVR::PositionOffset value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::PositionOffset::_set_LeftHeel");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "IKSolverVR/PositionOffset", "LeftHeel", value));
  }
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.PositionOffset RightHeel
  ::RootMotion::FinalIK::IKSolverVR::PositionOffset RootMotion::FinalIK::IKSolverVR::PositionOffset::_get_RightHeel() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::PositionOffset::_get_RightHeel");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::IKSolverVR::PositionOffset>("RootMotion.FinalIK", "IKSolverVR/PositionOffset", "RightHeel"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.PositionOffset RightHeel
  void RootMotion::FinalIK::IKSolverVR::PositionOffset::_set_RightHeel(::RootMotion::FinalIK::IKSolverVR::PositionOffset value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::PositionOffset::_set_RightHeel");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "IKSolverVR/PositionOffset", "RightHeel", value));
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Int32 value__
  int& RootMotion::FinalIK::IKSolverVR::PositionOffset::dyn_value__() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::PositionOffset::dyn_value__");
    auto ___internal__instance = *this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "value__"))->offset;
    return *reinterpret_cast<int*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.RotationOffset
  #include "RootMotion/FinalIK/IKSolverVR_RotationOffset.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.RotationOffset Pelvis
  ::RootMotion::FinalIK::IKSolverVR::RotationOffset RootMotion::FinalIK::IKSolverVR::RotationOffset::_get_Pelvis() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::RotationOffset::_get_Pelvis");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::IKSolverVR::RotationOffset>("RootMotion.FinalIK", "IKSolverVR/RotationOffset", "Pelvis"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.RotationOffset Pelvis
  void RootMotion::FinalIK::IKSolverVR::RotationOffset::_set_Pelvis(::RootMotion::FinalIK::IKSolverVR::RotationOffset value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::RotationOffset::_set_Pelvis");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "IKSolverVR/RotationOffset", "Pelvis", value));
  }
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.RotationOffset Chest
  ::RootMotion::FinalIK::IKSolverVR::RotationOffset RootMotion::FinalIK::IKSolverVR::RotationOffset::_get_Chest() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::RotationOffset::_get_Chest");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::IKSolverVR::RotationOffset>("RootMotion.FinalIK", "IKSolverVR/RotationOffset", "Chest"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.RotationOffset Chest
  void RootMotion::FinalIK::IKSolverVR::RotationOffset::_set_Chest(::RootMotion::FinalIK::IKSolverVR::RotationOffset value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::RotationOffset::_set_Chest");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "IKSolverVR/RotationOffset", "Chest", value));
  }
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.RotationOffset Head
  ::RootMotion::FinalIK::IKSolverVR::RotationOffset RootMotion::FinalIK::IKSolverVR::RotationOffset::_get_Head() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::RotationOffset::_get_Head");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::IKSolverVR::RotationOffset>("RootMotion.FinalIK", "IKSolverVR/RotationOffset", "Head"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.RotationOffset Head
  void RootMotion::FinalIK::IKSolverVR::RotationOffset::_set_Head(::RootMotion::FinalIK::IKSolverVR::RotationOffset value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::RotationOffset::_set_Head");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "IKSolverVR/RotationOffset", "Head", value));
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Int32 value__
  int& RootMotion::FinalIK::IKSolverVR::RotationOffset::dyn_value__() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::RotationOffset::dyn_value__");
    auto ___internal__instance = *this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "value__"))->offset;
    return *reinterpret_cast<int*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.VirtualBone
  #include "RootMotion/FinalIK/IKSolverVR_VirtualBone.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 readPosition
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::VirtualBone::dyn_readPosition() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::VirtualBone::dyn_readPosition");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "readPosition"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Quaternion readRotation
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverVR::VirtualBone::dyn_readRotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::VirtualBone::dyn_readRotation");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "readRotation"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 solverPosition
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::VirtualBone::dyn_solverPosition() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::VirtualBone::dyn_solverPosition");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "solverPosition"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Quaternion solverRotation
  ::UnityEngine::Quaternion& RootMotion::FinalIK::IKSolverVR::VirtualBone::dyn_solverRotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::VirtualBone::dyn_solverRotation");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "solverRotation"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single length
  float& RootMotion::FinalIK::IKSolverVR::VirtualBone::dyn_length() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::VirtualBone::dyn_length");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "length"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single sqrMag
  float& RootMotion::FinalIK::IKSolverVR::VirtualBone::dyn_sqrMag() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::VirtualBone::dyn_sqrMag");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "sqrMag"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 axis
  ::UnityEngine::Vector3& RootMotion::FinalIK::IKSolverVR::VirtualBone::dyn_axis() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::VirtualBone::dyn_axis");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "axis"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.VirtualBone.Read
  void RootMotion::FinalIK::IKSolverVR::VirtualBone::Read(::UnityEngine::Vector3 position, ::UnityEngine::Quaternion rotation) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::VirtualBone::Read");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Read", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(position), ::il2cpp_utils::ExtractType(rotation)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, position, rotation);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.VirtualBone.SwingRotation
  void RootMotion::FinalIK::IKSolverVR::VirtualBone::SwingRotation(::ArrayW<::RootMotion::FinalIK::IKSolverVR::VirtualBone*> bones, int index, ::UnityEngine::Vector3 swingTarget, float weight) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::VirtualBone::SwingRotation");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod("RootMotion.FinalIK", "IKSolverVR/VirtualBone", "SwingRotation", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(bones), ::il2cpp_utils::ExtractType(index), ::il2cpp_utils::ExtractType(swingTarget), ::il2cpp_utils::ExtractType(weight)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(static_cast<Il2CppObject*>(nullptr), ___internal__method, bones, index, swingTarget, weight);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.VirtualBone.PreSolve
  float RootMotion::FinalIK::IKSolverVR::VirtualBone::PreSolve(ByRef<::ArrayW<::RootMotion::FinalIK::IKSolverVR::VirtualBone*>> bones) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::VirtualBone::PreSolve");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod("RootMotion.FinalIK", "IKSolverVR/VirtualBone", "PreSolve", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(bones)})));
    return ::il2cpp_utils::RunMethodRethrow<float, false>(static_cast<Il2CppObject*>(nullptr), ___internal__method, byref(bones));
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.VirtualBone.RotateAroundPoint
  void RootMotion::FinalIK::IKSolverVR::VirtualBone::RotateAroundPoint(::ArrayW<::RootMotion::FinalIK::IKSolverVR::VirtualBone*> bones, int index, ::UnityEngine::Vector3 point, ::UnityEngine::Quaternion rotation) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::VirtualBone::RotateAroundPoint");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod("RootMotion.FinalIK", "IKSolverVR/VirtualBone", "RotateAroundPoint", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(bones), ::il2cpp_utils::ExtractType(index), ::il2cpp_utils::ExtractType(point), ::il2cpp_utils::ExtractType(rotation)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(static_cast<Il2CppObject*>(nullptr), ___internal__method, bones, index, point, rotation);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.VirtualBone.RotateBy
  void RootMotion::FinalIK::IKSolverVR::VirtualBone::RotateBy(::ArrayW<::RootMotion::FinalIK::IKSolverVR::VirtualBone*> bones, int index, ::UnityEngine::Quaternion rotation) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::VirtualBone::RotateBy");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod("RootMotion.FinalIK", "IKSolverVR/VirtualBone", "RotateBy", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(bones), ::il2cpp_utils::ExtractType(index), ::il2cpp_utils::ExtractType(rotation)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(static_cast<Il2CppObject*>(nullptr), ___internal__method, bones, index, rotation);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.VirtualBone.RotateBy
  void RootMotion::FinalIK::IKSolverVR::VirtualBone::RotateBy(::ArrayW<::RootMotion::FinalIK::IKSolverVR::VirtualBone*> bones, ::UnityEngine::Quaternion rotation) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::VirtualBone::RotateBy");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod("RootMotion.FinalIK", "IKSolverVR/VirtualBone", "RotateBy", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(bones), ::il2cpp_utils::ExtractType(rotation)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(static_cast<Il2CppObject*>(nullptr), ___internal__method, bones, rotation);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.VirtualBone.RotateTo
  void RootMotion::FinalIK::IKSolverVR::VirtualBone::RotateTo(::ArrayW<::RootMotion::FinalIK::IKSolverVR::VirtualBone*> bones, int index, ::UnityEngine::Quaternion rotation) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::VirtualBone::RotateTo");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod("RootMotion.FinalIK", "IKSolverVR/VirtualBone", "RotateTo", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(bones), ::il2cpp_utils::ExtractType(index), ::il2cpp_utils::ExtractType(rotation)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(static_cast<Il2CppObject*>(nullptr), ___internal__method, bones, index, rotation);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.VirtualBone.SolveTrigonometric
  void RootMotion::FinalIK::IKSolverVR::VirtualBone::SolveTrigonometric(::ArrayW<::RootMotion::FinalIK::IKSolverVR::VirtualBone*> bones, int first, int second, int third, ::UnityEngine::Vector3 targetPosition, ::UnityEngine::Vector3 bendNormal, float weight) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::VirtualBone::SolveTrigonometric");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod("RootMotion.FinalIK", "IKSolverVR/VirtualBone", "SolveTrigonometric", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(bones), ::il2cpp_utils::ExtractType(first), ::il2cpp_utils::ExtractType(second), ::il2cpp_utils::ExtractType(third), ::il2cpp_utils::ExtractType(targetPosition), ::il2cpp_utils::ExtractType(bendNormal), ::il2cpp_utils::ExtractType(weight)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(static_cast<Il2CppObject*>(nullptr), ___internal__method, bones, first, second, third, targetPosition, bendNormal, weight);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.VirtualBone.GetDirectionToBendPoint
  ::UnityEngine::Vector3 RootMotion::FinalIK::IKSolverVR::VirtualBone::GetDirectionToBendPoint(::UnityEngine::Vector3 direction, float directionMag, ::UnityEngine::Vector3 bendDirection, float sqrMag1, float sqrMag2) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::VirtualBone::GetDirectionToBendPoint");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod("RootMotion.FinalIK", "IKSolverVR/VirtualBone", "GetDirectionToBendPoint", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(direction), ::il2cpp_utils::ExtractType(directionMag), ::il2cpp_utils::ExtractType(bendDirection), ::il2cpp_utils::ExtractType(sqrMag1), ::il2cpp_utils::ExtractType(sqrMag2)})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(static_cast<Il2CppObject*>(nullptr), ___internal__method, direction, directionMag, bendDirection, sqrMag1, sqrMag2);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.VirtualBone.SolveFABRIK
  void RootMotion::FinalIK::IKSolverVR::VirtualBone::SolveFABRIK(::ArrayW<::RootMotion::FinalIK::IKSolverVR::VirtualBone*> bones, ::UnityEngine::Vector3 startPosition, ::UnityEngine::Vector3 targetPosition, float weight, float minNormalizedTargetDistance, int iterations, float length, ::UnityEngine::Vector3 startOffset) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::VirtualBone::SolveFABRIK");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod("RootMotion.FinalIK", "IKSolverVR/VirtualBone", "SolveFABRIK", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(bones), ::il2cpp_utils::ExtractType(startPosition), ::il2cpp_utils::ExtractType(targetPosition), ::il2cpp_utils::ExtractType(weight), ::il2cpp_utils::ExtractType(minNormalizedTargetDistance), ::il2cpp_utils::ExtractType(iterations), ::il2cpp_utils::ExtractType(length), ::il2cpp_utils::ExtractType(startOffset)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(static_cast<Il2CppObject*>(nullptr), ___internal__method, bones, startPosition, targetPosition, weight, minNormalizedTargetDistance, iterations, length, startOffset);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.VirtualBone.SolveFABRIKJoint
  ::UnityEngine::Vector3 RootMotion::FinalIK::IKSolverVR::VirtualBone::SolveFABRIKJoint(::UnityEngine::Vector3 pos1, ::UnityEngine::Vector3 pos2, float length) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::VirtualBone::SolveFABRIKJoint");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod("RootMotion.FinalIK", "IKSolverVR/VirtualBone", "SolveFABRIKJoint", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(pos1), ::il2cpp_utils::ExtractType(pos2), ::il2cpp_utils::ExtractType(length)})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(static_cast<Il2CppObject*>(nullptr), ___internal__method, pos1, pos2, length);
  }
  // Autogenerated method: RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.VirtualBone.SolveCCD
  void RootMotion::FinalIK::IKSolverVR::VirtualBone::SolveCCD(::ArrayW<::RootMotion::FinalIK::IKSolverVR::VirtualBone*> bones, ::UnityEngine::Vector3 targetPosition, float weight, int iterations) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::IKSolverVR::VirtualBone::SolveCCD");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod("RootMotion.FinalIK", "IKSolverVR/VirtualBone", "SolveCCD", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(bones), ::il2cpp_utils::ExtractType(targetPosition), ::il2cpp_utils::ExtractType(weight), ::il2cpp_utils::ExtractType(iterations)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(static_cast<Il2CppObject*>(nullptr), ___internal__method, bones, targetPosition, weight, iterations);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.TwistRelaxer
  #include "RootMotion/FinalIK/TwistRelaxer.hpp"
  // Including type: RootMotion.FinalIK.IK
  #include "RootMotion/FinalIK/IK.hpp"
  // Including type: UnityEngine.Transform
  #include "UnityEngine/Transform.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IK ik
  ::RootMotion::FinalIK::IK*& RootMotion::FinalIK::TwistRelaxer::dyn_ik() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::TwistRelaxer::dyn_ik");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "ik"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IK**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Transform parent
  ::UnityEngine::Transform*& RootMotion::FinalIK::TwistRelaxer::dyn_parent() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::TwistRelaxer::dyn_parent");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "parent"))->offset;
    return *reinterpret_cast<::UnityEngine::Transform**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Transform child
  ::UnityEngine::Transform*& RootMotion::FinalIK::TwistRelaxer::dyn_child() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::TwistRelaxer::dyn_child");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "child"))->offset;
    return *reinterpret_cast<::UnityEngine::Transform**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single weight
  float& RootMotion::FinalIK::TwistRelaxer::dyn_weight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::TwistRelaxer::dyn_weight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "weight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single parentChildCrossfade
  float& RootMotion::FinalIK::TwistRelaxer::dyn_parentChildCrossfade() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::TwistRelaxer::dyn_parentChildCrossfade");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "parentChildCrossfade"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single twistAngleOffset
  float& RootMotion::FinalIK::TwistRelaxer::dyn_twistAngleOffset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::TwistRelaxer::dyn_twistAngleOffset");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "twistAngleOffset"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 twistAxis
  ::UnityEngine::Vector3& RootMotion::FinalIK::TwistRelaxer::dyn_twistAxis() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::TwistRelaxer::dyn_twistAxis");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "twistAxis"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 axis
  ::UnityEngine::Vector3& RootMotion::FinalIK::TwistRelaxer::dyn_axis() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::TwistRelaxer::dyn_axis");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "axis"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 axisRelativeToParentDefault
  ::UnityEngine::Vector3& RootMotion::FinalIK::TwistRelaxer::dyn_axisRelativeToParentDefault() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::TwistRelaxer::dyn_axisRelativeToParentDefault");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "axisRelativeToParentDefault"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 axisRelativeToChildDefault
  ::UnityEngine::Vector3& RootMotion::FinalIK::TwistRelaxer::dyn_axisRelativeToChildDefault() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::TwistRelaxer::dyn_axisRelativeToChildDefault");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "axisRelativeToChildDefault"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.TwistRelaxer.Relax
  void RootMotion::FinalIK::TwistRelaxer::Relax() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::TwistRelaxer::Relax");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Relax", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.TwistRelaxer.Start
  void RootMotion::FinalIK::TwistRelaxer::Start() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::TwistRelaxer::Start");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Start", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.TwistRelaxer.OnPostUpdate
  void RootMotion::FinalIK::TwistRelaxer::OnPostUpdate() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::TwistRelaxer::OnPostUpdate");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnPostUpdate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.TwistRelaxer.LateUpdate
  void RootMotion::FinalIK::TwistRelaxer::LateUpdate() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::TwistRelaxer::LateUpdate");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "LateUpdate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.TwistRelaxer.OnDestroy
  void RootMotion::FinalIK::TwistRelaxer::OnDestroy() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::TwistRelaxer::OnDestroy");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnDestroy", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.InteractionEffector
  #include "RootMotion/FinalIK/InteractionEffector.hpp"
  // Including type: RootMotion.FinalIK.InteractionObject
  #include "RootMotion/FinalIK/InteractionObject.hpp"
  // Including type: RootMotion.FinalIK.Poser
  #include "RootMotion/FinalIK/Poser.hpp"
  // Including type: RootMotion.FinalIK.IKEffector
  #include "RootMotion/FinalIK/IKEffector.hpp"
  // Including type: RootMotion.FinalIK.InteractionTarget
  #include "RootMotion/FinalIK/InteractionTarget.hpp"
  // Including type: UnityEngine.Transform
  #include "UnityEngine/Transform.hpp"
  // Including type: System.Collections.Generic.List`1
  #include "System/Collections/Generic/List_1.hpp"
  // Including type: RootMotion.FinalIK.InteractionSystem
  #include "RootMotion/FinalIK/InteractionSystem.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: private RootMotion.FinalIK.FullBodyBipedEffector <effectorType>k__BackingField
  ::RootMotion::FinalIK::FullBodyBipedEffector& RootMotion::FinalIK::InteractionEffector::dyn_$effectorType$k__BackingField() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::dyn_$effectorType$k__BackingField");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<effectorType>k__BackingField"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::FullBodyBipedEffector*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean <isPaused>k__BackingField
  bool& RootMotion::FinalIK::InteractionEffector::dyn_$isPaused$k__BackingField() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::dyn_$isPaused$k__BackingField");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<isPaused>k__BackingField"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private RootMotion.FinalIK.InteractionObject <interactionObject>k__BackingField
  ::RootMotion::FinalIK::InteractionObject*& RootMotion::FinalIK::InteractionEffector::dyn_$interactionObject$k__BackingField() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::dyn_$interactionObject$k__BackingField");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<interactionObject>k__BackingField"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::InteractionObject**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private RootMotion.FinalIK.Poser poser
  ::RootMotion::FinalIK::Poser*& RootMotion::FinalIK::InteractionEffector::dyn_poser() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::dyn_poser");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "poser"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::Poser**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private RootMotion.FinalIK.IKEffector effector
  ::RootMotion::FinalIK::IKEffector*& RootMotion::FinalIK::InteractionEffector::dyn_effector() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::dyn_effector");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "effector"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IKEffector**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single timer
  float& RootMotion::FinalIK::InteractionEffector::dyn_timer() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::dyn_timer");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "timer"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single length
  float& RootMotion::FinalIK::InteractionEffector::dyn_length() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::dyn_length");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "length"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single weight
  float& RootMotion::FinalIK::InteractionEffector::dyn_weight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::dyn_weight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "weight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single fadeInSpeed
  float& RootMotion::FinalIK::InteractionEffector::dyn_fadeInSpeed() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::dyn_fadeInSpeed");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "fadeInSpeed"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single defaultPositionWeight
  float& RootMotion::FinalIK::InteractionEffector::dyn_defaultPositionWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::dyn_defaultPositionWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "defaultPositionWeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single defaultRotationWeight
  float& RootMotion::FinalIK::InteractionEffector::dyn_defaultRotationWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::dyn_defaultRotationWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "defaultRotationWeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single defaultPull
  float& RootMotion::FinalIK::InteractionEffector::dyn_defaultPull() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::dyn_defaultPull");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "defaultPull"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single defaultReach
  float& RootMotion::FinalIK::InteractionEffector::dyn_defaultReach() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::dyn_defaultReach");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "defaultReach"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single defaultPush
  float& RootMotion::FinalIK::InteractionEffector::dyn_defaultPush() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::dyn_defaultPush");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "defaultPush"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single defaultPushParent
  float& RootMotion::FinalIK::InteractionEffector::dyn_defaultPushParent() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::dyn_defaultPushParent");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "defaultPushParent"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single defaultBendGoalWeight
  float& RootMotion::FinalIK::InteractionEffector::dyn_defaultBendGoalWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::dyn_defaultBendGoalWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "defaultBendGoalWeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single resetTimer
  float& RootMotion::FinalIK::InteractionEffector::dyn_resetTimer() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::dyn_resetTimer");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "resetTimer"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean positionWeightUsed
  bool& RootMotion::FinalIK::InteractionEffector::dyn_positionWeightUsed() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::dyn_positionWeightUsed");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "positionWeightUsed"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean rotationWeightUsed
  bool& RootMotion::FinalIK::InteractionEffector::dyn_rotationWeightUsed() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::dyn_rotationWeightUsed");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "rotationWeightUsed"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean pullUsed
  bool& RootMotion::FinalIK::InteractionEffector::dyn_pullUsed() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::dyn_pullUsed");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "pullUsed"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean reachUsed
  bool& RootMotion::FinalIK::InteractionEffector::dyn_reachUsed() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::dyn_reachUsed");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "reachUsed"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean pushUsed
  bool& RootMotion::FinalIK::InteractionEffector::dyn_pushUsed() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::dyn_pushUsed");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "pushUsed"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean pushParentUsed
  bool& RootMotion::FinalIK::InteractionEffector::dyn_pushParentUsed() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::dyn_pushParentUsed");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "pushParentUsed"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean bendGoalWeightUsed
  bool& RootMotion::FinalIK::InteractionEffector::dyn_bendGoalWeightUsed() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::dyn_bendGoalWeightUsed");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "bendGoalWeightUsed"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean pickedUp
  bool& RootMotion::FinalIK::InteractionEffector::dyn_pickedUp() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::dyn_pickedUp");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "pickedUp"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean defaults
  bool& RootMotion::FinalIK::InteractionEffector::dyn_defaults() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::dyn_defaults");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "defaults"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean pickUpOnPostFBBIK
  bool& RootMotion::FinalIK::InteractionEffector::dyn_pickUpOnPostFBBIK() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::dyn_pickUpOnPostFBBIK");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "pickUpOnPostFBBIK"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 pickUpPosition
  ::UnityEngine::Vector3& RootMotion::FinalIK::InteractionEffector::dyn_pickUpPosition() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::dyn_pickUpPosition");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "pickUpPosition"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 pausePositionRelative
  ::UnityEngine::Vector3& RootMotion::FinalIK::InteractionEffector::dyn_pausePositionRelative() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::dyn_pausePositionRelative");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "pausePositionRelative"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Quaternion pickUpRotation
  ::UnityEngine::Quaternion& RootMotion::FinalIK::InteractionEffector::dyn_pickUpRotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::dyn_pickUpRotation");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "pickUpRotation"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Quaternion pauseRotationRelative
  ::UnityEngine::Quaternion& RootMotion::FinalIK::InteractionEffector::dyn_pauseRotationRelative() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::dyn_pauseRotationRelative");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "pauseRotationRelative"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private RootMotion.FinalIK.InteractionTarget interactionTarget
  ::RootMotion::FinalIK::InteractionTarget*& RootMotion::FinalIK::InteractionEffector::dyn_interactionTarget() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::dyn_interactionTarget");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "interactionTarget"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::InteractionTarget**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Transform target
  ::UnityEngine::Transform*& RootMotion::FinalIK::InteractionEffector::dyn_target() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::dyn_target");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "target"))->offset;
    return *reinterpret_cast<::UnityEngine::Transform**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Collections.Generic.List`1<System.Boolean> triggered
  ::System::Collections::Generic::List_1<bool>*& RootMotion::FinalIK::InteractionEffector::dyn_triggered() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::dyn_triggered");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "triggered"))->offset;
    return *reinterpret_cast<::System::Collections::Generic::List_1<bool>**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private RootMotion.FinalIK.InteractionSystem interactionSystem
  ::RootMotion::FinalIK::InteractionSystem*& RootMotion::FinalIK::InteractionEffector::dyn_interactionSystem() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::dyn_interactionSystem");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "interactionSystem"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::InteractionSystem**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean started
  bool& RootMotion::FinalIK::InteractionEffector::dyn_started() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::dyn_started");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "started"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionEffector.get_effectorType
  ::RootMotion::FinalIK::FullBodyBipedEffector RootMotion::FinalIK::InteractionEffector::get_effectorType() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::get_effectorType");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_effectorType", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::FullBodyBipedEffector, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionEffector.set_effectorType
  void RootMotion::FinalIK::InteractionEffector::set_effectorType(::RootMotion::FinalIK::FullBodyBipedEffector value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::set_effectorType");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "set_effectorType", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(value)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, value);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionEffector.get_isPaused
  bool RootMotion::FinalIK::InteractionEffector::get_isPaused() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::get_isPaused");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_isPaused", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionEffector.set_isPaused
  void RootMotion::FinalIK::InteractionEffector::set_isPaused(bool value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::set_isPaused");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "set_isPaused", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(value)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, value);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionEffector.get_interactionObject
  ::RootMotion::FinalIK::InteractionObject* RootMotion::FinalIK::InteractionEffector::get_interactionObject() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::get_interactionObject");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_interactionObject", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::InteractionObject*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionEffector.set_interactionObject
  void RootMotion::FinalIK::InteractionEffector::set_interactionObject(::RootMotion::FinalIK::InteractionObject* value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::set_interactionObject");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "set_interactionObject", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(value)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, value);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionEffector.get_inInteraction
  bool RootMotion::FinalIK::InteractionEffector::get_inInteraction() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::get_inInteraction");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_inInteraction", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionEffector.get_progress
  float RootMotion::FinalIK::InteractionEffector::get_progress() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::get_progress");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_progress", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<float, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionEffector.Initiate
  void RootMotion::FinalIK::InteractionEffector::Initiate(::RootMotion::FinalIK::InteractionSystem* interactionSystem) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::Initiate");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Initiate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(interactionSystem)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, interactionSystem);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionEffector.StoreDefaults
  void RootMotion::FinalIK::InteractionEffector::StoreDefaults() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::StoreDefaults");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "StoreDefaults", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionEffector.ResetToDefaults
  bool RootMotion::FinalIK::InteractionEffector::ResetToDefaults(float speed) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::ResetToDefaults");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "ResetToDefaults", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(speed)})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method, speed);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionEffector.Pause
  bool RootMotion::FinalIK::InteractionEffector::Pause() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::Pause");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Pause", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionEffector.Resume
  bool RootMotion::FinalIK::InteractionEffector::Resume() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::Resume");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Resume", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionEffector.Start
  bool RootMotion::FinalIK::InteractionEffector::Start(::RootMotion::FinalIK::InteractionObject* interactionObject, ::StringW tag, float fadeInTime, bool interrupt) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::Start");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Start", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(interactionObject), ::il2cpp_utils::ExtractType(tag), ::il2cpp_utils::ExtractType(fadeInTime), ::il2cpp_utils::ExtractType(interrupt)})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method, interactionObject, tag, fadeInTime, interrupt);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionEffector.Update
  void RootMotion::FinalIK::InteractionEffector::Update(::UnityEngine::Transform* root, float speed) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::Update");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Update", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(root), ::il2cpp_utils::ExtractType(speed)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, root, speed);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionEffector.TriggerUntriggeredEvents
  void RootMotion::FinalIK::InteractionEffector::TriggerUntriggeredEvents(bool checkTime, ByRef<bool> pickUp, ByRef<bool> pause) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::TriggerUntriggeredEvents");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "TriggerUntriggeredEvents", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(checkTime), ::il2cpp_utils::ExtractIndependentType<bool&>(), ::il2cpp_utils::ExtractIndependentType<bool&>()})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, checkTime, byref(pickUp), byref(pause));
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionEffector.PickUp
  void RootMotion::FinalIK::InteractionEffector::PickUp(::UnityEngine::Transform* root) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::PickUp");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "PickUp", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(root)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, root);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionEffector.Stop
  bool RootMotion::FinalIK::InteractionEffector::Stop() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::Stop");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Stop", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionEffector.OnPostFBBIK
  void RootMotion::FinalIK::InteractionEffector::OnPostFBBIK() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionEffector::OnPostFBBIK");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnPostFBBIK", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.InteractionLookAt
  #include "RootMotion/FinalIK/InteractionLookAt.hpp"
  // Including type: RootMotion.FinalIK.LookAtIK
  #include "RootMotion/FinalIK/LookAtIK.hpp"
  // Including type: UnityEngine.Transform
  #include "UnityEngine/Transform.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.LookAtIK ik
  ::RootMotion::FinalIK::LookAtIK*& RootMotion::FinalIK::InteractionLookAt::dyn_ik() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionLookAt::dyn_ik");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "ik"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::LookAtIK**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single lerpSpeed
  float& RootMotion::FinalIK::InteractionLookAt::dyn_lerpSpeed() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionLookAt::dyn_lerpSpeed");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "lerpSpeed"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single weightSpeed
  float& RootMotion::FinalIK::InteractionLookAt::dyn_weightSpeed() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionLookAt::dyn_weightSpeed");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "weightSpeed"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Boolean isPaused
  bool& RootMotion::FinalIK::InteractionLookAt::dyn_isPaused() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionLookAt::dyn_isPaused");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "isPaused"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Transform lookAtTarget
  ::UnityEngine::Transform*& RootMotion::FinalIK::InteractionLookAt::dyn_lookAtTarget() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionLookAt::dyn_lookAtTarget");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "lookAtTarget"))->offset;
    return *reinterpret_cast<::UnityEngine::Transform**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single stopLookTime
  float& RootMotion::FinalIK::InteractionLookAt::dyn_stopLookTime() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionLookAt::dyn_stopLookTime");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "stopLookTime"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single weight
  float& RootMotion::FinalIK::InteractionLookAt::dyn_weight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionLookAt::dyn_weight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "weight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean firstFBBIKSolve
  bool& RootMotion::FinalIK::InteractionLookAt::dyn_firstFBBIKSolve() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionLookAt::dyn_firstFBBIKSolve");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "firstFBBIKSolve"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionLookAt.Look
  void RootMotion::FinalIK::InteractionLookAt::Look(::UnityEngine::Transform* target, float time) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionLookAt::Look");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Look", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(target), ::il2cpp_utils::ExtractType(time)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, target, time);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionLookAt.OnFixTransforms
  void RootMotion::FinalIK::InteractionLookAt::OnFixTransforms() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionLookAt::OnFixTransforms");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnFixTransforms", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionLookAt.Update
  void RootMotion::FinalIK::InteractionLookAt::Update() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionLookAt::Update");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Update", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionLookAt.SolveSpine
  void RootMotion::FinalIK::InteractionLookAt::SolveSpine() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionLookAt::SolveSpine");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SolveSpine", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionLookAt.SolveHead
  void RootMotion::FinalIK::InteractionLookAt::SolveHead() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionLookAt::SolveHead");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SolveHead", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.InteractionObject
  #include "RootMotion/FinalIK/InteractionObject.hpp"
  // Including type: RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.InteractionEvent
  #include "RootMotion/FinalIK/InteractionObject_InteractionEvent.hpp"
  // Including type: RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.Message
  #include "RootMotion/FinalIK/InteractionObject_Message.hpp"
  // Including type: RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.AnimatorEvent
  #include "RootMotion/FinalIK/InteractionObject_AnimatorEvent.hpp"
  // Including type: RootMotion.FinalIK.IKSolverFullBodyBiped
  #include "RootMotion/FinalIK/IKSolverFullBodyBiped.hpp"
  // Including type: RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.Multiplier
  #include "RootMotion/FinalIK/InteractionObject_Multiplier.hpp"
  // Including type: UnityEngine.Transform
  #include "UnityEngine/Transform.hpp"
  // Including type: RootMotion.FinalIK.InteractionSystem
  #include "RootMotion/FinalIK/InteractionSystem.hpp"
  // Including type: RootMotion.FinalIK.InteractionTarget
  #include "RootMotion/FinalIK/InteractionTarget.hpp"
  // Including type: RootMotion.FinalIK.FullBodyBipedEffector
  #include "RootMotion/FinalIK/FullBodyBipedEffector.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Transform otherLookAtTarget
  ::UnityEngine::Transform*& RootMotion::FinalIK::InteractionObject::dyn_otherLookAtTarget() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::dyn_otherLookAtTarget");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "otherLookAtTarget"))->offset;
    return *reinterpret_cast<::UnityEngine::Transform**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Transform otherTargetsRoot
  ::UnityEngine::Transform*& RootMotion::FinalIK::InteractionObject::dyn_otherTargetsRoot() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::dyn_otherTargetsRoot");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "otherTargetsRoot"))->offset;
    return *reinterpret_cast<::UnityEngine::Transform**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Transform positionOffsetSpace
  ::UnityEngine::Transform*& RootMotion::FinalIK::InteractionObject::dyn_positionOffsetSpace() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::dyn_positionOffsetSpace");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "positionOffsetSpace"))->offset;
    return *reinterpret_cast<::UnityEngine::Transform**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.WeightCurve[] weightCurves
  ::ArrayW<::RootMotion::FinalIK::InteractionObject::WeightCurve*>& RootMotion::FinalIK::InteractionObject::dyn_weightCurves() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::dyn_weightCurves");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "weightCurves"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::InteractionObject::WeightCurve*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.Multiplier[] multipliers
  ::ArrayW<::RootMotion::FinalIK::InteractionObject::Multiplier*>& RootMotion::FinalIK::InteractionObject::dyn_multipliers() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::dyn_multipliers");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "multipliers"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::InteractionObject::Multiplier*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.InteractionEvent[] events
  ::ArrayW<::RootMotion::FinalIK::InteractionObject::InteractionEvent*>& RootMotion::FinalIK::InteractionObject::dyn_events() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::dyn_events");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "events"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::InteractionObject::InteractionEvent*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single <length>k__BackingField
  float& RootMotion::FinalIK::InteractionObject::dyn_$length$k__BackingField() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::dyn_$length$k__BackingField");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<length>k__BackingField"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private RootMotion.FinalIK.InteractionSystem <lastUsedInteractionSystem>k__BackingField
  ::RootMotion::FinalIK::InteractionSystem*& RootMotion::FinalIK::InteractionObject::dyn_$lastUsedInteractionSystem$k__BackingField() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::dyn_$lastUsedInteractionSystem$k__BackingField");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<lastUsedInteractionSystem>k__BackingField"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::InteractionSystem**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private RootMotion.FinalIK.InteractionTarget[] targets
  ::ArrayW<::RootMotion::FinalIK::InteractionTarget*>& RootMotion::FinalIK::InteractionObject::dyn_targets() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::dyn_targets");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "targets"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::InteractionTarget*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionObject.get_length
  float RootMotion::FinalIK::InteractionObject::get_length() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::get_length");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_length", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<float, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionObject.set_length
  void RootMotion::FinalIK::InteractionObject::set_length(float value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::set_length");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "set_length", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(value)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, value);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionObject.get_lastUsedInteractionSystem
  ::RootMotion::FinalIK::InteractionSystem* RootMotion::FinalIK::InteractionObject::get_lastUsedInteractionSystem() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::get_lastUsedInteractionSystem");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_lastUsedInteractionSystem", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::InteractionSystem*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionObject.set_lastUsedInteractionSystem
  void RootMotion::FinalIK::InteractionObject::set_lastUsedInteractionSystem(::RootMotion::FinalIK::InteractionSystem* value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::set_lastUsedInteractionSystem");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "set_lastUsedInteractionSystem", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(value)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, value);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionObject.get_lookAtTarget
  ::UnityEngine::Transform* RootMotion::FinalIK::InteractionObject::get_lookAtTarget() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::get_lookAtTarget");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_lookAtTarget", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Transform*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionObject.get_targetsRoot
  ::UnityEngine::Transform* RootMotion::FinalIK::InteractionObject::get_targetsRoot() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::get_targetsRoot");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_targetsRoot", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Transform*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionObject.OpenUserManual
  void RootMotion::FinalIK::InteractionObject::OpenUserManual() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::OpenUserManual");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OpenUserManual", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionObject.OpenScriptReference
  void RootMotion::FinalIK::InteractionObject::OpenScriptReference() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::OpenScriptReference");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OpenScriptReference", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionObject.OpenTutorial1
  void RootMotion::FinalIK::InteractionObject::OpenTutorial1() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::OpenTutorial1");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OpenTutorial1", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionObject.OpenTutorial2
  void RootMotion::FinalIK::InteractionObject::OpenTutorial2() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::OpenTutorial2");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OpenTutorial2", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionObject.OpenTutorial3
  void RootMotion::FinalIK::InteractionObject::OpenTutorial3() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::OpenTutorial3");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OpenTutorial3", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionObject.OpenTutorial4
  void RootMotion::FinalIK::InteractionObject::OpenTutorial4() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::OpenTutorial4");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OpenTutorial4", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionObject.SupportGroup
  void RootMotion::FinalIK::InteractionObject::SupportGroup() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::SupportGroup");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SupportGroup", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionObject.ASThread
  void RootMotion::FinalIK::InteractionObject::ASThread() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::ASThread");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "ASThread", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionObject.Initiate
  void RootMotion::FinalIK::InteractionObject::Initiate() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::Initiate");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Initiate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionObject.GetTarget
  ::RootMotion::FinalIK::InteractionTarget* RootMotion::FinalIK::InteractionObject::GetTarget(::RootMotion::FinalIK::FullBodyBipedEffector effectorType, ::RootMotion::FinalIK::InteractionSystem* interactionSystem) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::GetTarget");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetTarget", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(effectorType), ::il2cpp_utils::ExtractType(interactionSystem)})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::InteractionTarget*, false>(this, ___internal__method, effectorType, interactionSystem);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionObject.CurveUsed
  bool RootMotion::FinalIK::InteractionObject::CurveUsed(::RootMotion::FinalIK::InteractionObject::WeightCurve::Type type) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::CurveUsed");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "CurveUsed", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(type)})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method, type);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionObject.GetTargets
  ::ArrayW<::RootMotion::FinalIK::InteractionTarget*> RootMotion::FinalIK::InteractionObject::GetTargets() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::GetTargets");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetTargets", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::ArrayW<::RootMotion::FinalIK::InteractionTarget*>, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionObject.GetTarget
  ::UnityEngine::Transform* RootMotion::FinalIK::InteractionObject::GetTarget(::RootMotion::FinalIK::FullBodyBipedEffector effectorType, ::StringW tag) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::GetTarget");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetTarget", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(effectorType), ::il2cpp_utils::ExtractType(tag)})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Transform*, false>(this, ___internal__method, effectorType, tag);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionObject.OnStartInteraction
  void RootMotion::FinalIK::InteractionObject::OnStartInteraction(::RootMotion::FinalIK::InteractionSystem* interactionSystem) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::OnStartInteraction");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnStartInteraction", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(interactionSystem)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, interactionSystem);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionObject.Apply
  void RootMotion::FinalIK::InteractionObject::Apply(::RootMotion::FinalIK::IKSolverFullBodyBiped* solver, ::RootMotion::FinalIK::FullBodyBipedEffector effector, ::RootMotion::FinalIK::InteractionTarget* target, float timer, float weight) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::Apply");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Apply", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(solver), ::il2cpp_utils::ExtractType(effector), ::il2cpp_utils::ExtractType(target), ::il2cpp_utils::ExtractType(timer), ::il2cpp_utils::ExtractType(weight)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, solver, effector, target, timer, weight);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionObject.GetValue
  float RootMotion::FinalIK::InteractionObject::GetValue(::RootMotion::FinalIK::InteractionObject::WeightCurve::Type weightCurveType, ::RootMotion::FinalIK::InteractionTarget* target, float timer) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::GetValue");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetValue", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(weightCurveType), ::il2cpp_utils::ExtractType(target), ::il2cpp_utils::ExtractType(timer)})));
    return ::il2cpp_utils::RunMethodRethrow<float, false>(this, ___internal__method, weightCurveType, target, timer);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionObject.Start
  void RootMotion::FinalIK::InteractionObject::Start() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::Start");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Start", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionObject.Apply
  void RootMotion::FinalIK::InteractionObject::Apply(::RootMotion::FinalIK::IKSolverFullBodyBiped* solver, ::RootMotion::FinalIK::FullBodyBipedEffector effector, ::RootMotion::FinalIK::InteractionObject::WeightCurve::Type type, float value, float weight) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::Apply");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Apply", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(solver), ::il2cpp_utils::ExtractType(effector), ::il2cpp_utils::ExtractType(type), ::il2cpp_utils::ExtractType(value), ::il2cpp_utils::ExtractType(weight)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, solver, effector, type, value, weight);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionObject.GetTarget
  ::UnityEngine::Transform* RootMotion::FinalIK::InteractionObject::GetTarget(::RootMotion::FinalIK::FullBodyBipedEffector effectorType) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::GetTarget");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetTarget", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(effectorType)})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Transform*, false>(this, ___internal__method, effectorType);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionObject.GetWeightCurveIndex
  int RootMotion::FinalIK::InteractionObject::GetWeightCurveIndex(::RootMotion::FinalIK::InteractionObject::WeightCurve::Type weightCurveType) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::GetWeightCurveIndex");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetWeightCurveIndex", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(weightCurveType)})));
    return ::il2cpp_utils::RunMethodRethrow<int, false>(this, ___internal__method, weightCurveType);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionObject.GetMultiplierIndex
  int RootMotion::FinalIK::InteractionObject::GetMultiplierIndex(::RootMotion::FinalIK::InteractionObject::WeightCurve::Type weightCurveType) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::GetMultiplierIndex");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetMultiplierIndex", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(weightCurveType)})));
    return ::il2cpp_utils::RunMethodRethrow<int, false>(this, ___internal__method, weightCurveType);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.InteractionEvent
  #include "RootMotion/FinalIK/InteractionObject_InteractionEvent.hpp"
  // Including type: UnityEngine.Events.UnityEvent
  #include "UnityEngine/Events/UnityEvent.hpp"
  // Including type: UnityEngine.Transform
  #include "UnityEngine/Transform.hpp"
  // Including type: RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.AnimatorEvent
  #include "RootMotion/FinalIK/InteractionObject_AnimatorEvent.hpp"
  // Including type: RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.Message
  #include "RootMotion/FinalIK/InteractionObject_Message.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public System.Single time
  float& RootMotion::FinalIK::InteractionObject::InteractionEvent::dyn_time() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::InteractionEvent::dyn_time");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "time"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Boolean pause
  bool& RootMotion::FinalIK::InteractionObject::InteractionEvent::dyn_pause() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::InteractionEvent::dyn_pause");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "pause"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Boolean pickUp
  bool& RootMotion::FinalIK::InteractionObject::InteractionEvent::dyn_pickUp() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::InteractionEvent::dyn_pickUp");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "pickUp"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.AnimatorEvent[] animations
  ::ArrayW<::RootMotion::FinalIK::InteractionObject::AnimatorEvent*>& RootMotion::FinalIK::InteractionObject::InteractionEvent::dyn_animations() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::InteractionEvent::dyn_animations");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "animations"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::InteractionObject::AnimatorEvent*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.Message[] messages
  ::ArrayW<::RootMotion::FinalIK::InteractionObject::Message*>& RootMotion::FinalIK::InteractionObject::InteractionEvent::dyn_messages() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::InteractionEvent::dyn_messages");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "messages"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::InteractionObject::Message*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Events.UnityEvent unityEvent
  ::UnityEngine::Events::UnityEvent*& RootMotion::FinalIK::InteractionObject::InteractionEvent::dyn_unityEvent() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::InteractionEvent::dyn_unityEvent");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "unityEvent"))->offset;
    return *reinterpret_cast<::UnityEngine::Events::UnityEvent**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.InteractionEvent.Activate
  void RootMotion::FinalIK::InteractionObject::InteractionEvent::Activate(::UnityEngine::Transform* t) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::InteractionEvent::Activate");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Activate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(t)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, t);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.Message
  #include "RootMotion/FinalIK/InteractionObject_Message.hpp"
  // Including type: UnityEngine.GameObject
  #include "UnityEngine/GameObject.hpp"
  // Including type: System.String
  #include "System/String.hpp"
  // Including type: UnityEngine.Transform
  #include "UnityEngine/Transform.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated static field getter
  // Get static field: static private System.String empty
  ::StringW RootMotion::FinalIK::InteractionObject::Message::_get_empty() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::Message::_get_empty");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::StringW>("RootMotion.FinalIK", "InteractionObject/Message", "empty"));
  }
  // Autogenerated static field setter
  // Set static field: static private System.String empty
  void RootMotion::FinalIK::InteractionObject::Message::_set_empty(::StringW value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::Message::_set_empty");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "InteractionObject/Message", "empty", value));
  }
  // Autogenerated instance field getter
  // Get instance field: public System.String function
  ::StringW& RootMotion::FinalIK::InteractionObject::Message::dyn_function() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::Message::dyn_function");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "function"))->offset;
    return *reinterpret_cast<::StringW*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.GameObject recipient
  ::UnityEngine::GameObject*& RootMotion::FinalIK::InteractionObject::Message::dyn_recipient() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::Message::dyn_recipient");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "recipient"))->offset;
    return *reinterpret_cast<::UnityEngine::GameObject**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.Message.Send
  void RootMotion::FinalIK::InteractionObject::Message::Send(::UnityEngine::Transform* t) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::Message::Send");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Send", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(t)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, t);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.AnimatorEvent
  #include "RootMotion/FinalIK/InteractionObject_AnimatorEvent.hpp"
  // Including type: UnityEngine.Animator
  #include "UnityEngine/Animator.hpp"
  // Including type: UnityEngine.Animation
  #include "UnityEngine/Animation.hpp"
  // Including type: System.String
  #include "System/String.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated static field getter
  // Get static field: static private System.String empty
  ::StringW RootMotion::FinalIK::InteractionObject::AnimatorEvent::_get_empty() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::AnimatorEvent::_get_empty");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::StringW>("RootMotion.FinalIK", "InteractionObject/AnimatorEvent", "empty"));
  }
  // Autogenerated static field setter
  // Set static field: static private System.String empty
  void RootMotion::FinalIK::InteractionObject::AnimatorEvent::_set_empty(::StringW value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::AnimatorEvent::_set_empty");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "InteractionObject/AnimatorEvent", "empty", value));
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Animator animator
  ::UnityEngine::Animator*& RootMotion::FinalIK::InteractionObject::AnimatorEvent::dyn_animator() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::AnimatorEvent::dyn_animator");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "animator"))->offset;
    return *reinterpret_cast<::UnityEngine::Animator**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Animation animation
  ::UnityEngine::Animation*& RootMotion::FinalIK::InteractionObject::AnimatorEvent::dyn_animation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::AnimatorEvent::dyn_animation");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "animation"))->offset;
    return *reinterpret_cast<::UnityEngine::Animation**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.String animationState
  ::StringW& RootMotion::FinalIK::InteractionObject::AnimatorEvent::dyn_animationState() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::AnimatorEvent::dyn_animationState");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "animationState"))->offset;
    return *reinterpret_cast<::StringW*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single crossfadeTime
  float& RootMotion::FinalIK::InteractionObject::AnimatorEvent::dyn_crossfadeTime() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::AnimatorEvent::dyn_crossfadeTime");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "crossfadeTime"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Int32 layer
  int& RootMotion::FinalIK::InteractionObject::AnimatorEvent::dyn_layer() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::AnimatorEvent::dyn_layer");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "layer"))->offset;
    return *reinterpret_cast<int*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Boolean resetNormalizedTime
  bool& RootMotion::FinalIK::InteractionObject::AnimatorEvent::dyn_resetNormalizedTime() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::AnimatorEvent::dyn_resetNormalizedTime");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "resetNormalizedTime"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.AnimatorEvent.Activate
  void RootMotion::FinalIK::InteractionObject::AnimatorEvent::Activate(bool pickUp) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::AnimatorEvent::Activate");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Activate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(pickUp)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, pickUp);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.AnimatorEvent.Activate
  void RootMotion::FinalIK::InteractionObject::AnimatorEvent::Activate(::UnityEngine::Animator* animator) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::AnimatorEvent::Activate");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Activate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(animator)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, animator);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.AnimatorEvent.Activate
  void RootMotion::FinalIK::InteractionObject::AnimatorEvent::Activate(::UnityEngine::Animation* animation) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::AnimatorEvent::Activate");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Activate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(animation)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, animation);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.WeightCurve
  #include "RootMotion/FinalIK/InteractionObject.hpp"
  // Including type: UnityEngine.AnimationCurve
  #include "UnityEngine/AnimationCurve.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.WeightCurve/RootMotion.FinalIK.Type type
  ::RootMotion::FinalIK::InteractionObject::WeightCurve::Type& RootMotion::FinalIK::InteractionObject::WeightCurve::dyn_type() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::WeightCurve::dyn_type");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "type"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::InteractionObject::WeightCurve::Type*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.AnimationCurve curve
  ::UnityEngine::AnimationCurve*& RootMotion::FinalIK::InteractionObject::WeightCurve::dyn_curve() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::WeightCurve::dyn_curve");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "curve"))->offset;
    return *reinterpret_cast<::UnityEngine::AnimationCurve**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.WeightCurve.GetValue
  float RootMotion::FinalIK::InteractionObject::WeightCurve::GetValue(float timer) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::WeightCurve::GetValue");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetValue", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(timer)})));
    return ::il2cpp_utils::RunMethodRethrow<float, false>(this, ___internal__method, timer);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.WeightCurve/RootMotion.FinalIK.Type
  #include "RootMotion/FinalIK/InteractionObject.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.WeightCurve/RootMotion.FinalIK.Type PositionWeight
  ::RootMotion::FinalIK::InteractionObject::WeightCurve::Type RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_get_PositionWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_get_PositionWeight");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::InteractionObject::WeightCurve::Type>("RootMotion.FinalIK", "InteractionObject/WeightCurve/Type", "PositionWeight"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.WeightCurve/RootMotion.FinalIK.Type PositionWeight
  void RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_set_PositionWeight(::RootMotion::FinalIK::InteractionObject::WeightCurve::Type value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_set_PositionWeight");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "InteractionObject/WeightCurve/Type", "PositionWeight", value));
  }
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.WeightCurve/RootMotion.FinalIK.Type RotationWeight
  ::RootMotion::FinalIK::InteractionObject::WeightCurve::Type RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_get_RotationWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_get_RotationWeight");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::InteractionObject::WeightCurve::Type>("RootMotion.FinalIK", "InteractionObject/WeightCurve/Type", "RotationWeight"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.WeightCurve/RootMotion.FinalIK.Type RotationWeight
  void RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_set_RotationWeight(::RootMotion::FinalIK::InteractionObject::WeightCurve::Type value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_set_RotationWeight");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "InteractionObject/WeightCurve/Type", "RotationWeight", value));
  }
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.WeightCurve/RootMotion.FinalIK.Type PositionOffsetX
  ::RootMotion::FinalIK::InteractionObject::WeightCurve::Type RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_get_PositionOffsetX() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_get_PositionOffsetX");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::InteractionObject::WeightCurve::Type>("RootMotion.FinalIK", "InteractionObject/WeightCurve/Type", "PositionOffsetX"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.WeightCurve/RootMotion.FinalIK.Type PositionOffsetX
  void RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_set_PositionOffsetX(::RootMotion::FinalIK::InteractionObject::WeightCurve::Type value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_set_PositionOffsetX");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "InteractionObject/WeightCurve/Type", "PositionOffsetX", value));
  }
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.WeightCurve/RootMotion.FinalIK.Type PositionOffsetY
  ::RootMotion::FinalIK::InteractionObject::WeightCurve::Type RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_get_PositionOffsetY() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_get_PositionOffsetY");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::InteractionObject::WeightCurve::Type>("RootMotion.FinalIK", "InteractionObject/WeightCurve/Type", "PositionOffsetY"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.WeightCurve/RootMotion.FinalIK.Type PositionOffsetY
  void RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_set_PositionOffsetY(::RootMotion::FinalIK::InteractionObject::WeightCurve::Type value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_set_PositionOffsetY");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "InteractionObject/WeightCurve/Type", "PositionOffsetY", value));
  }
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.WeightCurve/RootMotion.FinalIK.Type PositionOffsetZ
  ::RootMotion::FinalIK::InteractionObject::WeightCurve::Type RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_get_PositionOffsetZ() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_get_PositionOffsetZ");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::InteractionObject::WeightCurve::Type>("RootMotion.FinalIK", "InteractionObject/WeightCurve/Type", "PositionOffsetZ"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.WeightCurve/RootMotion.FinalIK.Type PositionOffsetZ
  void RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_set_PositionOffsetZ(::RootMotion::FinalIK::InteractionObject::WeightCurve::Type value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_set_PositionOffsetZ");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "InteractionObject/WeightCurve/Type", "PositionOffsetZ", value));
  }
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.WeightCurve/RootMotion.FinalIK.Type Pull
  ::RootMotion::FinalIK::InteractionObject::WeightCurve::Type RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_get_Pull() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_get_Pull");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::InteractionObject::WeightCurve::Type>("RootMotion.FinalIK", "InteractionObject/WeightCurve/Type", "Pull"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.WeightCurve/RootMotion.FinalIK.Type Pull
  void RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_set_Pull(::RootMotion::FinalIK::InteractionObject::WeightCurve::Type value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_set_Pull");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "InteractionObject/WeightCurve/Type", "Pull", value));
  }
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.WeightCurve/RootMotion.FinalIK.Type Reach
  ::RootMotion::FinalIK::InteractionObject::WeightCurve::Type RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_get_Reach() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_get_Reach");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::InteractionObject::WeightCurve::Type>("RootMotion.FinalIK", "InteractionObject/WeightCurve/Type", "Reach"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.WeightCurve/RootMotion.FinalIK.Type Reach
  void RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_set_Reach(::RootMotion::FinalIK::InteractionObject::WeightCurve::Type value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_set_Reach");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "InteractionObject/WeightCurve/Type", "Reach", value));
  }
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.WeightCurve/RootMotion.FinalIK.Type RotateBoneWeight
  ::RootMotion::FinalIK::InteractionObject::WeightCurve::Type RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_get_RotateBoneWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_get_RotateBoneWeight");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::InteractionObject::WeightCurve::Type>("RootMotion.FinalIK", "InteractionObject/WeightCurve/Type", "RotateBoneWeight"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.WeightCurve/RootMotion.FinalIK.Type RotateBoneWeight
  void RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_set_RotateBoneWeight(::RootMotion::FinalIK::InteractionObject::WeightCurve::Type value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_set_RotateBoneWeight");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "InteractionObject/WeightCurve/Type", "RotateBoneWeight", value));
  }
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.WeightCurve/RootMotion.FinalIK.Type Push
  ::RootMotion::FinalIK::InteractionObject::WeightCurve::Type RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_get_Push() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_get_Push");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::InteractionObject::WeightCurve::Type>("RootMotion.FinalIK", "InteractionObject/WeightCurve/Type", "Push"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.WeightCurve/RootMotion.FinalIK.Type Push
  void RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_set_Push(::RootMotion::FinalIK::InteractionObject::WeightCurve::Type value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_set_Push");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "InteractionObject/WeightCurve/Type", "Push", value));
  }
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.WeightCurve/RootMotion.FinalIK.Type PushParent
  ::RootMotion::FinalIK::InteractionObject::WeightCurve::Type RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_get_PushParent() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_get_PushParent");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::InteractionObject::WeightCurve::Type>("RootMotion.FinalIK", "InteractionObject/WeightCurve/Type", "PushParent"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.WeightCurve/RootMotion.FinalIK.Type PushParent
  void RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_set_PushParent(::RootMotion::FinalIK::InteractionObject::WeightCurve::Type value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_set_PushParent");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "InteractionObject/WeightCurve/Type", "PushParent", value));
  }
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.WeightCurve/RootMotion.FinalIK.Type PoserWeight
  ::RootMotion::FinalIK::InteractionObject::WeightCurve::Type RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_get_PoserWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_get_PoserWeight");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::InteractionObject::WeightCurve::Type>("RootMotion.FinalIK", "InteractionObject/WeightCurve/Type", "PoserWeight"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.WeightCurve/RootMotion.FinalIK.Type PoserWeight
  void RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_set_PoserWeight(::RootMotion::FinalIK::InteractionObject::WeightCurve::Type value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_set_PoserWeight");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "InteractionObject/WeightCurve/Type", "PoserWeight", value));
  }
  // Autogenerated static field getter
  // Get static field: static public RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.WeightCurve/RootMotion.FinalIK.Type BendGoalWeight
  ::RootMotion::FinalIK::InteractionObject::WeightCurve::Type RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_get_BendGoalWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_get_BendGoalWeight");
    return THROW_UNLESS(il2cpp_utils::GetFieldValue<::RootMotion::FinalIK::InteractionObject::WeightCurve::Type>("RootMotion.FinalIK", "InteractionObject/WeightCurve/Type", "BendGoalWeight"));
  }
  // Autogenerated static field setter
  // Set static field: static public RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.WeightCurve/RootMotion.FinalIK.Type BendGoalWeight
  void RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_set_BendGoalWeight(::RootMotion::FinalIK::InteractionObject::WeightCurve::Type value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::WeightCurve::Type::_set_BendGoalWeight");
    THROW_UNLESS(il2cpp_utils::SetFieldValue("RootMotion.FinalIK", "InteractionObject/WeightCurve/Type", "BendGoalWeight", value));
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Int32 value__
  int& RootMotion::FinalIK::InteractionObject::WeightCurve::Type::dyn_value__() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::WeightCurve::Type::dyn_value__");
    auto ___internal__instance = *this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "value__"))->offset;
    return *reinterpret_cast<int*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.Multiplier
  #include "RootMotion/FinalIK/InteractionObject_Multiplier.hpp"
  // Including type: RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.WeightCurve
  #include "RootMotion/FinalIK/InteractionObject.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.WeightCurve/RootMotion.FinalIK.Type curve
  ::RootMotion::FinalIK::InteractionObject::WeightCurve::Type& RootMotion::FinalIK::InteractionObject::Multiplier::dyn_curve() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::Multiplier::dyn_curve");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "curve"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::InteractionObject::WeightCurve::Type*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single multiplier
  float& RootMotion::FinalIK::InteractionObject::Multiplier::dyn_multiplier() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::Multiplier::dyn_multiplier");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "multiplier"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.WeightCurve/RootMotion.FinalIK.Type result
  ::RootMotion::FinalIK::InteractionObject::WeightCurve::Type& RootMotion::FinalIK::InteractionObject::Multiplier::dyn_result() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::Multiplier::dyn_result");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "result"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::InteractionObject::WeightCurve::Type*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.Multiplier.GetValue
  float RootMotion::FinalIK::InteractionObject::Multiplier::GetValue(::RootMotion::FinalIK::InteractionObject::WeightCurve* weightCurve, float timer) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionObject::Multiplier::GetValue");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetValue", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(weightCurve), ::il2cpp_utils::ExtractType(timer)})));
    return ::il2cpp_utils::RunMethodRethrow<float, false>(this, ___internal__method, weightCurve, timer);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.InteractionSystem
  #include "RootMotion/FinalIK/InteractionSystem.hpp"
  // Including type: RootMotion.FinalIK.InteractionSystem/RootMotion.FinalIK.InteractionDelegate
  #include "RootMotion/FinalIK/InteractionSystem_InteractionDelegate.hpp"
  // Including type: RootMotion.FinalIK.InteractionSystem/RootMotion.FinalIK.InteractionEventDelegate
  #include "RootMotion/FinalIK/InteractionSystem_InteractionEventDelegate.hpp"
  // Including type: UnityEngine.Collider
  #include "UnityEngine/Collider.hpp"
  // Including type: UnityEngine.Transform
  #include "UnityEngine/Transform.hpp"
  // Including type: System.Collections.Generic.List`1
  #include "System/Collections/Generic/List_1.hpp"
  // Including type: RootMotion.FinalIK.InteractionTrigger/RootMotion.FinalIK.Range
  #include "RootMotion/FinalIK/InteractionTrigger_Range.hpp"
  // Including type: RootMotion.FinalIK.FullBodyBipedIK
  #include "RootMotion/FinalIK/FullBodyBipedIK.hpp"
  // Including type: RootMotion.FinalIK.InteractionLookAt
  #include "RootMotion/FinalIK/InteractionLookAt.hpp"
  // Including type: RootMotion.FinalIK.InteractionEffector
  #include "RootMotion/FinalIK/InteractionEffector.hpp"
  // Including type: RootMotion.FinalIK.FullBodyBipedEffector
  #include "RootMotion/FinalIK/FullBodyBipedEffector.hpp"
  // Including type: RootMotion.FinalIK.InteractionObject
  #include "RootMotion/FinalIK/InteractionObject.hpp"
  // Including type: RootMotion.FinalIK.InteractionTarget
  #include "RootMotion/FinalIK/InteractionTarget.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public System.String targetTag
  ::StringW& RootMotion::FinalIK::InteractionSystem::dyn_targetTag() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::dyn_targetTag");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "targetTag"))->offset;
    return *reinterpret_cast<::StringW*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single fadeInTime
  float& RootMotion::FinalIK::InteractionSystem::dyn_fadeInTime() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::dyn_fadeInTime");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "fadeInTime"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single speed
  float& RootMotion::FinalIK::InteractionSystem::dyn_speed() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::dyn_speed");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "speed"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single resetToDefaultsSpeed
  float& RootMotion::FinalIK::InteractionSystem::dyn_resetToDefaultsSpeed() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::dyn_resetToDefaultsSpeed");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "resetToDefaultsSpeed"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Collider characterCollider
  ::UnityEngine::Collider*& RootMotion::FinalIK::InteractionSystem::dyn_characterCollider() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::dyn_characterCollider");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "characterCollider"))->offset;
    return *reinterpret_cast<::UnityEngine::Collider**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Transform FPSCamera
  ::UnityEngine::Transform*& RootMotion::FinalIK::InteractionSystem::dyn_FPSCamera() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::dyn_FPSCamera");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "FPSCamera"))->offset;
    return *reinterpret_cast<::UnityEngine::Transform**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.LayerMask camRaycastLayers
  ::UnityEngine::LayerMask& RootMotion::FinalIK::InteractionSystem::dyn_camRaycastLayers() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::dyn_camRaycastLayers");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "camRaycastLayers"))->offset;
    return *reinterpret_cast<::UnityEngine::LayerMask*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single camRaycastDistance
  float& RootMotion::FinalIK::InteractionSystem::dyn_camRaycastDistance() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::dyn_camRaycastDistance");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "camRaycastDistance"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Collections.Generic.List`1<RootMotion.FinalIK.InteractionTrigger> <triggersInRange>k__BackingField
  ::System::Collections::Generic::List_1<::RootMotion::FinalIK::InteractionTrigger*>*& RootMotion::FinalIK::InteractionSystem::dyn_$triggersInRange$k__BackingField() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::dyn_$triggersInRange$k__BackingField");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<triggersInRange>k__BackingField"))->offset;
    return *reinterpret_cast<::System::Collections::Generic::List_1<::RootMotion::FinalIK::InteractionTrigger*>**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Collections.Generic.List`1<RootMotion.FinalIK.InteractionTrigger> inContact
  ::System::Collections::Generic::List_1<::RootMotion::FinalIK::InteractionTrigger*>*& RootMotion::FinalIK::InteractionSystem::dyn_inContact() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::dyn_inContact");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "inContact"))->offset;
    return *reinterpret_cast<::System::Collections::Generic::List_1<::RootMotion::FinalIK::InteractionTrigger*>**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Collections.Generic.List`1<System.Int32> bestRangeIndexes
  ::System::Collections::Generic::List_1<int>*& RootMotion::FinalIK::InteractionSystem::dyn_bestRangeIndexes() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::dyn_bestRangeIndexes");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "bestRangeIndexes"))->offset;
    return *reinterpret_cast<::System::Collections::Generic::List_1<int>**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.InteractionSystem/RootMotion.FinalIK.InteractionDelegate OnInteractionStart
  ::RootMotion::FinalIK::InteractionSystem::InteractionDelegate*& RootMotion::FinalIK::InteractionSystem::dyn_OnInteractionStart() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::dyn_OnInteractionStart");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "OnInteractionStart"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::InteractionSystem::InteractionDelegate**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.InteractionSystem/RootMotion.FinalIK.InteractionDelegate OnInteractionPause
  ::RootMotion::FinalIK::InteractionSystem::InteractionDelegate*& RootMotion::FinalIK::InteractionSystem::dyn_OnInteractionPause() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::dyn_OnInteractionPause");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "OnInteractionPause"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::InteractionSystem::InteractionDelegate**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.InteractionSystem/RootMotion.FinalIK.InteractionDelegate OnInteractionPickUp
  ::RootMotion::FinalIK::InteractionSystem::InteractionDelegate*& RootMotion::FinalIK::InteractionSystem::dyn_OnInteractionPickUp() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::dyn_OnInteractionPickUp");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "OnInteractionPickUp"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::InteractionSystem::InteractionDelegate**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.InteractionSystem/RootMotion.FinalIK.InteractionDelegate OnInteractionResume
  ::RootMotion::FinalIK::InteractionSystem::InteractionDelegate*& RootMotion::FinalIK::InteractionSystem::dyn_OnInteractionResume() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::dyn_OnInteractionResume");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "OnInteractionResume"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::InteractionSystem::InteractionDelegate**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.InteractionSystem/RootMotion.FinalIK.InteractionDelegate OnInteractionStop
  ::RootMotion::FinalIK::InteractionSystem::InteractionDelegate*& RootMotion::FinalIK::InteractionSystem::dyn_OnInteractionStop() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::dyn_OnInteractionStop");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "OnInteractionStop"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::InteractionSystem::InteractionDelegate**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.InteractionSystem/RootMotion.FinalIK.InteractionEventDelegate OnInteractionEvent
  ::RootMotion::FinalIK::InteractionSystem::InteractionEventDelegate*& RootMotion::FinalIK::InteractionSystem::dyn_OnInteractionEvent() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::dyn_OnInteractionEvent");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "OnInteractionEvent"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::InteractionSystem::InteractionEventDelegate**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.RaycastHit raycastHit
  ::UnityEngine::RaycastHit& RootMotion::FinalIK::InteractionSystem::dyn_raycastHit() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::dyn_raycastHit");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "raycastHit"))->offset;
    return *reinterpret_cast<::UnityEngine::RaycastHit*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private RootMotion.FinalIK.FullBodyBipedIK fullBody
  ::RootMotion::FinalIK::FullBodyBipedIK*& RootMotion::FinalIK::InteractionSystem::dyn_fullBody() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::dyn_fullBody");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "fullBody"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::FullBodyBipedIK**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.InteractionLookAt lookAt
  ::RootMotion::FinalIK::InteractionLookAt*& RootMotion::FinalIK::InteractionSystem::dyn_lookAt() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::dyn_lookAt");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "lookAt"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::InteractionLookAt**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private RootMotion.FinalIK.InteractionEffector[] interactionEffectors
  ::ArrayW<::RootMotion::FinalIK::InteractionEffector*>& RootMotion::FinalIK::InteractionSystem::dyn_interactionEffectors() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::dyn_interactionEffectors");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "interactionEffectors"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::InteractionEffector*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean initiated
  bool& RootMotion::FinalIK::InteractionSystem::dyn_initiated() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::dyn_initiated");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "initiated"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Collider lastCollider
  ::UnityEngine::Collider*& RootMotion::FinalIK::InteractionSystem::dyn_lastCollider() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::dyn_lastCollider");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "lastCollider"))->offset;
    return *reinterpret_cast<::UnityEngine::Collider**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Collider c
  ::UnityEngine::Collider*& RootMotion::FinalIK::InteractionSystem::dyn_c() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::dyn_c");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "c"))->offset;
    return *reinterpret_cast<::UnityEngine::Collider**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.get_inInteraction
  bool RootMotion::FinalIK::InteractionSystem::get_inInteraction() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::get_inInteraction");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_inInteraction", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.get_ik
  ::RootMotion::FinalIK::FullBodyBipedIK* RootMotion::FinalIK::InteractionSystem::get_ik() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::get_ik");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_ik", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::FullBodyBipedIK*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.set_ik
  void RootMotion::FinalIK::InteractionSystem::set_ik(::RootMotion::FinalIK::FullBodyBipedIK* value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::set_ik");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "set_ik", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(value)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, value);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.get_triggersInRange
  ::System::Collections::Generic::List_1<::RootMotion::FinalIK::InteractionTrigger*>* RootMotion::FinalIK::InteractionSystem::get_triggersInRange() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::get_triggersInRange");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_triggersInRange", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::System::Collections::Generic::List_1<::RootMotion::FinalIK::InteractionTrigger*>*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.set_triggersInRange
  void RootMotion::FinalIK::InteractionSystem::set_triggersInRange(::System::Collections::Generic::List_1<::RootMotion::FinalIK::InteractionTrigger*>* value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::set_triggersInRange");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "set_triggersInRange", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(value)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, value);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.OpenUserManual
  void RootMotion::FinalIK::InteractionSystem::OpenUserManual() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::OpenUserManual");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OpenUserManual", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.OpenScriptReference
  void RootMotion::FinalIK::InteractionSystem::OpenScriptReference() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::OpenScriptReference");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OpenScriptReference", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.OpenTutorial1
  void RootMotion::FinalIK::InteractionSystem::OpenTutorial1() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::OpenTutorial1");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OpenTutorial1", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.OpenTutorial2
  void RootMotion::FinalIK::InteractionSystem::OpenTutorial2() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::OpenTutorial2");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OpenTutorial2", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.OpenTutorial3
  void RootMotion::FinalIK::InteractionSystem::OpenTutorial3() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::OpenTutorial3");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OpenTutorial3", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.OpenTutorial4
  void RootMotion::FinalIK::InteractionSystem::OpenTutorial4() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::OpenTutorial4");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OpenTutorial4", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.SupportGroup
  void RootMotion::FinalIK::InteractionSystem::SupportGroup() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::SupportGroup");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SupportGroup", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.ASThread
  void RootMotion::FinalIK::InteractionSystem::ASThread() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::ASThread");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "ASThread", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.IsInInteraction
  bool RootMotion::FinalIK::InteractionSystem::IsInInteraction(::RootMotion::FinalIK::FullBodyBipedEffector effectorType) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::IsInInteraction");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "IsInInteraction", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(effectorType)})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method, effectorType);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.IsPaused
  bool RootMotion::FinalIK::InteractionSystem::IsPaused(::RootMotion::FinalIK::FullBodyBipedEffector effectorType) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::IsPaused");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "IsPaused", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(effectorType)})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method, effectorType);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.IsPaused
  bool RootMotion::FinalIK::InteractionSystem::IsPaused() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::IsPaused");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "IsPaused", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.IsInSync
  bool RootMotion::FinalIK::InteractionSystem::IsInSync() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::IsInSync");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "IsInSync", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.StartInteraction
  bool RootMotion::FinalIK::InteractionSystem::StartInteraction(::RootMotion::FinalIK::FullBodyBipedEffector effectorType, ::RootMotion::FinalIK::InteractionObject* interactionObject, bool interrupt) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::StartInteraction");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "StartInteraction", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(effectorType), ::il2cpp_utils::ExtractType(interactionObject), ::il2cpp_utils::ExtractType(interrupt)})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method, effectorType, interactionObject, interrupt);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.PauseInteraction
  bool RootMotion::FinalIK::InteractionSystem::PauseInteraction(::RootMotion::FinalIK::FullBodyBipedEffector effectorType) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::PauseInteraction");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "PauseInteraction", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(effectorType)})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method, effectorType);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.ResumeInteraction
  bool RootMotion::FinalIK::InteractionSystem::ResumeInteraction(::RootMotion::FinalIK::FullBodyBipedEffector effectorType) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::ResumeInteraction");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "ResumeInteraction", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(effectorType)})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method, effectorType);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.StopInteraction
  bool RootMotion::FinalIK::InteractionSystem::StopInteraction(::RootMotion::FinalIK::FullBodyBipedEffector effectorType) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::StopInteraction");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "StopInteraction", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(effectorType)})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method, effectorType);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.PauseAll
  void RootMotion::FinalIK::InteractionSystem::PauseAll() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::PauseAll");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "PauseAll", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.ResumeAll
  void RootMotion::FinalIK::InteractionSystem::ResumeAll() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::ResumeAll");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "ResumeAll", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.StopAll
  void RootMotion::FinalIK::InteractionSystem::StopAll() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::StopAll");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "StopAll", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.GetInteractionObject
  ::RootMotion::FinalIK::InteractionObject* RootMotion::FinalIK::InteractionSystem::GetInteractionObject(::RootMotion::FinalIK::FullBodyBipedEffector effectorType) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::GetInteractionObject");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetInteractionObject", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(effectorType)})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::InteractionObject*, false>(this, ___internal__method, effectorType);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.GetProgress
  float RootMotion::FinalIK::InteractionSystem::GetProgress(::RootMotion::FinalIK::FullBodyBipedEffector effectorType) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::GetProgress");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetProgress", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(effectorType)})));
    return ::il2cpp_utils::RunMethodRethrow<float, false>(this, ___internal__method, effectorType);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.GetMinActiveProgress
  float RootMotion::FinalIK::InteractionSystem::GetMinActiveProgress() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::GetMinActiveProgress");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetMinActiveProgress", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<float, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.TriggerInteraction
  bool RootMotion::FinalIK::InteractionSystem::TriggerInteraction(int index, bool interrupt) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::TriggerInteraction");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "TriggerInteraction", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(index), ::il2cpp_utils::ExtractType(interrupt)})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method, index, interrupt);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.TriggerInteraction
  bool RootMotion::FinalIK::InteractionSystem::TriggerInteraction(int index, bool interrupt, ByRef<::RootMotion::FinalIK::InteractionObject*> interactionObject) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::TriggerInteraction");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "TriggerInteraction", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(index), ::il2cpp_utils::ExtractType(interrupt), ::il2cpp_utils::ExtractIndependentType<::RootMotion::FinalIK::InteractionObject*&>()})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method, index, interrupt, byref(interactionObject));
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.TriggerInteraction
  bool RootMotion::FinalIK::InteractionSystem::TriggerInteraction(int index, bool interrupt, ByRef<::RootMotion::FinalIK::InteractionTarget*> interactionTarget) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::TriggerInteraction");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "TriggerInteraction", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(index), ::il2cpp_utils::ExtractType(interrupt), ::il2cpp_utils::ExtractIndependentType<::RootMotion::FinalIK::InteractionTarget*&>()})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method, index, interrupt, byref(interactionTarget));
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.GetClosestInteractionRange
  ::RootMotion::FinalIK::InteractionTrigger::Range* RootMotion::FinalIK::InteractionSystem::GetClosestInteractionRange() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::GetClosestInteractionRange");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetClosestInteractionRange", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::InteractionTrigger::Range*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.GetClosestInteractionObjectInRange
  ::RootMotion::FinalIK::InteractionObject* RootMotion::FinalIK::InteractionSystem::GetClosestInteractionObjectInRange() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::GetClosestInteractionObjectInRange");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetClosestInteractionObjectInRange", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::InteractionObject*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.GetClosestInteractionTargetInRange
  ::RootMotion::FinalIK::InteractionTarget* RootMotion::FinalIK::InteractionSystem::GetClosestInteractionTargetInRange() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::GetClosestInteractionTargetInRange");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetClosestInteractionTargetInRange", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::InteractionTarget*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.GetClosestInteractionObjectsInRange
  ::ArrayW<::RootMotion::FinalIK::InteractionObject*> RootMotion::FinalIK::InteractionSystem::GetClosestInteractionObjectsInRange() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::GetClosestInteractionObjectsInRange");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetClosestInteractionObjectsInRange", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::ArrayW<::RootMotion::FinalIK::InteractionObject*>, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.GetClosestInteractionTargetsInRange
  ::ArrayW<::RootMotion::FinalIK::InteractionTarget*> RootMotion::FinalIK::InteractionSystem::GetClosestInteractionTargetsInRange() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::GetClosestInteractionTargetsInRange");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetClosestInteractionTargetsInRange", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::ArrayW<::RootMotion::FinalIK::InteractionTarget*>, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.TriggerEffectorsReady
  bool RootMotion::FinalIK::InteractionSystem::TriggerEffectorsReady(int index) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::TriggerEffectorsReady");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "TriggerEffectorsReady", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(index)})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method, index);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.GetTriggerRange
  ::RootMotion::FinalIK::InteractionTrigger::Range* RootMotion::FinalIK::InteractionSystem::GetTriggerRange(int index) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::GetTriggerRange");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetTriggerRange", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(index)})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::InteractionTrigger::Range*, false>(this, ___internal__method, index);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.GetClosestTriggerIndex
  int RootMotion::FinalIK::InteractionSystem::GetClosestTriggerIndex() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::GetClosestTriggerIndex");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetClosestTriggerIndex", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<int, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.Start
  void RootMotion::FinalIK::InteractionSystem::Start() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::Start");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Start", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.InteractionPause
  void RootMotion::FinalIK::InteractionSystem::InteractionPause(::RootMotion::FinalIK::FullBodyBipedEffector effector, ::RootMotion::FinalIK::InteractionObject* interactionObject) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::InteractionPause");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "InteractionPause", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(effector), ::il2cpp_utils::ExtractType(interactionObject)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, effector, interactionObject);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.InteractionResume
  void RootMotion::FinalIK::InteractionSystem::InteractionResume(::RootMotion::FinalIK::FullBodyBipedEffector effector, ::RootMotion::FinalIK::InteractionObject* interactionObject) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::InteractionResume");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "InteractionResume", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(effector), ::il2cpp_utils::ExtractType(interactionObject)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, effector, interactionObject);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.InteractionStop
  void RootMotion::FinalIK::InteractionSystem::InteractionStop(::RootMotion::FinalIK::FullBodyBipedEffector effector, ::RootMotion::FinalIK::InteractionObject* interactionObject) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::InteractionStop");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "InteractionStop", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(effector), ::il2cpp_utils::ExtractType(interactionObject)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, effector, interactionObject);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.LookAtInteraction
  void RootMotion::FinalIK::InteractionSystem::LookAtInteraction(::RootMotion::FinalIK::FullBodyBipedEffector effector, ::RootMotion::FinalIK::InteractionObject* interactionObject) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::LookAtInteraction");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "LookAtInteraction", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(effector), ::il2cpp_utils::ExtractType(interactionObject)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, effector, interactionObject);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.OnTriggerEnter
  void RootMotion::FinalIK::InteractionSystem::OnTriggerEnter(::UnityEngine::Collider* c) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::OnTriggerEnter");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnTriggerEnter", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(c)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, c);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.OnTriggerExit
  void RootMotion::FinalIK::InteractionSystem::OnTriggerExit(::UnityEngine::Collider* c) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::OnTriggerExit");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnTriggerExit", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(c)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, c);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.ContactIsInRange
  bool RootMotion::FinalIK::InteractionSystem::ContactIsInRange(int index, ByRef<int> bestRangeIndex) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::ContactIsInRange");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "ContactIsInRange", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(index), ::il2cpp_utils::ExtractIndependentType<int&>()})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method, index, byref(bestRangeIndex));
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.OnDrawGizmosSelected
  void RootMotion::FinalIK::InteractionSystem::OnDrawGizmosSelected() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::OnDrawGizmosSelected");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnDrawGizmosSelected", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.Update
  void RootMotion::FinalIK::InteractionSystem::Update() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::Update");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Update", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.Raycasting
  void RootMotion::FinalIK::InteractionSystem::Raycasting() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::Raycasting");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Raycasting", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.UpdateTriggerEventBroadcasting
  void RootMotion::FinalIK::InteractionSystem::UpdateTriggerEventBroadcasting() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::UpdateTriggerEventBroadcasting");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "UpdateTriggerEventBroadcasting", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.UpdateEffectors
  void RootMotion::FinalIK::InteractionSystem::UpdateEffectors() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::UpdateEffectors");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "UpdateEffectors", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.OnPreFBBIK
  void RootMotion::FinalIK::InteractionSystem::OnPreFBBIK() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::OnPreFBBIK");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnPreFBBIK", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.OnPostFBBIK
  void RootMotion::FinalIK::InteractionSystem::OnPostFBBIK() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::OnPostFBBIK");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnPostFBBIK", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.OnFixTransforms
  void RootMotion::FinalIK::InteractionSystem::OnFixTransforms() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::OnFixTransforms");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnFixTransforms", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.OnDestroy
  void RootMotion::FinalIK::InteractionSystem::OnDestroy() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::OnDestroy");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnDestroy", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.IsValid
  bool RootMotion::FinalIK::InteractionSystem::IsValid(bool log) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::IsValid");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "IsValid", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(log)})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method, log);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem.TriggerIndexIsValid
  bool RootMotion::FinalIK::InteractionSystem::TriggerIndexIsValid(int index) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::TriggerIndexIsValid");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "TriggerIndexIsValid", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(index)})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method, index);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  #include "beatsaber-hook/shared/utils/typedefs.h"
  // Including type: RootMotion.FinalIK.InteractionSystem/RootMotion.FinalIK.InteractionDelegate
  #include "RootMotion/FinalIK/InteractionSystem_InteractionDelegate.hpp"
  // Including type: RootMotion.FinalIK.FullBodyBipedEffector
  #include "RootMotion/FinalIK/FullBodyBipedEffector.hpp"
  // Including type: RootMotion.FinalIK.InteractionObject
  #include "RootMotion/FinalIK/InteractionObject.hpp"
  // Including type: System.IAsyncResult
  #include "System/IAsyncResult.hpp"
  // Including type: System.AsyncCallback
  #include "System/AsyncCallback.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem/RootMotion.FinalIK.InteractionDelegate.Invoke
  void RootMotion::FinalIK::InteractionSystem::InteractionDelegate::Invoke(::RootMotion::FinalIK::FullBodyBipedEffector effectorType, ::RootMotion::FinalIK::InteractionObject* interactionObject) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::InteractionDelegate::Invoke");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Invoke", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(effectorType), ::il2cpp_utils::ExtractType(interactionObject)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, effectorType, interactionObject);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem/RootMotion.FinalIK.InteractionDelegate.BeginInvoke
  ::System::IAsyncResult* RootMotion::FinalIK::InteractionSystem::InteractionDelegate::BeginInvoke(::RootMotion::FinalIK::FullBodyBipedEffector effectorType, ::RootMotion::FinalIK::InteractionObject* interactionObject, ::System::AsyncCallback* callback, ::Il2CppObject* object) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::InteractionDelegate::BeginInvoke");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "BeginInvoke", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(effectorType), ::il2cpp_utils::ExtractType(interactionObject), ::il2cpp_utils::ExtractType(callback), ::il2cpp_utils::ExtractType(object)})));
    return ::il2cpp_utils::RunMethodRethrow<::System::IAsyncResult*, false>(this, ___internal__method, effectorType, interactionObject, callback, object);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem/RootMotion.FinalIK.InteractionDelegate.EndInvoke
  void RootMotion::FinalIK::InteractionSystem::InteractionDelegate::EndInvoke(::System::IAsyncResult* result) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::InteractionDelegate::EndInvoke");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "EndInvoke", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(result)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, result);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  #include "beatsaber-hook/shared/utils/typedefs.h"
  // Including type: RootMotion.FinalIK.InteractionSystem/RootMotion.FinalIK.InteractionEventDelegate
  #include "RootMotion/FinalIK/InteractionSystem_InteractionEventDelegate.hpp"
  // Including type: RootMotion.FinalIK.FullBodyBipedEffector
  #include "RootMotion/FinalIK/FullBodyBipedEffector.hpp"
  // Including type: System.IAsyncResult
  #include "System/IAsyncResult.hpp"
  // Including type: System.AsyncCallback
  #include "System/AsyncCallback.hpp"
  // Including type: RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.InteractionEvent
  #include "RootMotion/FinalIK/InteractionObject_InteractionEvent.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem/RootMotion.FinalIK.InteractionEventDelegate.Invoke
  void RootMotion::FinalIK::InteractionSystem::InteractionEventDelegate::Invoke(::RootMotion::FinalIK::FullBodyBipedEffector effectorType, ::RootMotion::FinalIK::InteractionObject* interactionObject, ::RootMotion::FinalIK::InteractionObject::InteractionEvent* interactionEvent) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::InteractionEventDelegate::Invoke");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Invoke", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(effectorType), ::il2cpp_utils::ExtractType(interactionObject), ::il2cpp_utils::ExtractType(interactionEvent)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, effectorType, interactionObject, interactionEvent);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem/RootMotion.FinalIK.InteractionEventDelegate.BeginInvoke
  ::System::IAsyncResult* RootMotion::FinalIK::InteractionSystem::InteractionEventDelegate::BeginInvoke(::RootMotion::FinalIK::FullBodyBipedEffector effectorType, ::RootMotion::FinalIK::InteractionObject* interactionObject, ::RootMotion::FinalIK::InteractionObject::InteractionEvent* interactionEvent, ::System::AsyncCallback* callback, ::Il2CppObject* object) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::InteractionEventDelegate::BeginInvoke");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "BeginInvoke", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(effectorType), ::il2cpp_utils::ExtractType(interactionObject), ::il2cpp_utils::ExtractType(interactionEvent), ::il2cpp_utils::ExtractType(callback), ::il2cpp_utils::ExtractType(object)})));
    return ::il2cpp_utils::RunMethodRethrow<::System::IAsyncResult*, false>(this, ___internal__method, effectorType, interactionObject, interactionEvent, callback, object);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionSystem/RootMotion.FinalIK.InteractionEventDelegate.EndInvoke
  void RootMotion::FinalIK::InteractionSystem::InteractionEventDelegate::EndInvoke(::System::IAsyncResult* result) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionSystem::InteractionEventDelegate::EndInvoke");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "EndInvoke", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(result)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, result);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.InteractionTarget
  #include "RootMotion/FinalIK/InteractionTarget.hpp"
  // Including type: RootMotion.FinalIK.InteractionTarget/RootMotion.FinalIK.Multiplier
  #include "RootMotion/FinalIK/InteractionTarget_Multiplier.hpp"
  // Including type: UnityEngine.Transform
  #include "UnityEngine/Transform.hpp"
  // Including type: RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.WeightCurve/RootMotion.FinalIK.Type
  #include "RootMotion/FinalIK/InteractionObject.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.FullBodyBipedEffector effectorType
  ::RootMotion::FinalIK::FullBodyBipedEffector& RootMotion::FinalIK::InteractionTarget::dyn_effectorType() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTarget::dyn_effectorType");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "effectorType"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::FullBodyBipedEffector*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.InteractionTarget/RootMotion.FinalIK.Multiplier[] multipliers
  ::ArrayW<::RootMotion::FinalIK::InteractionTarget::Multiplier*>& RootMotion::FinalIK::InteractionTarget::dyn_multipliers() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTarget::dyn_multipliers");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "multipliers"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::InteractionTarget::Multiplier*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single interactionSpeedMlp
  float& RootMotion::FinalIK::InteractionTarget::dyn_interactionSpeedMlp() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTarget::dyn_interactionSpeedMlp");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "interactionSpeedMlp"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Transform pivot
  ::UnityEngine::Transform*& RootMotion::FinalIK::InteractionTarget::dyn_pivot() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTarget::dyn_pivot");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "pivot"))->offset;
    return *reinterpret_cast<::UnityEngine::Transform**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 twistAxis
  ::UnityEngine::Vector3& RootMotion::FinalIK::InteractionTarget::dyn_twistAxis() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTarget::dyn_twistAxis");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "twistAxis"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single twistWeight
  float& RootMotion::FinalIK::InteractionTarget::dyn_twistWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTarget::dyn_twistWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "twistWeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single swingWeight
  float& RootMotion::FinalIK::InteractionTarget::dyn_swingWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTarget::dyn_swingWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "swingWeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Boolean rotateOnce
  bool& RootMotion::FinalIK::InteractionTarget::dyn_rotateOnce() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTarget::dyn_rotateOnce");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "rotateOnce"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Quaternion defaultLocalRotation
  ::UnityEngine::Quaternion& RootMotion::FinalIK::InteractionTarget::dyn_defaultLocalRotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTarget::dyn_defaultLocalRotation");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "defaultLocalRotation"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Transform lastPivot
  ::UnityEngine::Transform*& RootMotion::FinalIK::InteractionTarget::dyn_lastPivot() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTarget::dyn_lastPivot");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "lastPivot"))->offset;
    return *reinterpret_cast<::UnityEngine::Transform**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionTarget.OpenUserManual
  void RootMotion::FinalIK::InteractionTarget::OpenUserManual() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTarget::OpenUserManual");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OpenUserManual", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionTarget.OpenScriptReference
  void RootMotion::FinalIK::InteractionTarget::OpenScriptReference() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTarget::OpenScriptReference");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OpenScriptReference", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionTarget.OpenTutorial1
  void RootMotion::FinalIK::InteractionTarget::OpenTutorial1() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTarget::OpenTutorial1");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OpenTutorial1", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionTarget.OpenTutorial2
  void RootMotion::FinalIK::InteractionTarget::OpenTutorial2() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTarget::OpenTutorial2");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OpenTutorial2", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionTarget.OpenTutorial3
  void RootMotion::FinalIK::InteractionTarget::OpenTutorial3() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTarget::OpenTutorial3");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OpenTutorial3", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionTarget.OpenTutorial4
  void RootMotion::FinalIK::InteractionTarget::OpenTutorial4() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTarget::OpenTutorial4");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OpenTutorial4", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionTarget.SupportGroup
  void RootMotion::FinalIK::InteractionTarget::SupportGroup() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTarget::SupportGroup");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SupportGroup", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionTarget.ASThread
  void RootMotion::FinalIK::InteractionTarget::ASThread() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTarget::ASThread");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "ASThread", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionTarget.GetValue
  float RootMotion::FinalIK::InteractionTarget::GetValue(::RootMotion::FinalIK::InteractionObject::WeightCurve::Type curveType) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTarget::GetValue");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetValue", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(curveType)})));
    return ::il2cpp_utils::RunMethodRethrow<float, false>(this, ___internal__method, curveType);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionTarget.ResetRotation
  void RootMotion::FinalIK::InteractionTarget::ResetRotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTarget::ResetRotation");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "ResetRotation", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionTarget.RotateTo
  void RootMotion::FinalIK::InteractionTarget::RotateTo(::UnityEngine::Vector3 position) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTarget::RotateTo");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "RotateTo", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(position)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, position);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.InteractionTarget/RootMotion.FinalIK.Multiplier
  #include "RootMotion/FinalIK/InteractionTarget_Multiplier.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.InteractionObject/RootMotion.FinalIK.WeightCurve/RootMotion.FinalIK.Type curve
  ::RootMotion::FinalIK::InteractionObject::WeightCurve::Type& RootMotion::FinalIK::InteractionTarget::Multiplier::dyn_curve() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTarget::Multiplier::dyn_curve");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "curve"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::InteractionObject::WeightCurve::Type*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single multiplier
  float& RootMotion::FinalIK::InteractionTarget::Multiplier::dyn_multiplier() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTarget::Multiplier::dyn_multiplier");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "multiplier"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.InteractionTrigger
  #include "RootMotion/FinalIK/InteractionTrigger.hpp"
  // Including type: RootMotion.FinalIK.InteractionTrigger/RootMotion.FinalIK.CharacterPosition
  #include "RootMotion/FinalIK/InteractionTrigger_CharacterPosition.hpp"
  // Including type: RootMotion.FinalIK.InteractionTrigger/RootMotion.FinalIK.CameraPosition
  #include "RootMotion/FinalIK/InteractionTrigger_CameraPosition.hpp"
  // Including type: RootMotion.FinalIK.InteractionTrigger/RootMotion.FinalIK.Range
  #include "RootMotion/FinalIK/InteractionTrigger_Range.hpp"
  // Including type: UnityEngine.Transform
  #include "UnityEngine/Transform.hpp"
  // Including type: UnityEngine.RaycastHit
  #include "UnityEngine/RaycastHit.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.InteractionTrigger/RootMotion.FinalIK.Range[] ranges
  ::ArrayW<::RootMotion::FinalIK::InteractionTrigger::Range*>& RootMotion::FinalIK::InteractionTrigger::dyn_ranges() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTrigger::dyn_ranges");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "ranges"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::InteractionTrigger::Range*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionTrigger.OpenUserManual
  void RootMotion::FinalIK::InteractionTrigger::OpenUserManual() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTrigger::OpenUserManual");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OpenUserManual", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionTrigger.OpenScriptReference
  void RootMotion::FinalIK::InteractionTrigger::OpenScriptReference() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTrigger::OpenScriptReference");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OpenScriptReference", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionTrigger.OpenTutorial4
  void RootMotion::FinalIK::InteractionTrigger::OpenTutorial4() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTrigger::OpenTutorial4");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OpenTutorial4", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionTrigger.SupportGroup
  void RootMotion::FinalIK::InteractionTrigger::SupportGroup() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTrigger::SupportGroup");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SupportGroup", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionTrigger.ASThread
  void RootMotion::FinalIK::InteractionTrigger::ASThread() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTrigger::ASThread");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "ASThread", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionTrigger.Start
  void RootMotion::FinalIK::InteractionTrigger::Start() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTrigger::Start");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Start", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionTrigger.GetBestRangeIndex
  int RootMotion::FinalIK::InteractionTrigger::GetBestRangeIndex(::UnityEngine::Transform* character, ::UnityEngine::Transform* raycastFrom, ::UnityEngine::RaycastHit raycastHit) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTrigger::GetBestRangeIndex");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetBestRangeIndex", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(character), ::il2cpp_utils::ExtractType(raycastFrom), ::il2cpp_utils::ExtractType(raycastHit)})));
    return ::il2cpp_utils::RunMethodRethrow<int, false>(this, ___internal__method, character, raycastFrom, raycastHit);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.InteractionTrigger/RootMotion.FinalIK.CharacterPosition
  #include "RootMotion/FinalIK/InteractionTrigger_CharacterPosition.hpp"
  // Including type: UnityEngine.Vector3
  #include "UnityEngine/Vector3.hpp"
  // Including type: UnityEngine.Transform
  #include "UnityEngine/Transform.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public System.Boolean use
  bool& RootMotion::FinalIK::InteractionTrigger::CharacterPosition::dyn_use() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTrigger::CharacterPosition::dyn_use");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "use"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector2 offset
  ::UnityEngine::Vector2& RootMotion::FinalIK::InteractionTrigger::CharacterPosition::dyn_offset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTrigger::CharacterPosition::dyn_offset");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "offset"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector2*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single angleOffset
  float& RootMotion::FinalIK::InteractionTrigger::CharacterPosition::dyn_angleOffset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTrigger::CharacterPosition::dyn_angleOffset");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "angleOffset"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single maxAngle
  float& RootMotion::FinalIK::InteractionTrigger::CharacterPosition::dyn_maxAngle() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTrigger::CharacterPosition::dyn_maxAngle");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "maxAngle"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single radius
  float& RootMotion::FinalIK::InteractionTrigger::CharacterPosition::dyn_radius() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTrigger::CharacterPosition::dyn_radius");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "radius"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Boolean orbit
  bool& RootMotion::FinalIK::InteractionTrigger::CharacterPosition::dyn_orbit() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTrigger::CharacterPosition::dyn_orbit");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "orbit"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Boolean fixYAxis
  bool& RootMotion::FinalIK::InteractionTrigger::CharacterPosition::dyn_fixYAxis() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTrigger::CharacterPosition::dyn_fixYAxis");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "fixYAxis"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionTrigger/RootMotion.FinalIK.CharacterPosition.get_offset3D
  ::UnityEngine::Vector3 RootMotion::FinalIK::InteractionTrigger::CharacterPosition::get_offset3D() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTrigger::CharacterPosition::get_offset3D");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_offset3D", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionTrigger/RootMotion.FinalIK.CharacterPosition.get_direction3D
  ::UnityEngine::Vector3 RootMotion::FinalIK::InteractionTrigger::CharacterPosition::get_direction3D() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTrigger::CharacterPosition::get_direction3D");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_direction3D", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionTrigger/RootMotion.FinalIK.CharacterPosition.IsInRange
  bool RootMotion::FinalIK::InteractionTrigger::CharacterPosition::IsInRange(::UnityEngine::Transform* character, ::UnityEngine::Transform* trigger, ByRef<float> error) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTrigger::CharacterPosition::IsInRange");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "IsInRange", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(character), ::il2cpp_utils::ExtractType(trigger), ::il2cpp_utils::ExtractIndependentType<float&>()})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method, character, trigger, byref(error));
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.InteractionTrigger/RootMotion.FinalIK.CameraPosition
  #include "RootMotion/FinalIK/InteractionTrigger_CameraPosition.hpp"
  // Including type: UnityEngine.Collider
  #include "UnityEngine/Collider.hpp"
  // Including type: UnityEngine.Quaternion
  #include "UnityEngine/Quaternion.hpp"
  // Including type: UnityEngine.Transform
  #include "UnityEngine/Transform.hpp"
  // Including type: UnityEngine.RaycastHit
  #include "UnityEngine/RaycastHit.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Collider lookAtTarget
  ::UnityEngine::Collider*& RootMotion::FinalIK::InteractionTrigger::CameraPosition::dyn_lookAtTarget() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTrigger::CameraPosition::dyn_lookAtTarget");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "lookAtTarget"))->offset;
    return *reinterpret_cast<::UnityEngine::Collider**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 direction
  ::UnityEngine::Vector3& RootMotion::FinalIK::InteractionTrigger::CameraPosition::dyn_direction() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTrigger::CameraPosition::dyn_direction");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "direction"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single maxDistance
  float& RootMotion::FinalIK::InteractionTrigger::CameraPosition::dyn_maxDistance() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTrigger::CameraPosition::dyn_maxDistance");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "maxDistance"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single maxAngle
  float& RootMotion::FinalIK::InteractionTrigger::CameraPosition::dyn_maxAngle() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTrigger::CameraPosition::dyn_maxAngle");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "maxAngle"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Boolean fixYAxis
  bool& RootMotion::FinalIK::InteractionTrigger::CameraPosition::dyn_fixYAxis() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTrigger::CameraPosition::dyn_fixYAxis");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "fixYAxis"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionTrigger/RootMotion.FinalIK.CameraPosition.GetRotation
  ::UnityEngine::Quaternion RootMotion::FinalIK::InteractionTrigger::CameraPosition::GetRotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTrigger::CameraPosition::GetRotation");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetRotation", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Quaternion, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionTrigger/RootMotion.FinalIK.CameraPosition.IsInRange
  bool RootMotion::FinalIK::InteractionTrigger::CameraPosition::IsInRange(::UnityEngine::Transform* raycastFrom, ::UnityEngine::RaycastHit hit, ::UnityEngine::Transform* trigger, ByRef<float> error) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTrigger::CameraPosition::IsInRange");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "IsInRange", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(raycastFrom), ::il2cpp_utils::ExtractType(hit), ::il2cpp_utils::ExtractType(trigger), ::il2cpp_utils::ExtractIndependentType<float&>()})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method, raycastFrom, hit, trigger, byref(error));
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.InteractionTrigger/RootMotion.FinalIK.Range
  #include "RootMotion/FinalIK/InteractionTrigger_Range.hpp"
  // Including type: RootMotion.FinalIK.InteractionTrigger/RootMotion.FinalIK.Range/RootMotion.FinalIK.Interaction
  #include "RootMotion/FinalIK/InteractionTrigger_Range_Interaction.hpp"
  // Including type: UnityEngine.Transform
  #include "UnityEngine/Transform.hpp"
  // Including type: UnityEngine.RaycastHit
  #include "UnityEngine/RaycastHit.hpp"
  // Including type: RootMotion.FinalIK.InteractionTrigger/RootMotion.FinalIK.CharacterPosition
  #include "RootMotion/FinalIK/InteractionTrigger_CharacterPosition.hpp"
  // Including type: RootMotion.FinalIK.InteractionTrigger/RootMotion.FinalIK.CameraPosition
  #include "RootMotion/FinalIK/InteractionTrigger_CameraPosition.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public System.String name
  ::StringW& RootMotion::FinalIK::InteractionTrigger::Range::dyn_name() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTrigger::Range::dyn_name");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "name"))->offset;
    return *reinterpret_cast<::StringW*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Boolean show
  bool& RootMotion::FinalIK::InteractionTrigger::Range::dyn_show() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTrigger::Range::dyn_show");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "show"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.InteractionTrigger/RootMotion.FinalIK.CharacterPosition characterPosition
  ::RootMotion::FinalIK::InteractionTrigger::CharacterPosition*& RootMotion::FinalIK::InteractionTrigger::Range::dyn_characterPosition() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTrigger::Range::dyn_characterPosition");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "characterPosition"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::InteractionTrigger::CharacterPosition**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.InteractionTrigger/RootMotion.FinalIK.CameraPosition cameraPosition
  ::RootMotion::FinalIK::InteractionTrigger::CameraPosition*& RootMotion::FinalIK::InteractionTrigger::Range::dyn_cameraPosition() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTrigger::Range::dyn_cameraPosition");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "cameraPosition"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::InteractionTrigger::CameraPosition**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.InteractionTrigger/RootMotion.FinalIK.Range/RootMotion.FinalIK.Interaction[] interactions
  ::ArrayW<::RootMotion::FinalIK::InteractionTrigger::Range::Interaction*>& RootMotion::FinalIK::InteractionTrigger::Range::dyn_interactions() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTrigger::Range::dyn_interactions");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "interactions"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::InteractionTrigger::Range::Interaction*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.InteractionTrigger/RootMotion.FinalIK.Range.IsInRange
  bool RootMotion::FinalIK::InteractionTrigger::Range::IsInRange(::UnityEngine::Transform* character, ::UnityEngine::Transform* raycastFrom, ::UnityEngine::RaycastHit raycastHit, ::UnityEngine::Transform* trigger, ByRef<float> maxError) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTrigger::Range::IsInRange");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "IsInRange", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(character), ::il2cpp_utils::ExtractType(raycastFrom), ::il2cpp_utils::ExtractType(raycastHit), ::il2cpp_utils::ExtractType(trigger), ::il2cpp_utils::ExtractIndependentType<float&>()})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method, character, raycastFrom, raycastHit, trigger, byref(maxError));
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.InteractionTrigger/RootMotion.FinalIK.Range/RootMotion.FinalIK.Interaction
  #include "RootMotion/FinalIK/InteractionTrigger_Range_Interaction.hpp"
  // Including type: RootMotion.FinalIK.InteractionObject
  #include "RootMotion/FinalIK/InteractionObject.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.InteractionObject interactionObject
  ::RootMotion::FinalIK::InteractionObject*& RootMotion::FinalIK::InteractionTrigger::Range::Interaction::dyn_interactionObject() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTrigger::Range::Interaction::dyn_interactionObject");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "interactionObject"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::InteractionObject**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.FullBodyBipedEffector[] effectors
  ::ArrayW<::RootMotion::FinalIK::FullBodyBipedEffector>& RootMotion::FinalIK::InteractionTrigger::Range::Interaction::dyn_effectors() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::InteractionTrigger::Range::Interaction::dyn_effectors");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "effectors"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::FullBodyBipedEffector>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.GenericPoser
  #include "RootMotion/FinalIK/GenericPoser.hpp"
  // Including type: RootMotion.FinalIK.GenericPoser/RootMotion.FinalIK.Map
  #include "RootMotion/FinalIK/GenericPoser_Map.hpp"
  // Including type: UnityEngine.Transform
  #include "UnityEngine/Transform.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.GenericPoser/RootMotion.FinalIK.Map[] maps
  ::ArrayW<::RootMotion::FinalIK::GenericPoser::Map*>& RootMotion::FinalIK::GenericPoser::dyn_maps() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::GenericPoser::dyn_maps");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "maps"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::GenericPoser::Map*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.GenericPoser.StoreDefaultState
  void RootMotion::FinalIK::GenericPoser::StoreDefaultState() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::GenericPoser::StoreDefaultState");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "StoreDefaultState", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.GenericPoser.GetTargetNamed
  ::UnityEngine::Transform* RootMotion::FinalIK::GenericPoser::GetTargetNamed(::StringW tName, ::ArrayW<::UnityEngine::Transform*> array) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::GenericPoser::GetTargetNamed");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetTargetNamed", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(tName), ::il2cpp_utils::ExtractType(array)})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Transform*, false>(this, ___internal__method, tName, array);
  }
  // Autogenerated method: RootMotion.FinalIK.GenericPoser.AutoMapping
  void RootMotion::FinalIK::GenericPoser::AutoMapping() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::GenericPoser::AutoMapping");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "AutoMapping", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.GenericPoser.InitiatePoser
  void RootMotion::FinalIK::GenericPoser::InitiatePoser() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::GenericPoser::InitiatePoser");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "InitiatePoser", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.GenericPoser.UpdatePoser
  void RootMotion::FinalIK::GenericPoser::UpdatePoser() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::GenericPoser::UpdatePoser");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "UpdatePoser", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.GenericPoser.FixPoserTransforms
  void RootMotion::FinalIK::GenericPoser::FixPoserTransforms() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::GenericPoser::FixPoserTransforms");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "FixPoserTransforms", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.GenericPoser/RootMotion.FinalIK.Map
  #include "RootMotion/FinalIK/GenericPoser_Map.hpp"
  // Including type: UnityEngine.Transform
  #include "UnityEngine/Transform.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Transform bone
  ::UnityEngine::Transform*& RootMotion::FinalIK::GenericPoser::Map::dyn_bone() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::GenericPoser::Map::dyn_bone");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "bone"))->offset;
    return *reinterpret_cast<::UnityEngine::Transform**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Transform target
  ::UnityEngine::Transform*& RootMotion::FinalIK::GenericPoser::Map::dyn_target() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::GenericPoser::Map::dyn_target");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "target"))->offset;
    return *reinterpret_cast<::UnityEngine::Transform**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 defaultLocalPosition
  ::UnityEngine::Vector3& RootMotion::FinalIK::GenericPoser::Map::dyn_defaultLocalPosition() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::GenericPoser::Map::dyn_defaultLocalPosition");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "defaultLocalPosition"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Quaternion defaultLocalRotation
  ::UnityEngine::Quaternion& RootMotion::FinalIK::GenericPoser::Map::dyn_defaultLocalRotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::GenericPoser::Map::dyn_defaultLocalRotation");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "defaultLocalRotation"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.GenericPoser/RootMotion.FinalIK.Map.StoreDefaultState
  void RootMotion::FinalIK::GenericPoser::Map::StoreDefaultState() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::GenericPoser::Map::StoreDefaultState");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "StoreDefaultState", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.GenericPoser/RootMotion.FinalIK.Map.FixTransform
  void RootMotion::FinalIK::GenericPoser::Map::FixTransform() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::GenericPoser::Map::FixTransform");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "FixTransform", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.GenericPoser/RootMotion.FinalIK.Map.Update
  void RootMotion::FinalIK::GenericPoser::Map::Update(float localRotationWeight, float localPositionWeight) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::GenericPoser::Map::Update");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Update", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(localRotationWeight), ::il2cpp_utils::ExtractType(localPositionWeight)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, localRotationWeight, localPositionWeight);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.HandPoser
  #include "RootMotion/FinalIK/HandPoser.hpp"
  // Including type: UnityEngine.Transform
  #include "UnityEngine/Transform.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: protected UnityEngine.Transform[] children
  ::ArrayW<::UnityEngine::Transform*>& RootMotion::FinalIK::HandPoser::dyn_children() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HandPoser::dyn_children");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "children"))->offset;
    return *reinterpret_cast<::ArrayW<::UnityEngine::Transform*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Transform _poseRoot
  ::UnityEngine::Transform*& RootMotion::FinalIK::HandPoser::dyn__poseRoot() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HandPoser::dyn__poseRoot");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "_poseRoot"))->offset;
    return *reinterpret_cast<::UnityEngine::Transform**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Transform[] poseChildren
  ::ArrayW<::UnityEngine::Transform*>& RootMotion::FinalIK::HandPoser::dyn_poseChildren() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HandPoser::dyn_poseChildren");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "poseChildren"))->offset;
    return *reinterpret_cast<::ArrayW<::UnityEngine::Transform*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3[] defaultLocalPositions
  ::ArrayW<::UnityEngine::Vector3>& RootMotion::FinalIK::HandPoser::dyn_defaultLocalPositions() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HandPoser::dyn_defaultLocalPositions");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "defaultLocalPositions"))->offset;
    return *reinterpret_cast<::ArrayW<::UnityEngine::Vector3>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Quaternion[] defaultLocalRotations
  ::ArrayW<::UnityEngine::Quaternion>& RootMotion::FinalIK::HandPoser::dyn_defaultLocalRotations() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HandPoser::dyn_defaultLocalRotations");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "defaultLocalRotations"))->offset;
    return *reinterpret_cast<::ArrayW<::UnityEngine::Quaternion>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.HandPoser.StoreDefaultState
  void RootMotion::FinalIK::HandPoser::StoreDefaultState() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HandPoser::StoreDefaultState");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "StoreDefaultState", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.HandPoser.AutoMapping
  void RootMotion::FinalIK::HandPoser::AutoMapping() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HandPoser::AutoMapping");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "AutoMapping", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.HandPoser.InitiatePoser
  void RootMotion::FinalIK::HandPoser::InitiatePoser() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HandPoser::InitiatePoser");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "InitiatePoser", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.HandPoser.FixPoserTransforms
  void RootMotion::FinalIK::HandPoser::FixPoserTransforms() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HandPoser::FixPoserTransforms");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "FixPoserTransforms", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.HandPoser.UpdatePoser
  void RootMotion::FinalIK::HandPoser::UpdatePoser() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HandPoser::UpdatePoser");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "UpdatePoser", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.Poser
  #include "RootMotion/FinalIK/Poser.hpp"
  // Including type: UnityEngine.Transform
  #include "UnityEngine/Transform.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Transform poseRoot
  ::UnityEngine::Transform*& RootMotion::FinalIK::Poser::dyn_poseRoot() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Poser::dyn_poseRoot");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "poseRoot"))->offset;
    return *reinterpret_cast<::UnityEngine::Transform**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single weight
  float& RootMotion::FinalIK::Poser::dyn_weight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Poser::dyn_weight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "weight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single localRotationWeight
  float& RootMotion::FinalIK::Poser::dyn_localRotationWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Poser::dyn_localRotationWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "localRotationWeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single localPositionWeight
  float& RootMotion::FinalIK::Poser::dyn_localPositionWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Poser::dyn_localPositionWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "localPositionWeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean initiated
  bool& RootMotion::FinalIK::Poser::dyn_initiated() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Poser::dyn_initiated");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "initiated"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.Poser.AutoMapping
  void RootMotion::FinalIK::Poser::AutoMapping() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Poser::AutoMapping");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "AutoMapping", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.Poser.UpdateManual
  void RootMotion::FinalIK::Poser::UpdateManual() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Poser::UpdateManual");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "UpdateManual", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.Poser.InitiatePoser
  void RootMotion::FinalIK::Poser::InitiatePoser() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Poser::InitiatePoser");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "InitiatePoser", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.Poser.UpdatePoser
  void RootMotion::FinalIK::Poser::UpdatePoser() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Poser::UpdatePoser");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "UpdatePoser", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.Poser.FixPoserTransforms
  void RootMotion::FinalIK::Poser::FixPoserTransforms() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Poser::FixPoserTransforms");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "FixPoserTransforms", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.Poser.UpdateSolver
  void RootMotion::FinalIK::Poser::UpdateSolver() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Poser::UpdateSolver");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "UpdateSolver", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.Poser.InitiateSolver
  void RootMotion::FinalIK::Poser::InitiateSolver() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Poser::InitiateSolver");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "InitiateSolver", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.Poser.FixTransforms
  void RootMotion::FinalIK::Poser::FixTransforms() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Poser::FixTransforms");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "FixTransforms", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.RagdollUtility
  #include "RootMotion/FinalIK/RagdollUtility.hpp"
  // Including type: RootMotion.FinalIK.RagdollUtility/RootMotion.FinalIK.Rigidbone
  #include "RootMotion/FinalIK/RagdollUtility_Rigidbone.hpp"
  // Including type: RootMotion.FinalIK.RagdollUtility/RootMotion.FinalIK.Child
  #include "RootMotion/FinalIK/RagdollUtility_Child.hpp"
  // Including type: RootMotion.FinalIK.RagdollUtility/RootMotion.FinalIK.<DisableRagdollSmooth>d__21
  #include "RootMotion/FinalIK/RagdollUtility_-DisableRagdollSmooth-d__21.hpp"
  // Including type: RootMotion.FinalIK.IK
  #include "RootMotion/FinalIK/IK.hpp"
  // Including type: UnityEngine.Animator
  #include "UnityEngine/Animator.hpp"
  // Including type: System.Collections.IEnumerator
  #include "System/Collections/IEnumerator.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IK ik
  ::RootMotion::FinalIK::IK*& RootMotion::FinalIK::RagdollUtility::dyn_ik() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::dyn_ik");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "ik"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IK**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single ragdollToAnimationTime
  float& RootMotion::FinalIK::RagdollUtility::dyn_ragdollToAnimationTime() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::dyn_ragdollToAnimationTime");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "ragdollToAnimationTime"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Boolean applyIkOnRagdoll
  bool& RootMotion::FinalIK::RagdollUtility::dyn_applyIkOnRagdoll() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::dyn_applyIkOnRagdoll");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "applyIkOnRagdoll"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single applyVelocity
  float& RootMotion::FinalIK::RagdollUtility::dyn_applyVelocity() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::dyn_applyVelocity");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "applyVelocity"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single applyAngularVelocity
  float& RootMotion::FinalIK::RagdollUtility::dyn_applyAngularVelocity() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::dyn_applyAngularVelocity");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "applyAngularVelocity"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Animator animator
  ::UnityEngine::Animator*& RootMotion::FinalIK::RagdollUtility::dyn_animator() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::dyn_animator");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "animator"))->offset;
    return *reinterpret_cast<::UnityEngine::Animator**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private RootMotion.FinalIK.RagdollUtility/RootMotion.FinalIK.Rigidbone[] rigidbones
  ::ArrayW<::RootMotion::FinalIK::RagdollUtility::Rigidbone*>& RootMotion::FinalIK::RagdollUtility::dyn_rigidbones() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::dyn_rigidbones");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "rigidbones"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::RagdollUtility::Rigidbone*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private RootMotion.FinalIK.RagdollUtility/RootMotion.FinalIK.Child[] children
  ::ArrayW<::RootMotion::FinalIK::RagdollUtility::Child*>& RootMotion::FinalIK::RagdollUtility::dyn_children() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::dyn_children");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "children"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::RagdollUtility::Child*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean enableRagdollFlag
  bool& RootMotion::FinalIK::RagdollUtility::dyn_enableRagdollFlag() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::dyn_enableRagdollFlag");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "enableRagdollFlag"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.AnimatorUpdateMode animatorUpdateMode
  ::UnityEngine::AnimatorUpdateMode& RootMotion::FinalIK::RagdollUtility::dyn_animatorUpdateMode() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::dyn_animatorUpdateMode");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "animatorUpdateMode"))->offset;
    return *reinterpret_cast<::UnityEngine::AnimatorUpdateMode*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private RootMotion.FinalIK.IK[] allIKComponents
  ::ArrayW<::RootMotion::FinalIK::IK*>& RootMotion::FinalIK::RagdollUtility::dyn_allIKComponents() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::dyn_allIKComponents");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "allIKComponents"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::IK*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean[] fixTransforms
  ::ArrayW<bool>& RootMotion::FinalIK::RagdollUtility::dyn_fixTransforms() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::dyn_fixTransforms");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "fixTransforms"))->offset;
    return *reinterpret_cast<::ArrayW<bool>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single ragdollWeight
  float& RootMotion::FinalIK::RagdollUtility::dyn_ragdollWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::dyn_ragdollWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "ragdollWeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single ragdollWeightV
  float& RootMotion::FinalIK::RagdollUtility::dyn_ragdollWeightV() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::dyn_ragdollWeightV");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "ragdollWeightV"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean fixedFrame
  bool& RootMotion::FinalIK::RagdollUtility::dyn_fixedFrame() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::dyn_fixedFrame");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "fixedFrame"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean[] disabledIKComponents
  ::ArrayW<bool>& RootMotion::FinalIK::RagdollUtility::dyn_disabledIKComponents() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::dyn_disabledIKComponents");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "disabledIKComponents"))->offset;
    return *reinterpret_cast<::ArrayW<bool>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.RagdollUtility.get_isRagdoll
  bool RootMotion::FinalIK::RagdollUtility::get_isRagdoll() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::get_isRagdoll");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_isRagdoll", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RagdollUtility.get_ikUsed
  bool RootMotion::FinalIK::RagdollUtility::get_ikUsed() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::get_ikUsed");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_ikUsed", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RagdollUtility.EnableRagdoll
  void RootMotion::FinalIK::RagdollUtility::EnableRagdoll() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::EnableRagdoll");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "EnableRagdoll", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RagdollUtility.DisableRagdoll
  void RootMotion::FinalIK::RagdollUtility::DisableRagdoll() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::DisableRagdoll");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "DisableRagdoll", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RagdollUtility.Start
  void RootMotion::FinalIK::RagdollUtility::Start() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::Start");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Start", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RagdollUtility.DisableRagdollSmooth
  ::System::Collections::IEnumerator* RootMotion::FinalIK::RagdollUtility::DisableRagdollSmooth() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::DisableRagdollSmooth");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "DisableRagdollSmooth", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::System::Collections::IEnumerator*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RagdollUtility.Update
  void RootMotion::FinalIK::RagdollUtility::Update() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::Update");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Update", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RagdollUtility.FixedUpdate
  void RootMotion::FinalIK::RagdollUtility::FixedUpdate() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::FixedUpdate");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "FixedUpdate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RagdollUtility.LateUpdate
  void RootMotion::FinalIK::RagdollUtility::LateUpdate() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::LateUpdate");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "LateUpdate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RagdollUtility.AfterLastIK
  void RootMotion::FinalIK::RagdollUtility::AfterLastIK() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::AfterLastIK");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "AfterLastIK", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RagdollUtility.AfterAnimation
  void RootMotion::FinalIK::RagdollUtility::AfterAnimation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::AfterAnimation");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "AfterAnimation", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RagdollUtility.OnFinalPose
  void RootMotion::FinalIK::RagdollUtility::OnFinalPose() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::OnFinalPose");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnFinalPose", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RagdollUtility.RagdollEnabler
  void RootMotion::FinalIK::RagdollUtility::RagdollEnabler() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::RagdollEnabler");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "RagdollEnabler", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RagdollUtility.RecordVelocities
  void RootMotion::FinalIK::RagdollUtility::RecordVelocities() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::RecordVelocities");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "RecordVelocities", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RagdollUtility.StoreLocalState
  void RootMotion::FinalIK::RagdollUtility::StoreLocalState() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::StoreLocalState");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "StoreLocalState", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RagdollUtility.FixTransforms
  void RootMotion::FinalIK::RagdollUtility::FixTransforms(float weight) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::FixTransforms");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "FixTransforms", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(weight)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, weight);
  }
  // Autogenerated method: RootMotion.FinalIK.RagdollUtility.OnDestroy
  void RootMotion::FinalIK::RagdollUtility::OnDestroy() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::OnDestroy");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnDestroy", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.RagdollUtility/RootMotion.FinalIK.Rigidbone
  #include "RootMotion/FinalIK/RagdollUtility_Rigidbone.hpp"
  // Including type: UnityEngine.Rigidbody
  #include "UnityEngine/Rigidbody.hpp"
  // Including type: UnityEngine.Transform
  #include "UnityEngine/Transform.hpp"
  // Including type: UnityEngine.Collider
  #include "UnityEngine/Collider.hpp"
  // Including type: UnityEngine.Joint
  #include "UnityEngine/Joint.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Rigidbody r
  ::UnityEngine::Rigidbody*& RootMotion::FinalIK::RagdollUtility::Rigidbone::dyn_r() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::Rigidbone::dyn_r");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "r"))->offset;
    return *reinterpret_cast<::UnityEngine::Rigidbody**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Transform t
  ::UnityEngine::Transform*& RootMotion::FinalIK::RagdollUtility::Rigidbone::dyn_t() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::Rigidbone::dyn_t");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "t"))->offset;
    return *reinterpret_cast<::UnityEngine::Transform**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Collider collider
  ::UnityEngine::Collider*& RootMotion::FinalIK::RagdollUtility::Rigidbone::dyn_collider() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::Rigidbone::dyn_collider");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "collider"))->offset;
    return *reinterpret_cast<::UnityEngine::Collider**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Joint joint
  ::UnityEngine::Joint*& RootMotion::FinalIK::RagdollUtility::Rigidbone::dyn_joint() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::Rigidbone::dyn_joint");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "joint"))->offset;
    return *reinterpret_cast<::UnityEngine::Joint**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Rigidbody c
  ::UnityEngine::Rigidbody*& RootMotion::FinalIK::RagdollUtility::Rigidbone::dyn_c() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::Rigidbone::dyn_c");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "c"))->offset;
    return *reinterpret_cast<::UnityEngine::Rigidbody**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Boolean updateAnchor
  bool& RootMotion::FinalIK::RagdollUtility::Rigidbone::dyn_updateAnchor() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::Rigidbone::dyn_updateAnchor");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "updateAnchor"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 deltaPosition
  ::UnityEngine::Vector3& RootMotion::FinalIK::RagdollUtility::Rigidbone::dyn_deltaPosition() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::Rigidbone::dyn_deltaPosition");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "deltaPosition"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Quaternion deltaRotation
  ::UnityEngine::Quaternion& RootMotion::FinalIK::RagdollUtility::Rigidbone::dyn_deltaRotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::Rigidbone::dyn_deltaRotation");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "deltaRotation"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single deltaTime
  float& RootMotion::FinalIK::RagdollUtility::Rigidbone::dyn_deltaTime() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::Rigidbone::dyn_deltaTime");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "deltaTime"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 lastPosition
  ::UnityEngine::Vector3& RootMotion::FinalIK::RagdollUtility::Rigidbone::dyn_lastPosition() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::Rigidbone::dyn_lastPosition");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "lastPosition"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Quaternion lastRotation
  ::UnityEngine::Quaternion& RootMotion::FinalIK::RagdollUtility::Rigidbone::dyn_lastRotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::Rigidbone::dyn_lastRotation");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "lastRotation"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.RagdollUtility/RootMotion.FinalIK.Rigidbone.RecordVelocity
  void RootMotion::FinalIK::RagdollUtility::Rigidbone::RecordVelocity() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::Rigidbone::RecordVelocity");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "RecordVelocity", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RagdollUtility/RootMotion.FinalIK.Rigidbone.WakeUp
  void RootMotion::FinalIK::RagdollUtility::Rigidbone::WakeUp(float velocityWeight, float angularVelocityWeight) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::Rigidbone::WakeUp");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "WakeUp", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(velocityWeight), ::il2cpp_utils::ExtractType(angularVelocityWeight)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, velocityWeight, angularVelocityWeight);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.RagdollUtility/RootMotion.FinalIK.Child
  #include "RootMotion/FinalIK/RagdollUtility_Child.hpp"
  // Including type: UnityEngine.Transform
  #include "UnityEngine/Transform.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Transform t
  ::UnityEngine::Transform*& RootMotion::FinalIK::RagdollUtility::Child::dyn_t() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::Child::dyn_t");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "t"))->offset;
    return *reinterpret_cast<::UnityEngine::Transform**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 localPosition
  ::UnityEngine::Vector3& RootMotion::FinalIK::RagdollUtility::Child::dyn_localPosition() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::Child::dyn_localPosition");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "localPosition"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Quaternion localRotation
  ::UnityEngine::Quaternion& RootMotion::FinalIK::RagdollUtility::Child::dyn_localRotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::Child::dyn_localRotation");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "localRotation"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.RagdollUtility/RootMotion.FinalIK.Child.FixTransform
  void RootMotion::FinalIK::RagdollUtility::Child::FixTransform(float weight) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::Child::FixTransform");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "FixTransform", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(weight)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, weight);
  }
  // Autogenerated method: RootMotion.FinalIK.RagdollUtility/RootMotion.FinalIK.Child.StoreLocalState
  void RootMotion::FinalIK::RagdollUtility::Child::StoreLocalState() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::Child::StoreLocalState");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "StoreLocalState", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  #include "beatsaber-hook/shared/utils/typedefs.h"
  // Including type: RootMotion.FinalIK.RagdollUtility/RootMotion.FinalIK.<DisableRagdollSmooth>d__21
  #include "RootMotion/FinalIK/RagdollUtility_-DisableRagdollSmooth-d__21.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: private System.Int32 <>1__state
  int& RootMotion::FinalIK::RagdollUtility::$DisableRagdollSmooth$d__21::dyn_$$1__state() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::$DisableRagdollSmooth$d__21::dyn_$$1__state");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<>1__state"))->offset;
    return *reinterpret_cast<int*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Object <>2__current
  ::Il2CppObject*& RootMotion::FinalIK::RagdollUtility::$DisableRagdollSmooth$d__21::dyn_$$2__current() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::$DisableRagdollSmooth$d__21::dyn_$$2__current");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<>2__current"))->offset;
    return *reinterpret_cast<::Il2CppObject**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.RagdollUtility <>4__this
  ::RootMotion::FinalIK::RagdollUtility*& RootMotion::FinalIK::RagdollUtility::$DisableRagdollSmooth$d__21::dyn_$$4__this() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::$DisableRagdollSmooth$d__21::dyn_$$4__this");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<>4__this"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::RagdollUtility**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.RagdollUtility/RootMotion.FinalIK.<DisableRagdollSmooth>d__21.System.Collections.Generic.IEnumerator<System.Object>.get_Current
  ::Il2CppObject* RootMotion::FinalIK::RagdollUtility::$DisableRagdollSmooth$d__21::System_Collections_Generic_IEnumerator$System_Object$_get_Current() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::$DisableRagdollSmooth$d__21::System.Collections.Generic.IEnumerator<System.Object>.get_Current");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "System.Collections.Generic.IEnumerator<System.Object>.get_Current", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::Il2CppObject*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RagdollUtility/RootMotion.FinalIK.<DisableRagdollSmooth>d__21.System.Collections.IEnumerator.get_Current
  ::Il2CppObject* RootMotion::FinalIK::RagdollUtility::$DisableRagdollSmooth$d__21::System_Collections_IEnumerator_get_Current() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::$DisableRagdollSmooth$d__21::System.Collections.IEnumerator.get_Current");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "System.Collections.IEnumerator.get_Current", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::Il2CppObject*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RagdollUtility/RootMotion.FinalIK.<DisableRagdollSmooth>d__21.System.IDisposable.Dispose
  void RootMotion::FinalIK::RagdollUtility::$DisableRagdollSmooth$d__21::System_IDisposable_Dispose() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::$DisableRagdollSmooth$d__21::System.IDisposable.Dispose");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "System.IDisposable.Dispose", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RagdollUtility/RootMotion.FinalIK.<DisableRagdollSmooth>d__21.MoveNext
  bool RootMotion::FinalIK::RagdollUtility::$DisableRagdollSmooth$d__21::MoveNext() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::$DisableRagdollSmooth$d__21::MoveNext");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "MoveNext", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RagdollUtility/RootMotion.FinalIK.<DisableRagdollSmooth>d__21.System.Collections.IEnumerator.Reset
  void RootMotion::FinalIK::RagdollUtility::$DisableRagdollSmooth$d__21::System_Collections_IEnumerator_Reset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RagdollUtility::$DisableRagdollSmooth$d__21::System.Collections.IEnumerator.Reset");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "System.Collections.IEnumerator.Reset", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.RotationLimit
  #include "RootMotion/FinalIK/RotationLimit.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 axis
  ::UnityEngine::Vector3& RootMotion::FinalIK::RotationLimit::dyn_axis() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimit::dyn_axis");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "axis"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Quaternion defaultLocalRotation
  ::UnityEngine::Quaternion& RootMotion::FinalIK::RotationLimit::dyn_defaultLocalRotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimit::dyn_defaultLocalRotation");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "defaultLocalRotation"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean <defaultLocalRotationOverride>k__BackingField
  bool& RootMotion::FinalIK::RotationLimit::dyn_$defaultLocalRotationOverride$k__BackingField() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimit::dyn_$defaultLocalRotationOverride$k__BackingField");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<defaultLocalRotationOverride>k__BackingField"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean initiated
  bool& RootMotion::FinalIK::RotationLimit::dyn_initiated() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimit::dyn_initiated");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "initiated"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean applicationQuit
  bool& RootMotion::FinalIK::RotationLimit::dyn_applicationQuit() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimit::dyn_applicationQuit");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "applicationQuit"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean defaultLocalRotationSet
  bool& RootMotion::FinalIK::RotationLimit::dyn_defaultLocalRotationSet() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimit::dyn_defaultLocalRotationSet");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "defaultLocalRotationSet"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimit.get_secondaryAxis
  ::UnityEngine::Vector3 RootMotion::FinalIK::RotationLimit::get_secondaryAxis() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimit::get_secondaryAxis");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_secondaryAxis", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimit.get_crossAxis
  ::UnityEngine::Vector3 RootMotion::FinalIK::RotationLimit::get_crossAxis() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimit::get_crossAxis");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_crossAxis", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimit.get_defaultLocalRotationOverride
  bool RootMotion::FinalIK::RotationLimit::get_defaultLocalRotationOverride() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimit::get_defaultLocalRotationOverride");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_defaultLocalRotationOverride", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimit.set_defaultLocalRotationOverride
  void RootMotion::FinalIK::RotationLimit::set_defaultLocalRotationOverride(bool value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimit::set_defaultLocalRotationOverride");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "set_defaultLocalRotationOverride", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(value)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, value);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimit.SetDefaultLocalRotation
  void RootMotion::FinalIK::RotationLimit::SetDefaultLocalRotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimit::SetDefaultLocalRotation");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SetDefaultLocalRotation", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimit.SetDefaultLocalRotation
  void RootMotion::FinalIK::RotationLimit::SetDefaultLocalRotation(::UnityEngine::Quaternion localRotation) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimit::SetDefaultLocalRotation");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SetDefaultLocalRotation", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(localRotation)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, localRotation);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimit.GetLimitedLocalRotation
  ::UnityEngine::Quaternion RootMotion::FinalIK::RotationLimit::GetLimitedLocalRotation(::UnityEngine::Quaternion localRotation, ByRef<bool> changed) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimit::GetLimitedLocalRotation");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetLimitedLocalRotation", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(localRotation), ::il2cpp_utils::ExtractIndependentType<bool&>()})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Quaternion, false>(this, ___internal__method, localRotation, byref(changed));
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimit.Apply
  bool RootMotion::FinalIK::RotationLimit::Apply() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimit::Apply");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Apply", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimit.Disable
  void RootMotion::FinalIK::RotationLimit::Disable() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimit::Disable");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Disable", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimit.LimitRotation
  ::UnityEngine::Quaternion RootMotion::FinalIK::RotationLimit::LimitRotation(::UnityEngine::Quaternion rotation) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimit::LimitRotation");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "LimitRotation", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(rotation)})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Quaternion, false>(this, ___internal__method, rotation);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimit.Awake
  void RootMotion::FinalIK::RotationLimit::Awake() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimit::Awake");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Awake", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimit.LateUpdate
  void RootMotion::FinalIK::RotationLimit::LateUpdate() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimit::LateUpdate");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "LateUpdate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimit.LogWarning
  void RootMotion::FinalIK::RotationLimit::LogWarning(::StringW message) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimit::LogWarning");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "LogWarning", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(message)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, message);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimit.Limit1DOF
  ::UnityEngine::Quaternion RootMotion::FinalIK::RotationLimit::Limit1DOF(::UnityEngine::Quaternion rotation, ::UnityEngine::Vector3 axis) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimit::Limit1DOF");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod("RootMotion.FinalIK", "RotationLimit", "Limit1DOF", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(rotation), ::il2cpp_utils::ExtractType(axis)})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Quaternion, false>(static_cast<Il2CppObject*>(nullptr), ___internal__method, rotation, axis);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimit.LimitTwist
  ::UnityEngine::Quaternion RootMotion::FinalIK::RotationLimit::LimitTwist(::UnityEngine::Quaternion rotation, ::UnityEngine::Vector3 axis, ::UnityEngine::Vector3 orthoAxis, float twistLimit) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimit::LimitTwist");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod("RootMotion.FinalIK", "RotationLimit", "LimitTwist", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(rotation), ::il2cpp_utils::ExtractType(axis), ::il2cpp_utils::ExtractType(orthoAxis), ::il2cpp_utils::ExtractType(twistLimit)})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Quaternion, false>(static_cast<Il2CppObject*>(nullptr), ___internal__method, rotation, axis, orthoAxis, twistLimit);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimit.GetOrthogonalAngle
  float RootMotion::FinalIK::RotationLimit::GetOrthogonalAngle(::UnityEngine::Vector3 v1, ::UnityEngine::Vector3 v2, ::UnityEngine::Vector3 normal) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimit::GetOrthogonalAngle");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod("RootMotion.FinalIK", "RotationLimit", "GetOrthogonalAngle", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(v1), ::il2cpp_utils::ExtractType(v2), ::il2cpp_utils::ExtractType(normal)})));
    return ::il2cpp_utils::RunMethodRethrow<float, false>(static_cast<Il2CppObject*>(nullptr), ___internal__method, v1, v2, normal);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.RotationLimitAngle
  #include "RootMotion/FinalIK/RotationLimitAngle.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public System.Single limit
  float& RootMotion::FinalIK::RotationLimitAngle::dyn_limit() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitAngle::dyn_limit");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "limit"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single twistLimit
  float& RootMotion::FinalIK::RotationLimitAngle::dyn_twistLimit() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitAngle::dyn_twistLimit");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "twistLimit"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimitAngle.OpenUserManual
  void RootMotion::FinalIK::RotationLimitAngle::OpenUserManual() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitAngle::OpenUserManual");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OpenUserManual", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimitAngle.OpenScriptReference
  void RootMotion::FinalIK::RotationLimitAngle::OpenScriptReference() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitAngle::OpenScriptReference");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OpenScriptReference", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimitAngle.SupportGroup
  void RootMotion::FinalIK::RotationLimitAngle::SupportGroup() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitAngle::SupportGroup");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SupportGroup", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimitAngle.ASThread
  void RootMotion::FinalIK::RotationLimitAngle::ASThread() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitAngle::ASThread");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "ASThread", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimitAngle.LimitSwing
  ::UnityEngine::Quaternion RootMotion::FinalIK::RotationLimitAngle::LimitSwing(::UnityEngine::Quaternion rotation) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitAngle::LimitSwing");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "LimitSwing", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(rotation)})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Quaternion, false>(this, ___internal__method, rotation);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimitAngle.LimitRotation
  ::UnityEngine::Quaternion RootMotion::FinalIK::RotationLimitAngle::LimitRotation(::UnityEngine::Quaternion rotation) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitAngle::LimitRotation");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "LimitRotation", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(rotation)})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Quaternion, false>(this, ___internal__method, rotation);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.RotationLimitHinge
  #include "RootMotion/FinalIK/RotationLimitHinge.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public System.Boolean useLimits
  bool& RootMotion::FinalIK::RotationLimitHinge::dyn_useLimits() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitHinge::dyn_useLimits");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "useLimits"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single min
  float& RootMotion::FinalIK::RotationLimitHinge::dyn_min() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitHinge::dyn_min");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "min"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single max
  float& RootMotion::FinalIK::RotationLimitHinge::dyn_max() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitHinge::dyn_max");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "max"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single zeroAxisDisplayOffset
  float& RootMotion::FinalIK::RotationLimitHinge::dyn_zeroAxisDisplayOffset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitHinge::dyn_zeroAxisDisplayOffset");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "zeroAxisDisplayOffset"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Quaternion lastRotation
  ::UnityEngine::Quaternion& RootMotion::FinalIK::RotationLimitHinge::dyn_lastRotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitHinge::dyn_lastRotation");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "lastRotation"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single lastAngle
  float& RootMotion::FinalIK::RotationLimitHinge::dyn_lastAngle() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitHinge::dyn_lastAngle");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "lastAngle"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimitHinge.OpenUserManual
  void RootMotion::FinalIK::RotationLimitHinge::OpenUserManual() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitHinge::OpenUserManual");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OpenUserManual", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimitHinge.OpenScriptReference
  void RootMotion::FinalIK::RotationLimitHinge::OpenScriptReference() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitHinge::OpenScriptReference");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OpenScriptReference", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimitHinge.SupportGroup
  void RootMotion::FinalIK::RotationLimitHinge::SupportGroup() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitHinge::SupportGroup");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SupportGroup", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimitHinge.ASThread
  void RootMotion::FinalIK::RotationLimitHinge::ASThread() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitHinge::ASThread");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "ASThread", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimitHinge.LimitHinge
  ::UnityEngine::Quaternion RootMotion::FinalIK::RotationLimitHinge::LimitHinge(::UnityEngine::Quaternion rotation) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitHinge::LimitHinge");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "LimitHinge", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(rotation)})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Quaternion, false>(this, ___internal__method, rotation);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimitHinge.LimitRotation
  ::UnityEngine::Quaternion RootMotion::FinalIK::RotationLimitHinge::LimitRotation(::UnityEngine::Quaternion rotation) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitHinge::LimitRotation");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "LimitRotation", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(rotation)})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Quaternion, false>(this, ___internal__method, rotation);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.RotationLimitPolygonal
  #include "RootMotion/FinalIK/RotationLimitPolygonal.hpp"
  // Including type: RootMotion.FinalIK.RotationLimitPolygonal/RootMotion.FinalIK.ReachCone
  #include "RootMotion/FinalIK/RotationLimitPolygonal_ReachCone.hpp"
  // Including type: RootMotion.FinalIK.RotationLimitPolygonal/RootMotion.FinalIK.LimitPoint
  #include "RootMotion/FinalIK/RotationLimitPolygonal_LimitPoint.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public System.Single twistLimit
  float& RootMotion::FinalIK::RotationLimitPolygonal::dyn_twistLimit() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitPolygonal::dyn_twistLimit");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "twistLimit"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Int32 smoothIterations
  int& RootMotion::FinalIK::RotationLimitPolygonal::dyn_smoothIterations() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitPolygonal::dyn_smoothIterations");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "smoothIterations"))->offset;
    return *reinterpret_cast<int*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.RotationLimitPolygonal/RootMotion.FinalIK.LimitPoint[] points
  ::ArrayW<::RootMotion::FinalIK::RotationLimitPolygonal::LimitPoint*>& RootMotion::FinalIK::RotationLimitPolygonal::dyn_points() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitPolygonal::dyn_points");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "points"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::RotationLimitPolygonal::LimitPoint*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3[] P
  ::ArrayW<::UnityEngine::Vector3>& RootMotion::FinalIK::RotationLimitPolygonal::dyn_P() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitPolygonal::dyn_P");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "P"))->offset;
    return *reinterpret_cast<::ArrayW<::UnityEngine::Vector3>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.RotationLimitPolygonal/RootMotion.FinalIK.ReachCone[] reachCones
  ::ArrayW<::RootMotion::FinalIK::RotationLimitPolygonal::ReachCone*>& RootMotion::FinalIK::RotationLimitPolygonal::dyn_reachCones() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitPolygonal::dyn_reachCones");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "reachCones"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::RotationLimitPolygonal::ReachCone*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimitPolygonal.OpenUserManual
  void RootMotion::FinalIK::RotationLimitPolygonal::OpenUserManual() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitPolygonal::OpenUserManual");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OpenUserManual", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimitPolygonal.OpenScriptReference
  void RootMotion::FinalIK::RotationLimitPolygonal::OpenScriptReference() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitPolygonal::OpenScriptReference");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OpenScriptReference", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimitPolygonal.SupportGroup
  void RootMotion::FinalIK::RotationLimitPolygonal::SupportGroup() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitPolygonal::SupportGroup");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SupportGroup", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimitPolygonal.ASThread
  void RootMotion::FinalIK::RotationLimitPolygonal::ASThread() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitPolygonal::ASThread");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "ASThread", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimitPolygonal.SetLimitPoints
  void RootMotion::FinalIK::RotationLimitPolygonal::SetLimitPoints(::ArrayW<::RootMotion::FinalIK::RotationLimitPolygonal::LimitPoint*> points) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitPolygonal::SetLimitPoints");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SetLimitPoints", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(points)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, points);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimitPolygonal.Start
  void RootMotion::FinalIK::RotationLimitPolygonal::Start() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitPolygonal::Start");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Start", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimitPolygonal.ResetToDefault
  void RootMotion::FinalIK::RotationLimitPolygonal::ResetToDefault() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitPolygonal::ResetToDefault");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "ResetToDefault", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimitPolygonal.BuildReachCones
  void RootMotion::FinalIK::RotationLimitPolygonal::BuildReachCones() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitPolygonal::BuildReachCones");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "BuildReachCones", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimitPolygonal.SmoothPoints
  ::ArrayW<::UnityEngine::Vector3> RootMotion::FinalIK::RotationLimitPolygonal::SmoothPoints() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitPolygonal::SmoothPoints");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SmoothPoints", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::ArrayW<::UnityEngine::Vector3>, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimitPolygonal.GetScalar
  float RootMotion::FinalIK::RotationLimitPolygonal::GetScalar(int k) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitPolygonal::GetScalar");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetScalar", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(k)})));
    return ::il2cpp_utils::RunMethodRethrow<float, false>(this, ___internal__method, k);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimitPolygonal.PointToTangentPlane
  ::UnityEngine::Vector3 RootMotion::FinalIK::RotationLimitPolygonal::PointToTangentPlane(::UnityEngine::Vector3 p, float r) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitPolygonal::PointToTangentPlane");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "PointToTangentPlane", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(p), ::il2cpp_utils::ExtractType(r)})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method, p, r);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimitPolygonal.TangentPointToSphere
  ::UnityEngine::Vector3 RootMotion::FinalIK::RotationLimitPolygonal::TangentPointToSphere(::UnityEngine::Vector3 q, float r) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitPolygonal::TangentPointToSphere");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "TangentPointToSphere", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(q), ::il2cpp_utils::ExtractType(r)})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method, q, r);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimitPolygonal.LimitSwing
  ::UnityEngine::Quaternion RootMotion::FinalIK::RotationLimitPolygonal::LimitSwing(::UnityEngine::Quaternion rotation) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitPolygonal::LimitSwing");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "LimitSwing", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(rotation)})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Quaternion, false>(this, ___internal__method, rotation);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimitPolygonal.GetReachCone
  int RootMotion::FinalIK::RotationLimitPolygonal::GetReachCone(::UnityEngine::Vector3 L) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitPolygonal::GetReachCone");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetReachCone", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(L)})));
    return ::il2cpp_utils::RunMethodRethrow<int, false>(this, ___internal__method, L);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimitPolygonal.LimitRotation
  ::UnityEngine::Quaternion RootMotion::FinalIK::RotationLimitPolygonal::LimitRotation(::UnityEngine::Quaternion rotation) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitPolygonal::LimitRotation");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "LimitRotation", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(rotation)})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Quaternion, false>(this, ___internal__method, rotation);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.RotationLimitPolygonal/RootMotion.FinalIK.ReachCone
  #include "RootMotion/FinalIK/RotationLimitPolygonal_ReachCone.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3[] tetrahedron
  ::ArrayW<::UnityEngine::Vector3>& RootMotion::FinalIK::RotationLimitPolygonal::ReachCone::dyn_tetrahedron() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitPolygonal::ReachCone::dyn_tetrahedron");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "tetrahedron"))->offset;
    return *reinterpret_cast<::ArrayW<::UnityEngine::Vector3>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single volume
  float& RootMotion::FinalIK::RotationLimitPolygonal::ReachCone::dyn_volume() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitPolygonal::ReachCone::dyn_volume");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "volume"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 S
  ::UnityEngine::Vector3& RootMotion::FinalIK::RotationLimitPolygonal::ReachCone::dyn_S() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitPolygonal::ReachCone::dyn_S");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "S"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 B
  ::UnityEngine::Vector3& RootMotion::FinalIK::RotationLimitPolygonal::ReachCone::dyn_B() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitPolygonal::ReachCone::dyn_B");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "B"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimitPolygonal/RootMotion.FinalIK.ReachCone.get_o
  ::UnityEngine::Vector3 RootMotion::FinalIK::RotationLimitPolygonal::ReachCone::get_o() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitPolygonal::ReachCone::get_o");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_o", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimitPolygonal/RootMotion.FinalIK.ReachCone.get_a
  ::UnityEngine::Vector3 RootMotion::FinalIK::RotationLimitPolygonal::ReachCone::get_a() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitPolygonal::ReachCone::get_a");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_a", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimitPolygonal/RootMotion.FinalIK.ReachCone.get_b
  ::UnityEngine::Vector3 RootMotion::FinalIK::RotationLimitPolygonal::ReachCone::get_b() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitPolygonal::ReachCone::get_b");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_b", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimitPolygonal/RootMotion.FinalIK.ReachCone.get_c
  ::UnityEngine::Vector3 RootMotion::FinalIK::RotationLimitPolygonal::ReachCone::get_c() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitPolygonal::ReachCone::get_c");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_c", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimitPolygonal/RootMotion.FinalIK.ReachCone.get_isValid
  bool RootMotion::FinalIK::RotationLimitPolygonal::ReachCone::get_isValid() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitPolygonal::ReachCone::get_isValid");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_isValid", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimitPolygonal/RootMotion.FinalIK.ReachCone.Calculate
  void RootMotion::FinalIK::RotationLimitPolygonal::ReachCone::Calculate() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitPolygonal::ReachCone::Calculate");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Calculate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.RotationLimitPolygonal/RootMotion.FinalIK.LimitPoint
  #include "RootMotion/FinalIK/RotationLimitPolygonal_LimitPoint.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 point
  ::UnityEngine::Vector3& RootMotion::FinalIK::RotationLimitPolygonal::LimitPoint::dyn_point() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitPolygonal::LimitPoint::dyn_point");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "point"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single tangentWeight
  float& RootMotion::FinalIK::RotationLimitPolygonal::LimitPoint::dyn_tangentWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitPolygonal::LimitPoint::dyn_tangentWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "tangentWeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.RotationLimitSpline
  #include "RootMotion/FinalIK/RotationLimitSpline.hpp"
  // Including type: UnityEngine.AnimationCurve
  #include "UnityEngine/AnimationCurve.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public System.Single twistLimit
  float& RootMotion::FinalIK::RotationLimitSpline::dyn_twistLimit() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitSpline::dyn_twistLimit");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "twistLimit"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.AnimationCurve spline
  ::UnityEngine::AnimationCurve*& RootMotion::FinalIK::RotationLimitSpline::dyn_spline() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitSpline::dyn_spline");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "spline"))->offset;
    return *reinterpret_cast<::UnityEngine::AnimationCurve**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimitSpline.OpenUserManual
  void RootMotion::FinalIK::RotationLimitSpline::OpenUserManual() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitSpline::OpenUserManual");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OpenUserManual", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimitSpline.OpenScriptReference
  void RootMotion::FinalIK::RotationLimitSpline::OpenScriptReference() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitSpline::OpenScriptReference");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OpenScriptReference", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimitSpline.SupportGroup
  void RootMotion::FinalIK::RotationLimitSpline::SupportGroup() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitSpline::SupportGroup");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SupportGroup", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimitSpline.ASThread
  void RootMotion::FinalIK::RotationLimitSpline::ASThread() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitSpline::ASThread");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "ASThread", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimitSpline.SetSpline
  void RootMotion::FinalIK::RotationLimitSpline::SetSpline(::ArrayW<::UnityEngine::Keyframe> keyframes) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitSpline::SetSpline");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SetSpline", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(keyframes)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, keyframes);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimitSpline.LimitSwing
  ::UnityEngine::Quaternion RootMotion::FinalIK::RotationLimitSpline::LimitSwing(::UnityEngine::Quaternion rotation) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitSpline::LimitSwing");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "LimitSwing", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(rotation)})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Quaternion, false>(this, ___internal__method, rotation);
  }
  // Autogenerated method: RootMotion.FinalIK.RotationLimitSpline.LimitRotation
  ::UnityEngine::Quaternion RootMotion::FinalIK::RotationLimitSpline::LimitRotation(::UnityEngine::Quaternion rotation) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::RotationLimitSpline::LimitRotation");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "LimitRotation", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(rotation)})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Quaternion, false>(this, ___internal__method, rotation);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.AimController
  #include "RootMotion/FinalIK/AimController.hpp"
  // Including type: RootMotion.FinalIK.AimController/RootMotion.FinalIK.<TurnToTarget>d__33
  #include "RootMotion/FinalIK/AimController_-TurnToTarget-d__33.hpp"
  // Including type: RootMotion.FinalIK.AimIK
  #include "RootMotion/FinalIK/AimIK.hpp"
  // Including type: UnityEngine.Transform
  #include "UnityEngine/Transform.hpp"
  // Including type: System.Collections.IEnumerator
  #include "System/Collections/IEnumerator.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.AimIK ik
  ::RootMotion::FinalIK::AimIK*& RootMotion::FinalIK::AimController::dyn_ik() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::dyn_ik");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "ik"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::AimIK**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single weight
  float& RootMotion::FinalIK::AimController::dyn_weight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::dyn_weight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "weight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Transform target
  ::UnityEngine::Transform*& RootMotion::FinalIK::AimController::dyn_target() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::dyn_target");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "target"))->offset;
    return *reinterpret_cast<::UnityEngine::Transform**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single targetSwitchSmoothTime
  float& RootMotion::FinalIK::AimController::dyn_targetSwitchSmoothTime() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::dyn_targetSwitchSmoothTime");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "targetSwitchSmoothTime"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single weightSmoothTime
  float& RootMotion::FinalIK::AimController::dyn_weightSmoothTime() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::dyn_weightSmoothTime");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "weightSmoothTime"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Boolean smoothTurnTowardsTarget
  bool& RootMotion::FinalIK::AimController::dyn_smoothTurnTowardsTarget() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::dyn_smoothTurnTowardsTarget");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "smoothTurnTowardsTarget"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single maxRadiansDelta
  float& RootMotion::FinalIK::AimController::dyn_maxRadiansDelta() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::dyn_maxRadiansDelta");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "maxRadiansDelta"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single maxMagnitudeDelta
  float& RootMotion::FinalIK::AimController::dyn_maxMagnitudeDelta() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::dyn_maxMagnitudeDelta");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "maxMagnitudeDelta"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single slerpSpeed
  float& RootMotion::FinalIK::AimController::dyn_slerpSpeed() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::dyn_slerpSpeed");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "slerpSpeed"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 pivotOffsetFromRoot
  ::UnityEngine::Vector3& RootMotion::FinalIK::AimController::dyn_pivotOffsetFromRoot() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::dyn_pivotOffsetFromRoot");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "pivotOffsetFromRoot"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single minDistance
  float& RootMotion::FinalIK::AimController::dyn_minDistance() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::dyn_minDistance");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "minDistance"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 offset
  ::UnityEngine::Vector3& RootMotion::FinalIK::AimController::dyn_offset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::dyn_offset");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "offset"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single maxRootAngle
  float& RootMotion::FinalIK::AimController::dyn_maxRootAngle() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::dyn_maxRootAngle");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "maxRootAngle"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Boolean turnToTarget
  bool& RootMotion::FinalIK::AimController::dyn_turnToTarget() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::dyn_turnToTarget");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "turnToTarget"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single turnToTargetTime
  float& RootMotion::FinalIK::AimController::dyn_turnToTargetTime() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::dyn_turnToTargetTime");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "turnToTargetTime"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Boolean useAnimatedAimDirection
  bool& RootMotion::FinalIK::AimController::dyn_useAnimatedAimDirection() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::dyn_useAnimatedAimDirection");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "useAnimatedAimDirection"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 animatedAimDirection
  ::UnityEngine::Vector3& RootMotion::FinalIK::AimController::dyn_animatedAimDirection() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::dyn_animatedAimDirection");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "animatedAimDirection"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Transform lastTarget
  ::UnityEngine::Transform*& RootMotion::FinalIK::AimController::dyn_lastTarget() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::dyn_lastTarget");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "lastTarget"))->offset;
    return *reinterpret_cast<::UnityEngine::Transform**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single switchWeight
  float& RootMotion::FinalIK::AimController::dyn_switchWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::dyn_switchWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "switchWeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single switchWeightV
  float& RootMotion::FinalIK::AimController::dyn_switchWeightV() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::dyn_switchWeightV");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "switchWeightV"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single weightV
  float& RootMotion::FinalIK::AimController::dyn_weightV() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::dyn_weightV");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "weightV"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 lastPosition
  ::UnityEngine::Vector3& RootMotion::FinalIK::AimController::dyn_lastPosition() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::dyn_lastPosition");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "lastPosition"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 dir
  ::UnityEngine::Vector3& RootMotion::FinalIK::AimController::dyn_dir() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::dyn_dir");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "dir"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean lastSmoothTowardsTarget
  bool& RootMotion::FinalIK::AimController::dyn_lastSmoothTowardsTarget() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::dyn_lastSmoothTowardsTarget");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "lastSmoothTowardsTarget"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean turningToTarget
  bool& RootMotion::FinalIK::AimController::dyn_turningToTarget() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::dyn_turningToTarget");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "turningToTarget"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single turnToTargetMlp
  float& RootMotion::FinalIK::AimController::dyn_turnToTargetMlp() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::dyn_turnToTargetMlp");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "turnToTargetMlp"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single turnToTargetMlpV
  float& RootMotion::FinalIK::AimController::dyn_turnToTargetMlpV() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::dyn_turnToTargetMlpV");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "turnToTargetMlpV"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.AimController.get_pivot
  ::UnityEngine::Vector3 RootMotion::FinalIK::AimController::get_pivot() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::get_pivot");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_pivot", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.AimController.Start
  void RootMotion::FinalIK::AimController::Start() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::Start");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Start", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.AimController.LateUpdate
  void RootMotion::FinalIK::AimController::LateUpdate() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::LateUpdate");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "LateUpdate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.AimController.ApplyMinDistance
  void RootMotion::FinalIK::AimController::ApplyMinDistance() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::ApplyMinDistance");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "ApplyMinDistance", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.AimController.RootRotation
  void RootMotion::FinalIK::AimController::RootRotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::RootRotation");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "RootRotation", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.AimController.TurnToTarget
  ::System::Collections::IEnumerator* RootMotion::FinalIK::AimController::TurnToTarget() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::TurnToTarget");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "TurnToTarget", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::System::Collections::IEnumerator*, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  #include "beatsaber-hook/shared/utils/typedefs.h"
  // Including type: RootMotion.FinalIK.AimController/RootMotion.FinalIK.<TurnToTarget>d__33
  #include "RootMotion/FinalIK/AimController_-TurnToTarget-d__33.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: private System.Int32 <>1__state
  int& RootMotion::FinalIK::AimController::$TurnToTarget$d__33::dyn_$$1__state() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::$TurnToTarget$d__33::dyn_$$1__state");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<>1__state"))->offset;
    return *reinterpret_cast<int*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Object <>2__current
  ::Il2CppObject*& RootMotion::FinalIK::AimController::$TurnToTarget$d__33::dyn_$$2__current() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::$TurnToTarget$d__33::dyn_$$2__current");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<>2__current"))->offset;
    return *reinterpret_cast<::Il2CppObject**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.AimController <>4__this
  ::RootMotion::FinalIK::AimController*& RootMotion::FinalIK::AimController::$TurnToTarget$d__33::dyn_$$4__this() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::$TurnToTarget$d__33::dyn_$$4__this");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<>4__this"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::AimController**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.AimController/RootMotion.FinalIK.<TurnToTarget>d__33.System.Collections.Generic.IEnumerator<System.Object>.get_Current
  ::Il2CppObject* RootMotion::FinalIK::AimController::$TurnToTarget$d__33::System_Collections_Generic_IEnumerator$System_Object$_get_Current() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::$TurnToTarget$d__33::System.Collections.Generic.IEnumerator<System.Object>.get_Current");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "System.Collections.Generic.IEnumerator<System.Object>.get_Current", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::Il2CppObject*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.AimController/RootMotion.FinalIK.<TurnToTarget>d__33.System.Collections.IEnumerator.get_Current
  ::Il2CppObject* RootMotion::FinalIK::AimController::$TurnToTarget$d__33::System_Collections_IEnumerator_get_Current() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::$TurnToTarget$d__33::System.Collections.IEnumerator.get_Current");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "System.Collections.IEnumerator.get_Current", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::Il2CppObject*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.AimController/RootMotion.FinalIK.<TurnToTarget>d__33.System.IDisposable.Dispose
  void RootMotion::FinalIK::AimController::$TurnToTarget$d__33::System_IDisposable_Dispose() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::$TurnToTarget$d__33::System.IDisposable.Dispose");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "System.IDisposable.Dispose", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.AimController/RootMotion.FinalIK.<TurnToTarget>d__33.MoveNext
  bool RootMotion::FinalIK::AimController::$TurnToTarget$d__33::MoveNext() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::$TurnToTarget$d__33::MoveNext");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "MoveNext", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.AimController/RootMotion.FinalIK.<TurnToTarget>d__33.System.Collections.IEnumerator.Reset
  void RootMotion::FinalIK::AimController::$TurnToTarget$d__33::System_Collections_IEnumerator_Reset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimController::$TurnToTarget$d__33::System.Collections.IEnumerator.Reset");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "System.Collections.IEnumerator.Reset", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.AimPoser
  #include "RootMotion/FinalIK/AimPoser.hpp"
  // Including type: RootMotion.FinalIK.AimPoser/RootMotion.FinalIK.Pose
  #include "RootMotion/FinalIK/AimPoser_Pose.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public System.Single angleBuffer
  float& RootMotion::FinalIK::AimPoser::dyn_angleBuffer() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimPoser::dyn_angleBuffer");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "angleBuffer"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.AimPoser/RootMotion.FinalIK.Pose[] poses
  ::ArrayW<::RootMotion::FinalIK::AimPoser::Pose*>& RootMotion::FinalIK::AimPoser::dyn_poses() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimPoser::dyn_poses");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "poses"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::AimPoser::Pose*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.AimPoser.GetPose
  ::RootMotion::FinalIK::AimPoser::Pose* RootMotion::FinalIK::AimPoser::GetPose(::UnityEngine::Vector3 localDirection) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimPoser::GetPose");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetPose", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(localDirection)})));
    return ::il2cpp_utils::RunMethodRethrow<::RootMotion::FinalIK::AimPoser::Pose*, false>(this, ___internal__method, localDirection);
  }
  // Autogenerated method: RootMotion.FinalIK.AimPoser.SetPoseActive
  void RootMotion::FinalIK::AimPoser::SetPoseActive(::RootMotion::FinalIK::AimPoser::Pose* pose) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimPoser::SetPoseActive");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SetPoseActive", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(pose)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, pose);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.AimPoser/RootMotion.FinalIK.Pose
  #include "RootMotion/FinalIK/AimPoser_Pose.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public System.Boolean visualize
  bool& RootMotion::FinalIK::AimPoser::Pose::dyn_visualize() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimPoser::Pose::dyn_visualize");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "visualize"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.String name
  ::StringW& RootMotion::FinalIK::AimPoser::Pose::dyn_name() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimPoser::Pose::dyn_name");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "name"))->offset;
    return *reinterpret_cast<::StringW*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 direction
  ::UnityEngine::Vector3& RootMotion::FinalIK::AimPoser::Pose::dyn_direction() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimPoser::Pose::dyn_direction");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "direction"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single yaw
  float& RootMotion::FinalIK::AimPoser::Pose::dyn_yaw() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimPoser::Pose::dyn_yaw");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "yaw"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single pitch
  float& RootMotion::FinalIK::AimPoser::Pose::dyn_pitch() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimPoser::Pose::dyn_pitch");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "pitch"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single angleBuffer
  float& RootMotion::FinalIK::AimPoser::Pose::dyn_angleBuffer() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimPoser::Pose::dyn_angleBuffer");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "angleBuffer"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.AimPoser/RootMotion.FinalIK.Pose.IsInDirection
  bool RootMotion::FinalIK::AimPoser::Pose::IsInDirection(::UnityEngine::Vector3 d) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimPoser::Pose::IsInDirection");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "IsInDirection", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(d)})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method, d);
  }
  // Autogenerated method: RootMotion.FinalIK.AimPoser/RootMotion.FinalIK.Pose.SetAngleBuffer
  void RootMotion::FinalIK::AimPoser::Pose::SetAngleBuffer(float value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::AimPoser::Pose::SetAngleBuffer");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SetAngleBuffer", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(value)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, value);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.Amplifier
  #include "RootMotion/FinalIK/Amplifier.hpp"
  // Including type: RootMotion.FinalIK.Amplifier/RootMotion.FinalIK.Body
  #include "RootMotion/FinalIK/Amplifier_Body.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.Amplifier/RootMotion.FinalIK.Body[] bodies
  ::ArrayW<::RootMotion::FinalIK::Amplifier::Body*>& RootMotion::FinalIK::Amplifier::dyn_bodies() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Amplifier::dyn_bodies");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "bodies"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::Amplifier::Body*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.Amplifier.OnModifyOffset
  void RootMotion::FinalIK::Amplifier::OnModifyOffset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Amplifier::OnModifyOffset");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnModifyOffset", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.Amplifier/RootMotion.FinalIK.Body
  #include "RootMotion/FinalIK/Amplifier_Body.hpp"
  // Including type: RootMotion.FinalIK.Amplifier/RootMotion.FinalIK.Body/RootMotion.FinalIK.EffectorLink
  #include "RootMotion/FinalIK/Amplifier_Body_EffectorLink.hpp"
  // Including type: UnityEngine.Transform
  #include "UnityEngine/Transform.hpp"
  // Including type: RootMotion.FinalIK.IKSolverFullBodyBiped
  #include "RootMotion/FinalIK/IKSolverFullBodyBiped.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Transform transform
  ::UnityEngine::Transform*& RootMotion::FinalIK::Amplifier::Body::dyn_transform() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Amplifier::Body::dyn_transform");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "transform"))->offset;
    return *reinterpret_cast<::UnityEngine::Transform**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Transform relativeTo
  ::UnityEngine::Transform*& RootMotion::FinalIK::Amplifier::Body::dyn_relativeTo() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Amplifier::Body::dyn_relativeTo");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "relativeTo"))->offset;
    return *reinterpret_cast<::UnityEngine::Transform**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.Amplifier/RootMotion.FinalIK.Body/RootMotion.FinalIK.EffectorLink[] effectorLinks
  ::ArrayW<::RootMotion::FinalIK::Amplifier::Body::EffectorLink*>& RootMotion::FinalIK::Amplifier::Body::dyn_effectorLinks() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Amplifier::Body::dyn_effectorLinks");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "effectorLinks"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::Amplifier::Body::EffectorLink*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single verticalWeight
  float& RootMotion::FinalIK::Amplifier::Body::dyn_verticalWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Amplifier::Body::dyn_verticalWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "verticalWeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single horizontalWeight
  float& RootMotion::FinalIK::Amplifier::Body::dyn_horizontalWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Amplifier::Body::dyn_horizontalWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "horizontalWeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single speed
  float& RootMotion::FinalIK::Amplifier::Body::dyn_speed() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Amplifier::Body::dyn_speed");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "speed"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 lastRelativePos
  ::UnityEngine::Vector3& RootMotion::FinalIK::Amplifier::Body::dyn_lastRelativePos() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Amplifier::Body::dyn_lastRelativePos");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "lastRelativePos"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 smoothDelta
  ::UnityEngine::Vector3& RootMotion::FinalIK::Amplifier::Body::dyn_smoothDelta() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Amplifier::Body::dyn_smoothDelta");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "smoothDelta"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean firstUpdate
  bool& RootMotion::FinalIK::Amplifier::Body::dyn_firstUpdate() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Amplifier::Body::dyn_firstUpdate");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "firstUpdate"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.Amplifier/RootMotion.FinalIK.Body.Update
  void RootMotion::FinalIK::Amplifier::Body::Update(::RootMotion::FinalIK::IKSolverFullBodyBiped* solver, float w, float deltaTime) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Amplifier::Body::Update");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Update", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(solver), ::il2cpp_utils::ExtractType(w), ::il2cpp_utils::ExtractType(deltaTime)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, solver, w, deltaTime);
  }
  // Autogenerated method: RootMotion.FinalIK.Amplifier/RootMotion.FinalIK.Body.Multiply
  ::UnityEngine::Vector3 RootMotion::FinalIK::Amplifier::Body::Multiply(::UnityEngine::Vector3 v1, ::UnityEngine::Vector3 v2) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Amplifier::Body::Multiply");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod("RootMotion.FinalIK", "Amplifier/Body", "Multiply", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(v1), ::il2cpp_utils::ExtractType(v2)})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(static_cast<Il2CppObject*>(nullptr), ___internal__method, v1, v2);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.Amplifier/RootMotion.FinalIK.Body/RootMotion.FinalIK.EffectorLink
  #include "RootMotion/FinalIK/Amplifier_Body_EffectorLink.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.FullBodyBipedEffector effector
  ::RootMotion::FinalIK::FullBodyBipedEffector& RootMotion::FinalIK::Amplifier::Body::EffectorLink::dyn_effector() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Amplifier::Body::EffectorLink::dyn_effector");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "effector"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::FullBodyBipedEffector*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single weight
  float& RootMotion::FinalIK::Amplifier::Body::EffectorLink::dyn_weight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Amplifier::Body::EffectorLink::dyn_weight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "weight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.BodyTilt
  #include "RootMotion/FinalIK/BodyTilt.hpp"
  // Including type: RootMotion.FinalIK.OffsetPose
  #include "RootMotion/FinalIK/OffsetPose.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public System.Single tiltSpeed
  float& RootMotion::FinalIK::BodyTilt::dyn_tiltSpeed() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::BodyTilt::dyn_tiltSpeed");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "tiltSpeed"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single tiltSensitivity
  float& RootMotion::FinalIK::BodyTilt::dyn_tiltSensitivity() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::BodyTilt::dyn_tiltSensitivity");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "tiltSensitivity"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.OffsetPose poseLeft
  ::RootMotion::FinalIK::OffsetPose*& RootMotion::FinalIK::BodyTilt::dyn_poseLeft() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::BodyTilt::dyn_poseLeft");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "poseLeft"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::OffsetPose**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.OffsetPose poseRight
  ::RootMotion::FinalIK::OffsetPose*& RootMotion::FinalIK::BodyTilt::dyn_poseRight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::BodyTilt::dyn_poseRight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "poseRight"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::OffsetPose**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single tiltAngle
  float& RootMotion::FinalIK::BodyTilt::dyn_tiltAngle() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::BodyTilt::dyn_tiltAngle");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "tiltAngle"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 lastForward
  ::UnityEngine::Vector3& RootMotion::FinalIK::BodyTilt::dyn_lastForward() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::BodyTilt::dyn_lastForward");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "lastForward"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.BodyTilt.Start
  void RootMotion::FinalIK::BodyTilt::Start() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::BodyTilt::Start");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Start", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.BodyTilt.OnModifyOffset
  void RootMotion::FinalIK::BodyTilt::OnModifyOffset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::BodyTilt::OnModifyOffset");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnModifyOffset", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.EditorIK
  #include "RootMotion/FinalIK/EditorIK.hpp"
  // Including type: RootMotion.FinalIK.IK
  #include "RootMotion/FinalIK/IK.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: private RootMotion.FinalIK.IK ik
  ::RootMotion::FinalIK::IK*& RootMotion::FinalIK::EditorIK::dyn_ik() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::EditorIK::dyn_ik");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "ik"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IK**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.EditorIK.Start
  void RootMotion::FinalIK::EditorIK::Start() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::EditorIK::Start");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Start", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.EditorIK.Update
  void RootMotion::FinalIK::EditorIK::Update() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::EditorIK::Update");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Update", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.HitReaction
  #include "RootMotion/FinalIK/HitReaction.hpp"
  // Including type: RootMotion.FinalIK.HitReaction/RootMotion.FinalIK.HitPoint
  #include "RootMotion/FinalIK/HitReaction_HitPoint.hpp"
  // Including type: RootMotion.FinalIK.HitReaction/RootMotion.FinalIK.HitPointEffector
  #include "RootMotion/FinalIK/HitReaction_HitPointEffector.hpp"
  // Including type: RootMotion.FinalIK.HitReaction/RootMotion.FinalIK.HitPointBone
  #include "RootMotion/FinalIK/HitReaction_HitPointBone.hpp"
  // Including type: UnityEngine.Collider
  #include "UnityEngine/Collider.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.HitReaction/RootMotion.FinalIK.HitPointEffector[] effectorHitPoints
  ::ArrayW<::RootMotion::FinalIK::HitReaction::HitPointEffector*>& RootMotion::FinalIK::HitReaction::dyn_effectorHitPoints() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::dyn_effectorHitPoints");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "effectorHitPoints"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::HitReaction::HitPointEffector*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.HitReaction/RootMotion.FinalIK.HitPointBone[] boneHitPoints
  ::ArrayW<::RootMotion::FinalIK::HitReaction::HitPointBone*>& RootMotion::FinalIK::HitReaction::dyn_boneHitPoints() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::dyn_boneHitPoints");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "boneHitPoints"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::HitReaction::HitPointBone*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReaction.get_inProgress
  bool RootMotion::FinalIK::HitReaction::get_inProgress() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::get_inProgress");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_inProgress", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReaction.Hit
  void RootMotion::FinalIK::HitReaction::Hit(::UnityEngine::Collider* collider, ::UnityEngine::Vector3 force, ::UnityEngine::Vector3 point) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::Hit");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Hit", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(collider), ::il2cpp_utils::ExtractType(force), ::il2cpp_utils::ExtractType(point)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, collider, force, point);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReaction.OnModifyOffset
  void RootMotion::FinalIK::HitReaction::OnModifyOffset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::OnModifyOffset");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnModifyOffset", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.HitReaction/RootMotion.FinalIK.HitPoint
  #include "RootMotion/FinalIK/HitReaction_HitPoint.hpp"
  // Including type: UnityEngine.Collider
  #include "UnityEngine/Collider.hpp"
  // Including type: RootMotion.FinalIK.IKSolverFullBodyBiped
  #include "RootMotion/FinalIK/IKSolverFullBodyBiped.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public System.String name
  ::StringW& RootMotion::FinalIK::HitReaction::HitPoint::dyn_name() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPoint::dyn_name");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "name"))->offset;
    return *reinterpret_cast<::StringW*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Collider collider
  ::UnityEngine::Collider*& RootMotion::FinalIK::HitReaction::HitPoint::dyn_collider() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPoint::dyn_collider");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "collider"))->offset;
    return *reinterpret_cast<::UnityEngine::Collider**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single crossFadeTime
  float& RootMotion::FinalIK::HitReaction::HitPoint::dyn_crossFadeTime() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPoint::dyn_crossFadeTime");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "crossFadeTime"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single <crossFader>k__BackingField
  float& RootMotion::FinalIK::HitReaction::HitPoint::dyn_$crossFader$k__BackingField() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPoint::dyn_$crossFader$k__BackingField");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<crossFader>k__BackingField"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single <timer>k__BackingField
  float& RootMotion::FinalIK::HitReaction::HitPoint::dyn_$timer$k__BackingField() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPoint::dyn_$timer$k__BackingField");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<timer>k__BackingField"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 <force>k__BackingField
  ::UnityEngine::Vector3& RootMotion::FinalIK::HitReaction::HitPoint::dyn_$force$k__BackingField() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPoint::dyn_$force$k__BackingField");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<force>k__BackingField"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 <point>k__BackingField
  ::UnityEngine::Vector3& RootMotion::FinalIK::HitReaction::HitPoint::dyn_$point$k__BackingField() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPoint::dyn_$point$k__BackingField");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<point>k__BackingField"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single length
  float& RootMotion::FinalIK::HitReaction::HitPoint::dyn_length() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPoint::dyn_length");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "length"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single crossFadeSpeed
  float& RootMotion::FinalIK::HitReaction::HitPoint::dyn_crossFadeSpeed() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPoint::dyn_crossFadeSpeed");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "crossFadeSpeed"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single lastTime
  float& RootMotion::FinalIK::HitReaction::HitPoint::dyn_lastTime() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPoint::dyn_lastTime");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "lastTime"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReaction/RootMotion.FinalIK.HitPoint.get_inProgress
  bool RootMotion::FinalIK::HitReaction::HitPoint::get_inProgress() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPoint::get_inProgress");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_inProgress", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReaction/RootMotion.FinalIK.HitPoint.get_crossFader
  float RootMotion::FinalIK::HitReaction::HitPoint::get_crossFader() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPoint::get_crossFader");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_crossFader", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<float, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReaction/RootMotion.FinalIK.HitPoint.set_crossFader
  void RootMotion::FinalIK::HitReaction::HitPoint::set_crossFader(float value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPoint::set_crossFader");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "set_crossFader", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(value)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, value);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReaction/RootMotion.FinalIK.HitPoint.get_timer
  float RootMotion::FinalIK::HitReaction::HitPoint::get_timer() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPoint::get_timer");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_timer", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<float, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReaction/RootMotion.FinalIK.HitPoint.set_timer
  void RootMotion::FinalIK::HitReaction::HitPoint::set_timer(float value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPoint::set_timer");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "set_timer", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(value)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, value);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReaction/RootMotion.FinalIK.HitPoint.get_force
  ::UnityEngine::Vector3 RootMotion::FinalIK::HitReaction::HitPoint::get_force() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPoint::get_force");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_force", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReaction/RootMotion.FinalIK.HitPoint.set_force
  void RootMotion::FinalIK::HitReaction::HitPoint::set_force(::UnityEngine::Vector3 value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPoint::set_force");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "set_force", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(value)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, value);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReaction/RootMotion.FinalIK.HitPoint.get_point
  ::UnityEngine::Vector3 RootMotion::FinalIK::HitReaction::HitPoint::get_point() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPoint::get_point");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_point", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReaction/RootMotion.FinalIK.HitPoint.set_point
  void RootMotion::FinalIK::HitReaction::HitPoint::set_point(::UnityEngine::Vector3 value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPoint::set_point");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "set_point", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(value)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, value);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReaction/RootMotion.FinalIK.HitPoint.Hit
  void RootMotion::FinalIK::HitReaction::HitPoint::Hit(::UnityEngine::Vector3 force, ::UnityEngine::Vector3 point) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPoint::Hit");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Hit", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(force), ::il2cpp_utils::ExtractType(point)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, force, point);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReaction/RootMotion.FinalIK.HitPoint.Apply
  void RootMotion::FinalIK::HitReaction::HitPoint::Apply(::RootMotion::FinalIK::IKSolverFullBodyBiped* solver, float weight) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPoint::Apply");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Apply", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(solver), ::il2cpp_utils::ExtractType(weight)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, solver, weight);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReaction/RootMotion.FinalIK.HitPoint.GetLength
  float RootMotion::FinalIK::HitReaction::HitPoint::GetLength() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPoint::GetLength");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetLength", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<float, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReaction/RootMotion.FinalIK.HitPoint.CrossFadeStart
  void RootMotion::FinalIK::HitReaction::HitPoint::CrossFadeStart() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPoint::CrossFadeStart");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "CrossFadeStart", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReaction/RootMotion.FinalIK.HitPoint.OnApply
  void RootMotion::FinalIK::HitReaction::HitPoint::OnApply(::RootMotion::FinalIK::IKSolverFullBodyBiped* solver, float weight) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPoint::OnApply");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnApply", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(solver), ::il2cpp_utils::ExtractType(weight)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, solver, weight);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.HitReaction/RootMotion.FinalIK.HitPointEffector
  #include "RootMotion/FinalIK/HitReaction_HitPointEffector.hpp"
  // Including type: RootMotion.FinalIK.HitReaction/RootMotion.FinalIK.HitPointEffector/RootMotion.FinalIK.EffectorLink
  #include "RootMotion/FinalIK/HitReaction_HitPointEffector_EffectorLink.hpp"
  // Including type: UnityEngine.AnimationCurve
  #include "UnityEngine/AnimationCurve.hpp"
  // Including type: RootMotion.FinalIK.IKSolverFullBodyBiped
  #include "RootMotion/FinalIK/IKSolverFullBodyBiped.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.AnimationCurve offsetInForceDirection
  ::UnityEngine::AnimationCurve*& RootMotion::FinalIK::HitReaction::HitPointEffector::dyn_offsetInForceDirection() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPointEffector::dyn_offsetInForceDirection");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "offsetInForceDirection"))->offset;
    return *reinterpret_cast<::UnityEngine::AnimationCurve**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.AnimationCurve offsetInUpDirection
  ::UnityEngine::AnimationCurve*& RootMotion::FinalIK::HitReaction::HitPointEffector::dyn_offsetInUpDirection() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPointEffector::dyn_offsetInUpDirection");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "offsetInUpDirection"))->offset;
    return *reinterpret_cast<::UnityEngine::AnimationCurve**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.HitReaction/RootMotion.FinalIK.HitPointEffector/RootMotion.FinalIK.EffectorLink[] effectorLinks
  ::ArrayW<::RootMotion::FinalIK::HitReaction::HitPointEffector::EffectorLink*>& RootMotion::FinalIK::HitReaction::HitPointEffector::dyn_effectorLinks() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPointEffector::dyn_effectorLinks");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "effectorLinks"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::HitReaction::HitPointEffector::EffectorLink*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReaction/RootMotion.FinalIK.HitPointEffector.GetLength
  float RootMotion::FinalIK::HitReaction::HitPointEffector::GetLength() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPointEffector::GetLength");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetLength", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<float, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReaction/RootMotion.FinalIK.HitPointEffector.CrossFadeStart
  void RootMotion::FinalIK::HitReaction::HitPointEffector::CrossFadeStart() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPointEffector::CrossFadeStart");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "CrossFadeStart", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReaction/RootMotion.FinalIK.HitPointEffector.OnApply
  void RootMotion::FinalIK::HitReaction::HitPointEffector::OnApply(::RootMotion::FinalIK::IKSolverFullBodyBiped* solver, float weight) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPointEffector::OnApply");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnApply", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(solver), ::il2cpp_utils::ExtractType(weight)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, solver, weight);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.HitReaction/RootMotion.FinalIK.HitPointEffector/RootMotion.FinalIK.EffectorLink
  #include "RootMotion/FinalIK/HitReaction_HitPointEffector_EffectorLink.hpp"
  // Including type: RootMotion.FinalIK.IKSolverFullBodyBiped
  #include "RootMotion/FinalIK/IKSolverFullBodyBiped.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.FullBodyBipedEffector effector
  ::RootMotion::FinalIK::FullBodyBipedEffector& RootMotion::FinalIK::HitReaction::HitPointEffector::EffectorLink::dyn_effector() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPointEffector::EffectorLink::dyn_effector");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "effector"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::FullBodyBipedEffector*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single weight
  float& RootMotion::FinalIK::HitReaction::HitPointEffector::EffectorLink::dyn_weight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPointEffector::EffectorLink::dyn_weight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "weight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 lastValue
  ::UnityEngine::Vector3& RootMotion::FinalIK::HitReaction::HitPointEffector::EffectorLink::dyn_lastValue() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPointEffector::EffectorLink::dyn_lastValue");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "lastValue"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 current
  ::UnityEngine::Vector3& RootMotion::FinalIK::HitReaction::HitPointEffector::EffectorLink::dyn_current() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPointEffector::EffectorLink::dyn_current");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "current"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReaction/RootMotion.FinalIK.HitPointEffector/RootMotion.FinalIK.EffectorLink.Apply
  void RootMotion::FinalIK::HitReaction::HitPointEffector::EffectorLink::Apply(::RootMotion::FinalIK::IKSolverFullBodyBiped* solver, ::UnityEngine::Vector3 offset, float crossFader) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPointEffector::EffectorLink::Apply");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Apply", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(solver), ::il2cpp_utils::ExtractType(offset), ::il2cpp_utils::ExtractType(crossFader)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, solver, offset, crossFader);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReaction/RootMotion.FinalIK.HitPointEffector/RootMotion.FinalIK.EffectorLink.CrossFadeStart
  void RootMotion::FinalIK::HitReaction::HitPointEffector::EffectorLink::CrossFadeStart() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPointEffector::EffectorLink::CrossFadeStart");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "CrossFadeStart", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.HitReaction/RootMotion.FinalIK.HitPointBone
  #include "RootMotion/FinalIK/HitReaction_HitPointBone.hpp"
  // Including type: RootMotion.FinalIK.HitReaction/RootMotion.FinalIK.HitPointBone/RootMotion.FinalIK.BoneLink
  #include "RootMotion/FinalIK/HitReaction_HitPointBone_BoneLink.hpp"
  // Including type: UnityEngine.AnimationCurve
  #include "UnityEngine/AnimationCurve.hpp"
  // Including type: UnityEngine.Rigidbody
  #include "UnityEngine/Rigidbody.hpp"
  // Including type: RootMotion.FinalIK.IKSolverFullBodyBiped
  #include "RootMotion/FinalIK/IKSolverFullBodyBiped.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.AnimationCurve aroundCenterOfMass
  ::UnityEngine::AnimationCurve*& RootMotion::FinalIK::HitReaction::HitPointBone::dyn_aroundCenterOfMass() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPointBone::dyn_aroundCenterOfMass");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "aroundCenterOfMass"))->offset;
    return *reinterpret_cast<::UnityEngine::AnimationCurve**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.HitReaction/RootMotion.FinalIK.HitPointBone/RootMotion.FinalIK.BoneLink[] boneLinks
  ::ArrayW<::RootMotion::FinalIK::HitReaction::HitPointBone::BoneLink*>& RootMotion::FinalIK::HitReaction::HitPointBone::dyn_boneLinks() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPointBone::dyn_boneLinks");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "boneLinks"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::HitReaction::HitPointBone::BoneLink*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Rigidbody rigidbody
  ::UnityEngine::Rigidbody*& RootMotion::FinalIK::HitReaction::HitPointBone::dyn_rigidbody() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPointBone::dyn_rigidbody");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "rigidbody"))->offset;
    return *reinterpret_cast<::UnityEngine::Rigidbody**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReaction/RootMotion.FinalIK.HitPointBone.GetLength
  float RootMotion::FinalIK::HitReaction::HitPointBone::GetLength() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPointBone::GetLength");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetLength", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<float, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReaction/RootMotion.FinalIK.HitPointBone.CrossFadeStart
  void RootMotion::FinalIK::HitReaction::HitPointBone::CrossFadeStart() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPointBone::CrossFadeStart");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "CrossFadeStart", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReaction/RootMotion.FinalIK.HitPointBone.OnApply
  void RootMotion::FinalIK::HitReaction::HitPointBone::OnApply(::RootMotion::FinalIK::IKSolverFullBodyBiped* solver, float weight) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPointBone::OnApply");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnApply", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(solver), ::il2cpp_utils::ExtractType(weight)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, solver, weight);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.HitReaction/RootMotion.FinalIK.HitPointBone/RootMotion.FinalIK.BoneLink
  #include "RootMotion/FinalIK/HitReaction_HitPointBone_BoneLink.hpp"
  // Including type: UnityEngine.Transform
  #include "UnityEngine/Transform.hpp"
  // Including type: RootMotion.FinalIK.IKSolverFullBodyBiped
  #include "RootMotion/FinalIK/IKSolverFullBodyBiped.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Transform bone
  ::UnityEngine::Transform*& RootMotion::FinalIK::HitReaction::HitPointBone::BoneLink::dyn_bone() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPointBone::BoneLink::dyn_bone");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "bone"))->offset;
    return *reinterpret_cast<::UnityEngine::Transform**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single weight
  float& RootMotion::FinalIK::HitReaction::HitPointBone::BoneLink::dyn_weight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPointBone::BoneLink::dyn_weight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "weight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Quaternion lastValue
  ::UnityEngine::Quaternion& RootMotion::FinalIK::HitReaction::HitPointBone::BoneLink::dyn_lastValue() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPointBone::BoneLink::dyn_lastValue");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "lastValue"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Quaternion current
  ::UnityEngine::Quaternion& RootMotion::FinalIK::HitReaction::HitPointBone::BoneLink::dyn_current() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPointBone::BoneLink::dyn_current");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "current"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReaction/RootMotion.FinalIK.HitPointBone/RootMotion.FinalIK.BoneLink.Apply
  void RootMotion::FinalIK::HitReaction::HitPointBone::BoneLink::Apply(::RootMotion::FinalIK::IKSolverFullBodyBiped* solver, ::UnityEngine::Quaternion offset, float crossFader) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPointBone::BoneLink::Apply");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Apply", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(solver), ::il2cpp_utils::ExtractType(offset), ::il2cpp_utils::ExtractType(crossFader)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, solver, offset, crossFader);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReaction/RootMotion.FinalIK.HitPointBone/RootMotion.FinalIK.BoneLink.CrossFadeStart
  void RootMotion::FinalIK::HitReaction::HitPointBone::BoneLink::CrossFadeStart() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReaction::HitPointBone::BoneLink::CrossFadeStart");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "CrossFadeStart", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.HitReactionVRIK
  #include "RootMotion/FinalIK/HitReactionVRIK.hpp"
  // Including type: RootMotion.FinalIK.HitReactionVRIK/RootMotion.FinalIK.Offset
  #include "RootMotion/FinalIK/HitReactionVRIK_Offset.hpp"
  // Including type: RootMotion.FinalIK.HitReactionVRIK/RootMotion.FinalIK.PositionOffset
  #include "RootMotion/FinalIK/HitReactionVRIK_PositionOffset.hpp"
  // Including type: RootMotion.FinalIK.HitReactionVRIK/RootMotion.FinalIK.RotationOffset
  #include "RootMotion/FinalIK/HitReactionVRIK_RotationOffset.hpp"
  // Including type: UnityEngine.AnimationCurve
  #include "UnityEngine/AnimationCurve.hpp"
  // Including type: UnityEngine.Collider
  #include "UnityEngine/Collider.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.AnimationCurve[] offsetCurves
  ::ArrayW<::UnityEngine::AnimationCurve*>& RootMotion::FinalIK::HitReactionVRIK::dyn_offsetCurves() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::dyn_offsetCurves");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "offsetCurves"))->offset;
    return *reinterpret_cast<::ArrayW<::UnityEngine::AnimationCurve*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.HitReactionVRIK/RootMotion.FinalIK.PositionOffset[] positionOffsets
  ::ArrayW<::RootMotion::FinalIK::HitReactionVRIK::PositionOffset*>& RootMotion::FinalIK::HitReactionVRIK::dyn_positionOffsets() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::dyn_positionOffsets");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "positionOffsets"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::HitReactionVRIK::PositionOffset*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.HitReactionVRIK/RootMotion.FinalIK.RotationOffset[] rotationOffsets
  ::ArrayW<::RootMotion::FinalIK::HitReactionVRIK::RotationOffset*>& RootMotion::FinalIK::HitReactionVRIK::dyn_rotationOffsets() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::dyn_rotationOffsets");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "rotationOffsets"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::HitReactionVRIK::RotationOffset*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReactionVRIK.Hit
  void RootMotion::FinalIK::HitReactionVRIK::Hit(::UnityEngine::Collider* collider, ::UnityEngine::Vector3 force, ::UnityEngine::Vector3 point) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::Hit");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Hit", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(collider), ::il2cpp_utils::ExtractType(force), ::il2cpp_utils::ExtractType(point)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, collider, force, point);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReactionVRIK.OnModifyOffset
  void RootMotion::FinalIK::HitReactionVRIK::OnModifyOffset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::OnModifyOffset");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnModifyOffset", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.HitReactionVRIK/RootMotion.FinalIK.Offset
  #include "RootMotion/FinalIK/HitReactionVRIK_Offset.hpp"
  // Including type: UnityEngine.Collider
  #include "UnityEngine/Collider.hpp"
  // Including type: UnityEngine.AnimationCurve
  #include "UnityEngine/AnimationCurve.hpp"
  // Including type: RootMotion.FinalIK.VRIK
  #include "RootMotion/FinalIK/VRIK.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public System.String name
  ::StringW& RootMotion::FinalIK::HitReactionVRIK::Offset::dyn_name() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::Offset::dyn_name");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "name"))->offset;
    return *reinterpret_cast<::StringW*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Collider collider
  ::UnityEngine::Collider*& RootMotion::FinalIK::HitReactionVRIK::Offset::dyn_collider() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::Offset::dyn_collider");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "collider"))->offset;
    return *reinterpret_cast<::UnityEngine::Collider**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single crossFadeTime
  float& RootMotion::FinalIK::HitReactionVRIK::Offset::dyn_crossFadeTime() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::Offset::dyn_crossFadeTime");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "crossFadeTime"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single <crossFader>k__BackingField
  float& RootMotion::FinalIK::HitReactionVRIK::Offset::dyn_$crossFader$k__BackingField() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::Offset::dyn_$crossFader$k__BackingField");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<crossFader>k__BackingField"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single <timer>k__BackingField
  float& RootMotion::FinalIK::HitReactionVRIK::Offset::dyn_$timer$k__BackingField() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::Offset::dyn_$timer$k__BackingField");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<timer>k__BackingField"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 <force>k__BackingField
  ::UnityEngine::Vector3& RootMotion::FinalIK::HitReactionVRIK::Offset::dyn_$force$k__BackingField() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::Offset::dyn_$force$k__BackingField");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<force>k__BackingField"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 <point>k__BackingField
  ::UnityEngine::Vector3& RootMotion::FinalIK::HitReactionVRIK::Offset::dyn_$point$k__BackingField() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::Offset::dyn_$point$k__BackingField");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<point>k__BackingField"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single length
  float& RootMotion::FinalIK::HitReactionVRIK::Offset::dyn_length() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::Offset::dyn_length");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "length"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single crossFadeSpeed
  float& RootMotion::FinalIK::HitReactionVRIK::Offset::dyn_crossFadeSpeed() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::Offset::dyn_crossFadeSpeed");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "crossFadeSpeed"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single lastTime
  float& RootMotion::FinalIK::HitReactionVRIK::Offset::dyn_lastTime() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::Offset::dyn_lastTime");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "lastTime"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReactionVRIK/RootMotion.FinalIK.Offset.get_crossFader
  float RootMotion::FinalIK::HitReactionVRIK::Offset::get_crossFader() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::Offset::get_crossFader");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_crossFader", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<float, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReactionVRIK/RootMotion.FinalIK.Offset.set_crossFader
  void RootMotion::FinalIK::HitReactionVRIK::Offset::set_crossFader(float value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::Offset::set_crossFader");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "set_crossFader", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(value)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, value);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReactionVRIK/RootMotion.FinalIK.Offset.get_timer
  float RootMotion::FinalIK::HitReactionVRIK::Offset::get_timer() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::Offset::get_timer");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_timer", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<float, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReactionVRIK/RootMotion.FinalIK.Offset.set_timer
  void RootMotion::FinalIK::HitReactionVRIK::Offset::set_timer(float value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::Offset::set_timer");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "set_timer", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(value)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, value);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReactionVRIK/RootMotion.FinalIK.Offset.get_force
  ::UnityEngine::Vector3 RootMotion::FinalIK::HitReactionVRIK::Offset::get_force() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::Offset::get_force");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_force", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReactionVRIK/RootMotion.FinalIK.Offset.set_force
  void RootMotion::FinalIK::HitReactionVRIK::Offset::set_force(::UnityEngine::Vector3 value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::Offset::set_force");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "set_force", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(value)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, value);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReactionVRIK/RootMotion.FinalIK.Offset.get_point
  ::UnityEngine::Vector3 RootMotion::FinalIK::HitReactionVRIK::Offset::get_point() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::Offset::get_point");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_point", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReactionVRIK/RootMotion.FinalIK.Offset.set_point
  void RootMotion::FinalIK::HitReactionVRIK::Offset::set_point(::UnityEngine::Vector3 value) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::Offset::set_point");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "set_point", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(value)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, value);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReactionVRIK/RootMotion.FinalIK.Offset.Hit
  void RootMotion::FinalIK::HitReactionVRIK::Offset::Hit(::UnityEngine::Vector3 force, ::ArrayW<::UnityEngine::AnimationCurve*> curves, ::UnityEngine::Vector3 point) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::Offset::Hit");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Hit", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(force), ::il2cpp_utils::ExtractType(curves), ::il2cpp_utils::ExtractType(point)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, force, curves, point);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReactionVRIK/RootMotion.FinalIK.Offset.Apply
  void RootMotion::FinalIK::HitReactionVRIK::Offset::Apply(::RootMotion::FinalIK::VRIK* ik, ::ArrayW<::UnityEngine::AnimationCurve*> curves, float weight) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::Offset::Apply");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Apply", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(ik), ::il2cpp_utils::ExtractType(curves), ::il2cpp_utils::ExtractType(weight)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, ik, curves, weight);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReactionVRIK/RootMotion.FinalIK.Offset.GetLength
  float RootMotion::FinalIK::HitReactionVRIK::Offset::GetLength(::ArrayW<::UnityEngine::AnimationCurve*> curves) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::Offset::GetLength");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetLength", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(curves)})));
    return ::il2cpp_utils::RunMethodRethrow<float, false>(this, ___internal__method, curves);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReactionVRIK/RootMotion.FinalIK.Offset.CrossFadeStart
  void RootMotion::FinalIK::HitReactionVRIK::Offset::CrossFadeStart() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::Offset::CrossFadeStart");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "CrossFadeStart", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReactionVRIK/RootMotion.FinalIK.Offset.OnApply
  void RootMotion::FinalIK::HitReactionVRIK::Offset::OnApply(::RootMotion::FinalIK::VRIK* ik, ::ArrayW<::UnityEngine::AnimationCurve*> curves, float weight) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::Offset::OnApply");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnApply", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(ik), ::il2cpp_utils::ExtractType(curves), ::il2cpp_utils::ExtractType(weight)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, ik, curves, weight);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.HitReactionVRIK/RootMotion.FinalIK.PositionOffset
  #include "RootMotion/FinalIK/HitReactionVRIK_PositionOffset.hpp"
  // Including type: RootMotion.FinalIK.HitReactionVRIK/RootMotion.FinalIK.PositionOffset/RootMotion.FinalIK.PositionOffsetLink
  #include "RootMotion/FinalIK/HitReactionVRIK_PositionOffset_PositionOffsetLink.hpp"
  // Including type: UnityEngine.AnimationCurve
  #include "UnityEngine/AnimationCurve.hpp"
  // Including type: RootMotion.FinalIK.VRIK
  #include "RootMotion/FinalIK/VRIK.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public System.Int32 forceDirCurveIndex
  int& RootMotion::FinalIK::HitReactionVRIK::PositionOffset::dyn_forceDirCurveIndex() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::PositionOffset::dyn_forceDirCurveIndex");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "forceDirCurveIndex"))->offset;
    return *reinterpret_cast<int*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Int32 upDirCurveIndex
  int& RootMotion::FinalIK::HitReactionVRIK::PositionOffset::dyn_upDirCurveIndex() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::PositionOffset::dyn_upDirCurveIndex");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "upDirCurveIndex"))->offset;
    return *reinterpret_cast<int*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.HitReactionVRIK/RootMotion.FinalIK.PositionOffset/RootMotion.FinalIK.PositionOffsetLink[] offsetLinks
  ::ArrayW<::RootMotion::FinalIK::HitReactionVRIK::PositionOffset::PositionOffsetLink*>& RootMotion::FinalIK::HitReactionVRIK::PositionOffset::dyn_offsetLinks() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::PositionOffset::dyn_offsetLinks");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "offsetLinks"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::HitReactionVRIK::PositionOffset::PositionOffsetLink*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReactionVRIK/RootMotion.FinalIK.PositionOffset.GetLength
  float RootMotion::FinalIK::HitReactionVRIK::PositionOffset::GetLength(::ArrayW<::UnityEngine::AnimationCurve*> curves) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::PositionOffset::GetLength");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetLength", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(curves)})));
    return ::il2cpp_utils::RunMethodRethrow<float, false>(this, ___internal__method, curves);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReactionVRIK/RootMotion.FinalIK.PositionOffset.CrossFadeStart
  void RootMotion::FinalIK::HitReactionVRIK::PositionOffset::CrossFadeStart() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::PositionOffset::CrossFadeStart");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "CrossFadeStart", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReactionVRIK/RootMotion.FinalIK.PositionOffset.OnApply
  void RootMotion::FinalIK::HitReactionVRIK::PositionOffset::OnApply(::RootMotion::FinalIK::VRIK* ik, ::ArrayW<::UnityEngine::AnimationCurve*> curves, float weight) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::PositionOffset::OnApply");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnApply", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(ik), ::il2cpp_utils::ExtractType(curves), ::il2cpp_utils::ExtractType(weight)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, ik, curves, weight);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.HitReactionVRIK/RootMotion.FinalIK.PositionOffset/RootMotion.FinalIK.PositionOffsetLink
  #include "RootMotion/FinalIK/HitReactionVRIK_PositionOffset_PositionOffsetLink.hpp"
  // Including type: RootMotion.FinalIK.VRIK
  #include "RootMotion/FinalIK/VRIK.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.PositionOffset positionOffset
  ::RootMotion::FinalIK::IKSolverVR::PositionOffset& RootMotion::FinalIK::HitReactionVRIK::PositionOffset::PositionOffsetLink::dyn_positionOffset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::PositionOffset::PositionOffsetLink::dyn_positionOffset");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "positionOffset"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IKSolverVR::PositionOffset*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single weight
  float& RootMotion::FinalIK::HitReactionVRIK::PositionOffset::PositionOffsetLink::dyn_weight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::PositionOffset::PositionOffsetLink::dyn_weight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "weight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 lastValue
  ::UnityEngine::Vector3& RootMotion::FinalIK::HitReactionVRIK::PositionOffset::PositionOffsetLink::dyn_lastValue() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::PositionOffset::PositionOffsetLink::dyn_lastValue");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "lastValue"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 current
  ::UnityEngine::Vector3& RootMotion::FinalIK::HitReactionVRIK::PositionOffset::PositionOffsetLink::dyn_current() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::PositionOffset::PositionOffsetLink::dyn_current");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "current"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReactionVRIK/RootMotion.FinalIK.PositionOffset/RootMotion.FinalIK.PositionOffsetLink.Apply
  void RootMotion::FinalIK::HitReactionVRIK::PositionOffset::PositionOffsetLink::Apply(::RootMotion::FinalIK::VRIK* ik, ::UnityEngine::Vector3 offset, float crossFader) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::PositionOffset::PositionOffsetLink::Apply");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Apply", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(ik), ::il2cpp_utils::ExtractType(offset), ::il2cpp_utils::ExtractType(crossFader)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, ik, offset, crossFader);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReactionVRIK/RootMotion.FinalIK.PositionOffset/RootMotion.FinalIK.PositionOffsetLink.CrossFadeStart
  void RootMotion::FinalIK::HitReactionVRIK::PositionOffset::PositionOffsetLink::CrossFadeStart() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::PositionOffset::PositionOffsetLink::CrossFadeStart");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "CrossFadeStart", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.HitReactionVRIK/RootMotion.FinalIK.RotationOffset
  #include "RootMotion/FinalIK/HitReactionVRIK_RotationOffset.hpp"
  // Including type: RootMotion.FinalIK.HitReactionVRIK/RootMotion.FinalIK.RotationOffset/RootMotion.FinalIK.RotationOffsetLink
  #include "RootMotion/FinalIK/HitReactionVRIK_RotationOffset_RotationOffsetLink.hpp"
  // Including type: UnityEngine.Rigidbody
  #include "UnityEngine/Rigidbody.hpp"
  // Including type: UnityEngine.AnimationCurve
  #include "UnityEngine/AnimationCurve.hpp"
  // Including type: RootMotion.FinalIK.VRIK
  #include "RootMotion/FinalIK/VRIK.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public System.Int32 curveIndex
  int& RootMotion::FinalIK::HitReactionVRIK::RotationOffset::dyn_curveIndex() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::RotationOffset::dyn_curveIndex");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "curveIndex"))->offset;
    return *reinterpret_cast<int*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.HitReactionVRIK/RootMotion.FinalIK.RotationOffset/RootMotion.FinalIK.RotationOffsetLink[] offsetLinks
  ::ArrayW<::RootMotion::FinalIK::HitReactionVRIK::RotationOffset::RotationOffsetLink*>& RootMotion::FinalIK::HitReactionVRIK::RotationOffset::dyn_offsetLinks() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::RotationOffset::dyn_offsetLinks");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "offsetLinks"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::HitReactionVRIK::RotationOffset::RotationOffsetLink*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Rigidbody rigidbody
  ::UnityEngine::Rigidbody*& RootMotion::FinalIK::HitReactionVRIK::RotationOffset::dyn_rigidbody() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::RotationOffset::dyn_rigidbody");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "rigidbody"))->offset;
    return *reinterpret_cast<::UnityEngine::Rigidbody**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReactionVRIK/RootMotion.FinalIK.RotationOffset.GetLength
  float RootMotion::FinalIK::HitReactionVRIK::RotationOffset::GetLength(::ArrayW<::UnityEngine::AnimationCurve*> curves) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::RotationOffset::GetLength");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetLength", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(curves)})));
    return ::il2cpp_utils::RunMethodRethrow<float, false>(this, ___internal__method, curves);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReactionVRIK/RootMotion.FinalIK.RotationOffset.CrossFadeStart
  void RootMotion::FinalIK::HitReactionVRIK::RotationOffset::CrossFadeStart() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::RotationOffset::CrossFadeStart");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "CrossFadeStart", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReactionVRIK/RootMotion.FinalIK.RotationOffset.OnApply
  void RootMotion::FinalIK::HitReactionVRIK::RotationOffset::OnApply(::RootMotion::FinalIK::VRIK* ik, ::ArrayW<::UnityEngine::AnimationCurve*> curves, float weight) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::RotationOffset::OnApply");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnApply", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(ik), ::il2cpp_utils::ExtractType(curves), ::il2cpp_utils::ExtractType(weight)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, ik, curves, weight);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.HitReactionVRIK/RootMotion.FinalIK.RotationOffset/RootMotion.FinalIK.RotationOffsetLink
  #include "RootMotion/FinalIK/HitReactionVRIK_RotationOffset_RotationOffsetLink.hpp"
  // Including type: RootMotion.FinalIK.VRIK
  #include "RootMotion/FinalIK/VRIK.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.IKSolverVR/RootMotion.FinalIK.RotationOffset rotationOffset
  ::RootMotion::FinalIK::IKSolverVR::RotationOffset& RootMotion::FinalIK::HitReactionVRIK::RotationOffset::RotationOffsetLink::dyn_rotationOffset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::RotationOffset::RotationOffsetLink::dyn_rotationOffset");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "rotationOffset"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::IKSolverVR::RotationOffset*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single weight
  float& RootMotion::FinalIK::HitReactionVRIK::RotationOffset::RotationOffsetLink::dyn_weight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::RotationOffset::RotationOffsetLink::dyn_weight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "weight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Quaternion lastValue
  ::UnityEngine::Quaternion& RootMotion::FinalIK::HitReactionVRIK::RotationOffset::RotationOffsetLink::dyn_lastValue() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::RotationOffset::RotationOffsetLink::dyn_lastValue");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "lastValue"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Quaternion current
  ::UnityEngine::Quaternion& RootMotion::FinalIK::HitReactionVRIK::RotationOffset::RotationOffsetLink::dyn_current() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::RotationOffset::RotationOffsetLink::dyn_current");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "current"))->offset;
    return *reinterpret_cast<::UnityEngine::Quaternion*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReactionVRIK/RootMotion.FinalIK.RotationOffset/RootMotion.FinalIK.RotationOffsetLink.Apply
  void RootMotion::FinalIK::HitReactionVRIK::RotationOffset::RotationOffsetLink::Apply(::RootMotion::FinalIK::VRIK* ik, ::UnityEngine::Quaternion offset, float crossFader) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::RotationOffset::RotationOffsetLink::Apply");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Apply", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(ik), ::il2cpp_utils::ExtractType(offset), ::il2cpp_utils::ExtractType(crossFader)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, ik, offset, crossFader);
  }
  // Autogenerated method: RootMotion.FinalIK.HitReactionVRIK/RootMotion.FinalIK.RotationOffset/RootMotion.FinalIK.RotationOffsetLink.CrossFadeStart
  void RootMotion::FinalIK::HitReactionVRIK::RotationOffset::RotationOffsetLink::CrossFadeStart() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::HitReactionVRIK::RotationOffset::RotationOffsetLink::CrossFadeStart");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "CrossFadeStart", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.Inertia
  #include "RootMotion/FinalIK/Inertia.hpp"
  // Including type: RootMotion.FinalIK.Inertia/RootMotion.FinalIK.Body
  #include "RootMotion/FinalIK/Inertia_Body.hpp"
  // Including type: RootMotion.FinalIK.OffsetModifier/RootMotion.FinalIK.OffsetLimits
  #include "RootMotion/FinalIK/OffsetModifier_OffsetLimits.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.Inertia/RootMotion.FinalIK.Body[] bodies
  ::ArrayW<::RootMotion::FinalIK::Inertia::Body*>& RootMotion::FinalIK::Inertia::dyn_bodies() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Inertia::dyn_bodies");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "bodies"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::Inertia::Body*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.OffsetModifier/RootMotion.FinalIK.OffsetLimits[] limits
  ::ArrayW<::RootMotion::FinalIK::OffsetModifier::OffsetLimits*>& RootMotion::FinalIK::Inertia::dyn_limits() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Inertia::dyn_limits");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "limits"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::OffsetModifier::OffsetLimits*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.Inertia.ResetBodies
  void RootMotion::FinalIK::Inertia::ResetBodies() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Inertia::ResetBodies");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "ResetBodies", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.Inertia.OnModifyOffset
  void RootMotion::FinalIK::Inertia::OnModifyOffset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Inertia::OnModifyOffset");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnModifyOffset", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.Inertia/RootMotion.FinalIK.Body
  #include "RootMotion/FinalIK/Inertia_Body.hpp"
  // Including type: RootMotion.FinalIK.Inertia/RootMotion.FinalIK.Body/RootMotion.FinalIK.EffectorLink
  #include "RootMotion/FinalIK/Inertia_Body_EffectorLink.hpp"
  // Including type: UnityEngine.Transform
  #include "UnityEngine/Transform.hpp"
  // Including type: RootMotion.FinalIK.IKSolverFullBodyBiped
  #include "RootMotion/FinalIK/IKSolverFullBodyBiped.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Transform transform
  ::UnityEngine::Transform*& RootMotion::FinalIK::Inertia::Body::dyn_transform() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Inertia::Body::dyn_transform");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "transform"))->offset;
    return *reinterpret_cast<::UnityEngine::Transform**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.Inertia/RootMotion.FinalIK.Body/RootMotion.FinalIK.EffectorLink[] effectorLinks
  ::ArrayW<::RootMotion::FinalIK::Inertia::Body::EffectorLink*>& RootMotion::FinalIK::Inertia::Body::dyn_effectorLinks() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Inertia::Body::dyn_effectorLinks");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "effectorLinks"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::Inertia::Body::EffectorLink*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single speed
  float& RootMotion::FinalIK::Inertia::Body::dyn_speed() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Inertia::Body::dyn_speed");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "speed"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single acceleration
  float& RootMotion::FinalIK::Inertia::Body::dyn_acceleration() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Inertia::Body::dyn_acceleration");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "acceleration"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single matchVelocity
  float& RootMotion::FinalIK::Inertia::Body::dyn_matchVelocity() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Inertia::Body::dyn_matchVelocity");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "matchVelocity"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single gravity
  float& RootMotion::FinalIK::Inertia::Body::dyn_gravity() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Inertia::Body::dyn_gravity");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "gravity"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 delta
  ::UnityEngine::Vector3& RootMotion::FinalIK::Inertia::Body::dyn_delta() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Inertia::Body::dyn_delta");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "delta"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 lazyPoint
  ::UnityEngine::Vector3& RootMotion::FinalIK::Inertia::Body::dyn_lazyPoint() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Inertia::Body::dyn_lazyPoint");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "lazyPoint"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 direction
  ::UnityEngine::Vector3& RootMotion::FinalIK::Inertia::Body::dyn_direction() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Inertia::Body::dyn_direction");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "direction"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 lastPosition
  ::UnityEngine::Vector3& RootMotion::FinalIK::Inertia::Body::dyn_lastPosition() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Inertia::Body::dyn_lastPosition");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "lastPosition"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean firstUpdate
  bool& RootMotion::FinalIK::Inertia::Body::dyn_firstUpdate() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Inertia::Body::dyn_firstUpdate");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "firstUpdate"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.Inertia/RootMotion.FinalIK.Body.Reset
  void RootMotion::FinalIK::Inertia::Body::Reset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Inertia::Body::Reset");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Reset", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.Inertia/RootMotion.FinalIK.Body.Update
  void RootMotion::FinalIK::Inertia::Body::Update(::RootMotion::FinalIK::IKSolverFullBodyBiped* solver, float weight, float deltaTime) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Inertia::Body::Update");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Update", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(solver), ::il2cpp_utils::ExtractType(weight), ::il2cpp_utils::ExtractType(deltaTime)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, solver, weight, deltaTime);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.Inertia/RootMotion.FinalIK.Body/RootMotion.FinalIK.EffectorLink
  #include "RootMotion/FinalIK/Inertia_Body_EffectorLink.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.FullBodyBipedEffector effector
  ::RootMotion::FinalIK::FullBodyBipedEffector& RootMotion::FinalIK::Inertia::Body::EffectorLink::dyn_effector() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Inertia::Body::EffectorLink::dyn_effector");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "effector"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::FullBodyBipedEffector*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single weight
  float& RootMotion::FinalIK::Inertia::Body::EffectorLink::dyn_weight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::Inertia::Body::EffectorLink::dyn_weight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "weight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.LookAtController
  #include "RootMotion/FinalIK/LookAtController.hpp"
  // Including type: RootMotion.FinalIK.LookAtIK
  #include "RootMotion/FinalIK/LookAtIK.hpp"
  // Including type: UnityEngine.Transform
  #include "UnityEngine/Transform.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.LookAtIK ik
  ::RootMotion::FinalIK::LookAtIK*& RootMotion::FinalIK::LookAtController::dyn_ik() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::LookAtController::dyn_ik");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "ik"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::LookAtIK**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Transform target
  ::UnityEngine::Transform*& RootMotion::FinalIK::LookAtController::dyn_target() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::LookAtController::dyn_target");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "target"))->offset;
    return *reinterpret_cast<::UnityEngine::Transform**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single weight
  float& RootMotion::FinalIK::LookAtController::dyn_weight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::LookAtController::dyn_weight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "weight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 offset
  ::UnityEngine::Vector3& RootMotion::FinalIK::LookAtController::dyn_offset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::LookAtController::dyn_offset");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "offset"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single targetSwitchSmoothTime
  float& RootMotion::FinalIK::LookAtController::dyn_targetSwitchSmoothTime() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::LookAtController::dyn_targetSwitchSmoothTime");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "targetSwitchSmoothTime"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single weightSmoothTime
  float& RootMotion::FinalIK::LookAtController::dyn_weightSmoothTime() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::LookAtController::dyn_weightSmoothTime");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "weightSmoothTime"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Boolean smoothTurnTowardsTarget
  bool& RootMotion::FinalIK::LookAtController::dyn_smoothTurnTowardsTarget() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::LookAtController::dyn_smoothTurnTowardsTarget");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "smoothTurnTowardsTarget"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single maxRadiansDelta
  float& RootMotion::FinalIK::LookAtController::dyn_maxRadiansDelta() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::LookAtController::dyn_maxRadiansDelta");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "maxRadiansDelta"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single maxMagnitudeDelta
  float& RootMotion::FinalIK::LookAtController::dyn_maxMagnitudeDelta() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::LookAtController::dyn_maxMagnitudeDelta");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "maxMagnitudeDelta"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single slerpSpeed
  float& RootMotion::FinalIK::LookAtController::dyn_slerpSpeed() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::LookAtController::dyn_slerpSpeed");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "slerpSpeed"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 pivotOffsetFromRoot
  ::UnityEngine::Vector3& RootMotion::FinalIK::LookAtController::dyn_pivotOffsetFromRoot() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::LookAtController::dyn_pivotOffsetFromRoot");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "pivotOffsetFromRoot"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single minDistance
  float& RootMotion::FinalIK::LookAtController::dyn_minDistance() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::LookAtController::dyn_minDistance");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "minDistance"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single maxRootAngle
  float& RootMotion::FinalIK::LookAtController::dyn_maxRootAngle() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::LookAtController::dyn_maxRootAngle");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "maxRootAngle"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Transform lastTarget
  ::UnityEngine::Transform*& RootMotion::FinalIK::LookAtController::dyn_lastTarget() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::LookAtController::dyn_lastTarget");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "lastTarget"))->offset;
    return *reinterpret_cast<::UnityEngine::Transform**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single switchWeight
  float& RootMotion::FinalIK::LookAtController::dyn_switchWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::LookAtController::dyn_switchWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "switchWeight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single switchWeightV
  float& RootMotion::FinalIK::LookAtController::dyn_switchWeightV() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::LookAtController::dyn_switchWeightV");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "switchWeightV"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single weightV
  float& RootMotion::FinalIK::LookAtController::dyn_weightV() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::LookAtController::dyn_weightV");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "weightV"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 lastPosition
  ::UnityEngine::Vector3& RootMotion::FinalIK::LookAtController::dyn_lastPosition() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::LookAtController::dyn_lastPosition");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "lastPosition"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 dir
  ::UnityEngine::Vector3& RootMotion::FinalIK::LookAtController::dyn_dir() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::LookAtController::dyn_dir");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "dir"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Boolean lastSmoothTowardsTarget
  bool& RootMotion::FinalIK::LookAtController::dyn_lastSmoothTowardsTarget() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::LookAtController::dyn_lastSmoothTowardsTarget");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "lastSmoothTowardsTarget"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.LookAtController.get_pivot
  ::UnityEngine::Vector3 RootMotion::FinalIK::LookAtController::get_pivot() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::LookAtController::get_pivot");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_pivot", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.LookAtController.Start
  void RootMotion::FinalIK::LookAtController::Start() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::LookAtController::Start");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Start", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.LookAtController.LateUpdate
  void RootMotion::FinalIK::LookAtController::LateUpdate() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::LookAtController::LateUpdate");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "LateUpdate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.LookAtController.ApplyMinDistance
  void RootMotion::FinalIK::LookAtController::ApplyMinDistance() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::LookAtController::ApplyMinDistance");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "ApplyMinDistance", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.LookAtController.RootRotation
  void RootMotion::FinalIK::LookAtController::RootRotation() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::LookAtController::RootRotation");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "RootRotation", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.OffsetModifier
  #include "RootMotion/FinalIK/OffsetModifier.hpp"
  // Including type: RootMotion.FinalIK.OffsetModifier/RootMotion.FinalIK.OffsetLimits
  #include "RootMotion/FinalIK/OffsetModifier_OffsetLimits.hpp"
  // Including type: RootMotion.FinalIK.OffsetModifier/RootMotion.FinalIK.<Initiate>d__8
  #include "RootMotion/FinalIK/OffsetModifier_-Initiate-d__8.hpp"
  // Including type: RootMotion.FinalIK.FullBodyBipedIK
  #include "RootMotion/FinalIK/FullBodyBipedIK.hpp"
  // Including type: System.Collections.IEnumerator
  #include "System/Collections/IEnumerator.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public System.Single weight
  float& RootMotion::FinalIK::OffsetModifier::dyn_weight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifier::dyn_weight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "weight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.FullBodyBipedIK ik
  ::RootMotion::FinalIK::FullBodyBipedIK*& RootMotion::FinalIK::OffsetModifier::dyn_ik() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifier::dyn_ik");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "ik"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::FullBodyBipedIK**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: protected System.Single lastTime
  float& RootMotion::FinalIK::OffsetModifier::dyn_lastTime() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifier::dyn_lastTime");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "lastTime"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.OffsetModifier.get_deltaTime
  float RootMotion::FinalIK::OffsetModifier::get_deltaTime() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifier::get_deltaTime");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_deltaTime", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<float, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.OffsetModifier.OnModifyOffset
  void RootMotion::FinalIK::OffsetModifier::OnModifyOffset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifier::OnModifyOffset");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnModifyOffset", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.OffsetModifier.Start
  void RootMotion::FinalIK::OffsetModifier::Start() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifier::Start");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Start", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.OffsetModifier.Initiate
  ::System::Collections::IEnumerator* RootMotion::FinalIK::OffsetModifier::Initiate() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifier::Initiate");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Initiate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::System::Collections::IEnumerator*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.OffsetModifier.ModifyOffset
  void RootMotion::FinalIK::OffsetModifier::ModifyOffset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifier::ModifyOffset");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "ModifyOffset", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.OffsetModifier.ApplyLimits
  void RootMotion::FinalIK::OffsetModifier::ApplyLimits(::ArrayW<::RootMotion::FinalIK::OffsetModifier::OffsetLimits*> limits) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifier::ApplyLimits");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "ApplyLimits", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(limits)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, limits);
  }
  // Autogenerated method: RootMotion.FinalIK.OffsetModifier.OnDestroy
  void RootMotion::FinalIK::OffsetModifier::OnDestroy() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifier::OnDestroy");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnDestroy", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.OffsetModifier/RootMotion.FinalIK.OffsetLimits
  #include "RootMotion/FinalIK/OffsetModifier_OffsetLimits.hpp"
  // Including type: RootMotion.FinalIK.IKEffector
  #include "RootMotion/FinalIK/IKEffector.hpp"
  // Including type: UnityEngine.Quaternion
  #include "UnityEngine/Quaternion.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.FullBodyBipedEffector effector
  ::RootMotion::FinalIK::FullBodyBipedEffector& RootMotion::FinalIK::OffsetModifier::OffsetLimits::dyn_effector() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifier::OffsetLimits::dyn_effector");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "effector"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::FullBodyBipedEffector*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single spring
  float& RootMotion::FinalIK::OffsetModifier::OffsetLimits::dyn_spring() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifier::OffsetLimits::dyn_spring");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "spring"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Boolean x
  bool& RootMotion::FinalIK::OffsetModifier::OffsetLimits::dyn_x() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifier::OffsetLimits::dyn_x");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "x"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Boolean y
  bool& RootMotion::FinalIK::OffsetModifier::OffsetLimits::dyn_y() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifier::OffsetLimits::dyn_y");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "y"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Boolean z
  bool& RootMotion::FinalIK::OffsetModifier::OffsetLimits::dyn_z() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifier::OffsetLimits::dyn_z");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "z"))->offset;
    return *reinterpret_cast<bool*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single minX
  float& RootMotion::FinalIK::OffsetModifier::OffsetLimits::dyn_minX() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifier::OffsetLimits::dyn_minX");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "minX"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single maxX
  float& RootMotion::FinalIK::OffsetModifier::OffsetLimits::dyn_maxX() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifier::OffsetLimits::dyn_maxX");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "maxX"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single minY
  float& RootMotion::FinalIK::OffsetModifier::OffsetLimits::dyn_minY() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifier::OffsetLimits::dyn_minY");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "minY"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single maxY
  float& RootMotion::FinalIK::OffsetModifier::OffsetLimits::dyn_maxY() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifier::OffsetLimits::dyn_maxY");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "maxY"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single minZ
  float& RootMotion::FinalIK::OffsetModifier::OffsetLimits::dyn_minZ() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifier::OffsetLimits::dyn_minZ");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "minZ"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single maxZ
  float& RootMotion::FinalIK::OffsetModifier::OffsetLimits::dyn_maxZ() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifier::OffsetLimits::dyn_maxZ");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "maxZ"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.OffsetModifier/RootMotion.FinalIK.OffsetLimits.Apply
  void RootMotion::FinalIK::OffsetModifier::OffsetLimits::Apply(::RootMotion::FinalIK::IKEffector* e, ::UnityEngine::Quaternion rootRotation) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifier::OffsetLimits::Apply");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Apply", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(e), ::il2cpp_utils::ExtractType(rootRotation)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, e, rootRotation);
  }
  // Autogenerated method: RootMotion.FinalIK.OffsetModifier/RootMotion.FinalIK.OffsetLimits.SpringAxis
  float RootMotion::FinalIK::OffsetModifier::OffsetLimits::SpringAxis(float value, float min, float max) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifier::OffsetLimits::SpringAxis");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "SpringAxis", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(value), ::il2cpp_utils::ExtractType(min), ::il2cpp_utils::ExtractType(max)})));
    return ::il2cpp_utils::RunMethodRethrow<float, false>(this, ___internal__method, value, min, max);
  }
  // Autogenerated method: RootMotion.FinalIK.OffsetModifier/RootMotion.FinalIK.OffsetLimits.Spring
  float RootMotion::FinalIK::OffsetModifier::OffsetLimits::Spring(float value, float limit, bool negative) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifier::OffsetLimits::Spring");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Spring", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(value), ::il2cpp_utils::ExtractType(limit), ::il2cpp_utils::ExtractType(negative)})));
    return ::il2cpp_utils::RunMethodRethrow<float, false>(this, ___internal__method, value, limit, negative);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  #include "beatsaber-hook/shared/utils/typedefs.h"
  // Including type: RootMotion.FinalIK.OffsetModifier/RootMotion.FinalIK.<Initiate>d__8
  #include "RootMotion/FinalIK/OffsetModifier_-Initiate-d__8.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: private System.Int32 <>1__state
  int& RootMotion::FinalIK::OffsetModifier::$Initiate$d__8::dyn_$$1__state() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifier::$Initiate$d__8::dyn_$$1__state");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<>1__state"))->offset;
    return *reinterpret_cast<int*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Object <>2__current
  ::Il2CppObject*& RootMotion::FinalIK::OffsetModifier::$Initiate$d__8::dyn_$$2__current() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifier::$Initiate$d__8::dyn_$$2__current");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<>2__current"))->offset;
    return *reinterpret_cast<::Il2CppObject**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.OffsetModifier <>4__this
  ::RootMotion::FinalIK::OffsetModifier*& RootMotion::FinalIK::OffsetModifier::$Initiate$d__8::dyn_$$4__this() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifier::$Initiate$d__8::dyn_$$4__this");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<>4__this"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::OffsetModifier**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.OffsetModifier/RootMotion.FinalIK.<Initiate>d__8.System.Collections.Generic.IEnumerator<System.Object>.get_Current
  ::Il2CppObject* RootMotion::FinalIK::OffsetModifier::$Initiate$d__8::System_Collections_Generic_IEnumerator$System_Object$_get_Current() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifier::$Initiate$d__8::System.Collections.Generic.IEnumerator<System.Object>.get_Current");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "System.Collections.Generic.IEnumerator<System.Object>.get_Current", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::Il2CppObject*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.OffsetModifier/RootMotion.FinalIK.<Initiate>d__8.System.Collections.IEnumerator.get_Current
  ::Il2CppObject* RootMotion::FinalIK::OffsetModifier::$Initiate$d__8::System_Collections_IEnumerator_get_Current() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifier::$Initiate$d__8::System.Collections.IEnumerator.get_Current");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "System.Collections.IEnumerator.get_Current", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::Il2CppObject*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.OffsetModifier/RootMotion.FinalIK.<Initiate>d__8.System.IDisposable.Dispose
  void RootMotion::FinalIK::OffsetModifier::$Initiate$d__8::System_IDisposable_Dispose() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifier::$Initiate$d__8::System.IDisposable.Dispose");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "System.IDisposable.Dispose", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.OffsetModifier/RootMotion.FinalIK.<Initiate>d__8.MoveNext
  bool RootMotion::FinalIK::OffsetModifier::$Initiate$d__8::MoveNext() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifier::$Initiate$d__8::MoveNext");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "MoveNext", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.OffsetModifier/RootMotion.FinalIK.<Initiate>d__8.System.Collections.IEnumerator.Reset
  void RootMotion::FinalIK::OffsetModifier::$Initiate$d__8::System_Collections_IEnumerator_Reset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifier::$Initiate$d__8::System.Collections.IEnumerator.Reset");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "System.Collections.IEnumerator.Reset", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.OffsetModifierVRIK
  #include "RootMotion/FinalIK/OffsetModifierVRIK.hpp"
  // Including type: RootMotion.FinalIK.OffsetModifierVRIK/RootMotion.FinalIK.<Initiate>d__7
  #include "RootMotion/FinalIK/OffsetModifierVRIK_-Initiate-d__7.hpp"
  // Including type: RootMotion.FinalIK.VRIK
  #include "RootMotion/FinalIK/VRIK.hpp"
  // Including type: System.Collections.IEnumerator
  #include "System/Collections/IEnumerator.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public System.Single weight
  float& RootMotion::FinalIK::OffsetModifierVRIK::dyn_weight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifierVRIK::dyn_weight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "weight"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.VRIK ik
  ::RootMotion::FinalIK::VRIK*& RootMotion::FinalIK::OffsetModifierVRIK::dyn_ik() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifierVRIK::dyn_ik");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "ik"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::VRIK**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Single lastTime
  float& RootMotion::FinalIK::OffsetModifierVRIK::dyn_lastTime() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifierVRIK::dyn_lastTime");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "lastTime"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.OffsetModifierVRIK.get_deltaTime
  float RootMotion::FinalIK::OffsetModifierVRIK::get_deltaTime() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifierVRIK::get_deltaTime");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "get_deltaTime", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<float, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.OffsetModifierVRIK.OnModifyOffset
  void RootMotion::FinalIK::OffsetModifierVRIK::OnModifyOffset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifierVRIK::OnModifyOffset");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnModifyOffset", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.OffsetModifierVRIK.Start
  void RootMotion::FinalIK::OffsetModifierVRIK::Start() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifierVRIK::Start");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Start", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.OffsetModifierVRIK.Initiate
  ::System::Collections::IEnumerator* RootMotion::FinalIK::OffsetModifierVRIK::Initiate() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifierVRIK::Initiate");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Initiate", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::System::Collections::IEnumerator*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.OffsetModifierVRIK.ModifyOffset
  void RootMotion::FinalIK::OffsetModifierVRIK::ModifyOffset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifierVRIK::ModifyOffset");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "ModifyOffset", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.OffsetModifierVRIK.OnDestroy
  void RootMotion::FinalIK::OffsetModifierVRIK::OnDestroy() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifierVRIK::OnDestroy");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnDestroy", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  #include "beatsaber-hook/shared/utils/typedefs.h"
  // Including type: RootMotion.FinalIK.OffsetModifierVRIK/RootMotion.FinalIK.<Initiate>d__7
  #include "RootMotion/FinalIK/OffsetModifierVRIK_-Initiate-d__7.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: private System.Int32 <>1__state
  int& RootMotion::FinalIK::OffsetModifierVRIK::$Initiate$d__7::dyn_$$1__state() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifierVRIK::$Initiate$d__7::dyn_$$1__state");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<>1__state"))->offset;
    return *reinterpret_cast<int*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private System.Object <>2__current
  ::Il2CppObject*& RootMotion::FinalIK::OffsetModifierVRIK::$Initiate$d__7::dyn_$$2__current() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifierVRIK::$Initiate$d__7::dyn_$$2__current");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<>2__current"))->offset;
    return *reinterpret_cast<::Il2CppObject**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.OffsetModifierVRIK <>4__this
  ::RootMotion::FinalIK::OffsetModifierVRIK*& RootMotion::FinalIK::OffsetModifierVRIK::$Initiate$d__7::dyn_$$4__this() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifierVRIK::$Initiate$d__7::dyn_$$4__this");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "<>4__this"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::OffsetModifierVRIK**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.OffsetModifierVRIK/RootMotion.FinalIK.<Initiate>d__7.System.Collections.Generic.IEnumerator<System.Object>.get_Current
  ::Il2CppObject* RootMotion::FinalIK::OffsetModifierVRIK::$Initiate$d__7::System_Collections_Generic_IEnumerator$System_Object$_get_Current() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifierVRIK::$Initiate$d__7::System.Collections.Generic.IEnumerator<System.Object>.get_Current");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "System.Collections.Generic.IEnumerator<System.Object>.get_Current", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::Il2CppObject*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.OffsetModifierVRIK/RootMotion.FinalIK.<Initiate>d__7.System.Collections.IEnumerator.get_Current
  ::Il2CppObject* RootMotion::FinalIK::OffsetModifierVRIK::$Initiate$d__7::System_Collections_IEnumerator_get_Current() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifierVRIK::$Initiate$d__7::System.Collections.IEnumerator.get_Current");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "System.Collections.IEnumerator.get_Current", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<::Il2CppObject*, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.OffsetModifierVRIK/RootMotion.FinalIK.<Initiate>d__7.System.IDisposable.Dispose
  void RootMotion::FinalIK::OffsetModifierVRIK::$Initiate$d__7::System_IDisposable_Dispose() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifierVRIK::$Initiate$d__7::System.IDisposable.Dispose");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "System.IDisposable.Dispose", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.OffsetModifierVRIK/RootMotion.FinalIK.<Initiate>d__7.MoveNext
  bool RootMotion::FinalIK::OffsetModifierVRIK::$Initiate$d__7::MoveNext() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifierVRIK::$Initiate$d__7::MoveNext");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "MoveNext", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    return ::il2cpp_utils::RunMethodRethrow<bool, false>(this, ___internal__method);
  }
  // Autogenerated method: RootMotion.FinalIK.OffsetModifierVRIK/RootMotion.FinalIK.<Initiate>d__7.System.Collections.IEnumerator.Reset
  void RootMotion::FinalIK::OffsetModifierVRIK::$Initiate$d__7::System_Collections_IEnumerator_Reset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetModifierVRIK::$Initiate$d__7::System.Collections.IEnumerator.Reset");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "System.Collections.IEnumerator.Reset", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.OffsetPose
  #include "RootMotion/FinalIK/OffsetPose.hpp"
  // Including type: RootMotion.FinalIK.OffsetPose/RootMotion.FinalIK.EffectorLink
  #include "RootMotion/FinalIK/OffsetPose_EffectorLink.hpp"
  // Including type: RootMotion.FinalIK.IKSolverFullBodyBiped
  #include "RootMotion/FinalIK/IKSolverFullBodyBiped.hpp"
  // Including type: UnityEngine.Quaternion
  #include "UnityEngine/Quaternion.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.OffsetPose/RootMotion.FinalIK.EffectorLink[] effectorLinks
  ::ArrayW<::RootMotion::FinalIK::OffsetPose::EffectorLink*>& RootMotion::FinalIK::OffsetPose::dyn_effectorLinks() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetPose::dyn_effectorLinks");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "effectorLinks"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::OffsetPose::EffectorLink*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.OffsetPose.Apply
  void RootMotion::FinalIK::OffsetPose::Apply(::RootMotion::FinalIK::IKSolverFullBodyBiped* solver, float weight) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetPose::Apply");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Apply", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(solver), ::il2cpp_utils::ExtractType(weight)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, solver, weight);
  }
  // Autogenerated method: RootMotion.FinalIK.OffsetPose.Apply
  void RootMotion::FinalIK::OffsetPose::Apply(::RootMotion::FinalIK::IKSolverFullBodyBiped* solver, float weight, ::UnityEngine::Quaternion rotation) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetPose::Apply");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Apply", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(solver), ::il2cpp_utils::ExtractType(weight), ::il2cpp_utils::ExtractType(rotation)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, solver, weight, rotation);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.OffsetPose/RootMotion.FinalIK.EffectorLink
  #include "RootMotion/FinalIK/OffsetPose_EffectorLink.hpp"
  // Including type: RootMotion.FinalIK.IKSolverFullBodyBiped
  #include "RootMotion/FinalIK/IKSolverFullBodyBiped.hpp"
  // Including type: UnityEngine.Quaternion
  #include "UnityEngine/Quaternion.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.FullBodyBipedEffector effector
  ::RootMotion::FinalIK::FullBodyBipedEffector& RootMotion::FinalIK::OffsetPose::EffectorLink::dyn_effector() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetPose::EffectorLink::dyn_effector");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "effector"))->offset;
    return *reinterpret_cast<::RootMotion::FinalIK::FullBodyBipedEffector*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 offset
  ::UnityEngine::Vector3& RootMotion::FinalIK::OffsetPose::EffectorLink::dyn_offset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetPose::EffectorLink::dyn_offset");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "offset"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 pin
  ::UnityEngine::Vector3& RootMotion::FinalIK::OffsetPose::EffectorLink::dyn_pin() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetPose::EffectorLink::dyn_pin");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "pin"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Vector3 pinWeight
  ::UnityEngine::Vector3& RootMotion::FinalIK::OffsetPose::EffectorLink::dyn_pinWeight() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetPose::EffectorLink::dyn_pinWeight");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "pinWeight"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.OffsetPose/RootMotion.FinalIK.EffectorLink.Apply
  void RootMotion::FinalIK::OffsetPose::EffectorLink::Apply(::RootMotion::FinalIK::IKSolverFullBodyBiped* solver, float weight, ::UnityEngine::Quaternion rotation) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::OffsetPose::EffectorLink::Apply");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Apply", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(solver), ::il2cpp_utils::ExtractType(weight), ::il2cpp_utils::ExtractType(rotation)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, solver, weight, rotation);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.PenetrationAvoidance
  #include "RootMotion/FinalIK/PenetrationAvoidance.hpp"
  // Including type: RootMotion.FinalIK.PenetrationAvoidance/RootMotion.FinalIK.Avoider
  #include "RootMotion/FinalIK/PenetrationAvoidance_Avoider.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.PenetrationAvoidance/RootMotion.FinalIK.Avoider[] avoiders
  ::ArrayW<::RootMotion::FinalIK::PenetrationAvoidance::Avoider*>& RootMotion::FinalIK::PenetrationAvoidance::dyn_avoiders() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::PenetrationAvoidance::dyn_avoiders");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "avoiders"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::PenetrationAvoidance::Avoider*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.PenetrationAvoidance.OnModifyOffset
  void RootMotion::FinalIK::PenetrationAvoidance::OnModifyOffset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::PenetrationAvoidance::OnModifyOffset");
    auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "OnModifyOffset", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method);
  }
  // Autogenerated from CppSourceCreator
  // Created by Sc2ad
  // =========================================================================
  // Begin includes
  // Including type: RootMotion.FinalIK.PenetrationAvoidance/RootMotion.FinalIK.Avoider
  #include "RootMotion/FinalIK/PenetrationAvoidance_Avoider.hpp"
  // Including type: RootMotion.FinalIK.PenetrationAvoidance/RootMotion.FinalIK.Avoider/RootMotion.FinalIK.EffectorLink
  #include "RootMotion/FinalIK/PenetrationAvoidance_Avoider_EffectorLink.hpp"
  // Including type: UnityEngine.Transform
  #include "UnityEngine/Transform.hpp"
  // Including type: RootMotion.FinalIK.IKSolverFullBodyBiped
  #include "RootMotion/FinalIK/IKSolverFullBodyBiped.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Transform[] raycastFrom
  ::ArrayW<::UnityEngine::Transform*>& RootMotion::FinalIK::PenetrationAvoidance::Avoider::dyn_raycastFrom() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::PenetrationAvoidance::Avoider::dyn_raycastFrom");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "raycastFrom"))->offset;
    return *reinterpret_cast<::ArrayW<::UnityEngine::Transform*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.Transform raycastTo
  ::UnityEngine::Transform*& RootMotion::FinalIK::PenetrationAvoidance::Avoider::dyn_raycastTo() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::PenetrationAvoidance::Avoider::dyn_raycastTo");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "raycastTo"))->offset;
    return *reinterpret_cast<::UnityEngine::Transform**>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single raycastRadius
  float& RootMotion::FinalIK::PenetrationAvoidance::Avoider::dyn_raycastRadius() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::PenetrationAvoidance::Avoider::dyn_raycastRadius");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "raycastRadius"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public RootMotion.FinalIK.PenetrationAvoidance/RootMotion.FinalIK.Avoider/RootMotion.FinalIK.EffectorLink[] effectors
  ::ArrayW<::RootMotion::FinalIK::PenetrationAvoidance::Avoider::EffectorLink*>& RootMotion::FinalIK::PenetrationAvoidance::Avoider::dyn_effectors() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::PenetrationAvoidance::Avoider::dyn_effectors");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "effectors"))->offset;
    return *reinterpret_cast<::ArrayW<::RootMotion::FinalIK::PenetrationAvoidance::Avoider::EffectorLink*>*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single smoothTimeIn
  float& RootMotion::FinalIK::PenetrationAvoidance::Avoider::dyn_smoothTimeIn() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::PenetrationAvoidance::Avoider::dyn_smoothTimeIn");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "smoothTimeIn"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public System.Single smoothTimeOut
  float& RootMotion::FinalIK::PenetrationAvoidance::Avoider::dyn_smoothTimeOut() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::PenetrationAvoidance::Avoider::dyn_smoothTimeOut");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "smoothTimeOut"))->offset;
    return *reinterpret_cast<float*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: public UnityEngine.LayerMask layers
  ::UnityEngine::LayerMask& RootMotion::FinalIK::PenetrationAvoidance::Avoider::dyn_layers() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::PenetrationAvoidance::Avoider::dyn_layers");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "layers"))->offset;
    return *reinterpret_cast<::UnityEngine::LayerMask*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 offset
  ::UnityEngine::Vector3& RootMotion::FinalIK::PenetrationAvoidance::Avoider::dyn_offset() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::PenetrationAvoidance::Avoider::dyn_offset");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "offset"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 offsetTarget
  ::UnityEngine::Vector3& RootMotion::FinalIK::PenetrationAvoidance::Avoider::dyn_offsetTarget() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::PenetrationAvoidance::Avoider::dyn_offsetTarget");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "offsetTarget"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated instance field getter
  // Get instance field: private UnityEngine.Vector3 offsetV
  ::UnityEngine::Vector3& RootMotion::FinalIK::PenetrationAvoidance::Avoider::dyn_offsetV() {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::PenetrationAvoidance::Avoider::dyn_offsetV");
    auto ___internal__instance = this;
    static auto ___internal__field__offset = THROW_UNLESS(il2cpp_utils::FindField(___internal__instance, "offsetV"))->offset;
    return *reinterpret_cast<::UnityEngine::Vector3*>(reinterpret_cast<char*>(this) + ___internal__field__offset);
  }
  // Autogenerated method: RootMotion.FinalIK.PenetrationAvoidance/RootMotion.FinalIK.Avoider.Solve
  void RootMotion::FinalIK::PenetrationAvoidance::Avoider::Solve(::RootMotion::FinalIK::IKSolverFullBodyBiped* solver, float weight) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::PenetrationAvoidance::Avoider::Solve");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Solve", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(solver), ::il2cpp_utils::ExtractType(weight)})));
    ::il2cpp_utils::RunMethodRethrow<void, false>(this, ___internal__method, solver, weight);
  }
  // Autogenerated method: RootMotion.FinalIK.PenetrationAvoidance/RootMotion.FinalIK.Avoider.GetOffsetTarget
  ::UnityEngine::Vector3 RootMotion::FinalIK::PenetrationAvoidance::Avoider::GetOffsetTarget(::RootMotion::FinalIK::IKSolverFullBodyBiped* solver) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::PenetrationAvoidance::Avoider::GetOffsetTarget");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "GetOffsetTarget", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(solver)})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method, solver);
  }
  // Autogenerated method: RootMotion.FinalIK.PenetrationAvoidance/RootMotion.FinalIK.Avoider.Raycast
  ::UnityEngine::Vector3 RootMotion::FinalIK::PenetrationAvoidance::Avoider::Raycast(::UnityEngine::Vector3 from, ::UnityEngine::Vector3 to) {
    static auto ___internal__logger = ::Logger::get().WithContext("::RootMotion::FinalIK::PenetrationAvoidance::Avoider::Raycast");
    static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "Raycast", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(from), ::il2cpp_utils::ExtractType(to)})));
    return ::il2cpp_utils::RunMethodRethrow<::UnityEngine::Vector3, false>(this, ___internal__method, from, to);
  }
  