根据生成原因,岩石可以分为几类?