s
This commit is contained in:
@@ -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:
|
||||
Reference in New Issue
Block a user