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