import java.applet.*;
import java.io.*;

public class cr_writekey extends Applet {

double xvertex[]=new double[513];
double yvertex[]=new double[513];
double zvertex[]=new double[513];
float etalon_b;
float etalon_j;
float osztas;
float oszto;
float ando;

int f,g;
	public cr_writekey(String filename,int tpointx[],int tpointy[],int fpointx[],int fpointy[],int txoffset){	
	for(f=0;f<34;f++){
//	System.out.println(f+" tpointx= "+tpointx[f]+" tpointy= "+tpointy[f]);
	}	
	for(f=0;f<34;f++){
//	System.out.println(f+" fpointx= "+fpointx[f]+" fpointy= "+fpointy[f]);
	}
etalon_b=tpointx[8]-txoffset;
etalon_j=tpointx[24]-txoffset;
	


for (f=0;f<16;f++){		
		for(g=f*16;g<(f*16)+16;g++){
			zvertex[g]=tpointy[f];
			ando = tpointx[f]-txoffset;
			xvertex[g]=(fpointx[g-(f*16)])*(ando/etalon_b);
			osztas = (ando/etalon_b);
//			System.out.println(" ------------------- Debug g : "+g+"   osztas: "+osztas+"  ando: "+ando);
			yvertex[g]=fpointy[g-(f*16)];	
				}

		for(g=f*16;g<(f*16)+16;g++){
			zvertex[g+256]=tpointy[16-f];
			ando=tpointx[f+16]-txoffset;
			xvertex[g+256]=(fpointx[g-(f*16)+16])*(ando/etalon_j);
			osztas = (ando/etalon_j);
//			System.out.println(" ------------------- Debug g : "+(g+256)+"   osztas: "+osztas+"  ando: "+ando);
			yvertex[g+256]=fpointy[g-(f*16)+16];	
				}
		}	
	

try {
FileOutputStream keyfile = new FileOutputStream(filename);
DataOutputStream keydos = new DataOutputStream(keyfile);

for (f=0;f<512;f=f+2){
for (g=0;g<f;g=g+2){
	if((xvertex[f]==xvertex[g])&&(yvertex[f]==yvertex[g])&&(zvertex[f]==zvertex[g])){
     System.out.println("f: "+f+" "+xvertex[f]+" "+yvertex[f]+" "+zvertex[f]);
	     xvertex[f]=xvertex[f]+java.lang.Math.random();
		yvertex[f]=yvertex[f]+java.lang.Math.random();
		zvertex[f]=yvertex[f]+java.lang.Math.random();
	System.out.println("new f: "+f+" "+xvertex[f]+" "+yvertex[f]+" "+zvertex[f]);
	g=0;
	}
}
keydos.writeBytes(xvertex[f]+" "+yvertex[f]+" "+ zvertex[f]+"\n");
/** System.out.println(f+"x: "+xvertex[f]+" y: "+yvertex[f]+" z: "+zvertex[f]);*/
			}
keydos.close();
		} catch (Exception e) {}
	}


}
