Beispiel #1
0
        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;
            }
        }
Beispiel #2
0
        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
            }
        }