--- /dev/null
+package net.sf.openrocket.gui.figure3d;\r
+import java.awt.BorderLayout;\r
+\r
+import javax.swing.JFrame;\r
+import javax.swing.JPanel;\r
+\r
+import net.sf.openrocket.database.ComponentPresetDatabase;\r
+import net.sf.openrocket.database.ThrustCurveMotorSetDatabase;\r
+import net.sf.openrocket.document.OpenRocketDocument;\r
+import net.sf.openrocket.file.DatabaseMotorFinder;\r
+import net.sf.openrocket.file.openrocket.importt.OpenRocketLoader;\r
+import net.sf.openrocket.gui.main.componenttree.ComponentTree;\r
+import net.sf.openrocket.gui.scalefigure.RocketPanel;\r
+import net.sf.openrocket.gui.util.SwingPreferences;\r
+import net.sf.openrocket.l10n.ResourceBundleTranslator;\r
+import net.sf.openrocket.startup.Application;\r
+\r
+/**\r
+ * An application for quickly testing 3d figure witout all the OpenRocket user interface\r
+ * \r
+ * @author bkuker\r
+ *\r
+ */\r
+public class Quick3dMain {\r
+\r
+ /**\r
+ * @param args\r
+ */\r
+ public static void main(String[] args) throws Exception {\r
+ Application.setBaseTranslator(new ResourceBundleTranslator(\r
+ "l10n.messages"));\r
+ Application.setMotorSetDatabase(new ThrustCurveMotorSetDatabase(false) {\r
+ {\r
+ startLoading();\r
+ }\r
+\r
+ @Override\r
+ protected void loadMotors() {\r
+ }\r
+ });\r
+ Application.setPreferences(new SwingPreferences());\r
+ \r
+ // Must be done after localization is initialized\r
+ ComponentPresetDatabase componentPresetDao = new ComponentPresetDatabase() {\r
+\r
+ @Override\r
+ protected void load() {\r
+ // This test app doesn't need any presets loaded - just an empty database.\r
+ }\r
+ \r
+ };\r
+ Application.setComponentPresetDao( componentPresetDao );\r
+\r
+ OpenRocketDocument doc = new OpenRocketLoader().loadFromStream(\r
+ Quick3dMain.class.getResourceAsStream("/datafiles/examples/Clustered rocket design.ork"),\r
+ new DatabaseMotorFinder());\r
+\r
+ JFrame ff = new JFrame();\r
+ ff.setSize(1200, 400);\r
+ ff.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\r
+\r
+ RocketPanel panel;\r
+\r
+ panel = new RocketPanel(doc);\r
+\r
+ ComponentTree ct = new ComponentTree(doc);\r
+ panel.setSelectionModel(ct.getSelectionModel());\r
+\r
+ JPanel p = new JPanel();\r
+ p.setLayout(new BorderLayout());\r
+ p.add(ct, BorderLayout.WEST);\r
+ p.add(panel, BorderLayout.CENTER);\r
+ ff.setContentPane(p);\r
+ ff.setVisible(true);\r
+ }\r
+}\r