Files
old-profesor-atom/Profesor Atom/Library/metadata/78/783750eec4c41da428b7651515146d14

168 lines
8.8 KiB
Plaintext
Raw Normal View History

2017-05-17 12:25:25 +03:00
w#5.6.1f1<00><><EFBFBD><EFBFBD><00><><EFBFBD>0<05><><EFBFBD><EFBFBD>L.`?^<5E>0D7<00><><EFBFBD><EFBFBD><EFBFBD><00><00><00><><00><00><00><00><00><00><00><00><00>#<00><00>+H<00>3<00><><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>@<00><00><00> Q<00>j<00>
<00><00>< <00><00>H H<00>Z<00><><EFBFBD><EFBFBD> <00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>@<00><00><00>Q<00>j<00><00><00>g<00><00><00><00><00><00>#<00><00>+v~<00><00><><00><00><><00><00><><00><00><><00><00><><00><00><><00><00><><00><00><><00><00><><00><00><> <00><00><>!<00><00><>"<00><00><>#<00><00>$<00><00>%<00><00>&<00><00>#<00><><EFBFBD><EFBFBD>'<00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>(<00><00><00><00>)H<00>j<00><><EFBFBD><EFBFBD><EFBFBD>*<00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>+@<00><00><00>,Q<00>j<00>-<00><00>*.<00><00>8/AssetMetaDataguiddata[0]data[1]data[2]data[3]pathNametimeCreatedoriginalChangesetoriginalNameoriginalParentHash128originalDigestbytes[0]bytes[1]bytes[2]bytes[3]bytes[4]bytes[5]bytes[6]bytes[7]bytes[8]bytes[9]bytes[10]bytes[11]bytes[12]bytes[13]bytes[14]bytes[15]labelsassetStoreReflicenseType <00><>z{<0E>@<40><05><>5^(<28>H'<00>7<00><><EFBFBD><EFBFBD><EFBFBD><00><00><00><><00> <00><00> <00><00>#.<00>,<00><00><><00> <00><00>#.<00>,H<00><><00><><EFBFBD><EFBFBD><EFBFBD><01>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD> @<00><00><00>
Q<00>j<00> <00><00>5<00><><EFBFBD><EFBFBD> <00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD> <00><00><00><00><00>j<00><><EFBFBD><EFBFBD><EFBFBD><00>H<00><><00><><EFBFBD><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>@<00><00><00>Q<00>j<00>y<00>
<00> <00><00>#.<00>, <00>I@<00><00>X @<00><00>#.<00>,H<00>]<00><><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>@<00><00><00>Q<00>j<00>H<00>h<00><><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD> @<00><00><00>!Q<00>j<00>"H<00>z<00><><EFBFBD><EFBFBD>#<00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>$@<00><00><00>%Q<00>j<00>&MonoImporterPPtr<EditorExtension>m_FileIDm_PathIDm_DefaultReferencesexecutionOrdericonm_UserDatam_AssetBundleNamem_AssetBundleVariants<00><><EFBFBD>8-l'<27><>愁h<E68481>ΐA,<00><00>7<00><><EFBFBD><EFBFBD><EFBFBD><00><00><00><><00><00><00> <00><00>.<00><00><00><><00> <00><00>.<00>H<00><><00><><EFBFBD><EFBFBD><EFBFBD><01>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD> @<00><00><00>
Q<00>j<00> H<00><><00><><EFBFBD><EFBFBD><EFBFBD> <01>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD> @<00><00><00>Q<00>j<00><00><00>(<00><><EFBFBD><EFBFBD><01>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><01><00><00><00><00>j<00><><EFBFBD><EFBFBD><EFBFBD><01>H<00><><00><><EFBFBD><EFBFBD><EFBFBD><01>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>@<00><00><00>Q<00>j<00>y<00>
<00> <00><00>.<00>y<00>< <00><00>.<00><00><00>CH<00>T<00><><EFBFBD><EFBFBD><10>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD> @<00><00><00>!Q<00>j<00>"H<00>`<00><><EFBFBD><EFBFBD>#<10>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>$@<00><00><00>%Q<00>j<00>&H<00>l<00><><EFBFBD><EFBFBD>'<10>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>(@<00><00><00>)Q<00>j<00>*L<00>{+PPtr<EditorExtension>m_FileIDm_PathIDm_DefaultReferencesm_Iconm_ExecutionOrderm_ClassNamem_Namespacem_AssemblyNamem_IsEditorScript<00><00>@<00>y<EFBFBD><00>5<00><>^\a<><61>M<EFBFBD>Q<EFBFBD>| <09>e.<00>s<05>LL<4C>J<EFBFBD>{VQQA<51>ABAssets/SteamVR/InteractionSystem/Core/Scripts/VelocityEstimator.cs<00><>*VelocityEstimator<00>//======= Copyright (c) Valve Corporation, All rights reserved. ===============
//
// Purpose: Estimates the velocity of an object based on change in position
//
//=============================================================================
using UnityEngine;
using System.Collections;
namespace Valve.VR.InteractionSystem
{
//-------------------------------------------------------------------------
public class VelocityEstimator : MonoBehaviour
{
[Tooltip( "How many frames to average over for computing velocity" )]
public int velocityAverageFrames = 5;
[Tooltip( "How many frames to average over for computing angular velocity" )]
public int angularVelocityAverageFrames = 11;
public bool estimateOnAwake = false;
private Coroutine routine;
private int sampleCount;
private Vector3[] velocitySamples;
private Vector3[] angularVelocitySamples;
//-------------------------------------------------
public void BeginEstimatingVelocity()
{
FinishEstimatingVelocity();
routine = StartCoroutine( EstimateVelocityCoroutine() );
}
//-------------------------------------------------
public void FinishEstimatingVelocity()
{
if ( routine != null )
{
StopCoroutine( routine );
routine = null;
}
}
//-------------------------------------------------
public Vector3 GetVelocityEstimate()
{
// Compute average velocity
Vector3 velocity = Vector3.zero;
int velocitySampleCount = Mathf.Min( sampleCount, velocitySamples.Length );
if ( velocitySampleCount != 0 )
{
for ( int i = 0; i < velocitySampleCount; i++ )
{
velocity += velocitySamples[i];
}
velocity *= ( 1.0f / velocitySampleCount );
}
return velocity;
}
//-------------------------------------------------
public Vector3 GetAngularVelocityEstimate()
{
// Compute average angular velocity
Vector3 angularVelocity = Vector3.zero;
int angularVelocitySampleCount = Mathf.Min( sampleCount, angularVelocitySamples.Length );
if ( angularVelocitySampleCount != 0 )
{
for ( int i = 0; i < angularVelocitySampleCount; i++ )
{
angularVelocity += angularVelocitySamples[i];
}
angularVelocity *= ( 1.0f / angularVelocitySampleCount );
}
return angularVelocity;
}
//-------------------------------------------------
public Vector3 GetAccelerationEstimate()
{
Vector3 average = Vector3.zero;
for ( int i = 2 + sampleCount - velocitySamples.Length; i < sampleCount; i++ )
{
if ( i < 2 )
continue;
int first = i - 2;
int second = i - 1;
Vector3 v1 = velocitySamples[first % velocitySamples.Length];
Vector3 v2 = velocitySamples[second % velocitySamples.Length];
average += v2 - v1;
}
average *= ( 1.0f / Time.deltaTime );
return average;
}
//-------------------------------------------------
void Awake()
{
velocitySamples = new Vector3[velocityAverageFrames];
angularVelocitySamples = new Vector3[angularVelocityAverageFrames];
if ( estimateOnAwake )
{
BeginEstimatingVelocity();
}
}
//-------------------------------------------------
private IEnumerator EstimateVelocityCoroutine()
{
sampleCount = 0;
Vector3 previousPosition = transform.position;
Quaternion previousRotation = transform.rotation;
while ( true )
{
yield return new WaitForEndOfFrame();
float velocityFactor = 1.0f / Time.deltaTime;
int v = sampleCount % velocitySamples.Length;
int w = sampleCount % angularVelocitySamples.Length;
sampleCount++;
// Estimate linear velocity
velocitySamples[v] = velocityFactor * ( transform.position - previousPosition );
// Estimate angular velocity
Quaternion deltaRotation = transform.rotation * Quaternion.Inverse( previousRotation );
float theta = 2.0f * Mathf.Acos( Mathf.Clamp( deltaRotation.w, -1.0f, 1.0f ) );
if ( theta > Mathf.PI )
{
theta -= 2.0f * Mathf.PI;
}
Vector3 angularVelocity = new Vector3( deltaRotation.x, deltaRotation.y, deltaRotation.z );
if ( angularVelocity.sqrMagnitude > 0.0f )
{
angularVelocity = theta * velocityFactor * angularVelocity.normalized;
}
angularVelocitySamples[w] = angularVelocity;
previousPosition = transform.position;
previousRotation = transform.rotation;
}
}
}
}
<00><>*VelocityEstimatorValve.VR.InteractionSystemAssembly-CSharp.dll