コード例 #1
0
  public static boolean combineDisjointPolygons(
      FrameConvexPolygon2d polygon1,
      FrameConvexPolygon2d polygon2,
      FrameConvexPolygon2d combinedPolygonToPack,
      FrameLineSegment2d connectingEdge1ToPack,
      FrameLineSegment2d connectingEdge2ToPack) {
    combinedPolygonToPack.clear(polygon1.getReferenceFrame());
    combinedPolygonToPack.checkReferenceFrameMatch(connectingEdge1ToPack);
    combinedPolygonToPack.checkReferenceFrameMatch(connectingEdge2ToPack);

    boolean success =
        combineDisjointPolygons(
            polygon1.convexPolygon,
            polygon2.convexPolygon,
            combinedPolygonToPack.convexPolygon,
            connectingEdge1ToPack.lineSegment,
            connectingEdge2ToPack.lineSegment);

    if (!success) return false;

    combinedPolygonToPack.updateFramePoints();

    return true;
  }