类sun.awt.geom.PathConsumer2D源码实例Demo

下面列出了怎么用sun.awt.geom.PathConsumer2D的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: openjdk-jdk9   文件: TransformingPathConsumer2D.java
PathConsumer2D deltaTransformConsumer(PathConsumer2D out,
                                      AffineTransform at)
{
    if (at == null) {
        return out;
    }
    float mxx = (float) at.getScaleX();
    float mxy = (float) at.getShearX();
    float myx = (float) at.getShearY();
    float myy = (float) at.getScaleY();

    if (mxy == 0f && myx == 0f) {
        if (mxx == 1f && myy == 1f) {
            return out;
        } else {
            return dt_DeltaScaleFilter.init(out, mxx, myy);
        }
    } else {
        return dt_DeltaTransformFilter.init(out, mxx, mxy, myx, myy);
    }
}
 
源代码2 项目: jdk8u-jdk   文件: Stroker.java
public void pop(PathConsumer2D io) {
    numCurves--;
    int type = curveTypes[numCurves];
    end -= (type - 2);
    switch(type) {
    case 8:
        io.curveTo(curves[end+0], curves[end+1],
                   curves[end+2], curves[end+3],
                   curves[end+4], curves[end+5]);
        break;
    case 6:
        io.quadTo(curves[end+0], curves[end+1],
                   curves[end+2], curves[end+3]);
         break;
    case 4:
        io.lineTo(curves[end], curves[end+1]);
    }
}
 
源代码3 项目: openjdk-8   文件: Stroker.java
public void pop(PathConsumer2D io) {
    numCurves--;
    int type = curveTypes[numCurves];
    end -= (type - 2);
    switch(type) {
    case 8:
        io.curveTo(curves[end+0], curves[end+1],
                   curves[end+2], curves[end+3],
                   curves[end+4], curves[end+5]);
        break;
    case 6:
        io.quadTo(curves[end+0], curves[end+1],
                   curves[end+2], curves[end+3]);
         break;
    case 4:
        io.lineTo(curves[end], curves[end+1]);
    }
}
 
public static PathConsumer2D
    inverseDeltaTransformConsumer(PathConsumer2D out,
                                  AffineTransform at)
{
    if (at == null) {
        return out;
    }
    float Mxx = (float) at.getScaleX();
    float Mxy = (float) at.getShearX();
    float Myx = (float) at.getShearY();
    float Myy = (float) at.getScaleY();
    if (Mxy == 0f && Myx == 0f) {
        if (Mxx == 1f && Myy == 1f) {
            return out;
        } else {
            return new DeltaScaleFilter(out, 1.0f/Mxx, 1.0f/Myy);
        }
    } else {
        float det = Mxx * Myy - Mxy * Myx;
        return new DeltaTransformFilter(out,
                                        Myy / det,
                                        -Mxy / det,
                                        -Myx / det,
                                        Mxx / det);
    }
}
 
源代码5 项目: openjdk-8-source   文件: Stroker.java
/**
 * Constructs a <code>Stroker</code>.
 *
 * @param pc2d an output <code>PathConsumer2D</code>.
 * @param lineWidth the desired line width in pixels
 * @param capStyle the desired end cap style, one of
 * <code>CAP_BUTT</code>, <code>CAP_ROUND</code> or
 * <code>CAP_SQUARE</code>.
 * @param joinStyle the desired line join style, one of
 * <code>JOIN_MITER</code>, <code>JOIN_ROUND</code> or
 * <code>JOIN_BEVEL</code>.
 * @param miterLimit the desired miter limit
 */
public Stroker(PathConsumer2D pc2d,
               float lineWidth,
               int capStyle,
               int joinStyle,
               float miterLimit)
{
    this.out = pc2d;

    this.lineWidth2 = lineWidth / 2;
    this.capStyle = capStyle;
    this.joinStyle = joinStyle;

    float limit = miterLimit * lineWidth2;
    this.miterLimitSq = limit*limit;

    this.prev = CLOSE;
}
 
源代码6 项目: hottub   文件: RenderingEngine.java
public void strokeTo(Shape src,
                     AffineTransform at,
                     BasicStroke bs,
                     boolean thin,
                     boolean normalize,
                     boolean antialias,
                     PathConsumer2D consumer)
{
    System.out.println(name+".strokeTo("+
                       src.getClass().getName()+", "+
                       at+", "+
                       bs+", "+
                       (thin ? "thin" : "wide")+", "+
                       (normalize ? "normalized" : "pure")+", "+
                       (antialias ? "AA" : "non-AA")+", "+
                       consumer.getClass().getName()+")");
    target.strokeTo(src, at, bs, thin, normalize, antialias, consumer);
}
 
