| 265 | |
| 266 | template <> |
| 267 | void putSimpleVolumeInDenseGrid( |
| 268 | openvdb::FloatGrid& grid, |
| 269 | const Vector3i& minCoord, const SimpleVolume& simpleVolume, ProgressCallback cb |
| 270 | ) |
| 271 | { |
| 272 | MR_TIMER; |
| 273 | if ( cb ) |
| 274 | cb( 0.0f ); |
| 275 | openvdb::math::Coord dimsCoord( simpleVolume.dims.x, simpleVolume.dims.y, simpleVolume.dims.z ); |
| 276 | openvdb::math::CoordBBox denseBBox( toVdb( minCoord ), toVdb( minCoord ) + dimsCoord.offsetBy( -1 ) ); |
| 277 | openvdb::tools::Dense<float, openvdb::tools::LayoutXYZ> dense( denseBBox, const_cast< float* >( simpleVolume.data.data() ) ); |
| 278 | if ( cb ) |
| 279 | cb( 0.5f ); |
| 280 | openvdb::tools::copyFromDense( dense, grid, denseVolumeToGridTolerance ); |
| 281 | if ( cb ) |
| 282 | cb( 1.f ); |
| 283 | } |
| 284 | |
| 285 | template <> |
| 286 | void putSimpleVolumeInDenseGrid( |
no test coverage detected