Package jmri.util

Class PhysicalLocation

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable

    public class PhysicalLocation
    extends Vector3f
    PhysicalLocation Represents a physical location on the layout in 3D space. Dimension units are not specified, but should be kept consistent in all three dimensions for a given usage. Used by VSDecoder for spatially positioning sounds on the layout. Could also be used, for example, for velocity calculations between sensors, or for keying operations locations or panel icons to a physical map view of the layout.
    See Also:
    Serialized Form
    • Field Detail

      • NBPropertyKey

        public static final java.lang.String NBPropertyKey
        NBPropertyKey : Key name used when storing a PhysicalLocation as a NamedBean Property
        See Also:
        Constant Field Values
    • Constructor Detail

      • PhysicalLocation

        public PhysicalLocation​(float x,
                                float y,
                                float z,
                                boolean isTunnel)
        Constructor from X, Y, Z (float) + is_tunnel (boolean)
        Parameters:
        x - location on X axis
        y - location on Y axis
        z - location on Z axis
        isTunnel - true is location is in a tunnel
      • PhysicalLocation

        public PhysicalLocation​(float x,
                                float y,
                                float z)
        Constructor from X, Y, Z (float)
        Parameters:
        x - location on X axis
        y - location on Y axis
        z - location on Z axis
      • PhysicalLocation

        public PhysicalLocation​(double x,
                                double y,
                                double z)
        Constructor from X, Y, Z (double)
        Parameters:
        x - location on X axis
        y - location on Y axis
        z - location on Z axis
      • PhysicalLocation

        public PhysicalLocation​(double x,
                                double y,
                                double z,
                                boolean isTunnel)
        Constructor from X, Y, Z (double)
        Parameters:
        x - location on X axis
        y - location on Y axis
        z - location on Z axis
        isTunnel - true if location is in a tunnel
    • Method Detail

      • translate

        public static PhysicalLocation translate​(PhysicalLocation loc,
                                                 PhysicalLocation ref)
        translate() Return a PhysicalLocation that represents the position of point "loc" relative to reference point "ref".
        Parameters:
        loc - : PhysicalLocation to translate
        ref - : PhysicalLocation to use as new reference point (origin)
        Returns:
        PhysicalLocation
      • getBeanPhysicalLocation

        public static PhysicalLocation getBeanPhysicalLocation​(NamedBean b)
        getBeanPhysicalLocation(NamedBean b) Extract the PhysicalLocation stored in NamedBean b, and return as a new PhysicalLocation object. If the given NamedBean does not have a PhysicalLocation property returns Origin. (should probably return null instead, but...)
        Parameters:
        b - : NamedBean
        Returns:
        PhysicalLocation
      • setBeanPhysicalLocation

        public static void setBeanPhysicalLocation​(PhysicalLocation p,
                                                   NamedBean b)
        setBeanPhysicalLocation(PhysicalLocation p, NamedBean b) Store PhysicalLocation p as a property in NamedBean b.
        Parameters:
        p - PhysicalLocation
        b - NamedBean
      • getPanel

        public static PhysicalLocationPanel getPanel​(java.lang.String title)
        Get a panel component that can be used to view and/or edit a location.
        Parameters:
        title - the title of the component
        Returns:
        a new component
      • parse

        public static PhysicalLocation parse​(java.lang.String pos)
        Parse a string representation (x,y,z) Returns a new PhysicalLocation object.
        Parameters:
        pos - : String "(X, Y, Z)"
        Returns:
        PhysicalLocation
      • toString

        public java.lang.String toString()
        toString() Output a string representation (x,y,z)
        Overrides:
        toString in class Tuple3f
        Returns:
        String "(X, Y, Z)"
      • translate

        public void translate​(PhysicalLocation ref)
        translate() Translate this PhysicalLocation's coordinates to be relative to point "ref". NOTE: This is a "permanent" internal translation, and permanently changes this PhysicalLocation's value. If you want a new PhysicalLocation that represents the relative position, call the class method translate(loc, ref)
        Parameters:
        ref - new reference (origin) point