home *** CD-ROM | disk | FTP | other *** search
- package com.sfs.vrml;
-
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Dimension;
- import java.awt.Graphics;
- import java.util.Enumeration;
- import java.util.Vector;
-
- public class Port3 extends Port {
- private SceneryQuickSort _tsqs = new SceneryQuickSort();
- private Coordinates coordsLight = new Coordinates((double)400.0F, (double)400.0F, (double)400.0F);
-
- public Port3(Scene var1) {
- super(var1);
- }
-
- public void paintScene(Graphics var1) {
- Vector var2 = new Vector();
- Object var3 = null;
- Enumeration var4 = ((Portal)this).getScene().elements();
-
- while(var4.hasMoreElements()) {
- var3 = var4.nextElement();
- if (var3 instanceof TriangleShape) {
- var2.addElement(var3);
- }
- }
-
- Object[] var5 = new Object[var2.size()];
- var2.copyInto(var5);
- this._tsqs.sort(var5);
-
- for(int var6 = 0; var6 < var5.length; ++var6) {
- var3 = var5[var6];
- TriangleShape var7 = (TriangleShape)var3;
- this.paintScene(var1, var7);
- }
-
- }
-
- private void paintScene(Graphics var1, TriangleShape var2) {
- Dimension var3 = ((Component)this).size();
- Coordinates var4 = ((Port)this).adjustPerspective(var2.a);
- Coordinates var5 = ((Port)this).adjustPerspective(var2.b);
- Coordinates var6 = ((Port)this).adjustPerspective(var2.c);
- int var7 = var3.width;
- int var8 = var3.height;
- int[] var9 = new int[4];
- int[] var10 = new int[4];
- int[] var11 = new int[4];
- var9[0] = (int)var4.x + var7 / 2;
- var10[0] = -((int)var4.y) + var8 / 2;
- var11[0] = (int)var4.z;
- var9[1] = (int)var5.x + var7 / 2;
- var10[1] = -((int)var5.y) + var8 / 2;
- var11[1] = (int)var5.z;
- var9[2] = (int)var6.x + var7 / 2;
- var10[2] = -((int)var6.y) + var8 / 2;
- var11[2] = (int)var6.z;
- var9[3] = (int)var4.x + var7 / 2;
- var10[3] = -((int)var4.y) + var8 / 2;
- var11[3] = (int)var4.z;
- Coordinates var12 = Algorithms.getCentroid(var2);
- Coordinates var13 = Algorithms.getNormal(var2);
- Coordinates var14 = Algorithms.getLine(var12, this.coordsLight);
- float var15 = (float)Algorithms.dot(var13, var14);
- float var16 = (float)((double)var15 / (double)2.0F + (double)0.5F);
- Color var17 = new Color(var16, var16, var16);
- var1.setColor(var17);
- var1.fillPolygon(var9, var10, 4);
- var1.setColor(((Component)this).getForeground());
- var1.drawPolygon(var9, var10, 4);
- }
- }
-