void OctreeLowMemBase<DataT, LeafT>::deserializeLeafCallback ( OctreeLeaf& leaf_arg, const OctreeKey& key_arg, typename std::vector<DataT>::const_iterator& dataVectorIterator_arg, typename std::vector<DataT>::const_iterator& dataVectorEndIterator_arg) { OctreeKey dataKey; bool bKeyBasedEncoding = false; // add DataT objects to octree leaf as long as their key fit to voxel while ((dataVectorIterator_arg != dataVectorEndIterator_arg) && (this->genOctreeKeyForDataT (*dataVectorIterator_arg, dataKey) && (dataKey == key_arg))) { leaf_arg.setData (*dataVectorIterator_arg); dataVectorIterator_arg++; bKeyBasedEncoding = true; } // add single DataT object to octree if key-based encoding is disabled if (!bKeyBasedEncoding) { leaf_arg.setData (*dataVectorIterator_arg); dataVectorIterator_arg++; } }
void OctreeLowMemBase<DataT, LeafT>::deserializeLeafCallback (OctreeLeaf& leaf_arg, const OctreeKey& key_arg) { DataT newDataT; // initialize new leaf child if (genDataTByOctreeKey (key_arg, newDataT)) { leaf_arg.setData (newDataT); } }
void OctreeLowMemBase<DataT, LeafT>::deserializeTreeAndSerializeLeafCallback (OctreeLeaf& leaf_arg, const OctreeKey& key_arg, std::vector<DataT>& dataVector_arg) { DataT newDataT; // initialize new leaf child if (genDataTByOctreeKey (key_arg, newDataT)) { leaf_arg.setData (newDataT); dataVector_arg.push_back (newDataT); } }