import java.applet.Applet;
import java.applet.AppletContext;
import java.awt.*;
import java.awt.image.MemoryImageSource;
import java.awt.image.PixelGrabber;
import java.io.PrintStream;
import java.net.MalformedURLException;
import java.net.URL;
public class image3dcube extends Applet implements Runnable
{
private AppletContext _0;
private Graphics _1;
private Graphics _2;
private Thread _3;
private Image _4;
private Image _5;
private Image _6;
private String _7;
private Dimension _8;
private int _9;
private int _10;
private int _11;
private int _12;
private String _13[];
private long _14;
private long _15;
private int _16[];
private int _17[];
private int _18[];
private int _19[];
private int _20[];
private int _21[];
private int _22[];
private int _23[];
private int _24[] = {
3, 2, 1, 0, -1, 4, 5, 6, 7, -1,
0, 1, 5, 4, -1, 2, 3, 7, 6, -1,
1, 2, 6, 5, -1, 0, 4, 7, 3, -1,
-1
};
private double _25[];
private double _26[];
private int _27;
private int _28;
private int _29;
private int _30;
private int _31;
private int _32;
private int _33;
private int _34;
private int _35;
private double _36;
private double _37;
private double _38;
private double _39;
private double _40;
private double _41;
private double _42;
private double _43;
private double _44;
private double _45;
private double _46;
private double _47;
private double _48;
private double _49;
private double _50;
private double _51;
private double _52;
private double _53;
private double _54;
private double _55;
private double _56;
private double _57;
private double _58;
private double _59;
private double _60;
private double _61;
private double _62;
private double _63;
private double _64;
private double _65;
private double _66;
private double _67;
private double _68;
private double _69;
private double _70;
private int _71;
private int _72;
private int _73;
private int _74;
private int _75;
private int _76;
private int _77;
private int _78;
private int _79;
private int _80;
private int _81[];
private int _82[];
private boolean _83;
private boolean _84;
private boolean _85;
private boolean _86;
private boolean _87;
private boolean _88;
private boolean _89;
private boolean _90;
private boolean _91;
private boolean _92;
public void init()
{
super.init();
setLayout(null);
_12();
_8 = size();
_75 = _8.width >= _8.height ? _8.height : _8.width;
_76 = _75 / 2;
double d = _76;
double ad[] = {
-d, -d, -d, d, -d, -d, d, d, -d, -d,
d, -d, -d, -d, d, d, -d, d, d, d,
d, -d, d, d
};
_26 = ad;
_9 = _8.width / 2;
_10 = _8.height / 2;
_50 = 1.0D;
_51 = -1D;
_18 = new int[_8.height];
_19 = new int[_8.height];
_16 = new int[_8.width * _8.height];
_22 = new int[_8.width * _8.height];
_23 = new int[_8.width * _8.height];
_82 = new int[_8.width];
for(int i = 0; i < _8.width; i++)
{
_82[i] = 0xff000000 + _73;
}
_21 = new int[_8.height];
for(int j = 0; j < _8.height; j++)
{
_21[j] = 0;
}
_1 = getGraphics();
_29 = 512;
_30 = 900;
_80 = 6;
_32 = 30;
_31 = _26.length / 3;
_25 = new double[_26.length];
_6 = createImage(_8.width, _8.height);
_2 = _6.getGraphics();
_2.setColor(new Color(_71));
_2.fillRect(0, 0, _8.width, _8.height);
if(_83)
{
_5 = getImage(getDocumentBase(), "on.gif");
_4(_5);
_2.drawImage(_5, _8.width - 18, _8.height - 32, this);
}
PixelGrabber pixelgrabber = new PixelGrabber(_6, 0, 0, _8.width, _8.height, _22, 0, _8.width);
try
{
pixelgrabber.grabPixels();
}
catch(InterruptedException _ex) { }
if(_83)
{
_5 = getImage(getDocumentBase(), "off.gif");
_4(_5);
_2.drawImage(_5, _8.width - 18, _8.height - 32, this);
}
pixelgrabber = new PixelGrabber(_6, 0, 0, _8.width, _8.height, _23, 0, _8.width);
try
{
pixelgrabber.grabPixels();
return;
}
catch(InterruptedException _ex)
{
return;
}
}
public void run()
{
_4 = createImage(_8.width, _8.height);
Graphics g = _4.getGraphics();
String s = "";
FontMetrics fontmetrics = g.getFontMetrics();
_81 = new int[_8.width * _8.height * 6];
_88 = true;
for(int i = 0; i < 6; i++)
{
g.setColor(new Color(_71));
g.fillRect(0, 0, _8.width, _8.height);
g.setColor(new Color(_72));
String s1 = "Loading Image " + Integer.toString(i + 1);
g.drawString(s1, _9 - fontmetrics.stringWidth(s1) / 2, _10);
update(_1);
if(getParameter("image" + Integer.toString(i)) != null)
{
_5 = getImage(getDocumentBase(), getParameter("image" + Integer.toString(i)));
_4(_5);
_5 = _2(_5, _75, _75);
System.arraycopy(_20, 0, _81, i * _75 * _75, _75 * _75);
}
}
_88 = false;
_70 = 0.0D;
_68 = 50D;
_69 = 50D;
_86 = false;
_87 = false;
_88 = false;
_89 = false;
_90 = false;
_91 = false;
_92 = false;
_0();
System.arraycopy(_26, 0, _25, 0, _26.length);
_39 = _43 = _47 = 0.0D;
_36 = _41 = _46 = 1.0D;
_37 = _38 = _40 = _42 = _44 = _45 = 0.0D;
_56 = _57 = _58 = 0.0D;
_8();
_90 = false;
do
{
_85 = _84;
_39 = _43 = _47 = 0.0D;
if(_91)
{
_47 = 750D;
double d = Math.asin(Math.sqrt(_62 * _62 + _63 * _63));
double d1 = Math.sqrt(_62 * _62 + _63 * _63);
double d2 = (int)(d / _54);
for(int j = 0; (double)j < d2; j++)
{
_10(-_63 / d1, _62 / d1, 0.0D, _54, 1.0D);
_13();
_88 = true;
update(_1);
_88 = false;
}
_10(-_63 / d1, _62 / d1, 0.0D, d - d2 * _54, 1.0D);
_13();
_88 = true;
update(_1);
_88 = false;
double d3 = Math.acos(_65);
if(_66 > 0.0D)
{
d3 = -d3;
}
int k = Math.max((int)(Math.abs(d3) / _54 / 3D), 5);
double d4 = Math.exp(Math.log(1.45D) / (double)k);
for(int l = 1; l <= k; l++)
{
_10(0.0D, 0.0D, -1D, -d3 / (double)k, d4);
_13();
_88 = true;
update(_1);
_88 = false;
}
while(!_87)
{
_88 = true;
try
{
Thread.sleep(100L);
}
catch(InterruptedException _ex) { }
}
for(int i1 = 1; i1 <= k; i1++)
{
_10(0.0D, 0.0D, -1D, d3 / (double)k, 1.0D / d4);
_13();
_88 = true;
update(_1);
_88 = false;
}
_47 = 750D;
d1 = Math.sqrt(_62 * _62 + _63 * _63);
for(int j1 = 0; (double)j1 < d2; j1++)
{
_10(-_63 / d1, _62 / d1, 0.0D, -_54, 1.0D);
_13();
_88 = true;
update(_1);
_88 = false;
}
_10(-_63 / d1, _62 / d1, 0.0D, -d + d2 * _54, 1.0D);
_13();
_88 = true;
update(_1);
_88 = false;
_39 = _43 = _47 = 0.0D;
_56 = _48;
_57 = _49;
_91 = false;
_86 = false;
} else
if(_89)
{
_56 = _48;
_57 = _49;
} else
{
if(_90)
{
_14 = System.currentTimeMillis();
_56 = _57 = _48 = _49 = 0.0D;
_90 = false;
}
if(System.currentTimeMillis() - _14 > 5000L)
{
_57 = _55;
_56 = (2D * _55) / 3D;
}
}
_9();
_7();
_61 = 750D;
_3();
_8();
_13();
_88 = true;
update(_1);
_88 = false;
try
{
Thread.sleep(_27);
}
catch(InterruptedException _ex) { }
} while(true);
}
public void _13()
{
_4.flush();
_92 = false;
if(_85)
{
System.arraycopy(_22, 0, _16, 0, _8.width * _8.height);
} else
{
System.arraycopy(_23, 0, _16, 0, _8.width * _8.height);
}
int i = 0;
int ai[] = new int[_31];
int ai1[] = new int[_31];
int j = 0;
for(int l = 0; l < _31 * 3; l += 3)
{
int i1 = (int)_25[l];
int k1 = (int)_25[l + 1];
int l1 = (int)_25[l + 2];
ai[j] = (i1 * _29) / l1 + _9;
ai1[j] = (k1 * _29) / l1 + _10;
j++;
}
int j1 = 0;
Polygon polygon = new Polygon();
int i2 = _24[0];
for(int j2 = 0; j2 < _32; j2++)
{
int k2 = _24[j2];
if(k2 < 0)
{
polygon.addPoint(ai[i2], ai1[i2]);
i2 = _24[j2 + 1];
byte byte0 = 0;
byte byte1 = 0;
byte byte3 = 0;
byte byte5 = 0;
switch(i)
{
case 0: // '\0'
byte0 = 0;
byte1 = 1;
byte3 = 3;
byte5 = 2;
break;
case 1: // '\001'
byte0 = 5;
byte1 = 4;
byte3 = 6;
byte5 = 7;
break;
case 2: // '\002'
byte0 = 4;
byte1 = 5;
byte3 = 0;
byte5 = 1;
break;
case 3: // '\003'
byte0 = 3;
byte1 = 2;
byte3 = 7;
byte5 = 6;
break;
case 4: // '\004'
byte0 = 1;
byte1 = 5;
byte3 = 2;
byte5 = 6;
break;
case 5: // '\005'
byte0 = 4;
byte1 = 0;
byte3 = 7;
byte5 = 3;
break;
}
Polygon polygon1 = new Polygon();
double d = (double)_30 - _70;
double d1 = ((_25[byte1 * 3] - _68) * d) / (_25[byte1 * 3 + 2] - _70);
double d2 = ((_25[byte1 * 3 + 1] - _69) * d) / (_25[byte1 * 3 + 2] - _70);
double d4 = ((_25[byte0 * 3] - _68) * d) / (_25[byte0 * 3 + 2] - _70);
double d6 = ((_25[byte0 * 3 + 1] - _69) * d) / (_25[byte0 * 3 + 2] - _70);
double d8 = ((_25[byte3 * 3] - _68) * d) / (_25[byte3 * 3 + 2] - _70);
double d10 = ((_25[byte3 * 3 + 1] - _69) * d) / (_25[byte3 * 3 + 2] - _70);
double d12 = ((_25[byte5 * 3] - _68) * d) / (_25[byte5 * 3 + 2] - _70);
double d14 = ((_25[byte5 * 3 + 1] - _69) * d) / (_25[byte5 * 3 + 2] - _70);
polygon1.addPoint((int)((d1 * (double)_29) / d + (double)_9), (int)((d2 * (double)_29) / d + (double)_9));
polygon1.addPoint((int)((d4 * (double)_29) / d + (double)_9), (int)((d6 * (double)_29) / d + (double)_9));
polygon1.addPoint((int)((d8 * (double)_29) / d + (double)_9), (int)((d10 * (double)_29) / d + (double)_9));
polygon1.addPoint((int)((d12 * (double)_29) / d + (double)_9), (int)((d14 * (double)_29) / d + (double)_9));
int ai2[] = polygon1.ypoints;
int ai3[] = new int[2];
ai3 = _1(polygon1.xpoints, polygon1.ypoints);
int j4 = ai3[0];
int k4 = ai3[1];
for(int l4 = Math.max(ai2[k4], 0); l4 < Math.min(ai2[j4], _8.height); l4++)
{
int i5 = Math.min(_18[l4], _19[l4]);
int j5 = Math.max(_18[l4], _19[l4]);
System.arraycopy(_82, 0, _16, i5 + l4 * _8.width, j5 - i5);
}
i++;
polygon = new Polygon();
j1 = j2 + 1;
} else
{
polygon.addPoint(ai[k2], ai1[k2]);
}
}
j1 = 0;
polygon = new Polygon();
i2 = _24[0];
i = 0;
for(int l2 = 0; l2 < _32; l2++)
{
int i3 = _24[l2];
if(i3 < 0)
{
polygon.addPoint(ai[i2], ai1[i2]);
i2 = _24[l2 + 1];
byte byte2 = 0;
byte byte4 = 0;
byte byte6 = 0;
boolean flag = false;
switch(i)
{
case 0: // '\0'
byte2 = 0;
byte4 = 1;
byte6 = 3;
byte byte7 = 2;
break;
case 1: // '\001'
byte2 = 5;
byte4 = 4;
byte6 = 6;
byte byte8 = 7;
break;
case 2: // '\002'
byte2 = 4;
byte4 = 5;
byte6 = 0;
boolean flag1 = true;
break;
case 3: // '\003'
byte2 = 3;
byte4 = 2;
byte6 = 7;
byte byte9 = 6;
break;
case 4: // '\004'
byte2 = 1;
byte4 = 5;
byte6 = 2;
byte byte10 = 6;
break;
case 5: // '\005'
byte2 = 4;
byte4 = 0;
byte6 = 7;
byte byte11 = 3;
break;
}
int j3 = ai[byte6] - ai[byte2];
int k3 = ai1[byte6] - ai1[byte2];
int l3 = ai[byte4] - ai[byte2];
int i4 = ai1[byte4] - ai1[byte2];
if(j3 * i4 - k3 * l3 <= 0)
{
double d3 = (_25[byte4 * 3] - _25[byte2 * 3]) / (double)_75;
double d5 = (_25[byte4 * 3 + 1] - _25[byte2 * 3 + 1]) / (double)_75;
double d7 = (_25[byte4 * 3 + 2] - _25[byte2 * 3 + 2]) / (double)_75;
double d9 = (_25[byte6 * 3] - _25[byte2 * 3]) / (double)_75;
double d11 = (_25[byte6 * 3 + 1] - _25[byte2 * 3 + 1]) / (double)_75;
double d13 = (_25[byte6 * 3 + 2] - _25[byte2 * 3 + 2]) / (double)_75;
double d15 = _25[byte2 * 3];
double d16 = _25[byte2 * 3 + 1];
double d17 = _25[byte2 * 3 + 2];
double d18 = d11 * d7 - d13 * d5;
double d19 = d13 * d3 - d9 * d7;
double d20 = d9 * d5 - d11 * d3;
double d21 = Math.sqrt(d18 * d18 + d19 * d19 + d20 * d20);
d18 /= d21;
d19 /= d21;
d20 /= d21;
double d22 = (double)_77 - (d15 + (double)_76 * d3 + (double)_76 * d9);
double d23 = (double)_78 - (d16 + (double)_76 * d5 + (double)_76 * d11);
double d24 = (double)_79 - (d17 + (double)_76 * d7 + (double)_76 * d13);
int k = j1;
polygon = new Polygon();
int k5 = _24[k];
do
{
polygon.addPoint(ai[k5], ai1[k5]);
k5 = _24[++k];
} while(k5 >= 0);
double d25 = (d22 * d18 + d23 * d19 + d24 * d20) / Math.sqrt(d22 * d22 + d23 * d23 + d24 * d24);
int l5 = _85 & (!_91) ? 255 : Math.max(Math.min((int)(255D * d25 * 0.90000000000000002D + 25.5D), 255), 20);
int ai4[] = new int[2];
ai4 = _1(polygon.xpoints, polygon.ypoints);
int i6 = Math.min(polygon.ypoints[ai4[0]], _8.height);
int j6 = Math.max(polygon.ypoints[ai4[1]], 0);
double d26 = (double)_29 * (d3 * d17 - d7 * d15);
double d27 = (double)_29 * (d7 * d9 - d3 * d13);
double d28 = (double)_29 * (d7 * d16 - d5 * d17);
double d29 = (double)_29 * (d5 * d13 - d7 * d11);
double d30 = (double)(_29 * _29) * (d5 * d15 - d3 * d16);
double d31 = (double)(_29 * _29) * (d3 * d11 - d5 * d9);
double d32 = (double)_29 * (d9 * d17 - d13 * d15);
double d33 = (double)_29 * (d13 * d3 - d9 * d7);
double d34 = (double)_29 * (d13 * d16 - d11 * d17);
double d35 = (double)_29 * (d11 * d7 - d13 * d5);
double d36 = (double)(_29 * _29) * (d11 * d15 - d9 * d16);
double d37 = (double)(_29 * _29) * (d9 * d5 - d11 * d3);
int k6 = _8.width;
int l6 = i * _75 * _75;
if(!_85 || _91)
{
for(int k8 = j6; k8 < i6; k8++)
{
double d42 = (double)(k8 - _10) * d26 + d30;
double d44 = (double)(k8 - _10) * d27 + d31;
double d38 = (double)(k8 - _10) * d32 + d36;
double d40 = (double)(k8 - _10) * d33 + d37;
int l8 = Math.min(_18[k8], _19[k8]);
int i9 = Math.max(_18[k8], _19[k8]);
double d50 = (double)(l8 - _9) * d34 + d38;
double d54 = (double)(l8 - _9) * d35 + d40;
double d52 = (double)(l8 - _9) * d28 + d42;
double d56 = (double)(l8 - _9) * d29 + d44;
int j9 = k8 * k6;
for(int k9 = l8; k9 <= i9; k9++)
{
if(k9 >= 0 && k9 < k6)
{
double d48 = d50 / d54;
double d46 = d52 / d56;
int i7 = (int)d48;
int k7 = (int)d46;
i7 = i7 >= 0 ? i7 <= _75 - 1 ? i7 : _75 - 1 : 0;
k7 = k7 >= 0 ? k7 <= _75 - 1 ? k7 : _75 - 1 : 0;
int i8 = _81[l6 + i7 + _75 * k7];
int l9 = (i8 & 0xff) * l5 & 0xff00;
int i10 = ((i8 & 0xff00) >> 8) * l5 & 0xff00;
int j10 = ((i8 & 0xff0000) >> 16) * l5 & 0xff00;
_16[k9 + j9] = 0xff000000 + (j10 << 8) + i10 + (l9 >> 8);
}
d50 += d34;
d54 += d35;
d52 += d28;
d56 += d29;
}
}
} else
{
double d64 = Math.sqrt((0.0D - _68) * (0.0D - _68) + (0.0D - _69) * (0.0D - _69) + (750D - _70) * (750D - _70));
double d65 = -_68 / d64;
double d66 = -_69 / d64;
double d67 = (750D - _70) / d64;
for(int l11 = j6; l11 < i6; l11++)
{
int i12 = Math.min(_18[l11], _19[l11]);
int j12 = Math.max(_18[l11], _19[l11]);
double d43 = (double)(l11 - _10) * d26 + d30;
double d45 = (double)(l11 - _10) * d27 + d31;
double d39 = (double)(l11 - _10) * d32 + d36;
double d41 = (double)(l11 - _10) * d33 + d37;
double d51 = (double)(i12 - _9) * d34 + d39;
double d55 = (double)(i12 - _9) * d35 + d41;
double d53 = (double)(i12 - _9) * d28 + d43;
double d57 = (double)(i12 - _9) * d29 + d45;
int k12 = l11 * k6;
for(int l12 = i12; l12 <= j12; l12++)
{
if(l12 >= 0 && l12 < k6)
{
double d49 = d51 / d55;
double d47 = d53 / d57;
double d58 = (d15 + d3 * d49 + d9 * d47) - _68;
double d60 = (d16 + d5 * d49 + d11 * d47) - _69;
double d61 = (d17 + d7 * d49 + d13 * d47) - _70;
double d62 = Math.sqrt(d58 * d58 + d60 * d60 + d61 * d61);
d58 /= d62;
d60 /= d62;
d61 /= d62;
double d63 = d65 * d58 + d66 * d60 + d67 * d61;
double d68 = -(d18 * d58 + d19 * d60 + d20 * d61);
double d69 = Math.max(35D * (d63 - 0.95999999999999996D), 0.0D);
int j11 = (int)(((double)l5 * (d68 * (d69 * d69 + 1.0D))) / 2D) - 255;
int k11 = (int)(255D * (50D * Math.max(d68 - 0.95999999999999996D, 0.025000000000000001D)));
int j7 = (int)d49;
int l7 = (int)d47;
j7 = j7 >= 0 ? j7 <= _75 - 1 ? j7 : _75 - 1 : 0;
l7 = l7 >= 0 ? l7 <= _75 - 1 ? l7 : _75 - 1 : 0;
int j8 = _81[l6 + j7 + _75 * l7];
int i11 = j8 & 0xff;
int l10 = (j8 & 0xff00) >> 8;
int k10 = (j8 & 0xff0000) >> 16;
i11 *= k11;
l10 *= k11;
k10 *= k11;
i11 >>= 8;
l10 >>= 8;
k10 >>= 8;
i11 += j11;
l10 += j11;
k10 += j11;
i11 = i11 <= 255 ? i11 : 255;
l10 = l10 <= 255 ? l10 : 255;
k10 = k10 <= 255 ? k10 : 255;
i11 = i11 >= 0 ? i11 : 0;
l10 = l10 >= 0 ? l10 : 0;
k10 = k10 >= 0 ? k10 : 0;
_16[l12 + k12] = 0xff000000 + (k10 << 16) + (l10 << 8) + i11;
}
d51 += d34;
d55 += d35;
d53 += d28;
d57 += d29;
}
}
}
if(polygon.inside(_11, _12))
{
_74 = i;
_92 = true;
if(_87 && !_91)
{
_62 = d18;
_63 = d19;
_64 = d20;
double d59 = Math.sqrt(d3 * d3 + d5 * d5 + d7 * d7);
_65 = d3 / d59;
_66 = d5 / d59;
_67 = d7 / d59;
_74 = i;
_91 = true;
_87 = false;
} else
{
_87 = false;
}
}
}
i++;
polygon = new Polygon();
j1 = l2 + 1;
} else
{
polygon.addPoint(ai[i3], ai1[i3]);
}
}
_4 = createImage(new MemoryImageSource(_8.width, _8.height, _16, 0, _8.width));
_4(_4);
if(!_92)
{
_74 = 7;
}
}
public int[] _1(int ai[], int ai1[])
{
System.arraycopy(_21, 0, _18, 0, _8.height);
System.arraycopy(_21, 0, _19, 0, _8.height);
int i = 0xff000001;
int j = 0xffffff;
int k = 5;
int l = 5;
for(int i1 = 0; i1 < 4; i1++)
{
if(ai1[i1] < j)
{
j = ai1[i1];
l = i1;
}
if(ai1[i1] > i)
{
i = ai1[i1];
k = i1;
}
}
int j1 = (l + 1) % 4;
int k1 = ((4 + l) - 1) % 4;
byte byte0 = 5;
if(ai[j1] < ai[k1])
{
_11(ai[j1], ai1[j1], ai[l], ai1[l], true);
_11(ai[k1], ai1[k1], ai[l], ai1[l], false);
if(j1 == k)
{
int l1 = ((4 + l) - 2) % 4;
_11(ai[k1], ai1[k1], ai[l1], ai1[l1], false);
_11(ai[l1], ai1[l1], ai[k], ai1[k], false);
} else
if(k1 == k)
{
int i2 = (l + 2) % 4;
_11(ai[j1], ai1[j1], ai[i2], ai1[i2], true);
_11(ai[i2], ai1[i2], ai[k], ai1[k], true);
} else
{
_11(ai[j1], ai1[j1], ai[k], ai1[k], true);
_11(ai[k1], ai1[k1], ai[k], ai1[k], false);
}
} else
{
_11(ai[j1], ai1[j1], ai[l], ai1[l], false);
_11(ai[k1], ai1[k1], ai[l], ai1[l], true);
if(j1 == k)
{
int j2 = ((4 + l) - 2) % 4;
_11(ai[k1], ai1[k1], ai[j2], ai1[j2], true);
_11(ai[j2], ai1[j2], ai[k], ai1[k], true);
} else
if(k1 == k)
{
int k2 = (l + 2) % 4;
_11(ai[j1], ai1[j1], ai[k2], ai1[k2], false);
_11(ai[k2], ai1[k2], ai[k], ai1[k], false);
} else
{
_11(ai[j1], ai1[j1], ai[k], ai1[k], false);
_11(ai[k1], ai1[k1], ai[k], ai1[k], true);
}
}
int ai2[] = {
k, l
};
return ai2;
}
public void _11(int i, int j, int k, int l, boolean flag)
{
int i1 = k - i;
int j1 = l - j;
if(Math.abs(i1) > Math.abs(j1))
{
if(i1 < 0)
{
int k1 = i;
i = k;
k = k1;
k1 = j;
j = l;
l = k1;
}
byte byte1;
if(l > j)
{
byte1 = 1;
} else
{
byte1 = -1;
}
i1 = k - i;
j1 = Math.abs(l - j);
int l1 = i;
int k2 = j;
int i3 = -(i1 / 2);
if(l1 >= 0 && k2 >= 0 && k2 < _8.height)
{
if(flag)
{
_18[k2] = Math.min(l1, _8.width - 1);
} else
{
_19[k2] = Math.min(l1, _8.width - 1);
}
}
while(l1 < k)
{
boolean flag1 = false;
i3 += j1;
if(i3 >= 0)
{
k2 += byte1;
i3 -= i1;
flag1 = true;
}
if(++l1 >= 0 && k2 >= 0 && k2 < _8.height && flag1)
{
if(flag)
{
_18[k2] = Math.min(l1, _8.width - 1);
} else
{
_19[k2] = Math.min(l1, _8.width - 1);
}
}
}
return;
}
if(j1 < 0)
{
int i2 = i;
i = k;
k = i2;
i2 = j;
j = l;
l = i2;
}
byte byte0;
if(k > i)
{
byte0 = 1;
} else
{
byte0 = -1;
}
i1 = Math.abs(k - i);
j1 = l - j;
int j2 = i;
int l2 = j;
int j3 = -(j1 / 2);
if(j2 >= 0 && l2 >= 0 && l2 < _8.height)
{
if(flag)
{
_18[l2] = Math.min(j2, _8.width - 1);
} else
{
_19[l2] = Math.min(j2, _8.width - 1);
}
}
while(l2 < l)
{
j3 += i1;
if(j3 >= 0)
{
j2 += byte0;
j3 -= j1;
}
l2++;
if(j2 >= 0 && l2 >= 0 && l2 < _8.height)
{
if(flag)
{
_18[l2] = Math.min(j2, _8.width - 1);
} else
{
_19[l2] = Math.min(j2, _8.width - 1);
}
}
}
}
public void _0()
{
if(_31 > 0)
{
double d = 0.0D;
for(int i = 0; i < _31 * 3; i += 3)
{
double d1 = _26[i];
double d3 = _26[i + 1];
double d4 = _26[i + 2];
double d5 = Math.sqrt(d1 * d1 + d3 * d3 + d4 * d4) * Math.sqrt(2D);
if(d5 > d)
{
d = d5;
}
}
double d2 = (double)(_8.width <= _8.height ? _8.width : _8.height) / d;
for(int j = 0; j < _31 * 3; j += 3)
{
_26[j] *= d2;
_26[j + 1] *= d2;
_26[j + 2] *= d2;
}
}
}
public void _12()
{
_27 = _5("sleeptime", 10);
_73 = _5("shadowcolor", 16);
_72 = _5("textcolor", 16);
_71 = _5("background", 16);
_13 = new String[6];
for(int i = 0; i < 6; i++)
{
_13[i] = getParameter("url" + Integer.toString(i));
if(_13[i] == null)
{
_13[i] = "";
}
}
if(getParameter("showlightbutton") != null)
{
_83 = getParameter("showlightbutton").substring(0, 1).equalsIgnoreCase("y");
}
_7 = getParameter("target");
_55 = ((double)_5("anglestep", 10) * 3.1415926535897931D) / 180D;
_53 = ((double)_5("mouseresponse", 10) * 3.1415926535897931D) / 180D;
_54 = ((double)_5("zoomspeed", 10) * 3.1415926535897931D) / 180D;
_84 = getParameter("spotlight").substring(0, 1).equalsIgnoreCase("y");
}
public void _8()
{
for(int i = _31 * 3; (i -= 3) >= 0;)
{
double d = _26[i];
double d1 = _26[i + 1];
double d2 = _26[i + 2];
_25[i] = d * _36 + d1 * _37 + d2 * _38 + _39;
_25[i + 1] = d * _40 + d1 * _41 + d2 * _42 + _43;
_25[i + 2] = d * _44 + d1 * _45 + d2 * _46 + _47;
}
}
public void _3()
{
_39 += _59;
_43 += _60;
_47 += _61;
}
public void _10(double d, double d1, double d2, double d3, double d4)
{
double d11 = Math.cos(d3);
double d12 = Math.sin(d3);
for(int i = _31 * 3; (i -= 3) >= 0;)
{
double d5 = _25[i];
double d7 = _25[i + 1];
double d9 = _25[i + 2] - _47;
double d13 = d * d5 + d1 * d7 + d2 * d9;
_25[i] = d13 * d + d11 * (d5 - d13 * d) + d12 * (d1 * d9 - d2 * d7);
_25[i + 1] = d13 * d1 + d11 * (d7 - d13 * d1) + d12 * (d2 * d5 - d * d9);
_25[i + 2] = d13 * d2 + d11 * (d9 - d13 * d2) + d12 * (d * d7 - d1 * d5);
_25[i] *= d4;
_25[i + 1] *= d4;
_25[i + 2] *= d4;
_25[i + 2] += _47;
}
double d6 = _65;
double d8 = _66;
double d10 = _67;
double d14 = d * d6 + d1 * d8 + d2 * d10;
_65 = d14 * d + d11 * (d6 - d14 * d) + d12 * (d1 * d10 - d2 * d8);
_66 = d14 * d1 + d11 * (d8 - d14 * d1) + d12 * (d2 * d6 - d * d10);
_67 = d14 * d2 + d11 * (d10 - d14 * d2) + d12 * (d * d8 - d1 * d6);
}
public void _9()
{
double d = Math.cos(_56);
double d1 = Math.sin(_56);
double d2 = _40 * d + _44 * d1;
double d3 = _41 * d + _45 * d1;
double d4 = _42 * d + _46 * d1;
double d5 = _44 * d - _40 * d1;
double d6 = _45 * d - _41 * d1;
double d7 = _46 * d - _42 * d1;
_40 = d2;
_41 = d3;
_42 = d4;
_44 = d5;
_45 = d6;
_46 = d7;
}
public void _7()
{
double d = Math.cos(_57);
double d1 = Math.sin(_57);
double d2 = _36 * d + _44 * d1;
double d3 = _37 * d + _45 * d1;
double d4 = _38 * d + _46 * d1;
double d5 = _44 * d - _36 * d1;
double d6 = _45 * d - _37 * d1;
double d7 = _46 * d - _38 * d1;
_36 = d2;
_37 = d3;
_38 = d4;
_44 = d5;
_45 = d6;
_46 = d7;
}
public void _6()
{
double d = Math.cos(_58);
double d1 = Math.sin(_58);
double d2 = _40 * d + _36 * d1;
double d3 = _41 * d + _37 * d1;
double d4 = _42 * d + _38 * d1;
double d5 = _36 * d - _40 * d1;
double d6 = _37 * d - _41 * d1;
double d7 = _38 * d - _42 * d1;
_40 = d2;
_41 = d3;
_42 = d4;
_36 = d5;
_37 = d6;
_38 = d7;
}
public Image _2(Image image, int i, int j)
{
int k = image.getWidth(this);
int l = image.getHeight(this);
int ai[] = new int[k * l];
PixelGrabber pixelgrabber = new PixelGrabber(image, 0, 0, k, l, ai, 0, k);
try
{
pixelgrabber.grabPixels();
}
catch(InterruptedException _ex) { }
_20 = new int[i * j];
int i1 = (0x10000 * l) / j;
int j1 = (0x10000 * k) / i;
int k1 = 0;
int l1 = 0;
for(int i2 = 0; i2 < i; i2++)
{
for(int j2 = 0; j2 < j; j2++)
{
_20[i2 + j2 * i] = ai[(k1 >> 16) + (l1 >> 16) * k];
l1 += i1;
}
k1 += j1;
l1 = 0;
}
return createImage(new MemoryImageSource(i, j, _20, 0, i));
}
public boolean mouseDown(Event event, int i, int j)
{
if(_83 && _8.height - j < 32 && _8.width - i < 18)
{
_84 = !_84;
} else
if(_74 != 7)
{
if(System.currentTimeMillis() - _15 < 500L)
{
_86 = true;
if(_13[_74] != null)
{
URL url = null;
try
{
url = new URL(_13[_74]);
}
catch(MalformedURLException _ex)
{
System.out.println("Invalid URL");
showStatus("Invalid URL");
}
getAppletContext().showDocument(url, _7);
}
} else
{
_87 = true;
_15 = System.currentTimeMillis();
}
}
return true;
}
public boolean mouseEnter(Event event, int i, int j)
{
_89 = true;
return true;
}
public boolean mouseExit(Event event, int i, int j)
{
_90 = true;
_89 = false;
return true;
}
public boolean mouseMove(Event event, int i, int j)
{
_89 = true;
_11 = i;
_12 = j;
if(_83)
{
if(_8.width - i >= 18 || _8.height - j >= 32)
{
_48 = (((double)(_8.height / 2 - j) * _53) / (double)_8.width) * 2D;
_49 = (((double)(_8.width / 2 - i) * _53) / (double)_8.height) * 2D;
}
} else
{
_48 = (((double)(_8.height / 2 - j) * _53) / (double)_8.width) * 2D;
_49 = (((double)(_8.width / 2 - i) * _53) / (double)_8.height) * 2D;
}
return true;
}
void _4(Image image)
{
MediaTracker mediatracker = new MediaTracker(this);
mediatracker.addImage(image, 0);
try
{
mediatracker.waitForID(0);
return;
}
catch(InterruptedException _ex)
{
return;
}
}
public synchronized void paint(Graphics g)
{
if(_4 != null && _88)
{
g.drawImage(_4, 0, 0, this);
}
}
public synchronized void update(Graphics g)
{
paint(g);
}
public int _5(String s, int i)
{
try
{
return Integer.parseInt(getParameter(s), i);
}
catch(NumberFormatException _ex)
{
return 0;
}
}
public void start()
{
if(_3 == null)
{
_3 = new Thread(this);
_3.start();
}
}
public void stop()
{
if(_3 != null && _3.isAlive())
{
_3.stop();
}
_3 = null;
}
public image3dcube()
{
_28 = 6;
_83 = false;
_84 = false;
_85 = false;
_86 = false;
_87 = false;
_88 = false;
_89 = false;
_90 = false;
_91 = false;
_92 = false;
}
}
|