Revision: 5716
http://sourceforge.net/p/jump-pilot/code/5716
Author: ma15569
Date: 2018-03-22 14:03:21 +0000 (Thu, 22 Mar 2018)
Log Message:
-----------
improved dxf export
Modified Paths:
--------------
core/trunk/src/it/betastudio/adbtoolbox/libs/DxfExport.java
core/trunk/src/org/openjump/sextante/gui/additionalResults/AdditionalResultsFrame.java
Modified: core/trunk/src/it/betastudio/adbtoolbox/libs/DxfExport.java
===================================================================
--- core/trunk/src/it/betastudio/adbtoolbox/libs/DxfExport.java 2018-03-15
06:22:35 UTC (rev 5715)
+++ core/trunk/src/it/betastudio/adbtoolbox/libs/DxfExport.java 2018-03-22
14:03:21 UTC (rev 5716)
@@ -3,9 +3,9 @@
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
+
import javax.swing.JOptionPane;
-
/**
*
* @author Beta Studio
@@ -12,13 +12,13 @@
*/
public class DxfExport {
- public DxfExport(){
+ public DxfExport() {
dxfOut = new String();
}
- public void writeHeader(double minX, double minY, double maxX, double
maxY){
+ public void writeHeader(double minX, double minY, double maxX, double
maxY) {
dxfOut = "0";
appString("SECTION");
@@ -45,7 +45,7 @@
appString(maxY);
appString(30);
appString(0);
-
+
appString(9);
appString("$LIMMIN");
appString(10);
@@ -58,16 +58,16 @@
appString(maxX);
appString(20);
appString(maxY);
-// appString(9);
-// appString("$CLAYER");
-// appString(8);
-// appString(layerName);
+ // appString(9);
+ // appString("$CLAYER");
+ // appString(8);
+ // appString(layerName);
appString(0);
appString("ENDSEC");
}
- public void writeStartSec(){
+ public void writeStartSec() {
appString(0);
appString("SECTION");
@@ -74,7 +74,7 @@
}
- public void writeEndSec(){
+ public void writeEndSec() {
appString(0);
appString("ENDSEC");
@@ -81,29 +81,29 @@
}
- public void writeTablesStart(){
-
+ public void writeTablesStart() {
+
appString(2);
- appString("TABLES");
-
+ appString("TABLES");
+
}
-
- public void writeTableStart(){
-
+
+ public void writeTableStart() {
+
appString(0);
- appString("TABLE");
-
+ appString("TABLE");
+
}
- public void writeTableEnd(){
-
+ public void writeTableEnd() {
+
appString(0);
- appString("ENDTAB");
-
+ appString("ENDTAB");
+
}
-
- public void writeLayersStart(){
+ public void writeLayersStart() {
+
appString(2);
appString("LAYER");
appString(70);
@@ -111,7 +111,7 @@
}
- public void writeLayer(String layName, int colourNr){
+ public void writeLayer(String layName, int colourNr) {
appString(0);
appString("LAYER");
@@ -125,9 +125,10 @@
appString("CONTINUOUS");
}
-
- public void writeVPort(double centerX, double centerY, double minX, double
minY, double maxX, double maxY){
+ public void writeVPort(double centerX, double centerY, double minX,
+ double minY, double maxX, double maxY) {
+
appString(2);
appString("VPORT");
appString(5);
@@ -215,16 +216,16 @@
appString(78);
appString(0);
- }
+ }
- public void writeEntStart(){
-
+ public void writeEntStart() {
+
appString(2);
appString("ENTITIES");
}
- public void writeAppId(){
+ public void writeAppId() {
appString(2);
appString("APPID");
@@ -246,7 +247,7 @@
appString("ACAD");
appString(70);
appString(0);
-
+
}
public void writeEnding() {
@@ -259,7 +260,8 @@
}
- public void writeLine(String layName, double p1x, double p1y, double p2x,
double p2y){
+ public void writeLine(String layName, double p1x, double p1y, double p2x,
+ double p2y) {
appString("0");
appString("LINE");
@@ -276,30 +278,59 @@
}
- public void writePolyline(String layName, double[][] vertices){
+ /**
+ * @param layName
+ * @param lineType
+ * ( DASHED - DOTTED -DOTTINY etc)
+ * @param p1x
+ * @param p1y
+ * @param p2x
+ * @param p2y
+ */
+ public void writeLineType(String layName, String lineType, double p1x,
+ double p1y, double p2x, double p2y) {
+ appString("0");
+ appString("LINE");
+ appString(8);
+ appString(layName);
+ appString(6);
+ appString(lineType);
+ appString("10");
+ appString(p1x);
+ appString("20");
+ appString(p1y);
+ appString("11");
+ appString(p2x);
+ appString("21");
+ appString(p2y);
+
+ }
+
+ public void writePolyline(String layName, double[][] vertices) {
+
appString(0);
appString("POLYLINE");
appString(8);
appString(layName);
appString(62);
- appString(1);
+ appString(5);
appString(66);
appString(1);
- for(int v=0; v<vertices.length; v++){
+ for (final double[] vertice : vertices) {
appString(0);
appString("VERTEX");
appString(8);
appString(layName);
- appString(10); // X value
- appString(vertices[v][0]);
- appString(20); // Y value
- appString(vertices[v][1]);
-// appString(30); // Z value
-// appString(vertices[v][2]);
- appString(70); // Vertex flag
- appString(4); // Vertex flags:
+ appString(10); // X value
+ appString(vertice[0]);
+ appString(20); // Y value
+ appString(vertice[1]);
+ // appString(30); // Z value
+ // appString(vertices[v][2]);
+ appString(70); // Vertex flag
+ appString(4); // Vertex flags:
}
appString("0");
@@ -307,37 +338,72 @@
}
- public void writeLwPolyLine(double[][] vertices){
+ public void writePolyline(String layName, String lineType,
+ double[][] vertices, int colourNr) {
+ appString(0);
+ appString("POLYLINE");
+ appString(8);
+ appString(layName);
+ appString(lineType);
+ appString(62);
+ appString(colourNr);
+ // appString(1);
+ appString(66);
+ appString(1);
+ for (final double[] vertice : vertices) {
+ appString(0);
+ appString("VERTEX");
+ appString(8);
+ appString(layName);
+ appString(10); // X value
+ appString(vertice[0]);
+ appString(20); // Y value
+ appString(vertice[1]);
+ // appString(30); // Z value
+ // appString(vertices[v][2]);
+ appString(70); // Vertex flag
+ appString(4); // Vertex flags:
+ }
+ appString("0");
+ appString("SEQEND");
+
}
- public void writeText(String layName, double alignPoint1x, double
alignPoint1y, double alignPoint1z, double alignPoint2x, double alignPoint2y,
double alignPoint2z, int textHight, double textRotation, int horizJust, int
vertAlign, String text){
+ public void writeLwPolyLine(double[][] vertices) {
+ }
+
+ public void writeText(String layName, double alignPoint1x,
+ double alignPoint1y, double alignPoint1z, double alignPoint2x,
+ double alignPoint2y, double alignPoint2z, int textHight,
+ double textRotation, int horizJust, int vertAlign, String text) {
+
appString(0);
appString("TEXT");
appString(8);
appString(layName);
- appString(10); // Alignment point x
+ appString(10); // Alignment point x
appString(alignPoint1x);
- appString(20); // Alignment point y
+ appString(20); // Alignment point y
appString(alignPoint1y);
- appString(30); // Alignment point z
+ appString(30); // Alignment point z
appString(alignPoint1z);
- appString(40); // Text hight
+ appString(40); // Text hight
appString(textHight);
- appString(50); // Text rotation
+ appString(50); // Text rotation
appString(textRotation);
- appString(1); // Text
+ appString(1); // Text
appString(text);
- if(horizJust != 0 || vertAlign != 0){
- appString(11); // Alignment point x
+ if (horizJust != 0 || vertAlign != 0) {
+ appString(11); // Alignment point x
appString(alignPoint2x);
- appString(21); // Alignment point y
+ appString(21); // Alignment point y
appString(alignPoint2y);
- appString(31); // Alignment point z
+ appString(31); // Alignment point z
appString(alignPoint2z);
appString(72);
appString(horizJust);
@@ -348,27 +414,30 @@
}
- private void appString(String appEnd){
+ private void appString(String appEnd) {
dxfOut = dxfOut + lineFeed + appEnd;
}
- private void appString(int appEnd){
+ private void appString(int appEnd) {
dxfOut = dxfOut + lineFeed + Integer.toString(appEnd);
}
- private void appString(double appEnd){
+ private void appString(double appEnd) {
dxfOut = dxfOut + lineFeed + Double.toString(appEnd);
}
- public int exportDxf(String dxfFullFileName){
+ public int exportDxf(String dxfFullFileName) {
- try{
- BufferedWriter buffWrite = new BufferedWriter(new FileWriter(new
File(dxfFullFileName)));
+ try {
+ final BufferedWriter buffWrite = new BufferedWriter(new FileWriter(
+ new File(dxfFullFileName)));
buffWrite.write(dxfOut, 0, dxfOut.length());
buffWrite.close();
return 0;
- }catch(Exception ex){
- JOptionPane.showMessageDialog(null, "Errore durante la scrittura
del DXF: " + ex, "Errore", JOptionPane.ERROR_MESSAGE);
+ } catch (final Exception ex) {
+ JOptionPane.showMessageDialog(null,
+ "Errore durante la scrittura del DXF: " + ex, "Errore",
+ JOptionPane.ERROR_MESSAGE);
return 1;
}
@@ -375,6 +444,6 @@
}
private String dxfOut = null;
- private String lineFeed = System.getProperty("line.separator");
+ private final String lineFeed = System.getProperty("line.separator");
}
Modified:
core/trunk/src/org/openjump/sextante/gui/additionalResults/AdditionalResultsFrame.java
===================================================================
---
core/trunk/src/org/openjump/sextante/gui/additionalResults/AdditionalResultsFrame.java
2018-03-15 06:22:35 UTC (rev 5715)
+++
core/trunk/src/org/openjump/sextante/gui/additionalResults/AdditionalResultsFrame.java
2018-03-22 14:03:21 UTC (rev 5716)
@@ -6,6 +6,7 @@
import java.awt.Component;
import java.awt.Cursor;
import java.awt.Dimension;
+import java.awt.FlowLayout;
import java.awt.Graphics2D;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
@@ -23,9 +24,12 @@
import java.util.Locale;
import javax.imageio.ImageIO;
+import javax.swing.Box;
+import javax.swing.BoxLayout;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
+import javax.swing.JCheckBox;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
@@ -65,10 +69,6 @@
import com.vividsolutions.jump.workbench.ui.GUIUtil;
import com.vividsolutions.jump.workbench.ui.HTMLPanel;
-import de.fho.jump.pirol.utilities.settings.PirolPlugInSettings;
-//-da rimuovere
-//import com.vividsolutions.jump.workbench.ui.OKCancelApplyPanel;
-
public class AdditionalResultsFrame extends DetachableInternalFrame {
/**
@@ -109,6 +109,10 @@
.get("deejump.plugin.SaveLegendPlugIn.Save");
private final String CLOSE = I18N
.get("ui.plugin.imagery.ImageLayerManagerDialog.Close");
+ public final static String HEIGHT = I18N
+ .get("org.openjump.core.ui.plugin.raster.ProfileGraphTool.values");
+ public final static String WIDTH = I18N
+
.get("org.openjump.core.ui.plugin.raster.ProfileGraphTool.2d-distance");
private static final long serialVersionUID = 1L;
private JSplitPane jSplitPane;
@@ -278,21 +282,6 @@
});
popupMenu.add(menuItemRename);
- // ---Da rimuovere
- // okCancelApplyPanel.addActionListener(new ActionListener() {
- // @Override
- // public void actionPerformed(final ActionEvent evt) {
-
- // try {
- // dispose();
- // } catch (final Exception e) {
- // }
- //
- // }
- // });
- // okCancelApplyPanel.setApplyVisible(false);
- // okCancelApplyPanel.setCancelVisible(false);
- // okCancelApplyPanel.setOKEnabled(true);
panel.updateUI();
return true;
} catch (final Exception e) {
@@ -405,8 +394,7 @@
} else {
filter = new FileNameExtensionFilter("SHP", "shp");
}
- final JFileChooser fc = new JFileChooser(
- PirolPlugInSettings.configDirectory());
+ final JFileChooser fc = new
GUIUtil.FileChooserWithOverwritePrompting();
fc.setFileFilter(filter);
fc.addChoosableFileFilter(filter);
final int returnVal = fc
@@ -429,8 +417,8 @@
if (view instanceof JTextPane) {
final JTextPane text = (JTextPane) pane.getViewport()
.getView();
- final JFileChooser fc = new JFileChooser(
- PirolPlugInSettings.configDirectory());
+ final JFileChooser fc = new
GUIUtil.FileChooserWithOverwritePrompting(
+ "html");
filter = new FileNameExtensionFilter("HTML", "html");
fc.setFileFilter(filter);
fc.addChoosableFileFilter(filter);
@@ -457,8 +445,8 @@
} else if (view instanceof JLabel) {
final String text = ((JLabel) view).getText();
filter = new FileNameExtensionFilter("HTML", "html");
- final JFileChooser fc = new JFileChooser(
- PirolPlugInSettings.configDirectory());
+ final JFileChooser fc = new
GUIUtil.FileChooserWithOverwritePrompting(
+ "html");
fc.setFileFilter(filter);
fc.addChoosableFileFilter(filter);
final int returnVal = fc
@@ -484,8 +472,8 @@
} else if (view instanceof JTextArea) {
final String text = ((JLabel) view).getText();
filter = new FileNameExtensionFilter("HTML", "html");
- final JFileChooser fc = new JFileChooser(
- PirolPlugInSettings.configDirectory());
+ final JFileChooser fc = new
GUIUtil.FileChooserWithOverwritePrompting(
+ "html");
fc.setFileFilter(filter);
fc.addChoosableFileFilter(filter);
final int returnVal = fc
@@ -513,8 +501,8 @@
.getView();
filter = new FileNameExtensionFilter(
"Comma-Separated Values (csv)", "csv");
- final JFileChooser fc = new JFileChooser(
- PirolPlugInSettings.configDirectory());
+ final JFileChooser fc = new
GUIUtil.FileChooserWithOverwritePrompting(
+ "csv");
fc.setFileFilter(filter);
fc.addChoosableFileFilter(filter);
final int returnVal = fc
@@ -555,16 +543,12 @@
}
} else if (c instanceof PlotPanel) {
final PlotPanel panel = (PlotPanel) c;
- // final JFileChooser chooser =
- // SaveGUI.getFileChooser(panel);
- // chooser.showSaveDialog(this);
filter = new FileNameExtensionFilter(
"Portable Network Graphics (png)", "png");
final FileNameExtensionFilter filter2 = new
FileNameExtensionFilter(
"Drawing Interchange Format(dxf)", "dxf");
- final JFileChooser fc = new JFileChooser(
- PirolPlugInSettings.configDirectory());
+ final JFileChooser fc = new
GUIUtil.FileChooserWithOverwritePrompting();
if (oad.getDescription()
.contains(
I18N.get("org.openjump.core.ui.plugin.raster.ProfileGraphTool.Profile-Plot"))) {
@@ -576,6 +560,29 @@
.showSaveDialog(AdditionalResultsFrame.this);
fc.getWidth();
fc.getHeight();
+ final Box box = new Box(BoxLayout.Y_AXIS);
+ box.add(Box.createRigidArea(new Dimension(5, 180)));
+ final JPanel jPanelSize = new JPanel(new FlowLayout(
+ FlowLayout.LEFT));
+ final JCheckBox worldFileCheckBox = new
javax.swing.JCheckBox();
+ worldFileCheckBox
+ .setText(I18N
+
.get("ui.plugin.SaveImageAsPlugIn.write-world-file"));
+ jPanelSize.add(worldFileCheckBox);
+ box.add(jPanelSize);
+ fc.setAccessory(box);
+ if (fc.getFileFilter().equals(filter)) {
+ worldFileCheckBox.setEnabled(false);
+ ;
+ ;
+ fc.repaint();
+ } else if (fc.getFileFilter().equals(filter2)) {
+ worldFileCheckBox.setEnabled(true);
+ ;
+ ;
+ fc.repaint();
+ }
+
if (returnVal == JFileChooser.APPROVE_OPTION) {
if (fc.getFileFilter().equals(filter)) {
file = new File(fc.getSelectedFile() + ".png");
@@ -600,8 +607,8 @@
final JTable table = (JTable) c;
filter = new FileNameExtensionFilter(
"Comma-Separated Values (csv)", "csv");
- final JFileChooser fc = new JFileChooser(
- PirolPlugInSettings.configDirectory());
+ final JFileChooser fc = new
GUIUtil.FileChooserWithOverwritePrompting(
+ "csv");
fc.setFileFilter(filter);
fc.addChoosableFileFilter(filter);
final int returnVal = fc
@@ -643,8 +650,8 @@
final HTMLPanel panel = (HTMLPanel) c;
final String text = panel.lastString();
filter = new FileNameExtensionFilter("HTML", "html");
- final JFileChooser fc = new JFileChooser(
- PirolPlugInSettings.configDirectory());
+ final JFileChooser fc = new
GUIUtil.FileChooserWithOverwritePrompting(
+ "html");
fc.setFileFilter(filter);
fc.addChoosableFileFilter(filter);
final int returnVal = fc
@@ -676,8 +683,8 @@
panel.paint(g);
filter = new FileNameExtensionFilter(
"Portable Network Graphics (png)", "png");
- final JFileChooser fc = new JFileChooser(
- PirolPlugInSettings.configDirectory());
+ final JFileChooser fc = new
GUIUtil.FileChooserWithOverwritePrompting(
+ "png");
fc.setFileFilter(filter);
fc.addChoosableFileFilter(filter);
final int returnVal = fc
@@ -827,9 +834,14 @@
}
+ public static Integer round100(Integer b) {
+ return b - (b % 100);
+ }
+
// [Giuseppe Aruta 2018-3-14] The following code derives from AdbToolbox
// Raster>Topography>Section code.
// see also class it.betastudio.adbtoolbox.libs.DxfExport
+ // [Giuseppe Aruta 2018-3-22] Enhenced dxf output
public static void exportToDxf(String fileName, double[][] points) {
@@ -858,34 +870,38 @@
final DecimalFormatSymbols dfs = new DecimalFormatSymbols(
Locale.ENGLISH);
DecimalFormat twoPlaces = null;
+
final String twoPlacesS = "0.00";
twoPlaces = new DecimalFormat(twoPlacesS, dfs);
final int pointsCount = points.length;
- int interPointsCount = 0;
- final int txtHight = 10;
- double baseElev = 0.0D;
+
+ final int txtHight = 14;
+ final int txtHight2 = 22;
+
+ // min elevation of the grid, 200m below the min elevation of the
+ // profile
+ final int b = ((int) minY - 99) / 100 * 100;
+ final double baseElev = b - 100;
+
+ // max elevation of the grid, 200m above the max elevation of the
+ // profile
+ final int a = ((int) maxY + 99) / 100 * 100;
+ final double topElev = a + 200;
+
final int sepSpacing = 10 * txtHight;
final String layNameProf = "PROFILE";
- final String layNameNeatLines = "BASE";
- final String layNameText = "TEXT";
+ final String baseSectionLayer = "BASE";
+ final String partialValuesLayer = "PARTIAL_VALUES";
+ final String gridLayer = "GRID";
+ final String layNameText = "GRID_TEXT";
- if (baseElev < minY) {
- minY = baseElev;
- } else {
- baseElev = minY;
- }
-
// Main points coords
- final double sep1Y = minY - txtHight * 2;
+ final double sep1Y = baseElev - txtHight * 2;
final double sep2Y = sep1Y - sepSpacing;
- final double sep3Y = sep2Y - sepSpacing;
-
+ final double sep3Y = topElev;
+ final double leg5Y = sep3Y + sepSpacing;
final double legX = minX - (txtHight * 30);
- final double leg1Y = minY + 0.5 * txtHight;
- final double leg2Y = sep1Y + txtHight;
- final double leg3Y = sep2Y + 0.5 * sepSpacing;
- final double leg4Y = sep3Y + 0.5 * sepSpacing;
final DxfExport dxfExp = new DxfExport();
@@ -907,8 +923,10 @@
dxfExp.writeTableStart();
dxfExp.writeLayersStart();
- dxfExp.writeLayer(layNameProf, 1);
- dxfExp.writeLayer(layNameNeatLines, 5);
+ dxfExp.writeLayer(layNameProf, 5);
+ dxfExp.writeLayer(baseSectionLayer, 0);
+ dxfExp.writeLayer(partialValuesLayer, 8);
+ dxfExp.writeLayer(gridLayer, 9);
dxfExp.writeLayer(layNameText, 7);
dxfExp.writeTableEnd();
@@ -919,18 +937,6 @@
dxfExp.writeEntStart();
dxfExp.writePolyline(layNameProf, points);
- // Write bounding lines
- // dxfExp.writeLine(layNameNeatLines, minX, minY, minX,
- // points[0][1]);
- dxfExp.writeLine(layNameNeatLines, legX, minY, maxX, minY);
- // dxfExp.writeLine(layNameNeatLines, maxX, minY, maxX,
- // points[pointsCount-1][1]);
-
- // Write separators
- dxfExp.writeLine(layNameNeatLines, legX, sep1Y, maxX, sep1Y);
- dxfExp.writeLine(layNameNeatLines, legX, sep2Y, maxX, sep2Y);
- dxfExp.writeLine(layNameNeatLines, legX, sep3Y, maxX, sep3Y);
-
// Write legend
final Task selectedTask = workbenchContext.getTask();
@@ -938,21 +944,22 @@
if (selectedTask.getProperties().containsKey(
new QName(Task.PROJECT_UNIT_KEY))) {
- unitsDistLabel = selectedTask.getProperty(
- new QName(Task.PROJECT_UNIT_KEY)).toString();
+ unitsDistLabel = " ["
+ + selectedTask.getProperty(
+ new QName(Task.PROJECT_UNIT_KEY)).toString()
+ + "]";
} else {
unitsDistLabel = "";
}
- dxfExp.writeText(layNameText, legX, leg1Y, 0, 0, 0, 0, txtHight, 0,
- 0, 0, "Reference height: " + twoPlaces.format(baseElev)
- + " " + unitsDistLabel);
- dxfExp.writeText(layNameText, 0, 0, 0, legX, leg2Y, 0, txtHight, 0,
- 0, 2, "Partial distance" + unitsDistLabel);
- dxfExp.writeText(layNameText, 0, 0, 0, legX, leg3Y, 0, txtHight, 0,
- 0, 2, "Progressive distance" + unitsDistLabel);
- dxfExp.writeText(layNameText, 0, 0, 0, legX, leg4Y, 0, txtHight, 0,
- 0, 2, "Height" + unitsDistLabel);
+ // Text of X axe
+ dxfExp.writeText(layNameText, 0, 0, 0, (maxX - minX) / 2, sep2Y, 0,
+ txtHight2, 0, 0, 2, WIDTH + unitsDistLabel);
+
+ // Text of Y axe
+ dxfExp.writeText(partialValuesLayer, 0, 0, 0, (maxX - minX) / 2,
+ leg5Y, 0, txtHight2, 0, 0, 2, HEIGHT + unitsDistLabel);
+
// Write interpoints labels and ticks
double p1x = 0;
double p1y = 0;
@@ -963,12 +970,13 @@
double alPt2y = 0;
String labelText = null;
+ int interPointsCount = 0;
// Count interpoints
double[] interStepD = null;
interStepD = new double[1];
// Define 100 meters for length/height steps
- interStepD[0] = 100;
+ interStepD[0] = 100D;
interPointsCount = (int) ((maxX - minX) / interStepD[0]) + 2;
// Prepare x positions
@@ -1025,50 +1033,91 @@
for (int ip = 0; ip < interPointsCount; ip++) { // OKKIO
- // Vertical lines
- p1x = interPointsDists[ip];
- p1y = interPointsElev[ip];
- p2x = interPointsDists[ip];
- p2y = minY;
- dxfExp.writeLine(layNameNeatLines, p1x, p1y, p2x, p2y);
+ if (baseElev + interPointsDists[ip] < topElev
+ || baseElev + interPointsDists[ip] == topElev) {
- if (ip < interPointsCount - 1) {
- // Partial distance labels
- alPt1x = (interPointsDists[ip] + interPointsDists[ip + 1])
/ 2;
- alPt1y = sep1Y + txtHight;
- labelText = twoPlaces.format(interPointsDists[ip + 1]
- - interPointsDists[ip]);
+ dxfExp.writeText(layNameText, 0, 0, 0, minX - 200,
+ interPointsDists[5], 0, txtHight2, 90, 0, 2, HEIGHT
+ + unitsDistLabel);
+ // Grid - orizontal lines every 100 m
+ p1x = maxX;
+ p1y = interPointsDists[ip] + baseElev;
+ p2x = minX;
+ p2y = interPointsDists[ip] + baseElev;
+ dxfExp.writeLineType(gridLayer, "DOTTINY", p1x, p1y, p2x,
+ p2y);
+
+ // Heights (Y) - text on right and left part of the profile
+ // every 100m
+ alPt1x = minX - 100;// sep1Y + txtHight;
+ final double alPt1ax = maxX + txtHight;//
+ alPt1y = interPointsDists[ip] + baseElev;
+ labelText = twoPlaces.format(interPointsDists[ip]
+ + baseElev);
dxfExp.writeText(layNameText, 0, 0, 0, alPt1x, alPt1y, 0,
- txtHight, 0, 4, 2, labelText);
+ txtHight, 0, 0, 2, labelText);
+ dxfExp.writeText(layNameText, 0, 0, 0, alPt1ax, alPt1y, 0,
+ txtHight, 0, 0, 2, labelText);
+
+ // Heights (Y) - small tracks on right and left part of the
+ // profile
+ alPt1x = minX;
+ alPt1y = interPointsDists[ip] + baseElev;
+ final double alPt2x = minX - (txtHight / 2);
+ dxfExp.writeLine(baseSectionLayer, alPt1x, alPt1y, alPt2x,
+ alPt1y);
+ final double alPt2x2 = maxX + (txtHight / 2);
+ dxfExp.writeLine(baseSectionLayer, maxX, alPt1y, alPt2x2,
+ alPt1y);
+
}
+ }
- // Progressive distance labels
+ for (int ip = 0; ip < interPointsCount; ip++) { // OKKIO
+
+ // Grid - vertical lines every 100 m
+ p1x = interPointsDists[ip];
+ p1y = topElev;// interPointsElev[ip];
+ p2x = interPointsDists[ip];
+ p2y = baseElev;// minY;
+ dxfExp.writeLineType(gridLayer, "DOTTINY", p1x, p1y, p2x, p2y);
+
+ // Widths (X axe) - texts below the X line, every 100 m
alPt1x = interPointsDists[ip];
- alPt1y = sep2Y + txtHight;
+ alPt1y = sep1Y - 4 * txtHight;
labelText = twoPlaces.format(interPointsDists[ip]);
dxfExp.writeText(layNameText, 0, 0, 0, alPt1x, alPt1y, 0,
txtHight, 90, 0, 2, labelText);
- // Elevation lables
+ // Widths (X axe) - small tracks above the texts
alPt1x = interPointsDists[ip];
+ alPt1y = baseElev;
+ alPt2y = baseElev - (txtHight / 2);
+ dxfExp.writeLine(baseSectionLayer, alPt1x, alPt1y, alPt1x,
+ alPt2y);
+
+ // Partial heights - texts per every 100 width
+ alPt1x = interPointsDists[ip];
alPt1y = sep3Y + txtHight;
labelText = twoPlaces.format(points[interPointsIds[ip]][1]);
- dxfExp.writeText(layNameText, 0, 0, 0, alPt1x, alPt1y, 0,
- txtHight, 90, 0, 2, labelText);
+ dxfExp.writeText(partialValuesLayer, 0, 0, 0, alPt1x, alPt1y,
+ 0, txtHight, 90, 0, 2, labelText);
- // Ticks
- alPt1x = interPointsDists[ip];
- alPt1y = sep2Y;
- alPt2y = sep2Y + (txtHight / 2);
- dxfExp.writeLine(layNameNeatLines, alPt1x, alPt1y, alPt1x,
- alPt2y);
+ // Partial heights - small tracks
alPt1y = sep3Y;
alPt2y = sep3Y + (txtHight / 2);
- dxfExp.writeLine(layNameNeatLines, alPt1x, alPt1y, alPt1x,
+ dxfExp.writeLine(partialValuesLayer, alPt1x, alPt1y, alPt1x,
alPt2y);
}
+ // Width - X line of the profile
+ dxfExp.writeLine(baseSectionLayer, minX, baseElev, maxX, baseElev);
+ // Height - Y lines of the profile
+ dxfExp.writeLine(baseSectionLayer, minX, baseElev, minX, topElev);
+ dxfExp.writeLine(baseSectionLayer, maxX, baseElev, maxX, topElev);
+ // Partial heights width line
+ dxfExp.writeLine(partialValuesLayer, minX, sep3Y, maxX, sep3Y);
// Finalize DXF
dxfExp.writeEnding();
final int ret = dxfExp.exportDxf(fileName);
@@ -1086,4 +1135,5 @@
public static WorkbenchContext workbenchContext = JUMPWorkbench
.getInstance().getContext();
+
}
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Jump-pilot-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel