This commit is contained in:
MuHua-123
2024-11-25 18:32:05 +08:00
parent 72d1f89b54
commit 84243e75a8
353 changed files with 17666 additions and 3206 deletions
+16
View File
@@ -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;
}
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 0119f0f1ae644424b8ed9bd212d86ec1
guid: cb5a40cc1c1a0ed478a2b46bec653c2c
MonoImporter:
externalObjects: {}
serializedVersion: 2
+49 -12
View File
@@ -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
}
+1 -17
View File
@@ -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
}
+44
View File
@@ -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:
@@ -1,12 +0,0 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DataTriangle {
public Vector3 a;
public Vector3 b;
public Vector3 c;
public override string ToString() {
return $"{a} , {b} , {c}";
}
}
+30
View File
@@ -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: