[resolves #374] centering rings, bulkheads now display correctly

This commit is contained in:
Daniel_M_Williams 2017-10-19 18:27:59 -04:00
parent 9c93ada83f
commit 9176e9fa61
2 changed files with 45 additions and 44 deletions

View File

@ -7,7 +7,7 @@ import net.sf.openrocket.startup.Application;
import net.sf.openrocket.util.Coordinate;
public class CenteringRing extends RadiusRingComponent implements LineInstanceable {
public class CenteringRing extends RadiusRingComponent {
public CenteringRing() {
setOuterRadiusAutomatic(true);
@ -17,11 +17,7 @@ public class CenteringRing extends RadiusRingComponent implements LineInstanceab
private static final Translator trans = Application.getTranslator();
protected int instanceCount = 1;
// front-front along the positive rocket axis. i.e. [1,0,0];
protected double instanceSeparation = 0;
@Override
public double getInnerRadius() {
// Implement sibling inner radius automation
@ -82,42 +78,5 @@ public class CenteringRing extends RadiusRingComponent implements LineInstanceab
return ComponentPreset.Type.CENTERING_RING;
}
@Override
public double getInstanceSeparation(){
return this.instanceSeparation;
}
@Override
public void setInstanceSeparation(final double _separation){
this.instanceSeparation = _separation;
}
@Override
public void setInstanceCount( final int newCount ){
if( 0 < newCount ){
this.instanceCount = newCount;
}
}
@Override
public Coordinate[] getInstanceOffsets(){
Coordinate[] toReturn = new Coordinate[this.getInstanceCount()];
for ( int index=0 ; index < this.getInstanceCount(); index++){
toReturn[index] = this.position.setX( this.position.x + index*this.instanceSeparation );
}
return toReturn;
}
@Override
public int getInstanceCount(){
return this.instanceCount;
}
@Override
public String getPatternName(){
return (this.getInstanceCount() + "-Line");
}
}

View File

@ -9,11 +9,15 @@ import net.sf.openrocket.util.MathUtil;
*
* @author Sampo Niskanen <sampo.niskanen@iki.fi>
*/
public abstract class RadiusRingComponent extends RingComponent implements Coaxial {
public abstract class RadiusRingComponent extends RingComponent implements Coaxial, LineInstanceable {
protected double outerRadius = 0;
protected double innerRadius = 0;
protected int instanceCount = 1;
// front-front along the positive rocket axis. i.e. [1,0,0];
protected double instanceSeparation = 0;
@Override
protected void loadFromPreset(ComponentPreset preset) {
super.loadFromPreset(preset);
@ -96,4 +100,42 @@ public abstract class RadiusRingComponent extends RingComponent implements Coaxi
setInnerRadius(outer - thickness);
}
@Override
public double getInstanceSeparation(){
return this.instanceSeparation;
}
@Override
public void setInstanceSeparation(final double _separation){
this.instanceSeparation = _separation;
}
@Override
public void setInstanceCount( final int newCount ){
if( 0 < newCount ){
this.instanceCount = newCount;
}
}
@Override
public Coordinate[] getInstanceOffsets(){
Coordinate[] toReturn = new Coordinate[this.getInstanceCount()];
for ( int index=0 ; index < this.getInstanceCount(); index++){
toReturn[index] = new Coordinate( index*this.instanceSeparation, 0, 0);
}
return toReturn;
}
@Override
public int getInstanceCount(){
return this.instanceCount;
}
@Override
public String getPatternName(){
return (this.getInstanceCount() + "-Line");
}
}