internal static void UpdateModelMeshDescriptions(ChiselModel model) { if (!ChiselModelGeneratedObjects.IsValid(model.generated)) { if (model.generated != null) { model.generated.Destroy(); } model.generated = ChiselModelGeneratedObjects.Create(model); } var tree = model.Node; if (!tree.Valid) { return; } var meshTypes = ChiselMeshQueryManager.GetMeshQuery(model); var meshDescriptions = tree.GetMeshDescriptions(meshTypes, model.VertexChannelMask); // Check if the tree creates *any* meshes if (meshDescriptions == null || meshDescriptions.Length == 0) { //componentGenerator.RemoveAllGeneratedComponents(model); PostUpdateModel?.Invoke(model); return; } // Sort all meshDescriptions so that meshes that can be merged are next to each other Array.Sort(meshDescriptions, kMeshDescriptionSorterDelegate); model.generated.Update(model, meshDescriptions); }
public void Rebuild(ChiselModel model) { if (!model.IsInitialized) { model.OnInitialize(); } if (!ChiselModelGeneratedObjects.IsValid(model.generated)) { if (model.generated != null) { model.generated.Destroy(); } model.generated = ChiselModelGeneratedObjects.Create(model); } UpdateModelFlags(model); }