+ /**
+ * Make a description of the height_field object for the terrain, depending on terrain and image
+ * @param inTerrainFile terrain file, or null if none
+ * @param inImageFile image file, or null if none
+ * @param inLineSeparator line separator
+ * @return String for inserting into pov file
+ */
+ private static String makeTerrainString(File inTerrainFile, File inImageFile, String inLineSeparator)
+ {
+ if (inTerrainFile == null) {return "";}
+ StringBuilder sb = new StringBuilder();
+ sb.append("//Terrain").append(inLineSeparator)
+ .append("height_field {").append(inLineSeparator)
+ .append("\tpng \"").append(inTerrainFile.getName()).append("\" smooth").append(inLineSeparator)
+ .append("\tfinish {diffuse 0.7 phong 0.2}").append(inLineSeparator);
+ if (inImageFile != null) {
+ sb.append("\tpigment {image_map { png \"").append(inImageFile.getName()).append("\" } rotate x*90}").append(inLineSeparator);
+ }
+ else {
+ sb.append("\tpigment {color rgb <0.55 0.7 0.55> }").append(inLineSeparator);
+ }
+ sb.append("\tscale 20.0").append(inLineSeparator)
+ .append("\ttranslate <-10.0, 0, -10.0>").append(inLineSeparator).append("}");
+ return sb.toString();
+ }