package org.geogebra.common.geogebra3D.euclidian3D.printer3D; import org.geogebra.common.plugin.GeoClass; /** * OpenSCAD format */ public class FormatScad implements Format { @Override public void getExtension(StringBuilder sb) { sb.append(".scad"); } @Override public void getScriptStart(StringBuilder sb) { sb.append("// Created with GeoGebra www.geogebra.org"); } @Override public void getScriptEnd(StringBuilder sb) { sb.append(""); } @Override public void getObjectStart(StringBuilder sb, GeoClass type, String label) { sb.append("\n///////////////////////\n// "); sb.append(type); sb.append(": "); sb.append(label); } @Override public void getPolyhedronStart(StringBuilder sb) { sb.append("\npolyhedron("); } @Override public void getPolyhedronEnd(StringBuilder sb) { sb.append("\nconvexity = 10);\n"); } @Override public void getVerticesStart(StringBuilder sb) { sb.append("\n points = ["); } @Override public void getVertices(StringBuilder sb, double x, double y, double z) { sb.append("\n ["); sb.append(x); sb.append(","); sb.append(y); sb.append(","); sb.append(z); sb.append("]"); } @Override public void getVerticesSeparator(StringBuilder sb) { sb.append(","); } @Override public void getVerticesEnd(StringBuilder sb) { sb.append("\n ],"); } @Override public void getFacesStart(StringBuilder sb) { sb.append("\n faces = ["); } @Override public void getFaces(StringBuilder sb, int v1, int v2, int v3) { sb.append("\n ["); sb.append(v1); sb.append(","); sb.append(v3); sb.append(","); sb.append(v2); sb.append("]"); } @Override public void getFacesSeparator(StringBuilder sb) { sb.append(","); } @Override public void getFacesEnd(StringBuilder sb) { sb.append("\n ],"); } }