// Token: 0x06000210 RID: 528 RVA: 0x0000E648 File Offset: 0x0000C848
        private ItSegment GetSegmentFromLineSeg(ItBar xmlBar, ItSegment prevSegment, ItGeLineSeg3d lineSeg, ItGeCurve3d nextCurve, ref bool flipFutureYs)
        {
            ItGeVector3d itGeVector3d  = lineSeg.direction();
            ItGeVector3d xvector       = prevSegment.XVector;
            ItGeVector3d itGeVector3d2 = itGeVector3d.orthoProject(xvector);
            double       num;
            double       num2;

            this.GetRotationsInDegree(xmlBar.CurrentNormal, prevSegment, itGeVector3d, ref flipFutureYs, out num, out num2);
            this.SetCurrentNormal(xmlBar, num, num2, prevSegment);
            ItGeVector3d xAxis;
            ItGeVector3d yAxis;
            ItGeVector3d zAxis;

            this.GetNewDirections(num, num2, prevSegment, out xAxis, out yAxis, out zAxis);
            double len = lineSeg.len;
            double r   = 0.0;

            num  = Math.Round(num, 10);
            num2 = Math.Round(num2, 10);
            ItGeMatrix3d kIdentity = ItGeMatrix3d.kIdentity;

            kIdentity.setCoordSystem(ItGePoint3d.kOrigin, xAxis, yAxis, zAxis);
            ItSegment itSegment = new ItSegment(len, r, num, num2, kIdentity, "normal");

            this.FixSegmentLength(itSegment, nextCurve);
            return(itSegment);
        }
Exemplo n.º 2
0
        // Token: 0x060001E4 RID: 484 RVA: 0x0000D60C File Offset: 0x0000B80C
        private static bool IsSingleIronInXYPlane(List <ItGeCurve3d> firstList)
        {
            ItGeVector3d directionFromCurve = SteelGroupElementRebarBase.GetDirectionFromCurve(firstList[0]);
            ItGeVector3d refVec             = directionFromCurve.crossProduct(ItGeVector3d.kZAxis);
            ItGeVector3d vec = directionFromCurve.orthoProject(ItGeVector3d.kZAxis);
            double       a   = directionFromCurve.angleTo(vec, refVec);

            return(a.Eq(0.0, -1.0));
        }
        // Token: 0x0600020D RID: 525 RVA: 0x0000E42C File Offset: 0x0000C62C
        private void GetRotationComplex(ItGeVector3d rebarPlaneNormal, ItSegment prevSegment, ItGeVector3d direction, ref bool flipFutureYs, out double rotX, out double bendY)
        {
            ItGeVector3d xvector       = prevSegment.XVector;
            ItGeVector3d yvector       = prevSegment.YVector;
            ItGeVector3d itGeVector3d  = yvector.orthoProject(rebarPlaneNormal);
            ItGeVector3d itGeVector3d2 = direction.crossProduct(rebarPlaneNormal);

            rotX  = itGeVector3d.angleTo(itGeVector3d2, xvector);
            rotX  = SteelGroupElementRebarBase.FixRotX(rotX, ref flipFutureYs);
            bendY = xvector.angleTo(direction, itGeVector3d2);
            bendY = SteelGroupElement.FixAngleRange(bendY, flipFutureYs);
        }