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.models.atmosphere.AtmosphericConditions;
|
||||
import net.sf.openrocket.startup.Application;
|
||||
import net.sf.openrocket.util.ArrayUtils;
|
||||
import net.sf.openrocket.util.BugException;
|
||||
import net.sf.openrocket.util.Coordinate;
|
||||
import net.sf.openrocket.util.Inertia;
|
||||
@ -54,11 +55,11 @@ public class ThrustCurveMotor implements Motor, Comparable<ThrustCurveMotor> {
|
||||
this.designation = m.designation;
|
||||
this.description = m.description;
|
||||
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.length = m.length;
|
||||
this.time = Arrays.copyOf(m.time, m.time.length);
|
||||
this.thrust = Arrays.copyOf(m.thrust, m.thrust.length);
|
||||
this.time = ArrayUtils.copyOf(m.time, m.time.length);
|
||||
this.thrust = ArrayUtils.copyOf(m.thrust, m.thrust.length);
|
||||
this.cg = new Coordinate[ m.cg.length ];
|
||||
for( int i = 0; i< cg.length; i++ ) {
|
||||
this.cg[i] = m.cg[i].clone();
|
||||
|
@ -4,6 +4,10 @@ import java.lang.reflect.Array;
|
||||
|
||||
public class ArrayUtils {
|
||||
|
||||
public static <T> T[] copyOf( T[] original, int length ) {
|
||||
return copyOfRange(original,0,length);
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation of java.util.Arrays.copyOfRange
|
||||
*
|
||||
@ -42,5 +46,38 @@ public class ArrayUtils {
|
||||
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