Fixed computation of Logitudinal Unit Inertia for tube like things.
This commit is contained in:
parent
fcd3220633
commit
b93926ec4b
@ -281,8 +281,8 @@ public class BodyTube extends SymmetricComponent implements MotorMount, Coaxial
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public double getLongitudinalUnitInertia() {
|
public double getLongitudinalUnitInertia() {
|
||||||
// 1/12 * (3 * (r1^2 + r2^2) + h^2)
|
// 1/12 * (3 * (r2^2 + r1^2) + h^2)
|
||||||
return (3 * (MathUtil.pow2(getInnerRadius())) + MathUtil.pow2(getOuterRadius()) + MathUtil.pow2(getLength())) / 12;
|
return (3 * (MathUtil.pow2(getOuterRadius()) + MathUtil.pow2(getInnerRadius())) + MathUtil.pow2(getLength())) / 12;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -86,7 +86,7 @@ public class LaunchLug extends ExternalComponent implements Coaxial {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void setLength(double length) {
|
public void setLength(double length) {
|
||||||
if (MathUtil.equals(this.length, length))
|
if (MathUtil.equals(this.length, length))
|
||||||
return;
|
return;
|
||||||
@ -95,9 +95,9 @@ public class LaunchLug extends ExternalComponent implements Coaxial {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setRelativePosition(RocketComponent.Position position) {
|
public void setRelativePosition(RocketComponent.Position position) {
|
||||||
super.setRelativePosition(position);
|
super.setRelativePosition(position);
|
||||||
@ -112,30 +112,30 @@ public class LaunchLug extends ExternalComponent implements Coaxial {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void loadFromPreset(ComponentPreset preset) {
|
protected void loadFromPreset(ComponentPreset preset) {
|
||||||
if ( preset.has(ComponentPreset.OUTER_DIAMETER) ) {
|
if (preset.has(ComponentPreset.OUTER_DIAMETER)) {
|
||||||
double outerDiameter = preset.get(ComponentPreset.OUTER_DIAMETER);
|
double outerDiameter = preset.get(ComponentPreset.OUTER_DIAMETER);
|
||||||
this.radius = outerDiameter/2.0;
|
this.radius = outerDiameter / 2.0;
|
||||||
if ( preset.has(ComponentPreset.INNER_DIAMETER) ) {
|
if (preset.has(ComponentPreset.INNER_DIAMETER)) {
|
||||||
double innerDiameter = preset.get(ComponentPreset.INNER_DIAMETER);
|
double innerDiameter = preset.get(ComponentPreset.INNER_DIAMETER);
|
||||||
this.thickness = (outerDiameter-innerDiameter) / 2.0;
|
this.thickness = (outerDiameter - innerDiameter) / 2.0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
super.loadFromPreset(preset);
|
super.loadFromPreset(preset);
|
||||||
|
|
||||||
fireComponentChangeEvent(ComponentChangeEvent.BOTH_CHANGE);
|
fireComponentChangeEvent(ComponentChangeEvent.BOTH_CHANGE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Type getPresetType() {
|
public Type getPresetType() {
|
||||||
return ComponentPreset.Type.LAUNCH_LUG;
|
return ComponentPreset.Type.LAUNCH_LUG;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Coordinate[] shiftCoordinates(Coordinate[] array) {
|
public Coordinate[] shiftCoordinates(Coordinate[] array) {
|
||||||
array = super.shiftCoordinates(array);
|
array = super.shiftCoordinates(array);
|
||||||
@ -183,8 +183,8 @@ public class LaunchLug extends ExternalComponent implements Coaxial {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public double getComponentVolume() {
|
public double getComponentVolume() {
|
||||||
return length * Math.PI * (MathUtil.pow2(radius) - MathUtil.pow2(radius - thickness));
|
return length * Math.PI * (MathUtil.pow2(radius) - MathUtil.pow2(radius - thickness));
|
||||||
@ -211,8 +211,8 @@ public class LaunchLug extends ExternalComponent implements Coaxial {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public double getLongitudinalUnitInertia() {
|
public double getLongitudinalUnitInertia() {
|
||||||
// 1/12 * (3 * (r1^2 + r2^2) + h^2)
|
// 1/12 * (3 * (r2^2 + r1^2) + h^2)
|
||||||
return (3 * (MathUtil.pow2(getInnerRadius())) + MathUtil.pow2(getOuterRadius()) + MathUtil.pow2(getLength())) / 12;
|
return (3 * (MathUtil.pow2(getOuterRadius()) + MathUtil.pow2(getInnerRadius())) + MathUtil.pow2(getLength())) / 12;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
x
Reference in New Issue
Block a user