From 8eb900d612d16104e46bdf805c59f9ed335cda2f Mon Sep 17 00:00:00 2001 From: iobyte Date: Sat, 10 Sep 2022 18:10:23 +0000 Subject: [PATCH] trackeditor: fix import export differences from degree to radian to degree conversions git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@8483 30fe4595-0a0c-4342-8851-515496e4dcbd Former-commit-id: 52624b6a4606ce6a6196b3c9a23de42c7af42d1b Former-commit-id: 22bb8d638d8dc60764516707c030ae7b77f352de --- src/tools/trackeditor/gui/DeltaPanel.java | 2 +- src/tools/trackeditor/gui/EditorFrame.java | 4 +-- .../gui/segment/SegmentEditorDlg.java | 6 ++--- .../trackeditor/gui/view/CircuitView.java | 4 +-- .../trackeditor/plugin/torcs/XmlReader.java | 3 +-- .../trackeditor/plugin/torcs/XmlWriter.java | 3 +-- .../trackeditor/utils/circuit/Curve.java | 27 ++++++++++++++----- 7 files changed, 31 insertions(+), 18 deletions(-) diff --git a/src/tools/trackeditor/gui/DeltaPanel.java b/src/tools/trackeditor/gui/DeltaPanel.java index 0e4f8ef14..9448ce59d 100644 --- a/src/tools/trackeditor/gui/DeltaPanel.java +++ b/src/tools/trackeditor/gui/DeltaPanel.java @@ -471,7 +471,7 @@ public class DeltaPanel extends JDialog implements Runnable if(!obj.getType().equals("str")) { Curve curve = (Curve) obj; - curve.setArc(curve.getArc()*co); + curve.setArcRad(curve.getArcRad()*co); } } catch (Exception e) { diff --git a/src/tools/trackeditor/gui/EditorFrame.java b/src/tools/trackeditor/gui/EditorFrame.java index 584103a36..6d6a223db 100644 --- a/src/tools/trackeditor/gui/EditorFrame.java +++ b/src/tools/trackeditor/gui/EditorFrame.java @@ -583,7 +583,7 @@ public class EditorFrame extends JFrame shape = new Curve(); ((Curve)shape).setRadiusStart(100); ((Curve)shape).setRadiusEnd(100); - ((Curve)shape).setArc(Math.PI); + ((Curve)shape).setArcDeg(180); shape.setHeightStartLeft(0); shape.setHeightStartRight(0); shape.setHeightEndLeft(0); @@ -611,7 +611,7 @@ public class EditorFrame extends JFrame shape = new Curve(); ((Curve)shape).setRadiusStart(100); ((Curve)shape).setRadiusEnd(100); - ((Curve)shape).setArc(Math.PI); + ((Curve)shape).setArcDeg(180); shape.setHeightStartLeft(0); shape.setHeightStartRight(0); shape.setHeightEndLeft(0); diff --git a/src/tools/trackeditor/gui/segment/SegmentEditorDlg.java b/src/tools/trackeditor/gui/segment/SegmentEditorDlg.java index 828c25236..335be8fb3 100644 --- a/src/tools/trackeditor/gui/segment/SegmentEditorDlg.java +++ b/src/tools/trackeditor/gui/segment/SegmentEditorDlg.java @@ -355,10 +355,10 @@ public class SegmentEditorDlg extends JDialog implements SliderListener arcSlider.setMax(360); arcSlider.setExtent(10); arcSlider.setTickSpacing(1); - arcSlider.setRealToTextCoeff(180/Math.PI); + arcSlider.setRealToTextCoeff(1); if (!shape.getType().equals("str")) { - arcSlider.setMethod("Arc"); + arcSlider.setMethod("ArcDeg"); } arcSlider.addSliderListener(this); } @@ -770,7 +770,7 @@ public class SegmentEditorDlg extends JDialog implements SliderListener getGroupButton().setEnabled(true); getGroupButton().setSelected(curve.getType()); - this.getArcSlider().setValue(curve.getArc()); + this.getArcSlider().setValue(curve.getArcDeg()); this.getRadiusStartSlider().setValue(curve.getRadiusStart()); this.getRadiusEndSlider().setValue(curve.getRadiusEnd()); this.getMarksTextField().setEnabled(true); diff --git a/src/tools/trackeditor/gui/view/CircuitView.java b/src/tools/trackeditor/gui/view/CircuitView.java index 5c3dd537b..555cfb1e8 100644 --- a/src/tools/trackeditor/gui/view/CircuitView.java +++ b/src/tools/trackeditor/gui/view/CircuitView.java @@ -260,7 +260,7 @@ public class CircuitView extends JComponent implements KeyListener, MouseListene Vector data = editorFrame.getTrackData().getSegments(); int pos = data.indexOf(handledShape); Curve newShape = new Curve("lft",handledShape); - newShape.setArc(Math.PI/2); + newShape.setArcDeg(90); newShape.setRadiusStart(50); newShape.setRadiusEnd(50); newShape.inheritProperties(handledShape); @@ -289,7 +289,7 @@ public class CircuitView extends JComponent implements KeyListener, MouseListene Vector data = editorFrame.getTrackData().getSegments(); int pos = data.indexOf(handledShape); Curve newShape = new Curve("rgt",handledShape); - newShape.setArc(Math.PI/2); + newShape.setArcDeg(90); newShape.setRadiusStart(50); newShape.setRadiusEnd(50); newShape.inheritProperties(handledShape); diff --git a/src/tools/trackeditor/plugin/torcs/XmlReader.java b/src/tools/trackeditor/plugin/torcs/XmlReader.java index 753c2bfed..35bef6053 100644 --- a/src/tools/trackeditor/plugin/torcs/XmlReader.java +++ b/src/tools/trackeditor/plugin/torcs/XmlReader.java @@ -687,8 +687,7 @@ public class XmlReader } else { double arc = getAttrNumValue(seg, "arc", "deg"); - arc = (arc * Math.PI) / 180; - ((Curve) shape).setArc(arc); + ((Curve) shape).setArcDeg(arc); double startRad = getAttrNumValue(seg, "radius", "m"); ((Curve) shape).setRadiusStart(startRad); double endRad = getAttrNumValue(seg, "end radius", "m"); diff --git a/src/tools/trackeditor/plugin/torcs/XmlWriter.java b/src/tools/trackeditor/plugin/torcs/XmlWriter.java index 4aff14b83..bd09353d6 100644 --- a/src/tools/trackeditor/plugin/torcs/XmlWriter.java +++ b/src/tools/trackeditor/plugin/torcs/XmlWriter.java @@ -284,8 +284,7 @@ public class XmlWriter addContent(segment, "lg", "m", ((Straight) shape).getLength()); } else { - double arc = ((Curve) shape).getArc(); - arc = (arc * 180) / Math.PI; + double arc = ((Curve) shape).getArcDeg(); addContent(segment, "arc", "deg", arc); double radStart = ((Curve) shape).getRadiusStart(); diff --git a/src/tools/trackeditor/utils/circuit/Curve.java b/src/tools/trackeditor/utils/circuit/Curve.java index 08bd16a05..551ffd993 100644 --- a/src/tools/trackeditor/utils/circuit/Curve.java +++ b/src/tools/trackeditor/utils/circuit/Curve.java @@ -36,7 +36,7 @@ import miscel.EPMath; public class Curve extends Segment implements Cloneable { - protected double arc; + protected double arcDeg; protected double radiusStart; protected double radiusEnd; @@ -91,6 +91,7 @@ public class Curve extends Segment implements Cloneable */ // calc turn length + double arc = arcDeg * Math.PI / 180; length = arc * (radiusStart + radiusEnd) / 2; nbSteps = (int) (length / profilStepsLength + 0.5) + 1; @@ -346,16 +347,30 @@ public class Curve extends Segment implements Cloneable /** * @return Returns the arc. */ - public double getArc() + public double getArcRad() { - return arc; + return arcDeg * Math.PI / 180; } /** * @param arc The arc to set. */ - public void setArc(double arc) + public void setArcRad(double arcRad) { - this.arc = arc; + this.arcDeg = arcRad * 180 / Math.PI; + } + /** + * @return Returns the arc. + */ + public double getArcDeg() + { + return arcDeg; + } + /** + * @param arc The arc to set. + */ + public void setArcDeg(double arcDeg) + { + this.arcDeg = arcDeg; } /** * @return Returns the radiusEnd. @@ -401,7 +416,7 @@ public class Curve extends Segment implements Cloneable { Curve s; s = (Curve) super.clone(); - s.arc = this.arc; + s.arcDeg = this.arcDeg; s.radiusStart = this.radiusStart; s.radiusEnd = this.radiusEnd;