void CopyChildrenMatFrom_0(TMONode motion, List <string> except_names) { List <TMONode> select_children = new List <TMONode>(); foreach (TMONode child_node in children) { bool found = false; foreach (string except_name in except_names) { if (child_node.name == except_name) { found = true; break; } } if (found) { except_names.Remove(child_node.name); } else { select_children.Add(child_node); } } foreach (TMONode child_node in select_children) { TMONode motion_child = motion.FindChildByName(child_node.name); child_node.CopyThisMatFrom(motion_child); child_node.CopyChildrenMatFrom_0(motion_child, except_names); } }
/// <summary> /// 指定nodeから行列を複写します。 /// </summary> /// <param name="motion">node</param> public void CopyMatFrom(TMONode motion) { CopyThisMatFrom(motion); foreach (TMONode child_node in children) { child_node.CopyMatFrom(motion.FindChildByName(child_node.name)); } }
void CopyChildrenMatFrom_0(TMONode motion, List<string> except_names) { List<TMONode> select_children = new List<TMONode>(); foreach (TMONode child_node in children) { bool found = false; foreach (string except_name in except_names) { if (child_node.name == except_name) { found = true; break; } } if (found) except_names.Remove(child_node.name); else select_children.Add(child_node); } foreach (TMONode child_node in select_children) { TMONode motion_child = motion.FindChildByName(child_node.name); child_node.CopyThisMatFrom(motion_child); child_node.CopyChildrenMatFrom_0(motion_child, except_names); } }