[原][osgearth]设置OE的高程,高度场的数据。修改设置高度值

时间:2023-03-08 18:46:55
    for( unsigned int row=; row < hf->getNumRows(); ++row )
{
for( unsigned int col=; col < hf->getNumColumns(); ++col )
{
float val = hf->getHeight(col, row);
if ( !isNoData( val ) ) {
continue;
}
if ( col > )
val = hf->getHeight(col-,row);
else if ( col <= hf->getNumColumns()- )
val = hf->getHeight(col+,row); if ( isNoData( val ) )
{
if ( row > )
val = hf->getHeight(col, row-);
else if ( row < hf->getNumRows()- )
val = hf->getHeight(col, row+);
} if ( isNoData( val ) )
{
val = _nodata_value;
} hf->setHeight( col, row, val );
}
}

这是从osgearth的ImageToHeightFieldConverter.cpp文件的

osg::HeightField* ImageToHeightFieldConverter::convert(const osg::Image* image ) 函数中找到的。

这里可以看出HeightField高度场中

osg::ref_ptr<osg::FloatArray>   _heights;

的组织方式

HeightField这个类的定义在Shape.cpp文件中!