2021년 4학년 1학기 기업연계프로젝트2 컴퓨터소프트웨어공학과 <원광투어팀> 팀장 : 송유진 팀원 : 김나영, 이경희, 한유진
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

55 lines
1.6 KiB

//========= Copyright 2016-2020, HTC Corporation. All rights reserved. ===========
using HTC.UnityPlugin.Utility;
using UnityEngine;
namespace HTC.UnityPlugin.PoseTracker
{
public class PoseStablizer : BasePoseModifier
{
public float positionThreshold = 0.0005f; // meter
public float rotationThreshold = 0.5f; // degree
private bool firstPose = true;
private RigidPose prevPose;
protected override void OnEnable()
{
base.OnEnable();
ResetFirstPose();
}
public override void ModifyPose(ref RigidPose pose, Transform origin)
{
if (firstPose)
{
firstPose = false;
}
else
{
Vector3 posDiff = prevPose.pos - pose.pos;
if (positionThreshold > 0f || posDiff.sqrMagnitude > positionThreshold * positionThreshold)
{
pose.pos = pose.pos + Vector3.ClampMagnitude(posDiff, positionThreshold);
}
else
{
pose.pos = prevPose.pos;
}
if (rotationThreshold > 0f || Quaternion.Angle(pose.rot, prevPose.rot) > rotationThreshold)
{
pose.rot = Quaternion.RotateTowards(pose.rot, prevPose.rot, rotationThreshold);
}
else
{
pose.rot = prevPose.rot;
}
}
prevPose = pose;
}
public void ResetFirstPose() { firstPose = true; }
}
}