public static Fixture AttachLineArc(FP radians, int sides, FP radius, FPVector2 position, FP angle, bool closed, Body body) { Vertices arc = PolygonTools.CreateArc(radians, sides, radius); arc.Rotate((FP.Pi - radians) / 2 + angle); arc.Translate(ref position); return(closed ? AttachLoopShape(arc, body) : AttachChainShape(arc, body)); }
public static List <Fixture> AttachSolidArc(FP density, FP radians, int sides, FP radius, FPVector2 position, FP angle, Body body) { Vertices arc = PolygonTools.CreateArc(radians, sides, radius); arc.Rotate((FP.Pi - radians) / 2 + angle); arc.Translate(ref position); //Close the arc arc.Add(arc[0]); List <Vertices> triangles = Triangulate.ConvexPartition(arc, TriangulationAlgorithm.Earclip, true, FP.EN3); return(AttachCompoundPolygon(triangles, density, body)); }