2023-03-25 15:15:24 -04:00

51 lines
1.5 KiB
C#

using System.Linq;
using Newtonsoft.Json;
using UnityEngine;
namespace NewHorizons.External.Modules.SerializableData
{
[JsonObject]
public class MMesh
{
public MMesh(MVector3[] vertices, int[] triangles, MVector3[] normals, MVector2[] uv, MVector2[] uv2)
{
this.vertices = vertices;
this.triangles = triangles;
this.normals = normals;
this.uv = uv;
this.uv2 = uv2;
}
public MVector3[] vertices;
public int[] triangles;
public MVector3[] normals;
public MVector2[] uv;
public MVector2[] uv2;
public static implicit operator MMesh(Mesh mesh)
{
return new MMesh
(
mesh.vertices.Select(v => (MVector3)v).ToArray(),
mesh.triangles,
mesh.normals.Select(v => (MVector3)v).ToArray(),
mesh.uv.Select(v => (MVector2)v).ToArray(),
mesh.uv2.Select(v => (MVector2)v).ToArray()
);
}
public static implicit operator Mesh(MMesh mmesh)
{
var mesh = new Mesh();
mesh.vertices = mmesh.vertices.Select(mv => (Vector3)mv).ToArray();
mesh.triangles = mmesh.triangles;
mesh.normals = mmesh.normals.Select(mv => (Vector3)mv).ToArray();
mesh.uv = mmesh.uv.Select(mv => (Vector2)mv).ToArray();
mesh.uv2 = mmesh.uv2.Select(mv => (Vector2)mv).ToArray();
mesh.RecalculateBounds();
return mesh;
}
}
}