private void UpdateBodies() { var renderSettings = settings.RenderSettings; var sizeY = provider.GetSegments(); if (bodies == null) { bodies = new BodyData[provider.GetVertices().Count]; } for (var i = 0; i < bodies.Length; i++) { var x = i / sizeY; var y = i % sizeY; var t = (float)y / sizeY; var body = new BodyData { Color = ColorToVector(renderSettings.ColorProvider.GetColor(settings, x, y, sizeY)), Interpolation = Mathf.Clamp01(renderSettings.InterpolationCurve.Evaluate(t)), WavinessScale = Mathf.Clamp01(renderSettings.WavinessScaleCurve.Evaluate(t)) * renderSettings.WavinessScale, WavinessFrequency = Mathf.Clamp01(renderSettings.WavinessFrequencyCurve.Evaluate(t)) * renderSettings.WavinessFrequency }; bodies[i] = body; } }
private void UpdateBodies() { var vertices = provider.GetVertices(); var matrices = provider.GetTransforms(); if (bodies == null) { bodies = new GPBody[vertices.Count]; } for (int i = 0; i < vertices.Count; i++) { var matrix = matrices[0]; var vertex = matrix.MultiplyPoint3x4(vertices[i]); bodies[i] = new GPBody(vertex);//todo maybe should be global transform } }