源代码7 项目: jdk8u_jdk   文件: TransformingPathConsumer2D.java
public static PathConsumer2D
    deltaTransformConsumer(PathConsumer2D out,
                           AffineTransform at)
{
    if (at == null) {
        return out;
    }
    float Mxx = (float) at.getScaleX();
    float Mxy = (float) at.getShearX();
    float Myx = (float) at.getShearY();
    float Myy = (float) at.getScaleY();
    if (Mxy == 0f && Myx == 0f) {
        if (Mxx == 1f && Myy == 1f) {
            return out;
        } else {
            return new DeltaScaleFilter(out, Mxx, Myy);
        }
    } else {
        return new DeltaTransformFilter(out, Mxx, Mxy, Myx, Myy);
    }
}
 
public static PathConsumer2D
    deltaTransformConsumer(PathConsumer2D out,
                           AffineTransform at)
{
    if (at == null) {
        return out;
    }
    float Mxx = (float) at.getScaleX();
    float Mxy = (float) at.getShearX();
    float Myx = (float) at.getShearY();
    float Myy = (float) at.getScaleY();
    if (Mxy == 0f && Myx == 0f) {
        if (Mxx == 1f && Myy == 1f) {
            return out;
        } else {
            return new DeltaScaleFilter(out, Mxx, Myy);
        }
    } else {
        return new DeltaTransformFilter(out, Mxx, Mxy, Myx, Myy);
    }
}
 
源代码9 项目: Bytecoder   文件: TransformingPathConsumer2D.java
PathConsumer2D inverseDeltaTransformConsumer(PathConsumer2D out,
                                             AffineTransform at)
{
    if (at == null) {
        return out;
    }
    float mxx = (float) at.getScaleX();
    float mxy = (float) at.getShearX();
    float myx = (float) at.getShearY();
    float myy = (float) at.getScaleY();

    if (mxy == 0.0f && myx == 0.0f) {
        if (mxx == 1.0f && myy == 1.0f) {
            return out;
        } else {
            return iv_DeltaScaleFilter.init(out, 1.0f / mxx, 1.0f / myy);
        }
    } else {
        final float det = mxx * myy - mxy * myx;
        return iv_DeltaTransformFilter.init(out,
                                            myy / det,
                                           -mxy / det,
                                           -myx / det,
                                            mxx / det);
    }
}
 
源代码10 项目: openjdk-jdk9   文件: RenderingEngine.java
public void strokeTo(Shape src,
                     AffineTransform at,
                     BasicStroke bs,
                     boolean thin,
                     boolean normalize,
                     boolean antialias,
                     PathConsumer2D consumer)
{
    System.out.println(name+".strokeTo("+
                       src.getClass().getName()+", "+
                       at+", "+
                       bs+", "+
                       (thin ? "thin" : "wide")+", "+
                       (normalize ? "normalized" : "pure")+", "+
                       (antialias ? "AA" : "non-AA")+", "+
                       consumer.getClass().getName()+")");
    target.strokeTo(src, at, bs, thin, normalize, antialias, consumer);
}
 
源代码11 项目: jdk8u-jdk   文件: RenderingEngine.java
public void strokeTo(Shape src,
                     AffineTransform at,
                     BasicStroke bs,
                     boolean thin,
                     boolean normalize,
                     boolean antialias,
                     PathConsumer2D consumer)
{
    System.out.println(name+".strokeTo("+
                       src.getClass().getName()+", "+
                       at+", "+
                       bs+", "+
                       (thin ? "thin" : "wide")+", "+
                       (normalize ? "normalized" : "pure")+", "+
                       (antialias ? "AA" : "non-AA")+", "+
                       consumer.getClass().getName()+")");
    target.strokeTo(src, at, bs, thin, normalize, antialias, consumer);
}
 
源代码12 项目: TencentKona-8   文件: RenderingEngine.java
public void strokeTo(Shape src,
                     AffineTransform at,
                     BasicStroke bs,
                     boolean thin,
                     boolean normalize,
                     boolean antialias,
                     PathConsumer2D consumer)
{
    System.out.println(name+".strokeTo("+
                       src.getClass().getName()+", "+
                       at+", "+
                       bs+", "+
                       (thin ? "thin" : "wide")+", "+
                       (normalize ? "normalized" : "pure")+", "+
                       (antialias ? "AA" : "non-AA")+", "+
                       consumer.getClass().getName()+")");
    target.strokeTo(src, at, bs, thin, normalize, antialias, consumer);
}
 
