[#2279] Change transition 3D fine-rendering based on aft/fore

This commit is contained in:
SiboVG 2023-08-01 01:58:00 +02:00
parent 596380203e
commit 09a75af526

View File

@ -123,7 +123,7 @@ final class TransitionRenderer {
private TransitionRenderer() { private TransitionRenderer() {
} }
static final void drawTransition(final GL2 gl, final Transition tr, static void drawTransition(final GL2 gl, final Transition tr,
final int slices, final int stacks, final double offsetRadius) { final int slices, final int stacks, final double offsetRadius) {
double da, r, dzBase; double da, r, dzBase;
@ -131,14 +131,16 @@ final class TransitionRenderer {
int i; int i;
da = 2.0f * Math.PI / slices; da = 2.0f * Math.PI / slices;
dzBase = (double) tr.getLength() / stacks; dzBase = tr.getLength() / stacks;
double ds = 1.0f / slices; double ds = 1.0f / slices;
z = 0.0f; z = 0.0f;
r = (double) tr.getForeRadius();
while (z < tr.getLength()) { while (z < tr.getLength()) {
double t = z / tr.getLength(); double t = z / tr.getLength();
if (tr.getForeRadius() > tr.getAftRadius()) {
t = 1 - t;
}
double dz = t < 0.025 ? dzBase / 8.0 : dzBase; double dz = t < 0.025 ? dzBase / 8.0 : dzBase;
double zNext = Math.min(z + dz, tr.getLength()); double zNext = Math.min(z + dz, tr.getLength());