// Token: 0x06000206 RID: 518 RVA: 0x0000DFFC File Offset: 0x0000C1FC private ItSegment AddSegment(ItBar xmlBar, List <ItGeCurve3d> rebarList, int index, ItSegment prevSegment, ref bool flipFutureYs) { bool flag = index >= rebarList.Count; ItSegment result; if (flag) { result = null; } else { ItGeCurve3d curve = rebarList[index]; ItGeCurve3d nextCurve = (index < rebarList.Count - 1) ? rebarList[index + 1] : null; ItSegment itSegment2; ItSegment itSegment = this.CreateSegment(xmlBar, prevSegment, curve, nextCurve, ref flipFutureYs, out itSegment2); bool flag2 = itSegment == null; if (flag2) { result = null; } else { bool flag3 = itSegment2 != null; if (flag3) { xmlBar.segmentList.Add(itSegment2); } xmlBar.segmentList.Add(itSegment); result = itSegment; } } return(result); }
// Token: 0x06000205 RID: 517 RVA: 0x0000DF78 File Offset: 0x0000C178 private ItSegment AddFirstSegment(ItBar xmlBar, List <ItGeCurve3d> rebarList, ref bool flipFutureYs) { bool flag = rebarList.none <ItGeCurve3d>(); ItSegment result; if (flag) { result = null; } else { ItGeCurve3d firstCurve = rebarList[0]; ItGeCurve3d nextCurve = (rebarList.Count > 1) ? rebarList[1] : null; ItSegment itSegment2; ItSegment itSegment = this.CreateFirstSegment(rebarList, xmlBar, firstCurve, nextCurve, ref flipFutureYs, out itSegment2); bool flag2 = itSegment == null; if (flag2) { result = null; } else { bool flag3 = itSegment2 != null; if (flag3) { xmlBar.segmentList.Add(itSegment2); } xmlBar.segmentList.Add(itSegment); result = itSegment; } } return(result); }
// Token: 0x06000212 RID: 530 RVA: 0x0000E798 File Offset: 0x0000C998 private void SetCurrentNormal(ItBar xmlBar, double rotX, double bendY, ItSegment prevSegment) { rotX = ItAngle.toRad(rotX); bendY = ItAngle.toRad(bendY); ItGeVector3d vec = new ItGeVector3d(prevSegment.YVector).rotateBy(rotX, prevSegment.XVector); xmlBar.CurrentNormal = xmlBar.CurrentNormal.rotateBy(rotX, prevSegment.XVector).rotateBy(bendY, -1.0 * vec); }
// 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: 0x060001BD RID: 445 RVA: 0x0000BEE8 File Offset: 0x0000A0E8 private static void AddSegmentsToBar(ItBar bar, WireItem wire) { double length = wire.Length; double r = 0.0; double rotX = 0.0; double bendY = 0.0; ItGeMatrix3d kIdentity = ItGeMatrix3d.kIdentity; ItSegment item = new ItSegment(length, r, rotX, bendY, kIdentity, "normal"); bar.segmentList.Add(item); }
// Token: 0x06000215 RID: 533 RVA: 0x0000E988 File Offset: 0x0000CB88 private ItSegment GetStartSegment(ItBar xmlBar) { ItGeMatrix3d mat = ItGeMatrix3d.rotation(xmlBar.RotZ * 3.1415926535897931 / 180.0, ItGeVector3d.kZAxis, ItGePoint3d.kOrigin); ItGeVector3d xAxis = mat * ItGeVector3d.kXAxis; ItGeVector3d yAxis = mat * ItGeVector3d.kYAxis; ItGeVector3d zAxis = mat * ItGeVector3d.kZAxis; double l = 0.0; double r = 0.0; double rotX = 0.0; double bendY = 0.0; ItGeMatrix3d kIdentity = ItGeMatrix3d.kIdentity; kIdentity.setCoordSystem(ItGePoint3d.kOrigin, xAxis, yAxis, zAxis); return(new ItSegment(l, r, rotX, bendY, kIdentity, "normal")); }
// 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: 0x06000204 RID: 516 RVA: 0x0000DF1C File Offset: 0x0000C11C private void FillSegments(ItBar xmlBar, List <ItGeCurve3d> rebarList) { bool flag = rebarList.Count == 0; if (!flag) { bool flag2 = true; ItSegment itSegment = this.AddFirstSegment(xmlBar, rebarList, ref flag2); ItSegment prevSegment = itSegment; int num; for (int i = 1; i < rebarList.Count; i = num + 1) { prevSegment = this.AddSegment(xmlBar, rebarList, i, prevSegment, ref flag2); num = i; } } }
// Token: 0x060001BC RID: 444 RVA: 0x0000BE18 File Offset: 0x0000A018 protected static void AddWireToSteelBlock(ItSteel steelBlock, WireItem wire) { ItGePoint3d startPoint = wire.StartPoint; ItGePoint3d point = startPoint + wire.ParentMesh.PosPalette.asVector(); ItGePoint3d itGePoint3d = steelBlock.Offset(point); ItBar itBar = new ItBar(); itBar.ShapeMode = ShapeMode.realistic; itBar.ReinforcementType = wire.ReinforcementType; itBar.SteelQuality = wire.SteelQuality; itBar.PieceCount = 1; itBar.Diameter = wire.WireDiameter; itBar.X = itGePoint3d.x; itBar.Y = itGePoint3d.y; itBar.Z = itGePoint3d.z; itBar.RotZ = SteelGroupElementMeshBase.GetRotZ(wire); itBar.ArticleNo = wire.ArticleNumber; itBar.NoAutoProd = false; SteelGroupElementMeshBase.AddSegmentsToBar(itBar, wire); steelBlock.barList.Add(itBar); }
// Token: 0x06000201 RID: 513 RVA: 0x0000DD94 File Offset: 0x0000BF94 public List <ItBar> ToBarList(ItSteel steelBlock, List <List <ItGeCurve3d> > ironSet) { List <ItBar> list = new List <ItBar>(); bool flag = ironSet.none <List <ItGeCurve3d> >(); List <ItBar> result; if (flag) { result = list; } else { bool flag2 = this.RebarBarType == null; if (flag2) { result = list; } else { foreach (List <ItGeCurve3d> list2 in ironSet) { bool flag3 = list2.none <ItGeCurve3d>(); if (!flag3) { double rotZ = 0.0; ItGeCurve3d firstSeg = list2.FirstOrDefault <ItGeCurve3d>(); ItGePoint3d rebarStartPoint = SteelGroupElementRebarBase.GetRebarStartPoint(firstSeg); ItGePoint3d startPoint = steelBlock.Offset(rebarStartPoint); ItBar itBar = this.CreateBarElement(startPoint, rotZ); this.FillSegments(itBar, list2); list.Add(itBar); } } result = list; } } 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); }
// Token: 0x0600020B RID: 523 RVA: 0x0000E310 File Offset: 0x0000C510 private ItSegment GetFirstSegFromLineSeg(ItBar xmlBar, ItGeLineSeg3d firstSeg, ItGeVector3d xzPlaneNormal, ItGeCurve3d nextCurve, ref bool flipFutureYs) { ItGeVector3d direction = firstSeg.direction(); ItSegment startSegment = this.GetStartSegment(xmlBar); double num; double num2; this.GetRotationsInDegree(xzPlaneNormal, startSegment, direction, ref flipFutureYs, out num, out num2); this.SetCurrentNormal(xmlBar, num, num2, startSegment); ItGeVector3d xAxis; ItGeVector3d yAxis; ItGeVector3d zAxis; this.GetNewDirections(num, num2, startSegment, out xAxis, out yAxis, out zAxis); double len = firstSeg.len; ItGeMatrix3d kIdentity = ItGeMatrix3d.kIdentity; kIdentity.setCoordSystem(ItGePoint3d.kOrigin, xAxis, yAxis, zAxis); ItSegment itSegment = new ItSegment(len, 0.0, Math.Round(num, 10), Math.Round(num2, 10), kIdentity, "normal"); this.FixSegmentLength(itSegment, nextCurve); return(itSegment); }