void IEditorGameTransformViewModelService.UpdateSnap(Transformation transformation, float value, bool isActive)
        {
            controller.InvokeAsync(() =>
            {
                switch (transformation)
                {
                case Transformation.Translation:
                    TranslationGizmo.SnapValue = value;
                    TranslationGizmo.UseSnap   = isActive;
                    break;

                case Transformation.Rotation:
                    RotationGizmo.SnapValue = value;
                    RotationGizmo.UseSnap   = isActive;
                    break;

                case Transformation.Scale:
                    ScaleGizmo.SnapValue = value;
                    ScaleGizmo.UseSnap   = isActive;
                    break;

                default:
                    throw new ArgumentOutOfRangeException(nameof(transformation));
                }
            });
        }
예제 #2
0
        public void HighlightAssets(IEnumerable <AssetViewModel> assets)
        {
            const float duration   = 1.0f;
            var         assetItems = assets.Select(x => x.AssetItem).ToList();

            controller.InvokeAsync(() =>
            {
                assetHighlighters.Select(x => x.Value).ForEach(x => x.Clear());

                foreach (var assetItem in assetItems)
                {
                    AssetHighlighter highlighter;
                    if (assetHighlighters.TryGetValue(assetItem.Asset.GetType(), out highlighter))
                    {
                        highlighter.Highlight(controller, game, assetItem, duration);
                    }
                }
            });
        }