初始化项目
This commit is contained in:
@@ -1,18 +0,0 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class DataBezier {
|
||||
/// <summary> 是否是a </summary>
|
||||
public bool isA;
|
||||
/// <summary> 关联的边 </summary>
|
||||
public DataPlateSide 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,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 72061d1b84a6a8b41978089a92f87ccb
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,37 +0,0 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary> 边界数据 </summary>
|
||||
public class DataBorder {
|
||||
/// <summary> 网格细分 </summary>
|
||||
public readonly float smooth = 0.01f;
|
||||
/// <summary> minX </summary>
|
||||
public readonly float minX = 0;
|
||||
/// <summary> maxX </summary>
|
||||
public readonly float maxX = 0;
|
||||
/// <summary> minY </summary>
|
||||
public readonly float minY = 0;
|
||||
/// <summary> maxY </summary>
|
||||
public readonly float maxY = 0;
|
||||
/// <summary> 多边形边缘点 </summary>
|
||||
public readonly Vector3[] points;
|
||||
/// <summary> 边界数据 </summary>
|
||||
public DataBorder(float minX, float maxX, float minY, float maxY, Vector3[] points) {
|
||||
this.minX = minX; this.maxX = maxX;
|
||||
this.minY = minY; this.maxY = maxY;
|
||||
this.points = points;
|
||||
}
|
||||
/// <summary> 边界宽 </summary>
|
||||
public float Wide => maxX - minX;
|
||||
/// <summary> 边界高 </summary>
|
||||
public float High => maxY - minY;
|
||||
/// <summary> 网格宽 </summary>
|
||||
public int GridWide => Mathf.FloorToInt(Wide / smooth) + 1;
|
||||
/// <summary> 网格高 </summary>
|
||||
public int GridHigh => Mathf.FloorToInt(High / smooth) + 1;
|
||||
/// <summary> 最小点 </summary>
|
||||
public Vector3 MinPoint => new Vector3(minX, minY, 0);
|
||||
/// <summary> 最大点 </summary>
|
||||
public Vector3 MaxPoint => new Vector3(maxX, maxY, 0);
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 402c90a27e984c3448d7d1aec8ea3e78
|
||||
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;
|
||||
|
||||
public class DataConnector {
|
||||
|
||||
#region 核心数据
|
||||
public Vector3 aPoint;
|
||||
public Vector3 bPoint;
|
||||
#endregion
|
||||
|
||||
#region 可视化数据
|
||||
/// <summary> 可视化对象 </summary>
|
||||
public PrefabConnector visual;
|
||||
#endregion
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2aa5648d6f9298f4ab08f95a6cf4927a
|
||||
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;
|
||||
|
||||
public class DataInsertPoint {
|
||||
/// <summary> 位置 (需要和点同一个坐标系) </summary>
|
||||
public Vector3 position;
|
||||
/// <summary> 执行操作的板片 </summary>
|
||||
public DataPlate plate;
|
||||
/// <summary> A点 </summary>
|
||||
public DataPoint aPoint;
|
||||
/// <summary> B点 </summary>
|
||||
public DataPoint bPoint;
|
||||
/// <summary> 关联的线段 </summary>
|
||||
public DataSide side;
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 25155dff8d9629a46a71219ab08dd82a
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,18 +0,0 @@
|
||||
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,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a8a4a29bf6f0fa14294e815ac39c81ad
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,10 +0,0 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary>
|
||||
/// 标记数据
|
||||
/// </summary>
|
||||
public class DataMark {
|
||||
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 61c3a2815406bfa4190a319d431b8fc5
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b9de608d5b0294a4a88d16ba5fdabfdc
|
||||
guid: a8717da59b9a2e04ca682f70aaabee0e
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a9716b7730eb4544cae971a8de6cf9d4
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,16 +0,0 @@
|
||||
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;
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cb5a40cc1c1a0ed478a2b46bec653c2c
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,87 +0,0 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class DataPlate {
|
||||
/// <summary> 核心模块 </summary>
|
||||
private ModuleCore ModuleCore => ModuleCore.I;
|
||||
/// <summary> 设计可视化模块 </summary>
|
||||
private ModuleVisual<DataPlate> VisualDesign => ModuleCore.VisualPlateDesign;
|
||||
/// <summary> 烘焙可视化模块 </summary>
|
||||
private ModuleVisual<DataPlate> VisualBaking => ModuleCore.VisualPlateBaking;
|
||||
/// <summary> 简单多边形算法模块 </summary>
|
||||
private ModuleAlgorithm<DataPlate> AlgorithmSimplePolygon => ModuleCore.AlgorithmSimplePolygon;
|
||||
/// <summary> 细分多边形算法模块 </summary>
|
||||
private ModuleAlgorithm<DataPlate> AlgorithmSubdivisionPolygon => ModuleCore.AlgorithmSubdivisionPolygon;
|
||||
|
||||
public DataPlate() {
|
||||
dataDesign = new DataPlateDesign(this);
|
||||
}
|
||||
|
||||
public void UpdateVisual(bool recalculate = true) {
|
||||
if (recalculate) {
|
||||
//简单多边形计算
|
||||
AlgorithmSimplePolygon.Compute(this);
|
||||
//细分多边形计算
|
||||
AlgorithmSubdivisionPolygon.Compute(this);
|
||||
}
|
||||
//生成可视化内容
|
||||
VisualDesign.UpdateVisual(this);
|
||||
//生成烘焙内容
|
||||
VisualBaking.UpdateVisual(this);
|
||||
}
|
||||
|
||||
#region 核心数据
|
||||
/// <summary> 点 </summary>
|
||||
public List<DataPlatePoint> platePoints = new List<DataPlatePoint>();
|
||||
/// <summary> 边 </summary>
|
||||
public List<DataPlateSide> plateSides = new List<DataPlateSide>();
|
||||
#endregion
|
||||
|
||||
#region 次要数据
|
||||
/// <summary> 设计缓存数据 </summary>
|
||||
public DataPlateDesign dataDesign;
|
||||
/// <summary> 烘焙缓存数据 </summary>
|
||||
public DataPlateBaking dataBaking = new DataPlateBaking();
|
||||
#endregion
|
||||
|
||||
#region 可视化数据
|
||||
/// <summary> 可视化对象 </summary>
|
||||
public ModulePrefab<DataPlate> designPrefab;
|
||||
/// <summary> 可视化对象 </summary>
|
||||
public ModulePrefab<DataPlate> bakingPrefab;
|
||||
/// <summary> 安排点 </summary>
|
||||
public FixedArrange arrange;
|
||||
#endregion
|
||||
|
||||
}
|
||||
/// <summary> 设计缓存数据 </summary>
|
||||
public class DataPlateDesign {
|
||||
/// <summary> 板片 </summary>
|
||||
public readonly DataPlate plate;
|
||||
/// <summary> 设计缓存数据 </summary>
|
||||
public DataPlateDesign(DataPlate plate) => this.plate = plate;
|
||||
|
||||
/// <summary> 板片的位置 </summary>
|
||||
public Vector3 position;
|
||||
/// <summary> 网格 </summary>
|
||||
public Mesh mesh;
|
||||
/// <summary> 边缘点 </summary>
|
||||
public Vector3[] points;
|
||||
/// <summary> 三角形数据 </summary>
|
||||
public List<DataTriangle> triangles;
|
||||
}
|
||||
/// <summary> 烘焙缓存数据 </summary>
|
||||
public class DataPlateBaking {
|
||||
/// <summary> 网格 </summary>
|
||||
public Mesh mesh;
|
||||
/// <summary> 板片的位置 </summary>
|
||||
public Vector3 position;
|
||||
/// <summary> 板片的旋转 </summary>
|
||||
public Vector3 eulerAngles;
|
||||
/// <summary> 边界数据 </summary>
|
||||
public DataBorder border;
|
||||
/// <summary> 全部顶点 </summary>
|
||||
public DataPlateVertex[] vertexs;
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7f57f20fad19ed740adccdb0da9c4469
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,17 +0,0 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary> 线段 </summary>
|
||||
public class DataPlateLine {
|
||||
/// <summary> 线段起点a </summary>
|
||||
public Vector3 a;
|
||||
/// <summary> 线段终点b </summary>
|
||||
public Vector3 b;
|
||||
/// <summary> 原始距离 </summary>
|
||||
public float origin;
|
||||
/// <summary> 线段距离 </summary>
|
||||
public float Distance => Vector3.Distance(a, b);
|
||||
/// <summary> 线段方向 </summary>
|
||||
public Vector3 Direction => b - a;
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c7e8d3e741e703d49b33431b75a3a001
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,21 +0,0 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class DataPlatePoint {
|
||||
/// <summary> 绑定的板片 </summary>
|
||||
public readonly DataPlate plate;
|
||||
/// <summary> 初始化 </summary>
|
||||
public DataPlatePoint(DataPlate plate) => this.plate = plate;
|
||||
|
||||
#region 核心数据
|
||||
/// <summary> 设计点位置(本地坐标系) </summary>
|
||||
public Vector3 position;
|
||||
#endregion
|
||||
|
||||
#region 可视化数据
|
||||
/// <summary> 可视化对象 </summary>
|
||||
public ModulePrefab<DataPlatePoint> visual;
|
||||
#endregion
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6c2af0d32eea37f408900226b81e8e8a
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,62 +0,0 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using Unity.Collections;
|
||||
using UnityEngine;
|
||||
|
||||
public enum Bezier {
|
||||
一阶 = 0, 二阶 = 1, 三阶 = 2
|
||||
}
|
||||
/// <summary> 边 </summary>
|
||||
public class DataPlateSide {
|
||||
/// <summary> 绑定的板片 </summary>
|
||||
public readonly DataPlate plate;
|
||||
/// <summary> 初始化 </summary>
|
||||
public DataPlateSide(DataPlate plate) => this.plate = plate;
|
||||
|
||||
#region 核心数据
|
||||
/// <summary> 贝塞尔曲线阶数 </summary>
|
||||
public Bezier bezier;
|
||||
/// <summary> 起点 </summary>
|
||||
public DataPlatePoint aPoint;
|
||||
/// <summary> 终点 </summary>
|
||||
public DataPlatePoint bPoint;
|
||||
/// <summary> 贝塞尔曲线前(-) </summary>
|
||||
public Vector3 aBezier;
|
||||
/// <summary> 贝塞尔曲线后(+) </summary>
|
||||
public Vector3 bBezier;
|
||||
#endregion
|
||||
|
||||
#region 次要数据
|
||||
/// <summary> 缝合数据 </summary>
|
||||
public DataSuture suture;
|
||||
/// <summary> 设计缓存数据 </summary>
|
||||
public DataPlateSideDesign dataDesign = new DataPlateSideDesign();
|
||||
/// <summary> 烘焙缓存数据 </summary>
|
||||
public DataPlateSideBaking dataBaking = new DataPlateSideBaking();
|
||||
#endregion
|
||||
|
||||
#region 可视化内容
|
||||
/// <summary> 可视化边缘线 </summary>
|
||||
public ModulePrefab<DataPlateSide> designPrefab;
|
||||
#endregion
|
||||
}
|
||||
/// <summary> 设计缓存数据 </summary>
|
||||
public class DataPlateSideDesign {
|
||||
/// <summary> 总长度 </summary>
|
||||
public float length;
|
||||
/// <summary> 点 </summary>
|
||||
public Vector3[] positions = new Vector3[0];
|
||||
/// <summary> 线 </summary>
|
||||
public DataPlateLine[] lines = new DataPlateLine[0];
|
||||
}
|
||||
/// <summary> 烘焙缓存数据 </summary>
|
||||
public class DataPlateSideBaking {
|
||||
/// <summary> 总长度 </summary>
|
||||
public float length;
|
||||
/// <summary> 点 </summary>
|
||||
public Vector3[] positions = new Vector3[0];
|
||||
/// <summary> 线 </summary>
|
||||
public DataPlateLine[] lines = new DataPlateLine[0];
|
||||
/// <summary> 关联的网格顶点 </summary>
|
||||
public DataPlateVertex[] vertexs = new DataPlateVertex[0];
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d0a57f0098d07ca4da0ca6e08c25662c
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,28 +0,0 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class DataPlateVertex {
|
||||
/// <summary> 是否是有效顶点 </summary>
|
||||
public bool isValid;
|
||||
/// <summary> 设计视图中位置 </summary>
|
||||
public Vector3 position;
|
||||
|
||||
/// <summary> 上 </summary>
|
||||
public DataPlateVertex above;
|
||||
/// <summary> 下 </summary>
|
||||
public DataPlateVertex below;
|
||||
/// <summary> 左 </summary>
|
||||
public DataPlateVertex left;
|
||||
/// <summary> 右 </summary>
|
||||
public DataPlateVertex right;
|
||||
|
||||
/// <summary> 左上 </summary>
|
||||
public DataPlateVertex leftAbove;
|
||||
/// <summary> 左下 </summary>
|
||||
public DataPlateVertex leftBelow;
|
||||
/// <summary> 右上 </summary>
|
||||
public DataPlateVertex rightAbove;
|
||||
/// <summary> 右下 </summary>
|
||||
public DataPlateVertex rightBelow;
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9842037a7f0169b4bb8a4b70047f7739
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,21 +0,0 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class DataPoint {
|
||||
/// <summary> 绑定的板片 </summary>
|
||||
public readonly DataPlate plate;
|
||||
/// <summary> 初始化 </summary>
|
||||
public DataPoint(DataPlate plate) => this.plate = plate;
|
||||
|
||||
#region 核心数据
|
||||
/// <summary> 设计点位置(本地坐标系) </summary>
|
||||
public Vector3 position;
|
||||
#endregion
|
||||
|
||||
#region 可视化数据
|
||||
/// <summary> 可视化对象 </summary>
|
||||
public ModulePrefab<DataPoint> visual;
|
||||
#endregion
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 753c1b80d6d80af4baaa095760bdc3f5
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,44 +0,0 @@
|
||||
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
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d40ac12110b85ce4daf740db4dd0a5ef
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,30 +0,0 @@
|
||||
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;
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: de6bdf5f7fa27c4409fa7179f281284d
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,8 +0,0 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
[CreateAssetMenu(fileName = "PresetsPlate", menuName = "数据模块/预设模板")]
|
||||
public class DataPlatePresets : ScriptableObject {
|
||||
public List<Vector3> designPoints;
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: de9e8e0217c52a447a49c55f818131ef
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,19 +0,0 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class DataPolygon {
|
||||
|
||||
#region 次要数据
|
||||
/// <summary> 平面网格 </summary>
|
||||
public Mesh mesh;
|
||||
/// <summary> 三角形数据 </summary>
|
||||
public List<DataTriangle> triangles;
|
||||
#endregion
|
||||
|
||||
#region 可视化数据
|
||||
/// <summary> 可视化对象 </summary>
|
||||
public MeshFilter meshFilter;
|
||||
#endregion
|
||||
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3de8098a0297b56429874d2696f59d43
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 90a78d920e0cdd4458a7c0c93646c461
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,43 +0,0 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class DataSuture {
|
||||
/// <summary> 核心模块 </summary>
|
||||
private ModuleCore ModuleCore => ModuleCore.I;
|
||||
/// <summary> 设计可视化模块 </summary>
|
||||
private ModuleVisual<DataSuture> VisualDesign => ModuleCore.VisualSutureDesign;
|
||||
/// <summary> 烘焙可视化模块 </summary>
|
||||
private ModuleVisual<DataSuture> VisualBaking => ModuleCore.VisualSutureBaking;
|
||||
/// <summary> 缝合线算法模块 </summary>
|
||||
private ModuleAlgorithm<DataSuture> AlgorithmSuture => ModuleCore.AlgorithmSuture;
|
||||
|
||||
public readonly DataSutureSide a;
|
||||
public readonly DataSutureSide b;
|
||||
public DataSuture(DataPlateSide aSide, DataPlateSide bSide) {
|
||||
a = new DataSutureSide(aSide, this);
|
||||
b = new DataSutureSide(bSide, this);
|
||||
UpdateVisual();
|
||||
}
|
||||
|
||||
public void UpdateVisual() {
|
||||
AlgorithmSuture.Compute(this);
|
||||
VisualDesign.UpdateVisual(this);
|
||||
VisualBaking.UpdateVisual(this);
|
||||
}
|
||||
|
||||
#region 次要数据
|
||||
/// <summary> 缝合长度 </summary>
|
||||
public float length;
|
||||
/// <summary> 缝合点 </summary>
|
||||
public List<DataSuturePoint> points;
|
||||
#endregion
|
||||
|
||||
#region 可视化内容
|
||||
/// <summary> 可视化内容 </summary>
|
||||
public ModulePrefab<DataSuture> design;
|
||||
/// <summary> 可视化对象 </summary>
|
||||
public ModulePrefab<DataSuture> baking;
|
||||
#endregion
|
||||
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: db7180cdc51fba54ebc54927eaa2c246
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,14 +0,0 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class DataSuturePoint {
|
||||
/// <summary> aAnchor到vertex的距离 </summary>
|
||||
public float distance;
|
||||
/// <summary> 绑定的顶点 </summary>
|
||||
public DataPlateVertex vertex;
|
||||
/// <summary> 锚点a </summary>
|
||||
public DataPlateVertex aAnchor;
|
||||
/// <summary> 锚点b </summary>
|
||||
public DataPlateVertex bAnchor;
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fab08a6f4689d1c4b94d2fd7f05fedbe
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,77 +0,0 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary>
|
||||
/// 缝合边
|
||||
/// </summary>
|
||||
public class DataSutureSide {
|
||||
/// <summary> 关联的边 </summary>
|
||||
public readonly DataPlateSide plateSide;
|
||||
/// <summary> 关联的缝合数据 </summary>
|
||||
public readonly DataSuture suture;
|
||||
/// <summary> 缝合边 </summary>
|
||||
public DataSutureSide(DataPlateSide side, DataSuture suture) {
|
||||
this.plateSide = side;
|
||||
this.suture = suture;
|
||||
}
|
||||
|
||||
#region 核心数据
|
||||
/// <summary> 是否反转 </summary>
|
||||
public bool isReversal;
|
||||
#endregion
|
||||
|
||||
#region 次要数据
|
||||
/// <summary> 设计缓存数据 </summary>
|
||||
public DataSutureSideDesign dataDesign = new DataSutureSideDesign();
|
||||
/// <summary> 烘焙缓存数据 </summary>
|
||||
public DataSutureSideBaking dataBaking = new DataSutureSideBaking();
|
||||
#endregion
|
||||
|
||||
#region 可视化数据
|
||||
/// <summary> 可视化对象 </summary>
|
||||
public ModulePrefab<DataSutureSide> design;
|
||||
/// <summary> 可视化对象 </summary>
|
||||
public ModulePrefab<DataSutureSide> baking;
|
||||
#endregion
|
||||
}
|
||||
/// <summary> 设计缓存数据 </summary>
|
||||
public class DataSutureSideDesign {
|
||||
/// <summary> 位置列表 </summary>
|
||||
public Vector3[] positions;
|
||||
/// <summary> A点位置 </summary>
|
||||
public Vector3 PointA => positions[0];
|
||||
/// <summary> B点位置 </summary>
|
||||
public Vector3 PointB => positions[positions.Length - 1];
|
||||
}
|
||||
/// <summary> 烘焙缓存数据 </summary>
|
||||
public class DataSutureSideBaking {
|
||||
/// <summary> 位置列表 </summary>
|
||||
public Vector3[] positions;
|
||||
/// <summary> 全部顶点列表 </summary>
|
||||
public DataSutureSideVertex[] allVertexs;
|
||||
/// <summary> 关联的顶点列表 </summary>
|
||||
public DataSutureSideVertex[] vertexs;
|
||||
/// <summary> A点位置 </summary>
|
||||
public Vector3 PointA => positions[0];
|
||||
/// <summary> B点位置 </summary>
|
||||
public Vector3 PointB => positions[positions.Length - 1];
|
||||
}
|
||||
public class DataSutureSideVertex {
|
||||
/// <summary> 边起点到a点的距离 </summary>
|
||||
public float origin;
|
||||
/// <summary> a点 </summary>
|
||||
public DataPlateVertex a;
|
||||
/// <summary> a点的下一个点 </summary>
|
||||
public DataPlateVertex b;
|
||||
/// <summary> 缝合边顶点 </summary>
|
||||
public DataSutureSideVertex(float origin, DataPlateVertex a, DataPlateVertex b) {
|
||||
this.origin = origin;
|
||||
this.a = a;
|
||||
this.b = b;
|
||||
}
|
||||
/// <summary> 最大距离 origin + a - b </summary>
|
||||
public float MaxDistance => origin + Distance;
|
||||
/// <summary> 分段距离 a-b </summary>
|
||||
public float Distance => Vector3.Distance(a.position, b.position);
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cd87f3680da7d114ca6d49384e0212a4
|
||||
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;
|
||||
|
||||
public struct DataTriangle {
|
||||
public Vector3 a;
|
||||
public Vector3 b;
|
||||
public Vector3 c;
|
||||
|
||||
public override string ToString() {
|
||||
return $"{a} , {b} , {c}";
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0119f0f1ae644424b8ed9bd212d86ec1
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user