dont pass shape, just use this
fix bug: rename __needTransform 2 needTransform
little optimize