コード例 #1
0
        //=========================================================================================
        /// <summary>
        /// 仮想メッシュ頂点に対する最も影響が強い子頂点を辞書にして返す
        /// 仮想メッシュ頂点に影響する子頂点を辞書にして返す
        /// 子頂点はuintで上位16bitが子メッシュインデックス、下位16bitが子頂点インデックスとなる
        /// </summary>
        /// <returns></returns>
        public Dictionary <int, List <uint> > GetVirtualToChildVertexDict()
        {
            var dict = new Dictionary <int, List <uint> >();

            for (int i = 0; i < VertexCount; i++)
            {
                dict.Add(i, new List <uint>());
            }

            for (int i = 0; i < childDataList.Count; i++)
            {
                var cdata = childDataList[i];

                for (int j = 0; j < cdata.VertexCount; j++)
                {
                    if (j < cdata.parentIndexList.Length)
                    {
                        int mvindex = cdata.parentIndexList[j];
                        dict[mvindex].Add(DataUtility.Pack16(i, j));
                    }
                }
            }

            return(dict);
        }