Пример #1
0
        /// <summary>
        /// 読み込み処理
        /// </summary>
        /// <param name="clXmlNode">xmlノード</param>
        public void Load(XmlNode clXmlNode)
        {
            XmlNodeList clListNode   = clXmlNode.ChildNodes;
            string      clTypeOption = ClsTool.GetStringFromXmlNodeList(clListNode, "TypeOption");

            this.mTypeOption = (EnmTypeOption)Enum.Parse(typeof(EnmTypeOption), clTypeOption);

            //以下、各管理クラス作成処理
            foreach (XmlNode clNode in clListNode)
            {
                if (!"KeyFrame".Equals(clNode.Name))
                {
                    continue;
                }

                bool           isEnable1     = false;
                bool           isEnable2     = false;
                object         clValue1      = ClsParam.GetDefaultValue1(this.mTypeOption);
                object         clValue2      = ClsParam.GetDefaultValue2(this.mTypeOption);
                ClsDatKeyFrame clDatKeyFrame = new ClsDatKeyFrame(this.mTypeOption, 0, isEnable1, isEnable2, null, null, clValue1, clValue2);
                clDatKeyFrame.Load(clNode);

                this.mDicKeyFrame[clDatKeyFrame.mFrameNo] = clDatKeyFrame;
                continue;
            }
        }
Пример #2
0
        private void ToolStripMenuItem_Add_Click(object sender, EventArgs e)
        {
            ClsDatMotion clMotion = ClsSystem.GetSelectMotion();

            if (clMotion == null)
            {
                return;
            }

            ClsDatElem clElem = ClsSystem.GetElemFromSelectLineNo();

            if (clElem == null)
            {
                return;
            }

            //以下、オプション追加処理
            ToolStripMenuItem clITem       = sender as ToolStripMenuItem;
            EnmTypeOption     enTypeOption = (EnmTypeOption)clITem.Tag;
            object            clValue1     = ClsParam.GetDefaultValue1(enTypeOption);
            object            clValue2     = ClsParam.GetDefaultValue2(enTypeOption);

            clElem.SetOption(enTypeOption, false, false, null, null, clValue1, clValue2);

            //以下、行番号振り直し処理
            clMotion.RefreshLineNo();

            //以下、コントロール更新処理
            this.RefreshControl();
            this.panel_Control.Refresh();
            this.panel_Time.Refresh();
            this.mFormMain.Refresh();
        }
Пример #3
0
        /// <summary>
        /// エレメント情報変更処理
        /// </summary>
        /// <param name="clElem">変更対象となるエレメント</param>
        /// <param name="enTypeOption">オプションタイプ</param>
        /// <param name="inSelectFrameNo">フレーム番号</param>
        /// <param name="isExistKeyFrame">キーフレーム存在フラグ</param>
        /// <param name="isEnable1">有効フラグ1</param>
        /// <param name="isEnable2">有効フラグ2</param>
        /// <param name="clTween1">トゥイーン1</param>
        /// <param name="clTween2">トゥイーン2</param>
        /// <param name="clValue1">値1</param>
        /// <param name="clValue2">値2</param>
        private void ChangeElem(ClsDatElem clElem, EnmTypeOption enTypeOption, int inSelectFrameNo, bool isExistKeyFrame, bool isEnable1, bool isEnable2, ClsDatTween clTween1, ClsDatTween clTween2, object clValue1, object clValue2)
        {
            ClsDatOption clOption = null;

            if (inSelectFrameNo == 0)
            {
                clElem.SetOption(enTypeOption, isEnable1, isEnable2, clTween1, clTween2, clValue1, clValue2);
            }
            else
            {
                bool isExist = clElem.IsExistOption(enTypeOption);
                if (isExist)
                {
                    clOption = clElem.GetOption(enTypeOption);
                }
                else
                {
                    clValue1 = ClsParam.GetDefaultValue1(enTypeOption);
                    clValue2 = ClsParam.GetDefaultValue2(enTypeOption);
                    clElem.SetOption(enTypeOption, isEnable1, isEnable2, clTween1, clTween2, clValue1, clValue2);
                    clOption = clElem.GetOption(enTypeOption);
                }

                if (isExistKeyFrame)
                {
                    clOption.SetKeyFrame(inSelectFrameNo, isEnable1, isEnable2, clTween1, clTween2, clValue1, clValue2);  //追加または更新
                }
                else
                {
                    clOption.RemoveKeyFrame(inSelectFrameNo);
                }
            }
        }
Пример #4
0
        /// <summary>
        /// 指定フレームの値1を取得する処理
        /// </summary>
        /// <param name="inFrameNo">フレームNo</param>
        /// <returns>値1</returns>
        public object GetValue1(int inFrameNo)
        {
            ClsDatMotion clMotion = ClsSystem.GetSelectMotion();

            if (clMotion == null)
            {
                goto RETURN_DEFAULT1;
            }

            int inMaxFrameNum   = clMotion.GetMaxFrameNum();
            int inFrameNoBefore = 0;
            int inFrameNoAfter  = 0;

            this.GetKeyFrameNo(inFrameNo, inMaxFrameNum, out inFrameNoBefore, out inFrameNoAfter);

            ClsDatKeyFrame clKeyFrameBefore = this.mDicKeyFrame[inFrameNoBefore];

            if (clKeyFrameBefore == null)
            {
                goto RETURN_DEFAULT1;
            }

            if (clKeyFrameBefore.mTween1 == null)
            {
                object clValueTmp = clKeyFrameBefore.mValue1;
                return(clValueTmp);
            }

            bool isExist = this.mDicKeyFrame.ContainsKey(inFrameNoAfter);

            if (!isExist)
            {
                goto RETURN_DEFAULT1;
            }

            ClsDatKeyFrame clKeyFrameAfter = this.mDicKeyFrame[inFrameNoAfter];

            if (clKeyFrameAfter == null)
            {
                goto RETURN_DEFAULT1;
            }

            object clValueBefore = clKeyFrameBefore.mValue1;

            if (clValueBefore == null)
            {
                goto RETURN_DEFAULT1;
            }

            if (clValueBefore is bool && clValueBefore is string)
            {
                return(clValueBefore);
            }

            object clValueAfter = clKeyFrameAfter.mValue1;

            if (clValueAfter == null)
            {
                goto RETURN_DEFAULT1;
            }

            if (clValueAfter is bool && clValueAfter is string)
            {
                goto RETURN_DEFAULT1;
            }

            //以下、現在フレームの値(トゥイーン込みの)計算処理
            if (clValueBefore is int && clValueAfter is int)
            {
                //Tweenを見て値を分割する処理
                //clKeyFrameBefore.mTween1.GetRate //←中でその場で256の重みリストを作成してない?
                //もしそうなら、そのリストをメンバ内に保持するようにする
            }
            else if (clValueBefore is float && clValueAfter is float)
            {
                //Tweenを見て値を分割する処理
                //clKeyFrameBefore.mTween1.GetRate //←中でその場で256の重みリストを作成してない?
                //もしそうなら、そのリストをメンバ内に保持するようにする
            }

RETURN_DEFAULT1:
            object clValue = ClsParam.GetDefaultValue1(this.mTypeOption);

            return(clValue);
        }