00001 package edu.stanford.hci.r3.render.ink; 00002 00003 import java.awt.BasicStroke; 00004 import java.awt.Graphics2D; 00005 import java.util.List; 00006 00007 import edu.stanford.hci.r3.pen.ink.InkStroke; 00008 import edu.stanford.hci.r3.util.geometry.CatmullRomSpline; 00009 00020 class RenderingTechniqueCatmullRom implements RenderingTechnique { 00021 00022 public void render(Graphics2D g2d, List<InkStroke> strokes) { 00023 for (InkStroke stroke : strokes) { 00024 double width = stroke.getWidth(); 00025 g2d.setStroke(new BasicStroke((float) width, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)); 00026 final CatmullRomSpline crspline = new CatmullRomSpline(); 00027 final double[] x = stroke.getXSamples(); 00028 final double[] y = stroke.getYSamples(); 00029 crspline.setPoints(x, y); 00030 g2d.draw(crspline.getShape()); 00031 } 00032 } 00033 }