mirror of
https://github.com/Outer-Wilds-New-Horizons/new-horizons.git
synced 2025-12-11 20:15:44 +01:00
51 lines
1.5 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|