namespace HStation.Service.PhartRelation
|
{
|
/// <summary>
|
///
|
/// </summary>
|
public static class PhartGraphExtensions
|
{
|
//缓存时间
|
private const int _cache_time = 10;
|
|
#region 获取图形参数
|
|
/// <summary>
|
/// 获取 GraphParas
|
/// </summary>
|
public static object GetGraphParas(this Yw.Model.PhartGraph rhs)
|
{
|
if (rhs == null)
|
{
|
return default;
|
}
|
|
var key = $"{rhs.ID}:graph-paras";
|
return MemoryCacheHelper.GetSet(key, () =>
|
{
|
object obj = PhartGraphHelper.GetGraphParas((eGraphType)rhs.GraphType, rhs.GraphParas);
|
return obj;
|
}, _cache_time);
|
}
|
|
/// <summary>
|
/// 获取 GraphParas
|
/// </summary>
|
public static T GetGraphParas<T>(this Yw.Model.PhartGraph rhs)
|
{
|
if (rhs == null)
|
{
|
return default;
|
}
|
var obj = rhs.GetGraphParas();
|
if (obj is T t)
|
{
|
return t;
|
}
|
return default;
|
}
|
|
#endregion
|
|
#region 获取几何参数
|
|
/// <summary>
|
/// 获取 GeometryParas
|
/// </summary>
|
public static object GetGeometryParas(this Yw.Model.PhartGraph rhs)
|
{
|
if (rhs == null)
|
{
|
return default;
|
}
|
|
var key = $"{rhs.ID}:geometry-paras";
|
return MemoryCacheHelper.GetSet(key, () =>
|
{
|
object obj = PhartGraphHelper.GetGeometryParas((eGeometryStyle)rhs.GeometryStyle, rhs.GeometryParas);
|
return obj;
|
}, _cache_time);
|
}
|
|
/// <summary>
|
/// 获取 GeometryParas
|
/// </summary>
|
public static T GetGeometryParas<T>(this Yw.Model.PhartGraph rhs)
|
{
|
if (rhs == null)
|
{
|
return default;
|
}
|
var obj = rhs.GetGeometryParas();
|
if (obj is T t)
|
{
|
return t;
|
}
|
return default;
|
}
|
|
#endregion
|
|
#region 获取特性曲线
|
|
/// <summary>
|
/// 获取特性曲线
|
/// </summary>
|
public static Yw.Ahart.PerformCurveBase GetPerformCurve(this Yw.Model.PhartGraph rhs)
|
{
|
if (rhs == null)
|
{
|
return default;
|
}
|
var key = $"{rhs.ID}:perform-curve";
|
return MemoryCacheHelper.GetSet(key, () =>
|
{
|
Yw.Ahart.PerformCurveBase performCurve = null;
|
performCurve = PhartGraphHelper.GetPerformCurve((eGeometryStyle)rhs.GeometryStyle, rhs.GeometryInfo);
|
return performCurve;
|
}, _cache_time);
|
}
|
|
/// <summary>
|
/// 获取性能点列表
|
/// </summary>
|
public static List<Yw.Geometry.Point2d> GetFeatPointList(this Yw.Model.PhartGraph rhs, int pointNumber = 12, double minSpace = 0.0001)
|
{
|
var performCurve = rhs.GetPerformCurve();
|
if (performCurve == null || performCurve.IsInvalid())
|
{
|
return default;
|
}
|
return performCurve.FeatCurve.GetPointList(pointNumber, minSpace);
|
}
|
|
#endregion
|
|
}
|
|
}
|