// Token: 0x0600000E RID: 14 RVA: 0x000026EC File Offset: 0x000008EC public static FacetedBRep ConvertToFacetedBRep(this SweptDiskSolid sweptDiskSolid, Angle tesselation, double epsilon = 1E-05) { Wire3 wire = sweptDiskSolid.Wire; if (wire.Edges.Count == 0 || wire.ContinuousError > epsilon || tesselation.Radians < epsilon) { return(null); } IEdge3 edge = wire.Edges[0]; AffineTransform3 affineTransform = Transform3Factory.CreateOrthonormalBasis(edge.StartDirection); AffineTransform3 transform = new AffineTransform3(affineTransform.AxisX, affineTransform.AxisY, affineTransform.AxisZ, edge.StartPoint); IList <Vector3> sweepContour = SweptDiskSolidExtensions.CreateSweepContour(Math.Round(Angle.FullCircle / tesselation, MidpointRounding.AwayFromZero), sweptDiskSolid.Radius); List <Vector3> list = new List <Vector3>(); List <int[]> list2 = new List <int[]>(); SweptDiskSolidExtensions.AddStartFace(list, list2, sweepContour, transform); foreach (IEdge3 edge2 in wire.Edges) { SweptDiskSolidExtensions.CreateTesselatedEdge(list, list2, sweepContour, tesselation, ref transform, edge2); } SweptDiskSolidExtensions.AddEndFace(list, list2, sweepContour); return(new FacetedBRep(list.ToArray(), list2.ToArray(), new Dictionary <int, int[][]>())); }
// 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; } }