function uiStringTubes(meshFilename, computeTubePointsFunctionName, numTubePointsString, radiusString, tubeClosed) {
	let imageFolder = CindyJS.getBaseDir() + "images/cindyprint/";
	let tubeClosedString = "true";
	if (!tubeClosed) {
		tubeClosedString = "false";
	}
	return "<table>" +
		"    <tr><th>Cylinder quality</th><th><image src='" + imageFolder + "CylinderLowRes.png'/></th><th><div class=\"slidecontainer\"><input type=\"range\" min=\"8\" max=\"64\" value=\"16\" class=\"slider\" id=\"cylinderQuality\" oninput=\"cindyPrintUpdateCylinderQuality()\"></th><th><image src='" + imageFolder + "CylinderHighRes.png'/></th></tr>" +
		"    <tr><th>Line subdivisions</th><th><image src='" + imageFolder + "LineSubdivisionLow.png'/></th><th><div class=\"slidecontainer\"><input type=\"range\" min=\"1\" max=\"100\" value=\"50\" class=\"slider\" id=\"lineSubdivisions\" oninput=\"cindyPrintUpdateLineSubdivisions()\"></th><th><image src='" + imageFolder + "LineSubdivisionHigh.png'/></th></tr>" +
		"    <tr><th>Radius factor</th><th><image src='" + imageFolder + "TubeThin.png'/></th><th><div class=\"slidecontainer\"><input type=\"range\" min=\"1\" max=\"100\" value=\"50\" class=\"slider\" id=\"radiusFactor\" oninput=\"cindyPrintUpdateRadiusFactor()\"></th><th><image src='" + imageFolder + "TubeThick.png'/></th></tr>" +
		"    <tr><th>Model scale</th><th><image src='" + imageFolder + "SizeSmall.png'/></th><th><div class=\"slidecontainer\"><input type=\"range\" min=\"1\" max=\"100\" value=\"10\" class=\"slider\" id=\"modelScale\" oninput=\"cindyPrintUpdateModelScale()\"></th><th><image src='" + imageFolder + "SizeLarge.png'/></th></tr>" +
		"</table>" +
		/*
		 * For radius scaling factor 1/20 see Appearance.POINT_SCALE in Cindy3D.
		 */
		"<button onclick=\"cdy.evokeCS('savetubemesh(&quot;" + meshFilename + "&quot;, " + computeTubePointsFunctionName + "(' + document.getElementById('lineSubdivisions').value/50 + '*(" + numTubePointsString + ")), " + radiusString + "/20, " + tubeClosedString + ");');\">Export mesh</button>" +
		"<button onclick=\"cdy.evokeCS('updatepreviewtubes(" + computeTubePointsFunctionName + "(' + document.getElementById('lineSubdivisions').value/50 + '*(" + numTubePointsString + ")), " + radiusString + "/20, " + tubeClosedString + ");');\">Update Preview</button>";
}
/**
 * Print preview UI HTML code for use with Cindy3D when exporting tube meshes.
 */
