コード例 #1
0
        // Token: 0x06000010 RID: 16 RVA: 0x0000287C File Offset: 0x00000A7C
        private static void CreateTesselatedEdge(List <Vector3> vertices, List <int[]> wires, IList <Vector3> sweepContour, Angle curveTesselation, ref AffineTransform3 transform, IEdge3 edge)
        {
            EdgeLineSegment3 edgeLineSegment = edge as EdgeLineSegment3;

            if (edgeLineSegment != null)
            {
                SweptDiskSolidExtensions.CreateTesselatedEdgeLine(vertices, wires, sweepContour, ref transform, edgeLineSegment);
                return;
            }
            EdgeArc3 edgeArc = edge as EdgeArc3;

            if (edgeArc != null)
            {
                SweptDiskSolidExtensions.CreateTesselatedEdgeArc(vertices, wires, sweepContour, curveTesselation, ref transform, edgeArc);
                return;
            }
            EdgePolyLineSegment3 edgePolyLineSegment = edge as EdgePolyLineSegment3;

            if (edgePolyLineSegment != null)
            {
                SweptDiskSolidExtensions.CreateTesselatedEdgePolyLine(vertices, wires, sweepContour, ref transform, edgePolyLineSegment);
                return;
            }
        }
コード例 #2
0
        // Token: 0x06000011 RID: 17 RVA: 0x000028D0 File Offset: 0x00000AD0
        private static void CreateTesselatedEdgeLine(List <Vector3> vertices, List <int[]> wires, IList <Vector3> sweepContour, ref AffineTransform3 transform, EdgeLineSegment3 edgeLineSegment)
        {
            int num   = vertices.Count - sweepContour.Count;
            int count = vertices.Count;

            transform = new AffineTransform3(transform.AxisX, transform.AxisY, transform.AxisZ, transform.Origin + edgeLineSegment.Segment.Direction * (edgeLineSegment.Segment.Extent * 2.0));
            int num2 = 0;

            foreach (Vector3 input in sweepContour)
            {
                int num3 = (num2 + 1) % sweepContour.Count;
                vertices.Add(transform.Transform(input));
                int[] item = new int[]
                {
                    num + num2,
                    num + num3,
                    count + num3,
                    count + num2
                };
                wires.Add(item);
                num2++;
            }
        }