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)); } } } }