static int FinishMeshUpdates(CSGTree tree, ref VertexBufferContents vertexBufferContents, ref Mesh.MeshDataArray meshDataArray, NativeList <ChiselMeshUpdate> colliderMeshUpdates, NativeList <ChiselMeshUpdate> debugHelperMeshes, NativeList <ChiselMeshUpdate> renderMeshes, JobHandle dependencies) { ChiselModel model = null; for (int m = 0; m < registeredModels.Count; m++) { if (!registeredModels[m]) { continue; } if (registeredModels[m].Node == tree) { model = registeredModels[m]; } } if (model == null) { if (meshDataArray.Length > 0) { meshDataArray.Dispose(); } meshDataArray = default; return(0); } if (!ChiselGeneratedObjects.IsValid(model.generated)) { if (model.generated != null) { model.generated.Destroy(); } model.generated = ChiselGeneratedObjects.Create(model.gameObject); } var count = model.generated.FinishMeshUpdates(model, model.gameObject, ref meshDataArray, ref vertexBufferContents, colliderMeshUpdates, debugHelperMeshes, renderMeshes, dependencies); componentGenerator.Rebuild(model); PostUpdateModel?.Invoke(model); return(count); }
public void Rebuild(ChiselModel model) { if (!model.IsInitialized) { model.OnInitialize(); } if (!ChiselGeneratedObjects.IsValid(model.generated)) { if (model.generated != null) { model.generated.Destroy(); } model.generated = ChiselGeneratedObjects.Create(model.gameObject); } UpdateModelFlags(model); }