public POVConeLeafWriter(AbstractExporter exporter /*, Params params*/, Tree tree) { super(); this.exporter = exporter; this.w = exporter.getWriter(); this.tree = tree; this.povrayDeclarationPrefix = tree.getSpecies() + "_" + tree.getSeed() + "_"; }
public void doWrite() { // try { // some declarations in the POV file NumberFormat frm = FloatFormat.getInstance(); // tree scale w.println( "#declare " + povrayDeclarationPrefix + "height = " + frm.format(tree.getHeight()) + ";"); // leaf declaration if (tree.getLeafCount() != 0) writeLeafDeclaration(); // stems progress.beginPhase("writing stem objects", tree.getStemCount()); for (int level = 0; level < tree.getLevels(); level++) { w.println("#declare " + povrayDeclarationPrefix + "stems_" + level + " = union {"); POVConeStemWriter writer = new POVConeStemWriter(this, /*params,*/ level); tree.traverseTree(writer); w.println("}"); } // leaves if (tree.getLeafCount() != 0) { progress.beginPhase("writing leaf objects", tree.getLeafCount()); w.println("#declare " + povrayDeclarationPrefix + "leaves = union {"); POVConeLeafWriter lexporter = new POVConeLeafWriter(this, /*params*/ tree); tree.traverseTree(lexporter); w.println("}"); } else { // empty declaration w.println("#declare " + povrayDeclarationPrefix + "leaves = sphere {<0,0,0>,0}"); } progress.endPhase(); // all stems together w.println("#declare " + povrayDeclarationPrefix + "stems = union {"); for (int level = 0; level < tree.getLevels(); level++) { w.println(" object {" + povrayDeclarationPrefix + "stems_" + level + "}"); } w.println("}"); w.flush(); // } catch (Exception e) { // e.printStackTrace(); // System.err.println(e); // throw new ExportError(e.getMessage()); // } }
/** * Outputs the Povray code for a leaf object * * @param w The output stream */ private void writeLeafDeclaration() { double length = tree.getLeafLength(); double width = tree.getLeafWidth(); w.println("#include \"arbaro.inc\""); w.println( "#declare " + povrayDeclarationPrefix + "leaf = " + "object { Arb_leaf_" + (tree.getLeafShape().equals("0") ? "disc" : tree.getLeafShape()) + " translate " + (tree.getLeafStemLength() + 0.5) + "*y scale <" + width + "," + length + "," + width + "> }"); }
public boolean enterTree(Tree tree) { m = tree.createLeafMesh(false); return true; }
public POVConeExporter(Tree tree /*, Params params*/) { super(); this.tree = tree; // this.params = params; this.povrayDeclarationPrefix = tree.getSpecies() + "_" + tree.getSeed() + "_"; }