public class ClipperBridge extends Object
For example:
PolyTree
to Path
Point
to Point.LongPoint
Point.LongPoint
to Point
Modifier and Type | Field and Description |
---|---|
static double |
floatMultiplier
Since the clipper library uses integer coordinates, we should convert our floating point numbers into fixed point numbers by multiplying by this coefficient.
|
Constructor and Description |
---|
ClipperBridge() |
Modifier and Type | Method and Description |
---|---|
static List<Subpath> |
addPath(ClipperOffset offset, Path path, IClipper.JoinType joinType, IClipper.EndType endType)
Adds all iText Subpath s of the iText Path to the ClipperOffset object with one note: it doesn't add degenerate subpaths.
|
static void |
addPath(IClipper clipper, Path path, IClipper.PolyType polyType)
|
static boolean |
addPolygonToClipper(IClipper clipper, Point[] polyVertices, IClipper.PolyType polyType)
Adds polygon path based on array of Point (internally converting them by convertToLongPoints(java.util.List ) and adds this path to IClipper instance, treating the path as a closed polygon.
|
static boolean |
addPolylineSubjectToClipper(IClipper clipper, Point[] lineVertices)
Adds polyline path based on array of Point (internally converting them by convertToLongPoints(java.util.List ) and adds this path to IClipper instance, treating the path as a polyline (an open path in terms of clipper library).
|
static void |
addRectToClipper(IClipper clipper, Point[] rectVertices, IClipper.PolyType polyType)
|
static List<Point> |
convertToFloatPoints(List<Point.LongPoint> points)
Converts list of Point.LongPoint objects into list of Point objects.
|
static List<Point.LongPoint> |
convertToLongPoints(List<Point> points)
Converts list of Point objects into list of Point.LongPoint objects.
|
static Path |
convertToPath(PolyTree result)
|
static IClipper.EndType |
getEndType(int lineCapStyle)
Converts iText line cap style constant into the corresponding constant of the Clipper library.
|
static IClipper.PolyFillType |
getFillType(int fillingRule)
Converts iText filling rule constant into the corresponding constant of the Clipper library.
|
static IClipper.JoinType |
getJoinType(int lineJoinStyle)
Converts iText line join style constant into the corresponding constant of the Clipper library.
|
public static double floatMultiplier
public static void addPath(IClipper clipper, Path path, IClipper.PolyType polyType)
clipper
- The IClipper
object.
path
- The Path
object to be added to the IClipper
.
polyType
- See IClipper.PolyType
.
public static List<Subpath> addPath(ClipperOffset offset, Path path, IClipper.JoinType joinType, IClipper.EndType endType)
Subpath
s of the iText Path
to the ClipperOffset
object with one note: it doesn't add degenerate subpaths.
offset
- the ClipperOffset
object to add all iText Subpath
s that are not degenerated.
path
- Path
object, containing the required Subpath
s
joinType
- IClipper
join type. The value could be IClipper.JoinType.BEVEL
, IClipper.JoinType.ROUND
, IClipper.JoinType.MITER
endType
- IClipper
end type. The value could be IClipper.EndType.CLOSED_POLYGON
, IClipper.EndType.CLOSED_LINE
, IClipper.EndType.OPEN_BUTT
, IClipper.EndType.OPEN_SQUARE
, IClipper.EndType.OPEN_ROUND
List
consisting of all degenerate iText Subpath
s of the path.
public static List<Point> convertToFloatPoints(List<Point.LongPoint> points)
Point.LongPoint
objects into list of Point
objects.
points
- the list of Point.LongPoint
objects to convert
Point
objects.
public static List<Point.LongPoint> convertToLongPoints(List<Point> points)
Point
objects into list of Point.LongPoint
objects.
points
- the list of Point
objects to convert
Point.LongPoint
objects.
public static IClipper.JoinType getJoinType(int lineJoinStyle)
lineJoinStyle
- iText line join style constant. See PdfCanvasConstants
public static IClipper.EndType getEndType(int lineCapStyle)
lineCapStyle
- iText line cap style constant. See PdfCanvasConstants
public static IClipper.PolyFillType getFillType(int fillingRule)
fillingRule
- Either PdfCanvasConstants.FillingRule.NONZERO_WINDING
or PdfCanvasConstants.FillingRule.EVEN_ODD
.
public static boolean addPolygonToClipper(IClipper clipper, Point[] polyVertices, IClipper.PolyType polyType)
Point
(internally converting them by convertToLongPoints(java.util.List)
) and adds this path to IClipper
instance, treating the path as a closed polygon.
The return value will be false if the path is invalid for clipping. A path is invalid for clipping when:
clipper
- IClipper
instance to which the created polygon path will be added.
polyVertices
- an array of Point
which will be internally converted to clipper path and added to the clipper instance.
polyType
- either IClipper.PolyType.SUBJECT
or IClipper.PolyType.CLIP
denoting whether added path is a subject of clipping or a part of the clipping polygon.
public static boolean addPolylineSubjectToClipper(IClipper clipper, Point[] lineVertices)
Point
(internally converting them by convertToLongPoints(java.util.List)
) and adds this path to IClipper
instance, treating the path as a polyline (an open path in terms of clipper library). This path is added to the subject of future clipping. Polylines cannot be part of clipping polygon.
The return value will be false if the path is invalid for clipping. A path is invalid for clipping when:
@Deprecated public static void addRectToClipper(IClipper clipper, Point[] rectVertices, IClipper.PolyType polyType)
addPolygonToClipper(com.itextpdf.kernel.pdf.canvas.parser.clipper.IClipper, com.itextpdf.kernel.geom.Point[], com.itextpdf.kernel.pdf.canvas.parser.clipper.IClipper.PolyType)
instead.
Point
(internally converting them by convertToLongPoints(java.util.List)
) and adds this path to IClipper
instance.
clipper
- IClipper
instance to which the created rectangle path will be added.
rectVertices
- an array of Point
which will be internally converted to clipper path and added to the clipper instance.
polyType
- either IClipper.PolyType.SUBJECT
or IClipper.PolyType.CLIP
denoting whether added path is a subject of clipping or a part of the clipping polygon.
Copyright © 1998–2023 iText Group NV. All rights reserved.