
import cds.aladin.*;

public class ImageCreationPlug extends AladinPlugin {
   
   public String menu() { return "Image creation with a calibration"; }
   public String description()   {
      return "PLUGIN TUTORIAL:\n" +
             "This plugin is an example of an image plane creation.\n" +
             "It will create an image and will provide an astrometrical " +
             "solution for it.";
   }   
   public String author()        { return "Pierre Fernique [CDS]"; }
   public String version()       { return "1.0 - January 2007"; }
   public String url() { return "http://aladin.u-strasbg.fr/java/Plugins/ImageCreationPlug.java"; }
   public String category()      { return "Plugin tutorial/Image"; }
   
   /*
    * 1) Create a new image in the Aladin stack and gets its corresponding
    *    AladinData object.
    * 2) Generate a pixel array and set them in the new plane
    * 3) Generate a Fits header and set it in the new plan
    */
   public void exec() {
      try {
         AladinData ad = aladin.createAladinData("My Image");
         
         // Pixels
         double [][] pix = new double[200][300];
         for( int x=0; x<200; x++ ) {
            for( int y=0; y<300; y++ ) pix[x][y] = (x*y);
         }
         ad.setPixels(pix,16);
         
         // Calibration 
         String header = 
            "SIMPLE  = T\n"+
            "BITPIX  = 16\n"+
            "NAXIS   = 2\n"+
            "NAXIS1  = 200\n"+
            "NAXIS2  = 300\n"+
            "CRPIX1  = 100\n"+
            "CRPIX2  = 150\n"+
            "CRVAL1  = 83.63310542835717\n"+
            "CRVAL2  = 22.014486753213667\n"+
            "CTYPE1  = RA---TAN\n"+
            "CTYPE2  = DEC--TAN\n"+
            "CD1_1   = -2.8004558788238224E-4\n"+
            "CD1_2   = -3.078969511615841E-6\n"+
            "CD2_1   = -3.078969511615841E-6\n"+
            "CD2_2   = 2.8004558788238224E-4\n"+
            "RADECSYS= FK5\n";
         ad.setFitsHeader(header);
         
      } catch( AladinException e ) { e.printStackTrace(); }
   } 
}