源代码13 项目: openjdk-jdk8u-backup   文件: RenderingEngine.java
public void strokeTo(Shape src,
                     AffineTransform at,
                     BasicStroke bs,
                     boolean thin,
                     boolean normalize,
                     boolean antialias,
                     PathConsumer2D consumer)
{
    System.out.println(name+".strokeTo("+
                       src.getClass().getName()+", "+
                       at+", "+
                       bs+", "+
                       (thin ? "thin" : "wide")+", "+
                       (normalize ? "normalized" : "pure")+", "+
                       (antialias ? "AA" : "non-AA")+", "+
                       consumer.getClass().getName()+")");
    target.strokeTo(src, at, bs, thin, normalize, antialias, consumer);
}
 
源代码14 项目: openjdk-8-source   文件: RenderingEngine.java
public void strokeTo(Shape src,
                     AffineTransform at,
                     BasicStroke bs,
                     boolean thin,
                     boolean normalize,
                     boolean antialias,
                     PathConsumer2D consumer)
{
    System.out.println(name+".strokeTo("+
                       src.getClass().getName()+", "+
                       at+", "+
                       bs+", "+
                       (thin ? "thin" : "wide")+", "+
                       (normalize ? "normalized" : "pure")+", "+
                       (antialias ? "AA" : "non-AA")+", "+
                       consumer.getClass().getName()+")");
    target.strokeTo(src, at, bs, thin, normalize, antialias, consumer);
}
 
源代码15 项目: Bytecoder   文件: TransformingPathConsumer2D.java
boolean splitQuad(final float x0, final float y0,
                  final float x1, final float y1,
                  final float x2, final float y2,
                  final int outCodeOR,
                  final PathConsumer2D out)
{
    if (TRACE) {
        MarlinUtils.logInfo("divQuad P0(" + x0 + ", " + y0 + ") P1(" + x1 + ", " + y1 + ") P2(" + x2 + ", " + y2 + ")");
    }

    if (DO_CHECK_LENGTH && Helpers.fastQuadLen(x0, y0, x1, y1, x2, y2) <= minLength) {
        return false;
    }

    final float[] mid = middle;
    mid[0] = x0;  mid[1] = y0;
    mid[2] = x1;  mid[3] = y1;
    mid[4] = x2;  mid[5] = y2;

    return subdivideAtIntersections(6, outCodeOR, out);
}
 
源代码16 项目: jdk8u-jdk   文件: TransformingPathConsumer2D.java
public static PathConsumer2D
    deltaTransformConsumer(PathConsumer2D out,
                           AffineTransform at)
{
    if (at == null) {
        return out;
    }
    float Mxx = (float) at.getScaleX();
    float Mxy = (float) at.getShearX();
    float Myx = (float) at.getShearY();
    float Myy = (float) at.getScaleY();
    if (Mxy == 0f && Myx == 0f) {
        if (Mxx == 1f && Myy == 1f) {
            return out;
        } else {
            return new DeltaScaleFilter(out, Mxx, Myy);
        }
    } else {
        return new DeltaTransformFilter(out, Mxx, Mxy, Myx, Myy);
    }
}
 
源代码17 项目: openjdk-jdk8u   文件: TransformingPathConsumer2D.java
PathConsumer2D inverseDeltaTransformConsumer(PathConsumer2D out,
                                             AffineTransform at)
{
    if (at == null) {
        return out;
    }
    float mxx = (float) at.getScaleX();
    float mxy = (float) at.getShearX();
    float myx = (float) at.getShearY();
    float myy = (float) at.getScaleY();
    if (mxy == 0f && myx == 0f) {
        if (mxx == 1f && myy == 1f) {
            return out;
        } else {
            return iv_DeltaScaleFilter.init(out, 1.0f/mxx, 1.0f/myy);
        }
    } else {
        float det = mxx * myy - mxy * myx;
        return iv_DeltaTransformFilter.init(out,
                                            myy / det,
                                           -mxy / det,
                                           -myx / det,
                                            mxx / det);
    }
}
 
源代码18 项目: hottub   文件: TransformingPathConsumer2D.java
public static PathConsumer2D
    inverseDeltaTransformConsumer(PathConsumer2D out,
                                  AffineTransform at)
{
    if (at == null) {
        return out;
    }
    float Mxx = (float) at.getScaleX();
    float Mxy = (float) at.getShearX();
    float Myx = (float) at.getShearY();
    float Myy = (float) at.getScaleY();
    if (Mxy == 0f && Myx == 0f) {
        if (Mxx == 1f && Myy == 1f) {
            return out;
        } else {
            return new DeltaScaleFilter(out, 1.0f/Mxx, 1.0f/Myy);
        }
    } else {
        float det = Mxx * Myy - Mxy * Myx;
        return new DeltaTransformFilter(out,
                                        Myy / det,
                                        -Mxy / det,
                                        -Myx / det,
                                        Mxx / det);
    }
}
 
