Heroes_of_Hiis/Assets/Polaris - Low Poly Ecosystem/Polaris - Low Poly Terrain .../Runtime/Scripts/SplineTool/GSplineSegment.cs

121 lines
2.5 KiB
C#
Raw Normal View History

#if GRIFFIN
using UnityEngine;
using System;
namespace Pinwheel.Griffin.SplineTool
{
[System.Serializable]
public class GSplineSegment : IDisposable
{
[SerializeField]
private int startIndex;
public int StartIndex
{
get
{
return startIndex;
}
set
{
startIndex = value;
}
}
[SerializeField]
private int endIndex;
public int EndIndex
{
get
{
return endIndex;
}
set
{
endIndex = value;
}
}
[SerializeField]
private Vector3 startTangent;
public Vector3 StartTangent
{
get
{
return startTangent;
}
set
{
startTangent = value;
}
}
[SerializeField]
private Vector3 endTangent;
public Vector3 EndTangent
{
get
{
return endTangent;
}
set
{
endTangent = value;
}
}
[SerializeField]
private Mesh mesh;
public Mesh Mesh
{
get
{
if (mesh == null)
{
mesh = new Mesh();
mesh.name = "Spline Segment";
mesh.MarkDynamic();
}
return mesh;
}
}
public GSweepTestData SweepTestData
{
get
{
return new GSweepTestData()
{
startIndex = this.startIndex,
endIndex = this.endIndex,
startTangent = this.startTangent,
endTangent = this.endTangent
};
}
}
public void FlipDirection()
{
int tmp = startIndex;
startIndex = endIndex;
endIndex = tmp;
}
public void Dispose()
{
if (mesh != null)
{
GUtilities.DestroyObject(mesh);
}
}
public struct GSweepTestData
{
public int startIndex;
public int endIndex;
public Vector3 startTangent;
public Vector3 endTangent;
}
}
}
#endif