Package org.renjin.graphics.internals

Source Code of org.renjin.graphics.internals.Graphics

package org.renjin.graphics.internals;


import org.renjin.eval.Context;
import org.renjin.eval.EvalException;
import org.renjin.graphics.GraphicsDevice;
import org.renjin.graphics.GraphicsDevices;
import org.renjin.graphics.geom.Point;
import org.renjin.invoke.annotations.Current;
import org.renjin.invoke.annotations.DataParallel;
import org.renjin.invoke.annotations.Internal;
import org.renjin.invoke.annotations.Recycle;


public class Graphics {

  public static final int DEVICE = 1;
  public static final int NDC = 2;
  public static final int NIC = 7;
  public static final int NFC = 8;
  public static final int USER = 13;
  public static final int INCHES = 14;
  public static final int NPC = 17;

  @Internal
  @DataParallel
  public static double grconvertX(@Current Context context, @Recycle double x, int from, int to) {
    return grConvert(context, new Point(x, Double.NaN), from, to).getX();
  }

  @Internal
  @DataParallel
  public static double grconvertY(@Current Context context, @Recycle double y, int from, int to) {
    return grConvert(context, new Point(Double.NaN, y), from, to).getY();
  }
  private static Point grConvert(Context context, Point point, int from, int to) {
    GraphicsDevice active = context.getSession().getSingleton(GraphicsDevices.class).getActive();
    Point device = toDeviceCoordinates(active, point, from);
    return fromDeviceCoordinates(active, device, to);
  }

  private static Point toDeviceCoordinates(GraphicsDevice active, Point point, int from) {
    switch(from) {
    case USER:
      return active.userToDevice(point);
    default:
      throw new EvalException("Invalid 'from' argument");
    }
  }
 
  private static Point fromDeviceCoordinates(GraphicsDevice active, Point point, int to) {
    switch(to) {
    case DEVICE:
       return point;
    default:
      throw new EvalException("Invalid 'to' argument");
    }
  }
 
}
TOP

Related Classes of org.renjin.graphics.internals.Graphics

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.