private static HelperSurfaceDescription GenerateHelperSurfaceDescription(GeneratedMeshes meshContainer, CSGModel model, ModelSettingsFlags modelSettings, GeneratedMeshDescription meshDescription, RenderSurfaceType renderSurfaceType) { HelperSurfaceDescription helperSurfaceDescription = MeshInstanceManager.CreateHelperSurfaceDescription(meshContainer, modelSettings, meshDescription, renderSurfaceType); helperSurfaceDescription.MeshDescription = meshDescription; if (!UpdateMesh(model, renderSurfaceMeshNames[(int)renderSurfaceType], helperSurfaceDescription.MeshDescription, helperSurfaceDescription.RenderSurfaceType, ref helperSurfaceDescription.HasGeneratedNormals, ref helperSurfaceDescription.SharedMesh, editorOnly: true)) { return(null); } return(helperSurfaceDescription); }
private static bool TryGetHelperSurfaceDescription(GeneratedMeshes meshContainer, CSGModel model, ModelSettingsFlags modelSettings, GeneratedMeshDescription meshDescription, RenderSurfaceType renderSurfaceType, out HelperSurfaceDescription helperSurfaceDescription) { var startGetMeshInstanceTime = EditorApplication.timeSinceStartup; helperSurfaceDescription = MeshInstanceManager.GetHelperSurfaceDescription(meshContainer, modelSettings, meshDescription, renderSurfaceType); getMeshInstanceTime += EditorApplication.timeSinceStartup - startGetMeshInstanceTime; if (helperSurfaceDescription != null && meshDescription == helperSurfaceDescription.MeshDescription && helperSurfaceDescription.SharedMesh && helperSurfaceDescription.IsValid()) { return(true); } helperSurfaceDescription = null; return(true); }
private static GeneratedMeshInstance GenerateMeshInstance(GeneratedMeshes meshContainer, CSGModel model, ModelSettingsFlags modelSettings, GeneratedMeshDescription meshDescription, RenderSurfaceType renderSurfaceType, List <GameObject> unusedInstances) { GeneratedMeshInstance meshInstance = MeshInstanceManager.CreateMeshInstance(meshContainer, meshDescription, modelSettings, renderSurfaceType, unusedInstances); string baseName; switch (renderSurfaceType) { case RenderSurfaceType.Collider: baseName = "Collider"; break; case RenderSurfaceType.Normal: baseName = "Renderable"; break; default: baseName = "Unknown"; break; } meshInstance.MeshDescription = meshDescription; if (!UpdateMesh(model, baseName, meshInstance.MeshDescription, meshInstance.RenderSurfaceType, ref meshInstance.HasGeneratedNormals, ref meshInstance.SharedMesh)) { return(null); } return(meshInstance); }
private static bool TryGetMeshInstance(GeneratedMeshes meshContainer, CSGModel model, ModelSettingsFlags modelSettings, GeneratedMeshDescription meshDescription, RenderSurfaceType renderSurfaceType, out GeneratedMeshInstance meshInstance) { var startGetMeshInstanceTime = EditorApplication.timeSinceStartup; meshInstance = MeshInstanceManager.GetMeshInstance(meshContainer, meshDescription, modelSettings, renderSurfaceType); getMeshInstanceTime += EditorApplication.timeSinceStartup - startGetMeshInstanceTime; if (meshInstance && meshDescription == meshInstance.MeshDescription && meshInstance.SharedMesh && meshInstance.IsValid()) { return(true); } meshInstance = null; return(true); }
private static HelperSurfaceDescription GenerateHelperSurfaceDescription(GeneratedMeshes meshContainer, CSGModel model, ModelSettingsFlags modelSettings, GeneratedMeshDescription meshDescription, RenderSurfaceType renderSurfaceType) { HelperSurfaceDescription helperSurfaceDescription; var startGetMeshInstanceTime = EditorApplication.timeSinceStartup; { helperSurfaceDescription = MeshInstanceManager.GetHelperSurfaceDescription(meshContainer, modelSettings, meshDescription, renderSurfaceType); } getMeshInstanceTime += EditorApplication.timeSinceStartup - startGetMeshInstanceTime; if (meshDescription == helperSurfaceDescription.MeshDescription && helperSurfaceDescription.SharedMesh && helperSurfaceDescription.IsValid()) { return(helperSurfaceDescription); } helperSurfaceDescription.MeshDescription = meshDescription; if (!UpdateMesh(model, helperSurfaceDescription.MeshDescription, helperSurfaceDescription.RenderSurfaceType, ref helperSurfaceDescription.HasGeneratedNormals, ref helperSurfaceDescription.SharedMesh)) { return(null); } return(helperSurfaceDescription); }
private static GeneratedMeshInstance GenerateMeshInstance(GeneratedMeshes meshContainer, CSGModel model, ModelSettingsFlags modelSettings, GeneratedMeshDescription meshDescription, RenderSurfaceType renderSurfaceType) { GeneratedMeshInstance meshInstance; var startGetMeshInstanceTime = EditorApplication.timeSinceStartup; { meshInstance = MeshInstanceManager.GetMeshInstance(meshContainer, meshDescription, modelSettings, renderSurfaceType); if (!meshInstance) { return(null); } } getMeshInstanceTime += EditorApplication.timeSinceStartup - startGetMeshInstanceTime; if (meshDescription == meshInstance.MeshDescription && meshInstance.SharedMesh && meshInstance.IsValid()) { return(meshInstance); } meshInstance.MeshDescription = meshDescription; if (!UpdateMesh(model, meshInstance.MeshDescription, meshInstance.RenderSurfaceType, ref meshInstance.HasGeneratedNormals, ref meshInstance.SharedMesh)) { return(null); } return(meshInstance); }