Esempio n. 1
0
        //=========================================================================================
#if false
        static void DrawRootLine(BoneSpring scr)
        {
            for (int i = 0; i < scr.ClothTarget.RootCount; i++)
            {
                var root = scr.ClothTarget.GetRoot(i);
                if (root == null)
                {
                    continue;
                }

                DrawTransformLine(root, root);
            }
        }
Esempio n. 2
0
        //=========================================================================================
#if false
        /// <summary>
        /// 選択データの初期化
        /// 配列はすでに頂点数分が確保されゼロクリアされています。
        /// </summary>
        /// <param name="selectorData"></param>
        protected override void OnResetSelector(List <int> selectorData)
        {
            // ルートトランスフォームのみ固定で初期化する
            BoneSpring scr = target as BoneSpring;

            // 選択クラスが無い場合は作成する
            CreateSelection(scr, "clothSelection");

            // 現在の頂点選択データをコピー
            // また新規データの場合はボーン階層のルートを固定化する
            bool init = scr.ClothSelection.DeformerCount == 0;
            var  sel  = scr.ClothSelection.GetSelectionData(scr.MeshData);

            if (init)
            {
                var tlist = scr.GetTransformList();
                if (tlist.Count != sel.Count)
                {
                    sel.Clear();
                    for (int i = 0; i < tlist.Count; i++)
                    {
                        sel.Add(SelectionData.Invalid);
                    }
                }

                for (int i = 0; i < tlist.Count; i++)
                {
                    var t    = tlist[i];
                    int data = 0;
                    if (scr.ClothTarget.GetRootIndex(t) >= 0)
                    {
                        // 固定
                        data = SelectionData.Fixed;
                    }
                    else
                    {
                        // 移動
                        data = SelectionData.Move;
                    }
                    sel[i] = data;
                }
            }
            for (int i = 0; i < selectorData.Count; i++)
            {
                if (i < sel.Count)
                {
                    selectorData[i] = sel[i];
                }
            }
        }