com riff
my feature complete, but has some bug, why inArea don't have roation-invariant