| 298 | } |
| 299 | |
| 300 | void deserialize(std::istream &is) |
| 301 | { |
| 302 | is.read(reinterpret_cast<char *>(&m_isSurface), sizeof(m_isSurface)); |
| 303 | is.read(reinterpret_cast<char *>(&m_decayOnSpatialSplit), sizeof(m_decayOnSpatialSplit)); |
| 304 | is.read(reinterpret_cast<char *>(&m_iteration), sizeof(m_iteration)); |
| 305 | is.read(reinterpret_cast<char *>(&m_totalSPP), sizeof(m_totalSPP)); |
| 306 | is.read(reinterpret_cast<char *>(&m_deterministic), sizeof(m_deterministic)); |
| 307 | is.read(reinterpret_cast<char *>(&m_fitRegions), sizeof(m_fitRegions)); |
| 308 | is.read(reinterpret_cast<char *>(&m_isSceneBoundsSet), sizeof(m_isSceneBoundsSet)); |
| 309 | is.read(reinterpret_cast<char *>(&m_sceneBounds), sizeof(m_sceneBounds)); |
| 310 | is.read(reinterpret_cast<char *>(&m_initialized), sizeof(m_initialized)); |
| 311 | |
| 312 | is.read(reinterpret_cast<char *>(&m_timeLastUpdate), sizeof(m_timeLastUpdate)); |
| 313 | is.read(reinterpret_cast<char *>(&m_timeLastUpdateCopySamples), sizeof(m_timeLastUpdateCopySamples)); |
| 314 | is.read(reinterpret_cast<char *>(&m_timeLastUpdateSpatialStructureUpdate), sizeof(m_timeLastUpdateSpatialStructureUpdate)); |
| 315 | is.read(reinterpret_cast<char *>(&m_timeLastUpdateDirectionalDistriubtionUpdate), sizeof(m_timeLastUpdateDirectionalDistriubtionUpdate)); |
| 316 | |
| 317 | m_distributionFactorySettings.deserialize(is); |
| 318 | m_spatialSubdivBuilderSettings.deserialize(is); |
| 319 | m_spatialSubdiv.deserialize(is); |
| 320 | size_t size; |
| 321 | is.read(reinterpret_cast<char *>(&size), sizeof(size)); |
| 322 | m_regionStorageContainer.clear(); |
| 323 | m_regionStorageContainer.reserve(size); |
| 324 | for (size_t i = 0; i < size; i++) |
| 325 | { |
| 326 | m_regionStorageContainer.emplace_back(); |
| 327 | m_regionStorageContainer[i].first.deserialize(is); |
| 328 | m_regionStorageContainer[i].second.deserialize(is); |
| 329 | } |
| 330 | is.read(reinterpret_cast<char *>(&m_useStochasticNNLookUp), sizeof(m_useStochasticNNLookUp)); |
| 331 | is.read(reinterpret_cast<char *>(&m_useISNNLookUp), sizeof(m_useISNNLookUp)); |
| 332 | m_regionKNNSearchTree.deserialize(is); |
| 333 | |
| 334 | if (m_useStochasticNNLookUp && USE_PRECOMPUTED_NN && m_regionKNNSearchTree.isBuild()) |
| 335 | { |
| 336 | m_regionKNNSearchTree.buildRegionNeighbours(); |
| 337 | } |
| 338 | } |
| 339 | |
| 340 | bool isValid() const |
| 341 | { |
nothing calls this directly
no test coverage detected