Put Motor Appearances into the DefaultAppearance class.

DefaultAppearance is quite disorganized at the moment, but this at least
hides it all in one place
This commit is contained in:
bkuker 2013-01-11 19:15:14 -05:00
parent fe3d66cef1
commit 5436cd1560
3 changed files with 24 additions and 61 deletions

View File

@ -5,6 +5,8 @@ import java.util.HashMap;
import net.sf.openrocket.appearance.Appearance;
import net.sf.openrocket.appearance.Decal;
import net.sf.openrocket.appearance.Decal.EdgeMode;
import net.sf.openrocket.motor.Motor;
import net.sf.openrocket.motor.ThrustCurveMotor;
import net.sf.openrocket.rocketcomponent.BodyTube;
import net.sf.openrocket.rocketcomponent.EngineBlock;
import net.sf.openrocket.rocketcomponent.FinSet;
@ -47,20 +49,24 @@ public class DefaultAppearance {
private static Appearance BALSA = simple("/datafiles/textures/balsa.png");
private static Appearance WOOD = simple("/datafiles/textures/wood.png");
@SuppressWarnings("unused")
private static Appearance CARDBOARD = simple("/datafiles/textures/cardboard.png");
private static Appearance HARDBOARD = simple("/datafiles/textures/hardboard.png");
private static Appearance WADDING = simple("/datafiles/textures/wadding.png");
private static Appearance CHUTE = simple("/datafiles/textures/chute.png");
public static final Appearance ESTES_BT = simpleAlpha(new Color(212, 185, 145), .3f, "/datafiles/textures/spiral-wound-alpha.png");
public static final Appearance ESTES_IT = simpleAlpha(new Color(168, 146, 116), .1f, "/datafiles/textures/spiral-wound-alpha.png");
public static final Appearance WHITE_BT = simpleAlpha(new Color(240, 240, 240), .3f, "/datafiles/textures/spiral-wound-alpha.png");
private static final Appearance ESTES_BT = simpleAlpha(new Color(212, 185, 145), .3f, "/datafiles/textures/spiral-wound-alpha.png");
private static final Appearance ESTES_IT = simpleAlpha(new Color(168, 146, 116), .1f, "/datafiles/textures/spiral-wound-alpha.png");
private static final Appearance WHITE_BT = simpleAlpha(new Color(240, 240, 240), .3f, "/datafiles/textures/spiral-wound-alpha.png");
private static Appearance ESTES_MOTOR = simple("/datafiles/textures/motors/estes.png");
private static Appearance AEROTECH_MOTOR = simple("/datafiles/textures/motors/aerotech.png");
private static Appearance REUSABLE_MOTOR = simpleAlpha(new Color(195, 60, 50), .6f, "/datafiles/textures/motors/reusable.png");
private static HashMap<Color, Appearance> plastics = new HashMap<Color, Appearance>();
public static Appearance getPlastic(Color c) {
private static Appearance getPlastic(Color c) {
if (!plastics.containsKey(c)) {
plastics.put(c, new Appearance(c, .3));
}
@ -89,4 +95,17 @@ public class DefaultAppearance {
return Appearance.MISSING;
}
public static Appearance getDefaultAppearance(Motor m) {
if (m instanceof ThrustCurveMotor) {
ThrustCurveMotor tcm = (ThrustCurveMotor) m;
if ("Estes".equals(tcm.getManufacturer().getSimpleName())) {
return ESTES_MOTOR;
}
if ("AeroTech".equals(tcm.getManufacturer().getSimpleName())) {
return AEROTECH_MOTOR;
}
}
return REUSABLE_MOTOR;
}
}

View File

@ -1,55 +0,0 @@
package net.sf.openrocket.appearance.defaults;
import net.sf.openrocket.appearance.Appearance;
import net.sf.openrocket.appearance.Decal;
import net.sf.openrocket.appearance.Decal.EdgeMode;
import net.sf.openrocket.motor.Motor;
import net.sf.openrocket.motor.ThrustCurveMotor;
import net.sf.openrocket.util.Color;
import net.sf.openrocket.util.Coordinate;
public class MotorAppearance extends Appearance {
private static MotorAppearance ESTES = new MotorAppearance("/datafiles/textures/motors/estes.png");
private static MotorAppearance AEROTECH = new MotorAppearance("/datafiles/textures/motors/aerotech.png");
private static MotorAppearance REUSABLE = new MotorAppearance("/datafiles/textures/motors/reusable.png", new Color(195, 60, 50), .6);
public static Appearance getAppearance(Motor m) {
if (m instanceof ThrustCurveMotor) {
ThrustCurveMotor tcm = (ThrustCurveMotor) m;
if ("Estes".equals(tcm.getManufacturer().getSimpleName())) {
return ESTES;
}
if ("AeroTech".equals(tcm.getManufacturer().getSimpleName())) {
return AEROTECH;
}
}
return REUSABLE;
}
protected MotorAppearance(final String resource) {
super(
new Color(0, 0, 0),
.1,
new Decal(
new Coordinate(0, 0),
new Coordinate(0, 0),
new Coordinate(1, 1),
0,
new ResourceDecalImage(resource), EdgeMode.REPEAT));
}
protected MotorAppearance(final String resource, Color c, double shine) {
super(
c,
shine,
new Decal(
new Coordinate(0, 0),
new Coordinate(0, 0),
new Coordinate(1, 1),
0,
new ResourceDecalImage(resource), EdgeMode.REPEAT));
}
}

View File

@ -15,7 +15,6 @@ import javax.media.opengl.fixedfunc.GLMatrixFunc;
import net.sf.openrocket.appearance.Appearance;
import net.sf.openrocket.appearance.Decal;
import net.sf.openrocket.appearance.defaults.DefaultAppearance;
import net.sf.openrocket.appearance.defaults.MotorAppearance;
import net.sf.openrocket.document.OpenRocketDocument;
import net.sf.openrocket.motor.Motor;
import net.sf.openrocket.rocketcomponent.RocketComponent;
@ -102,7 +101,7 @@ public class RealisticRenderer extends RocketRenderer {
public void run() {
cr.renderMotor(gl, c, motor);
}
}, MotorAppearance.getAppearance(motor), 1);
}, DefaultAppearance.getDefaultAppearance(motor), 1);
}
@Override