private UvMapping[] GetUvMapping(Vector3 position)
        {
            var xString = position.X.ToString("000");
            var yString = position.Y.ToString("000");
            var zString = position.Z.ToString("000");

            var text = xString.Substring(Math.Max(0, xString.Length - 4), 3)
                       + yString.Substring(Math.Max(0, yString.Length - 4), 3)
                       + zString.Substring(Math.Max(0, zString.Length - 4), 3);

            var result = new UvMapping[9];

            for (var i = 0; i < 9; i++)
            {
                var xOffset = text[i] - '0';
                var yOffset = i;

                var xStep  = 1.0f / 10;
                var xStart = xOffset * xStep;
                var xEnd   = (xOffset + 1) * xStep;

                var yStep  = 1.0f / 9;
                var yStart = yOffset * yStep;
                var yEnd   = (yOffset + 1) * yStep;

                var uvMapping = new UvMapping
                {
                    TopLeft     = new Vector2(xEnd, yStart),
                    TopRight    = new Vector2(xStart, yStart),
                    BottomLeft  = new Vector2(xEnd, yEnd),
                    BottomRight = new Vector2(xStart, yEnd),
                };

                result[i] = uvMapping;
            }

            return(result);
        }
Example #2
0
 private void OnSelectMapping(object sender, MouseButtonEventArgs e)
 {
     SelectedMapping = (UvMapping)Options.SelectedItem;
     Close();
 }