add non-planar support