public void DrawData(DataDraw data, Gradient gradient, Transform transform, int scaleIndex, float scaleHeight = 1, float gridGran = 1) { if (Application.isPlaying) { for (int i = 0; i < SizeX; i++) { for (int j = 0; j < SizeZ; j++) { Vector3 drawPos = (transform.position + new Vector3((i * gridGran), 0, (j * gridGran))); dataMap[i][j].DataGizmos(data, gradient, minValues, maxValues, drawPos, scaleHeight, gridGran, scaleIndex); } } } }
/// <summary> /// Draw heatmap of the position /// </summary> /// <param name="draw">Which data you want to draw</param> /// <param name="gradient">gradient color</param> /// <param name="minMax">Min and max value from the Data array</param> /// <param name="drawPos">Where the data should be drawing</param> /// <param name="scaleHeight">Max Height of the cube</param> /// <param name="gridGran">Scale of the grid</param> /// <param name="scaleIndex">Normalized is 0 and Log is 1</param> public void DataGizmos(DataDraw draw, Gradient gradient, Data minValues, Data maxValues, Vector3 drawPos, float scaleHeight, float gridGran, int scaleIndex) { float normalize = 0; switch (draw) { case DataDraw.Position: if (dataSet == 0) { return; } normalize = Scale(minValues.dataSet, maxValues.dataSet, dataSet, scaleIndex); break; case DataDraw.Dash: if (dashUsage == 0) { return; } normalize = Scale(minValues.dashUsage, maxValues.dashUsage, dashUsage, scaleIndex); break; case DataDraw.Doppler: if (dopplerUsage == 0) { return; } normalize = Scale(minValues.dopplerUsage, maxValues.dopplerUsage, dopplerUsage, scaleIndex); break; case DataDraw.Pulse: if (pulseUsage == 0) { return; } normalize = Scale(minValues.pulseUsage, maxValues.pulseUsage, pulseUsage, scaleIndex); break; } float cubeheight = normalize * scaleHeight; Gizmos.color = gradient.Evaluate(normalize); Gizmos.DrawCube(drawPos, new Vector3(gridGran, cubeheight, gridGran)); }