bool MeshLoader::Load(const VSceneListEntry& entry) { Helper::SetupScene(entry); // load vmesh VisStaticMesh_cl* pRes = VisStaticMesh_cl::GetResourceManager().LoadStaticMeshFile(entry.sScenePath); if (pRes == NULL) return false; // force loading of .colmesh file if it exists if (pRes->GetCollisionMesh(true)) hkvLog::Info("Loaded collision mesh"); else hkvLog::Info("No collision mesh loaded"); // get a instance hkvMat4 mTransform; VisStaticMeshInstance_cl *pInst = pRes->CreateInstance(mTransform); // create the visibility zone const hkvAlignedBBox& bbox = pInst->GetBoundingBox(); int iZones = Vision::GetSceneManager()->GetNumVisibilityZones(); VisVisibilityZone_cl* pVisZone; if (iZones > 0) { pVisZone = Vision::GetSceneManager()->GetVisibilityZone(0); } else { pVisZone = new VisVisibilityZone_cl(bbox); Vision::GetSceneManager()->AddVisibilityZone(pVisZone); } // add submeshes to vis zone for (int i = 0; i < pInst->GetSubmeshInstanceCount(); ++i) { pVisZone->AddStaticGeometryInstance(pInst->GetSubmeshInstance(i)); } Helper::LookAtBox(bbox); return true; }