import java.awt.*;
import java.awt.event.*;
import java.applet.*;

public class vid extends Applet implements MouseMotionListener,Runnable{
Obd ma=new Obd(160,100,250,180,30);
Obd ve=new Obd(50,50,150,150,20);
Thread timer;
Image offscreen;
Dimension offscreensize;
Graphics go;
int cas=200;
double pre=0;

public void init(){
setBackground(Color.white);
addMouseMotionListener(this);
}

public void start(){timer =new Thread(this);timer.start();}

public void run(){
Thread me=Thread.currentThread();
while(timer==me){
 try{
   Thread.currentThread().sleep(cas);
   pre+=0.005;
    }
   catch(InterruptedException e){}
   repaint();
 }
}
public void vykresli(Obd o,Graphics gg){
gg.setColor(Color.black);
//1 stvorec
gg.drawLine(o.x1-o.z,o.y1-o.z,o.x2-o.z,o.y1-o.z);
gg.drawLine(o.x1-o.z,o.y1-o.z,o.x1-o.z,o.y2-o.z);
gg.drawLine(o.x1-o.z,o.y2-o.z,o.x2-o.z,o.y2-o.z);
gg.drawLine(o.x2-o.z,o.y1-o.z,o.x2-o.z,o.y2-o.z);
//2.stvorec-dalej
gg.drawLine(o.x1,o.y1,o.x2,o.y1);
gg.drawLine(o.x1,o.y1,o.x1,o.y2);
gg.drawLine(o.x1,o.y2,o.x2,o.y2);
gg.drawLine(o.x2,o.y1,o.x2,o.y2);
//dotvorenie kocky
for(int i=0;i<3;i++)
switch(i){
case 0:{
     gg.setColor(Color.red);
     int []w={o.x1+1,o.x1+1,o.x2,o.x2};
     int []v={o.y1+1,o.y2,o.y2,o.y1+1};
     Polygon p=new Polygon(w,v,4);
     gg.fillPolygon(p);
       }
case 1:{
       Color nov=new Color(255,100,100);
       gg.setColor(nov);
       int []w={o.x1-o.z+1,o.x2-o.z+1,o.x2+2,o.x1};
       int []v={o.y1-o.z+1,o.y1-o.z+1,o.y1,o.y1};
       Polygon p=new Polygon(w,v,4);
       gg.fillPolygon(p);
       }
case 2:{
       int []w={o.x1-o.z+1,o.x1,o.x1,o.x1-o.z+1};
       int []v={o.y1-o.z,o.y1-1,o.y2+1,o.y2-o.z+1};
       Polygon p=new Polygon(w,v,4);
       gg.fillPolygon(p);
       }
    }   
//dotvorenie kovky
gg.setColor(Color.black);
gg.drawLine(o.x1-o.z,o.y1-o.z,o.x1,o.y1);
gg.drawLine(o.x1,o.y2,o.x1-o.z,o.y2-o.z);
gg.drawLine(o.x2-o.z,o.y1-o.z,o.x2,o.y1);

}
public void paint(Graphics g){
Dimension d=getSize();
if((offscreen==null)||(d.width!=offscreensize.width)||(d.height!=offscreensize.height))
 {
 offscreen=createImage(d.width,d.height);
 offscreensize=d;
 go=offscreen.getGraphics();
 go.setFont(getFont());
 }

go.setColor(getBackground());
go.fillRect(0,0,getSize().width,getSize().height);
go.setColor(Color.blue);
go.drawRect(0,0,getSize().width-1,getSize().height-1);
go.setColor(Color.black);
go.drawString("z="+ve.z,ve.x2+5,ve.y2+5);
go.drawString("z="+ma.z,ma.x2+5,ma.y2+5);
vykresli(ve,go);
vykresli(ma,go);
g.drawImage(offscreen,0,0,null);
}

public void update(Graphics g){
synchronized(this){}
paint(g);
}

public void stop(){timer=null;}

public void mouseDragged(MouseEvent e){
if( ma.je(e.getX(),e.getY())){
 if((e.paramString().indexOf("mods="+e.BUTTON1_MASK))>0){
  ma.prepocitaj(e.getX(),e.getY());
  repaint();
  }
  if((e.paramString().indexOf("mods="+e.BUTTON3_MASK))>0){
   ma.zmenRozmer(e.getX(),e.getY());
   repaint();   
 }
/* if((e.paramString().indexOf("mods=8"))>0){
 ma.zmenHrubku(e.getX());
 repaint();
 }*/}
if( ve.je(e.getX(),e.getY())){
 if((e.paramString().indexOf("mods="+e.BUTTON1_MASK))>0){  
 ve.prepocitaj(e.getX(),e.getY());
 repaint();
// System.out.println(e.BUTTON1_MASK);
 }
 if((e.paramString().indexOf("mods="+e.BUTTON3_MASK))>0){
   ve.zmenRozmer(e.getX(),e.getY());
   repaint();   
 }
}
}
public void mouseMoved(MouseEvent e){}

public String getAppletInfo()
{return "viditelnost.java by Tomas Hudik 21/3/2001";}
}
