private void AddVisibilityAnimation(VisibilityAnimation animation) { VisibilityTimeline.KeyFrames.Add( new DiscreteDoubleKeyFrame( animation.Visibility == 3 ? 1 : 0, KeyTime.FromTimeSpan(TimeSpan.FromSeconds(animation.Time))) ); }
private async void Close() { IsHitTestVisible = false; _window.PreviewMouseDown -= OnWindowMouseDown; _window.PreviewKeyDown -= OnWindowMouseDown; if (_hint.CloseOnResize) { _window.SizeChanged -= OnWindowSizeChanged; } var cell = GetByName("PART_Cell"); if (cell != null) { VisibilityAnimation.SetVisible(cell, false); await Task.Delay(300); } _layer.Remove(this); IsAnyShown = false; }
public Model(Renderer Renderer, H3DModel BaseModel) { this.Renderer = Renderer; this.BaseModel = BaseModel; Meshes0 = new List <Mesh>(); Meshes1 = new List <Mesh>(); Meshes2 = new List <Mesh>(); Meshes3 = new List <Mesh>(); Shaders = new List <Shader>(); ShaderHashes = new Dictionary <int, int>(); InverseTransforms = new Matrix4[BaseModel.Skeleton.Count]; for (int Bone = 0; Bone < BaseModel.Skeleton.Count; Bone++) { InverseTransforms[Bone] = BaseModel.Skeleton[Bone].InverseTransform.ToMatrix4(); } UpdateShaders(); AddMeshes(Meshes0, BaseModel.MeshesLayer0); AddMeshes(Meshes1, BaseModel.MeshesLayer1); AddMeshes(Meshes2, BaseModel.MeshesLayer2); AddMeshes(Meshes3, BaseModel.MeshesLayer3); SkeletalAnim = new SkeletalAnimation(BaseModel.Skeleton); MaterialAnim = new MaterialAnimation(BaseModel.Materials); VisibilityAnim = new VisibilityAnimation( BaseModel.MeshNodesTree, BaseModel.MeshNodesVisibility); Transform = Matrix4.Identity; UpdateAnimationTransforms(); }
private async void Show() { IsAnyShown = true; await Task.Delay(1); var cell = GetByName("PART_Cell"); if (cell != null) { VisibilityAnimation.SetDuration(cell, TimeSpan.FromSeconds(0.3)); VisibilityAnimation.SetVisible(cell, true); _window.PreviewMouseDown += OnWindowMouseDown; _window.PreviewKeyDown += OnWindowKeyDown; if (_hint.CloseOnResize) { _window.SizeChanged += OnWindowSizeChanged; } cell.PreviewMouseDown += OnMouseDown; var disableButton = GetByName("PART_DisableHintsButton") as Button; if (disableButton != null) { disableButton.Command = new DelegateCommand(() => { FancyHintsService.Instance.Enabled = false; Close(); }); } } else { IsAnyShown = false; } }
public void LoadAnim(VisibilityAnimation anim) { listViewCustom1.Items.Clear(); listViewCustom1.Columns.Clear(); ColumnHeader frameColumn = new ColumnHeader() { Text = $"Frame" }; listViewCustom1.Columns.Add(frameColumn); foreach (var bone in anim.BoneNames) { ColumnHeader boneColumn = new ColumnHeader() { Text = $"{bone}" }; listViewCustom1.Columns.Add(boneColumn); } if (anim.BaseValues != null && anim.BaseValues.Length > 0) { var item1 = new ListViewItem($"Base Value"); listViewCustom1.Items.Add(item1); int curve = 1; foreach (var value in anim.BaseValues) { item1.SubItems.Add(value.ToString()); if (value) { item1.SubItems[curve].BackColor = Color.FromArgb(70, 70, 70); } curve++; } } for (int Frame = 0; Frame < anim.FrameCount; Frame++) { if (anim.Values.Count == 0) { return; } var item1 = new ListViewItem($"{Frame}"); listViewCustom1.Items.Add(item1); item1.UseItemStyleForSubItems = false; int curve = 1; foreach (var track in anim.Values) { bool value = track.GetValue(Frame); item1.SubItems.Add(value.ToString()); if (value) { item1.SubItems[curve].BackColor = Color.FromArgb(70, 70, 70); } curve++; } } }