home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 October / PCO1097.ISO / FilesBBS / WIN95 / IAVAZIP.EXE / DATA.Z / Port3.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-08-18  |  2.3 KB  |  76 lines

  1. package com.sfs.vrml;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Component;
  5. import java.awt.Dimension;
  6. import java.awt.Graphics;
  7. import java.util.Enumeration;
  8. import java.util.Vector;
  9.  
  10. public class Port3 extends Port {
  11.    private SceneryQuickSort _tsqs = new SceneryQuickSort();
  12.    private Coordinates coordsLight = new Coordinates((double)400.0F, (double)400.0F, (double)400.0F);
  13.  
  14.    public Port3(Scene var1) {
  15.       super(var1);
  16.    }
  17.  
  18.    public void paintScene(Graphics var1) {
  19.       Vector var2 = new Vector();
  20.       Object var3 = null;
  21.       Enumeration var4 = ((Portal)this).getScene().elements();
  22.  
  23.       while(var4.hasMoreElements()) {
  24.          var3 = var4.nextElement();
  25.          if (var3 instanceof TriangleShape) {
  26.             var2.addElement(var3);
  27.          }
  28.       }
  29.  
  30.       Object[] var5 = new Object[var2.size()];
  31.       var2.copyInto(var5);
  32.       this._tsqs.sort(var5);
  33.  
  34.       for(int var6 = 0; var6 < var5.length; ++var6) {
  35.          var3 = var5[var6];
  36.          TriangleShape var7 = (TriangleShape)var3;
  37.          this.paintScene(var1, var7);
  38.       }
  39.  
  40.    }
  41.  
  42.    private void paintScene(Graphics var1, TriangleShape var2) {
  43.       Dimension var3 = ((Component)this).size();
  44.       Coordinates var4 = ((Port)this).adjustPerspective(var2.a);
  45.       Coordinates var5 = ((Port)this).adjustPerspective(var2.b);
  46.       Coordinates var6 = ((Port)this).adjustPerspective(var2.c);
  47.       int var7 = var3.width;
  48.       int var8 = var3.height;
  49.       int[] var9 = new int[4];
  50.       int[] var10 = new int[4];
  51.       int[] var11 = new int[4];
  52.       var9[0] = (int)var4.x + var7 / 2;
  53.       var10[0] = -((int)var4.y) + var8 / 2;
  54.       var11[0] = (int)var4.z;
  55.       var9[1] = (int)var5.x + var7 / 2;
  56.       var10[1] = -((int)var5.y) + var8 / 2;
  57.       var11[1] = (int)var5.z;
  58.       var9[2] = (int)var6.x + var7 / 2;
  59.       var10[2] = -((int)var6.y) + var8 / 2;
  60.       var11[2] = (int)var6.z;
  61.       var9[3] = (int)var4.x + var7 / 2;
  62.       var10[3] = -((int)var4.y) + var8 / 2;
  63.       var11[3] = (int)var4.z;
  64.       Coordinates var12 = Algorithms.getCentroid(var2);
  65.       Coordinates var13 = Algorithms.getNormal(var2);
  66.       Coordinates var14 = Algorithms.getLine(var12, this.coordsLight);
  67.       float var15 = (float)Algorithms.dot(var13, var14);
  68.       float var16 = (float)((double)var15 / (double)2.0F + (double)0.5F);
  69.       Color var17 = new Color(var16, var16, var16);
  70.       var1.setColor(var17);
  71.       var1.fillPolygon(var9, var10, 4);
  72.       var1.setColor(((Component)this).getForeground());
  73.       var1.drawPolygon(var9, var10, 4);
  74.    }
  75. }
  76.