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)); } }); }
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); } } }); }