/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
public class LoopPipe
implements PixelDrawPipe,
{
{
}
{
}
{
}
{
}
int startAngle, int arcAngle)
{
}
int nPoints)
{
int nPointsArray[] = { nPoints };
nPointsArray, 1,
false);
}
int nPoints)
{
int nPointsArray[] = { nPoints };
nPointsArray, 1,
true);
}
{
}
{
}
{
}
int startAngle, int arcAngle)
{
}
int nPoints)
{
try {
} finally {
}
}
int transX;
int transY;
} else {
}
} else {
transX = 0;
transY = 0;
}
return;
}
return;
}
try {
} finally {
}
}
/**
* Return a ShapeSpanIterator instance that normalizes as
* appropriate for a fill operation as per the settings in
* the specified SunGraphics2D object.
*
* The ShapeSpanIterator will be newly constructed and ready
* to start taking in geometry.
*
* Note that the caller is responsible for calling dispose()
* <pre>
* ShapeSpanIterator ssi = LoopPipe.getFillSSI(sg2d);
* try {
* ssi.setOutputArea(clip);
* ssi.appendPath(...); // or appendPoly
* // iterate the spans from ssi and operate on them
* } finally {
* ssi.dispose();
* }
* </pre>
*/
return new ShapeSpanIterator(adjust);
}
/*
* Return a ShapeSpanIterator ready to iterate the spans of the wide
* outline of Shape s using the attributes of the SunGraphics2D
* object.
*
* The ShapeSpanIterator returned will be fully constructed
* and filled with the geometry from the Shape widened by the
* appropriate BasicStroke and normalization parameters taken
* from the SunGraphics2D object and be ready to start returning
* spans.
*
* Note that the caller is responsible for calling dispose()
* <pre>
* ShapeSpanIterator ssi = LoopPipe.getStrokeSpans(sg2d, s);
* try {
* // iterate the spans from ssi and operate on them
* } finally {
* ssi.dispose();
* }
* </pre>
*
* REMIND: This should return a SpanIterator interface object
* but the caller needs to dispose() the object and that method
* is only on ShapeSpanIterator.
* TODO: Add a dispose() method to the SpanIterator interface.
*/
Shape s)
{
try {
boolean normalize =
} catch (Throwable t) {
t.printStackTrace();
throw new InternalError("Unable to Stroke shape ("+
t.getMessage()+")");
}
return sr;
}
int transX;
int transY;
} else {
}
} else {
transX = 0;
transY = 0;
}
return;
}
try {
? null
} finally {
}
}
// REMIND: Eventually, the plan is that it will not be possible for
// fs to be null since the FillSpans loop will be the fundamental
// loop implemented for any destination type...
// REMIND: Region.filter produces a Java-only iterator
// with no native counterpart...
} else {
return;
}
}
int spanbox[] = new int[4];
int x = spanbox[0];
int y = spanbox[1];
int w = spanbox[2] - x;
int h = spanbox[3] - y;
}
}
double x, double y,
{
}
double x, double y,
{
}
}