private void AddText(TextNodeInfo textNodeInfo) { var visual = AddImage(_textBrushes[textNodeInfo.BrushIndex], textNodeInfo, textNodeInfo.Opacity, textNodeInfo.ApplyDistanceEffects); if (!textNodeInfo.ApplyDistanceEffects) { visual.Opacity = textNodeInfo.Opacity; } }
private void LoadNodes() { _nodes = new List <NodeInfo>(200); // // First, add in the text nodes // CanvasTextFormat monthsTextFormat = new CanvasTextFormat(); monthsTextFormat.FontFamily = "Segoe UI"; monthsTextFormat.FontSize = 120.0f; CanvasTextFormat textFormat = new CanvasTextFormat(); textFormat.FontFamily = "Segoe UI"; textFormat.FontSize = 36.0f; _textNodes = new TextNodeInfo[] { new TextNodeInfo("JAN FEB MAR APR MAY", monthsTextFormat, new Vector2(1920, 200), new Vector3(0.0f, -2500.0f, -3000.0f), 10.0f, 0.1f, false), new TextNodeInfo("LAYOUT", textFormat, new Vector2(180, 52), new Vector3(76.1f, 131.2f, -100.0f), 1.0f, 0.5f, true), new TextNodeInfo("ADVENTURE", textFormat, new Vector2(240, 52), new Vector3(-259.8f, -101.1f, -500.0f), 0.8f, 0.5f, true), new TextNodeInfo("ENGINEERING", textFormat, new Vector2(280, 52), new Vector3(509.8f, 51.1f, -322.2f), 0.8f, 0.5f, true), }; _nodes.AddRange(_textNodes); // // Add some extra random images to fill up the world // // // Set the min/max of the images to limits how far in each directly we randomly place each image. // // Note: for z-position, the items are also randomly placed on one of several planes. It looks // a little too scattered/chaotic otherwise. // var min = new Vector3(_tracker.MinPosition.X, -_rootContainer.Size.Y * 0.65f, -25); var max = new Vector3(_tracker.MaxPosition.X, _rootContainer.Size.Y * 0.65f, 25); NodeManager.Instance.MinPosition = min; NodeManager.Instance.MaxPosition = max; NodeManager.Instance.MinScale = 0.05f; NodeManager.Instance.MaxScale = 0.4f; for (int i = _nodes.Count; i < _nodes.Capacity; i++) { _nodes.Add(NodeManager.Instance.GenerateRandomImageNode(_thumbnails.Count)); } // // Sort the list by z, then x, then y so that they draw in the correct order. // _nodes.Sort(); }