public void Clear() { Points.Clear(); Lines.Clear(); Meshes.Clear(); XAxisPoints.Clear(); YAxisPoints.Clear(); ZAxisPoints.Clear(); SelectedPoints.Clear(); SelectedLines.Clear(); SelectedMeshes.Clear(); }
/* * Create mesh atlas from selected meshes */ private IEnumerator BuildTexture() { if (!IsReady) { yield break; } SelectedMeshes.Clear(); foreach (var mesh in sortMeshes) { if (mesh.GetMesh() != null) { SelectedMeshes.Add(mesh); while (!mesh.IsReady) { yield return(null); } } } //Create empty atlas int size = 2048; if (IsDynamicTextureAtlas()) { size = SelectedMeshes.Count > 4 ? 2048 : (SelectedMeshes.Count > 1 ? 1024 : 512); } armorTexture = new Texture2D(size, size); if (SelectedMeshes.Count == 0) { if (armorRawImage != null) { armorRawImage.enabled = false; armorRawImage.texture = armorTexture; } yield break; } //Insert mesh textures in atlas int j = 0; foreach (var selectedMesh in SelectedMeshes) { int position = IsDynamicTextureAtlas() ? j++ : selectedMesh.MergeOrder; int x = meshTextureWidth * (position % (size / meshTexturHeight)); int y = (size - meshTexturHeight) - (meshTexturHeight * position / size) * meshTexturHeight; if (IsDynamicTextureAtlas() && selectedMesh.GetMesh() == null) { continue; } if (selectedMesh.GetMesh() != null) { armorTexture.SetPixels32(x, y, meshTextureWidth, meshTexturHeight, selectedMesh.Texture.GetPixels32()); } else { armorTexture.SetPixels32(x, y, meshTextureWidth, meshTexturHeight, emptyPixels); } } armorTexture.Apply(); if (armorRawImage != null) { armorRawImage.texture = armorTexture; armorRawImage.enabled = true; } UpdateModelRenderers(); }