s
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class DataBezier {
|
||||
/// <summary> 是否是a </summary>
|
||||
public bool isA;
|
||||
/// <summary> 关联的边 </summary>
|
||||
public DataSide side;
|
||||
/// <summary> 位置 </summary>
|
||||
public Vector3 position => isA ? side.aBezier : side.bBezier;
|
||||
|
||||
public void SetBezierPosition(Vector3 value) {
|
||||
if (isA) { side.SetBezierPositionA(value); }
|
||||
else { side.SetBezierPositionB(value); }
|
||||
side.plate.UpdateVisual();
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 26504492cb699964aad1334e6c272c90
|
||||
guid: 72061d1b84a6a8b41978089a92f87ccb
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
@@ -0,0 +1,24 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary> 2D边界数据 </summary>
|
||||
public class DataBorder {
|
||||
public readonly float minX = 0;
|
||||
public readonly float maxX = 0;
|
||||
public readonly float minY = 0;
|
||||
public readonly float maxY = 0;
|
||||
/// <summary> 2D边界数据 </summary>
|
||||
public DataBorder(float minX, float maxX, float minY, float maxY) {
|
||||
this.minX = minX; this.maxX = maxX;
|
||||
this.minY = minY; this.maxY = maxY;
|
||||
}
|
||||
/// <summary> 边界宽 </summary>
|
||||
public float Wide => maxX - minX;
|
||||
/// <summary> 边界高 </summary>
|
||||
public float High => maxY - minY;
|
||||
/// <summary> 最小点 </summary>
|
||||
public Vector3 MinPoint => new Vector3(minX, minY, 0);
|
||||
/// <summary> 最大点 </summary>
|
||||
public Vector3 MaxPoint => new Vector3(maxX, maxY, 0);
|
||||
}
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e7f89410b01930c418b1df0a10a9f4cc
|
||||
guid: 402c90a27e984c3448d7d1aec8ea3e78
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
@@ -0,0 +1,16 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class DataConnector {
|
||||
|
||||
#region 核心数据
|
||||
public Vector3 aPoint;
|
||||
public Vector3 bPoint;
|
||||
#endregion
|
||||
|
||||
#region 可视化数据
|
||||
/// <summary> 可视化对象 </summary>
|
||||
public PrefabConnector visual;
|
||||
#endregion
|
||||
}
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 538ffda5b096d9d4cb1916697828a300
|
||||
guid: 2aa5648d6f9298f4ab08f95a6cf4927a
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
@@ -1,25 +0,0 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class DataFindBezier {
|
||||
|
||||
/// <summary> 有效的点 </summary>
|
||||
public bool IsValid => plate != null && point != null;
|
||||
|
||||
#region 输入
|
||||
/// <summary> 位置 (需要和点同一个坐标系) </summary>
|
||||
public Vector3 position;
|
||||
/// <summary> 板片数据 </summary>
|
||||
public List<DataPlate> datas;
|
||||
#endregion
|
||||
|
||||
#region 输出
|
||||
/// <summary> 是前点(-) </summary>
|
||||
public bool isFront;
|
||||
/// <summary> 查询到的板片 </summary>
|
||||
public DataPlate plate;
|
||||
/// <summary> 查询到的点 </summary>
|
||||
public DataPoint point;
|
||||
#endregion
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class DataFindPoint {
|
||||
|
||||
/// <summary> 有效的板片 </summary>
|
||||
public bool IsValidPlate => plate != null;
|
||||
/// <summary> 有效的点 </summary>
|
||||
public bool IsValidPoint => point != null;
|
||||
|
||||
#region 输入
|
||||
/// <summary> 位置 (需要和点同一个坐标系) </summary>
|
||||
public Vector3 position;
|
||||
/// <summary> 板片数据 </summary>
|
||||
public List<DataPlate> datas;
|
||||
#endregion
|
||||
|
||||
#region 输出
|
||||
/// <summary> 查询到的板片 </summary>
|
||||
public DataPlate plate;
|
||||
/// <summary> 查询到的点 </summary>
|
||||
public DataPoint point;
|
||||
#endregion
|
||||
}
|
||||
@@ -3,24 +3,14 @@ using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class DataInsertPoint {
|
||||
|
||||
/// <summary> 有效的</summary>
|
||||
public bool IsValid => plate != null && aPoint != null && bPoint != null;
|
||||
|
||||
#region 输入
|
||||
/// <summary> 位置 (需要和点同一个坐标系) </summary>
|
||||
public Vector3 position;
|
||||
/// <summary> 板片数据 </summary>
|
||||
public List<DataPlate> datas;
|
||||
#endregion
|
||||
|
||||
#region 输出
|
||||
/// <summary> 执行操作的板片 </summary>
|
||||
public DataPlate plate;
|
||||
/// <summary> A点 </summary>
|
||||
public DataPoint aPoint;
|
||||
/// <summary> B点 </summary>
|
||||
public DataPoint bPoint;
|
||||
#endregion
|
||||
|
||||
/// <summary> 关联的线段 </summary>
|
||||
public DataSide side;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary> 交点信息 </summary>
|
||||
public class DataIntersect {
|
||||
public readonly DataSide side;
|
||||
public readonly Vector3 position;
|
||||
/// <summary> 交点信息 </summary>
|
||||
public DataIntersect(DataSide side, Vector3 position) {
|
||||
this.side = side;
|
||||
this.position = position;
|
||||
}
|
||||
/// <summary> 是否相交 </summary>
|
||||
public bool isIntersect;
|
||||
/// <summary> 交点 </summary>
|
||||
public Vector3 intersectPoint;
|
||||
}
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 178fdb6bf03219a419be9c9661e25a5f
|
||||
guid: a8a4a29bf6f0fa14294e815ac39c81ad
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
@@ -0,0 +1,10 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary>
|
||||
/// 标记数据
|
||||
/// </summary>
|
||||
public class DataMark {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 61c3a2815406bfa4190a319d431b8fc5
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,25 +1,19 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UIElements;
|
||||
|
||||
/// <summary>
|
||||
/// 鼠标输入参数
|
||||
/// </summary>
|
||||
public class DataMouseInput {
|
||||
public Vector3 ScreenPosition;
|
||||
/// <summary> 鼠标输入参数 </summary>
|
||||
public DataMouseInput() { }
|
||||
/// <summary> 鼠标滚动量 </summary>
|
||||
public float ScrollWheel;
|
||||
public DataMouseInput(MouseDownEvent evt) {
|
||||
ScreenPosition = evt.localMousePosition;
|
||||
}
|
||||
public DataMouseInput(MouseMoveEvent evt) {
|
||||
ScreenPosition = evt.localMousePosition;
|
||||
}
|
||||
public DataMouseInput(MouseUpEvent evt) {
|
||||
ScreenPosition = evt.localMousePosition;
|
||||
}
|
||||
public DataMouseInput(MouseOutEvent evt) {
|
||||
ScreenPosition = evt.localMousePosition;
|
||||
}
|
||||
public DataMouseInput(WheelEvent evt) {
|
||||
ScreenPosition = evt.localMousePosition;
|
||||
ScrollWheel = evt.delta.y;
|
||||
}
|
||||
/// <summary> 视图坐标 </summary>
|
||||
public Vector3 ViewPosition;
|
||||
/// <summary> 世界坐标 </summary>
|
||||
public Vector3 WorldPosition;
|
||||
/// <summary> 屏幕坐标 </summary>
|
||||
public Vector3 ScreenPosition;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d06cc200114296b4c9aef60a8def59b9
|
||||
guid: b9de608d5b0294a4a88d16ba5fdabfdc
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c55842ff76486fd458f30d05c0a5d2fa
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,21 +0,0 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Networking;
|
||||
|
||||
public abstract class DataNetwork {
|
||||
public event Action<string> OnError;
|
||||
public event Action<string> OnCallback;
|
||||
|
||||
public readonly string url;
|
||||
public DataNetwork(string url) => this.url = url;
|
||||
|
||||
public abstract IEnumerator IWebRequest();
|
||||
|
||||
public virtual void RequestResultHandle(UnityWebRequest web) {
|
||||
bool isDone = !web.isDone || web.result != UnityWebRequest.Result.Success;
|
||||
if (isDone) { OnCallback?.Invoke(web.downloadHandler.text); }
|
||||
else { OnError?.Invoke(web.downloadHandler.text); }
|
||||
}
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Networking;
|
||||
|
||||
public class DataNetworkGet : DataNetwork {
|
||||
public DataNetworkGet(string url) : base(url) { }
|
||||
|
||||
public override IEnumerator IWebRequest() {
|
||||
using (UnityWebRequest web = UnityWebRequest.Get(url)) {
|
||||
yield return web.SendWebRequest();
|
||||
RequestResultHandle(web);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Networking;
|
||||
|
||||
public class DataNetworkGetTexture : DataNetwork {
|
||||
public Action<Texture2D> action;
|
||||
public DataNetworkGetTexture(string url, Action<Texture2D> action) : base(url) => this.action = action;
|
||||
|
||||
public override IEnumerator IWebRequest() {
|
||||
using (UnityWebRequest web = UnityWebRequestTexture.GetTexture(url)) {
|
||||
yield return web.SendWebRequest();
|
||||
RequestResultHandle(web);
|
||||
}
|
||||
}
|
||||
public override void RequestResultHandle(UnityWebRequest web) {
|
||||
base.RequestResultHandle(web);
|
||||
bool isDone = !web.isDone || web.result != UnityWebRequest.Result.Success;
|
||||
if (isDone) { action?.Invoke((web.downloadHandler as DownloadHandlerTexture).texture); }
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d878ccfee24dcb643a5969a41747030f
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,16 +0,0 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Networking;
|
||||
|
||||
public class DataNetworkPostForm : DataNetwork {
|
||||
public readonly WWWForm form;
|
||||
public DataNetworkPostForm(string url, WWWForm form) : base(url) => this.form = form;
|
||||
|
||||
public override IEnumerator IWebRequest() {
|
||||
using (UnityWebRequest web = UnityWebRequest.Post(url, form)) {
|
||||
yield return web.SendWebRequest();
|
||||
RequestResultHandle(web);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 94c1d521794afc841b26a36e6e873c59
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,24 +0,0 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Networking;
|
||||
|
||||
public class DataNetworkPostJson : DataNetwork {
|
||||
public readonly string json;
|
||||
public DataNetworkPostJson(string url, string json) : base(url) => this.json = json;
|
||||
|
||||
public override IEnumerator IWebRequest() {
|
||||
byte[] postBytes = System.Text.Encoding.Default.GetBytes(json);
|
||||
#if UNITY_2022
|
||||
using (UnityWebRequest web = UnityWebRequest.PostWwwForm(url, "POST")) {
|
||||
#else
|
||||
using (UnityWebRequest web = UnityWebRequest.Post(url, "POST")) {
|
||||
#endif
|
||||
web.uploadHandler.Dispose();
|
||||
web.uploadHandler = new UploadHandlerRaw(postBytes);
|
||||
web.SetRequestHeader("Content-Type", "application/json");
|
||||
yield return web.SendWebRequest();
|
||||
RequestResultHandle(web);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bf7743cdb35457b448a4b426a9c4a2af
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,16 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class DataLine {
|
||||
public Vector3 a;
|
||||
public Vector3 b;
|
||||
|
||||
/// <summary> 曲线起点的距离 </summary>
|
||||
public float origin;
|
||||
|
||||
/// <summary> 线段距离 </summary>
|
||||
public float Distance => Vector3.Distance(a, b);
|
||||
/// <summary> 线段方向 </summary>
|
||||
public Vector3 Direction => b - a;
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cb5a40cc1c1a0ed478a2b46bec653c2c
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -4,30 +4,67 @@ using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class DataPlate {
|
||||
/// <summary> 核心模块 </summary>
|
||||
private ModuleCore ModuleCore => ModuleCore.I;
|
||||
/// <summary> 设计可视化模块 </summary>
|
||||
private ModuleVisual<DataPlate> VisualDesign => ModuleCore.VisualDesign;
|
||||
/// <summary> 烘焙可视化模块 </summary>
|
||||
private ModuleVisual<DataPlate> VisualBaking => ModuleCore.VisualBaking;
|
||||
/// <summary> 简单多边形算法模块 </summary>
|
||||
private ModuleAlgorithm<DataPlate> AlgorithmSimplePolygon => ModuleCore.AlgorithmSimplePolygon;
|
||||
/// <summary> 细分多边形算法模块 </summary>
|
||||
private ModuleAlgorithm<DataPlate> AlgorithmSubdivisionPolygon => ModuleCore.AlgorithmSubdivisionPolygon;
|
||||
|
||||
public void UpdateVisual(bool recalculate = true) {
|
||||
if (recalculate) {
|
||||
//简单多边形计算
|
||||
//AlgorithmSimplePolygon.Compute(this);
|
||||
//细分多边形计算
|
||||
AlgorithmSubdivisionPolygon.Compute(this);
|
||||
}
|
||||
//生成可视化内容
|
||||
VisualDesign.UpdateVisual(this);
|
||||
//生成烘焙内容
|
||||
VisualBaking.UpdateVisual(this);
|
||||
}
|
||||
|
||||
#region 核心数据
|
||||
/// <summary> 边缘平滑度 </summary>
|
||||
public float edgeSmooth = 0.01f;
|
||||
/// <summary> 板片位置(本地坐标系) </summary>
|
||||
public Vector3 position;
|
||||
/// <summary> 设计点 </summary>
|
||||
public float smooth = 0.01f;
|
||||
/// <summary> 板片设计视图的位置(本地坐标系) </summary>
|
||||
public Vector3 designPosition;
|
||||
/// <summary> 板片烘焙视图的位置(本地坐标系) </summary>
|
||||
public Vector3 bakingPosition;
|
||||
/// <summary> 板片烘焙视图的旋转(本地坐标系) </summary>
|
||||
public Vector3 bakingEulerAngles;
|
||||
/// <summary> 点 </summary>
|
||||
public List<DataPoint> points = new List<DataPoint>();
|
||||
/// <summary> 边 </summary>
|
||||
public List<DataSide> sides = new List<DataSide>();
|
||||
#endregion
|
||||
|
||||
#region 次要数据
|
||||
/// <summary> 平面网格 </summary>
|
||||
public Mesh polygon;
|
||||
/// <summary> 边界数据 </summary>
|
||||
public DataBorder border;
|
||||
/// <summary> 边缘点 </summary>
|
||||
public List<Vector3> edgePoints = new List<Vector3>();
|
||||
public List<Vector3> edgePoints;
|
||||
/// <summary> 设计网格 </summary>
|
||||
public Mesh designMesh;
|
||||
|
||||
/// <summary> 三角形数据 </summary>
|
||||
public List<DataTriangle> triangles;
|
||||
|
||||
/// <summary> 顶点网格 </summary>
|
||||
public GridTool<DataVertex> vertexGrid;
|
||||
#endregion
|
||||
|
||||
#region 可视化数据
|
||||
/// <summary> 可视化对象 </summary>
|
||||
public Transform transform;
|
||||
/// <summary> 可视化多边形网格 </summary>
|
||||
public MeshFilter polygonMeshFilter;
|
||||
/// <summary> 可视化边缘线 </summary>
|
||||
public LineRenderer edgeLineRenderer;
|
||||
public ModulePrefab<DataPlate> design;
|
||||
/// <summary> 可视化对象 </summary>
|
||||
public ModulePrefab<DataPlate> baking;
|
||||
/// <summary> 安排点 </summary>
|
||||
public FixedArrange arrange;
|
||||
#endregion
|
||||
|
||||
}
|
||||
@@ -10,28 +10,12 @@ public class DataPoint {
|
||||
public DataPoint(DataPlate plate) => this.plate = plate;
|
||||
|
||||
#region 核心数据
|
||||
/// <summary> 点前(-) 是否是曲线 </summary>
|
||||
public bool isCurveFront;
|
||||
/// <summary> 点后(+) 是否是曲线 </summary>
|
||||
public bool isCurveAfter;
|
||||
/// <summary> 设计点位置(本地坐标系) </summary>
|
||||
public Vector3 position;
|
||||
/// <summary> 贝塞尔曲线前(-) </summary>
|
||||
public Vector3 frontBezier;
|
||||
/// <summary> 贝塞尔曲线后(+) </summary>
|
||||
public Vector3 afterBezier;
|
||||
#endregion
|
||||
|
||||
#region 可视化数据
|
||||
/// <summary> 可视化对象 </summary>
|
||||
public Transform transform;
|
||||
/// <summary> 可视化贝塞尔点前(-) </summary>
|
||||
public Transform frontBezierTransform;
|
||||
/// <summary> 可视化贝塞尔点后(+) </summary>
|
||||
public Transform afterBezierTransform;
|
||||
/// <summary> 可视化贝塞尔线前(-) </summary>
|
||||
public LineRenderer frontBezierLineRenderer;
|
||||
/// <summary> 可视化贝塞尔线后(+) </summary>
|
||||
public LineRenderer afterBezierLineRenderer;
|
||||
public ModulePrefab<DataPoint> visual;
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public enum Bezier {
|
||||
一阶 = 0, 二阶 = 1, 三阶 = 2
|
||||
}
|
||||
public class DataSide {
|
||||
/// <summary> 绑定的板片 </summary>
|
||||
public readonly DataPlate plate;
|
||||
/// <summary> 初始化 </summary>
|
||||
public DataSide(DataPlate plate) => this.plate = plate;
|
||||
|
||||
#region 核心数据
|
||||
/// <summary> 贝塞尔曲线阶数 </summary>
|
||||
public Bezier bezier;
|
||||
/// <summary> 起点 </summary>
|
||||
public DataPoint aPoint;
|
||||
/// <summary> 终点 </summary>
|
||||
public DataPoint bPoint;
|
||||
/// <summary> 贝塞尔曲线前(-) </summary>
|
||||
public Vector3 aBezier;
|
||||
/// <summary> 贝塞尔曲线后(+) </summary>
|
||||
public Vector3 bBezier;
|
||||
#endregion
|
||||
|
||||
#region 次要数据
|
||||
/// <summary> 边长度 </summary>
|
||||
public float length;
|
||||
/// <summary> 缝合数据 </summary>
|
||||
public DataSuture suture;
|
||||
/// <summary> 边缘点 </summary>
|
||||
public Vector3[] positions = new Vector3[0];
|
||||
/// <summary> 边缘线 </summary>
|
||||
public DataLine[] lines = new DataLine[0];
|
||||
/// <summary> 边缘顶点数据 </summary>
|
||||
public DataVertex[] vertices = new DataVertex[0];
|
||||
#endregion
|
||||
|
||||
#region 可视化内容
|
||||
/// <summary> 可视化边缘线 </summary>
|
||||
public ModulePrefab<DataSide> design;
|
||||
#endregion
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d40ac12110b85ce4daf740db4dd0a5ef
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,30 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class DataVertex {
|
||||
/// <summary> 是否是有效顶点 </summary>
|
||||
public bool isValid;
|
||||
/// <summary> 设计视图中位置 </summary>
|
||||
public Vector3 design;
|
||||
/// <summary> 烘焙视图中位置 </summary>
|
||||
public Vector3 baking;
|
||||
|
||||
/// <summary> 上 </summary>
|
||||
public DataVertex above;
|
||||
/// <summary> 下 </summary>
|
||||
public DataVertex below;
|
||||
/// <summary> 左 </summary>
|
||||
public DataVertex left;
|
||||
/// <summary> 右 </summary>
|
||||
public DataVertex right;
|
||||
|
||||
/// <summary> 左上 </summary>
|
||||
public DataVertex leftAbove;
|
||||
/// <summary> 左下 </summary>
|
||||
public DataVertex leftBelow;
|
||||
/// <summary> 右上 </summary>
|
||||
public DataVertex rightAbove;
|
||||
/// <summary> 右下 </summary>
|
||||
public DataVertex rightBelow;
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: de6bdf5f7fa27c4409fa7179f281284d
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b4c187df8599632449d401e9840a5bf9
|
||||
guid: de9e8e0217c52a447a49c55f818131ef
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
|
||||
@@ -3,31 +3,17 @@ using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class DataPolygon {
|
||||
private readonly DataPlate dataPlate;
|
||||
public DataPolygon(DataPlate dataPlate) => this.dataPlate = dataPlate;
|
||||
|
||||
/// <summary> 边缘平滑度 </summary>
|
||||
public float edgeSmooth => dataPlate.edgeSmooth;
|
||||
/// <summary> 设计点 </summary>
|
||||
public List<DataPoint> points => dataPlate.points;
|
||||
/// <summary> 边缘点 </summary>
|
||||
public List<Vector3> edgePoints {
|
||||
get => dataPlate.edgePoints;
|
||||
set => dataPlate.edgePoints = value;
|
||||
}
|
||||
#region 次要数据
|
||||
/// <summary> 平面网格 </summary>
|
||||
public Mesh polygon {
|
||||
get => dataPlate.polygon;
|
||||
set => dataPlate.polygon = value;
|
||||
}
|
||||
|
||||
#region 参数
|
||||
|
||||
public Mesh mesh;
|
||||
/// <summary> 三角形数据 </summary>
|
||||
public List<DataTriangle> triangles;
|
||||
#endregion
|
||||
|
||||
#region 缓存
|
||||
/// <summary> 三角形 </summary>
|
||||
public List<DataTriangle> triangles = new List<DataTriangle>();
|
||||
#region 可视化数据
|
||||
/// <summary> 可视化对象 </summary>
|
||||
public MeshFilter meshFilter;
|
||||
#endregion
|
||||
|
||||
}
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class DataPopup {
|
||||
public string name;
|
||||
public string content;
|
||||
public Action callback;
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 528676abe5379b9478c1c59c6c2d2274
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 152682a505646cc41a3bb70493adf97d
|
||||
guid: 90a78d920e0cdd4458a7c0c93646c461
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
@@ -0,0 +1,34 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class DataSuture {
|
||||
/// <summary> 核心模块 </summary>
|
||||
private ModuleCore ModuleCore => ModuleCore.I;
|
||||
/// <summary> 简单多边形算法模块 </summary>
|
||||
private ModuleAlgorithm<DataSutureSide> AlgorithmSutureSide => ModuleCore.AlgorithmSutureSide;
|
||||
|
||||
public readonly DataSutureSide a;
|
||||
public readonly DataSutureSide b;
|
||||
public DataSuture(DataSide aSide, DataSide bSide) {
|
||||
a = new DataSutureSide(aSide, this);
|
||||
b = new DataSutureSide(bSide, this);
|
||||
Update();
|
||||
}
|
||||
|
||||
public void Update() {
|
||||
AlgorithmSutureSide.Compute(a);
|
||||
AlgorithmSutureSide.Compute(b);
|
||||
}
|
||||
|
||||
/// <summary> 缝合长度 </summary>
|
||||
public float length => this.SutureLength();
|
||||
|
||||
#region 可视化内容
|
||||
/// <summary> 可视化内容 </summary>
|
||||
public ModulePrefab<DataSuture> design;
|
||||
/// <summary> 可视化对象 </summary>
|
||||
public ModulePrefab<DataSuture> baking;
|
||||
#endregion
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: db7180cdc51fba54ebc54927eaa2c246
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,59 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary>
|
||||
/// 缝合边
|
||||
/// </summary>
|
||||
public class DataSutureSide {
|
||||
/// <summary> 关联的边 </summary>
|
||||
public readonly DataSide side;
|
||||
/// <summary> 关联的缝合数据 </summary>
|
||||
public readonly DataSuture suture;
|
||||
/// <summary> 缝合边 </summary>
|
||||
public DataSutureSide(DataSide side, DataSuture suture) {
|
||||
this.side = side;
|
||||
this.suture = suture;
|
||||
}
|
||||
|
||||
#region 核心数据
|
||||
/// <summary> 是否反转 </summary>
|
||||
public bool isReversal;
|
||||
#endregion
|
||||
|
||||
#region 次要数据
|
||||
|
||||
/// <summary> 边最大长度 </summary>
|
||||
public float MaxLength => side.length;
|
||||
/// <summary> 边缘顶点数据 </summary>
|
||||
public DataVertex[] Vertices => side.vertices;
|
||||
/// <summary> 设计视图板片位置 </summary>
|
||||
public Vector3 PlateDesignPosition => side.plate.designPosition;
|
||||
/// <summary> 烘焙视图板片位置 </summary>
|
||||
public Vector3 PlateBakingPosition => side.plate.bakingPosition;
|
||||
/// <summary> 烘焙视图板片位置 </summary>
|
||||
public Vector3 PlateBakingEulerAngles => side.plate.bakingEulerAngles;
|
||||
|
||||
/// <summary> 设计视图顶点位置 </summary>
|
||||
public Vector3[] designPositions;
|
||||
/// <summary> 设计视图A点位置 </summary>
|
||||
public Vector3 DesignPosintA => designPositions[0];
|
||||
/// <summary> 设计视图B点位置 </summary>
|
||||
public Vector3 DesignPosintB => designPositions[designPositions.Length - 1];
|
||||
|
||||
/// <summary> 烘焙视图顶点位置 </summary>
|
||||
public Vector3[] bakingPositions;
|
||||
/// <summary> 烘焙视图A点位置 </summary>
|
||||
public Vector3 BakingPosintA => bakingPositions[0];
|
||||
/// <summary> 烘焙视图B点位置 </summary>
|
||||
public Vector3 BakingPosintB => bakingPositions[bakingPositions.Length - 1];
|
||||
|
||||
#endregion
|
||||
|
||||
#region 可视化数据
|
||||
/// <summary> 可视化对象 </summary>
|
||||
public ModulePrefab<DataSutureSide> design;
|
||||
/// <summary> 可视化对象 </summary>
|
||||
public ModulePrefab<DataSutureSide> baking;
|
||||
#endregion
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cd87f3680da7d114ca6d49384e0212a4
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -2,7 +2,7 @@ using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class DataTriangle {
|
||||
public struct DataTriangle {
|
||||
public Vector3 a;
|
||||
public Vector3 b;
|
||||
public Vector3 c;
|
||||
@@ -1,10 +0,0 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class DataUIMouseInput {
|
||||
public float ScrollWheel;
|
||||
public Vector3 ViewPosition;
|
||||
public Vector3 WorldPosition;
|
||||
public Vector3 ScreenPosition;
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: aa77786584d959a418d65b0eb3066b4d
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ada184a497ebf2c429faa290f243c729
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,8 +0,0 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Video;
|
||||
|
||||
public abstract class DataVideo {
|
||||
public abstract void SetPlayer(VideoPlayer videoPlayer);
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9a01c571f20c209448f6d8b551072ad1
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,20 +0,0 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Video;
|
||||
|
||||
public class DataVideoClip : DataVideo {
|
||||
public readonly VideoClip videoClip;
|
||||
public DataVideoClip(VideoClip videoClip) {
|
||||
this.videoClip = videoClip;
|
||||
}
|
||||
public override void SetPlayer(VideoPlayer videoPlayer) {
|
||||
videoPlayer.source = VideoSource.VideoClip;
|
||||
videoPlayer.clip = videoClip;
|
||||
}
|
||||
public static List<DataVideoClip> ToData(List<VideoClip> list) {
|
||||
List<DataVideoClip> dataVideoClips = new List<DataVideoClip>();
|
||||
list.ForEach(obj => dataVideoClips.Add(new DataVideoClip(obj)));
|
||||
return dataVideoClips;
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c2c44e2fe4d55a44588a6646e4b579ed
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,20 +0,0 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Video;
|
||||
|
||||
public class DataVideoWeb : DataVideo {
|
||||
public readonly string url;
|
||||
public DataVideoWeb(string url) {
|
||||
this.url = url;
|
||||
}
|
||||
public override void SetPlayer(VideoPlayer videoPlayer) {
|
||||
videoPlayer.source = VideoSource.Url;
|
||||
videoPlayer.url = url;
|
||||
}
|
||||
public static List<DataVideoWeb> ToData(List<string> list) {
|
||||
List<DataVideoWeb> dataVideoWebs = new List<DataVideoWeb>();
|
||||
list.ForEach(obj => dataVideoWebs.Add(new DataVideoWeb(obj)));
|
||||
return dataVideoWebs;
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fb2c58a6389cbd648b622a45ed1cd861
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,13 +0,0 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Video;
|
||||
|
||||
public class DataVideoImage {
|
||||
public DataVideo dataVideo;
|
||||
public Sprite sprite;
|
||||
public DataVideoImage(VideoClip clip, Sprite sprite) {
|
||||
this.dataVideo = new DataVideoClip(clip);
|
||||
this.sprite = sprite;
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9d1c81e92812eaa47a063c2917c8ea33
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user