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