1 package net.sf.openrocket.rocketcomponent;
3 import net.sf.openrocket.material.Material;
4 import net.sf.openrocket.util.MathUtil;
5 import net.sf.openrocket.util.Prefs;
7 public class ShockCord extends MassObject {
9 private Material material;
10 private double cordLength;
13 material = Prefs.getDefaultComponentMaterial(ShockCord.class, Material.Type.LINE);
19 public Material getMaterial() {
23 public void setMaterial(Material m) {
24 if (m.getType() != Material.Type.LINE)
25 throw new RuntimeException("Attempting to set non-linear material.");
26 if (material.equals(m))
29 fireComponentChangeEvent(ComponentChangeEvent.MASS_CHANGE);
33 public double getCordLength() {
37 public void setCordLength(double length) {
38 length = MathUtil.max(length, 0);
39 if (MathUtil.equals(length, this.length))
41 this.cordLength = length;
42 fireComponentChangeEvent(ComponentChangeEvent.MASS_CHANGE);
48 public double getComponentMass() {
49 return material.getDensity() * cordLength;
53 public String getComponentName() {
58 public boolean isCompatible(Class<? extends RocketComponent> type) {