edu.nps.moves.dis7mobile
Class CollisionElasticPdu

java.lang.Object
  extended by edu.nps.moves.dis7mobile.PduSuperclass
      extended by edu.nps.moves.dis7mobile.Pdu
          extended by edu.nps.moves.dis7mobile.EntityInformationFamilyPdu
              extended by edu.nps.moves.dis7mobile.CollisionElasticPdu
All Implemented Interfaces:
java.io.Serializable

public class CollisionElasticPdu
extends EntityInformationFamilyPdu
implements java.io.Serializable

Information about elastic collisions in a DIS exercise shall be communicated using a Collision-Elastic PDU. Section 7.2.4. COMPLETE 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  float coefficientOfRestitution
          This field shall represent the degree to which energy is conserved in a collision and shall be represented by a 32-bit floating point number.
protected  EntityID collidingEntityID
          This field shall identify the entity that has collided with the issuing entity.
protected  EventIdentifier collisionEventID
          This field shall contain an identification generated by the issuing simulation application to associate related collision events.
protected  float collisionIntermediateResultXX
          These six records represent the six independent components of a positive semi-definite matrix formed by pre-multiplying and post-multiplying the tensor of inertia, by the anti-symmetric matrix generated by the moment arm, and shall be represented by 32-bit floating point numbers (see 5.3.4.4)
protected  float collisionIntermediateResultXY
          tensor values
protected  float collisionIntermediateResultXZ
          tensor values
protected  float collisionIntermediateResultYY
          tensor values
protected  float collisionIntermediateResultYZ
          tensor values
protected  float collisionIntermediateResultZZ
          tensor values
protected  Vector3Float contactVelocity
          This field shall contain the velocity at the time the collision is detected at the point the collision is detected.
protected  EntityID issuingEntityID
          This field shall identify the entity that is issuing the PDU and shall be represented by an Entity Identifier record (see 6.2.28)
protected  Vector3Float locationOfImpact
          This field shall specify the location of the collision with respect to the entity with which the issuing entity collided.
protected  float mass
          This field shall contain the mass of the issuing entity and shall be represented by a 32-bit floating point number representing kilograms
protected  short pad
          some padding
protected  Vector3Float unitSurfaceNormal
          This record shall represent the normal vector to the surface at the point of collision detection.
 
Fields inherited from class edu.nps.moves.dis7mobile.Pdu
padding, pduStatus
 
Fields inherited from class edu.nps.moves.dis7mobile.PduSuperclass
exerciseID, length, pduType, protocolFamily, protocolVersion, timestamp
 
Constructor Summary
CollisionElasticPdu()
          Constructor
 
Method Summary
 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
 float getCoefficientOfRestitution()
           
 EntityID getCollidingEntityID()
           
 EventIdentifier getCollisionEventID()
           
 float getCollisionIntermediateResultXX()
           
 float getCollisionIntermediateResultXY()
           
 float getCollisionIntermediateResultXZ()
           
 float getCollisionIntermediateResultYY()
           
 float getCollisionIntermediateResultYZ()
           
 float getCollisionIntermediateResultZZ()
           
 Vector3Float getContactVelocity()
           
 EntityID getIssuingEntityID()
           
 Vector3Float getLocationOfImpact()
           
 int getMarshalledSize()
           
 float getMass()
           
 short getPad()
           
 Vector3Float getUnitSurfaceNormal()
           
 void marshal(java.nio.ByteBuffer buff)
          Packs a Pdu into the ByteBuffer.
 void marshal(java.io.DataOutputStream dos)
           
 void setCoefficientOfRestitution(float pCoefficientOfRestitution)
           
 void setCollidingEntityID(EntityID pCollidingEntityID)
           
 void setCollisionEventID(EventIdentifier pCollisionEventID)
           
 void setCollisionIntermediateResultXX(float pCollisionIntermediateResultXX)
           
 void setCollisionIntermediateResultXY(float pCollisionIntermediateResultXY)
           
 void setCollisionIntermediateResultXZ(float pCollisionIntermediateResultXZ)
           
 void setCollisionIntermediateResultYY(float pCollisionIntermediateResultYY)
           
 void setCollisionIntermediateResultYZ(float pCollisionIntermediateResultYZ)
           
 void setCollisionIntermediateResultZZ(float pCollisionIntermediateResultZZ)
           
 void setContactVelocity(Vector3Float pContactVelocity)
           
 void setIssuingEntityID(EntityID pIssuingEntityID)
           
 void setLocationOfImpact(Vector3Float pLocationOfImpact)
           
 void setMass(float pMass)
           
 void setPad(short pPad)
           
 void setUnitSurfaceNormal(Vector3Float pUnitSurfaceNormal)
           
 void unmarshal(java.nio.ByteBuffer buff)
          Unpacks a Pdu from the underlying data.
 void unmarshal(java.io.DataInputStream dis)
           
 
Methods inherited from class edu.nps.moves.dis7mobile.Pdu
getPadding, getPduStatus, marshal, setPadding, setPduStatus
 
Methods inherited from class edu.nps.moves.dis7mobile.PduSuperclass
getExerciseID, getLength, getPduType, getProtocolFamily, getProtocolVersion, getTimestamp, setExerciseID, setLength, setPduType, setProtocolFamily, setProtocolVersion, setTimestamp
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

issuingEntityID

protected EntityID issuingEntityID
This field shall identify the entity that is issuing the PDU and shall be represented by an Entity Identifier record (see 6.2.28)


collidingEntityID

protected EntityID collidingEntityID
This field shall identify the entity that has collided with the issuing entity. This field shall be a valid identifier of an entity or server capable of responding to the receipt of this Collision-Elastic PDU. This field shall be represented by an Entity Identifier record (see 6.2.28).


