Changeset 169:3d1cd0ee9c59 in finroc_plugins_data_types-java


Ignore:
Timestamp:
05.12.2018 14:20:07 (5 days ago)
Author:
Max Reichardt <max.reichardt@…>
Branch:
default
Phase:
public
Tags:
tip
Message:

Aligns string serialization of pose types with C++ pose types (angles are always in degrees)

Files:
3 edited

Legend:

Unmodified
Added
Removed
  • Angle.java

    r118 r169  
    9494 
    9595    public double getSignedDeg() { 
    96         return (getSignedRad() / Math.PI) * 180; 
     96        return radToDeg(getSignedRad()); 
    9797    } 
    9898 
    9999    public double getUnsignedDeg() { 
    100         return (getUnsignedRad() / Math.PI) * 180; 
     100        return radToDeg(getUnsignedRad()); 
    101101    } 
    102102 
     
    112112 
    113113    public void setDeg(double newAngle) { 
    114         setRad((newAngle / 180.0) * Math.PI); 
     114        setRad(degToRad(newAngle)); 
     115    } 
     116 
     117    static public double degToRad(double deg) { 
     118        return (deg / 180) * Math.PI; 
     119    } 
     120 
     121    static public double radToDeg(double rad) { 
     122        return (rad / Math.PI) * 180; 
    115123    } 
    116124 
  • Pose2D.java

    r137 r169  
    6969    @Override 
    7070    public void serialize(StringOutputStream os) { 
    71         os.append("(").append(x).append(", ").append(y).append(", ").append(yaw).append(")"); 
     71        os.append("(").append(x).append(", ").append(y).append(", ").append(Angle.radToDeg(yaw)).append("°)"); 
     72    } 
     73 
     74    public static double deserializeAngle(String s) { 
     75        s = s.trim(); 
     76        if (s.endsWith("°")) { 
     77            return Angle.degToRad(Double.parseDouble(s.substring(0, s.length() - 1))); 
     78        } 
     79        String sLowCase = s.toLowerCase(); 
     80        if (sLowCase.endsWith("rad")) { 
     81            return Double.parseDouble(s.substring(0, s.length() - 3)); 
     82        } 
     83        return Angle.degToRad(Double.parseDouble(s)); 
    7284    } 
    7385 
     
    8294                x = Double.parseDouble(nums[0]); 
    8395                y = Double.parseDouble(nums[1]); 
    84                 yaw = Double.parseDouble(nums[2]); 
     96                yaw = deserializeAngle(nums[2]); 
    8597                return; 
    8698            } 
  • Pose3D.java

    r151 r169  
    7171    @Override 
    7272    public void serialize(StringOutputStream os) { 
    73         os.append("(").append(x).append(", ").append(y).append(", ").append(z).append(", ").append(roll).append(", ").append(pitch).append(", ").append(yaw).append(")"); 
     73        os.append("(").append(x).append(", ").append(y).append(", ").append(z).append(", ").append(Angle.radToDeg(roll)).append("°, ").append(Angle.radToDeg(pitch)).append("°, ").append(Angle.radToDeg(yaw)).append("°)"); 
     74    } 
     75 
     76    public static double deserializeAngle(String s) { 
     77        return Pose2D.deserializeAngle(s); 
    7478    } 
    7579 
     
    8589                y = Double.parseDouble(nums[1]); 
    8690                z = Double.parseDouble(nums[2]); 
    87                 roll = Double.parseDouble(nums[3]); 
    88                 pitch = Double.parseDouble(nums[4]); 
    89                 yaw = Double.parseDouble(nums[5]); 
     91                roll = deserializeAngle(nums[3]); 
     92                pitch = deserializeAngle(nums[4]); 
     93                yaw = deserializeAngle(nums[5]); 
    9094                return; 
    9195            } 
Note: See TracChangeset for help on using the changeset viewer.