final class Line3D
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
(package private) int |
cc1 |
(package private) int |
cc2 |
(package private) Graphics3D |
g3d |
(package private) java.util.BitSet |
lineBits |
(package private) java.util.Hashtable |
lineCache |
(package private) boolean |
lineTypeX |
(package private) int |
nBits |
(package private) int |
nCached |
(package private) int |
nFound |
(package private) float |
slope |
(package private) java.lang.Float |
slopeKey |
(package private) static int |
VISIBILITY_CLIPPED |
(package private) static int |
VISIBILITY_OFFSCREEN |
(package private) static int |
VISIBILITY_UNCLIPPED |
(package private) int |
x1t |
(package private) int |
x2t |
(package private) int |
y1t |
(package private) int |
y2t |
(package private) int |
z1t |
(package private) int |
z2t |
Constructor and Description |
---|
Line3D(Graphics3D g3d) |
Modifier and Type | Method and Description |
---|---|
(package private) boolean |
getCachedLine() |
(package private) int |
getTrimmedLine()
Cohen-Sutherland line clipping used to check visibility.
|
(package private) void |
plotDashedLine(int argb,
boolean tScreened,
int run,
int rise,
int xA,
int yA,
int zA,
int xB,
int yB,
int zB,
boolean clipped) |
(package private) void |
plotLine(int argbA,
boolean tScreenedA,
int argbB,
boolean tScreenedB,
int xA,
int yA,
int zA,
int xB,
int yB,
int zB,
boolean clipped) |
private void |
plotLineClipped(int[] shades1,
boolean tScreened1,
int[] shades2,
boolean tScreened2,
int shadeIndex,
int x,
int y,
int z,
int dx,
int dy,
int dz,
boolean clipped,
int run,
int rise) |
private void |
plotLineClipped(int argb1,
boolean tScreened1,
int argb2,
boolean tScreened2,
int x,
int y,
int z,
int dx,
int dy,
int dz,
boolean clipped,
int run,
int rise) |
private void |
plotLineClippedBits(int[] shades1,
boolean tScreened1,
int[] shades2,
boolean tScreened2,
int shadeIndex,
int x,
int y,
int z,
int dx,
int dy,
int dz,
int run,
int rise) |
(package private) void |
plotLineDelta(int[] shades1,
boolean tScreened1,
int[] shades2,
boolean tScreened2,
int shadeIndex,
int xA,
int yA,
int zA,
int dxBA,
int dyBA,
int dzBA,
boolean clipped) |
(package private) void |
plotLineDelta(int argbA,
boolean tScreenedA,
int argbB,
boolean tScreenedB,
int xA,
int yA,
int zA,
int dxBA,
int dyBA,
int dzBA,
boolean clipped) |
(package private) void |
plotLineDeltaBits(int[] shades1,
boolean tScreened1,
int[] shades2,
boolean tScreened2,
int shadeIndex,
int xA,
int yA,
int zA,
int dxBA,
int dyBA,
int dzBA,
boolean clipped) |
(package private) void |
setLineBits(float dx,
float dy) |
Graphics3D g3d
java.util.BitSet lineBits
float slope
boolean lineTypeX
int nBits
int nCached
int nFound
java.util.Hashtable lineCache
java.lang.Float slopeKey
static final int VISIBILITY_UNCLIPPED
static final int VISIBILITY_CLIPPED
static final int VISIBILITY_OFFSCREEN
int x1t
int y1t
int z1t
int x2t
int y2t
int z2t
int cc1
int cc2
Line3D(Graphics3D g3d)
void setLineBits(float dx, float dy)
boolean getCachedLine()
int getTrimmedLine()
Cohen-Sutherland line clipping used to check visibility.
Note that this routine is only used for visibility checking. To avoid integer rounding errors which cause cracking to occur in 'solid' surfaces, the lines are actually drawn from their original end-points. The nuance is that this algorithm doesn't just deliver a boolean. It delivers the trimmed line. Although we need to start the raster loop at the origin for good surfaces, we can save lots of time by saving the known endpoints as globals variables. -- Bob Hanson 7/06
void plotLine(int argbA, boolean tScreenedA, int argbB, boolean tScreenedB, int xA, int yA, int zA, int xB, int yB, int zB, boolean clipped)
void plotLineDelta(int argbA, boolean tScreenedA, int argbB, boolean tScreenedB, int xA, int yA, int zA, int dxBA, int dyBA, int dzBA, boolean clipped)
void plotLineDelta(int[] shades1, boolean tScreened1, int[] shades2, boolean tScreened2, int shadeIndex, int xA, int yA, int zA, int dxBA, int dyBA, int dzBA, boolean clipped)
void plotLineDeltaBits(int[] shades1, boolean tScreened1, int[] shades2, boolean tScreened2, int shadeIndex, int xA, int yA, int zA, int dxBA, int dyBA, int dzBA, boolean clipped)
void plotDashedLine(int argb, boolean tScreened, int run, int rise, int xA, int yA, int zA, int xB, int yB, int zB, boolean clipped)
private void plotLineClipped(int argb1, boolean tScreened1, int argb2, boolean tScreened2, int x, int y, int z, int dx, int dy, int dz, boolean clipped, int run, int rise)
private void plotLineClipped(int[] shades1, boolean tScreened1, int[] shades2, boolean tScreened2, int shadeIndex, int x, int y, int z, int dx, int dy, int dz, boolean clipped, int run, int rise)
private void plotLineClippedBits(int[] shades1, boolean tScreened1, int[] shades2, boolean tScreened2, int shadeIndex, int x, int y, int z, int dx, int dy, int dz, int run, int rise)