org.apache.fop.render.intermediate.GraphicsPainter Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of org.apache.fop Show documentation
Show all versions of org.apache.fop Show documentation
The core maven build properties
The newest version!
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/* $Id$ */
package org.apache.fop.render.intermediate;
import java.awt.Color;
import java.awt.Point;
import java.io.IOException;
import org.apache.fop.traits.RuleStyle;
/**
* Used primarily by {@link BorderPainter}, implementations are created for rendering
* primitive graphical operations.
*
*/
public interface GraphicsPainter {
/**
* Draws a border line.
* @param x1 X coordinate of the upper left corner
* of the line's bounding rectangle (in millipoints)
* @param y1 start Y coordinate of the upper left corner
* of the line's bounding rectangle (in millipoints)
* @param x2 end X coordinate of the lower right corner
* of the line's bounding rectangle (in millipoints)
* @param y2 end y coordinate of the lower right corner
* of the line's bounding rectangle (in millipoints)
* @param horz true if it is a horizontal line
* @param startOrBefore true if the line is the start or end edge of a border box
* @param style the border style
* @param color the border color
* @throws IOException if an I/O error occurs
*/
void drawBorderLine(int x1, int y1, int x2, int y2,
boolean horz, boolean startOrBefore, int style, Color color) throws IOException;
/**
* Draws a line/rule.
* @param start start point (coordinates in millipoints)
* @param end end point (coordinates in millipoints)
* @param width width of the line
* @param color the line color
* @param style the rule style
* @throws IOException if an I/O error occurs
*/
void drawLine(Point start, Point end,
int width, Color color, RuleStyle style) throws IOException;
/**
* Moves the cursor to the given coordinate.
* @param x the X coordinate (in millipoints)
* @param y the Y coordinate (in millipoints)
* @throws IOException if an I/O error occurs
*/
void moveTo(int x, int y) throws IOException;
/**
* Draws a line from the current cursor position to the given coordinates.
* @param x the X coordinate (in millipoints)
* @param y the Y coordinate (in millipoints)
* @throws IOException if an I/O error occurs
*/
void lineTo(int x, int y) throws IOException;
/**
* Draws an arc on the ellipse centered at (cx, cy) with width width and height height
* from start angle startAngle (with respect to the x-axis counter-clockwise)
* to the end angle endAngle.
* The ellipses major axis are assumed to coincide with the coordinate axis.
* The current position MUST coincide with the starting position on the ellipse.
* @param startAngle the start angle
* @param endAngle the end angle
* @param cx the x coordinate of the ellipse center
* @param cy the y coordinate of the ellipse center
* @param width the extent of the ellipse in the x direction
* @param height the extent of the ellipse in the y direction
* @throws IOException if an I/O error occurs
*/
void arcTo(final double startAngle, final double endAngle, final int cx, final int cy,
final int width, final int height) throws IOException;
/**
* Rotate the coordinate frame
* @param angle angle in radians to rotate the coordinate frame
* @throws IOException if an I/O error occurs
*/
void rotateCoordinates(double angle) throws IOException;
/**
* Translate the coordinate frame
* @param xTranslate translation in the x direction
* @param yTranslate translation in the y direction
* @throws IOException if an I/O error occurs
*/
void translateCoordinates(int xTranslate, int yTranslate) throws IOException;
/**
* Scale the coordinate frame
* @param xScale scale factor in the x direction
* @param yScale scale factor in the y direction
* @throws IOException if an I/O error occurs
*/
void scaleCoordinates(float xScale, float yScale) throws IOException;
/**
* Closes the current path.
* @throws IOException if an I/O error occurs
*/
void closePath() throws IOException;
/**
* Reduces the current clipping region to the current path.
* @throws IOException if an I/O error occurs
*/
void clip() throws IOException;
/**
* Save the graphics state on the stack.
* @throws IOException if an I/O error occurs
*/
void saveGraphicsState() throws IOException;
/**
* Restore the last graphics state from the stack.
* @throws IOException if an I/O error occurs
*/
void restoreGraphicsState() throws IOException;
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy