JacopoLevati-Creator 8205730eb5 commit
2025-03-17 12:22:09 +01:00

53 lines
1.4 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace UltimateProceduralPrimitivesFREE
{
public static class Utils
{
public static float Sign(float num)
{
return num < 0 ? -1 : (num > 0 ? 1 : 0);
}
public static Vector3 Sign(Vector3 vector3)
{
var x = vector3.x < 0 ? -1 : (vector3.x > 0 ? 1 : 0);
var y = vector3.y < 0 ? -1 : (vector3.y > 0 ? 1 : 0);
var z = vector3.z < 0 ? -1 : (vector3.z > 0 ? 1 : 0);
return new Vector3(x, y, z);
}
public static Vector3 Mul(Quaternion q, Vector3 v)
{
Vector3 t = 2.0f * Vector3.Cross(new Vector3(q.x, q.y, q.z), v);
return v + q.w * t + Vector3.Cross(new Vector3(q.x, q.y, q.z), t);
}
public static Vector3 MultiplyVec3(Vector3 a, Vector3 b)
{
Vector3 result = new Vector3(a.x * b.x, a.y * b.y, a.z * b.z);
return result;
}
public static Quaternion AxisAngle(Vector3 axis, float angle)
{
float sina, cosa;
sina = Mathf.Sin(0.5f * angle);
cosa = Mathf.Cos(0.5f * angle);
return new Quaternion(axis.x * sina, axis.y * sina, axis.z * sina, cosa);
}
}
}
// public static quaternion AxisAngle(float3 axis, float angle)
// {
// float sina, cosa;
// math.sincos(0.5f * angle, out sina, out cosa);
// return quaternion(float4(axis * sina, cosa));
// }
// public static void sincos(float x, out float s, out float c) { s = sin(x); c = cos(x); }