package org.geogebra.common.geogebra3D.euclidian3D.printer3D;
import org.geogebra.common.plugin.GeoClass;
/**
*
* Different formats for 3D printers
*
*/
public interface Format {
/**
*
* file extension for this format
*/
public void getExtension(StringBuilder sb);
/**
*
* script start
*/
public void getScriptStart(StringBuilder sb);
/**
*
* script end
*/
public void getScriptEnd(StringBuilder sb);
/**
*
* @param type
* object type
* @param label
* object label string when new object starts
*/
public void getObjectStart(StringBuilder sb, GeoClass type, String label);
/**
*
* start for new polyhedron
*/
public void getPolyhedronStart(StringBuilder sb);
/**
*
* end for polyhedron
*/
public void getPolyhedronEnd(StringBuilder sb);
/**
*
* start for new vertex
*/
public void getVerticesStart(StringBuilder sb);
/**
*
* @param x
* x coord
* @param y
* y coord
* @param z
* z coord vertex description
*/
public void getVertices(StringBuilder sb, double x, double y, double z);
/**
*
* separator for vertices list
*/
public void getVerticesSeparator(StringBuilder sb);
/**
*
* end for vertex
*/
public void getVerticesEnd(StringBuilder sb);
/**
*
* start for new face
*/
public void getFacesStart(StringBuilder sb);
/**
*
* @param v1
* first index
* @param v2
* second index
* @param v3
* third index face description
*/
public void getFaces(StringBuilder sb, int v1, int v2, int v3);
/**
*
* separator for faces list
*/
public void getFacesSeparator(StringBuilder sb);
/**
*
* end for face
*/
public void getFacesEnd(StringBuilder sb);
}