From 2814827bcc56313ffbaca2191c9bd03affc069fd Mon Sep 17 00:00:00 2001 From: SiboVG Date: Mon, 4 Jul 2022 12:10:29 +0200 Subject: [PATCH] [#1509] Make InnerTube InsideColorComponent --- .../sf/openrocket/rocketcomponent/InnerTube.java | 14 +++++++++++++- .../gui/figure3d/geometry/ComponentRenderer.java | 7 +++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/core/src/net/sf/openrocket/rocketcomponent/InnerTube.java b/core/src/net/sf/openrocket/rocketcomponent/InnerTube.java index a1935c0cf..272de11ac 100644 --- a/core/src/net/sf/openrocket/rocketcomponent/InnerTube.java +++ b/core/src/net/sf/openrocket/rocketcomponent/InnerTube.java @@ -26,7 +26,7 @@ import net.sf.openrocket.util.MathUtil; * * @author Sampo Niskanen */ -public class InnerTube extends ThicknessRingComponent implements AxialPositionable, BoxBounded, Clusterable, RadialParent, MotorMount { +public class InnerTube extends ThicknessRingComponent implements AxialPositionable, BoxBounded, Clusterable, RadialParent, MotorMount, InsideColorComponent { private static final Translator trans = Application.getTranslator(); private static final Logger log = LoggerFactory.getLogger(InnerTube.class); @@ -37,6 +37,8 @@ public class InnerTube extends ThicknessRingComponent implements AxialPositionab private double overhang = 0; private boolean isActingMount; private MotorConfigurationSet motors; + + private InsideColorComponentHandler insideColorComponentHandler = new InsideColorComponentHandler(this); /** * Main constructor. @@ -447,6 +449,16 @@ public class InnerTube extends ThicknessRingComponent implements AxialPositionab return this.motors.toDebug(); } + @Override + public InsideColorComponentHandler getInsideColorComponentHandler() { + return this.insideColorComponentHandler; + } + + @Override + public void setInsideColorComponentHandler(InsideColorComponentHandler handler) { + this.insideColorComponentHandler = handler; + } + @Override public boolean addConfigListener(RocketComponent listener) { boolean success = super.addConfigListener(listener); diff --git a/swing/src/net/sf/openrocket/gui/figure3d/geometry/ComponentRenderer.java b/swing/src/net/sf/openrocket/gui/figure3d/geometry/ComponentRenderer.java index b83143638..5c2d39c1e 100644 --- a/swing/src/net/sf/openrocket/gui/figure3d/geometry/ComponentRenderer.java +++ b/swing/src/net/sf/openrocket/gui/figure3d/geometry/ComponentRenderer.java @@ -7,6 +7,7 @@ import com.jogamp.opengl.fixedfunc.GLMatrixFunc; import com.jogamp.opengl.glu.GLU; import com.jogamp.opengl.glu.GLUquadric; +import net.sf.openrocket.rocketcomponent.InnerTube; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -98,6 +99,8 @@ public class ComponentRenderer { if (c instanceof BodyTube) { renderTube(gl, (BodyTube) c, which); + } else if (c instanceof InnerTube) { + renderTube(gl, (InnerTube) c, which); } else if (c instanceof LaunchLug) { renderLug(gl, (LaunchLug) c, which); } else if ( c instanceof RailButton ){ @@ -257,6 +260,10 @@ public class ComponentRenderer { renderTube(gl, which, t.getOuterRadius(), t.getInnerRadius(), t.getLength()); } + private void renderTube(GL2 gl, InnerTube t, Surface which) { + renderTube(gl, which, t.getOuterRadius(), t.getInnerRadius(), t.getLength()); + } + private void renderRing(GL2 gl, RingComponent r) { gl.glRotated(90, 0, 1.0, 0);