[wadalabfont-kit] / java / ShowSkeleton.java  

View of /java/ShowSkeleton.java

Parent Directory | Revision Log
Revision: 1.1.1.1 - (download) (as text) (annotate) (vendor branch)
Thu Dec 28 08:54:22 2000 UTC (23 years, 11 months ago) by ktanaka
Branch: ktanaka
CVS Tags: tmp
Changes since 1.1: +0 -0 lines
change to CVS wadalab font project
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;

public class ShowSkeleton extends Frame implements KeyListener{
  Skeleton skel;
  Renderer renderer;
  ShowSkeleton(){
    super("skeleton");
    addKeyListener(this);
    renderer=MinchoRenderer.chuuMincho;
  }
  public void keyPressed(KeyEvent e){ System.exit(1);}
  public void keyReleased(KeyEvent e){ System.exit(1);}
  public void keyTyped(KeyEvent e){ System.exit(1);}
  public void showOutline(Graphics g,Outline outline){
    Vector ret=new Vector(10);
    OutlineComponent[] components=outline.getComponents();
    int i,len=components.length;
    for(i=0;i<len;i++){
      components[i].render(ret,3.0);
    }
    len=ret.size();
    int[] xs=new int[len], ys=new int[len];
    for(i=0;i<len;i++){
      Point p=(Point)(ret.elementAt(i));
      xs[i]=(int)p.x;
      ys[i]=(int)p.y;
    }
    g.drawPolyline(xs,ys,len);
  }
  public void paint(Graphics g){
    g.setColor(Color.white);
    g.fillRect(0,0,400,400);
    g.setColor(Color.black);
    Point[] points=skel.getPoints();
    Element[] elements=skel.getElements();
    int i,len=elements.length;
    for(i=0;i<len;i++){
      int[] elementPoints=elements[i].getPoints();
      int j,plen=elementPoints.length;
      Point p0,p1;
      for(j=0;j<plen-1;j++){
        p0=points[elementPoints[j]];
        p1=points[elementPoints[j+1]];
        g.drawLine((int)p0.getX(),(int)p0.getY(),(int)p1.getX(),(int)p1.getY());
      }
    }
    g.setColor(Color.red);
    for(i=0;i<len;i++){
      Outline[] outlines=renderer.elementRenderer(points,elements[i]);
      showOutline(g,outlines[0]);
      showOutline(g,outlines[1]);
    }
  }
  public static void main(String[] args) throws IOException,LispException{
    ShowSkeleton window=new ShowSkeleton();
    window.setSize(400,400);
    window.show();
    LispInputStream lis;
    lis=new LispInputStream(new FileReader(args[0]));
    BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
    LispObject lo=null;
    while((lo=lis.nextObject())!=null){
      if(lo.getType()==LispObject.CONS && lo.car().getName().equals("setq")){
        window.skel=LispToSkeleton.lispToSkeleton(lo.cdr().cdr().car().cdr().car());
        window.repaint();
        br.readLine();
      }
    }
  }
}

ktanaka

Powered by ViewCVS 1.0-dev

ViewCVS and CVS Help