namespace ChivaXR.VR
{
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CVR_MathTool
{
///
/// 根据ToolAxis获取分量为Value的Vec3值
///
///
///
///
public static Vector3 GetToolAxisVector3(ToolAxis axis, float value)
{
switch (axis)
{
case ToolAxis.x:
return new Vector3(value, 0, 0);
case ToolAxis.y:
return new Vector3(0, value, 0);
case ToolAxis.z:
return new Vector3(0, 0, value);
}
return Vector3.zero;
}
///
/// 根据ToolAxis获取Vec3的分量值
///
///
///
///
public static float GetToolAxisVec3Value(ToolAxis axis, Vector3 vec3)
{
switch (axis)
{
case ToolAxis.x:
return vec3.x;
case ToolAxis.y:
return vec3.y;
case ToolAxis.z:
return vec3.z;
}
return 0;
}
///
/// Vec3消除ToolAxis分量值
///
///
///
///
public static Vector3 Vec3RemoveToolAxisValue(ToolAxis axis, Vector3 vec3)
{
switch (axis)
{
case ToolAxis.x:
return new Vector3(0, vec3.y, vec3.z);
case ToolAxis.y:
return new Vector3(vec3.x, 0, vec3.z);
case ToolAxis.z:
return new Vector3(vec3.x, vec3.y, 0);
}
return Vector3.zero;
}
///
/// 获取ToolAxis的Vector3
///
///
///
public static Vector3 GetToolAxisVec3(ToolAxis axis)
{
switch (axis)
{
case ToolAxis.x:
return Vector3.right;
case ToolAxis.y:
return Vector3.up;
case ToolAxis.z:
return Vector3.forward;
}
return Vector3.zero;
}
///
/// 获取ToolAxis相对于Transform的Local -Vector3
///
///
///
///
public static Vector3 GetToolAxisLocalVec3(Transform item, ToolAxis axis)
{
switch (axis)
{
case ToolAxis.x:
return item.right;
case ToolAxis.y:
return item.up;
case ToolAxis.z:
return item.forward;
}
return Vector3.zero;
}
}
}