private async void ExportPose(TargetService.ActorTableActor actor) { ActorViewModel?actorVm = actor.GetViewModel(); if (actorVm == null) { return; } SkeletonVisual3d skeletonVm = await PoseService.GetVisual(actorVm); await PoseFile.Save(actorVm, skeletonVm); }
public PosePage() { this.poseService = Services.Get <PoseService>(); this.poseService.EnabledChanged += this.OnEnabledChanged; this.poseService.AvailableChanged += this.OnAvailableChanged; this.InitializeComponent(); this.SkeletonViewModel = new SkeletonViewModel(); this.ContentArea.DataContext = this; this.OnEnabledChanged(this.poseService.IsEnabled); this.OnAvailableChanged(this.poseService.IsAvailable); }
private async void OnDataContextChanged(object?sender, DependencyPropertyChangedEventArgs e) { this.Actor = this.DataContext as ActorViewModel; if (this.Actor == null || this.Actor.ModelObject == null) { this.Skeleton = null; return; } if (!this.IsVisible) { return; } try { this.Skeleton = await PoseService.GetVisual(this.Actor); this.ThreeDView.DataContext = this.Skeleton; this.GuiView.DataContext = this.Skeleton; this.MatrixView.DataContext = this.Skeleton; if (this.Skeleton.File != null) { if (!this.Skeleton.File.AllowPoseGui) { this.ViewSelector.SelectedIndex = 1; } if (!this.Skeleton.File.AllowPoseMatrix) { this.ViewSelector.SelectedIndex = 2; } } } catch (Exception ex) { Log.Error(ex, "Failed to bind skeleton to view"); } }