DGP - support for clusters(import and export); added thickness to tube coupler; cleanup and refactoring
This commit is contained in:
parent
453b7629d9
commit
d6c730cfa4
@ -1,4 +1,4 @@
|
|||||||
package net.sf.openrocket.file.rocksim;
|
package net.sf.openrocket.file;
|
||||||
|
|
||||||
import net.sf.openrocket.rocketcomponent.FinSet;
|
import net.sf.openrocket.rocketcomponent.FinSet;
|
||||||
|
|
@ -3,4 +3,103 @@ package net.sf.openrocket.file.rocksim;
|
|||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
public class RocksimCommonConstants {
|
public class RocksimCommonConstants {
|
||||||
|
|
||||||
|
public static final String SHAPE_CODE = "ShapeCode";
|
||||||
|
public static final String CONSTRUCTION_TYPE = "ConstructionType";
|
||||||
|
public static final String WALL_THICKNESS = "WallThickness";
|
||||||
|
public static final String SHAPE_PARAMETER = "ShapeParameter";
|
||||||
|
public static final String ATTACHED_PARTS = "AttachedParts";
|
||||||
|
public static final String BODY_TUBE = "BodyTube";
|
||||||
|
public static final String FIN_SET = "FinSet";
|
||||||
|
public static final String CUSTOM_FIN_SET = "CustomFinSet";
|
||||||
|
public static final String RING = "Ring";
|
||||||
|
public static final String STREAMER = "Streamer";
|
||||||
|
public static final String PARACHUTE = "Parachute";
|
||||||
|
public static final String MASS_OBJECT = "MassObject";
|
||||||
|
public static final String KNOWN_MASS = "KnownMass";
|
||||||
|
public static final String DENSITY = "Density";
|
||||||
|
public static final String MATERIAL = "Material";
|
||||||
|
public static final String NAME = "Name";
|
||||||
|
public static final String KNOWN_CG = "KnownCG";
|
||||||
|
public static final String USE_KNOWN_CG = "UseKnownCG";
|
||||||
|
public static final String XB = "Xb";
|
||||||
|
public static final String CALC_MASS = "CalcMass";
|
||||||
|
public static final String CALC_CG = "CalcCG";
|
||||||
|
public static final String DENSITY_TYPE = "DensityType";
|
||||||
|
public static final String RADIAL_LOC = "RadialLoc";
|
||||||
|
public static final String RADIAL_ANGLE = "RadialAngle";
|
||||||
|
public static final String LOCATION_MODE = "LocationMode";
|
||||||
|
public static final String FINISH_CODE = "FinishCode";
|
||||||
|
public static final String LEN = "Len";
|
||||||
|
public static final String OD = "OD";
|
||||||
|
public static final String ID = "ID";
|
||||||
|
public static final String IS_MOTOR_MOUNT = "IsMotorMount";
|
||||||
|
public static final String MOTOR_DIA = "MotorDia";
|
||||||
|
public static final String ENGINE_OVERHANG = "EngineOverhang";
|
||||||
|
public static final String IS_INSIDE_TUBE = "IsInsideTube";
|
||||||
|
public static final String LAUNCH_LUG = "LaunchLug";
|
||||||
|
public static final String USAGE_CODE = "UsageCode";
|
||||||
|
public static final String AUTO_SIZE = "AutoSize";
|
||||||
|
public static final String POINT_LIST = "PointList";
|
||||||
|
public static final String FIN_COUNT = "FinCount";
|
||||||
|
public static final String ROOT_CHORD = "RootChord";
|
||||||
|
public static final String TIP_CHORD = "TipChord";
|
||||||
|
public static final String SEMI_SPAN = "SemiSpan";
|
||||||
|
public static final String SWEEP_DISTANCE = "SweepDistance";
|
||||||
|
public static final String THICKNESS = "Thickness";
|
||||||
|
public static final String TIP_SHAPE_CODE = "TipShapeCode";
|
||||||
|
public static final String TAB_LENGTH = "TabLength";
|
||||||
|
public static final String TAB_DEPTH = "TabDepth";
|
||||||
|
public static final String TAB_OFFSET = "TabOffset";
|
||||||
|
public static final String SWEEP_MODE = "SweepMode";
|
||||||
|
public static final String CANT_ANGLE = "CantAngle";
|
||||||
|
public static final String TYPE_CODE = "TypeCode";
|
||||||
|
public static final String NOSE_CONE = "NoseCone";
|
||||||
|
public static final String BASE_DIA = "BaseDia";
|
||||||
|
public static final String SHOULDER_LEN = "ShoulderLen";
|
||||||
|
public static final String SHOULDER_OD = "ShoulderOD";
|
||||||
|
public static final String DIAMETER = "Dia";
|
||||||
|
public static final String SPILL_HOLE_DIA = "SpillHoleDia";
|
||||||
|
public static final String SHROUD_LINE_COUNT = "ShroudLineCount";
|
||||||
|
public static final String SHROUD_LINE_LEN = "ShroudLineLen";
|
||||||
|
public static final String CHUTE_COUNT = "ChuteCount";
|
||||||
|
public static final String SHROUD_LINE_MASS_PER_MM = "ShroudLineMassPerMM";
|
||||||
|
public static final String SHROUD_LINE_MATERIAL = "ShroudLineMaterial";
|
||||||
|
public static final String DRAG_COEFFICIENT = "DragCoefficient";
|
||||||
|
public static final String ROCKET_DESIGN = "RocketDesign";
|
||||||
|
public static final String TRANSITION = "Transition";
|
||||||
|
public static final String WIDTH = "Width";
|
||||||
|
public static final String FRONT_SHOULDER_LEN = "FrontShoulderLen";
|
||||||
|
public static final String REAR_SHOULDER_LEN = "RearShoulderLen";
|
||||||
|
public static final String FRONT_SHOULDER_DIA = "FrontShoulderDia";
|
||||||
|
public static final String REAR_SHOULDER_DIA = "RearShoulderDia";
|
||||||
|
public static final String FRONT_DIA = "FrontDia";
|
||||||
|
public static final String REAR_DIA = "RearDia";
|
||||||
|
public static final String ROCK_SIM_DOCUMENT = "RockSimDocument";
|
||||||
|
public static final String FILE_VERSION = "FileVersion";
|
||||||
|
public static final String DESIGN_INFORMATION = "DesignInformation";
|
||||||
|
/**
|
||||||
|
* Length conversion. Rocksim is in millimeters, OpenRocket in meters.
|
||||||
|
*/
|
||||||
|
public static final int ROCKSIM_TO_OPENROCKET_LENGTH = 1000;
|
||||||
|
/**
|
||||||
|
* Mass conversion. Rocksim is in grams, OpenRocket in kilograms.
|
||||||
|
*/
|
||||||
|
public static final int ROCKSIM_TO_OPENROCKET_MASS = 1000;
|
||||||
|
/**
|
||||||
|
* Bulk Density conversion. Rocksim is in kilograms/cubic meter, OpenRocket in kilograms/cubic meter.
|
||||||
|
*/
|
||||||
|
public static final int ROCKSIM_TO_OPENROCKET_BULK_DENSITY = 1;
|
||||||
|
/**
|
||||||
|
* Surface Density conversion. Rocksim is in grams/sq centimeter, OpenRocket in kilograms/sq meter. 1000/(100*100) = 1/10
|
||||||
|
*/
|
||||||
|
public static final double ROCKSIM_TO_OPENROCKET_SURFACE_DENSITY = 1/10d;
|
||||||
|
/**
|
||||||
|
* Line Density conversion. Rocksim is in kilograms/meter, OpenRocket in kilograms/meter.
|
||||||
|
*/
|
||||||
|
public static final int ROCKSIM_TO_OPENROCKET_LINE_DENSITY = 1;
|
||||||
|
/**
|
||||||
|
* Radius conversion. Rocksim is always in diameters, OpenRocket mostly in radius.
|
||||||
|
*/
|
||||||
|
public static final int ROCKSIM_TO_OPENROCKET_RADIUS = 2 * ROCKSIM_TO_OPENROCKET_LENGTH;
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* RocksimDensityType.java
|
* RocksimDensityType.java
|
||||||
*/
|
*/
|
||||||
package net.sf.openrocket.file.rocksim.importt;
|
package net.sf.openrocket.file.rocksim;
|
||||||
|
|
||||||
import net.sf.openrocket.material.Material;
|
import net.sf.openrocket.material.Material;
|
||||||
|
|
||||||
@ -9,9 +9,9 @@ import net.sf.openrocket.material.Material;
|
|||||||
* Models the nose cone shape of a rocket. Maps from Rocksim's notion to OpenRocket's.
|
* Models the nose cone shape of a rocket. Maps from Rocksim's notion to OpenRocket's.
|
||||||
*/
|
*/
|
||||||
public enum RocksimDensityType {
|
public enum RocksimDensityType {
|
||||||
ROCKSIM_BULK (0, RocksimHandler.ROCKSIM_TO_OPENROCKET_BULK_DENSITY),
|
ROCKSIM_BULK (0, RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_BULK_DENSITY),
|
||||||
ROCKSIM_SURFACE(1, RocksimHandler.ROCKSIM_TO_OPENROCKET_SURFACE_DENSITY),
|
ROCKSIM_SURFACE(1, RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_SURFACE_DENSITY),
|
||||||
ROCKSIM_LINE (2, RocksimHandler.ROCKSIM_TO_OPENROCKET_LINE_DENSITY);
|
ROCKSIM_LINE (2, RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LINE_DENSITY);
|
||||||
|
|
||||||
/** The Rocksim enumeration value. Sent in XML. */
|
/** The Rocksim enumeration value. Sent in XML. */
|
||||||
private final int ordinal;
|
private final int ordinal;
|
@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* RocksimFinishCode.java
|
* RocksimFinishCode.java
|
||||||
*/
|
*/
|
||||||
package net.sf.openrocket.file.rocksim.importt;
|
package net.sf.openrocket.file.rocksim;
|
||||||
|
|
||||||
import net.sf.openrocket.rocketcomponent.ExternalComponent;
|
import net.sf.openrocket.rocketcomponent.ExternalComponent;
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* RocksimLocationMode.java
|
* RocksimLocationMode.java
|
||||||
*/
|
*/
|
||||||
package net.sf.openrocket.file.rocksim.importt;
|
package net.sf.openrocket.file.rocksim;
|
||||||
|
|
||||||
import net.sf.openrocket.rocketcomponent.RocketComponent;
|
import net.sf.openrocket.rocketcomponent.RocketComponent;
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* RocksimNoseConeCode.java
|
* RocksimNoseConeCode.java
|
||||||
*/
|
*/
|
||||||
package net.sf.openrocket.file.rocksim.importt;
|
package net.sf.openrocket.file.rocksim;
|
||||||
|
|
||||||
import net.sf.openrocket.rocketcomponent.Transition;
|
import net.sf.openrocket.rocketcomponent.Transition;
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
package net.sf.openrocket.file.rocksim.export;
|
package net.sf.openrocket.file.rocksim.export;
|
||||||
|
|
||||||
import net.sf.openrocket.file.rocksim.importt.RocksimHandler;
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
import net.sf.openrocket.file.rocksim.importt.RocksimNoseConeCode;
|
import net.sf.openrocket.file.rocksim.RocksimNoseConeCode;
|
||||||
import net.sf.openrocket.rocketcomponent.BodyTube;
|
import net.sf.openrocket.rocketcomponent.BodyTube;
|
||||||
import net.sf.openrocket.rocketcomponent.Bulkhead;
|
import net.sf.openrocket.rocketcomponent.Bulkhead;
|
||||||
import net.sf.openrocket.rocketcomponent.CenteringRing;
|
import net.sf.openrocket.rocketcomponent.CenteringRing;
|
||||||
@ -31,25 +31,25 @@ import java.util.List;
|
|||||||
@XmlAccessorType(XmlAccessType.FIELD)
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
public class AbstractTransitionDTO extends BasePartDTO {
|
public class AbstractTransitionDTO extends BasePartDTO {
|
||||||
|
|
||||||
@XmlElement(name = "ShapeCode")
|
@XmlElement(name = RocksimCommonConstants.SHAPE_CODE)
|
||||||
private int shapeCode = 1;
|
private int shapeCode = 1;
|
||||||
@XmlElement(name = "ConstructionType")
|
@XmlElement(name = RocksimCommonConstants.CONSTRUCTION_TYPE)
|
||||||
private int constructionType = 1;
|
private int constructionType = 1;
|
||||||
@XmlElement(name = "WallThickness")
|
@XmlElement(name = RocksimCommonConstants.WALL_THICKNESS)
|
||||||
private double wallThickness = 0d;
|
private double wallThickness = 0d;
|
||||||
@XmlElement(name = "ShapeParameter")
|
@XmlElement(name = RocksimCommonConstants.SHAPE_PARAMETER)
|
||||||
private double shapeParameter = 0d;
|
private double shapeParameter = 0d;
|
||||||
|
|
||||||
@XmlElementWrapper(name = "AttachedParts")
|
@XmlElementWrapper(name = RocksimCommonConstants.ATTACHED_PARTS)
|
||||||
@XmlElementRefs({
|
@XmlElementRefs({
|
||||||
@XmlElementRef(name = "BodyTube", type = BodyTubeDTO.class),
|
@XmlElementRef(name = RocksimCommonConstants.BODY_TUBE, type = BodyTubeDTO.class),
|
||||||
@XmlElementRef(name = "BodyTube", type = InnerBodyTubeDTO.class),
|
@XmlElementRef(name = RocksimCommonConstants.BODY_TUBE, type = InnerBodyTubeDTO.class),
|
||||||
@XmlElementRef(name = "FinSet", type = FinSetDTO.class),
|
@XmlElementRef(name = RocksimCommonConstants.FIN_SET, type = FinSetDTO.class),
|
||||||
@XmlElementRef(name = "CustomFinSet", type = CustomFinSetDTO.class),
|
@XmlElementRef(name = RocksimCommonConstants.CUSTOM_FIN_SET, type = CustomFinSetDTO.class),
|
||||||
@XmlElementRef(name = "Ring", type = CenteringRingDTO.class),
|
@XmlElementRef(name = RocksimCommonConstants.RING, type = CenteringRingDTO.class),
|
||||||
@XmlElementRef(name = "Streamer", type = StreamerDTO.class),
|
@XmlElementRef(name = RocksimCommonConstants.STREAMER, type = StreamerDTO.class),
|
||||||
@XmlElementRef(name = "Parachute", type = ParachuteDTO.class),
|
@XmlElementRef(name = RocksimCommonConstants.PARACHUTE, type = ParachuteDTO.class),
|
||||||
@XmlElementRef(name = "MassObject", type = MassObjectDTO.class)})
|
@XmlElementRef(name = RocksimCommonConstants.MASS_OBJECT, type = MassObjectDTO.class)})
|
||||||
List<BasePartDTO> attachedParts = new ArrayList<BasePartDTO>();
|
List<BasePartDTO> attachedParts = new ArrayList<BasePartDTO>();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -74,7 +74,7 @@ public class AbstractTransitionDTO extends BasePartDTO {
|
|||||||
setShapeParameter(nc.getShapeParameter());
|
setShapeParameter(nc.getShapeParameter());
|
||||||
}
|
}
|
||||||
|
|
||||||
setWallThickness(nc.getThickness() * RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH);
|
setWallThickness(nc.getThickness() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH);
|
||||||
|
|
||||||
List<RocketComponent> children = nc.getChildren();
|
List<RocketComponent> children = nc.getChildren();
|
||||||
for (int i = 0; i < children.size(); i++) {
|
for (int i = 0; i < children.size(); i++) {
|
||||||
|
@ -1,13 +1,15 @@
|
|||||||
package net.sf.openrocket.file.rocksim.export;
|
package net.sf.openrocket.file.rocksim.export;
|
||||||
|
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimDensityType;
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimFinishCode;
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimLocationMode;
|
||||||
import net.sf.openrocket.file.rocksim.importt.BaseHandler;
|
import net.sf.openrocket.file.rocksim.importt.BaseHandler;
|
||||||
import net.sf.openrocket.file.rocksim.importt.RocksimDensityType;
|
|
||||||
import net.sf.openrocket.file.rocksim.importt.RocksimFinishCode;
|
|
||||||
import net.sf.openrocket.file.rocksim.importt.RocksimHandler;
|
|
||||||
import net.sf.openrocket.file.rocksim.importt.RocksimLocationMode;
|
|
||||||
import net.sf.openrocket.rocketcomponent.ExternalComponent;
|
import net.sf.openrocket.rocketcomponent.ExternalComponent;
|
||||||
import net.sf.openrocket.rocketcomponent.FinSet;
|
import net.sf.openrocket.rocketcomponent.FinSet;
|
||||||
|
import net.sf.openrocket.rocketcomponent.MassObject;
|
||||||
import net.sf.openrocket.rocketcomponent.RecoveryDevice;
|
import net.sf.openrocket.rocketcomponent.RecoveryDevice;
|
||||||
|
import net.sf.openrocket.rocketcomponent.RingComponent;
|
||||||
import net.sf.openrocket.rocketcomponent.RocketComponent;
|
import net.sf.openrocket.rocketcomponent.RocketComponent;
|
||||||
import net.sf.openrocket.rocketcomponent.StructuralComponent;
|
import net.sf.openrocket.rocketcomponent.StructuralComponent;
|
||||||
|
|
||||||
@ -23,35 +25,35 @@ import javax.xml.bind.annotation.XmlRootElement;
|
|||||||
@XmlAccessorType(XmlAccessType.FIELD)
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
public abstract class BasePartDTO {
|
public abstract class BasePartDTO {
|
||||||
|
|
||||||
@XmlElement(name = "KnownMass")
|
@XmlElement(name = RocksimCommonConstants.KNOWN_MASS)
|
||||||
private Double knownMass = 0d;
|
private double knownMass = 0d;
|
||||||
@XmlElement(name = "Density")
|
@XmlElement(name = RocksimCommonConstants.DENSITY)
|
||||||
private double density = 0d;
|
private double density = 0d;
|
||||||
@XmlElement(name = "Material")
|
@XmlElement(name = RocksimCommonConstants.MATERIAL)
|
||||||
private String material = "";
|
private String material = "";
|
||||||
@XmlElement(name = "Name")
|
@XmlElement(name = RocksimCommonConstants.NAME)
|
||||||
private String name = "";
|
private String name = "";
|
||||||
@XmlElement(name = "KnownCG")
|
@XmlElement(name = RocksimCommonConstants.KNOWN_CG)
|
||||||
private Double knownCG = null;
|
private double knownCG = 0;
|
||||||
@XmlElement(name = "UseKnownCG")
|
@XmlElement(name = RocksimCommonConstants.USE_KNOWN_CG)
|
||||||
private int useKnownCG = 1;
|
private int useKnownCG = 1;
|
||||||
@XmlElement(name = "Xb")
|
@XmlElement(name = RocksimCommonConstants.XB)
|
||||||
private double xb = 0;
|
private double xb = 0;
|
||||||
@XmlElement(name = "CalcMass")
|
@XmlElement(name = RocksimCommonConstants.CALC_MASS)
|
||||||
private double calcMass = 0d;
|
private double calcMass = 0d;
|
||||||
@XmlElement(name = "CalcCG")
|
@XmlElement(name = RocksimCommonConstants.CALC_CG)
|
||||||
private double calcCG = 0d;
|
private double calcCG = 0d;
|
||||||
@XmlElement(name = "DensityType")
|
@XmlElement(name = RocksimCommonConstants.DENSITY_TYPE)
|
||||||
private int densityType = 0;
|
private int densityType = 0;
|
||||||
@XmlElement(name = "RadialLoc")
|
@XmlElement(name = RocksimCommonConstants.RADIAL_LOC)
|
||||||
private String radialLoc = "0.";
|
private double radialLoc = 0;
|
||||||
@XmlElement(name = "RadialAngle")
|
@XmlElement(name = RocksimCommonConstants.RADIAL_ANGLE)
|
||||||
private double radialAngle = 0;
|
private double radialAngle = 0;
|
||||||
@XmlElement(name = "LocationMode")
|
@XmlElement(name = RocksimCommonConstants.LOCATION_MODE)
|
||||||
private int locationMode = 0;
|
private int locationMode = 0;
|
||||||
@XmlElement(name = "Len", required = false, nillable = false)
|
@XmlElement(name = RocksimCommonConstants.LEN, required = false, nillable = false)
|
||||||
private double len = 0d;
|
private double len = 0d;
|
||||||
@XmlElement(name = "FinishCode")
|
@XmlElement(name = RocksimCommonConstants.FINISH_CODE)
|
||||||
private int finishCode = 0;
|
private int finishCode = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -66,34 +68,35 @@ public abstract class BasePartDTO {
|
|||||||
* @param ec
|
* @param ec
|
||||||
*/
|
*/
|
||||||
protected BasePartDTO(RocketComponent ec) {
|
protected BasePartDTO(RocketComponent ec) {
|
||||||
setCalcCG(ec.getCG().x * RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH);
|
setCalcCG(ec.getCG().x * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH);
|
||||||
setCalcMass(ec.getComponentMass() * RocksimHandler.ROCKSIM_TO_OPENROCKET_MASS);
|
setCalcMass(ec.getComponentMass() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_MASS);
|
||||||
setKnownCG(ec.getOverrideCGX() * RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH);
|
setKnownCG(ec.getOverrideCGX() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH);
|
||||||
setKnownMass(ec.getOverrideMass() * RocksimHandler.ROCKSIM_TO_OPENROCKET_MASS);
|
setKnownMass(ec.getOverrideMass() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_MASS);
|
||||||
|
|
||||||
if (! (ec instanceof FinSet)) {
|
if (! (ec instanceof FinSet)) {
|
||||||
setLen(ec.getLength() * RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH);
|
setLen(ec.getLength() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH);
|
||||||
}
|
}
|
||||||
setUseKnownCG(ec.isCGOverridden() || ec.isMassOverridden() ? 1 : 0);
|
setUseKnownCG(ec.isCGOverridden() || ec.isMassOverridden() ? 1 : 0);
|
||||||
setName(ec.getName());
|
setName(ec.getName());
|
||||||
|
|
||||||
setXb(ec.getPositionValue() * RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH);
|
setXb(ec.getPositionValue() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH);
|
||||||
|
|
||||||
//When the relative position is BOTTOM, the position location of the bottom edge of the component is +
|
//When the relative position is BOTTOM, the position location of the bottom edge of the component is +
|
||||||
//to the right of the bottom of the parent, and - to the left.
|
//to the right of the bottom of the parent, and - to the left.
|
||||||
//But in Rocksim, it's + to the left and - to the right
|
//But in Rocksim, it's + to the left and - to the right
|
||||||
if (ec.getRelativePosition().equals(RocketComponent.Position.BOTTOM)) {
|
if (ec.getRelativePosition().equals(RocketComponent.Position.BOTTOM)) {
|
||||||
setXb((-1 * ec.getPositionValue()) * RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH);
|
setXb((-1 * ec.getPositionValue()) * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH);
|
||||||
}
|
}
|
||||||
else if (ec.getRelativePosition().equals(RocketComponent.Position.MIDDLE)) {
|
else if (ec.getRelativePosition().equals(RocketComponent.Position.MIDDLE)) {
|
||||||
//Mapped to TOP, so adjust accordingly
|
//Mapped to TOP, so adjust accordingly
|
||||||
setXb((ec.getPositionValue() + (ec.getParent().getLength() - ec.getLength()) /2)* RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH);
|
setXb((ec.getPositionValue() + (ec.getParent().getLength() - ec.getLength()) /2)* RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ec instanceof ExternalComponent) {
|
if (ec instanceof ExternalComponent) {
|
||||||
ExternalComponent comp = (ExternalComponent) ec;
|
ExternalComponent comp = (ExternalComponent) ec;
|
||||||
setLocationMode(RocksimLocationMode.toCode(comp.getRelativePosition()));
|
setLocationMode(RocksimLocationMode.toCode(comp.getRelativePosition()));
|
||||||
|
|
||||||
setDensity(comp.getMaterial().getDensity() * RocksimHandler.ROCKSIM_TO_OPENROCKET_BULK_DENSITY);
|
setDensity(comp.getMaterial().getDensity() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_BULK_DENSITY);
|
||||||
setDensityType(RocksimDensityType.toCode(comp.getMaterial().getType()));
|
setDensityType(RocksimDensityType.toCode(comp.getMaterial().getType()));
|
||||||
String material = comp.getMaterial().getName();
|
String material = comp.getMaterial().getName();
|
||||||
if (material.startsWith(BaseHandler.ROCKSIM_MATERIAL_PREFIX)) {
|
if (material.startsWith(BaseHandler.ROCKSIM_MATERIAL_PREFIX)) {
|
||||||
@ -107,7 +110,7 @@ public abstract class BasePartDTO {
|
|||||||
StructuralComponent comp = (StructuralComponent) ec;
|
StructuralComponent comp = (StructuralComponent) ec;
|
||||||
|
|
||||||
setLocationMode(RocksimLocationMode.toCode(comp.getRelativePosition()));
|
setLocationMode(RocksimLocationMode.toCode(comp.getRelativePosition()));
|
||||||
setDensity(comp.getMaterial().getDensity() * RocksimHandler.ROCKSIM_TO_OPENROCKET_BULK_DENSITY);
|
setDensity(comp.getMaterial().getDensity() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_BULK_DENSITY);
|
||||||
setDensityType(RocksimDensityType.toCode(comp.getMaterial().getType()));
|
setDensityType(RocksimDensityType.toCode(comp.getMaterial().getType()));
|
||||||
String material = comp.getMaterial().getName();
|
String material = comp.getMaterial().getName();
|
||||||
if (material.startsWith(BaseHandler.ROCKSIM_MATERIAL_PREFIX)) {
|
if (material.startsWith(BaseHandler.ROCKSIM_MATERIAL_PREFIX)) {
|
||||||
@ -119,7 +122,7 @@ public abstract class BasePartDTO {
|
|||||||
RecoveryDevice comp = (RecoveryDevice) ec;
|
RecoveryDevice comp = (RecoveryDevice) ec;
|
||||||
|
|
||||||
setLocationMode(RocksimLocationMode.toCode(comp.getRelativePosition()));
|
setLocationMode(RocksimLocationMode.toCode(comp.getRelativePosition()));
|
||||||
setDensity(comp.getMaterial().getDensity() * RocksimHandler.ROCKSIM_TO_OPENROCKET_SURFACE_DENSITY);
|
setDensity(comp.getMaterial().getDensity() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_SURFACE_DENSITY);
|
||||||
setDensityType(RocksimDensityType.toCode(comp.getMaterial().getType()));
|
setDensityType(RocksimDensityType.toCode(comp.getMaterial().getType()));
|
||||||
String material = comp.getMaterial().getName();
|
String material = comp.getMaterial().getName();
|
||||||
if (material.startsWith(BaseHandler.ROCKSIM_MATERIAL_PREFIX)) {
|
if (material.startsWith(BaseHandler.ROCKSIM_MATERIAL_PREFIX)) {
|
||||||
@ -127,6 +130,17 @@ public abstract class BasePartDTO {
|
|||||||
}
|
}
|
||||||
setMaterial(material);
|
setMaterial(material);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ec instanceof RingComponent) {
|
||||||
|
RingComponent rc = (RingComponent)ec;
|
||||||
|
setRadialAngle(rc.getRadialDirection());
|
||||||
|
setRadialLoc(rc.getRadialPosition() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH);
|
||||||
|
}
|
||||||
|
else if (ec instanceof MassObject) {
|
||||||
|
MassObject rc = (MassObject)ec;
|
||||||
|
setRadialAngle(rc.getRadialDirection());
|
||||||
|
setRadialLoc(rc.getRadialPosition() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Double getKnownMass() {
|
public Double getKnownMass() {
|
||||||
@ -209,11 +223,11 @@ public abstract class BasePartDTO {
|
|||||||
densityType = theDensityType;
|
densityType = theDensityType;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getRadialLoc() {
|
public double getRadialLoc() {
|
||||||
return radialLoc;
|
return radialLoc;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setRadialLoc(String theRadialLoc) {
|
public void setRadialLoc(double theRadialLoc) {
|
||||||
radialLoc = theRadialLoc;
|
radialLoc = theRadialLoc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package net.sf.openrocket.file.rocksim.export;
|
package net.sf.openrocket.file.rocksim.export;
|
||||||
|
|
||||||
import net.sf.openrocket.file.rocksim.importt.RocksimHandler;
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
import net.sf.openrocket.rocketcomponent.BodyTube;
|
import net.sf.openrocket.rocketcomponent.BodyTube;
|
||||||
import net.sf.openrocket.rocketcomponent.Bulkhead;
|
import net.sf.openrocket.rocketcomponent.Bulkhead;
|
||||||
import net.sf.openrocket.rocketcomponent.CenteringRing;
|
import net.sf.openrocket.rocketcomponent.CenteringRing;
|
||||||
@ -28,33 +28,33 @@ import java.util.List;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
@XmlRootElement(name = "BodyTube")
|
@XmlRootElement(name = RocksimCommonConstants.BODY_TUBE)
|
||||||
@XmlAccessorType(XmlAccessType.FIELD)
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
public class BodyTubeDTO extends BasePartDTO {
|
public class BodyTubeDTO extends BasePartDTO {
|
||||||
|
|
||||||
@XmlElement(name = "OD")
|
@XmlElement(name = RocksimCommonConstants.OD)
|
||||||
private double od = 0d;
|
private double od = 0d;
|
||||||
@XmlElement(name = "ID")
|
@XmlElement(name = RocksimCommonConstants.ID)
|
||||||
private double id = 0d;
|
private double id = 0d;
|
||||||
@XmlElement(name = "IsMotorMount")
|
@XmlElement(name = RocksimCommonConstants.IS_MOTOR_MOUNT)
|
||||||
private int isMotorMount = 0;
|
private int isMotorMount = 0;
|
||||||
@XmlElement(name = "MotorDia")
|
@XmlElement(name = RocksimCommonConstants.MOTOR_DIA)
|
||||||
private double motorDia = 0d;
|
private double motorDia = 0d;
|
||||||
@XmlElement(name = "EngineOverhang")
|
@XmlElement(name = RocksimCommonConstants.ENGINE_OVERHANG)
|
||||||
private double engineOverhang = 0d;
|
private double engineOverhang = 0d;
|
||||||
@XmlElement(name = "IsInsideTube")
|
@XmlElement(name = RocksimCommonConstants.IS_INSIDE_TUBE)
|
||||||
private int isInsideTube = 0;
|
private int isInsideTube = 0;
|
||||||
@XmlElementWrapper(name = "AttachedParts")
|
@XmlElementWrapper(name = RocksimCommonConstants.ATTACHED_PARTS)
|
||||||
@XmlElementRefs({
|
@XmlElementRefs({
|
||||||
@XmlElementRef(name = "BodyTube", type = BodyTubeDTO.class),
|
@XmlElementRef(name = RocksimCommonConstants.BODY_TUBE, type = BodyTubeDTO.class),
|
||||||
@XmlElementRef(name = "BodyTube", type = InnerBodyTubeDTO.class),
|
@XmlElementRef(name = RocksimCommonConstants.BODY_TUBE, type = InnerBodyTubeDTO.class),
|
||||||
@XmlElementRef(name = "Ring", type = CenteringRingDTO.class),
|
@XmlElementRef(name = RocksimCommonConstants.RING, type = CenteringRingDTO.class),
|
||||||
@XmlElementRef(name = "LaunchLug", type = LaunchLugDTO.class),
|
@XmlElementRef(name = RocksimCommonConstants.LAUNCH_LUG, type = LaunchLugDTO.class),
|
||||||
@XmlElementRef(name = "FinSet", type = FinSetDTO.class),
|
@XmlElementRef(name = RocksimCommonConstants.FIN_SET, type = FinSetDTO.class),
|
||||||
@XmlElementRef(name = "CustomFinSet", type = CustomFinSetDTO.class),
|
@XmlElementRef(name = RocksimCommonConstants.CUSTOM_FIN_SET, type = CustomFinSetDTO.class),
|
||||||
@XmlElementRef(name = "Streamer", type = StreamerDTO.class),
|
@XmlElementRef(name = RocksimCommonConstants.STREAMER, type = StreamerDTO.class),
|
||||||
@XmlElementRef(name = "Parachute", type = ParachuteDTO.class),
|
@XmlElementRef(name = RocksimCommonConstants.PARACHUTE, type = ParachuteDTO.class),
|
||||||
@XmlElementRef(name = "MassObject", type = MassObjectDTO.class)})
|
@XmlElementRef(name = RocksimCommonConstants.MASS_OBJECT, type = MassObjectDTO.class)})
|
||||||
List<BasePartDTO> attachedParts = new ArrayList<BasePartDTO>();
|
List<BasePartDTO> attachedParts = new ArrayList<BasePartDTO>();
|
||||||
|
|
||||||
public BodyTubeDTO() {
|
public BodyTubeDTO() {
|
||||||
@ -67,10 +67,10 @@ public class BodyTubeDTO extends BasePartDTO {
|
|||||||
public BodyTubeDTO(BodyTube bt) {
|
public BodyTubeDTO(BodyTube bt) {
|
||||||
super(bt);
|
super(bt);
|
||||||
|
|
||||||
setEngineOverhang(bt.getMotorOverhang() * RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH);
|
setEngineOverhang(bt.getMotorOverhang() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH);
|
||||||
setId(bt.getInnerRadius() * RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS);
|
setId(bt.getInnerRadius() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS);
|
||||||
setOd(bt.getOuterRadius() * RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS);
|
setOd(bt.getOuterRadius() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS);
|
||||||
setMotorDia((bt.getMotorMountDiameter() / 2) * RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS);
|
setMotorDia((bt.getMotorMountDiameter() / 2) * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS);
|
||||||
setMotorMount(bt.isMotorMount());
|
setMotorMount(bt.isMotorMount());
|
||||||
|
|
||||||
List<RocketComponent> children = bt.getChildren();
|
List<RocketComponent> children = bt.getChildren();
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package net.sf.openrocket.file.rocksim.export;
|
package net.sf.openrocket.file.rocksim.export;
|
||||||
|
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
import net.sf.openrocket.rocketcomponent.Bulkhead;
|
import net.sf.openrocket.rocketcomponent.Bulkhead;
|
||||||
|
|
||||||
import javax.xml.bind.annotation.XmlAccessType;
|
import javax.xml.bind.annotation.XmlAccessType;
|
||||||
@ -7,10 +8,17 @@ import javax.xml.bind.annotation.XmlAccessorType;
|
|||||||
import javax.xml.bind.annotation.XmlRootElement;
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Conversion of an OR Bulkhead to an Rocksim Bulkhead. Bulkheads are represented as Rings in Rocksim.
|
||||||
*/
|
*/
|
||||||
@XmlRootElement(name = "Ring")
|
@XmlRootElement(name = RocksimCommonConstants.RING)
|
||||||
@XmlAccessorType(XmlAccessType.FIELD)
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
public class BulkheadDTO extends CenteringRingDTO {
|
public class BulkheadDTO extends CenteringRingDTO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor.
|
||||||
|
*
|
||||||
|
* @param bh bulkhead
|
||||||
|
*/
|
||||||
public BulkheadDTO(Bulkhead bh) {
|
public BulkheadDTO(Bulkhead bh) {
|
||||||
super(bh);
|
super(bh);
|
||||||
setUsageCode(CenteringRingDTO.UsageCode.Bulkhead);
|
setUsageCode(CenteringRingDTO.UsageCode.Bulkhead);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package net.sf.openrocket.file.rocksim.export;
|
package net.sf.openrocket.file.rocksim.export;
|
||||||
|
|
||||||
import net.sf.openrocket.file.rocksim.importt.RocksimHandler;
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
import net.sf.openrocket.rocketcomponent.RadiusRingComponent;
|
import net.sf.openrocket.rocketcomponent.RadiusRingComponent;
|
||||||
import net.sf.openrocket.rocketcomponent.ThicknessRingComponent;
|
import net.sf.openrocket.rocketcomponent.ThicknessRingComponent;
|
||||||
|
|
||||||
@ -11,8 +11,9 @@ import javax.xml.bind.annotation.XmlRootElement;
|
|||||||
import javax.xml.bind.annotation.XmlTransient;
|
import javax.xml.bind.annotation.XmlTransient;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Centering ring conversion from OR to Rocksim.
|
||||||
*/
|
*/
|
||||||
@XmlRootElement(name = "Ring")
|
@XmlRootElement(name = RocksimCommonConstants.RING)
|
||||||
@XmlAccessorType(XmlAccessType.FIELD)
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
public class CenteringRingDTO extends BasePartDTO {
|
public class CenteringRingDTO extends BasePartDTO {
|
||||||
|
|
||||||
@ -32,13 +33,13 @@ public class CenteringRingDTO extends BasePartDTO {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@XmlElement(name = "OD")
|
@XmlElement(name = RocksimCommonConstants.OD)
|
||||||
private double od = 0d;
|
private double od = 0d;
|
||||||
@XmlElement(name = "ID")
|
@XmlElement(name = RocksimCommonConstants.ID)
|
||||||
private double id = 0d;
|
private double id = 0d;
|
||||||
@XmlElement(name = "UsageCode")
|
@XmlElement(name = RocksimCommonConstants.USAGE_CODE)
|
||||||
private int usageCode = UsageCode.CenteringRing.ordinal;
|
private int usageCode = UsageCode.CenteringRing.ordinal;
|
||||||
@XmlElement(name = "AutoSize")
|
@XmlElement(name = RocksimCommonConstants.AUTO_SIZE)
|
||||||
private int autoSize = 0;
|
private int autoSize = 0;
|
||||||
|
|
||||||
public CenteringRingDTO() {
|
public CenteringRingDTO() {
|
||||||
@ -46,14 +47,14 @@ public class CenteringRingDTO extends BasePartDTO {
|
|||||||
}
|
}
|
||||||
public CenteringRingDTO(RadiusRingComponent cr) {
|
public CenteringRingDTO(RadiusRingComponent cr) {
|
||||||
super(cr);
|
super(cr);
|
||||||
setId(cr.getInnerRadius()* RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS);
|
setId(cr.getInnerRadius()* RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS);
|
||||||
setOd(cr.getOuterRadius()* RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS);
|
setOd(cr.getOuterRadius()* RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS);
|
||||||
}
|
}
|
||||||
|
|
||||||
public CenteringRingDTO(ThicknessRingComponent trc) {
|
public CenteringRingDTO(ThicknessRingComponent trc) {
|
||||||
super(trc);
|
super(trc);
|
||||||
setId(trc.getInnerRadius()* RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS);
|
setId(trc.getInnerRadius()* RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS);
|
||||||
setOd(trc.getOuterRadius()* RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS);
|
setOd(trc.getOuterRadius()* RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS);
|
||||||
}
|
}
|
||||||
public double getOd() {
|
public double getOd() {
|
||||||
return od;
|
return od;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package net.sf.openrocket.file.rocksim.export;
|
package net.sf.openrocket.file.rocksim.export;
|
||||||
|
|
||||||
import net.sf.openrocket.file.rocksim.importt.RocksimHandler;
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
import net.sf.openrocket.rocketcomponent.FreeformFinSet;
|
import net.sf.openrocket.rocketcomponent.FreeformFinSet;
|
||||||
import net.sf.openrocket.util.Coordinate;
|
import net.sf.openrocket.util.Coordinate;
|
||||||
|
|
||||||
@ -11,16 +11,24 @@ import javax.xml.bind.annotation.XmlRootElement;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
@XmlRootElement(name = "CustomFinSet")
|
@XmlRootElement(name = RocksimCommonConstants.CUSTOM_FIN_SET)
|
||||||
@XmlAccessorType(XmlAccessType.FIELD)
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
public class CustomFinSetDTO extends FinSetDTO {
|
public class CustomFinSetDTO extends FinSetDTO {
|
||||||
|
|
||||||
@XmlElement(name = "PointList")
|
@XmlElement(name = RocksimCommonConstants.POINT_LIST)
|
||||||
private String pointList = "";
|
private String pointList = "";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Default constructor.
|
||||||
|
*/
|
||||||
public CustomFinSetDTO() {
|
public CustomFinSetDTO() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Copy constructor of sorts.
|
||||||
|
*
|
||||||
|
* @param ec a free form finset
|
||||||
|
*/
|
||||||
public CustomFinSetDTO(FreeformFinSet ec) {
|
public CustomFinSetDTO(FreeformFinSet ec) {
|
||||||
super(ec);
|
super(ec);
|
||||||
setPointList(convertFreeFormPoints(ec.getFinPoints()));
|
setPointList(convertFreeFormPoints(ec.getFinPoints()));
|
||||||
@ -33,8 +41,8 @@ public class CustomFinSetDTO extends FinSetDTO {
|
|||||||
//Reverse the order for Rocksim
|
//Reverse the order for Rocksim
|
||||||
for (int i = points.length - 1; i >= 0; i--) {
|
for (int i = points.length - 1; i >= 0; i--) {
|
||||||
Coordinate point = points[i];
|
Coordinate point = points[i];
|
||||||
sb.append(point.x * RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH).append(",")
|
sb.append(point.x * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH).append(",")
|
||||||
.append(point.y * RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH).append("|");
|
.append(point.y * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH).append("|");
|
||||||
}
|
}
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package net.sf.openrocket.file.rocksim.export;
|
package net.sf.openrocket.file.rocksim.export;
|
||||||
|
|
||||||
import net.sf.openrocket.file.rocksim.TipShapeCode;
|
import net.sf.openrocket.file.TipShapeCode;
|
||||||
import net.sf.openrocket.file.rocksim.importt.RocksimHandler;
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
import net.sf.openrocket.rocketcomponent.EllipticalFinSet;
|
import net.sf.openrocket.rocketcomponent.EllipticalFinSet;
|
||||||
import net.sf.openrocket.rocketcomponent.FinSet;
|
import net.sf.openrocket.rocketcomponent.FinSet;
|
||||||
import net.sf.openrocket.rocketcomponent.FreeformFinSet;
|
import net.sf.openrocket.rocketcomponent.FreeformFinSet;
|
||||||
@ -14,35 +14,35 @@ import javax.xml.bind.annotation.XmlRootElement;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
@XmlRootElement(name = "FinSet")
|
@XmlRootElement(name = RocksimCommonConstants.FIN_SET)
|
||||||
@XmlAccessorType(XmlAccessType.FIELD)
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
public class FinSetDTO extends BasePartDTO {
|
public class FinSetDTO extends BasePartDTO {
|
||||||
|
|
||||||
@XmlElement(name = "FinCount")
|
@XmlElement(name = RocksimCommonConstants.FIN_COUNT)
|
||||||
private int finCount = 0;
|
private int finCount = 0;
|
||||||
@XmlElement(name = "RootChord")
|
@XmlElement(name = RocksimCommonConstants.ROOT_CHORD)
|
||||||
private double rootChord = 0d;
|
private double rootChord = 0d;
|
||||||
@XmlElement(name = "TipChord")
|
@XmlElement(name = RocksimCommonConstants.TIP_CHORD)
|
||||||
private double tipChord = 0d;
|
private double tipChord = 0d;
|
||||||
@XmlElement(name = "SemiSpan")
|
@XmlElement(name = RocksimCommonConstants.SEMI_SPAN)
|
||||||
private double semiSpan = 0d;
|
private double semiSpan = 0d;
|
||||||
@XmlElement(name = "SweepDistance")
|
@XmlElement(name = RocksimCommonConstants.SWEEP_DISTANCE)
|
||||||
private double sweepDistance = 0d;
|
private double sweepDistance = 0d;
|
||||||
@XmlElement(name = "Thickness")
|
@XmlElement(name = RocksimCommonConstants.THICKNESS)
|
||||||
private double thickness = 0d;
|
private double thickness = 0d;
|
||||||
@XmlElement(name = "ShapeCode")
|
@XmlElement(name = RocksimCommonConstants.SHAPE_CODE)
|
||||||
private int shapeCode = 0;
|
private int shapeCode = 0;
|
||||||
@XmlElement(name = "TipShapeCode")
|
@XmlElement(name = RocksimCommonConstants.TIP_SHAPE_CODE)
|
||||||
private int tipShapeCode = 0;
|
private int tipShapeCode = 0;
|
||||||
@XmlElement(name = "TabLength")
|
@XmlElement(name = RocksimCommonConstants.TAB_LENGTH)
|
||||||
private double tabLength = 0d;
|
private double tabLength = 0d;
|
||||||
@XmlElement(name = "TabDepth")
|
@XmlElement(name = RocksimCommonConstants.TAB_DEPTH)
|
||||||
private double tabDepth = 0d;
|
private double tabDepth = 0d;
|
||||||
@XmlElement(name = "TabOffset")
|
@XmlElement(name = RocksimCommonConstants.TAB_OFFSET)
|
||||||
private double tabOffset = 0d;
|
private double tabOffset = 0d;
|
||||||
@XmlElement(name = "SweepMode")
|
@XmlElement(name = RocksimCommonConstants.SWEEP_MODE)
|
||||||
private int sweepMode = 1;
|
private int sweepMode = 1;
|
||||||
@XmlElement(name = "CantAngle")
|
@XmlElement(name = RocksimCommonConstants.CANT_ANGLE)
|
||||||
private double cantAngle = 0d;
|
private double cantAngle = 0d;
|
||||||
|
|
||||||
public FinSetDTO() {
|
public FinSetDTO() {
|
||||||
@ -53,26 +53,26 @@ public class FinSetDTO extends BasePartDTO {
|
|||||||
|
|
||||||
setFinCount(ec.getFinCount());
|
setFinCount(ec.getFinCount());
|
||||||
setCantAngle(ec.getCantAngle());
|
setCantAngle(ec.getCantAngle());
|
||||||
setTabDepth(ec.getTabHeight() * RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH);
|
setTabDepth(ec.getTabHeight() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH);
|
||||||
setTabLength(ec.getTabLength() * RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH);
|
setTabLength(ec.getTabLength() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH);
|
||||||
setTabOffset(ec.getTabShift() * RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH);
|
setTabOffset(ec.getTabShift() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH);
|
||||||
setThickness(ec.getThickness() * RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH);
|
setThickness(ec.getThickness() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH);
|
||||||
|
|
||||||
setRadialAngle(ec.getBaseRotation());
|
setRadialAngle(ec.getBaseRotation());
|
||||||
setTipShapeCode(TipShapeCode.convertTipShapeCode(ec.getCrossSection()));
|
setTipShapeCode(TipShapeCode.convertTipShapeCode(ec.getCrossSection()));
|
||||||
if (ec instanceof TrapezoidFinSet) {
|
if (ec instanceof TrapezoidFinSet) {
|
||||||
TrapezoidFinSet tfs = (TrapezoidFinSet) ec;
|
TrapezoidFinSet tfs = (TrapezoidFinSet) ec;
|
||||||
setShapeCode(0);
|
setShapeCode(0);
|
||||||
setRootChord(ec.getLength() * RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH);
|
setRootChord(ec.getLength() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH);
|
||||||
setSemiSpan(tfs.getHeight() * RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH);
|
setSemiSpan(tfs.getHeight() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH);
|
||||||
setTipChord(tfs.getTipChord() * RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH);
|
setTipChord(tfs.getTipChord() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH);
|
||||||
setSweepDistance(tfs.getSweep() * RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH);
|
setSweepDistance(tfs.getSweep() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH);
|
||||||
}
|
}
|
||||||
else if (ec instanceof EllipticalFinSet) {
|
else if (ec instanceof EllipticalFinSet) {
|
||||||
EllipticalFinSet efs = (EllipticalFinSet) ec;
|
EllipticalFinSet efs = (EllipticalFinSet) ec;
|
||||||
setShapeCode(1);
|
setShapeCode(1);
|
||||||
setRootChord(ec.getLength() * RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH);
|
setRootChord(ec.getLength() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH);
|
||||||
setSemiSpan(efs.getHeight() * RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH);
|
setSemiSpan(efs.getHeight() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH);
|
||||||
}
|
}
|
||||||
else if (ec instanceof FreeformFinSet) {
|
else if (ec instanceof FreeformFinSet) {
|
||||||
setShapeCode(2);
|
setShapeCode(2);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package net.sf.openrocket.file.rocksim.export;
|
package net.sf.openrocket.file.rocksim.export;
|
||||||
|
|
||||||
import net.sf.openrocket.file.rocksim.importt.RocksimHandler;
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
import net.sf.openrocket.rocketcomponent.BodyTube;
|
import net.sf.openrocket.rocketcomponent.BodyTube;
|
||||||
import net.sf.openrocket.rocketcomponent.Bulkhead;
|
import net.sf.openrocket.rocketcomponent.Bulkhead;
|
||||||
import net.sf.openrocket.rocketcomponent.CenteringRing;
|
import net.sf.openrocket.rocketcomponent.CenteringRing;
|
||||||
@ -20,7 +20,7 @@ import java.util.List;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
@XmlRootElement(name = "BodyTube")
|
@XmlRootElement(name = RocksimCommonConstants.BODY_TUBE)
|
||||||
@XmlAccessorType(XmlAccessType.FIELD)
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
public class InnerBodyTubeDTO extends BodyTubeDTO {
|
public class InnerBodyTubeDTO extends BodyTubeDTO {
|
||||||
|
|
||||||
@ -30,10 +30,10 @@ public class InnerBodyTubeDTO extends BodyTubeDTO {
|
|||||||
|
|
||||||
public InnerBodyTubeDTO(InnerTube bt) {
|
public InnerBodyTubeDTO(InnerTube bt) {
|
||||||
super(bt);
|
super(bt);
|
||||||
setEngineOverhang(bt.getMotorOverhang() * RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH);
|
setEngineOverhang(bt.getMotorOverhang() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH);
|
||||||
setId(bt.getInnerRadius() * RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS);
|
setId(bt.getInnerRadius() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS);
|
||||||
setOd(bt.getOuterRadius() * RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS);
|
setOd(bt.getOuterRadius() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS);
|
||||||
setMotorDia((bt.getMotorMountDiameter() / 2) * RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS);
|
setMotorDia((bt.getMotorMountDiameter() / 2) * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS);
|
||||||
setMotorMount(bt.isMotorMount());
|
setMotorMount(bt.isMotorMount());
|
||||||
|
|
||||||
List<RocketComponent> children = bt.getChildren();
|
List<RocketComponent> children = bt.getChildren();
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package net.sf.openrocket.file.rocksim.export;
|
package net.sf.openrocket.file.rocksim.export;
|
||||||
|
|
||||||
import net.sf.openrocket.file.rocksim.importt.RocksimHandler;
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
import net.sf.openrocket.rocketcomponent.LaunchLug;
|
import net.sf.openrocket.rocketcomponent.LaunchLug;
|
||||||
|
|
||||||
import javax.xml.bind.annotation.XmlAccessType;
|
import javax.xml.bind.annotation.XmlAccessType;
|
||||||
@ -10,13 +10,13 @@ import javax.xml.bind.annotation.XmlRootElement;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
@XmlRootElement(name = "LaunchLug")
|
@XmlRootElement(name = RocksimCommonConstants.LAUNCH_LUG)
|
||||||
@XmlAccessorType(XmlAccessType.FIELD)
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
public class LaunchLugDTO extends BasePartDTO {
|
public class LaunchLugDTO extends BasePartDTO {
|
||||||
|
|
||||||
@XmlElement(name = "OD")
|
@XmlElement(name = RocksimCommonConstants.OD)
|
||||||
private double od = 0d;
|
private double od = 0d;
|
||||||
@XmlElement(name = "ID")
|
@XmlElement(name = RocksimCommonConstants.ID)
|
||||||
private double id = 0d;
|
private double id = 0d;
|
||||||
|
|
||||||
public LaunchLugDTO() {
|
public LaunchLugDTO() {
|
||||||
@ -24,8 +24,8 @@ public class LaunchLugDTO extends BasePartDTO {
|
|||||||
|
|
||||||
public LaunchLugDTO(LaunchLug ec) {
|
public LaunchLugDTO(LaunchLug ec) {
|
||||||
super(ec);
|
super(ec);
|
||||||
setId(ec.getInnerRadius() * RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS);
|
setId(ec.getInnerRadius() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS);
|
||||||
setOd(ec.getOuterRadius() * RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS);
|
setOd(ec.getOuterRadius() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS);
|
||||||
setRadialAngle(ec.getRadialDirection());
|
setRadialAngle(ec.getRadialDirection());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package net.sf.openrocket.file.rocksim.export;
|
package net.sf.openrocket.file.rocksim.export;
|
||||||
|
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
import net.sf.openrocket.rocketcomponent.MassObject;
|
import net.sf.openrocket.rocketcomponent.MassObject;
|
||||||
|
|
||||||
import javax.xml.bind.annotation.XmlAccessType;
|
import javax.xml.bind.annotation.XmlAccessType;
|
||||||
@ -8,18 +9,27 @@ import javax.xml.bind.annotation.XmlElement;
|
|||||||
import javax.xml.bind.annotation.XmlRootElement;
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Class that models a Rocksim MassObject.
|
||||||
*/
|
*/
|
||||||
@XmlRootElement(name = "MassObject")
|
@XmlRootElement(name = RocksimCommonConstants.MASS_OBJECT)
|
||||||
@XmlAccessorType(XmlAccessType.FIELD)
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
public class MassObjectDTO extends BasePartDTO{
|
public class MassObjectDTO extends BasePartDTO{
|
||||||
|
|
||||||
@XmlElement(name = "TypeCode")
|
@XmlElement(name = RocksimCommonConstants.TYPE_CODE)
|
||||||
private int typeCode = 0;
|
private int typeCode = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Default constructor.
|
||||||
|
*/
|
||||||
public MassObjectDTO() {
|
public MassObjectDTO() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public MassObjectDTO(MassObject ec) {
|
/**
|
||||||
super(ec);
|
* Typed constructor.
|
||||||
|
*
|
||||||
|
* @param mo OR MassObject
|
||||||
|
*/
|
||||||
|
public MassObjectDTO(MassObject mo) {
|
||||||
|
super(mo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package net.sf.openrocket.file.rocksim.export;
|
package net.sf.openrocket.file.rocksim.export;
|
||||||
|
|
||||||
import net.sf.openrocket.file.rocksim.importt.RocksimHandler;
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
import net.sf.openrocket.rocketcomponent.NoseCone;
|
import net.sf.openrocket.rocketcomponent.NoseCone;
|
||||||
|
|
||||||
import javax.xml.bind.annotation.XmlAccessType;
|
import javax.xml.bind.annotation.XmlAccessType;
|
||||||
@ -10,26 +10,34 @@ import javax.xml.bind.annotation.XmlRootElement;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
@XmlRootElement(name = "NoseCone")
|
@XmlRootElement(name = RocksimCommonConstants.NOSE_CONE)
|
||||||
@XmlAccessorType(XmlAccessType.FIELD)
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
public class NoseConeDTO extends AbstractTransitionDTO {
|
public class NoseConeDTO extends AbstractTransitionDTO {
|
||||||
|
|
||||||
|
|
||||||
@XmlElement(name = "BaseDia")
|
@XmlElement(name = RocksimCommonConstants.BASE_DIA)
|
||||||
private double baseDia = 0d;
|
private double baseDia = 0d;
|
||||||
@XmlElement(name = "ShoulderLen")
|
@XmlElement(name = RocksimCommonConstants.SHOULDER_LEN)
|
||||||
private double shoulderLen = 0d;
|
private double shoulderLen = 0d;
|
||||||
@XmlElement(name = "ShoulderOD")
|
@XmlElement(name = RocksimCommonConstants.SHOULDER_OD)
|
||||||
private double shoulderOD = 0d;
|
private double shoulderOD = 0d;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Default constructor.
|
||||||
|
*/
|
||||||
public NoseConeDTO() {
|
public NoseConeDTO() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Full copy constructor.
|
||||||
|
*
|
||||||
|
* @param nc the OR nose cone
|
||||||
|
*/
|
||||||
public NoseConeDTO(NoseCone nc) {
|
public NoseConeDTO(NoseCone nc) {
|
||||||
super(nc);
|
super(nc);
|
||||||
setBaseDia(nc.getAftRadius() * RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS);
|
setBaseDia(nc.getAftRadius() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS);
|
||||||
setShoulderLen(nc.getAftShoulderLength() * RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH);
|
setShoulderLen(nc.getAftShoulderLength() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH);
|
||||||
setShoulderOD(nc.getAftShoulderRadius() * RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS);
|
setShoulderOD(nc.getAftShoulderRadius() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS);
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getBaseDia() {
|
public double getBaseDia() {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package net.sf.openrocket.file.rocksim.export;
|
package net.sf.openrocket.file.rocksim.export;
|
||||||
|
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
import net.sf.openrocket.file.rocksim.importt.BaseHandler;
|
import net.sf.openrocket.file.rocksim.importt.BaseHandler;
|
||||||
import net.sf.openrocket.file.rocksim.importt.RocksimHandler;
|
|
||||||
import net.sf.openrocket.rocketcomponent.Parachute;
|
import net.sf.openrocket.rocketcomponent.Parachute;
|
||||||
|
|
||||||
import javax.xml.bind.annotation.XmlAccessType;
|
import javax.xml.bind.annotation.XmlAccessType;
|
||||||
@ -11,27 +11,27 @@ import javax.xml.bind.annotation.XmlRootElement;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
@XmlRootElement(name = "Parachute")
|
@XmlRootElement(name = RocksimCommonConstants.PARACHUTE)
|
||||||
@XmlAccessorType(XmlAccessType.FIELD)
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
public class ParachuteDTO extends BasePartDTO {
|
public class ParachuteDTO extends BasePartDTO {
|
||||||
|
|
||||||
@XmlElement(name = "Dia")
|
@XmlElement(name = RocksimCommonConstants.DIAMETER)
|
||||||
private double dia = 0d;
|
private double dia = 0d;
|
||||||
@XmlElement(name = "SpillHoleDia")
|
@XmlElement(name = RocksimCommonConstants.SPILL_HOLE_DIA)
|
||||||
private double spillHoleDia = 0d;
|
private double spillHoleDia = 0d;
|
||||||
@XmlElement(name = "ShroudLineCount")
|
@XmlElement(name = RocksimCommonConstants.SHROUD_LINE_COUNT)
|
||||||
private int ShroudLineCount = 0;
|
private int ShroudLineCount = 0;
|
||||||
@XmlElement(name = "Thickness")
|
@XmlElement(name = RocksimCommonConstants.THICKNESS)
|
||||||
private double thickness = 0d;
|
private double thickness = 0d;
|
||||||
@XmlElement(name = "ShroudLineLen")
|
@XmlElement(name = RocksimCommonConstants.SHROUD_LINE_LEN)
|
||||||
private double shroudLineLen = 0d;
|
private double shroudLineLen = 0d;
|
||||||
@XmlElement(name = "ChuteCount")
|
@XmlElement(name = RocksimCommonConstants.CHUTE_COUNT)
|
||||||
private int chuteCount = 1;
|
private int chuteCount = 1;
|
||||||
@XmlElement(name = "ShroudLineMassPerMM")
|
@XmlElement(name = RocksimCommonConstants.SHROUD_LINE_MASS_PER_MM)
|
||||||
private double shroudLineMassPerMM = 0d;
|
private double shroudLineMassPerMM = 0d;
|
||||||
@XmlElement(name = "ShroudLineMaterial")
|
@XmlElement(name = RocksimCommonConstants.SHROUD_LINE_MATERIAL)
|
||||||
private String shroudLineMaterial = "";
|
private String shroudLineMaterial = "";
|
||||||
@XmlElement(name = "DragCoefficient")
|
@XmlElement(name = RocksimCommonConstants.DRAG_COEFFICIENT)
|
||||||
private double dragCoefficient = 0.75d;
|
private double dragCoefficient = 0.75d;
|
||||||
|
|
||||||
public ParachuteDTO() {
|
public ParachuteDTO() {
|
||||||
@ -41,13 +41,13 @@ public class ParachuteDTO extends BasePartDTO {
|
|||||||
super(ec);
|
super(ec);
|
||||||
|
|
||||||
setChuteCount(1);
|
setChuteCount(1);
|
||||||
setDia(ec.getDiameter() * RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH);
|
setDia(ec.getDiameter() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH);
|
||||||
setDragCoefficient(ec.getCD());
|
setDragCoefficient(ec.getCD());
|
||||||
setShroudLineCount(ec.getLineCount());
|
setShroudLineCount(ec.getLineCount());
|
||||||
setShroudLineLen(ec.getLineLength() * RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH);
|
setShroudLineLen(ec.getLineLength() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH);
|
||||||
|
|
||||||
String material = ec.getLineMaterial().getName();
|
String material = ec.getLineMaterial().getName();
|
||||||
setShroudLineMassPerMM(ec.getLineMaterial().getDensity() * RocksimHandler.ROCKSIM_TO_OPENROCKET_LINE_DENSITY);
|
setShroudLineMassPerMM(ec.getLineMaterial().getDensity() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LINE_DENSITY);
|
||||||
|
|
||||||
if (material.startsWith(BaseHandler.ROCKSIM_MATERIAL_PREFIX)) {
|
if (material.startsWith(BaseHandler.ROCKSIM_MATERIAL_PREFIX)) {
|
||||||
material = material.substring(BaseHandler.ROCKSIM_MATERIAL_PREFIX.length());
|
material = material.substring(BaseHandler.ROCKSIM_MATERIAL_PREFIX.length());
|
||||||
|
@ -1,24 +1,40 @@
|
|||||||
package net.sf.openrocket.file.rocksim.export;
|
package net.sf.openrocket.file.rocksim.export;
|
||||||
|
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
|
|
||||||
import javax.xml.bind.annotation.XmlAccessType;
|
import javax.xml.bind.annotation.XmlAccessType;
|
||||||
import javax.xml.bind.annotation.XmlAccessorType;
|
import javax.xml.bind.annotation.XmlAccessorType;
|
||||||
import javax.xml.bind.annotation.XmlElement;
|
import javax.xml.bind.annotation.XmlElement;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* High-level placeholder element for Rocksim.
|
||||||
*/
|
*/
|
||||||
@XmlAccessorType(XmlAccessType.FIELD)
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
public class RocksimDesignDTO {
|
public class RocksimDesignDTO {
|
||||||
|
|
||||||
@XmlElement(name = "RocketDesign")
|
@XmlElement(name = RocksimCommonConstants.ROCKET_DESIGN)
|
||||||
private RocketDesignDTO design;
|
private RocketDesignDTO design;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor.
|
||||||
|
*/
|
||||||
public RocksimDesignDTO() {
|
public RocksimDesignDTO() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the DTO.
|
||||||
|
*
|
||||||
|
* @return the DTO
|
||||||
|
*/
|
||||||
public RocketDesignDTO getDesign() {
|
public RocketDesignDTO getDesign() {
|
||||||
return design;
|
return design;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the DTO.
|
||||||
|
*
|
||||||
|
* @param theDesign the DTO
|
||||||
|
*/
|
||||||
public void setDesign(RocketDesignDTO theDesign) {
|
public void setDesign(RocketDesignDTO theDesign) {
|
||||||
design = theDesign;
|
design = theDesign;
|
||||||
}
|
}
|
||||||
|
@ -1,31 +1,54 @@
|
|||||||
package net.sf.openrocket.file.rocksim.export;
|
package net.sf.openrocket.file.rocksim.export;
|
||||||
|
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
|
|
||||||
import javax.xml.bind.annotation.XmlAccessType;
|
import javax.xml.bind.annotation.XmlAccessType;
|
||||||
import javax.xml.bind.annotation.XmlAccessorType;
|
import javax.xml.bind.annotation.XmlAccessorType;
|
||||||
import javax.xml.bind.annotation.XmlElement;
|
import javax.xml.bind.annotation.XmlElement;
|
||||||
import javax.xml.bind.annotation.XmlRootElement;
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
|
||||||
@XmlRootElement(name = "RockSimDocument")
|
/**
|
||||||
|
* The top level Rocksim document.
|
||||||
|
*/
|
||||||
|
@XmlRootElement(name = RocksimCommonConstants.ROCK_SIM_DOCUMENT)
|
||||||
@XmlAccessorType(XmlAccessType.FIELD)
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
public class RocksimDocumentDTO {
|
public class RocksimDocumentDTO {
|
||||||
|
|
||||||
@XmlElement(name = "FileVersion")
|
@XmlElement(name = RocksimCommonConstants.FILE_VERSION)
|
||||||
private final String version = "4";
|
private final String version = "4";
|
||||||
|
|
||||||
@XmlElement(name = "DesignInformation")
|
@XmlElement(name = RocksimCommonConstants.DESIGN_INFORMATION)
|
||||||
private RocksimDesignDTO design;
|
private RocksimDesignDTO design;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor.
|
||||||
|
*/
|
||||||
public RocksimDocumentDTO() {
|
public RocksimDocumentDTO() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the subordinate design DTO.
|
||||||
|
*
|
||||||
|
* @return the RocksimDesignDTO
|
||||||
|
*/
|
||||||
public RocksimDesignDTO getDesign() {
|
public RocksimDesignDTO getDesign() {
|
||||||
return design;
|
return design;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setter.
|
||||||
|
*
|
||||||
|
* @param theDesign
|
||||||
|
*/
|
||||||
public void setDesign(RocksimDesignDTO theDesign) {
|
public void setDesign(RocksimDesignDTO theDesign) {
|
||||||
this.design = theDesign;
|
this.design = theDesign;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Getter.
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
public String getVersion() {
|
public String getVersion() {
|
||||||
return version;
|
return version;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package net.sf.openrocket.file.rocksim.export;
|
package net.sf.openrocket.file.rocksim.export;
|
||||||
|
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
import net.sf.openrocket.util.ArrayList;
|
import net.sf.openrocket.util.ArrayList;
|
||||||
|
|
||||||
import javax.xml.bind.annotation.XmlAccessType;
|
import javax.xml.bind.annotation.XmlAccessType;
|
||||||
@ -9,17 +10,21 @@ import javax.xml.bind.annotation.XmlElementRefs;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Placeholder for a Rocksim Stage.
|
||||||
*/
|
*/
|
||||||
@XmlAccessorType(XmlAccessType.FIELD)
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
public class StageDTO {
|
public class StageDTO {
|
||||||
|
|
||||||
@XmlElementRefs({
|
@XmlElementRefs({
|
||||||
@XmlElementRef(name = "BodyTube", type = BodyTubeDTO.class),
|
@XmlElementRef(name = RocksimCommonConstants.BODY_TUBE, type = BodyTubeDTO.class),
|
||||||
@XmlElementRef(name = "NoseCone", type = NoseConeDTO.class),
|
@XmlElementRef(name = RocksimCommonConstants.NOSE_CONE, type = NoseConeDTO.class),
|
||||||
@XmlElementRef(name = "Transition", type = TransitionDTO.class)
|
@XmlElementRef(name = RocksimCommonConstants.TRANSITION, type = TransitionDTO.class)
|
||||||
})
|
})
|
||||||
private List<BasePartDTO> externalPart = new ArrayList<BasePartDTO>();
|
private List<BasePartDTO> externalPart = new ArrayList<BasePartDTO>();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Default constructor.
|
||||||
|
*/
|
||||||
public StageDTO() {
|
public StageDTO() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package net.sf.openrocket.file.rocksim.export;
|
package net.sf.openrocket.file.rocksim.export;
|
||||||
|
|
||||||
import net.sf.openrocket.file.rocksim.importt.RocksimHandler;
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
import net.sf.openrocket.rocketcomponent.Streamer;
|
import net.sf.openrocket.rocketcomponent.Streamer;
|
||||||
|
|
||||||
import javax.xml.bind.annotation.XmlAccessType;
|
import javax.xml.bind.annotation.XmlAccessType;
|
||||||
@ -10,13 +10,13 @@ import javax.xml.bind.annotation.XmlRootElement;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
@XmlRootElement(name = "Streamer")
|
@XmlRootElement(name = RocksimCommonConstants.STREAMER)
|
||||||
@XmlAccessorType(XmlAccessType.FIELD)
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
public class StreamerDTO extends BasePartDTO {
|
public class StreamerDTO extends BasePartDTO {
|
||||||
|
|
||||||
@XmlElement(name = "Width")
|
@XmlElement(name = RocksimCommonConstants.WIDTH)
|
||||||
private double width = 0d;
|
private double width = 0d;
|
||||||
@XmlElement(name = "DragCoefficient")
|
@XmlElement(name = RocksimCommonConstants.DRAG_COEFFICIENT)
|
||||||
private double dragCoefficient = 0.75d;
|
private double dragCoefficient = 0.75d;
|
||||||
|
|
||||||
public StreamerDTO() {
|
public StreamerDTO() {
|
||||||
@ -24,7 +24,7 @@ public class StreamerDTO extends BasePartDTO {
|
|||||||
|
|
||||||
public StreamerDTO(Streamer ec) {
|
public StreamerDTO(Streamer ec) {
|
||||||
super(ec);
|
super(ec);
|
||||||
setWidth(ec.getStripWidth() * RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH);
|
setWidth(ec.getStripWidth() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH);
|
||||||
setDragCoefficient(ec.getCD());
|
setDragCoefficient(ec.getCD());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package net.sf.openrocket.file.rocksim.export;
|
package net.sf.openrocket.file.rocksim.export;
|
||||||
|
|
||||||
import net.sf.openrocket.file.rocksim.importt.RocksimHandler;
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
import net.sf.openrocket.rocketcomponent.Transition;
|
import net.sf.openrocket.rocketcomponent.Transition;
|
||||||
|
|
||||||
import javax.xml.bind.annotation.XmlAccessType;
|
import javax.xml.bind.annotation.XmlAccessType;
|
||||||
@ -10,22 +10,22 @@ import javax.xml.bind.annotation.XmlRootElement;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
@XmlRootElement(name = "Transition")
|
@XmlRootElement(name = RocksimCommonConstants.TRANSITION)
|
||||||
@XmlAccessorType(XmlAccessType.FIELD)
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
public class TransitionDTO extends AbstractTransitionDTO {
|
public class TransitionDTO extends AbstractTransitionDTO {
|
||||||
|
|
||||||
|
|
||||||
@XmlElement(name = "FrontShoulderLen")
|
@XmlElement(name = RocksimCommonConstants.FRONT_SHOULDER_LEN)
|
||||||
private double frontShoulderLen = 0d;
|
private double frontShoulderLen = 0d;
|
||||||
@XmlElement(name = "RearShoulderLen")
|
@XmlElement(name = RocksimCommonConstants.REAR_SHOULDER_LEN)
|
||||||
private double rearShoulderLen = 0d;
|
private double rearShoulderLen = 0d;
|
||||||
@XmlElement(name = "FrontShoulderDia")
|
@XmlElement(name = RocksimCommonConstants.FRONT_SHOULDER_DIA)
|
||||||
private double frontShoulderDia = 0d;
|
private double frontShoulderDia = 0d;
|
||||||
@XmlElement(name = "RearShoulderDia")
|
@XmlElement(name = RocksimCommonConstants.REAR_SHOULDER_DIA)
|
||||||
private double rearShoulderDia = 0d;
|
private double rearShoulderDia = 0d;
|
||||||
@XmlElement(name = "FrontDia")
|
@XmlElement(name = RocksimCommonConstants.FRONT_DIA)
|
||||||
private double frontDia = 0d;
|
private double frontDia = 0d;
|
||||||
@XmlElement(name = "RearDia")
|
@XmlElement(name = RocksimCommonConstants.REAR_DIA)
|
||||||
private double rearDia = 0d;
|
private double rearDia = 0d;
|
||||||
|
|
||||||
public TransitionDTO() {
|
public TransitionDTO() {
|
||||||
@ -33,12 +33,12 @@ public class TransitionDTO extends AbstractTransitionDTO {
|
|||||||
|
|
||||||
public TransitionDTO(Transition tran) {
|
public TransitionDTO(Transition tran) {
|
||||||
super(tran);
|
super(tran);
|
||||||
setFrontDia(tran.getForeRadius() * RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS);
|
setFrontDia(tran.getForeRadius() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS);
|
||||||
setRearDia(tran.getAftRadius() * RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS);
|
setRearDia(tran.getAftRadius() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS);
|
||||||
setFrontShoulderDia(tran.getForeShoulderRadius() * RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS);
|
setFrontShoulderDia(tran.getForeShoulderRadius() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS);
|
||||||
setFrontShoulderLen(tran.getForeShoulderLength() * RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH);
|
setFrontShoulderLen(tran.getForeShoulderLength() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH);
|
||||||
setRearShoulderDia(tran.getAftShoulderRadius() * RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS);
|
setRearShoulderDia(tran.getAftShoulderRadius() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS);
|
||||||
setRearShoulderLen(tran.getAftShoulderLength() * RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH);
|
setRearShoulderLen(tran.getAftShoulderLength() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package net.sf.openrocket.file.rocksim.export;
|
package net.sf.openrocket.file.rocksim.export;
|
||||||
|
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
import net.sf.openrocket.rocketcomponent.TubeCoupler;
|
import net.sf.openrocket.rocketcomponent.TubeCoupler;
|
||||||
|
|
||||||
import javax.xml.bind.annotation.XmlAccessType;
|
import javax.xml.bind.annotation.XmlAccessType;
|
||||||
@ -9,7 +10,7 @@ import javax.xml.bind.annotation.XmlRootElement;
|
|||||||
/**
|
/**
|
||||||
* Conversion DTO for a TubeCoupler. TubeCoupler's are represented as Rings in Rocksim.
|
* Conversion DTO for a TubeCoupler. TubeCoupler's are represented as Rings in Rocksim.
|
||||||
*/
|
*/
|
||||||
@XmlRootElement(name = "Ring")
|
@XmlRootElement(name = RocksimCommonConstants.RING)
|
||||||
@XmlAccessorType(XmlAccessType.FIELD)
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
public class TubeCouplerDTO extends CenteringRingDTO {
|
public class TubeCouplerDTO extends CenteringRingDTO {
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
package net.sf.openrocket.file.rocksim.importt;
|
package net.sf.openrocket.file.rocksim.importt;
|
||||||
|
|
||||||
import net.sf.openrocket.aerodynamics.WarningSet;
|
import net.sf.openrocket.aerodynamics.WarningSet;
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
import net.sf.openrocket.file.simplesax.ElementHandler;
|
import net.sf.openrocket.file.simplesax.ElementHandler;
|
||||||
import net.sf.openrocket.rocketcomponent.RocketComponent;
|
import net.sf.openrocket.rocketcomponent.RocketComponent;
|
||||||
|
|
||||||
@ -32,31 +33,31 @@ class AttachedPartsHandler extends ElementHandler {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ElementHandler openElement(String element, HashMap<String, String> attributes, WarningSet warnings) {
|
public ElementHandler openElement(String element, HashMap<String, String> attributes, WarningSet warnings) {
|
||||||
if ("FinSet".equals(element)) {
|
if (RocksimCommonConstants.FIN_SET.equals(element)) {
|
||||||
return new FinSetHandler(component);
|
return new FinSetHandler(component);
|
||||||
}
|
}
|
||||||
if ("CustomFinSet".equals(element)) {
|
if (RocksimCommonConstants.CUSTOM_FIN_SET.equals(element)) {
|
||||||
return new FinSetHandler(component);
|
return new FinSetHandler(component);
|
||||||
}
|
}
|
||||||
if ("LaunchLug".equals(element)) {
|
if (RocksimCommonConstants.LAUNCH_LUG.equals(element)) {
|
||||||
return new LaunchLugHandler(component, warnings);
|
return new LaunchLugHandler(component, warnings);
|
||||||
}
|
}
|
||||||
if ("Parachute".equals(element)) {
|
if (RocksimCommonConstants.PARACHUTE.equals(element)) {
|
||||||
return new ParachuteHandler(component, warnings);
|
return new ParachuteHandler(component, warnings);
|
||||||
}
|
}
|
||||||
if ("Streamer".equals(element)) {
|
if (RocksimCommonConstants.STREAMER.equals(element)) {
|
||||||
return new StreamerHandler(component, warnings);
|
return new StreamerHandler(component, warnings);
|
||||||
}
|
}
|
||||||
if ("MassObject".equals(element)) {
|
if (RocksimCommonConstants.MASS_OBJECT.equals(element)) {
|
||||||
return new MassObjectHandler(component, warnings);
|
return new MassObjectHandler(component, warnings);
|
||||||
}
|
}
|
||||||
if ("Ring".equals(element)) {
|
if (RocksimCommonConstants.RING.equals(element)) {
|
||||||
return new RingHandler(component, warnings);
|
return new RingHandler(component, warnings);
|
||||||
}
|
}
|
||||||
if ("BodyTube".equals(element)) {
|
if (RocksimCommonConstants.BODY_TUBE.equals(element)) {
|
||||||
return new InnerBodyTubeHandler(component, warnings);
|
return new InnerBodyTubeHandler(component, warnings);
|
||||||
}
|
}
|
||||||
if ("Transition".equals(element)) {
|
if (RocksimCommonConstants.TRANSITION.equals(element)) {
|
||||||
return new TransitionHandler(component, warnings);
|
return new TransitionHandler(component, warnings);
|
||||||
}
|
}
|
||||||
if ("TubeFinSet".equals(element)) {
|
if ("TubeFinSet".equals(element)) {
|
||||||
|
@ -4,6 +4,8 @@
|
|||||||
package net.sf.openrocket.file.rocksim.importt;
|
package net.sf.openrocket.file.rocksim.importt;
|
||||||
|
|
||||||
import net.sf.openrocket.aerodynamics.WarningSet;
|
import net.sf.openrocket.aerodynamics.WarningSet;
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimDensityType;
|
||||||
import net.sf.openrocket.file.simplesax.ElementHandler;
|
import net.sf.openrocket.file.simplesax.ElementHandler;
|
||||||
import net.sf.openrocket.material.Material;
|
import net.sf.openrocket.material.Material;
|
||||||
import net.sf.openrocket.rocketcomponent.RocketComponent;
|
import net.sf.openrocket.rocketcomponent.RocketComponent;
|
||||||
@ -61,23 +63,23 @@ public abstract class BaseHandler<C extends RocketComponent> extends ElementHand
|
|||||||
throws SAXException {
|
throws SAXException {
|
||||||
final C component = getComponent();
|
final C component = getComponent();
|
||||||
try {
|
try {
|
||||||
if ("Name".equals(element)) {
|
if (RocksimCommonConstants.NAME.equals(element)) {
|
||||||
component.setName(content);
|
component.setName(content);
|
||||||
}
|
}
|
||||||
if ("KnownMass".equals(element)) {
|
if (RocksimCommonConstants.KNOWN_MASS.equals(element)) {
|
||||||
mass = Math.max(0d, Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_MASS);
|
mass = Math.max(0d, Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_MASS);
|
||||||
}
|
}
|
||||||
if ("Density".equals(element)) {
|
if (RocksimCommonConstants.DENSITY.equals(element)) {
|
||||||
density = Math.max(0d, Double.parseDouble(content) );
|
density = Math.max(0d, Double.parseDouble(content) );
|
||||||
}
|
}
|
||||||
if ("KnownCG".equals(element)) {
|
if (RocksimCommonConstants.KNOWN_CG.equals(element)) {
|
||||||
cg = Math.max(0d, Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH);
|
cg = Math.max(0d, Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH);
|
||||||
}
|
}
|
||||||
if ("UseKnownCG".equals(element)) { //Rocksim sets UseKnownCG to true to control the override of both cg and mass
|
if (RocksimCommonConstants.USE_KNOWN_CG.equals(element)) { //Rocksim sets UseKnownCG to true to control the override of both cg and mass
|
||||||
boolean override = "1".equals(content);
|
boolean override = "1".equals(content);
|
||||||
setOverride(component, override, mass, cg);
|
setOverride(component, override, mass, cg);
|
||||||
}
|
}
|
||||||
if ("DensityType".equals(element)) {
|
if (RocksimCommonConstants.DENSITY_TYPE.equals(element)) {
|
||||||
densityType = RocksimDensityType.fromCode(Integer.parseInt(content));
|
densityType = RocksimDensityType.fromCode(Integer.parseInt(content));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,8 @@
|
|||||||
package net.sf.openrocket.file.rocksim.importt;
|
package net.sf.openrocket.file.rocksim.importt;
|
||||||
|
|
||||||
import net.sf.openrocket.aerodynamics.WarningSet;
|
import net.sf.openrocket.aerodynamics.WarningSet;
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimFinishCode;
|
||||||
import net.sf.openrocket.file.simplesax.ElementHandler;
|
import net.sf.openrocket.file.simplesax.ElementHandler;
|
||||||
import net.sf.openrocket.file.simplesax.PlainTextHandler;
|
import net.sf.openrocket.file.simplesax.PlainTextHandler;
|
||||||
import net.sf.openrocket.material.Material;
|
import net.sf.openrocket.material.Material;
|
||||||
@ -41,7 +43,7 @@ class BodyTubeHandler extends BaseHandler<BodyTube> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ElementHandler openElement(String element, HashMap<String, String> attributes, WarningSet warnings) {
|
public ElementHandler openElement(String element, HashMap<String, String> attributes, WarningSet warnings) {
|
||||||
if ("AttachedParts".equals(element)) {
|
if (RocksimCommonConstants.ATTACHED_PARTS.equals(element)) {
|
||||||
return new AttachedPartsHandler(bodyTube);
|
return new AttachedPartsHandler(bodyTube);
|
||||||
}
|
}
|
||||||
return PlainTextHandler.INSTANCE;
|
return PlainTextHandler.INSTANCE;
|
||||||
@ -53,26 +55,26 @@ class BodyTubeHandler extends BaseHandler<BodyTube> {
|
|||||||
super.closeElement(element, attributes, content, warnings);
|
super.closeElement(element, attributes, content, warnings);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if ("OD".equals(element)) {
|
if (RocksimCommonConstants.OD.equals(element)) {
|
||||||
bodyTube.setOuterRadius(Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS);
|
bodyTube.setOuterRadius(Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS);
|
||||||
}
|
}
|
||||||
if ("ID".equals(element)) {
|
if (RocksimCommonConstants.ID.equals(element)) {
|
||||||
final double r = Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS;
|
final double r = Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS;
|
||||||
bodyTube.setInnerRadius(r);
|
bodyTube.setInnerRadius(r);
|
||||||
}
|
}
|
||||||
if ("Len".equals(element)) {
|
if (RocksimCommonConstants.LEN.equals(element)) {
|
||||||
bodyTube.setLength(Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH);
|
bodyTube.setLength(Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH);
|
||||||
}
|
}
|
||||||
if ("FinishCode".equals(element)) {
|
if (RocksimCommonConstants.FINISH_CODE.equals(element)) {
|
||||||
bodyTube.setFinish(RocksimFinishCode.fromCode(Integer.parseInt(content)).asOpenRocket());
|
bodyTube.setFinish(RocksimFinishCode.fromCode(Integer.parseInt(content)).asOpenRocket());
|
||||||
}
|
}
|
||||||
if ("IsMotorMount".equals(element)) {
|
if (RocksimCommonConstants.IS_MOTOR_MOUNT.equals(element)) {
|
||||||
bodyTube.setMotorMount("1".equals(content));
|
bodyTube.setMotorMount("1".equals(content));
|
||||||
}
|
}
|
||||||
if ("EngineOverhang".equals(element)) {
|
if (RocksimCommonConstants.ENGINE_OVERHANG.equals(element)) {
|
||||||
bodyTube.setMotorOverhang(Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH);
|
bodyTube.setMotorOverhang(Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH);
|
||||||
}
|
}
|
||||||
if ("Material".equals(element)) {
|
if (RocksimCommonConstants.MATERIAL.equals(element)) {
|
||||||
setMaterialName(content);
|
setMaterialName(content);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,9 @@
|
|||||||
package net.sf.openrocket.file.rocksim.importt;
|
package net.sf.openrocket.file.rocksim.importt;
|
||||||
|
|
||||||
import net.sf.openrocket.aerodynamics.WarningSet;
|
import net.sf.openrocket.aerodynamics.WarningSet;
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimFinishCode;
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimLocationMode;
|
||||||
import net.sf.openrocket.file.simplesax.ElementHandler;
|
import net.sf.openrocket.file.simplesax.ElementHandler;
|
||||||
import net.sf.openrocket.file.simplesax.PlainTextHandler;
|
import net.sf.openrocket.file.simplesax.PlainTextHandler;
|
||||||
import net.sf.openrocket.material.Material;
|
import net.sf.openrocket.material.Material;
|
||||||
@ -169,7 +172,7 @@ class FinSetHandler extends ElementHandler {
|
|||||||
finish = RocksimFinishCode.fromCode(Integer.parseInt(content)).asOpenRocket();
|
finish = RocksimFinishCode.fromCode(Integer.parseInt(content)).asOpenRocket();
|
||||||
}
|
}
|
||||||
if ("Xb".equals(element)) {
|
if ("Xb".equals(element)) {
|
||||||
location = Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH;
|
location = Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH;
|
||||||
}
|
}
|
||||||
if ("LocationMode".equals(element)) {
|
if ("LocationMode".equals(element)) {
|
||||||
position = RocksimLocationMode.fromCode(Integer.parseInt(content)).asOpenRocket();
|
position = RocksimLocationMode.fromCode(Integer.parseInt(content)).asOpenRocket();
|
||||||
@ -178,34 +181,34 @@ class FinSetHandler extends ElementHandler {
|
|||||||
finCount = Integer.parseInt(content);
|
finCount = Integer.parseInt(content);
|
||||||
}
|
}
|
||||||
if ("RootChord".equals(element)) {
|
if ("RootChord".equals(element)) {
|
||||||
rootChord = Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH;
|
rootChord = Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH;
|
||||||
}
|
}
|
||||||
if ("TipChord".equals(element)) {
|
if ("TipChord".equals(element)) {
|
||||||
tipChord = Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH;
|
tipChord = Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH;
|
||||||
}
|
}
|
||||||
if ("SemiSpan".equals(element)) {
|
if ("SemiSpan".equals(element)) {
|
||||||
semiSpan = Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH;
|
semiSpan = Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH;
|
||||||
}
|
}
|
||||||
if ("MidChordLen".equals(element)) {
|
if ("MidChordLen".equals(element)) {
|
||||||
midChordLen = Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH;
|
midChordLen = Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH;
|
||||||
}
|
}
|
||||||
if ("SweepDistance".equals(element)) {
|
if ("SweepDistance".equals(element)) {
|
||||||
sweepDistance = Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH;
|
sweepDistance = Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH;
|
||||||
}
|
}
|
||||||
if ("Thickness".equals(element)) {
|
if ("Thickness".equals(element)) {
|
||||||
thickness = Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH;
|
thickness = Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH;
|
||||||
}
|
}
|
||||||
if ("TipShapeCode".equals(element)) {
|
if ("TipShapeCode".equals(element)) {
|
||||||
tipShapeCode = Integer.parseInt(content);
|
tipShapeCode = Integer.parseInt(content);
|
||||||
}
|
}
|
||||||
if ("TabLength".equals(element)) {
|
if ("TabLength".equals(element)) {
|
||||||
tabLength = Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH;
|
tabLength = Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH;
|
||||||
}
|
}
|
||||||
if ("TabDepth".equals(element)) {
|
if ("TabDepth".equals(element)) {
|
||||||
tabDepth = Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH;
|
tabDepth = Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH;
|
||||||
}
|
}
|
||||||
if ("TabOffset".equals(element)) {
|
if ("TabOffset".equals(element)) {
|
||||||
taboffset = Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH;
|
taboffset = Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH;
|
||||||
}
|
}
|
||||||
if ("RadialAngle".equals(element)) {
|
if ("RadialAngle".equals(element)) {
|
||||||
radialAngle = Double.parseDouble(content);
|
radialAngle = Double.parseDouble(content);
|
||||||
@ -217,22 +220,22 @@ class FinSetHandler extends ElementHandler {
|
|||||||
pointList = content;
|
pointList = content;
|
||||||
}
|
}
|
||||||
if ("KnownMass".equals(element)) {
|
if ("KnownMass".equals(element)) {
|
||||||
mass = Math.max(0d, Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_MASS);
|
mass = Math.max(0d, Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_MASS);
|
||||||
}
|
}
|
||||||
if ("Density".equals(element)) {
|
if ("Density".equals(element)) {
|
||||||
density = Math.max(0d, Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_BULK_DENSITY);
|
density = Math.max(0d, Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_BULK_DENSITY);
|
||||||
}
|
}
|
||||||
if ("KnownCG".equals(element)) {
|
if ("KnownCG".equals(element)) {
|
||||||
cg = Math.max(0d, Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_MASS);
|
cg = Math.max(0d, Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_MASS);
|
||||||
}
|
}
|
||||||
if ("UseKnownCG".equals(element)) {
|
if ("UseKnownCG".equals(element)) {
|
||||||
override = "1".equals(content);
|
override = "1".equals(content);
|
||||||
}
|
}
|
||||||
if ("CalcMass".equals(element)) {
|
if ("CalcMass".equals(element)) {
|
||||||
calcMass = Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_MASS;
|
calcMass = Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_MASS;
|
||||||
}
|
}
|
||||||
if ("CalcCg".equals(element)) {
|
if ("CalcCg".equals(element)) {
|
||||||
calcCg = Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH;
|
calcCg = Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (NumberFormatException nfe) {
|
catch (NumberFormatException nfe) {
|
||||||
@ -333,8 +336,8 @@ class FinSetHandler extends ElementHandler {
|
|||||||
try {
|
try {
|
||||||
if (aPoint.length > 1) {
|
if (aPoint.length > 1) {
|
||||||
Coordinate c = new Coordinate(
|
Coordinate c = new Coordinate(
|
||||||
Double.parseDouble(aPoint[0]) / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH,
|
Double.parseDouble(aPoint[0]) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH,
|
||||||
Double.parseDouble(aPoint[1]) / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH);
|
Double.parseDouble(aPoint[1]) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH);
|
||||||
result.add(c);
|
result.add(c);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
package net.sf.openrocket.file.rocksim.importt;
|
package net.sf.openrocket.file.rocksim.importt;
|
||||||
|
|
||||||
import net.sf.openrocket.aerodynamics.WarningSet;
|
import net.sf.openrocket.aerodynamics.WarningSet;
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
import net.sf.openrocket.file.simplesax.ElementHandler;
|
import net.sf.openrocket.file.simplesax.ElementHandler;
|
||||||
import net.sf.openrocket.file.simplesax.PlainTextHandler;
|
import net.sf.openrocket.file.simplesax.PlainTextHandler;
|
||||||
import net.sf.openrocket.material.Material;
|
import net.sf.openrocket.material.Material;
|
||||||
@ -42,7 +43,7 @@ class InnerBodyTubeHandler extends PositionDependentHandler<InnerTube> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ElementHandler openElement(String element, HashMap<String, String> attributes, WarningSet warnings) {
|
public ElementHandler openElement(String element, HashMap<String, String> attributes, WarningSet warnings) {
|
||||||
if ("AttachedParts".equals(element)) {
|
if (RocksimCommonConstants.ATTACHED_PARTS.equals(element)) {
|
||||||
return new AttachedPartsHandler(bodyTube);
|
return new AttachedPartsHandler(bodyTube);
|
||||||
}
|
}
|
||||||
return PlainTextHandler.INSTANCE;
|
return PlainTextHandler.INSTANCE;
|
||||||
@ -54,25 +55,31 @@ class InnerBodyTubeHandler extends PositionDependentHandler<InnerTube> {
|
|||||||
super.closeElement(element, attributes, content, warnings);
|
super.closeElement(element, attributes, content, warnings);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if ("OD".equals(element)) {
|
if (RocksimCommonConstants.OD.equals(element)) {
|
||||||
bodyTube.setOuterRadius(Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS);
|
bodyTube.setOuterRadius(Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS);
|
||||||
}
|
}
|
||||||
if ("ID".equals(element)) {
|
if (RocksimCommonConstants.ID.equals(element)) {
|
||||||
final double r = Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS;
|
final double r = Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS;
|
||||||
bodyTube.setInnerRadius(r);
|
bodyTube.setInnerRadius(r);
|
||||||
}
|
}
|
||||||
if ("Len".equals(element)) {
|
if (RocksimCommonConstants.LEN.equals(element)) {
|
||||||
bodyTube.setLength(Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH);
|
bodyTube.setLength(Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH);
|
||||||
}
|
}
|
||||||
if ("IsMotorMount".equals(element)) {
|
if (RocksimCommonConstants.IS_MOTOR_MOUNT.equals(element)) {
|
||||||
bodyTube.setMotorMount("1".equals(content));
|
bodyTube.setMotorMount("1".equals(content));
|
||||||
}
|
}
|
||||||
if ("EngineOverhang".equals(element)) {
|
if (RocksimCommonConstants.ENGINE_OVERHANG.equals(element)) {
|
||||||
bodyTube.setMotorOverhang(Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH);
|
bodyTube.setMotorOverhang(Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH);
|
||||||
}
|
}
|
||||||
if ("Material".equals(element)) {
|
if (RocksimCommonConstants.MATERIAL.equals(element)) {
|
||||||
setMaterialName(content);
|
setMaterialName(content);
|
||||||
}
|
}
|
||||||
|
if (RocksimCommonConstants.RADIAL_ANGLE.equals(element)) {
|
||||||
|
bodyTube.setRadialDirection(Double.parseDouble(content));
|
||||||
|
}
|
||||||
|
if (RocksimCommonConstants.RADIAL_LOC.equals(element)) {
|
||||||
|
bodyTube.setRadialPosition(Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (NumberFormatException nfe) {
|
catch (NumberFormatException nfe) {
|
||||||
warnings.add("Could not convert " + element + " value of " + content + ". It is expected to be a number.");
|
warnings.add("Could not convert " + element + " value of " + content + ". It is expected to be a number.");
|
||||||
|
@ -4,6 +4,8 @@
|
|||||||
package net.sf.openrocket.file.rocksim.importt;
|
package net.sf.openrocket.file.rocksim.importt;
|
||||||
|
|
||||||
import net.sf.openrocket.aerodynamics.WarningSet;
|
import net.sf.openrocket.aerodynamics.WarningSet;
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimFinishCode;
|
||||||
import net.sf.openrocket.file.simplesax.ElementHandler;
|
import net.sf.openrocket.file.simplesax.ElementHandler;
|
||||||
import net.sf.openrocket.file.simplesax.PlainTextHandler;
|
import net.sf.openrocket.file.simplesax.PlainTextHandler;
|
||||||
import net.sf.openrocket.material.Material;
|
import net.sf.openrocket.material.Material;
|
||||||
@ -52,22 +54,22 @@ class LaunchLugHandler extends PositionDependentHandler<LaunchLug> {
|
|||||||
super.closeElement(element, attributes, content, warnings);
|
super.closeElement(element, attributes, content, warnings);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if ("OD".equals(element)) {
|
if (RocksimCommonConstants.OD.equals(element)) {
|
||||||
lug.setOuterRadius(Math.max(0, Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS));
|
lug.setOuterRadius(Math.max(0, Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS));
|
||||||
}
|
}
|
||||||
if ("ID".equals(element)) {
|
if (RocksimCommonConstants.ID.equals(element)) {
|
||||||
lug.setInnerRadius(Math.max(0, Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS));
|
lug.setInnerRadius(Math.max(0, Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS));
|
||||||
}
|
}
|
||||||
if ("Len".equals(element)) {
|
if (RocksimCommonConstants.LEN.equals(element)) {
|
||||||
lug.setLength(Math.max(0, Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH));
|
lug.setLength(Math.max(0, Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH));
|
||||||
}
|
}
|
||||||
if ("Material".equals(element)) {
|
if (RocksimCommonConstants.MATERIAL.equals(element)) {
|
||||||
setMaterialName(content);
|
setMaterialName(content);
|
||||||
}
|
}
|
||||||
if ("RadialAngle".equals(element)) {
|
if (RocksimCommonConstants.RADIAL_ANGLE.equals(element)) {
|
||||||
lug.setRadialDirection(Double.parseDouble(content));
|
lug.setRadialDirection(Double.parseDouble(content));
|
||||||
}
|
}
|
||||||
if ("FinishCode".equals(element)) {
|
if (RocksimCommonConstants.FINISH_CODE.equals(element)) {
|
||||||
lug.setFinish(RocksimFinishCode.fromCode(Integer.parseInt(content)).asOpenRocket());
|
lug.setFinish(RocksimFinishCode.fromCode(Integer.parseInt(content)).asOpenRocket());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
package net.sf.openrocket.file.rocksim.importt;
|
package net.sf.openrocket.file.rocksim.importt;
|
||||||
|
|
||||||
import net.sf.openrocket.aerodynamics.WarningSet;
|
import net.sf.openrocket.aerodynamics.WarningSet;
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
import net.sf.openrocket.file.simplesax.ElementHandler;
|
import net.sf.openrocket.file.simplesax.ElementHandler;
|
||||||
import net.sf.openrocket.file.simplesax.PlainTextHandler;
|
import net.sf.openrocket.file.simplesax.PlainTextHandler;
|
||||||
import net.sf.openrocket.material.Material;
|
import net.sf.openrocket.material.Material;
|
||||||
@ -60,13 +61,13 @@ class MassObjectHandler extends PositionDependentHandler<MassComponent> {
|
|||||||
throws SAXException {
|
throws SAXException {
|
||||||
super.closeElement(element, attributes, content, warnings);
|
super.closeElement(element, attributes, content, warnings);
|
||||||
try {
|
try {
|
||||||
if ("Len".equals(element)) {
|
if (RocksimCommonConstants.LEN.equals(element)) {
|
||||||
mass.setLength(Double.parseDouble(content) / (RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH * MASS_LEN_FUDGE_FACTOR));
|
mass.setLength(Double.parseDouble(content) / (RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH * MASS_LEN_FUDGE_FACTOR));
|
||||||
}
|
}
|
||||||
if ("KnownMass".equals(element)) {
|
if (RocksimCommonConstants.KNOWN_MASS.equals(element)) {
|
||||||
mass.setComponentMass(Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_MASS);
|
mass.setComponentMass(Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_MASS);
|
||||||
}
|
}
|
||||||
if ("KnownCG".equals(element)) {
|
if (RocksimCommonConstants.KNOWN_CG.equals(element)) {
|
||||||
//Setting the CG of the Mass Object to 0 is important because of the different ways that Rocksim and
|
//Setting the CG of the Mass Object to 0 is important because of the different ways that Rocksim and
|
||||||
//OpenRocket treat mass objects. Rocksim treats them as points (even though the data file contains a
|
//OpenRocket treat mass objects. Rocksim treats them as points (even though the data file contains a
|
||||||
//length) and because Rocksim sets the CG of the mass object to really be relative to the front of
|
//length) and because Rocksim sets the CG of the mass object to really be relative to the front of
|
||||||
|
@ -4,6 +4,9 @@
|
|||||||
package net.sf.openrocket.file.rocksim.importt;
|
package net.sf.openrocket.file.rocksim.importt;
|
||||||
|
|
||||||
import net.sf.openrocket.aerodynamics.WarningSet;
|
import net.sf.openrocket.aerodynamics.WarningSet;
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimFinishCode;
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimNoseConeCode;
|
||||||
import net.sf.openrocket.file.simplesax.ElementHandler;
|
import net.sf.openrocket.file.simplesax.ElementHandler;
|
||||||
import net.sf.openrocket.file.simplesax.PlainTextHandler;
|
import net.sf.openrocket.file.simplesax.PlainTextHandler;
|
||||||
import net.sf.openrocket.material.Material;
|
import net.sf.openrocket.material.Material;
|
||||||
@ -50,7 +53,7 @@ class NoseConeHandler extends BaseHandler<NoseCone> {
|
|||||||
@Override
|
@Override
|
||||||
public ElementHandler openElement(String element, HashMap<String, String> attributes, WarningSet warnings) {
|
public ElementHandler openElement(String element, HashMap<String, String> attributes, WarningSet warnings) {
|
||||||
//Nose cones in Rocksim may have attached parts - namely Mass Objects - as children.
|
//Nose cones in Rocksim may have attached parts - namely Mass Objects - as children.
|
||||||
if ("AttachedParts".equals(element)) {
|
if (RocksimCommonConstants.ATTACHED_PARTS.equals(element)) {
|
||||||
return new AttachedPartsHandler(noseCone);
|
return new AttachedPartsHandler(noseCone);
|
||||||
}
|
}
|
||||||
return PlainTextHandler.INSTANCE;
|
return PlainTextHandler.INSTANCE;
|
||||||
@ -62,27 +65,27 @@ class NoseConeHandler extends BaseHandler<NoseCone> {
|
|||||||
super.closeElement(element, attributes, content, warnings);
|
super.closeElement(element, attributes, content, warnings);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if ("ShapeCode".equals(element)) {
|
if (RocksimCommonConstants.SHAPE_CODE.equals(element)) {
|
||||||
noseCone.setType(RocksimNoseConeCode.fromCode(Integer.parseInt(content)).asOpenRocket());
|
noseCone.setType(RocksimNoseConeCode.fromCode(Integer.parseInt(content)).asOpenRocket());
|
||||||
}
|
}
|
||||||
if ("Len".equals(element)) {
|
if (RocksimCommonConstants.LEN.equals(element)) {
|
||||||
noseCone.setLength(Math.max(0, Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH));
|
noseCone.setLength(Math.max(0, Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH));
|
||||||
}
|
}
|
||||||
if ("BaseDia".equals(element)) {
|
if (RocksimCommonConstants.BASE_DIA.equals(element)) {
|
||||||
noseCone.setAftRadius(Math.max(0, Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS));
|
noseCone.setAftRadius(Math.max(0, Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS));
|
||||||
}
|
}
|
||||||
if ("WallThickness".equals(element)) {
|
if (RocksimCommonConstants.WALL_THICKNESS.equals(element)) {
|
||||||
thickness = Math.max(0, Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH);
|
thickness = Math.max(0, Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH);
|
||||||
}
|
}
|
||||||
if ("ShoulderOD".equals(element)) {
|
if (RocksimCommonConstants.SHOULDER_OD.equals(element)) {
|
||||||
noseCone.setAftShoulderRadius(Math.max(0, Double.parseDouble(
|
noseCone.setAftShoulderRadius(Math.max(0, Double.parseDouble(
|
||||||
content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS));
|
content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS));
|
||||||
}
|
}
|
||||||
if ("ShoulderLen".equals(element)) {
|
if (RocksimCommonConstants.SHOULDER_LEN.equals(element)) {
|
||||||
noseCone.setAftShoulderLength(Math.max(0, Double.parseDouble(
|
noseCone.setAftShoulderLength(Math.max(0, Double.parseDouble(
|
||||||
content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH));
|
content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH));
|
||||||
}
|
}
|
||||||
if ("ShapeParameter".equals(element)) {
|
if (RocksimCommonConstants.SHAPE_PARAMETER.equals(element)) {
|
||||||
//The Rocksim ShapeParameter only applies to certain shapes, although it is included
|
//The Rocksim ShapeParameter only applies to certain shapes, although it is included
|
||||||
//in the design file for all nose cones. Applying it when it should not be causes oddities so
|
//in the design file for all nose cones. Applying it when it should not be causes oddities so
|
||||||
//a check is made for the allowable shapes.
|
//a check is made for the allowable shapes.
|
||||||
@ -92,7 +95,7 @@ class NoseConeHandler extends BaseHandler<NoseCone> {
|
|||||||
noseCone.setShapeParameter(Double.parseDouble(content));
|
noseCone.setShapeParameter(Double.parseDouble(content));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ("ConstructionType".equals(element)) {
|
if (RocksimCommonConstants.CONSTRUCTION_TYPE.equals(element)) {
|
||||||
int typeCode = Integer.parseInt(content);
|
int typeCode = Integer.parseInt(content);
|
||||||
if (typeCode == 0) {
|
if (typeCode == 0) {
|
||||||
//SOLID
|
//SOLID
|
||||||
@ -103,10 +106,10 @@ class NoseConeHandler extends BaseHandler<NoseCone> {
|
|||||||
noseCone.setFilled(false);
|
noseCone.setFilled(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ("FinishCode".equals(element)) {
|
if (RocksimCommonConstants.FINISH_CODE.equals(element)) {
|
||||||
noseCone.setFinish(RocksimFinishCode.fromCode(Integer.parseInt(content)).asOpenRocket());
|
noseCone.setFinish(RocksimFinishCode.fromCode(Integer.parseInt(content)).asOpenRocket());
|
||||||
}
|
}
|
||||||
if ("Material".equals(element)) {
|
if (RocksimCommonConstants.MATERIAL.equals(element)) {
|
||||||
setMaterialName(content);
|
setMaterialName(content);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
package net.sf.openrocket.file.rocksim.importt;
|
package net.sf.openrocket.file.rocksim.importt;
|
||||||
|
|
||||||
import net.sf.openrocket.aerodynamics.WarningSet;
|
import net.sf.openrocket.aerodynamics.WarningSet;
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
import net.sf.openrocket.file.simplesax.ElementHandler;
|
import net.sf.openrocket.file.simplesax.ElementHandler;
|
||||||
import net.sf.openrocket.file.simplesax.PlainTextHandler;
|
import net.sf.openrocket.file.simplesax.PlainTextHandler;
|
||||||
import net.sf.openrocket.material.Material;
|
import net.sf.openrocket.material.Material;
|
||||||
@ -62,8 +63,8 @@ class ParachuteHandler extends RecoveryDeviceHandler<Parachute> {
|
|||||||
throws SAXException {
|
throws SAXException {
|
||||||
super.closeElement(element, attributes, content, warnings);
|
super.closeElement(element, attributes, content, warnings);
|
||||||
try {
|
try {
|
||||||
if ("Dia".equals(element)) {
|
if (RocksimCommonConstants.DIAMETER.equals(element)) {
|
||||||
chute.setDiameter(Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH);
|
chute.setDiameter(Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH);
|
||||||
/* Rocksim doesn't have a packed parachute radius, so we approximate it. */
|
/* Rocksim doesn't have a packed parachute radius, so we approximate it. */
|
||||||
double packed;
|
double packed;
|
||||||
RocketComponent parent = chute.getParent();
|
RocketComponent parent = chute.getParent();
|
||||||
@ -78,27 +79,27 @@ class ParachuteHandler extends RecoveryDeviceHandler<Parachute> {
|
|||||||
}
|
}
|
||||||
chute.setRadius(packed);
|
chute.setRadius(packed);
|
||||||
}
|
}
|
||||||
if ("ShroudLineCount".equals(element)) {
|
if (RocksimCommonConstants.SHROUD_LINE_COUNT.equals(element)) {
|
||||||
chute.setLineCount(Math.max(0, Integer.parseInt(content)));
|
chute.setLineCount(Math.max(0, Integer.parseInt(content)));
|
||||||
}
|
}
|
||||||
if ("ShroudLineLen".equals(element)) {
|
if (RocksimCommonConstants.SHROUD_LINE_LEN.equals(element)) {
|
||||||
chute.setLineLength(Math.max(0, Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH));
|
chute.setLineLength(Math.max(0, Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH));
|
||||||
}
|
}
|
||||||
if ("SpillHoleDia".equals(element)) {
|
if (RocksimCommonConstants.SPILL_HOLE_DIA.equals(element)) {
|
||||||
//Not supported in OpenRocket
|
//Not supported in OpenRocket
|
||||||
double spillHoleRadius = Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS;
|
double spillHoleRadius = Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS;
|
||||||
warnings.add("Parachute spill holes are not supported. Ignoring.");
|
warnings.add("Parachute spill holes are not supported. Ignoring.");
|
||||||
}
|
}
|
||||||
if ("ShroudLineMassPerMM".equals(element)) {
|
if (RocksimCommonConstants.SHROUD_LINE_MASS_PER_MM.equals(element)) {
|
||||||
shroudLineDensity = Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_LINE_DENSITY;
|
shroudLineDensity = Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LINE_DENSITY;
|
||||||
}
|
}
|
||||||
if ("ShroudLineMaterial".equals(element)) {
|
if (RocksimCommonConstants.SHROUD_LINE_MATERIAL.equals(element)) {
|
||||||
chute.setLineMaterial(createCustomMaterial(Material.Type.LINE, content, shroudLineDensity));
|
chute.setLineMaterial(createCustomMaterial(Material.Type.LINE, content, shroudLineDensity));
|
||||||
}
|
}
|
||||||
if ("DragCoefficient".equals(element)) {
|
if (RocksimCommonConstants.DRAG_COEFFICIENT.equals(element)) {
|
||||||
chute.setCD(Double.parseDouble(content));
|
chute.setCD(Double.parseDouble(content));
|
||||||
}
|
}
|
||||||
if ("Material".equals(element)) {
|
if (RocksimCommonConstants.MATERIAL.equals(element)) {
|
||||||
setMaterialName(content);
|
setMaterialName(content);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,8 @@
|
|||||||
package net.sf.openrocket.file.rocksim.importt;
|
package net.sf.openrocket.file.rocksim.importt;
|
||||||
|
|
||||||
import net.sf.openrocket.aerodynamics.WarningSet;
|
import net.sf.openrocket.aerodynamics.WarningSet;
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimLocationMode;
|
||||||
import net.sf.openrocket.rocketcomponent.RocketComponent;
|
import net.sf.openrocket.rocketcomponent.RocketComponent;
|
||||||
import org.xml.sax.SAXException;
|
import org.xml.sax.SAXException;
|
||||||
|
|
||||||
@ -30,10 +32,10 @@ public abstract class PositionDependentHandler<C extends RocketComponent> extend
|
|||||||
public void closeElement(String element, HashMap<String, String> attributes, String content, WarningSet warnings)
|
public void closeElement(String element, HashMap<String, String> attributes, String content, WarningSet warnings)
|
||||||
throws SAXException {
|
throws SAXException {
|
||||||
super.closeElement(element, attributes, content, warnings);
|
super.closeElement(element, attributes, content, warnings);
|
||||||
if ("Xb".equals(element)) {
|
if (RocksimCommonConstants.XB.equals(element)) {
|
||||||
positionValue = Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH;
|
positionValue = Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH;
|
||||||
}
|
}
|
||||||
if ("LocationMode".equals(element)) {
|
if (RocksimCommonConstants.LOCATION_MODE.equals(element)) {
|
||||||
position = RocksimLocationMode.fromCode(Integer.parseInt(
|
position = RocksimLocationMode.fromCode(Integer.parseInt(
|
||||||
content)).asOpenRocket();
|
content)).asOpenRocket();
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,8 @@
|
|||||||
package net.sf.openrocket.file.rocksim.importt;
|
package net.sf.openrocket.file.rocksim.importt;
|
||||||
|
|
||||||
import net.sf.openrocket.aerodynamics.WarningSet;
|
import net.sf.openrocket.aerodynamics.WarningSet;
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimDensityType;
|
||||||
import net.sf.openrocket.material.Material;
|
import net.sf.openrocket.material.Material;
|
||||||
import net.sf.openrocket.rocketcomponent.RecoveryDevice;
|
import net.sf.openrocket.rocketcomponent.RecoveryDevice;
|
||||||
import net.sf.openrocket.rocketcomponent.RocketComponent;
|
import net.sf.openrocket.rocketcomponent.RocketComponent;
|
||||||
@ -38,11 +40,11 @@ public abstract class RecoveryDeviceHandler<C extends RecoveryDevice> extends Po
|
|||||||
super.closeElement(element, attributes, content, warnings);
|
super.closeElement(element, attributes, content, warnings);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if ("Thickness".equals(element)) {
|
if (RocksimCommonConstants.THICKNESS.equals(element)) {
|
||||||
thickness = Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH;
|
thickness = Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH;
|
||||||
}
|
}
|
||||||
if ("CalcMass".equals(element)) {
|
if (RocksimCommonConstants.CALC_MASS.equals(element)) {
|
||||||
calcMass = Math.max(0d, Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_MASS);
|
calcMass = Math.max(0d, Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_MASS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (NumberFormatException nfe) {
|
catch (NumberFormatException nfe) {
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
package net.sf.openrocket.file.rocksim.importt;
|
package net.sf.openrocket.file.rocksim.importt;
|
||||||
|
|
||||||
import net.sf.openrocket.aerodynamics.WarningSet;
|
import net.sf.openrocket.aerodynamics.WarningSet;
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
import net.sf.openrocket.file.simplesax.ElementHandler;
|
import net.sf.openrocket.file.simplesax.ElementHandler;
|
||||||
import net.sf.openrocket.file.simplesax.PlainTextHandler;
|
import net.sf.openrocket.file.simplesax.PlainTextHandler;
|
||||||
import net.sf.openrocket.material.Material;
|
import net.sf.openrocket.material.Material;
|
||||||
@ -62,19 +63,19 @@ class RingHandler extends PositionDependentHandler<CenteringRing> {
|
|||||||
super.closeElement(element, attributes, content, warnings);
|
super.closeElement(element, attributes, content, warnings);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if ("OD".equals(element)) {
|
if (RocksimCommonConstants.OD.equals(element)) {
|
||||||
ring.setOuterRadius(Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS);
|
ring.setOuterRadius(Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS);
|
||||||
}
|
}
|
||||||
if ("ID".equals(element)) {
|
if (RocksimCommonConstants.ID.equals(element)) {
|
||||||
ring.setInnerRadius(Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS);
|
ring.setInnerRadius(Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS);
|
||||||
}
|
}
|
||||||
if ("Len".equals(element)) {
|
if (RocksimCommonConstants.LEN.equals(element)) {
|
||||||
ring.setLength(Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH);
|
ring.setLength(Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH);
|
||||||
}
|
}
|
||||||
if ("Material".equals(element)) {
|
if (RocksimCommonConstants.MATERIAL.equals(element)) {
|
||||||
setMaterialName(content);
|
setMaterialName(content);
|
||||||
}
|
}
|
||||||
if ("UsageCode".equals(element)) {
|
if (RocksimCommonConstants.USAGE_CODE.equals(element)) {
|
||||||
usageCode = Integer.parseInt(content);
|
usageCode = Integer.parseInt(content);
|
||||||
}
|
}
|
||||||
} catch (NumberFormatException nfe) {
|
} catch (NumberFormatException nfe) {
|
||||||
@ -172,6 +173,7 @@ class RingHandler extends PositionDependentHandler<CenteringRing> {
|
|||||||
result.setRelativePosition(ring.getRelativePosition());
|
result.setRelativePosition(ring.getRelativePosition());
|
||||||
result.setPositionValue(ring.getPositionValue());
|
result.setPositionValue(ring.getPositionValue());
|
||||||
result.setMaterial(ring.getMaterial());
|
result.setMaterial(ring.getMaterial());
|
||||||
|
result.setThickness(result.getThickness());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -7,6 +7,7 @@ package net.sf.openrocket.file.rocksim.importt;
|
|||||||
import net.sf.openrocket.aerodynamics.Warning;
|
import net.sf.openrocket.aerodynamics.Warning;
|
||||||
import net.sf.openrocket.aerodynamics.WarningSet;
|
import net.sf.openrocket.aerodynamics.WarningSet;
|
||||||
import net.sf.openrocket.document.OpenRocketDocument;
|
import net.sf.openrocket.document.OpenRocketDocument;
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
import net.sf.openrocket.file.simplesax.ElementHandler;
|
import net.sf.openrocket.file.simplesax.ElementHandler;
|
||||||
import net.sf.openrocket.file.simplesax.PlainTextHandler;
|
import net.sf.openrocket.file.simplesax.PlainTextHandler;
|
||||||
import net.sf.openrocket.rocketcomponent.Rocket;
|
import net.sf.openrocket.rocketcomponent.Rocket;
|
||||||
@ -25,36 +26,6 @@ import java.util.HashMap;
|
|||||||
*/
|
*/
|
||||||
public class RocksimHandler extends ElementHandler {
|
public class RocksimHandler extends ElementHandler {
|
||||||
|
|
||||||
/**
|
|
||||||
* Length conversion. Rocksim is in millimeters, OpenRocket in meters.
|
|
||||||
*/
|
|
||||||
public static final int ROCKSIM_TO_OPENROCKET_LENGTH = 1000;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Mass conversion. Rocksim is in grams, OpenRocket in kilograms.
|
|
||||||
*/
|
|
||||||
public static final int ROCKSIM_TO_OPENROCKET_MASS = 1000;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Bulk Density conversion. Rocksim is in kilograms/cubic meter, OpenRocket in kilograms/cubic meter.
|
|
||||||
*/
|
|
||||||
public static final int ROCKSIM_TO_OPENROCKET_BULK_DENSITY = 1;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Surface Density conversion. Rocksim is in grams/sq centimeter, OpenRocket in kilograms/sq meter. 1000/(100*100) = 1/10
|
|
||||||
*/
|
|
||||||
public static final double ROCKSIM_TO_OPENROCKET_SURFACE_DENSITY = 1/10d;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Line Density conversion. Rocksim is in kilograms/meter, OpenRocket in kilograms/meter.
|
|
||||||
*/
|
|
||||||
public static final int ROCKSIM_TO_OPENROCKET_LINE_DENSITY = 1;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Radius conversion. Rocksim is always in diameters, OpenRocket mostly in radius.
|
|
||||||
*/
|
|
||||||
public static final int ROCKSIM_TO_OPENROCKET_RADIUS = 2 * ROCKSIM_TO_OPENROCKET_LENGTH;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The main content handler.
|
* The main content handler.
|
||||||
*/
|
*/
|
||||||
@ -310,22 +281,22 @@ class RocketDesignHandler extends ElementHandler {
|
|||||||
stageCount = Integer.parseInt(content);
|
stageCount = Integer.parseInt(content);
|
||||||
}
|
}
|
||||||
if ("Stage3Mass".equals(element)) {
|
if ("Stage3Mass".equals(element)) {
|
||||||
stage3Mass = Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_MASS;
|
stage3Mass = Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_MASS;
|
||||||
}
|
}
|
||||||
if ("Stage2Mass".equals(element)) {
|
if ("Stage2Mass".equals(element)) {
|
||||||
stage2Mass = Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_MASS;
|
stage2Mass = Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_MASS;
|
||||||
}
|
}
|
||||||
if ("Stage1Mass".equals(element)) {
|
if ("Stage1Mass".equals(element)) {
|
||||||
stage1Mass = Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_MASS;
|
stage1Mass = Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_MASS;
|
||||||
}
|
}
|
||||||
if ("Stage3CG".equals(element)) {
|
if ("Stage3CG".equals(element)) {
|
||||||
stage3CG = Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH;
|
stage3CG = Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH;
|
||||||
}
|
}
|
||||||
if ("Stage2CGAlone".equals(element)) {
|
if ("Stage2CGAlone".equals(element)) {
|
||||||
stage2CG = Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH;
|
stage2CG = Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH;
|
||||||
}
|
}
|
||||||
if ("Stage1CGAlone".equals(element)) {
|
if ("Stage1CGAlone".equals(element)) {
|
||||||
stage1CG = Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH;
|
stage1CG = Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (NumberFormatException nfe) {
|
catch (NumberFormatException nfe) {
|
||||||
@ -359,13 +330,13 @@ class StageHandler extends ElementHandler {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ElementHandler openElement(String element, HashMap<String, String> attributes, WarningSet warnings) {
|
public ElementHandler openElement(String element, HashMap<String, String> attributes, WarningSet warnings) {
|
||||||
if ("NoseCone".equals(element)) {
|
if (RocksimCommonConstants.NOSE_CONE.equals(element)) {
|
||||||
return new NoseConeHandler(component, warnings);
|
return new NoseConeHandler(component, warnings);
|
||||||
}
|
}
|
||||||
if ("BodyTube".equals(element)) {
|
if (RocksimCommonConstants.BODY_TUBE.equals(element)) {
|
||||||
return new BodyTubeHandler(component, warnings);
|
return new BodyTubeHandler(component, warnings);
|
||||||
}
|
}
|
||||||
if ("Transition".equals(element)) {
|
if (RocksimCommonConstants.TRANSITION.equals(element)) {
|
||||||
return new TransitionHandler(component, warnings);
|
return new TransitionHandler(component, warnings);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
package net.sf.openrocket.file.rocksim.importt;
|
package net.sf.openrocket.file.rocksim.importt;
|
||||||
|
|
||||||
import net.sf.openrocket.aerodynamics.WarningSet;
|
import net.sf.openrocket.aerodynamics.WarningSet;
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
import net.sf.openrocket.file.simplesax.ElementHandler;
|
import net.sf.openrocket.file.simplesax.ElementHandler;
|
||||||
import net.sf.openrocket.file.simplesax.PlainTextHandler;
|
import net.sf.openrocket.file.simplesax.PlainTextHandler;
|
||||||
import net.sf.openrocket.rocketcomponent.RocketComponent;
|
import net.sf.openrocket.rocketcomponent.RocketComponent;
|
||||||
@ -57,16 +58,16 @@ class StreamerHandler extends RecoveryDeviceHandler<Streamer> {
|
|||||||
super.closeElement(element, attributes, content, warnings);
|
super.closeElement(element, attributes, content, warnings);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if ("Width".equals(element)) {
|
if (RocksimCommonConstants.WIDTH.equals(element)) {
|
||||||
streamer.setStripWidth(Math.max(0, Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH));
|
streamer.setStripWidth(Math.max(0, Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH));
|
||||||
}
|
}
|
||||||
if ("Len".equals(element)) {
|
if (RocksimCommonConstants.LEN.equals(element)) {
|
||||||
streamer.setStripLength(Math.max(0, Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH));
|
streamer.setStripLength(Math.max(0, Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH));
|
||||||
}
|
}
|
||||||
if ("DragCoefficient".equals(element)) {
|
if (RocksimCommonConstants.DRAG_COEFFICIENT.equals(element)) {
|
||||||
streamer.setCD(Double.parseDouble(content));
|
streamer.setCD(Double.parseDouble(content));
|
||||||
}
|
}
|
||||||
if ("Material".equals(element)) {
|
if (RocksimCommonConstants.MATERIAL.equals(element)) {
|
||||||
setMaterialName(content);
|
setMaterialName(content);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -84,4 +85,3 @@ class StreamerHandler extends RecoveryDeviceHandler<Streamer> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,6 +4,9 @@
|
|||||||
package net.sf.openrocket.file.rocksim.importt;
|
package net.sf.openrocket.file.rocksim.importt;
|
||||||
|
|
||||||
import net.sf.openrocket.aerodynamics.WarningSet;
|
import net.sf.openrocket.aerodynamics.WarningSet;
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimFinishCode;
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimNoseConeCode;
|
||||||
import net.sf.openrocket.file.simplesax.ElementHandler;
|
import net.sf.openrocket.file.simplesax.ElementHandler;
|
||||||
import net.sf.openrocket.file.simplesax.PlainTextHandler;
|
import net.sf.openrocket.file.simplesax.PlainTextHandler;
|
||||||
import net.sf.openrocket.material.Material;
|
import net.sf.openrocket.material.Material;
|
||||||
@ -59,34 +62,34 @@ class TransitionHandler extends BaseHandler<Transition> {
|
|||||||
}
|
}
|
||||||
if ("Len".equals(element)) {
|
if ("Len".equals(element)) {
|
||||||
transition.setLength(Math.max(0, Double.parseDouble(
|
transition.setLength(Math.max(0, Double.parseDouble(
|
||||||
content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH));
|
content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH));
|
||||||
}
|
}
|
||||||
if ("FrontDia".equals(element)) {
|
if ("FrontDia".equals(element)) {
|
||||||
transition.setForeRadius(Math.max(0, Double.parseDouble(
|
transition.setForeRadius(Math.max(0, Double.parseDouble(
|
||||||
content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS));
|
content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS));
|
||||||
}
|
}
|
||||||
if ("RearDia".equals(element)) {
|
if ("RearDia".equals(element)) {
|
||||||
transition.setAftRadius(Math.max(0, Double.parseDouble(
|
transition.setAftRadius(Math.max(0, Double.parseDouble(
|
||||||
content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS));
|
content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS));
|
||||||
}
|
}
|
||||||
if ("WallThickness".equals(element)) {
|
if ("WallThickness".equals(element)) {
|
||||||
thickness = Math.max(0d, Double.parseDouble(content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH);
|
thickness = Math.max(0d, Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH);
|
||||||
}
|
}
|
||||||
if ("FrontShoulderDia".equals(element)) {
|
if ("FrontShoulderDia".equals(element)) {
|
||||||
transition.setForeShoulderRadius(Math.max(0d, Double.parseDouble(
|
transition.setForeShoulderRadius(Math.max(0d, Double.parseDouble(
|
||||||
content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS));
|
content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS));
|
||||||
}
|
}
|
||||||
if ("RearShoulderDia".equals(element)) {
|
if ("RearShoulderDia".equals(element)) {
|
||||||
transition.setAftShoulderRadius(Math.max(0d, Double.parseDouble(
|
transition.setAftShoulderRadius(Math.max(0d, Double.parseDouble(
|
||||||
content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS));
|
content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS));
|
||||||
}
|
}
|
||||||
if ("FrontShoulderLen".equals(element)) {
|
if ("FrontShoulderLen".equals(element)) {
|
||||||
transition.setForeShoulderLength(Math.max(0d, Double.parseDouble(
|
transition.setForeShoulderLength(Math.max(0d, Double.parseDouble(
|
||||||
content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH));
|
content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH));
|
||||||
}
|
}
|
||||||
if ("RearShoulderLen".equals(element)) {
|
if ("RearShoulderLen".equals(element)) {
|
||||||
transition.setAftShoulderLength(Math.max(0d, Double.parseDouble(
|
transition.setAftShoulderLength(Math.max(0d, Double.parseDouble(
|
||||||
content) / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH));
|
content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH));
|
||||||
}
|
}
|
||||||
if ("ShapeParameter".equals(element)) {
|
if ("ShapeParameter".equals(element)) {
|
||||||
if (Transition.Shape.POWER.equals(transition.getType()) ||
|
if (Transition.Shape.POWER.equals(transition.getType()) ||
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
package net.sf.openrocket.file.rocksim.importt;
|
package net.sf.openrocket.file.rocksim.importt;
|
||||||
|
|
||||||
import net.sf.openrocket.aerodynamics.WarningSet;
|
import net.sf.openrocket.aerodynamics.WarningSet;
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
import net.sf.openrocket.file.simplesax.PlainTextHandler;
|
import net.sf.openrocket.file.simplesax.PlainTextHandler;
|
||||||
import net.sf.openrocket.material.Material;
|
import net.sf.openrocket.material.Material;
|
||||||
import net.sf.openrocket.rocketcomponent.BodyTube;
|
import net.sf.openrocket.rocketcomponent.BodyTube;
|
||||||
@ -72,7 +73,7 @@ public class BodyTubeHandlerTest extends RocksimTestBase {
|
|||||||
handler.closeElement("OD", attributes, "0", warnings);
|
handler.closeElement("OD", attributes, "0", warnings);
|
||||||
Assert.assertEquals(0d, component.getInnerRadius(), 0.001);
|
Assert.assertEquals(0d, component.getInnerRadius(), 0.001);
|
||||||
handler.closeElement("OD", attributes, "75", warnings);
|
handler.closeElement("OD", attributes, "75", warnings);
|
||||||
Assert.assertEquals(75d / RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS, component.getInnerRadius(), 0.001);
|
Assert.assertEquals(75d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS, component.getInnerRadius(), 0.001);
|
||||||
handler.closeElement("OD", attributes, "foo", warnings);
|
handler.closeElement("OD", attributes, "foo", warnings);
|
||||||
Assert.assertEquals(1, warnings.size());
|
Assert.assertEquals(1, warnings.size());
|
||||||
warnings.clear();
|
warnings.clear();
|
||||||
@ -82,7 +83,7 @@ public class BodyTubeHandlerTest extends RocksimTestBase {
|
|||||||
handler.closeElement("ID", attributes, "0", warnings);
|
handler.closeElement("ID", attributes, "0", warnings);
|
||||||
Assert.assertEquals(0d, component.getInnerRadius(), 0.001);
|
Assert.assertEquals(0d, component.getInnerRadius(), 0.001);
|
||||||
handler.closeElement("ID", attributes, "75", warnings);
|
handler.closeElement("ID", attributes, "75", warnings);
|
||||||
Assert.assertEquals(75d / RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS, component.getInnerRadius(), 0.001);
|
Assert.assertEquals(75d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS, component.getInnerRadius(), 0.001);
|
||||||
handler.closeElement("ID", attributes, "foo", warnings);
|
handler.closeElement("ID", attributes, "foo", warnings);
|
||||||
Assert.assertEquals(1, warnings.size());
|
Assert.assertEquals(1, warnings.size());
|
||||||
warnings.clear();
|
warnings.clear();
|
||||||
@ -90,9 +91,9 @@ public class BodyTubeHandlerTest extends RocksimTestBase {
|
|||||||
handler.closeElement("Len", attributes, "-1", warnings);
|
handler.closeElement("Len", attributes, "-1", warnings);
|
||||||
Assert.assertEquals(0d, component.getLength(), 0.001);
|
Assert.assertEquals(0d, component.getLength(), 0.001);
|
||||||
handler.closeElement("Len", attributes, "10", warnings);
|
handler.closeElement("Len", attributes, "10", warnings);
|
||||||
Assert.assertEquals(10d / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH, component.getLength(), 0.001);
|
Assert.assertEquals(10d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH, component.getLength(), 0.001);
|
||||||
handler.closeElement("Len", attributes, "10.0", warnings);
|
handler.closeElement("Len", attributes, "10.0", warnings);
|
||||||
Assert.assertEquals(10d / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH, component.getLength(), 0.001);
|
Assert.assertEquals(10d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH, component.getLength(), 0.001);
|
||||||
handler.closeElement("Len", attributes, "foo", warnings);
|
handler.closeElement("Len", attributes, "foo", warnings);
|
||||||
Assert.assertEquals(1, warnings.size());
|
Assert.assertEquals(1, warnings.size());
|
||||||
warnings.clear();
|
warnings.clear();
|
||||||
@ -105,11 +106,11 @@ public class BodyTubeHandlerTest extends RocksimTestBase {
|
|||||||
Assert.assertFalse(component.isMotorMount());
|
Assert.assertFalse(component.isMotorMount());
|
||||||
|
|
||||||
handler.closeElement("EngineOverhang", attributes, "-1", warnings);
|
handler.closeElement("EngineOverhang", attributes, "-1", warnings);
|
||||||
Assert.assertEquals(-1d/RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH, component.getMotorOverhang(), 0.001);
|
Assert.assertEquals(-1d/ RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH, component.getMotorOverhang(), 0.001);
|
||||||
handler.closeElement("EngineOverhang", attributes, "10", warnings);
|
handler.closeElement("EngineOverhang", attributes, "10", warnings);
|
||||||
Assert.assertEquals(10d / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH, component.getMotorOverhang(), 0.001);
|
Assert.assertEquals(10d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH, component.getMotorOverhang(), 0.001);
|
||||||
handler.closeElement("EngineOverhang", attributes, "10.0", warnings);
|
handler.closeElement("EngineOverhang", attributes, "10.0", warnings);
|
||||||
Assert.assertEquals(10d / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH, component.getMotorOverhang(), 0.001);
|
Assert.assertEquals(10d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH, component.getMotorOverhang(), 0.001);
|
||||||
handler.closeElement("EngineOverhang", attributes, "foo", warnings);
|
handler.closeElement("EngineOverhang", attributes, "foo", warnings);
|
||||||
Assert.assertEquals(1, warnings.size());
|
Assert.assertEquals(1, warnings.size());
|
||||||
warnings.clear();
|
warnings.clear();
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
package net.sf.openrocket.file.rocksim.importt;
|
package net.sf.openrocket.file.rocksim.importt;
|
||||||
|
|
||||||
import net.sf.openrocket.aerodynamics.WarningSet;
|
import net.sf.openrocket.aerodynamics.WarningSet;
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
import net.sf.openrocket.file.simplesax.PlainTextHandler;
|
import net.sf.openrocket.file.simplesax.PlainTextHandler;
|
||||||
import net.sf.openrocket.material.Material;
|
import net.sf.openrocket.material.Material;
|
||||||
import net.sf.openrocket.rocketcomponent.BodyTube;
|
import net.sf.openrocket.rocketcomponent.BodyTube;
|
||||||
@ -71,7 +72,7 @@ public class InnerBodyTubeHandlerTest extends RocksimTestBase {
|
|||||||
handler.closeElement("OD", attributes, "0", warnings);
|
handler.closeElement("OD", attributes, "0", warnings);
|
||||||
Assert.assertEquals(0d, component.getInnerRadius(), 0.001);
|
Assert.assertEquals(0d, component.getInnerRadius(), 0.001);
|
||||||
handler.closeElement("OD", attributes, "75", warnings);
|
handler.closeElement("OD", attributes, "75", warnings);
|
||||||
Assert.assertEquals(75d / RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS, component.getInnerRadius(), 0.001);
|
Assert.assertEquals(75d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS, component.getInnerRadius(), 0.001);
|
||||||
handler.closeElement("OD", attributes, "foo", warnings);
|
handler.closeElement("OD", attributes, "foo", warnings);
|
||||||
Assert.assertEquals(1, warnings.size());
|
Assert.assertEquals(1, warnings.size());
|
||||||
warnings.clear();
|
warnings.clear();
|
||||||
@ -81,7 +82,7 @@ public class InnerBodyTubeHandlerTest extends RocksimTestBase {
|
|||||||
handler.closeElement("ID", attributes, "0", warnings);
|
handler.closeElement("ID", attributes, "0", warnings);
|
||||||
Assert.assertEquals(0d, component.getInnerRadius(), 0.001);
|
Assert.assertEquals(0d, component.getInnerRadius(), 0.001);
|
||||||
handler.closeElement("ID", attributes, "75", warnings);
|
handler.closeElement("ID", attributes, "75", warnings);
|
||||||
Assert.assertEquals(75d / RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS, component.getInnerRadius(), 0.001);
|
Assert.assertEquals(75d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS, component.getInnerRadius(), 0.001);
|
||||||
handler.closeElement("ID", attributes, "foo", warnings);
|
handler.closeElement("ID", attributes, "foo", warnings);
|
||||||
Assert.assertEquals(1, warnings.size());
|
Assert.assertEquals(1, warnings.size());
|
||||||
warnings.clear();
|
warnings.clear();
|
||||||
@ -89,9 +90,9 @@ public class InnerBodyTubeHandlerTest extends RocksimTestBase {
|
|||||||
handler.closeElement("Len", attributes, "-1", warnings);
|
handler.closeElement("Len", attributes, "-1", warnings);
|
||||||
Assert.assertEquals(0d, component.getLength(), 0.001);
|
Assert.assertEquals(0d, component.getLength(), 0.001);
|
||||||
handler.closeElement("Len", attributes, "10", warnings);
|
handler.closeElement("Len", attributes, "10", warnings);
|
||||||
Assert.assertEquals(10d / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH, component.getLength(), 0.001);
|
Assert.assertEquals(10d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH, component.getLength(), 0.001);
|
||||||
handler.closeElement("Len", attributes, "10.0", warnings);
|
handler.closeElement("Len", attributes, "10.0", warnings);
|
||||||
Assert.assertEquals(10d / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH, component.getLength(), 0.001);
|
Assert.assertEquals(10d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH, component.getLength(), 0.001);
|
||||||
handler.closeElement("Len", attributes, "foo", warnings);
|
handler.closeElement("Len", attributes, "foo", warnings);
|
||||||
Assert.assertEquals(1, warnings.size());
|
Assert.assertEquals(1, warnings.size());
|
||||||
warnings.clear();
|
warnings.clear();
|
||||||
@ -104,11 +105,11 @@ public class InnerBodyTubeHandlerTest extends RocksimTestBase {
|
|||||||
Assert.assertFalse(component.isMotorMount());
|
Assert.assertFalse(component.isMotorMount());
|
||||||
|
|
||||||
handler.closeElement("EngineOverhang", attributes, "-1", warnings);
|
handler.closeElement("EngineOverhang", attributes, "-1", warnings);
|
||||||
Assert.assertEquals(-1d/RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH, component.getMotorOverhang(), 0.001);
|
Assert.assertEquals(-1d/ RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH, component.getMotorOverhang(), 0.001);
|
||||||
handler.closeElement("EngineOverhang", attributes, "10", warnings);
|
handler.closeElement("EngineOverhang", attributes, "10", warnings);
|
||||||
Assert.assertEquals(10d / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH, component.getMotorOverhang(), 0.001);
|
Assert.assertEquals(10d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH, component.getMotorOverhang(), 0.001);
|
||||||
handler.closeElement("EngineOverhang", attributes, "10.0", warnings);
|
handler.closeElement("EngineOverhang", attributes, "10.0", warnings);
|
||||||
Assert.assertEquals(10d / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH, component.getMotorOverhang(), 0.001);
|
Assert.assertEquals(10d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH, component.getMotorOverhang(), 0.001);
|
||||||
handler.closeElement("EngineOverhang", attributes, "foo", warnings);
|
handler.closeElement("EngineOverhang", attributes, "foo", warnings);
|
||||||
Assert.assertEquals(1, warnings.size());
|
Assert.assertEquals(1, warnings.size());
|
||||||
warnings.clear();
|
warnings.clear();
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
package net.sf.openrocket.file.rocksim.importt;
|
package net.sf.openrocket.file.rocksim.importt;
|
||||||
|
|
||||||
import net.sf.openrocket.aerodynamics.WarningSet;
|
import net.sf.openrocket.aerodynamics.WarningSet;
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
import net.sf.openrocket.file.simplesax.PlainTextHandler;
|
import net.sf.openrocket.file.simplesax.PlainTextHandler;
|
||||||
import net.sf.openrocket.material.Material;
|
import net.sf.openrocket.material.Material;
|
||||||
import net.sf.openrocket.rocketcomponent.BodyTube;
|
import net.sf.openrocket.rocketcomponent.BodyTube;
|
||||||
@ -71,7 +72,7 @@ public class LaunchLugHandlerTest extends RocksimTestBase {
|
|||||||
handler.closeElement("OD", attributes, "0", warnings);
|
handler.closeElement("OD", attributes, "0", warnings);
|
||||||
Assert.assertEquals(0d, component.getOuterRadius(), 0.001);
|
Assert.assertEquals(0d, component.getOuterRadius(), 0.001);
|
||||||
handler.closeElement("OD", attributes, "75", warnings);
|
handler.closeElement("OD", attributes, "75", warnings);
|
||||||
Assert.assertEquals(75d / RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS, component.getOuterRadius(), 0.001);
|
Assert.assertEquals(75d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS, component.getOuterRadius(), 0.001);
|
||||||
handler.closeElement("OD", attributes, "foo", warnings);
|
handler.closeElement("OD", attributes, "foo", warnings);
|
||||||
Assert.assertEquals(1, warnings.size());
|
Assert.assertEquals(1, warnings.size());
|
||||||
warnings.clear();
|
warnings.clear();
|
||||||
@ -81,7 +82,7 @@ public class LaunchLugHandlerTest extends RocksimTestBase {
|
|||||||
handler.closeElement("ID", attributes, "0", warnings);
|
handler.closeElement("ID", attributes, "0", warnings);
|
||||||
Assert.assertEquals(0d, component.getInnerRadius(), 0.001);
|
Assert.assertEquals(0d, component.getInnerRadius(), 0.001);
|
||||||
handler.closeElement("ID", attributes, "75", warnings);
|
handler.closeElement("ID", attributes, "75", warnings);
|
||||||
Assert.assertEquals(75d / RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS, component.getInnerRadius(), 0.001);
|
Assert.assertEquals(75d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS, component.getInnerRadius(), 0.001);
|
||||||
handler.closeElement("ID", attributes, "foo", warnings);
|
handler.closeElement("ID", attributes, "foo", warnings);
|
||||||
Assert.assertEquals(1, warnings.size());
|
Assert.assertEquals(1, warnings.size());
|
||||||
warnings.clear();
|
warnings.clear();
|
||||||
@ -89,9 +90,9 @@ public class LaunchLugHandlerTest extends RocksimTestBase {
|
|||||||
handler.closeElement("Len", attributes, "-1", warnings);
|
handler.closeElement("Len", attributes, "-1", warnings);
|
||||||
Assert.assertEquals(0d, component.getLength(), 0.001);
|
Assert.assertEquals(0d, component.getLength(), 0.001);
|
||||||
handler.closeElement("Len", attributes, "10", warnings);
|
handler.closeElement("Len", attributes, "10", warnings);
|
||||||
Assert.assertEquals(10d / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH, component.getLength(), 0.001);
|
Assert.assertEquals(10d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH, component.getLength(), 0.001);
|
||||||
handler.closeElement("Len", attributes, "10.0", warnings);
|
handler.closeElement("Len", attributes, "10.0", warnings);
|
||||||
Assert.assertEquals(10d / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH, component.getLength(), 0.001);
|
Assert.assertEquals(10d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH, component.getLength(), 0.001);
|
||||||
handler.closeElement("Len", attributes, "foo", warnings);
|
handler.closeElement("Len", attributes, "foo", warnings);
|
||||||
Assert.assertEquals(1, warnings.size());
|
Assert.assertEquals(1, warnings.size());
|
||||||
warnings.clear();
|
warnings.clear();
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
package net.sf.openrocket.file.rocksim.importt;
|
package net.sf.openrocket.file.rocksim.importt;
|
||||||
|
|
||||||
import net.sf.openrocket.aerodynamics.WarningSet;
|
import net.sf.openrocket.aerodynamics.WarningSet;
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
import net.sf.openrocket.file.simplesax.PlainTextHandler;
|
import net.sf.openrocket.file.simplesax.PlainTextHandler;
|
||||||
import net.sf.openrocket.material.Material;
|
import net.sf.openrocket.material.Material;
|
||||||
import net.sf.openrocket.rocketcomponent.BodyTube;
|
import net.sf.openrocket.rocketcomponent.BodyTube;
|
||||||
@ -69,10 +70,10 @@ public class MassObjectHandlerTest extends RocksimTestBase {
|
|||||||
handler.closeElement("Len", attributes, "-1", warnings);
|
handler.closeElement("Len", attributes, "-1", warnings);
|
||||||
Assert.assertEquals(0d, component.getLength(), 0.001);
|
Assert.assertEquals(0d, component.getLength(), 0.001);
|
||||||
handler.closeElement("Len", attributes, "10", warnings);
|
handler.closeElement("Len", attributes, "10", warnings);
|
||||||
Assert.assertEquals(10d / (MassObjectHandler.MASS_LEN_FUDGE_FACTOR * RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH)
|
Assert.assertEquals(10d / (MassObjectHandler.MASS_LEN_FUDGE_FACTOR * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH)
|
||||||
, component.getLength(), 0.001);
|
, component.getLength(), 0.001);
|
||||||
handler.closeElement("Len", attributes, "10.0", warnings);
|
handler.closeElement("Len", attributes, "10.0", warnings);
|
||||||
Assert.assertEquals(10d / (MassObjectHandler.MASS_LEN_FUDGE_FACTOR * RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH)
|
Assert.assertEquals(10d / (MassObjectHandler.MASS_LEN_FUDGE_FACTOR * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH)
|
||||||
, component.getLength(), 0.001);
|
, component.getLength(), 0.001);
|
||||||
handler.closeElement("Len", attributes, "foo", warnings);
|
handler.closeElement("Len", attributes, "foo", warnings);
|
||||||
Assert.assertEquals(1, warnings.size());
|
Assert.assertEquals(1, warnings.size());
|
||||||
@ -81,7 +82,7 @@ public class MassObjectHandlerTest extends RocksimTestBase {
|
|||||||
handler.closeElement("KnownMass", attributes, "-1", warnings);
|
handler.closeElement("KnownMass", attributes, "-1", warnings);
|
||||||
Assert.assertEquals(0d, component.getComponentMass(), 0.001);
|
Assert.assertEquals(0d, component.getComponentMass(), 0.001);
|
||||||
handler.closeElement("KnownMass", attributes, "100", warnings);
|
handler.closeElement("KnownMass", attributes, "100", warnings);
|
||||||
Assert.assertEquals(100d / RocksimHandler.ROCKSIM_TO_OPENROCKET_MASS, component.getComponentMass(), 0.001);
|
Assert.assertEquals(100d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_MASS, component.getComponentMass(), 0.001);
|
||||||
handler.closeElement("KnownMass", attributes, "foo", warnings);
|
handler.closeElement("KnownMass", attributes, "foo", warnings);
|
||||||
Assert.assertEquals(1, warnings.size());
|
Assert.assertEquals(1, warnings.size());
|
||||||
warnings.clear();
|
warnings.clear();
|
||||||
|
@ -4,6 +4,8 @@
|
|||||||
package net.sf.openrocket.file.rocksim.importt;
|
package net.sf.openrocket.file.rocksim.importt;
|
||||||
|
|
||||||
import net.sf.openrocket.aerodynamics.WarningSet;
|
import net.sf.openrocket.aerodynamics.WarningSet;
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimNoseConeCode;
|
||||||
import net.sf.openrocket.file.simplesax.PlainTextHandler;
|
import net.sf.openrocket.file.simplesax.PlainTextHandler;
|
||||||
import net.sf.openrocket.material.Material;
|
import net.sf.openrocket.material.Material;
|
||||||
import net.sf.openrocket.rocketcomponent.ExternalComponent;
|
import net.sf.openrocket.rocketcomponent.ExternalComponent;
|
||||||
@ -84,9 +86,9 @@ public class NoseConeHandlerTest extends RocksimTestBase {
|
|||||||
handler.closeElement("Len", attributes, "-1", warnings);
|
handler.closeElement("Len", attributes, "-1", warnings);
|
||||||
Assert.assertEquals(0d, component.getLength(), 0.001);
|
Assert.assertEquals(0d, component.getLength(), 0.001);
|
||||||
handler.closeElement("Len", attributes, "10", warnings);
|
handler.closeElement("Len", attributes, "10", warnings);
|
||||||
Assert.assertEquals(10d / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH, component.getLength(), 0.001);
|
Assert.assertEquals(10d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH, component.getLength(), 0.001);
|
||||||
handler.closeElement("Len", attributes, "10.0", warnings);
|
handler.closeElement("Len", attributes, "10.0", warnings);
|
||||||
Assert.assertEquals(10d / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH, component.getLength(), 0.001);
|
Assert.assertEquals(10d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH, component.getLength(), 0.001);
|
||||||
handler.closeElement("Len", attributes, "foo", warnings);
|
handler.closeElement("Len", attributes, "foo", warnings);
|
||||||
Assert.assertEquals(1, warnings.size());
|
Assert.assertEquals(1, warnings.size());
|
||||||
warnings.clear();
|
warnings.clear();
|
||||||
@ -94,7 +96,7 @@ public class NoseConeHandlerTest extends RocksimTestBase {
|
|||||||
handler.closeElement("BaseDia", attributes, "-1", warnings);
|
handler.closeElement("BaseDia", attributes, "-1", warnings);
|
||||||
Assert.assertEquals(0d, component.getAftRadius(), 0.001);
|
Assert.assertEquals(0d, component.getAftRadius(), 0.001);
|
||||||
handler.closeElement("BaseDia", attributes, "100", warnings);
|
handler.closeElement("BaseDia", attributes, "100", warnings);
|
||||||
Assert.assertEquals(100d / RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS, component.getAftRadius(), 0.001);
|
Assert.assertEquals(100d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS, component.getAftRadius(), 0.001);
|
||||||
handler.closeElement("BaseDia", attributes, "foo", warnings);
|
handler.closeElement("BaseDia", attributes, "foo", warnings);
|
||||||
Assert.assertEquals(1, warnings.size());
|
Assert.assertEquals(1, warnings.size());
|
||||||
warnings.clear();
|
warnings.clear();
|
||||||
@ -125,15 +127,15 @@ public class NoseConeHandlerTest extends RocksimTestBase {
|
|||||||
Assert.assertEquals(0d, component.getAftShoulderThickness(), 0.001);
|
Assert.assertEquals(0d, component.getAftShoulderThickness(), 0.001);
|
||||||
handler.closeElement("WallThickness", attributes, "1.1", warnings);
|
handler.closeElement("WallThickness", attributes, "1.1", warnings);
|
||||||
handler.endHandler("Transition", attributes, null, warnings);
|
handler.endHandler("Transition", attributes, null, warnings);
|
||||||
Assert.assertEquals(1.1d/RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH, component.getThickness(), 0.001);
|
Assert.assertEquals(1.1d/ RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH, component.getThickness(), 0.001);
|
||||||
Assert.assertEquals(1.1d/RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH, component.getAftShoulderThickness(), 0.001);
|
Assert.assertEquals(1.1d/ RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH, component.getAftShoulderThickness(), 0.001);
|
||||||
|
|
||||||
handler.closeElement("ShoulderLen", attributes, "-1", warnings);
|
handler.closeElement("ShoulderLen", attributes, "-1", warnings);
|
||||||
Assert.assertEquals(0d, component.getAftShoulderLength(), 0.001);
|
Assert.assertEquals(0d, component.getAftShoulderLength(), 0.001);
|
||||||
handler.closeElement("ShoulderLen", attributes, "10", warnings);
|
handler.closeElement("ShoulderLen", attributes, "10", warnings);
|
||||||
Assert.assertEquals(10d / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH, component.getAftShoulderLength(), 0.001);
|
Assert.assertEquals(10d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH, component.getAftShoulderLength(), 0.001);
|
||||||
handler.closeElement("ShoulderLen", attributes, "10.0", warnings);
|
handler.closeElement("ShoulderLen", attributes, "10.0", warnings);
|
||||||
Assert.assertEquals(10d / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH, component.getAftShoulderLength(), 0.001);
|
Assert.assertEquals(10d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH, component.getAftShoulderLength(), 0.001);
|
||||||
handler.closeElement("ShoulderLen", attributes, "foo", warnings);
|
handler.closeElement("ShoulderLen", attributes, "foo", warnings);
|
||||||
Assert.assertEquals(1, warnings.size());
|
Assert.assertEquals(1, warnings.size());
|
||||||
warnings.clear();
|
warnings.clear();
|
||||||
@ -141,7 +143,7 @@ public class NoseConeHandlerTest extends RocksimTestBase {
|
|||||||
handler.closeElement("ShoulderOD", attributes, "-1", warnings);
|
handler.closeElement("ShoulderOD", attributes, "-1", warnings);
|
||||||
Assert.assertEquals(0d, component.getAftShoulderRadius(), 0.001);
|
Assert.assertEquals(0d, component.getAftShoulderRadius(), 0.001);
|
||||||
handler.closeElement("ShoulderOD", attributes, "100", warnings);
|
handler.closeElement("ShoulderOD", attributes, "100", warnings);
|
||||||
Assert.assertEquals(100d / RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS, component.getAftShoulderRadius(), 0.001);
|
Assert.assertEquals(100d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS, component.getAftShoulderRadius(), 0.001);
|
||||||
handler.closeElement("ShoulderOD", attributes, "foo", warnings);
|
handler.closeElement("ShoulderOD", attributes, "foo", warnings);
|
||||||
Assert.assertEquals(1, warnings.size());
|
Assert.assertEquals(1, warnings.size());
|
||||||
warnings.clear();
|
warnings.clear();
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
package net.sf.openrocket.file.rocksim.importt;
|
package net.sf.openrocket.file.rocksim.importt;
|
||||||
|
|
||||||
import net.sf.openrocket.aerodynamics.WarningSet;
|
import net.sf.openrocket.aerodynamics.WarningSet;
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
import net.sf.openrocket.file.simplesax.PlainTextHandler;
|
import net.sf.openrocket.file.simplesax.PlainTextHandler;
|
||||||
import net.sf.openrocket.material.Material;
|
import net.sf.openrocket.material.Material;
|
||||||
import net.sf.openrocket.rocketcomponent.BodyTube;
|
import net.sf.openrocket.rocketcomponent.BodyTube;
|
||||||
@ -54,9 +55,9 @@ public class ParachuteHandlerTest extends RocksimTestBase {
|
|||||||
warnings.clear();
|
warnings.clear();
|
||||||
|
|
||||||
handler.closeElement("Dia", attributes, "-1", warnings);
|
handler.closeElement("Dia", attributes, "-1", warnings);
|
||||||
Assert.assertEquals(-1d / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH, component.getDiameter(), 0.001);
|
Assert.assertEquals(-1d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH, component.getDiameter(), 0.001);
|
||||||
handler.closeElement("Dia", attributes, "10", warnings);
|
handler.closeElement("Dia", attributes, "10", warnings);
|
||||||
Assert.assertEquals(10d / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH, component.getDiameter(), 0.001);
|
Assert.assertEquals(10d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH, component.getDiameter(), 0.001);
|
||||||
handler.closeElement("Dia", attributes, "foo", warnings);
|
handler.closeElement("Dia", attributes, "foo", warnings);
|
||||||
Assert.assertEquals(1, warnings.size());
|
Assert.assertEquals(1, warnings.size());
|
||||||
warnings.clear();
|
warnings.clear();
|
||||||
@ -72,7 +73,7 @@ public class ParachuteHandlerTest extends RocksimTestBase {
|
|||||||
handler.closeElement("ShroudLineLen", attributes, "-1", warnings);
|
handler.closeElement("ShroudLineLen", attributes, "-1", warnings);
|
||||||
Assert.assertEquals(0d, component.getLineLength(), 0.001);
|
Assert.assertEquals(0d, component.getLineLength(), 0.001);
|
||||||
handler.closeElement("ShroudLineLen", attributes, "10", warnings);
|
handler.closeElement("ShroudLineLen", attributes, "10", warnings);
|
||||||
Assert.assertEquals(10d / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH, component.getLineLength(), 0.001);
|
Assert.assertEquals(10d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH, component.getLineLength(), 0.001);
|
||||||
handler.closeElement("ShroudLineLen", attributes, "foo", warnings);
|
handler.closeElement("ShroudLineLen", attributes, "foo", warnings);
|
||||||
Assert.assertEquals(1, warnings.size());
|
Assert.assertEquals(1, warnings.size());
|
||||||
warnings.clear();
|
warnings.clear();
|
||||||
@ -152,12 +153,12 @@ public class ParachuteHandlerTest extends RocksimTestBase {
|
|||||||
handler.closeElement("LocationMode", attributes, "1", warnings);
|
handler.closeElement("LocationMode", attributes, "1", warnings);
|
||||||
handler.endHandler("Parachute", attributes, null, warnings);
|
handler.endHandler("Parachute", attributes, null, warnings);
|
||||||
Assert.assertEquals(RocketComponent.Position.ABSOLUTE, component.getRelativePosition());
|
Assert.assertEquals(RocketComponent.Position.ABSOLUTE, component.getRelativePosition());
|
||||||
Assert.assertEquals(component.getPositionValue(), -10d / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH, 0.001);
|
Assert.assertEquals(component.getPositionValue(), -10d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH, 0.001);
|
||||||
|
|
||||||
handler.closeElement("Xb", attributes, "-10", warnings);
|
handler.closeElement("Xb", attributes, "-10", warnings);
|
||||||
handler.closeElement("LocationMode", attributes, "2", warnings);
|
handler.closeElement("LocationMode", attributes, "2", warnings);
|
||||||
handler.endHandler("Parachute", attributes, null, warnings);
|
handler.endHandler("Parachute", attributes, null, warnings);
|
||||||
Assert.assertEquals(RocketComponent.Position.BOTTOM, component.getRelativePosition());
|
Assert.assertEquals(RocketComponent.Position.BOTTOM, component.getRelativePosition());
|
||||||
Assert.assertEquals(component.getPositionValue(), 10d / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH, 0.001);
|
Assert.assertEquals(component.getPositionValue(), 10d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH, 0.001);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,8 @@
|
|||||||
package net.sf.openrocket.file.rocksim.importt;
|
package net.sf.openrocket.file.rocksim.importt;
|
||||||
|
|
||||||
import net.sf.openrocket.aerodynamics.WarningSet;
|
import net.sf.openrocket.aerodynamics.WarningSet;
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimDensityType;
|
||||||
import net.sf.openrocket.file.simplesax.PlainTextHandler;
|
import net.sf.openrocket.file.simplesax.PlainTextHandler;
|
||||||
import net.sf.openrocket.material.Material;
|
import net.sf.openrocket.material.Material;
|
||||||
import net.sf.openrocket.rocketcomponent.BodyTube;
|
import net.sf.openrocket.rocketcomponent.BodyTube;
|
||||||
@ -44,9 +46,9 @@ public class StreamerHandlerTest extends RocksimTestBase {
|
|||||||
WarningSet warnings = new WarningSet();
|
WarningSet warnings = new WarningSet();
|
||||||
|
|
||||||
handler.closeElement("Width", attributes, "0", warnings);
|
handler.closeElement("Width", attributes, "0", warnings);
|
||||||
Assert.assertEquals(0d/ RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH, component.getStripWidth(), 0.001);
|
Assert.assertEquals(0d/ RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH, component.getStripWidth(), 0.001);
|
||||||
handler.closeElement("Width", attributes, "10", warnings);
|
handler.closeElement("Width", attributes, "10", warnings);
|
||||||
Assert.assertEquals(10d/ RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH, component.getStripWidth(), 0.001);
|
Assert.assertEquals(10d/ RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH, component.getStripWidth(), 0.001);
|
||||||
handler.closeElement("Width", attributes, "foo", warnings);
|
handler.closeElement("Width", attributes, "foo", warnings);
|
||||||
Assert.assertEquals(1, warnings.size());
|
Assert.assertEquals(1, warnings.size());
|
||||||
warnings.clear();
|
warnings.clear();
|
||||||
@ -54,9 +56,9 @@ public class StreamerHandlerTest extends RocksimTestBase {
|
|||||||
handler.closeElement("Len", attributes, "-1", warnings);
|
handler.closeElement("Len", attributes, "-1", warnings);
|
||||||
Assert.assertEquals(0d, component.getStripLength(), 0.001);
|
Assert.assertEquals(0d, component.getStripLength(), 0.001);
|
||||||
handler.closeElement("Len", attributes, "10", warnings);
|
handler.closeElement("Len", attributes, "10", warnings);
|
||||||
Assert.assertEquals(10d / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH, component.getStripLength(), 0.001);
|
Assert.assertEquals(10d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH, component.getStripLength(), 0.001);
|
||||||
handler.closeElement("Len", attributes, "10.0", warnings);
|
handler.closeElement("Len", attributes, "10.0", warnings);
|
||||||
Assert.assertEquals(10d / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH, component.getStripLength(), 0.001);
|
Assert.assertEquals(10d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH, component.getStripLength(), 0.001);
|
||||||
handler.closeElement("Len", attributes, "foo", warnings);
|
handler.closeElement("Len", attributes, "foo", warnings);
|
||||||
Assert.assertEquals(1, warnings.size());
|
Assert.assertEquals(1, warnings.size());
|
||||||
warnings.clear();
|
warnings.clear();
|
||||||
@ -147,13 +149,13 @@ public class StreamerHandlerTest extends RocksimTestBase {
|
|||||||
handler.closeElement("LocationMode", attributes, "1", warnings);
|
handler.closeElement("LocationMode", attributes, "1", warnings);
|
||||||
handler.endHandler("Streamer", attributes, null, warnings);
|
handler.endHandler("Streamer", attributes, null, warnings);
|
||||||
Assert.assertEquals(RocketComponent.Position.ABSOLUTE, component.getRelativePosition());
|
Assert.assertEquals(RocketComponent.Position.ABSOLUTE, component.getRelativePosition());
|
||||||
Assert.assertEquals(component.getPositionValue(), -10d/RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH, 0.001);
|
Assert.assertEquals(component.getPositionValue(), -10d/ RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH, 0.001);
|
||||||
|
|
||||||
handler.closeElement("Xb", attributes, "-10", warnings);
|
handler.closeElement("Xb", attributes, "-10", warnings);
|
||||||
handler.closeElement("LocationMode", attributes, "2", warnings);
|
handler.closeElement("LocationMode", attributes, "2", warnings);
|
||||||
handler.endHandler("Streamer", attributes, null, warnings);
|
handler.endHandler("Streamer", attributes, null, warnings);
|
||||||
Assert.assertEquals(RocketComponent.Position.BOTTOM, component.getRelativePosition());
|
Assert.assertEquals(RocketComponent.Position.BOTTOM, component.getRelativePosition());
|
||||||
Assert.assertEquals(component.getPositionValue(), 10d/ RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH, 0.001);
|
Assert.assertEquals(component.getPositionValue(), 10d/ RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH, 0.001);
|
||||||
|
|
||||||
handler.closeElement("Thickness", attributes, "0.02", warnings);
|
handler.closeElement("Thickness", attributes, "0.02", warnings);
|
||||||
Assert.assertEquals(0.01848, handler.computeDensity(RocksimDensityType.ROCKSIM_BULK, 924d), 0.001);
|
Assert.assertEquals(0.01848, handler.computeDensity(RocksimDensityType.ROCKSIM_BULK, 924d), 0.001);
|
||||||
|
@ -4,6 +4,8 @@
|
|||||||
package net.sf.openrocket.file.rocksim.importt;
|
package net.sf.openrocket.file.rocksim.importt;
|
||||||
|
|
||||||
import net.sf.openrocket.aerodynamics.WarningSet;
|
import net.sf.openrocket.aerodynamics.WarningSet;
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
|
||||||
|
import net.sf.openrocket.file.rocksim.RocksimNoseConeCode;
|
||||||
import net.sf.openrocket.file.simplesax.PlainTextHandler;
|
import net.sf.openrocket.file.simplesax.PlainTextHandler;
|
||||||
import net.sf.openrocket.material.Material;
|
import net.sf.openrocket.material.Material;
|
||||||
import net.sf.openrocket.rocketcomponent.ExternalComponent;
|
import net.sf.openrocket.rocketcomponent.ExternalComponent;
|
||||||
@ -79,9 +81,9 @@ public class TransitionHandlerTest extends RocksimTestBase {
|
|||||||
handler.closeElement("Len", attributes, "-1", warnings);
|
handler.closeElement("Len", attributes, "-1", warnings);
|
||||||
Assert.assertEquals(0d, component.getLength(), 0.001);
|
Assert.assertEquals(0d, component.getLength(), 0.001);
|
||||||
handler.closeElement("Len", attributes, "10", warnings);
|
handler.closeElement("Len", attributes, "10", warnings);
|
||||||
Assert.assertEquals(10d / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH, component.getLength(), 0.001);
|
Assert.assertEquals(10d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH, component.getLength(), 0.001);
|
||||||
handler.closeElement("Len", attributes, "10.0", warnings);
|
handler.closeElement("Len", attributes, "10.0", warnings);
|
||||||
Assert.assertEquals(10d / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH, component.getLength(), 0.001);
|
Assert.assertEquals(10d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH, component.getLength(), 0.001);
|
||||||
handler.closeElement("Len", attributes, "foo", warnings);
|
handler.closeElement("Len", attributes, "foo", warnings);
|
||||||
Assert.assertEquals(1, warnings.size());
|
Assert.assertEquals(1, warnings.size());
|
||||||
warnings.clear();
|
warnings.clear();
|
||||||
@ -89,7 +91,7 @@ public class TransitionHandlerTest extends RocksimTestBase {
|
|||||||
handler.closeElement("FrontDia", attributes, "-1", warnings);
|
handler.closeElement("FrontDia", attributes, "-1", warnings);
|
||||||
Assert.assertEquals(0d, component.getForeRadius(), 0.001);
|
Assert.assertEquals(0d, component.getForeRadius(), 0.001);
|
||||||
handler.closeElement("FrontDia", attributes, "100", warnings);
|
handler.closeElement("FrontDia", attributes, "100", warnings);
|
||||||
Assert.assertEquals(100d / RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS, component.getForeRadius(), 0.001);
|
Assert.assertEquals(100d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS, component.getForeRadius(), 0.001);
|
||||||
handler.closeElement("FrontDia", attributes, "foo", warnings);
|
handler.closeElement("FrontDia", attributes, "foo", warnings);
|
||||||
Assert.assertEquals(1, warnings.size());
|
Assert.assertEquals(1, warnings.size());
|
||||||
warnings.clear();
|
warnings.clear();
|
||||||
@ -97,7 +99,7 @@ public class TransitionHandlerTest extends RocksimTestBase {
|
|||||||
handler.closeElement("RearDia", attributes, "-1", warnings);
|
handler.closeElement("RearDia", attributes, "-1", warnings);
|
||||||
Assert.assertEquals(0d, component.getAftRadius(), 0.001);
|
Assert.assertEquals(0d, component.getAftRadius(), 0.001);
|
||||||
handler.closeElement("RearDia", attributes, "100", warnings);
|
handler.closeElement("RearDia", attributes, "100", warnings);
|
||||||
Assert.assertEquals(100d / RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS, component.getAftRadius(), 0.001);
|
Assert.assertEquals(100d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS, component.getAftRadius(), 0.001);
|
||||||
handler.closeElement("RearDia", attributes, "foo", warnings);
|
handler.closeElement("RearDia", attributes, "foo", warnings);
|
||||||
Assert.assertEquals(1, warnings.size());
|
Assert.assertEquals(1, warnings.size());
|
||||||
warnings.clear();
|
warnings.clear();
|
||||||
@ -131,17 +133,17 @@ public class TransitionHandlerTest extends RocksimTestBase {
|
|||||||
Assert.assertEquals(0d, component.getForeShoulderThickness(), 0.001);
|
Assert.assertEquals(0d, component.getForeShoulderThickness(), 0.001);
|
||||||
handler.closeElement("WallThickness", attributes, "1.1", warnings);
|
handler.closeElement("WallThickness", attributes, "1.1", warnings);
|
||||||
handler.endHandler("Transition", attributes, null, warnings);
|
handler.endHandler("Transition", attributes, null, warnings);
|
||||||
Assert.assertEquals(1.1d/RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH, component.getThickness(), 0.001);
|
Assert.assertEquals(1.1d/ RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH, component.getThickness(), 0.001);
|
||||||
Assert.assertEquals(1.1d/RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH, component.getAftShoulderThickness(), 0.001);
|
Assert.assertEquals(1.1d/ RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH, component.getAftShoulderThickness(), 0.001);
|
||||||
Assert.assertEquals(1.1d/RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH, component.getForeShoulderThickness(), 0.001);
|
Assert.assertEquals(1.1d/ RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH, component.getForeShoulderThickness(), 0.001);
|
||||||
|
|
||||||
|
|
||||||
handler.closeElement("FrontShoulderLen", attributes, "-1", warnings);
|
handler.closeElement("FrontShoulderLen", attributes, "-1", warnings);
|
||||||
Assert.assertEquals(0d, component.getForeShoulderLength(), 0.001);
|
Assert.assertEquals(0d, component.getForeShoulderLength(), 0.001);
|
||||||
handler.closeElement("FrontShoulderLen", attributes, "10", warnings);
|
handler.closeElement("FrontShoulderLen", attributes, "10", warnings);
|
||||||
Assert.assertEquals(10d / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH, component.getForeShoulderLength(), 0.001);
|
Assert.assertEquals(10d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH, component.getForeShoulderLength(), 0.001);
|
||||||
handler.closeElement("FrontShoulderLen", attributes, "10.0", warnings);
|
handler.closeElement("FrontShoulderLen", attributes, "10.0", warnings);
|
||||||
Assert.assertEquals(10d / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH, component.getForeShoulderLength(), 0.001);
|
Assert.assertEquals(10d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH, component.getForeShoulderLength(), 0.001);
|
||||||
handler.closeElement("FrontShoulderLen", attributes, "foo", warnings);
|
handler.closeElement("FrontShoulderLen", attributes, "foo", warnings);
|
||||||
Assert.assertEquals(1, warnings.size());
|
Assert.assertEquals(1, warnings.size());
|
||||||
warnings.clear();
|
warnings.clear();
|
||||||
@ -149,9 +151,9 @@ public class TransitionHandlerTest extends RocksimTestBase {
|
|||||||
handler.closeElement("RearShoulderLen", attributes, "-1", warnings);
|
handler.closeElement("RearShoulderLen", attributes, "-1", warnings);
|
||||||
Assert.assertEquals(0d, component.getAftShoulderLength(), 0.001);
|
Assert.assertEquals(0d, component.getAftShoulderLength(), 0.001);
|
||||||
handler.closeElement("RearShoulderLen", attributes, "10", warnings);
|
handler.closeElement("RearShoulderLen", attributes, "10", warnings);
|
||||||
Assert.assertEquals(10d / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH, component.getAftShoulderLength(), 0.001);
|
Assert.assertEquals(10d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH, component.getAftShoulderLength(), 0.001);
|
||||||
handler.closeElement("RearShoulderLen", attributes, "10.0", warnings);
|
handler.closeElement("RearShoulderLen", attributes, "10.0", warnings);
|
||||||
Assert.assertEquals(10d / RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH, component.getAftShoulderLength(), 0.001);
|
Assert.assertEquals(10d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH, component.getAftShoulderLength(), 0.001);
|
||||||
handler.closeElement("RearShoulderLen", attributes, "foo", warnings);
|
handler.closeElement("RearShoulderLen", attributes, "foo", warnings);
|
||||||
Assert.assertEquals(1, warnings.size());
|
Assert.assertEquals(1, warnings.size());
|
||||||
warnings.clear();
|
warnings.clear();
|
||||||
@ -159,7 +161,7 @@ public class TransitionHandlerTest extends RocksimTestBase {
|
|||||||
handler.closeElement("FrontShoulderDia", attributes, "-1", warnings);
|
handler.closeElement("FrontShoulderDia", attributes, "-1", warnings);
|
||||||
Assert.assertEquals(0d, component.getForeShoulderRadius(), 0.001);
|
Assert.assertEquals(0d, component.getForeShoulderRadius(), 0.001);
|
||||||
handler.closeElement("FrontShoulderDia", attributes, "100", warnings);
|
handler.closeElement("FrontShoulderDia", attributes, "100", warnings);
|
||||||
Assert.assertEquals(100d / RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS, component.getForeShoulderRadius(), 0.001);
|
Assert.assertEquals(100d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS, component.getForeShoulderRadius(), 0.001);
|
||||||
handler.closeElement("FrontShoulderDia", attributes, "foo", warnings);
|
handler.closeElement("FrontShoulderDia", attributes, "foo", warnings);
|
||||||
Assert.assertEquals(1, warnings.size());
|
Assert.assertEquals(1, warnings.size());
|
||||||
warnings.clear();
|
warnings.clear();
|
||||||
@ -167,7 +169,7 @@ public class TransitionHandlerTest extends RocksimTestBase {
|
|||||||
handler.closeElement("RearShoulderDia", attributes, "-1", warnings);
|
handler.closeElement("RearShoulderDia", attributes, "-1", warnings);
|
||||||
Assert.assertEquals(0d, component.getAftShoulderRadius(), 0.001);
|
Assert.assertEquals(0d, component.getAftShoulderRadius(), 0.001);
|
||||||
handler.closeElement("RearShoulderDia", attributes, "100", warnings);
|
handler.closeElement("RearShoulderDia", attributes, "100", warnings);
|
||||||
Assert.assertEquals(100d / RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS, component.getAftShoulderRadius(), 0.001);
|
Assert.assertEquals(100d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS, component.getAftShoulderRadius(), 0.001);
|
||||||
handler.closeElement("RearShoulderDia", attributes, "foo", warnings);
|
handler.closeElement("RearShoulderDia", attributes, "foo", warnings);
|
||||||
Assert.assertEquals(1, warnings.size());
|
Assert.assertEquals(1, warnings.size());
|
||||||
warnings.clear();
|
warnings.clear();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user