org.jmol.g3d
Class Triangle3D

java.lang.Object
  extended by org.jmol.g3d.Triangle3D

 class Triangle3D
extends java.lang.Object

renders triangles

currently only renders flat triangles

will probably need performance tuning

Author:
Miguel, miguel@jmol.org

Field Summary
(package private)  int[] ax
           
(package private)  int[] axE
           
(package private)  int[] axW
           
(package private)  int[] ay
           
(package private)  int[] az
           
(package private)  int[] azE
           
(package private)  int[] azW
           
private static int DEFAULT
           
(package private)  Graphics3D g3d
           
(package private)  Line3D line3d
           
(package private)  Rgb16[] rgb16sE
           
(package private)  Rgb16[] rgb16sGouraud
           
(package private)  Rgb16[] rgb16sW
           
(package private)  Rgb16 rgb16t1
           
(package private)  Rgb16 rgb16t2
           
private static boolean VERIFY
           
 
Constructor Summary
Triangle3D(Graphics3D g3d)
           
 
Method Summary
private  void adjustVertex(int[] t, float factor)
           
(package private)  void drawfillTriangle(int xA, int yA, int zA, int xB, int yB, int zB, int xC, int yC, int zC, boolean useGouraud)
           
private  void fillRaster(int y, int numLines, boolean useGouraud, boolean isClipped, int correction)
           
private  void fillTriangle(boolean useGouraud)
           
(package private)  void fillTriangle(int xScreenA, int yScreenA, int zScreenA, int xScreenB, int yScreenB, int zScreenB, int xScreenC, int yScreenC, int zScreenC, boolean useGouraud)
           
(package private)  void fillTriangle(javax.vecmath.Point3f screenA, javax.vecmath.Point3f screenB, javax.vecmath.Point3f screenC, boolean useGouraud)
           
(package private)  void fillTriangle(javax.vecmath.Point3i screenA, javax.vecmath.Point3i screenB, javax.vecmath.Point3i screenC, boolean useGouraud)
           
(package private)  void fillTriangle(javax.vecmath.Point3i screenA, javax.vecmath.Point3i screenB, javax.vecmath.Point3i screenC, float factor, boolean useGouraud)
           
private  void generateRaster(int dy, int iN, int iS, int[] axRaster, int[] azRaster, int iRaster, Rgb16[] gouraud)
           
private  void reallocRasterArrays(int n)
           
(package private)  Rgb16[] reallocRgb16s(Rgb16[] rgb16s, int n)
           
(package private)  void setGouraud(int rgbA, int rgbB, int rgbC)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

g3d

final Graphics3D g3d

line3d

final Line3D line3d

ax

int[] ax

ay

int[] ay

az

int[] az

rgb16sGouraud

Rgb16[] rgb16sGouraud

VERIFY

private static final boolean VERIFY
See Also:
Constant Field Values

rgb16t1

final Rgb16 rgb16t1

rgb16t2

final Rgb16 rgb16t2

DEFAULT

private static final int DEFAULT
See Also:
Constant Field Values

axW

int[] axW

azW

int[] azW

axE

int[] axE

azE

int[] azE

rgb16sW

Rgb16[] rgb16sW

rgb16sE

Rgb16[] rgb16sE
Constructor Detail

Triangle3D

Triangle3D(Graphics3D g3d)
Method Detail

reallocRgb16s

Rgb16[] reallocRgb16s(Rgb16[] rgb16s,
                      int n)

setGouraud

void setGouraud(int rgbA,
                int rgbB,
                int rgbC)

drawfillTriangle

void drawfillTriangle(int xA,
                      int yA,
                      int zA,
                      int xB,
                      int yB,
                      int zB,
                      int xC,
                      int yC,
                      int zC,
                      boolean useGouraud)

fillTriangle

void fillTriangle(int xScreenA,
                  int yScreenA,
                  int zScreenA,
                  int xScreenB,
                  int yScreenB,
                  int zScreenB,
                  int xScreenC,
                  int yScreenC,
                  int zScreenC,
                  boolean useGouraud)

fillTriangle

void fillTriangle(javax.vecmath.Point3i screenA,
                  javax.vecmath.Point3i screenB,
                  javax.vecmath.Point3i screenC,
                  boolean useGouraud)

fillTriangle

void fillTriangle(javax.vecmath.Point3f screenA,
                  javax.vecmath.Point3f screenB,
                  javax.vecmath.Point3f screenC,
                  boolean useGouraud)

fillTriangle

void fillTriangle(javax.vecmath.Point3i screenA,
                  javax.vecmath.Point3i screenB,
                  javax.vecmath.Point3i screenC,
                  float factor,
                  boolean useGouraud)

adjustVertex

private void adjustVertex(int[] t,
                          float factor)

fillTriangle

private void fillTriangle(boolean useGouraud)

reallocRasterArrays

private void reallocRasterArrays(int n)

generateRaster

private void generateRaster(int dy,
                            int iN,
                            int iS,
                            int[] axRaster,
                            int[] azRaster,
                            int iRaster,
                            Rgb16[] gouraud)

fillRaster

private void fillRaster(int y,
                        int numLines,
                        boolean useGouraud,
                        boolean isClipped,
                        int correction)