1
This commit is contained in:
@@ -7,12 +7,12 @@ using UnityEngine;
|
||||
/// </summary>
|
||||
public class DataSutureSide {
|
||||
/// <summary> 关联的边 </summary>
|
||||
public readonly DataSide side;
|
||||
public readonly DataPlateSide plateSide;
|
||||
/// <summary> 关联的缝合数据 </summary>
|
||||
public readonly DataSuture suture;
|
||||
/// <summary> 缝合边 </summary>
|
||||
public DataSutureSide(DataSide side, DataSuture suture) {
|
||||
this.side = side;
|
||||
public DataSutureSide(DataPlateSide side, DataSuture suture) {
|
||||
this.plateSide = side;
|
||||
this.suture = suture;
|
||||
}
|
||||
|
||||
@@ -22,32 +22,10 @@ public class DataSutureSide {
|
||||
#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];
|
||||
|
||||
/// <summary> 设计缓存数据 </summary>
|
||||
public DataSutureSideDesign dataDesign = new DataSutureSideDesign();
|
||||
/// <summary> 烘焙缓存数据 </summary>
|
||||
public DataSutureSideBaking dataBaking = new DataSutureSideBaking();
|
||||
#endregion
|
||||
|
||||
#region 可视化数据
|
||||
@@ -57,3 +35,43 @@ public class DataSutureSide {
|
||||
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);
|
||||
}
|
||||
Reference in New Issue
Block a user