| 204 | //----------------------------------------------------------------------- |
| 205 | |
| 206 | void Chunk::loadGeometry(MeshBuilder *meshBuilder, DualGridGenerator *dualGridGenerator, OctreeNode *root, size_t level, bool isUpdate) |
| 207 | { |
| 208 | size_t chunkTriangles = meshBuilder->generateBuffers(mRenderOp); |
| 209 | mInvisible = chunkTriangles == 0; |
| 210 | |
| 211 | if (mShared->parameters->lodCallback) |
| 212 | { |
| 213 | meshBuilder->executeCallback(mShared->parameters->lodCallback, this, level, mShared->chunksBeingProcessed); |
| 214 | } |
| 215 | |
| 216 | mBox = meshBuilder->getBoundingBox(); |
| 217 | |
| 218 | if (!mInvisible) |
| 219 | { |
| 220 | if (isUpdate) |
| 221 | { |
| 222 | mNode->detachObject(this); |
| 223 | } |
| 224 | mNode->attachObject(this); |
| 225 | } |
| 226 | |
| 227 | setVisible(false); |
| 228 | |
| 229 | if (mShared->parameters->createDualGridVisualization) |
| 230 | { |
| 231 | mDualGrid = dualGridGenerator->getDualGrid(mShared->parameters->sceneManager); |
| 232 | if (mDualGrid) |
| 233 | { |
| 234 | mNode->attachObject(mDualGrid); |
| 235 | mDualGrid->setVisible(false); |
| 236 | } |
| 237 | } |
| 238 | |
| 239 | if (mShared->parameters->createOctreeVisualization) |
| 240 | { |
| 241 | mOctree = root->getOctreeGrid(mShared->parameters->sceneManager); |
| 242 | mNode->attachObject(mOctree); |
| 243 | mOctree->setVisible(false); |
| 244 | } |
| 245 | mShared->chunksBeingProcessed--; |
| 246 | } |
| 247 | |
| 248 | //----------------------------------------------------------------------- |
| 249 |
no test coverage detected