using a custom compare function instead of a global aiVector3t less than operator