public Quaternion attitudeGetReferenceRotation(AttitudeReference reference)
{
Quaternion rotRef = Quaternion.identity;
switch (reference)
{
case AttitudeReference.ORBIT:
rotRef = Quaternion.LookRotation(velocityVesselOrbitNorm, up);
break;
case AttitudeReference.ORBIT_HORIZONTAL:
rotRef = Quaternion.LookRotation(Vector3d.Exclude(up, velocityVesselOrbitNorm), up);
break;
case AttitudeReference.SURFACE_NORTH:
rotRef = rotationSurface;
break;
case AttitudeReference.SURFACE_VELOCITY:
rotRef = Quaternion.LookRotation(velocityVesselSurfaceUnit, up);
break;
case AttitudeReference.CURFRAME:
if(vessel.altitude > vessel.mainBody.maxAtmosphereAltitude)
rotRef = Quaternion.LookRotation(velocityVesselOrbitNorm, up);
else
rotRef = Quaternion.LookRotation(velocityVesselSurfaceUnit, up);
break;
}
return rotRef;
}