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

            for (int i = 0; i < Point.childNode.Count; ++i)
            {
                ADBRuntimeConstraint constraint = new ADBRuntimeConstraint(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 <ADBRuntimeConstraint> horizontalConstraintList, ref List <ADBRuntimeConstraint> ConstraintList, float shrink, float stretch, bool isLoop)
        {
            for (int i = 0; i < horizontalConstraintList.Count; i++)
            {
                ADBRuntimeConstraint ConstraintA = horizontalConstraintList[i];

                int j0 = isLoop ? 0 : i;
                for (; j0 < horizontalConstraintList.Count; j0++)
                {
                    ADBRuntimeConstraint ConstraintB = horizontalConstraintList[j0];
                    if ((ConstraintA.constraintRead.shrink == 0 && ConstraintA.constraintRead.stretch == 0 || //OYM:排除A杆件或B杆件是isloopPoint生成的不承受力的杆件
                         ConstraintB.constraintRead.shrink == 0 && ConstraintB.constraintRead.stretch == 0) &&
                        ConstraintA.pointB == ConstraintB.pointA)
                    {
                        ConstraintList.Add(new ADBRuntimeConstraint(ConstraintType.Bending_Horizontal, ConstraintA.pointA, ConstraintB.pointB, shrink, stretch, false));
                    }
                }
            }
        }