private void CreateConstraintStructuralVertical(ADBRuntimePoint Point, ref List <ADBConstraintRead> ConstraintList, float shrink, float stretch)
        {
            if (Point == null || Point.childNode == null)
            {
                return;
            }

            for (int i = 0; i < Point.childNode.Count; ++i)
            {
                var constraint = new ADBConstraintRead(ConstraintType.Structural_Vertical, Point, Point.childNode[i], shrink, stretch, aDBSetting.isCollideStructuralVertical);

                ConstraintList.Add(constraint);
                CreateConstraintStructuralVertical(Point.childNode[i], ref ConstraintList, shrink, stretch);
            }
        }
        private static void CreationConstraintBendingHorizontal(List <ADBConstraintRead> horizontalConstraintList, ref List <ADBConstraintRead> ConstraintList, float shrink, float stretch, bool isLoop)
        {
            for (int i = 0; i < horizontalConstraintList.Count; i++)
            {
                ADBConstraintRead ConstraintA = horizontalConstraintList[i];

                int j0 = isLoop ? 0 : i;
                for (; j0 < horizontalConstraintList.Count; j0++)
                {
                    ADBConstraintRead ConstraintB = horizontalConstraintList[j0];
                    if (ConstraintA.pointB == ConstraintB.pointA)
                    {
                        ConstraintList.Add(new ADBConstraintRead(ConstraintType.Bending_Horizontal, ConstraintA.pointA, ConstraintB.pointB, shrink, stretch, false));
                    }
                }
            }
        }