2024-11-19 11:48:21 +01:00

81 lines
2.7 KiB
C#

using System.Collections.Generic;
namespace RoadArchitect.Threading
{
public static class TerrainCalcsStatic
{
public static void RunMe(ref List<Terraforming.TempTerrainData> _TTDList, SplineC _spline, Road _road)
{
float Step = (_road.roadDefinition * 0.4f) / _spline.distance;
if (Step > 2f)
{
Step = 2f;
}
if (Step < 1f)
{
Step = 1f;
}
//float tDistance = tRoad.RoadWidth()*2f;
//Vector3 tVect,POS;
foreach (Terraforming.TempTerrainData TTD in _TTDList)
{
//float PrevHeight = 0f;
//float FinalMax = 1f;
//float StartMin = 0f;
//if(tSpline.bSpecialEndControlNode)
//{
// FinalMax = tSpline.mNodes[tSpline.GetNodeCount()-2].tTime;
//}
//if(tSpline.bSpecialStartControlNode)
//{
// StartMin = tSpline.mNodes[1].tTime;
//}
//if(tRoad.opt_MatchTerrain)
//{
RootUtils.StartProfiling(_road, "DoRects");
TerraformingThreaded.DoRects(_spline, TTD);
RootUtils.EndProfiling(_road);
//}
//else
//{
// for(float i=StartMin;i<=FinalMax;i+=Step)
// {
// if(tSpline.IsInBridgeTerrain(i))
// {
// float tFloat = tSpline.GetBridgeEnd(i);
// if(IsApproximately(tFloat,1f,0.00001f) || tFloat > 1f)
// {
// continue;
// }
// if(tFloat < 0f)
// {
// continue;
// }
// i = tFloat;
// }
// tSpline.GetSplineValue_Both(i,out tVect,out POS);
// PrevHeight = TerraformingThreaded.ProcessLineHeights(tSpline,ref tVect,ref POS,tDistance,TTD,PrevHeight);
// tSpline.HeightHistory.Add(new KeyValuePair<float,float>(i,PrevHeight*TTD.TerrainSize.y));
// }
//
// for(int i=0;i<TTD.cI;i++)
// {
// TTD.heights[TTD.cX[i],TTD.cY[i]] = TTD.cH[i];
// }
//}
}
_spline.HeightHistory.Sort(Compare1);
}
private static int Compare1(KeyValuePair<float, float> _a, KeyValuePair<float, float> _b)
{
return _a.Key.CompareTo(_b.Key);
}
}
}