edu.nps.moves.dismobile
Class Vector3Double

java.lang.Object
  extended by edu.nps.moves.dismobile.Vector3Double
All Implemented Interfaces:
java.io.Serializable

public class Vector3Double
extends java.lang.Object
implements java.io.Serializable

Section 5.3.34. Three double precision floating point values, x, y, and z Copyright (c) 2008-2010, MOVES Institute, Naval Postgraduate School. All rights reserved. This work is licensed under the BSD open source license, available at https://www.movesinstitute.org/licenses/bsd.html

Author:
DMcG
See Also:
Serialized Form

Field Summary
protected  double x
          X value
protected  double y
          Y value
protected  double z
          Z value
 
Constructor Summary
Vector3Double()
          Constructor
 
Method Summary
 void convertDisToLatitudeLongitudeAltitude()
          Assuming that the Vector3Double contains DIS coordinate system values, converts them in place to latitude in the x value, longitude in the y value, (in degrees) and altitude in meters for the z value.
 void convertLatitudeLongitudeAltitudeToDis()
          Assuming that the x,y,z values of this Vector3Double are x=latitude, y=longitude, (in degrees) and z=altitude (in meters), converts them to DIS coordinates
 boolean equals(java.lang.Object obj)
           
 boolean equalsImpl(java.lang.Object obj)
          Compare all fields that contribute to the state, ignoring transient and static fields, for this and the supplied object
 int getMarshalledSize()
           
 double getX()
           
 double getY()
           
 double getZ()
           
 void marshal(java.nio.ByteBuffer buff)
          Packs a Pdu into the ByteBuffer.
 void marshal(java.io.DataOutputStream dos)
           
 void setX(double pX)
           
 void setY(double pY)
           
 void setZ(double pZ)
           
 void unmarshal(java.nio.ByteBuffer buff)
          Unpacks a Pdu from the underlying data.
 void unmarshal(java.io.DataInputStream dis)
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

x

protected double x
X value


y

protected double y
Y value


z

protected double z
Z value

Constructor Detail

Vector3Double

public Vector3Double()
Constructor

Method Detail

getMarshalledSize

public int getMarshalledSize()

setX

public void setX(double pX)

getX

public double getX()

setY

public void setY(double pY)

getY

public double getY()

setZ

public void setZ(double pZ)

getZ

public double getZ()

marshal

public void marshal(java.io.DataOutputStream dos)

unmarshal

public void unmarshal(java.io.DataInputStream dis)

marshal

public void marshal(java.nio.ByteBuffer buff)
Packs a Pdu into the ByteBuffer.

Parameters:
buff - The ByteBuffer at the position to begin writing
Throws:
java.nio.BufferOverflowException - if buff is too small
java.nio.ReadOnlyBufferException - if buff is read only
Since:
??
See Also:
ByteBuffer

unmarshal

public void unmarshal(java.nio.ByteBuffer buff)
Unpacks a Pdu from the underlying data.

Parameters:
buff - The ByteBuffer at the position to begin reading
Throws:
java.nio.BufferUnderflowException - if buff is too small
Since:
??
See Also:
ByteBuffer

equals

public boolean equals(java.lang.Object obj)
Overrides:
equals in class java.lang.Object

equalsImpl

public boolean equalsImpl(java.lang.Object obj)
Compare all fields that contribute to the state, ignoring transient and static fields, for this and the supplied object

Parameters:
obj - the object to compare to
Returns:
true if the objects are equal, false otherwise.

convertLatitudeLongitudeAltitudeToDis

public void convertLatitudeLongitudeAltitudeToDis()
Assuming that the x,y,z values of this Vector3Double are x=latitude, y=longitude, (in degrees) and z=altitude (in meters), converts them to DIS coordinates

Vector3Double is very often ued for setting the entity position. This is a convienience method that allows the programmer to set a latitude, longitude, and altitude, and have it converted to the DIS coordiinate system

The DIS standard uses an earth-centered, rectilinear coordinate system with the Z axis pointing through the north pole, the X axis pointing out at the intersection of the equator and prime meridian, and the Y axis pointing out at the equator and 90 deg east. Since pretty much no one else uses this, it can make finding the "DIS standard" x,y,z difficult if you have only latitude, longitude, and altitude. This method does the converstion from those three values to the DIS coordinate system.

The conversion is always somewhat problematic, depending on what model of the earth's surface you use. This uses the WGS84 elipsoid model, and may not be accurate around the poles.


convertDisToLatitudeLongitudeAltitude

public void convertDisToLatitudeLongitudeAltitude()
Assuming that the Vector3Double contains DIS coordinate system values, converts them in place to latitude in the x value, longitude in the y value, (in degrees) and altitude in meters for the z value.