Had to implement Arrays.copyOf for doubles because froyo doesn't have that either.
This commit is contained in:
parent
a44e1c3df8
commit
492f5bdeb2
@ -7,6 +7,7 @@ import java.util.Locale;
|
|||||||
import net.sf.openrocket.logging.LogHelper;
|
import net.sf.openrocket.logging.LogHelper;
|
||||||
import net.sf.openrocket.models.atmosphere.AtmosphericConditions;
|
import net.sf.openrocket.models.atmosphere.AtmosphericConditions;
|
||||||
import net.sf.openrocket.startup.Application;
|
import net.sf.openrocket.startup.Application;
|
||||||
|
import net.sf.openrocket.util.ArrayUtils;
|
||||||
import net.sf.openrocket.util.BugException;
|
import net.sf.openrocket.util.BugException;
|
||||||
import net.sf.openrocket.util.Coordinate;
|
import net.sf.openrocket.util.Coordinate;
|
||||||
import net.sf.openrocket.util.Inertia;
|
import net.sf.openrocket.util.Inertia;
|
||||||
@ -54,11 +55,11 @@ public class ThrustCurveMotor implements Motor, Comparable<ThrustCurveMotor> {
|
|||||||
this.designation = m.designation;
|
this.designation = m.designation;
|
||||||
this.description = m.description;
|
this.description = m.description;
|
||||||
this.type = m.type;
|
this.type = m.type;
|
||||||
this.delays = Arrays.copyOf(m.delays, m.delays.length);
|
this.delays = ArrayUtils.copyOf(m.delays, m.delays.length);
|
||||||
this.diameter = m.diameter;
|
this.diameter = m.diameter;
|
||||||
this.length = m.length;
|
this.length = m.length;
|
||||||
this.time = Arrays.copyOf(m.time, m.time.length);
|
this.time = ArrayUtils.copyOf(m.time, m.time.length);
|
||||||
this.thrust = Arrays.copyOf(m.thrust, m.thrust.length);
|
this.thrust = ArrayUtils.copyOf(m.thrust, m.thrust.length);
|
||||||
this.cg = new Coordinate[ m.cg.length ];
|
this.cg = new Coordinate[ m.cg.length ];
|
||||||
for( int i = 0; i< cg.length; i++ ) {
|
for( int i = 0; i< cg.length; i++ ) {
|
||||||
this.cg[i] = m.cg[i].clone();
|
this.cg[i] = m.cg[i].clone();
|
||||||
|
@ -4,6 +4,10 @@ import java.lang.reflect.Array;
|
|||||||
|
|
||||||
public class ArrayUtils {
|
public class ArrayUtils {
|
||||||
|
|
||||||
|
public static <T> T[] copyOf( T[] original, int length ) {
|
||||||
|
return copyOfRange(original,0,length);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of java.util.Arrays.copyOfRange
|
* Implementation of java.util.Arrays.copyOfRange
|
||||||
*
|
*
|
||||||
@ -42,5 +46,38 @@ public class ArrayUtils {
|
|||||||
return result;
|
return result;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static double[] copyOf( double[] original, int length ) {
|
||||||
|
return copyOfRange(original,0,length);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static double[] copyOfRange( double[] original, int start, int end ) {
|
||||||
|
|
||||||
|
if ( original == null ) {
|
||||||
|
throw new NullPointerException();
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( start < 0 || start > original.length ) {
|
||||||
|
throw new ArrayIndexOutOfBoundsException();
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( start > end ) {
|
||||||
|
throw new IllegalArgumentException();
|
||||||
|
}
|
||||||
|
|
||||||
|
double[] result = new double[(end-start)];
|
||||||
|
|
||||||
|
int index = 0;
|
||||||
|
int stop = original.length < end ? original.length : end;
|
||||||
|
for ( int i = start; i < stop; i ++ ) {
|
||||||
|
if ( i < original.length ) {
|
||||||
|
result[index] = original[i];
|
||||||
|
}
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user