public Matrix44 calculateTransformation(javax.vecmath.Matrix4d m, ReferenceFrame asSeenBy) { ReferenceFrame vehicle = (ReferenceFrame) getParent(); if (asSeenBy == null) { asSeenBy = vehicle; } if (asSeenBy == vehicle) { return new Matrix44(m); } else { javax.vecmath.Matrix4d vehicleInverse; if (vehicle != null) { vehicleInverse = vehicle.getInverseAbsoluteTransformation(); } else { vehicleInverse = new javax.vecmath.Matrix4d(); vehicleInverse.setIdentity(); } return Matrix44.multiply( m, Matrix44.multiply(asSeenBy.getAbsoluteTransformation(), vehicleInverse)); } }
public void setAbsoluteTransformation(javax.vecmath.Matrix4d m) { ReferenceFrame vehicle = (ReferenceFrame) getParent(); setLocalTransformation(MathUtilities.multiply(m, vehicle.getInverseAbsoluteTransformation())); }