|
|
|
@@ -4,7 +4,6 @@ using Cryville.Common.Pdt;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Globalization;
|
|
|
|
|
using System.Text.RegularExpressions;
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
|
|
namespace Cryville.Crtr {
|
|
|
|
@@ -185,7 +184,6 @@ namespace Cryville.Crtr {
|
|
|
|
|
public abstract byte Dimension { get; }
|
|
|
|
|
|
|
|
|
|
public abstract void ApplyFrom(Vector parent);
|
|
|
|
|
public abstract void ReplaceFrom(Vector parent);
|
|
|
|
|
public abstract void LerpWith(Vector start, float lerpedTime, ref Vector result);
|
|
|
|
|
public abstract override string ToString();
|
|
|
|
|
public abstract unsafe void ToArray(float* arr);
|
|
|
|
@@ -220,11 +218,6 @@ namespace Cryville.Crtr {
|
|
|
|
|
Value += p.Value;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override void ReplaceFrom(Vector parent) {
|
|
|
|
|
var p = (Vec1)parent;
|
|
|
|
|
Value = p.Value;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override void LerpWith(Vector start, float lerpedTime, ref Vector result) {
|
|
|
|
|
var r = (Vec1)result;
|
|
|
|
|
if (start == null) {
|
|
|
|
@@ -267,11 +260,6 @@ namespace Cryville.Crtr {
|
|
|
|
|
Value += p.Value;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override void ReplaceFrom(Vector parent) {
|
|
|
|
|
var p = (VecI1)parent;
|
|
|
|
|
Value = p.Value;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override void LerpWith(Vector start, float lerpedTime, ref Vector result) {
|
|
|
|
|
var r = (VecI1)result;
|
|
|
|
|
if (start == null) {
|
|
|
|
@@ -314,11 +302,6 @@ namespace Cryville.Crtr {
|
|
|
|
|
Value *= p.Value;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override void ReplaceFrom(Vector parent) {
|
|
|
|
|
var p = (Vec1m)parent;
|
|
|
|
|
Value = p.Value;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override void LerpWith(Vector start, float lerpedTime, ref Vector result) {
|
|
|
|
|
var r = (Vec1m)result;
|
|
|
|
|
if (start == null) {
|
|
|
|
@@ -344,7 +327,7 @@ namespace Cryville.Crtr {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public class Vec2 : Vector {
|
|
|
|
|
float? x, y;
|
|
|
|
|
float x, y;
|
|
|
|
|
|
|
|
|
|
public Vec2() { x = y = 0; }
|
|
|
|
|
public Vec2(float[] v) {
|
|
|
|
@@ -358,13 +341,7 @@ namespace Cryville.Crtr {
|
|
|
|
|
|
|
|
|
|
public override void ApplyFrom(Vector parent) {
|
|
|
|
|
var p = (Vec2)parent;
|
|
|
|
|
x += p.x.GetValueOrDefault(); y += p.y.GetValueOrDefault();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override void ReplaceFrom(Vector parent) {
|
|
|
|
|
var p = (Vec2)parent;
|
|
|
|
|
if (p.x.HasValue) x = p.x;
|
|
|
|
|
if (p.y.HasValue) y = p.y;
|
|
|
|
|
x += p.x; y += p.y;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override void LerpWith(Vector start, float lerpedTime, ref Vector result) {
|
|
|
|
@@ -375,12 +352,12 @@ namespace Cryville.Crtr {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
var s = (Vec2)start;
|
|
|
|
|
r.x = x.HasValue ? (s.x.Value * (1 - lerpedTime) + x.Value * lerpedTime) : s.x.Value;
|
|
|
|
|
r.y = y.HasValue ? (s.y.Value * (1 - lerpedTime) + y.Value * lerpedTime) : s.y.Value;
|
|
|
|
|
r.x = s.x * (1 - lerpedTime) + x * lerpedTime;
|
|
|
|
|
r.y = s.y * (1 - lerpedTime) + y * lerpedTime;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Vector3 ToVector2() {
|
|
|
|
|
return new Vector3(x.Value, y.Value);
|
|
|
|
|
return new Vector3(x, y);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override void CopyTo(Vector dest) {
|
|
|
|
@@ -389,20 +366,17 @@ namespace Cryville.Crtr {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override string ToString() {
|
|
|
|
|
return string.Format("{0},{1}",
|
|
|
|
|
x != null ? x.Value.ToString(CultureInfo.InvariantCulture) : "",
|
|
|
|
|
y != null ? y.Value.ToString(CultureInfo.InvariantCulture) : ""
|
|
|
|
|
);
|
|
|
|
|
return string.Format(CultureInfo.InvariantCulture, "{0},{1}", x, y);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override unsafe void ToArray(float* arr) {
|
|
|
|
|
arr[0] = x.Value;
|
|
|
|
|
arr[1] = y.Value;
|
|
|
|
|
arr[0] = x;
|
|
|
|
|
arr[1] = y;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public class Vec3 : Vector {
|
|
|
|
|
float? x, y, z;
|
|
|
|
|
float x, y, z;
|
|
|
|
|
|
|
|
|
|
public Vec3() { x = y = z = 0; }
|
|
|
|
|
public Vec3(float[] v) {
|
|
|
|
@@ -416,14 +390,7 @@ namespace Cryville.Crtr {
|
|
|
|
|
|
|
|
|
|
public override void ApplyFrom(Vector parent) {
|
|
|
|
|
var p = (Vec3)parent;
|
|
|
|
|
x += p.x.GetValueOrDefault(); y += p.y.GetValueOrDefault(); z += p.z.GetValueOrDefault();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override void ReplaceFrom(Vector parent) {
|
|
|
|
|
var p = (Vec3)parent;
|
|
|
|
|
if (p.x.HasValue) x = p.x;
|
|
|
|
|
if (p.y.HasValue) y = p.y;
|
|
|
|
|
if (p.z.HasValue) z = p.z;
|
|
|
|
|
x += p.x; y += p.y; z += p.z;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override void LerpWith(Vector start, float lerpedTime, ref Vector result) {
|
|
|
|
@@ -435,13 +402,13 @@ namespace Cryville.Crtr {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
var s = (Vec3)start;
|
|
|
|
|
r.x = x.HasValue ? (s.x.Value * (1 - lerpedTime) + x.Value * lerpedTime) : s.x.Value;
|
|
|
|
|
r.y = y.HasValue ? (s.y.Value * (1 - lerpedTime) + y.Value * lerpedTime) : s.y.Value;
|
|
|
|
|
r.z = z.HasValue ? (s.z.Value * (1 - lerpedTime) + z.Value * lerpedTime) : s.z.Value;
|
|
|
|
|
r.x = s.x * (1 - lerpedTime) + x * lerpedTime;
|
|
|
|
|
r.y = s.y * (1 - lerpedTime) + y * lerpedTime;
|
|
|
|
|
r.z = s.z * (1 - lerpedTime) + z * lerpedTime;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Vector3 ToVector3() {
|
|
|
|
|
return new Vector3(x.Value, y.Value, z.Value);
|
|
|
|
|
return new Vector3(x, y, z);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override void CopyTo(Vector dest) {
|
|
|
|
@@ -450,17 +417,13 @@ namespace Cryville.Crtr {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override string ToString() {
|
|
|
|
|
return string.Format("{0},{1},{2}",
|
|
|
|
|
x != null ? x.Value.ToString(CultureInfo.InvariantCulture) : "",
|
|
|
|
|
y != null ? y.Value.ToString(CultureInfo.InvariantCulture) : "",
|
|
|
|
|
z != null ? z.Value.ToString(CultureInfo.InvariantCulture) : ""
|
|
|
|
|
);
|
|
|
|
|
return string.Format(CultureInfo.InvariantCulture, "{0},{1},{2}", x, y, z);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override unsafe void ToArray(float* arr) {
|
|
|
|
|
arr[0] = x.Value;
|
|
|
|
|
arr[1] = y.Value;
|
|
|
|
|
arr[2] = z.Value;
|
|
|
|
|
arr[0] = x;
|
|
|
|
|
arr[1] = y;
|
|
|
|
|
arr[2] = z;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|