public void EndSlicing()
        {
            if (pickingController.SelectedMeshes.Count > 0 && pickingController.SelectedMeshes.All(x => x.meshType == MeshType.Hair))
            {
                if (!sliceController.IsEmpty())
                {
                    sliceController.EndSlice(Width, Height, camera);
                    var historyItem = new HistoryMeshes();
                    foreach (var mesh in pickingController.SelectedMeshes)
                    {
                        var historyMesh = historyItem.AddMesh(mesh);
                        historyMesh.ToDelete.Add(mesh.Id);

                        sliceController.Slice(mesh, camera);

                        var color = pickingController.SelectedColor.ContainsKey(mesh) ? pickingController.SelectedColor[mesh] : Vector4.Zero;
                        for (var i = 0; i < sliceController.ResultMeshes.Count; i++)
                        {
                            var resMesh = sliceController.ResultMeshes[i];
                            resMesh.Title = mesh.Title + "_" + i;
                            resMesh.Material.DiffuseColor = color;
                            pickingController.HairMeshes.Add(resMesh);
                            historyMesh.ToDelete.Add(resMesh.Id);
                        }
                    }
                    historyController.Add(historyItem);
                }

                sliceController.BeginSlice(ToolsMode == ToolsMode.HairArc);
            }
        }
        internal void DeleteSelectedHair()
        {
            pickingController.SelectedMeshes.BeginInit();
            try
            {
                var historyItems = new HistoryMeshes(pickingController.SelectedMeshes.Where(x => x.meshType == MeshType.Hair));
                historyController.Add(historyItems);

                var title = string.Empty;
                for (var i = pickingController.SelectedMeshes.Count - 1; i >= 0; i--)
                {
                    var selectedMesh = pickingController.SelectedMeshes[i];
                    if (selectedMesh.meshType != MeshType.Hair)
                        continue;

                    pickingController.HairMeshes.Remove(selectedMesh);

                    title = selectedMesh.Title;
                    selectedMesh.Destroy();
                    pickingController.SelectedMeshes.RemoveAt(i);
                }
                RemoveMeshFromPartLibrary(title);
            }
            finally
            {
                pickingController.SelectedMeshes.EndInit(true);
            }
        }