collisionEventID

protected EventIdentifier collisionEventID
This field shall contain an identification generated by the issuing simulation application to associate related collision events. This field shall be represented by an Event Identifier record (see 6.2.34).


pad

protected short pad
some padding


contactVelocity

protected Vector3Float contactVelocity
This field shall contain the velocity at the time the collision is detected at the point the collision is detected. The velocity shall be represented in world coordinates. This field shall be represented by the Linear Velocity Vector record [see 6.2.95 item c)]


mass

protected float mass
This field shall contain the mass of the issuing entity and shall be represented by a 32-bit floating point number representing kilograms


locationOfImpact

protected Vector3Float locationOfImpact
This field shall specify the location of the collision with respect to the entity with which the issuing entity collided. This field shall be represented by an Entity Coordinate Vector record [see 6.2.95 item a)].


collisionIntermediateResultXX

protected float collisionIntermediateResultXX
These six records represent the six independent components of a positive semi-definite matrix formed by pre-multiplying and post-multiplying the tensor of inertia, by the anti-symmetric matrix generated by the moment arm, and shall be represented by 32-bit floating point numbers (see 5.3.4.4)


collisionIntermediateResultXY

protected float collisionIntermediateResultXY
tensor values


collisionIntermediateResultXZ

protected float collisionIntermediateResultXZ
tensor values


collisionIntermediateResultYY

protected float collisionIntermediateResultYY
tensor values


collisionIntermediateResultYZ

protected float collisionIntermediateResultYZ
tensor values


collisionIntermediateResultZZ

protected float collisionIntermediateResultZZ
tensor values


unitSurfaceNormal

protected Vector3Float unitSurfaceNormal
This record shall represent the normal vector to the surface at the point of collision detection. The surface normal shall be represented in world coordinates. This field shall be represented by an Entity Coordinate Vector record [see 6.2.95 item a)].


coefficientOfRestitution

protected float coefficientOfRestitution
This field shall represent the degree to which energy is conserved in a collision and shall be represented by a 32-bit floating point number. In addition, it represents a free parameter by which simulation application developers may tune their collision interactions.

Constructor Detail

CollisionElasticPdu

public CollisionElasticPdu()
Constructor

Method Detail

getMarshalledSize

public int getMarshalledSize()
Overrides:
getMarshalledSize in class EntityInformationFamilyPdu

setIssuingEntityID

public void setIssuingEntityID(EntityID pIssuingEntityID)

getIssuingEntityID

public EntityID getIssuingEntityID()

setCollidingEntityID

public void setCollidingEntityID(EntityID pCollidingEntityID)

getCollidingEntityID

public EntityID getCollidingEntityID()

setCollisionEventID

public void setCollisionEventID(EventIdentifier pCollisionEventID)

getCollisionEventID

public EventIdentifier getCollisionEventID()

setPad

public void setPad(short pPad)

getPad

public short getPad()

setContactVelocity

public void setContactVelocity(Vector3Float pContactVelocity)

getContactVelocity

public Vector3Float getContactVelocity()

setMass

public void setMass(float pMass)

getMass

public float getMass()

setLocationOfImpact

public void setLocationOfImpact(Vector3Float pLocationOfImpact)

getLocationOfImpact

public Vector3Float getLocationOfImpact()

setCollisionIntermediateResultXX

public void setCollisionIntermediateResultXX(float pCollisionIntermediateResultXX)

getCollisionIntermediateResultXX

public float getCollisionIntermediateResultXX()

setCollisionIntermediateResultXY

public void setCollisionIntermediateResultXY(float pCollisionIntermediateResultXY)

getCollisionIntermediateResultXY

public float getCollisionIntermediateResultXY()

setCollisionIntermediateResultXZ

public void setCollisionIntermediateResultXZ(float pCollisionIntermediateResultXZ)

getCollisionIntermediateResultXZ

public float getCollisionIntermediateResultXZ()

setCollisionIntermediateResultYY

public void setCollisionIntermediateResultYY(float pCollisionIntermediateResultYY)

getCollisionIntermediateResultYY

public float getCollisionIntermediateResultYY()

setCollisionIntermediateResultYZ

public void setCollisionIntermediateResultYZ(float pCollisionIntermediateResultYZ)

getCollisionIntermediateResultYZ

public float getCollisionIntermediateResultYZ()

setCollisionIntermediateResultZZ

public void setCollisionIntermediateResultZZ(float pCollisionIntermediateResultZZ)

getCollisionIntermediateResultZZ

public float getCollisionIntermediateResultZZ()

setUnitSurfaceNormal

public void setUnitSurfaceNormal(Vector3Float pUnitSurfaceNormal)

getUnitSurfaceNormal

public Vector3Float getUnitSurfaceNormal()

setCoefficientOfRestitution

public void setCoefficientOfRestitution(float pCoefficientOfRestitution)

getCoefficientOfRestitution

public float getCoefficientOfRestitution()

marshal

public void marshal(java.io.DataOutputStream dos)
Overrides:
marshal in class EntityInformationFamilyPdu

unmarshal

public void unmarshal(java.io.DataInputStream dis)
Overrides:
unmarshal in class EntityInformationFamilyPdu

marshal

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

Overrides:
marshal in class EntityInformationFamilyPdu
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.

Overrides:
unmarshal in class EntityInformationFamilyPdu
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 EntityInformationFamilyPdu

equalsImpl

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

Overrides:
equalsImpl in class EntityInformationFamilyPdu
Parameters:
obj - the object to compare to
Returns:
true if the objects are equal, false otherwise.