osgTerrain.TerrainNeighbours 类用于存储高度图(terrain)中每个块的邻居信息。该类包含块的四个邻居、角落和中心八个位置的邻居信息。
TerrainNeighbours()默认构造函数,创建一个未初始化的 TerrainNeighbours 对象。
TerrainNeighbours(const TerrainNeighbours& tn)复制构造函数,根据给定的 TerrainNeighbours 对象进行复制构造。
TerrainNeighbours& operator=(const TerrainNeighbours& tn)赋值运算符,将一个 TerrainNeighbours 对象赋值给另一个对象。
osgTerrain::TerrainTile* getTile(int index) const获取指定位置(索引)的邻居块。
参数:
index:邻居位置的索引,取值为 0 ~ 9。返回值:指定位置的邻居块。
TerrainNeighbours 类中的位置索引如下所示:
0 1 2
3 4
5 6 7
其中,中心位置为索引 4,四周位置分别为索引 0、1、2、3、5、6、7。
osg::ref_ptr<osgTerrain::TerrainTile> centerTile = ...; // 中心块
osg::ref_ptr<osgTerrain::TerrainTile> tile0 = ...; // 索引 0 的邻居块
// ...
osgTerrain::TerrainNeighbours neighbours;
neighbours.setTile(0, tile0); // 设置索引为 0 的邻居块
// ...
centerTile->setNeighbours(neighbours); // 设置中心块的邻居信息
以上示例代码展示了如何通过 TerrainNeighbours 类的 setTile() 函数设置邻居块,并将邻居信息应用于中心块。