源代码19 项目: openjdk-jdk9   文件: Stroker.java
/**
 * Inits the <code>Stroker</code>.
 *
 * @param pc2d an output <code>PathConsumer2D</code>.
 * @param lineWidth the desired line width in pixels
 * @param capStyle the desired end cap style, one of
 * <code>CAP_BUTT</code>, <code>CAP_ROUND</code> or
 * <code>CAP_SQUARE</code>.
 * @param joinStyle the desired line join style, one of
 * <code>JOIN_MITER</code>, <code>JOIN_ROUND</code> or
 * <code>JOIN_BEVEL</code>.
 * @param miterLimit the desired miter limit
 * @return this instance
 */
Stroker init(PathConsumer2D pc2d,
          float lineWidth,
          int capStyle,
          int joinStyle,
          float miterLimit)
{
    this.out = pc2d;

    this.lineWidth2 = lineWidth / 2f;
    this.invHalfLineWidth2Sq = 1f / (2f * lineWidth2 * lineWidth2);
    this.capStyle = capStyle;
    this.joinStyle = joinStyle;

    float limit = miterLimit * lineWidth2;
    this.miterLimitSq = limit * limit;

    this.prev = CLOSE;

    rdrCtx.stroking = 1;

    return this; // fluent API
}
 
源代码20 项目: openjdk-jdk9   文件: MarlinRenderingEngine.java
final void strokeTo(final RendererContext rdrCtx,
                    Shape src,
                    AffineTransform at,
                    BasicStroke bs,
                    boolean thin,
                    NormMode normalize,
                    boolean antialias,
                    PathConsumer2D pc2d)
{
    float lw;
    if (thin) {
        if (antialias) {
            lw = userSpaceLineWidth(at, MIN_PEN_SIZE);
        } else {
            lw = userSpaceLineWidth(at, 1.0f);
        }
    } else {
        lw = bs.getLineWidth();
    }
    strokeTo(rdrCtx,
             src,
             at,
             lw,
             normalize,
             bs.getEndCap(),
             bs.getLineJoin(),
             bs.getMiterLimit(),
             bs.getDashArray(),
             bs.getDashPhase(),
             pc2d);
}
 
源代码21 项目: hottub   文件: TransformingPathConsumer2D.java
TranslateFilter(PathConsumer2D out,
                float tx, float ty)
{
    this.out = out;
    this.tx = tx;
    this.ty = ty;
}
 
TransformFilter(PathConsumer2D out,
                float Mxx, float Mxy, float Mxt,
                float Myx, float Myy, float Myt)
{
    this.out = out;
    this.Mxx = Mxx;
    this.Mxy = Mxy;
    this.Mxt = Mxt;
    this.Myx = Myx;
    this.Myy = Myy;
    this.Myt = Myt;
}
 
源代码23 项目: dragonwell8_jdk   文件: RenderingEngine.java
/**
 * Utility method to feed a {@link PathConsumer2D} object from a
 * given {@link PathIterator}.
 * This method deals with the details of running the iterator and
 * feeding the consumer a segment at a time.
 */
public static void feedConsumer(PathIterator pi, PathConsumer2D consumer) {
    float coords[] = new float[6];
    while (!pi.isDone()) {
        switch (pi.currentSegment(coords)) {
        case PathIterator.SEG_MOVETO:
            consumer.moveTo(coords[0], coords[1]);
            break;
        case PathIterator.SEG_LINETO:
            consumer.lineTo(coords[0], coords[1]);
            break;
        case PathIterator.SEG_QUADTO:
            consumer.quadTo(coords[0], coords[1],
                            coords[2], coords[3]);
            break;
        case PathIterator.SEG_CUBICTO:
            consumer.curveTo(coords[0], coords[1],
                             coords[2], coords[3],
                             coords[4], coords[5]);
            break;
        case PathIterator.SEG_CLOSE:
            consumer.closePath();
            break;
        }
        pi.next();
    }
}
 
源代码24 项目: openjdk-jdk8u   文件: RenderingEngine.java
/**
 * Utility method to feed a {@link PathConsumer2D} object from a
 * given {@link PathIterator}.
 * This method deals with the details of running the iterator and
 * feeding the consumer a segment at a time.
 */
