public void Analyze() { discreteTrack = new DiscreteTrack(this, terrainModifier); speedProfile = new HistoProfile(17); speedProfile.SetBorders(10f, 90f); for (int i = 0; i < discreteTrack.speedAnalyzer.Vs.Length; i++) { speedProfile.AddValue(discreteTrack.speedAnalyzer.Vs[i]); } curvatureProfile = new HistoProfile(17); curvatureProfile.SetBorders(-0.1f, 0.1f); for (int i = 0; i < discreteTrack.curvatureAnalyzerTrack.Curvature.Length; i++) { curvatureProfile.AddValue(discreteTrack.curvatureAnalyzerTrack.Curvature[i]); } curvatureIdeallineProfile = new HistoProfile(17); curvatureIdeallineProfile.SetBorders(-0.07f, 0.07f); for (int i = 0; i < discreteTrack.curvatureIdealLineAnalyzer.Curvature.Length; i++) { curvatureIdeallineProfile.AddValue(discreteTrack.curvatureIdealLineAnalyzer.Curvature[i]); } }
public void RenderProfile(HistoProfile profile) { for (int i = 0; i < instBars.Count; i++) { Destroy(instBars[i]); } instBars.Clear(); for (int i = 0; i < profile.Percents.Length; i++) { GameObject instBar = Instantiate(prefabBar, transform); instBar.GetComponent <RectTransform>().sizeDelta = new Vector2(width / profile.Percents.Length, profile.Percents[i] * height); instBar.GetComponent <RectTransform>().localPosition = new Vector3((width * -0.5f) + i * (width / profile.Percents.Length) + (width / profile.Percents.Length) * 0.5f, profile.Percents[i] * height * 0.5f - height * 0.5f, 0f); instBars.Add(instBar); } }
public override void TrackUpdated() { base.TrackUpdated(); Statics.Log("New Discrete Track"); discreteTrack = new DiscreteTrack(Track, Track.TerrainModifier); Statics.Log("Discrete Track created"); x = discreteTrack.shortestPathTrajectory; xC = discreteTrack.minimumCurvatureTrajectory; gizCPoints = discreteTrack.GetCurvativePointsRight(); Statics.Log("GetCurvativePointsRight"); if (instIdealLine != null) { Destroy(instIdealLine); instIdealLine = null; } instIdealLine = Instantiate(idealLine); instIdealLine.transform.position = new Vector3(0f, 0.15f, 0f); instIdealLine.GetComponent <ClosedSplineRenderer>().Width = 0.7f; instIdealLine.GetComponent <ClosedSplineRenderer>().ClosedSpline = discreteTrack.idealLineSpline; vs = discreteTrack.speedAnalyzer.Vs; Statics.Log("vs = discreteTrack.speedAnalyzer.Vs"); for (int i = 0; i < instSpeedTraps.Count; i++) { Destroy(instSpeedTraps[i]); } instSpeedTraps.Clear(); for (int i = 0; i < discreteTrack.idealLineSpline.ControlPointsAmount; i++) { float s = ((float)i) / discreteTrack.idealLineSpline.ControlPointsAmount; instSpeedTraps.Add(Instantiate(speedTrap)); instSpeedTraps[instSpeedTraps.Count - 1].transform.position = discreteTrack.idealLineSpline.SplineAt(s); //instSpeedTraps[instSpeedTraps.Count - 1].GetComponentInChildren<TextMesh>().text = (1f / discreteTrack.curvatureAnalyzer.Curvature[i]).ToString(); } if (carVisual != null) { Statics.Log("SetTrack(discreteTrack)"); carVisual.SetTrack(discreteTrack); Statics.Log("SetTrack(discreteTrack) -> Done"); } if (histoSpeed != null) { HistoProfile histoProfileSpeed = new HistoProfile(17); histoProfileSpeed.SetBorders(0f, 100f); for (int i = 0; i < discreteTrack.speedAnalyzer.Vs.Length; i++) { histoProfileSpeed.AddValue(discreteTrack.speedAnalyzer.Vs[i]); } histoSpeed.RenderProfile(histoProfileSpeed); } if (histoCurvature != null) { HistoProfile histoProfileCurvature = new HistoProfile(17); histoProfileCurvature.SetBorders(-0.05f, 0.05f); for (int i = 0; i < discreteTrack.curvatureAnalyzerTrack.Curvature.Length; i++) { histoProfileCurvature.AddValue(discreteTrack.curvatureAnalyzerTrack.Curvature[i]); } histoCurvature.RenderProfile(histoProfileCurvature); } }