Package jmri.util
Class PhysicalLocation
java.lang.Object
javax.vecmath.Tuple3f
javax.vecmath.Vector3f
jmri.util.PhysicalLocation
- All Implemented Interfaces:
Serializable,Cloneable
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
FieldsModifier and TypeFieldDescriptionstatic final StringNBPropertyKey : Key name used when storing a PhysicalLocation as a NamedBean Propertystatic final PhysicalLocationOrigin : constant representation of (0, 0, 0)Fields inherited from class javax.vecmath.Tuple3f
x, y, z -
Constructor Summary
ConstructorsConstructorDescriptionDefault constructorPhysicalLocation(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 TypeMethodDescriptionbooleanstatic PhysicalLocationgetBeanPhysicalLocation(NamedBean b) Extract the PhysicalLocation stored in NamedBean b, and return as a new PhysicalLocation object.static PhysicalLocationPanelGet a panel component that can be used to view and/or edit a location.inthashCode()booleanisTunnel()static PhysicalLocationParse a string representation (x,y,z) Returns a new PhysicalLocation object.static voidsetBeanPhysicalLocation(PhysicalLocation p, NamedBean b) Store PhysicalLocation p as a property in NamedBean b.voidsetIsTunnel(boolean t) toString()toString() Output a string representation (x,y,z)javax.vecmath.Vector3dvoidtranslate() Translate this PhysicalLocation's coordinates to be relative to point "ref".static PhysicalLocationtranslate(PhysicalLocation loc, PhysicalLocation 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, normalizeMethods 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
-
Field Details
-
Origin
Origin : constant representation of (0, 0, 0) -
NBPropertyKey
NBPropertyKey : Key name used when storing a PhysicalLocation as a NamedBean Property- See Also:
-
-
Constructor Details
-
PhysicalLocation
public PhysicalLocation()Default constructor -
PhysicalLocation
Constructor from Vector3f.- Parameters:
v- the vector
-
PhysicalLocation
-
PhysicalLocation
Constructor from X, Y, Z (float) + is_tunnel (boolean)- Parameters:
x- location on X axisy- location on Y axisz- location on Z axisisTunnel- true is location is in a tunnel
-
PhysicalLocation
Constructor from X, Y, Z (float)- Parameters:
x- location on X axisy- location on Y axisz- location on Z axis
-
PhysicalLocation
Constructor from X, Y, Z (double)- Parameters:
x- location on X axisy- location on Y axisz- location on Z axis
-
PhysicalLocation
Constructor from X, Y, Z (double)- Parameters:
x- location on X axisy- location on Y axisz- location on Z axisisTunnel- 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 translateref- : 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- PhysicalLocationb- NamedBean
-
getPanel
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
Parse a string representation (x,y,z) Returns a new PhysicalLocation object.- Parameters:
pos- : String "(X, Y, Z)"- Returns:
- PhysicalLocation
-
toString
toString() Output a string representation (x,y,z)- Overrides:
toStringin classjavax.vecmath.Tuple3f- Returns:
- String "(X, Y, Z)"
-
toVector3d
-
isTunnel
-
setIsTunnel
-
equals
- Overrides:
equalsin classjavax.vecmath.Tuple3f
-
hashCode
- Overrides:
hashCodein classjavax.vecmath.Tuple3f
-
translate
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
-