public DialogResult ShowDialog(IWin32Window owner, KeyFrameMode type, IKeyframeHolder target)
 {
     _target = target;
     _type   = type;
     comboBox1.Items.Add("Add");
     comboBox1.Items.Add("Subtract");
     comboBox1.SelectedIndex = 0;
     return(base.ShowDialog(owner));
 }
Example #2
0
        public void UpdateKeyframes()
        {
            listKeyframes.Items.Clear();
            bool t = _updating;

            _updating = true;
            if (_target is CHR0EntryNode || _target is SRT0TextureNode)
            {
                AnimationFrame  a;
                IKeyframeHolder entry = _target as IKeyframeHolder;
                if (entry.FrameCount > 0)
                {
                    for (int x = 0; x < entry.FrameCount; x++)
                    {
                        if ((a = entry.GetAnimFrame(x)).HasKeys)
                        {
                            listKeyframes.Items.Add(a);
                        }
                    }
                }
            }
            else if (_target is SHP0VertexSetNode)
            {
                SHP0VertexSetNode e = _target as SHP0VertexSetNode;
                if (e.FrameCount > 0)
                {
                    for (KeyframeEntry entry = e.Keyframes._keyRoot._next; entry != e.Keyframes._keyRoot; entry = entry._next)
                    {
                        listKeyframes.Items.Add(new FloatKeyframe(entry));
                    }
                }
            }
            else if (_target is SCN0EntryNode)
            {
                if (_target is SCN0CameraNode)
                {
                    CameraAnimationFrame a;
                    SCN0CameraNode       entry = _target as SCN0CameraNode;
                    if (entry.FrameCount > 0)
                    {
                        for (int x = 0; x < entry.FrameCount; x++)
                        {
                            if ((a = entry.GetAnimFrame(x)).HasKeys)
                            {
                                listKeyframes.Items.Add(a);
                            }
                        }
                    }
                }
                else if (_target is SCN0LightNode)
                {
                    LightAnimationFrame a;
                    SCN0LightNode       entry = _target as SCN0LightNode;
                    if (entry.FrameCount > 0)
                    {
                        for (int x = 0; x < entry.FrameCount; x++)
                        {
                            if ((a = entry.GetAnimFrame(x)).HasKeys)
                            {
                                listKeyframes.Items.Add(a);
                            }
                        }
                    }
                }
                else if (_target is SCN0FogNode)
                {
                    FogAnimationFrame a;
                    SCN0FogNode       entry = _target as SCN0FogNode;
                    if (entry.FrameCount > 0)
                    {
                        for (int x = 0; x < entry.FrameCount; x++)
                        {
                            if ((a = entry.GetAnimFrame(x)).HasKeys)
                            {
                                listKeyframes.Items.Add(a);
                            }
                        }
                    }
                }
            }
            _updating = t;
        }
Example #3
0
        public void UpdateKeyframe(int x)
        {
            if (!Visible)
            {
                return;
            }

            _updating = true;
            if (_target is CHR0EntryNode || _target is SRT0TextureNode)
            {
                IKeyframeHolder entry = _target as IKeyframeHolder;
                for (int w = 0; w < listKeyframes.Items.Count; w++)
                {
                    AnimationFrame a = (AnimationFrame)listKeyframes.Items[w];
                    if (a.Index == x)
                    {
                        AnimationFrame r = entry.GetAnimFrame(x);

                        if (r.HasKeys)
                        {
                            listKeyframes.Items[w] = r;
                        }
                        else
                        {
                            listKeyframes.Items.RemoveAt(w);
                        }

                        _updating = false;
                        return;
                    }
                }

                UpdateKeyframes();
            }
            else if (_target is SHP0VertexSetNode)
            {
                SHP0VertexSetNode entry = _target as SHP0VertexSetNode;
                int w = 0;
                foreach (FloatKeyframe a in listKeyframes.Items)
                {
                    if (a.Index == x)
                    {
                        KeyframeEntry e = entry.GetKeyframe(x);

                        if (e != null)
                        {
                            listKeyframes.Items[w] = new FloatKeyframe(e);
                        }
                        else
                        {
                            listKeyframes.Items.RemoveAt(w);
                        }

                        _updating = false;
                        return;
                    }
                    w++;
                }

                UpdateKeyframes();
            }
            else if (_target is SCN0EntryNode)
            {
                if (_target is SCN0CameraNode)
                {
                    SCN0CameraNode entry = _target as SCN0CameraNode;
                    for (int w = 0; w < listKeyframes.Items.Count; w++)
                    {
                        CameraAnimationFrame a = (CameraAnimationFrame)listKeyframes.Items[w];
                        if (a.Index == x)
                        {
                            CameraAnimationFrame r = entry.GetAnimFrame(x);

                            if (r.HasKeys)
                            {
                                listKeyframes.Items[w] = r;
                            }
                            else
                            {
                                listKeyframes.Items.RemoveAt(w);
                            }

                            _updating = false;
                            return;
                        }
                    }

                    UpdateKeyframes();
                }
                else if (_target is SCN0LightNode)
                {
                    SCN0LightNode entry = _target as SCN0LightNode;
                    for (int w = 0; w < listKeyframes.Items.Count; w++)
                    {
                        LightAnimationFrame a = (LightAnimationFrame)listKeyframes.Items[w];
                        if (a.Index == x)
                        {
                            LightAnimationFrame r = entry.GetAnimFrame(x);

                            if (r.HasKeys)
                            {
                                listKeyframes.Items[w] = r;
                            }
                            else
                            {
                                listKeyframes.Items.RemoveAt(w);
                            }

                            _updating = false;
                            return;
                        }
                    }

                    UpdateKeyframes();
                }
                else if (_target is SCN0FogNode)
                {
                    SCN0FogNode entry = _target as SCN0FogNode;
                    for (int w = 0; w < listKeyframes.Items.Count; w++)
                    {
                        FogAnimationFrame a = (FogAnimationFrame)listKeyframes.Items[w];
                        if (a.Index == x)
                        {
                            FogAnimationFrame r = entry.GetAnimFrame(x);

                            if (r.HasKeys)
                            {
                                listKeyframes.Items[w] = r;
                            }
                            else
                            {
                                listKeyframes.Items.RemoveAt(w);
                            }

                            _updating = false;
                            return;
                        }
                    }

                    UpdateKeyframes();
                }
            }
            _updating = false;
        }