Print preview UI HTML code for use with Cindy3D when exporting tube meshes.
Print preview UI HTML code for use with Cindy3D when exporting tube meshes .
function uiStringTubes(meshFilename, computeTubePointsFunctionName, numTubePointsString, radiusString, tubeClosed) {
	let imageFolder = CindyJS.getBaseDir() + "images/cindyprint/";
	let tubeClosedString = "true";
	if (!tubeClosed) {
		tubeClosedString = "false";
	}
	return "<table>" +
		"    <tr><th>Cylinder quality</th><th><image src='" + imageFolder + "CylinderLowRes.png'/></th><th><div class=\"slidecontainer\"><input type=\"range\" min=\"8\" max=\"64\" value=\"16\" class=\"slider\" id=\"cylinderQuality\" oninput=\"cindyPrintUpdateCylinderQuality()\"></th><th><image src='" + imageFolder + "CylinderHighRes.png'/></th></tr>" +
		"    <tr><th>Line subdivisions</th><th><image src='" + imageFolder + "LineSubdivisionLow.png'/></th><th><div class=\"slidecontainer\"><input type=\"range\" min=\"1\" max=\"100\" value=\"50\" class=\"slider\" id=\"lineSubdivisions\" oninput=\"cindyPrintUpdateLineSubdivisions()\"></th><th><image src='" + imageFolder + "LineSubdivisionHigh.png'/></th></tr>" +
		"    <tr><th>Radius factor</th><th><image src='" + imageFolder + "TubeThin.png'/></th><th><div class=\"slidecontainer\"><input type=\"range\" min=\"1\" max=\"100\" value=\"50\" class=\"slider\" id=\"radiusFactor\" oninput=\"cindyPrintUpdateRadiusFactor()\"></th><th><image src='" + imageFolder + "TubeThick.png'/></th></tr>" +
		"    <tr><th>Model scale</th><th><image src='" + imageFolder + "SizeSmall.png'/></th><th><div class=\"slidecontainer\"><input type=\"range\" min=\"1\" max=\"100\" value=\"10\" class=\"slider\" id=\"modelScale\" oninput=\"cindyPrintUpdateModelScale()\"></th><th><image src='" + imageFolder + "SizeLarge.png'/></th></tr>" +
		"</table>" +
		"<button onclick=\"cdy.evokeCS('savetubemesh(&quot;" + meshFilename + "&quot;, " + computeTubePointsFunctionName + "(' + document.getElementById('lineSubdivisions').value/50 + '*(" + numTubePointsString + ")), " + radiusString + "/20, " + tubeClosedString + ");');\">Export mesh</button>" +
		"<button onclick=\"cdy.evokeCS('updatepreviewtubes(" + computeTubePointsFunctionName + "(' + document.getElementById('lineSubdivisions').value/50 + '*(" + numTubePointsString + ")), " + radiusString + "/20, " + tubeClosedString + ");');\">Update Preview</button>";
}
function uiStringTubes ( meshFilename , computeTubePointsFunctionName , numTubePointsString , radiusString , tubeClosed ) { let imageFolder = CindyJS . getBaseDir ( ) + "images/cindyprint/" ; let tubeClosedString = "true" ; if ( ! tubeClosed ) { tubeClosedString = "false" ; } return "<table>" + "    <tr><th>Cylinder quality</th><th><image src='" + imageFolder + "CylinderLowRes.png'/></th><th><div class=\"slidecontainer\"><input type=\"range\" min=\"8\" max=\"64\" value=\"16\" class=\"slider\" id=\"cylinderQuality\" oninput=\"cindyPrintUpdateCylinderQuality()\"></th><th><image src='" + imageFolder + "CylinderHighRes.png'/></th></tr>" + "    <tr><th>Line subdivisions</th><th><image src='" + imageFolder + "LineSubdivisionLow.png'/></th><th><div class=\"slidecontainer\"><input type=\"range\" min=\"1\" max=\"100\" value=\"50\" class=\"slider\" id=\"lineSubdivisions\" oninput=\"cindyPrintUpdateLineSubdivisions()\"></th><th><image src='" + imageFolder + "LineSubdivisionHigh.png'/></th></tr>" + "    <tr><th>Radius factor</th><th><image src='" + imageFolder + "TubeThin.png'/></th><th><div class=\"slidecontainer\"><input type=\"range\" min=\"1\" max=\"100\" value=\"50\" class=\"slider\" id=\"radiusFactor\" oninput=\"cindyPrintUpdateRadiusFactor()\"></th><th><image src='" + imageFolder + "TubeThick.png'/></th></tr>" + "    <tr><th>Model scale</th><th><image src='" + imageFolder + "SizeSmall.png'/></th><th><div class=\"slidecontainer\"><input type=\"range\" min=\"1\" max=\"100\" value=\"10\" class=\"slider\" id=\"modelScale\" oninput=\"cindyPrintUpdateModelScale()\"></th><th><image src='" + imageFolder + "SizeLarge.png'/></th></tr>" + "</table>" + "<button onclick=\"cdy.evokeCS('savetubemesh(&quot;" + meshFilename + "&quot;, " + computeTubePointsFunctionName + "(' + document.getElementById('lineSubdivisions').value/50 + '*(" + numTubePointsString + ")), " + radiusString + "/20, " + tubeClosedString + ");');\">Export mesh</button>" + "<button onclick=\"cdy.evokeCS('updatepreviewtubes(" + computeTubePointsFunctionName + "(' + document.getElementById('lineSubdivisions').value/50 + '*(" + numTubePointsString + ")), " + radiusString + "/20, " + tubeClosedString + ");');\">Update Preview</button>" ; }
Print preview UI HTML code for use with Cindy3D when exporting tube meshes.
Print preview UI HTML code for use with Cindy3D when exporting tube meshes .
/*
		 * For radius scaling factor 1/20 see Appearance.POINT_SCALE in Cindy3D.
		 */