WIP: TerrainViewer の分離

#8 の対応です。