//========================================================================================= #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); } }
//========================================================================================= #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]; } } }