public static void main(String[] args){	//the best input in the command line is : 1440 900 filename 6 3.75	
		Thread main = Thread.currentThread();
		System.out.println(main);

			if(args.length!=6&&args.length!=5&&args.length!=3&&args.length!=0&&args.length!=2){ 
				System.err.println("i need either three or five or six or 7 command line arguements 1: image width 2: image height 3: file name 4: aspect ratio width 5: aspect ratio height 6:light weight");
				System.err.println("~note~ you do not need to add a .ppm to your filename");
				System.err.println("the best command line arguements are : 1440 900 filename 6 3.75 : at least it is for me since my screen resolution is 1440*900");
				return;
			} 
			else {
				int width=800;
				int height=600;
				String filenameinput="scene.ssf",filename="ray";
				int AAF=1;//this is the anti aliasing factor. values above 4ish create a very blurred image. for best results use 2 or 3. If you want no AA, then use 1.
				double topAspect=-1;//top aspect and side aspect allow you to change the aspect ratio of your image. This is the same concept as tv screens, standard output is 4:3 and widescreen is 16:9 and for widescreen computer monitors it is 16:10 or 8:5
				double sideAspect=-1;//larger numbers here pan the camera out, while smaller ones zoom it in
				if(args.length==2){
					width=Integer.parseInt(args[0]);
					height = Integer.parseInt(args[1]);
				}
				if(args.length==3){
					width= Integer.parseInt(args[0]);
					height = Integer.parseInt(args[1]);
					filename=args[2];
				}
				if(args.length==5){		
					width= Integer.parseInt(args[0]);
					height = Integer.parseInt(args[1]);
					filename=args[2];
					topAspect=Double.parseDouble(args[3]);
					sideAspect=Double.parseDouble(args[4]);
				}
				if(args.length==6){
					width= Integer.parseInt(args[0]);
					height = Integer.parseInt(args[1]);
					filename=args[2];
					topAspect=Double.parseDouble(args[3]);
					sideAspect=Double.parseDouble(args[4]);
					filenameinput=args[5];
				}
				
				RayTracer rt = new RayTracer(width, height, filename, topAspect, sideAspect,AAF,filenameinput);
				rt.createImage();
				rt.waitForThreadsToFinish(main);
				rt.print();
		}
  }