reworked projection
handle case when viewPoint is null