# Fix .eng number format
[sw/motorsim] / src / com / billkuker / rocketry / motorsim / io / HTMLExporter.java
index 130038fbef19430c668e265e71b97924f75c9acc..9e5bccde170b956bb1d322b2637af64ed64083f6 100644 (file)
@@ -1,7 +1,5 @@
 package com.billkuker.rocketry.motorsim.io;\r
 \r
-import java.io.File;\r
-import java.io.FileOutputStream;\r
 import java.io.OutputStream;\r
 import java.io.PrintWriter;\r
 import java.lang.reflect.InvocationTargetException;\r
@@ -22,11 +20,11 @@ import org.jscience.physics.amount.Amount;
 import com.billkuker.rocketry.motorsim.Burn;\r
 import com.billkuker.rocketry.motorsim.BurnSummary;\r
 import com.billkuker.rocketry.motorsim.GraphSimplifier;\r
-import com.billkuker.rocketry.motorsim.Motor;\r
 import com.billkuker.rocketry.motorsim.RocketScience;\r
-import com.billkuker.rocketry.motorsim.motors.kuker.PVC9;\r
 \r
 public class HTMLExporter {\r
+       static final int WIDTH=400;\r
+       static final int HEIGHT=200;\r
 \r
        @SuppressWarnings("deprecation")\r
        private static String encode(String s) {\r
@@ -91,7 +89,7 @@ public class HTMLExporter {
                sb.append("<img src='");\r
                sb.append("http://chart.apis.google.com/chart?chxt=x,x,y,y"\r
                                + (y2 ? ",r,r" : "") + (x2 ? ",t,t" : "")\r
-                               + "&chs=640x240&cht=lxy&chco=3072F3");\r
+                               + "&chs="+WIDTH+"x"+HEIGHT+"&cht=lxy&chco=3072F3");\r
                sb.append("&chds=" + nf.format(xMin) + "," + nf.format(xMax) + ","\r
                                + nf.format(yMin) + "," + nf.format(yMax));\r
                sb.append("&chxr=" + "0," + nf.format(xMin) + "," + nf.format(xMax)\r
@@ -112,8 +110,9 @@ public class HTMLExporter {
                        sb.append("|5,50");\r
                if (x2)\r
                        sb.append("|7,50");\r
-               sb.append("&chtt=" + title);\r
-               sb.append("' width='640' height='240' alt='" + title + "' />");\r
+               if ( title != null )\r
+                       sb.append("&chtt=" + title);\r
+               sb.append("' width='"+WIDTH+"' height='"+HEIGHT+"' alt='" + title + "' />");\r
 \r
                return sb.toString();\r
        }\r
@@ -124,53 +123,74 @@ public class HTMLExporter {
                BurnSummary bs = new BurnSummary(b);\r
                \r
                out.println("<!--Begin motor " + b.getMotor().getName() + " HTML export from MotorSim-->");\r
-               out.print("<table class='motor'>");\r
+               out.print("<table class='motor' style='text-align: left; border: 1px solid black'>");\r
 \r
                out.print("<tr>");\r
                out.print("<th colspan='6' class='title'>" + b.getMotor().getName() + "</th>");\r
                out.print("</tr>");\r
 \r
                out.print("<tr class='summary'>");\r
+\r
                out.print("<th>Rating:</th>");\r
-               \r
                out.print("<td>" + bs.getRating() + "</td>");\r
+               \r
+               \r
+               out.print("<th>Max Pressure:</th>");\r
+               out.print("<td>"\r
+                               + RocketScience.ammountToRoundedString(bs.maxPressure())\r
+                               + "</td>");\r
+\r
+               out.print("</tr>");\r
+               \r
+               \r
+               out.print("<tr class='summary'>");\r
+               \r
                out.print("<th>Total Impulse:</th>");\r
-       \r
                out.print("<td>"\r
                                + RocketScience.ammountToRoundedString(bs.totalImpulse())\r
                                + "</td>");\r
+               \r
+               \r
                out.print("<th>Specific Impulse:</th>");\r
                out.print("<td>"\r
                                + RocketScience.ammountToRoundedString(bs.specificImpulse())\r
                                + "</td>");\r
                out.print("</tr>");\r
                \r
-               \r
                out.print("<tr class='summary'>");\r
-               out.print("<th>Max Thrust:</th>");\r
-               \r
                \r
+               out.print("<th>Max Thrust:</th>");\r
                out.print("<td>"\r
                                + RocketScience.ammountToRoundedString(bs.maxThrust())\r
                                + "</td>");\r
+               \r
+               out.print("<th>Volume Loading:</th>");\r
+               out.print("<td>"\r
+                               + (int)(bs.getVolumeLoading()*100)\r
+                               + "%</td>");\r
+               out.print("</tr>");\r
+               \r
+               out.print("<tr class='summary'>");\r
+               \r
                out.print("<th>Average Thrust:</th>");\r
-       \r
                out.print("<td>"\r
                                + RocketScience.ammountToRoundedString(bs.averageThrust())\r
                                + "</td>");\r
-               out.print("<th>Max Pressure:</th>");\r
+               out.print("<th>Fuel Mass:</th>");\r
                out.print("<td>"\r
-                               + RocketScience.ammountToRoundedString(bs.maxPressure())\r
+                               + RocketScience.ammountToRoundedString(bs.getPropellantMass())\r
                                + "</td>");\r
+\r
                out.print("</tr>");\r
+               \r
 \r
                out.print("<tr>");\r
-               out.print("<td colspan='6' class='thrust'>");\r
+               out.print("<td colspan='4' class='thrust'>");\r
                GraphSimplifier<Duration, Force> thrust = new GraphSimplifier<Duration, Force>(\r
                                b, "thrust", b.getData().keySet().iterator());\r
 \r
                out.print(toChart(SI.SECOND, SI.NEWTON, thrust, "value", thrust\r
-                               .getDomain().iterator(), "Thrust"));\r
+                               .getDomain().iterator(), null));\r
                out.print("</td>");\r
                /*\r
                out.print("<td colspan='3' class='pressure'>");\r
@@ -184,7 +204,7 @@ public class HTMLExporter {
                out.print("</td>");\r
                */\r
                out.print("</tr>");\r
-               \r
+               /*\r
                out.print("<tr>");\r
                out.print("<th colspan='3'>.ENG File</th>");\r
                out.print("<th colspan='3'>MotorSim File</th>");\r
@@ -204,7 +224,7 @@ public class HTMLExporter {
                out.print("</textarea>");\r
                out.print("</td>");\r
                out.print("</tr>");\r
-               \r
+               */\r
                out.print("</table>");\r
 \r
                out.println("\n<!--End motor " + b.getMotor().getName() + "-->");\r
@@ -212,35 +232,4 @@ public class HTMLExporter {
                out.close();\r
        }\r
 \r
-       public static void main(String args[]) throws Exception {\r
-\r
-               Motor m = new PVC9();\r
-               Burn b = new Burn(m);\r
-\r
-               File f = new File("test.html");\r
-               export(b, System.out);\r
-               export(b, new FileOutputStream(f));\r
-\r
-               /*\r
-                * \r
-                * EndBurner g = new EndBurner(); g.setLength(Amount.valueOf(70,\r
-                * SI.MILLIMETER)); g.setoD(Amount.valueOf(30, SI.MILLIMETER));\r
-                * g.setPuntDepth(Amount.valueOf(10, SI.MILLIMETER));\r
-                * g.setPuntDiameter(Amount.valueOf(10, SI.MILLIMETER));\r
-                * \r
-                * Chart<Length, Area> c = new Chart<Length, Area>(SI.MILLIMETER,\r
-                * SI.MILLIMETER.pow(2).asType(Area.class), g, "surfaceArea");\r
-                * c.setDomain(c.new IntervalDomain(Amount.valueOf(0, SI.CENTIMETER), g\r
-                * .webThickness()));\r
-                * \r
-                * GraphSimplifier<Length, Area> gs = new GraphSimplifier<Length,\r
-                * Area>(g, "surfaceArea", c.new IntervalDomain(Amount.valueOf(0,\r
-                * SI.CENTIMETER), g.webThickness()).iterator());\r
-                * \r
-                * System.out.print(toChart(SI.MILLIMETER,\r
-                * SI.MILLIMETER.pow(2).asType(Area.class), gs, "value", gs\r
-                * .getDomain().iterator(), "Area"));\r
-                */\r
-       }\r
-\r
 }\r