private void AddVisibilityAnimation(VisibilityAnimation animation)
 {
     VisibilityTimeline.KeyFrames.Add(
         new DiscreteDoubleKeyFrame(
             animation.Visibility == 3 ? 1 : 0,
             KeyTime.FromTimeSpan(TimeSpan.FromSeconds(animation.Time)))
         );
 }
Esempio n. 2
0
        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;
        }
Esempio n. 3
0
        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();
        }
Esempio n. 4
0
        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++;
                }
            }
        }