public static void feedConsumer(PathIterator pi, PathConsumer2D consumer) {
    float coords[] = new float[6];
    while (!pi.isDone()) {
        switch (pi.currentSegment(coords)) {
        case PathIterator.SEG_MOVETO:
            consumer.moveTo(coords[0], coords[1]);
            break;
        case PathIterator.SEG_LINETO:
            consumer.lineTo(coords[0], coords[1]);
            break;
        case PathIterator.SEG_QUADTO:
            consumer.quadTo(coords[0], coords[1],
                            coords[2], coords[3]);
            break;
        case PathIterator.SEG_CUBICTO:
            consumer.curveTo(coords[0], coords[1],
                             coords[2], coords[3],
                             coords[4], coords[5]);
            break;
        case PathIterator.SEG_CLOSE:
            consumer.closePath();
            break;
        }
        pi.next();
    }
}
 
源代码25 项目: jdk8u_jdk   文件: TransformingPathConsumer2D.java
static void emitCurrent(final int type, final float[] pts,
                        final int off, final PathConsumer2D out)
{
    // if instead of switch (perf + most probable cases first)
    if (type == 8) {
        out.curveTo(pts[off + 2], pts[off + 3],
                    pts[off + 4], pts[off + 5],
                    pts[off + 6], pts[off + 7]);
    } else if (type == 4) {
        out.lineTo(pts[off + 2], pts[off + 3]);
    } else {
        out.quadTo(pts[off + 2], pts[off + 3],
                   pts[off + 4], pts[off + 5]);
    }
}
 
源代码26 项目: TencentKona-8   文件: PiscesRenderingEngine.java
void strokeTo(Shape src,
              AffineTransform at,
              BasicStroke bs,
              boolean thin,
              NormMode normalize,
              boolean antialias,
              PathConsumer2D pc2d)
{
    float lw;
    if (thin) {
        if (antialias) {
            lw = userSpaceLineWidth(at, 0.5f);
        } else {
            lw = userSpaceLineWidth(at, 1.0f);
        }
    } else {
        lw = bs.getLineWidth();
    }
    strokeTo(src,
             at,
             lw,
             normalize,
             bs.getEndCap(),
             bs.getLineJoin(),
             bs.getMiterLimit(),
             bs.getDashArray(),
             bs.getDashPhase(),
             pc2d);
}
 
源代码27 项目: Bytecoder   文件: TransformingPathConsumer2D.java
static void emitCurrent(final int type, final float[] pts,
                        final int off, final PathConsumer2D out)
{
    // if instead of switch (perf + most probable cases first)
    if (type == 8) {
        out.curveTo(pts[off + 2], pts[off + 3],
                    pts[off + 4], pts[off + 5],
                    pts[off + 6], pts[off + 7]);
    } else if (type == 4) {
        out.lineTo(pts[off + 2], pts[off + 3]);
    } else {
        out.quadTo(pts[off + 2], pts[off + 3],
                   pts[off + 4], pts[off + 5]);
    }
}
 
源代码28 项目: openjdk-jdk9   文件: RenderingEngine.java
/**
 * Utility method to feed a {@link PathConsumer2D} object from a
 * given {@link PathIterator}.
 * This method deals with the details of running the iterator and
 * feeding the consumer a segment at a time.
 */
public static void feedConsumer(PathIterator pi, PathConsumer2D consumer) {
    float coords[] = new float[6];
    while (!pi.isDone()) {
        switch (pi.currentSegment(coords)) {
        case PathIterator.SEG_MOVETO:
            consumer.moveTo(coords[0], coords[1]);
            break;
        case PathIterator.SEG_LINETO:
            consumer.lineTo(coords[0], coords[1]);
            break;
        case PathIterator.SEG_QUADTO:
            consumer.quadTo(coords[0], coords[1],
                            coords[2], coords[3]);
            break;
        case PathIterator.SEG_CUBICTO:
            consumer.curveTo(coords[0], coords[1],
                             coords[2], coords[3],
                             coords[4], coords[5]);
            break;
        case PathIterator.SEG_CLOSE:
            consumer.closePath();
            break;
        }
        pi.next();
    }
}
 
源代码29 项目: jdk8u-jdk   文件: TransformingPathConsumer2D.java
ScaleFilter(PathConsumer2D out,
            float sx, float sy, float tx, float ty)
{
    this.out = out;
    this.sx = sx;
    this.sy = sy;
    this.tx = tx;
    this.ty = ty;
}
 
TranslateFilter(PathConsumer2D out,
                float tx, float ty)
{
    this.out = out;
    this.tx = tx;
    this.ty = ty;
}
 
 类所在包
 类方法
 同包方法