Package jmri.util

Class PhysicalLocation

java.lang.Object
javax.vecmath.Tuple3f
javax.vecmath.Vector3f
jmri.util.PhysicalLocation
All Implemented Interfaces:
Serializable, Cloneable

public class PhysicalLocation extends javax.vecmath.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:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
    NBPropertyKey : Key name used when storing a PhysicalLocation as a NamedBean Property
    static final PhysicalLocation
    Origin : constant representation of (0, 0, 0)

    Fields inherited from class javax.vecmath.Tuple3f

    x, y, z
  • Constructor Summary

    Constructors
    Constructor
    Description
    Default constructor
    PhysicalLocation(double x, double y, double z)
    Constructor from X, Y, Z (double)
    PhysicalLocation(double x, double y, double z, boolean isTunnel)
    Constructor from X, Y, Z (double)
    PhysicalLocation(float x, float y, float z)
    Constructor from X, Y, Z (float)
    PhysicalLocation(float x, float y, float z, boolean isTunnel)
    Constructor from X, Y, Z (float) + is_tunnel (boolean)
    PhysicalLocation(javax.vecmath.Vector3d v)
     
    PhysicalLocation(javax.vecmath.Vector3f v)
    Constructor from Vector3f.
    Copy Constructor
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
     
    getBeanPhysicalLocation(NamedBean b) Extract the PhysicalLocation stored in NamedBean b, and return as a new PhysicalLocation object.
    Get a panel component that can be used to view and/or edit a location.
    int
     
    boolean
     
    Parse a string representation (x,y,z) Returns a new PhysicalLocation object.
    static void
    setBeanPhysicalLocation(PhysicalLocation p, NamedBean b) Store PhysicalLocation p as a property in NamedBean b.
    void
    setIsTunnel(boolean t)
     
    toString() Output a string representation (x,y,z)
    javax.vecmath.Vector3d
     
    void
    translate() Translate this PhysicalLocation's coordinates to be relative to point "ref".
    translate() Return a PhysicalLocation that represents the position of point "loc" relative to reference point "ref".

    Methods inherited from class javax.vecmath.Vector3f

    angle, cross, dot, length, lengthSquared, normalize, normalize

    Methods inherited from class javax.vecmath.Tuple3f

    absolute, absolute, add, add, clamp, clamp, clampMax, clampMax, clampMin, clampMin, clone, epsilonEquals, equals, get, get, getX, getY, getZ, interpolate, interpolate, negate, negate, scale, scale, scaleAdd, scaleAdd, set, set, set, set, setX, setY, setZ, sub, sub

    Methods inherited from class java.lang.Object

    finalize, getClass, notify, notifyAll, wait, wait, wait
  • Field Details

  • Constructor Details

    • PhysicalLocation

      Default constructor
    • PhysicalLocation

      public PhysicalLocation(javax.vecmath.Vector3f v)
      Constructor from Vector3f.
      Parameters:
      v - the vector
    • PhysicalLocation

      public PhysicalLocation(javax.vecmath.Vector3d v)
    • 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
    • PhysicalLocation

      Copy Constructor
      Parameters:
      p - the location to copy
  • Method Details

    • translate

      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

      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

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

      public static PhysicalLocationPanel getPanel(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(String pos)
      Parse a string representation (x,y,z) Returns a new PhysicalLocation object.
      Parameters:
      pos - : String "(X, Y, Z)"
      Returns:
      PhysicalLocation
    • toString

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

      public javax.vecmath.Vector3d toVector3d()
    • isTunnel

      public boolean isTunnel()
    • setIsTunnel

      public void setIsTunnel(boolean t)
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class javax.vecmath.Tuple3f
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class javax.vecmath.Tuple3f
    • 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