// Token: 0x06000209 RID: 521 RVA: 0x0000E100 File Offset: 0x0000C300 private ItSegment CreateSegment(ItBar xmlBar, ItSegment prevSegment, ItGeCurve3d curve, ItGeCurve3d nextCurve, ref bool flipFutureYs, out ItSegment additionalSegment) { additionalSegment = null; ItGeLineSeg3d itGeLineSeg3d = curve as ItGeLineSeg3d; ItGeCircArc3d itGeCircArc3d = curve as ItGeCircArc3d; bool flag = itGeLineSeg3d != null; ItSegment result; if (flag) { result = this.GetSegmentFromLineSeg(xmlBar, prevSegment, itGeLineSeg3d, nextCurve, ref flipFutureYs); } else { bool flag2 = itGeCircArc3d != null; if (flag2) { result = this.GetSegmentFromCircArc(xmlBar, prevSegment, itGeCircArc3d, ref flipFutureYs, out additionalSegment); } else { result = null; } } return(result); }
// Token: 0x06000207 RID: 519 RVA: 0x0000E08C File Offset: 0x0000C28C private ItSegment CreateFirstSegment(List <ItGeCurve3d> rebarList, ItBar xmlBar, ItGeCurve3d firstCurve, ItGeCurve3d nextCurve, ref bool flipFutureYs, out ItSegment additionalSegment) { additionalSegment = null; ItGeVector3d rebarElementNormal = this.GetRebarElementNormal(); ItGeVector3d normalFromFirstTwoSegments = SteelGroupElementRebarBase.GetNormalFromFirstTwoSegments(rebarList, rebarElementNormal); ItGeLineSeg3d itGeLineSeg3d = firstCurve as ItGeLineSeg3d; ItGeCircArc3d itGeCircArc3d = firstCurve as ItGeCircArc3d; bool flag = itGeLineSeg3d != null; ItSegment result; if (flag) { result = this.GetFirstSegFromLineSeg(xmlBar, itGeLineSeg3d, normalFromFirstTwoSegments, nextCurve, ref flipFutureYs); } else { bool flag2 = itGeCircArc3d != null; if (flag2) { result = this.GetFirstSegFromCircArc(xmlBar, itGeCircArc3d, normalFromFirstTwoSegments, ref flipFutureYs, out additionalSegment); } else { result = null; } } return(result); }
// Token: 0x0600020A RID: 522 RVA: 0x0000E160 File Offset: 0x0000C360 private ItSegment GetFirstSegFromCircArc(ItBar xmlBar, ItGeCircArc3d firstCirc, ItGeVector3d xzPlaneNormal, ref bool flipFutureYs, out ItSegment additionalSegment) { ItGeLine3d itGeLine3d; firstCirc.tangent(firstCirc.startPoint(), out itGeLine3d, null); ItGeVector3d itGeVector3d = itGeLine3d.direction().negate(); ItSegment startSegment = this.GetStartSegment(xmlBar); double num; double num2; this.GetRotationsInDegree(xzPlaneNormal, startSegment, itGeVector3d, ref flipFutureYs, out num, out num2); ItGeVector3d itGeVector3d2; ItGeVector3d yAxis; ItGeVector3d zAxis; this.GetNewDirections(num, num2, startSegment, out itGeVector3d2, out yAxis, out zAxis); this.SetCurrentNormal(xmlBar, num, num2, startSegment); ItDebug.assert(itGeVector3d2.isCodirectionalTo(itGeVector3d, null), "Failure in: "); double l = 0.0; double r = 0.0; double rotX = Math.Round(num, 10); double bendY = Math.Round(num2, 10); ItGeMatrix3d kIdentity = ItGeMatrix3d.kIdentity; kIdentity.setCoordSystem(ItGePoint3d.kOrigin, itGeVector3d, yAxis, zAxis); additionalSegment = new ItSegment(l, r, rotX, bendY, kIdentity, "normal"); double circleSign = this.GetCircleSign(xmlBar, firstCirc); double num3; double num4; this.GetRotationsInDegree(xzPlaneNormal, additionalSegment, itGeVector3d, ref flipFutureYs, out num3, out num4); ItGeVector3d itGeVector3d3; ItGeVector3d itGeVector3d4; ItGeVector3d itGeVector3d5; this.GetNewDirections(num3, 0.0, startSegment, out itGeVector3d3, out itGeVector3d4, out itGeVector3d5); this.SetCurrentNormal(xmlBar, num3, 0.0, additionalSegment); double num5 = this.GetCentralAngleWithSign(firstCirc, circleSign); num5 = ItAngle.toDegree(num5); ItGeLine3d itGeLine3d2; firstCirc.tangent(firstCirc.startPoint(), out itGeLine3d2, null); ItGeVector3d itGeVector3d6 = itGeLine3d2.direction(); ItGeVector3d zAxis2 = itGeVector3d6.crossProduct(xzPlaneNormal); double l2 = 0.0; double r2 = firstCirc.radius(); double rotX2 = Math.Round(num3, 10); double bendY2 = Math.Round(num5, 10); kIdentity = ItGeMatrix3d.kIdentity; kIdentity.setCoordSystem(ItGePoint3d.kOrigin, itGeVector3d6, xzPlaneNormal, zAxis2); return(new ItSegment(l2, r2, rotX2, bendY2, kIdentity, "normal")); }
// Token: 0x06000214 RID: 532 RVA: 0x0000E8A4 File Offset: 0x0000CAA4 public static ItGeVector3d GetNormalFromTwoSegments(ItGeCurve3d firstCurve, ItGeCurve3d nextCurve) { ItGeCircArc3d itGeCircArc3d = firstCurve as ItGeCircArc3d; ItGeLineSeg3d itGeLineSeg3d = firstCurve as ItGeLineSeg3d; bool flag = itGeCircArc3d != null; ItGeVector3d result; if (flag) { result = itGeCircArc3d.normal(); } else { ItGeVector3d itGeVector3d = itGeLineSeg3d.direction(); ItGeCircArc3d itGeCircArc3d2 = nextCurve as ItGeCircArc3d; ItGeLineSeg3d itGeLineSeg3d2 = nextCurve as ItGeLineSeg3d; bool flag2 = itGeCircArc3d2 != null; if (flag2) { ItGeVector3d itGeVector3d2 = itGeCircArc3d2.normal(); ItGePlane itGePlane = new ItGePlane(ItGePoint3d.kOrigin, itGeVector3d2); ItGePoint3d itGePoint3d; bool flag3 = itGePlane.intersectWith(itGeLineSeg3d, out itGePoint3d, null); if (flag3) { result = ItGeVector3d.kYAxis; } else { result = itGeVector3d2; } } else { bool flag4 = itGeLineSeg3d2 != null; if (flag4) { ItGeVector3d vec = itGeLineSeg3d2.direction(); ItGeVector3d itGeVector3d3 = itGeVector3d.crossProduct(vec); bool flag5 = itGeVector3d3.length().Gt(0.0, -1.0); if (flag5) { return(itGeVector3d3); } } result = null; } } return(result); }
// Token: 0x06000217 RID: 535 RVA: 0x0000EAF0 File Offset: 0x0000CCF0 private double GetCircleSign(ItBar xmlBar, ItGeCircArc3d circArc) { ItGeVector3d vec = circArc.normal(); bool flag = xmlBar.CurrentNormal.isCodirectionalTo(vec, null); double result; if (flag) { result = -1.0; } else { result = 1.0; } return(result); }
// Token: 0x0600022D RID: 557 RVA: 0x0000F48C File Offset: 0x0000D68C protected static ItGeVector3d GetDirectionFromCurve(ItGeCurve3d curve) { ItGeLineSeg3d itGeLineSeg3d = curve as ItGeLineSeg3d; ItGeCircArc3d itGeCircArc3d = curve as ItGeCircArc3d; bool flag = itGeLineSeg3d != null; ItGeVector3d result; if (flag) { result = itGeLineSeg3d.direction(); } else { ItGeLine3d itGeLine3d; itGeCircArc3d.tangent(itGeCircArc3d.startPoint(), out itGeLine3d, null); result = itGeLine3d.direction(); } return(result); }
// Token: 0x06000216 RID: 534 RVA: 0x0000EA48 File Offset: 0x0000CC48 private void FixSegmentLength(ItSegment segment, ItGeCurve3d nextCurve) { ItGeCircArc3d itGeCircArc3d = nextCurve as ItGeCircArc3d; bool flag = itGeCircArc3d == null; if (!flag) { double num = Math.Abs(this.GetCentralAngleWithSign(itGeCircArc3d, 1.0)); bool flag2 = num.Ge(1.5707963267948966, -1.0); if (flag2) { segment.L += itGeCircArc3d.radius(); } else { double num2 = itGeCircArc3d.radius(); double num3 = Math.Sin(num); double value = num3 * num2; segment.L += Math.Round(value, 5); } } }
// Token: 0x0600020F RID: 527 RVA: 0x0000E4EC File Offset: 0x0000C6EC private ItSegment GetSegmentFromCircArc(ItBar xmlBar, ItSegment prevSegment, ItGeCircArc3d circArc, ref bool flipFutureYs, out ItSegment additionalSegment) { additionalSegment = null; ItGeLine3d itGeLine3d = null; ItGeLine3d itGeLine3d2 = null; bool flag = !circArc.tangent(circArc.endPoint(), out itGeLine3d, null) || !circArc.tangent(circArc.startPoint(), out itGeLine3d2, null); ItSegment result; if (flag) { result = null; } else { ItGeVector3d itGeVector3d = (itGeLine3d2 != null) ? itGeLine3d2.direction().negate() : prevSegment.XVector; this.GetAdditionalSegment(xmlBar, prevSegment, out additionalSegment, itGeVector3d, ref flipFutureYs); ItGeVector3d rebarPlaneNormal = circArc.normal(); double num; double num2; this.GetRotationsInDegree(rebarPlaneNormal, additionalSegment ?? prevSegment, itGeVector3d, ref flipFutureYs, out num, out num2); this.SetCurrentNormal(xmlBar, num, 0.0, additionalSegment ?? prevSegment); double circleSign = this.GetCircleSign(xmlBar, circArc); double num3 = this.GetCentralAngleWithSign(circArc, circleSign); num3 = ItAngle.toDegree(num3); ItGeVector3d itGeVector3d2 = -1.0 * itGeLine3d.direction(); ItGeVector3d itGeVector3d3 = circleSign * circArc.normal(); ItGeVector3d zAxis = itGeVector3d2.crossProduct(itGeVector3d3); double l = 0.0; double r = circArc.radius(); num = Math.Round(num, 10); double bendY = Math.Round(num3, 10); ItGeMatrix3d kIdentity = ItGeMatrix3d.kIdentity; kIdentity.setCoordSystem(ItGePoint3d.kOrigin, itGeVector3d2, itGeVector3d3, zAxis); ItSegment itSegment = new ItSegment(l, r, num, bendY, kIdentity, "normal"); result = itSegment; } return(result); }
// Token: 0x06000213 RID: 531 RVA: 0x0000E800 File Offset: 0x0000CA00 public static ItGeVector3d GetNormalFromFirstTwoSegments(List <ItGeCurve3d> rebarList, ItGeVector3d defaultValue) { bool flag = rebarList.Count < 2; ItGeVector3d result; if (flag) { result = defaultValue; } else { ItGeCircArc3d itGeCircArc3d = rebarList[0] as ItGeCircArc3d; ItGeLineSeg3d firstCurve = rebarList[0] as ItGeLineSeg3d; bool flag2 = itGeCircArc3d != null; if (flag2) { result = itGeCircArc3d.normal(); } else { int num; for (int i = 1; i < rebarList.Count; i = num + 1) { ItGeCurve3d nextCurve = rebarList[i]; ItGeVector3d normalFromTwoSegments = SteelGroupElementRebarBase.GetNormalFromTwoSegments(firstCurve, nextCurve); bool flag3 = normalFromTwoSegments != null; if (flag3) { return(normalFromTwoSegments); } num = i; } result = ItGeVector3d.kYAxis; } } return(result); }
// Token: 0x06000218 RID: 536 RVA: 0x0000EB30 File Offset: 0x0000CD30 private double GetCentralAngleWithSign(ItGeCircArc3d circArc, double circleSign) { double num = circArc.endAng() - circArc.startAng(); return(circleSign * num); }