projects
/
sixth-3d.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Improved code readability
[sixth-3d.git]
/
src
/
main
/
java
/
eu
/
svjatoslav
/
sixth
/
e3d
/
renderer
/
raster
/
shapes
/
basic
/
line
/
Line.java
diff --git
a/src/main/java/eu/svjatoslav/sixth/e3d/renderer/raster/shapes/basic/line/Line.java
b/src/main/java/eu/svjatoslav/sixth/e3d/renderer/raster/shapes/basic/line/Line.java
index
0c5aad1
..
2366e79
100644
(file)
--- a/
src/main/java/eu/svjatoslav/sixth/e3d/renderer/raster/shapes/basic/line/Line.java
+++ b/
src/main/java/eu/svjatoslav/sixth/e3d/renderer/raster/shapes/basic/line/Line.java
@@
-1,13
+1,7
@@
/*
/*
- * Sixth 3D engine. Copyright ©2012-2016, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 3 of the GNU Lesser General Public License
- * or later as published by the Free Software Foundation.
- *
+ * Sixth 3D engine. Author: Svjatoslav Agejenko.
+ * This project is released under Creative Commons Zero (CC0) license.
*/
*/
-
-
package eu.svjatoslav.sixth.e3d.renderer.raster.shapes.basic.line;
import eu.svjatoslav.sixth.e3d.geometry.Point2D;
package eu.svjatoslav.sixth.e3d.renderer.raster.shapes.basic.line;
import eu.svjatoslav.sixth.e3d.geometry.Point2D;
@@
-16,20
+10,32
@@
import eu.svjatoslav.sixth.e3d.gui.RenderingContext;
import eu.svjatoslav.sixth.e3d.renderer.raster.Color;
import eu.svjatoslav.sixth.e3d.renderer.raster.shapes.AbstractCoordinateShape;
import eu.svjatoslav.sixth.e3d.renderer.raster.Color;
import eu.svjatoslav.sixth.e3d.renderer.raster.shapes.AbstractCoordinateShape;
+/**
+ * Line in 3D space.
+ *
+ * Line is represented by two points, width and color and width.
+ */
public class Line extends AbstractCoordinateShape {
private static final double MINIMUM_WIDTH_THRESHOLD = 1;
private static final double LINE_WIDTH_MULTIPLIER = 0.2d;
public class Line extends AbstractCoordinateShape {
private static final double MINIMUM_WIDTH_THRESHOLD = 1;
private static final double LINE_WIDTH_MULTIPLIER = 0.2d;
+ /**
+ * width of the line.
+ */
public final double width;
public final double width;
- final LineInterpolator[] li = new LineInterpolator[4];
+ final LineInterpolator[] lineInterpolators = new LineInterpolator[4];
+
+ /**
+ * Color of the line.
+ */
public Color color;
public Line(final Line parentLine) {
this(parentLine.coordinates[0].coordinate.clone(),
public Color color;
public Line(final Line parentLine) {
this(parentLine.coordinates[0].coordinate.clone(),
- parentLine.coordinates[1].coordinate.clone(),
new Color(
-
parentLine.color), parentLine.width);
+ parentLine.coordinates[1].coordinate.clone(),
+
new Color(
parentLine.color), parentLine.width);
}
public Line(final Point3D point1, final Point3D point2, final Color color,
}
public Line(final Point3D point1, final Point3D point2, final Color color,
@@
-40,14
+46,14
@@
public class Line extends AbstractCoordinateShape {
this.color = color;
this.width = width;
this.color = color;
this.width = width;
- for (int i = 0; i < li.length; i++)
- li[i] = new LineInterpolator();
+ for (int i = 0; i < li
neInterpolators
.length; i++)
+ li
neInterpolators
[i] = new LineInterpolator();
}
}
- p
ublic
void drawHorizontalLine(final LineInterpolator line1,
- final LineInterpolator line2, final int y,
- final RenderingContext renderBuffer) {
+ p
rivate
void drawHorizontalLine(final LineInterpolator line1,
+
final LineInterpolator line2, final int y,
+
final RenderingContext renderBuffer) {
int x1 = line1.getX(y);
int x2 = line2.getX(y);
int x1 = line1.getX(y);
int x2 = line2.getX(y);
@@
-79,7
+85,7
@@
public class Line extends AbstractCoordinateShape {
final int drawnWidth = x2 - x1;
int offset = ((y * renderBuffer.width) + x1) * 4;
final int drawnWidth = x2 - x1;
int offset = ((y * renderBuffer.width) + x1) * 4;
- final byte[] offSreenBufferBytes = renderBuffer.
byte
s;
+ final byte[] offSreenBufferBytes = renderBuffer.
pixel
s;
final int lineAlpha = color.a;
final int lineAlpha = color.a;
@@
-108,8
+114,8
@@
public class Line extends AbstractCoordinateShape {
}
}
- p
ublic
void drawSinglePixelHorizontalLine(final RenderingContext buffer,
- final int alpha) {
+ p
rivate
void drawSinglePixelHorizontalLine(final RenderingContext buffer,
+
final int alpha) {
final Point2D onScreenPoint1 = coordinates[0].onScreenCoordinate;
final Point2D onScreenPoint2 = coordinates[1].onScreenCoordinate;
final Point2D onScreenPoint1 = coordinates[0].onScreenCoordinate;
final Point2D onScreenPoint2 = coordinates[1].onScreenCoordinate;
@@
-135,7
+141,7
@@
public class Line extends AbstractCoordinateShape {
if (lineWidth == 0)
return;
if (lineWidth == 0)
return;
- final byte[] offSreenBufferBytes = buffer.
byte
s;
+ final byte[] offSreenBufferBytes = buffer.
pixel
s;
final int backgroundAlpha = 255 - alpha;
final int blueWithAlpha = color.b * alpha;
final int backgroundAlpha = 255 - alpha;
final int blueWithAlpha = color.b * alpha;
@@
-164,8
+170,8
@@
public class Line extends AbstractCoordinateShape {
}
}
- p
ublic
void drawSinglePixelVerticalLine(final RenderingContext buffer,
- final int alpha) {
+ p
rivate
void drawSinglePixelVerticalLine(final RenderingContext buffer,
+
final int alpha) {
final Point2D onScreenPoint1 = coordinates[0].onScreenCoordinate;
final Point2D onScreenPoint2 = coordinates[1].onScreenCoordinate;
final Point2D onScreenPoint1 = coordinates[0].onScreenCoordinate;
final Point2D onScreenPoint2 = coordinates[1].onScreenCoordinate;
@@
-191,11
+197,11
@@
public class Line extends AbstractCoordinateShape {
if (lineHeight == 0)
return;
if (lineHeight == 0)
return;
- final byte[] offS
reenBufferBytes = buffer.byte
s;
+ final byte[] offS
creenBufferBytes = buffer.pixel
s;
final int backgroundAlpha = 255 - alpha;
final int blueWithAlpha = color.b * alpha;
final int backgroundAlpha = 255 - alpha;
final int blueWithAlpha = color.b * alpha;
- final int greenWithA
pl
ha = color.g * alpha;
+ final int greenWithA
lp
ha = color.g * alpha;
final int redWithAlpha = color.r * alpha;
for (int relativeY = 0; relativeY <= lineHeight; relativeY++) {
final int redWithAlpha = color.r * alpha;
for (int relativeY = 0; relativeY <= lineHeight; relativeY++) {
@@
-207,22
+213,22
@@
public class Line extends AbstractCoordinateShape {
if ((x >= 0) && (x < buffer.width)) {
int ramOffset = ((y * buffer.width) + x) * 4;
if ((x >= 0) && (x < buffer.width)) {
int ramOffset = ((y * buffer.width) + x) * 4;
- offSreenBufferBytes[ramOffset] = (byte) 255;
+ offS
c
reenBufferBytes[ramOffset] = (byte) 255;
ramOffset++;
ramOffset++;
- offS
reenBufferBytes[ramOffset] = (byte) ((((offS
reenBufferBytes[ramOffset] & 0xff) * backgroundAlpha) + blueWithAlpha) / 256);
+ offS
creenBufferBytes[ramOffset] = (byte) ((((offSc
reenBufferBytes[ramOffset] & 0xff) * backgroundAlpha) + blueWithAlpha) / 256);
ramOffset++;
ramOffset++;
- offS
reenBufferBytes[ramOffset] = (byte) ((((offSreenBufferBytes[ramOffset] & 0xff) * backgroundAlpha) + greenWithApl
ha) / 256);
+ offS
creenBufferBytes[ramOffset] = (byte) ((((offScreenBufferBytes[ramOffset] & 0xff) * backgroundAlpha) + greenWithAlp
ha) / 256);
ramOffset++;
ramOffset++;
- offS
reenBufferBytes[ramOffset] = (byte) ((((offS
reenBufferBytes[ramOffset] & 0xff) * backgroundAlpha) + redWithAlpha) / 256);
+ offS
creenBufferBytes[ramOffset] = (byte) ((((offSc
reenBufferBytes[ramOffset] & 0xff) * backgroundAlpha) + redWithAlpha) / 256);
}
}
}
}
}
}
}
}
- p
ublic
int getLineInterpolator(final int startPointer, final int y) {
+ p
rivate
int getLineInterpolator(final int startPointer, final int y) {
- for (int i = startPointer; i < li.length; i++)
- if (li[i].containsY(y))
+ for (int i = startPointer; i < li
neInterpolators
.length; i++)
+ if (li
neInterpolators
[i].containsY(y))
return i;
return -1;
}
return i;
return -1;
}
@@
-280,11
+286,11
@@
public class Line extends AbstractCoordinateShape {
final double p2x2 = onScreenPoint2.x + xdec2;
final double p2y2 = onScreenPoint2.y - yinc2;
final double p2x2 = onScreenPoint2.x + xdec2;
final double p2y2 = onScreenPoint2.y - yinc2;
- li[0].setPoints(p1x1, p1y1, 1d, p2x1, p2y1, 1d);
- li[1].setPoints(p1x2, p1y2, -1d, p2x2, p2y2, -1d);
+ li
neInterpolators
[0].setPoints(p1x1, p1y1, 1d, p2x1, p2y1, 1d);
+ li
neInterpolators
[1].setPoints(p1x2, p1y2, -1d, p2x2, p2y2, -1d);
- li[2].setPoints(p1x1, p1y1, 1d, p1x2, p1y2, -1d);
- li[3].setPoints(p2x1, p2y1, 1d, p2x2, p2y2, -1d);
+ li
neInterpolators
[2].setPoints(p1x1, p1y1, 1d, p1x2, p1y2, -1d);
+ li
neInterpolators
[3].setPoints(p2x1, p2y1, 1d, p2x2, p2y2, -1d);
double ymin = p1y1;
if (p1y2 < ymin)
double ymin = p1y1;
if (p1y2 < ymin)
@@
-311,7
+317,7
@@
public class Line extends AbstractCoordinateShape {
if (li1 != -1) {
final int li2 = getLineInterpolator(li1 + 1, y);
if (li2 != -1)
if (li1 != -1) {
final int li2 = getLineInterpolator(li1 + 1, y);
if (li2 != -1)
- drawHorizontalLine(li
[li1], li
[li2], y, buffer);
+ drawHorizontalLine(li
neInterpolators[li1], lineInterpolators
[li2], y, buffer);
}
}
}
}
}
}