public static List <Ingredient> GetProteinIngredients(Compartment rootCompartment) { var ingredients = new List <Ingredient>(); var queue = new Queue <Compartment>(); queue.Enqueue(rootCompartment); while (queue.Count > 0) { var currentCompartment = queue.Dequeue(); foreach (var ingredientGroup in currentCompartment.IngredientGroups) { //if (ingredientGroup.group_type == (int)IngredientGroupType.INTERIOR_PROTEINS || ingredientGroup.group_type == (int)IngredientGroupType.SURFACE_PROTEINS) if (true) { ingredients.AddRange(ingredientGroup.Ingredients); } } foreach (var compartment in currentCompartment.Compartments) { queue.Enqueue(compartment); } } return(ingredients); }
public static List<IngredientGroup> GetIngredientGroups(Compartment rootCompartment) { var groups = new List<IngredientGroup>(); var queue = new Queue<Compartment>(); queue.Enqueue(rootCompartment); while (queue.Count > 0) { var currentCompartment = queue.Dequeue(); groups.AddRange(currentCompartment.IngredientGroups); foreach (var compartment in currentCompartment.Compartments) { queue.Enqueue(compartment); } } return groups; }
public static List<Compartment> GetCompartments(Compartment rootCompartment) { var compartments = new List<Compartment>(); var queue = new Queue<Compartment>(); queue.Enqueue(rootCompartment); while (queue.Count > 0) { var currentCompartment = queue.Dequeue(); compartments.Add(currentCompartment); foreach (var compartment in currentCompartment.Compartments) { queue.Enqueue(compartment); } } return compartments; }
public static List <IngredientGroup> GetIngredientGroups(Compartment rootCompartment) { var groups = new List <IngredientGroup>(); var queue = new Queue <Compartment>(); queue.Enqueue(rootCompartment); while (queue.Count > 0) { var currentCompartment = queue.Dequeue(); groups.AddRange(currentCompartment.IngredientGroups); foreach (var compartment in currentCompartment.Compartments) { queue.Enqueue(compartment); } } return(groups); }
public static List <Compartment> GetCompartments(Compartment rootCompartment) { var compartments = new List <Compartment>(); var queue = new Queue <Compartment>(); queue.Enqueue(rootCompartment); while (queue.Count > 0) { var currentCompartment = queue.Dequeue(); compartments.Add(currentCompartment); foreach (var compartment in currentCompartment.Compartments) { queue.Enqueue(compartment); } } return(compartments); }
public static void LoadRecipe(Compartment rootCompartment) { // Flatten all the hierarchy //SceneManager.Get.Compartments = CompartmentUtility.GetCompartments(rootCompartment); SceneManager.Get.IngredientGroups = CompartmentUtility.GetIngredientGroups(rootCompartment); //SceneManager.Get.ProteinIngredients = CompartmentUtility.GetProteinIngredients(rootCompartment); for (var i = 0; i < SceneManager.Get.IngredientGroups.Count; i++) { for (var j = 0; j < SceneManager.Get.IngredientGroups[i].Ingredients.Count; j++) { var ingredient = SceneManager.Get.IngredientGroups[i].Ingredients[j]; AddProteinIngredient(ref ingredient); SceneManager.Get.ProteinInstanceCount += ingredient.nbMol; SceneManager.Get.IngredientGroups[i].NumIngredients += ingredient.nbMol; } } ColorManager.Get.InitColors(); }
public static void PostProcessSceneGraph(Compartment rootCompartment) { var compartments = new List<Compartment>(); var queue = new Queue<Compartment>(); rootCompartment.parent_id = -1; rootCompartment.path = "root"; queue.Enqueue(rootCompartment); while (queue.Count > 0) { var currentCompartment = queue.Dequeue(); compartments.Add(currentCompartment); foreach (var ingredientGroup in currentCompartment.IngredientGroups) { ingredientGroup.compartment_id = currentCompartment.unique_id; ingredientGroup.path = currentCompartment.path + PATH_SEPARATOR + ingredientGroup.name; foreach (var ingredient in ingredientGroup.Ingredients) { ingredient.name = ingredient.name.Split(new[] {"__"}, StringSplitOptions.RemoveEmptyEntries).Last().Trim(); ingredient.ingredient_group_id = ingredientGroup.unique_id; ingredient.path = ingredientGroup.path + PATH_SEPARATOR + ingredient.name; } } foreach (var compartment in currentCompartment.Compartments) { compartment.parent_id = currentCompartment.unique_id; compartment.path = currentCompartment.path + PATH_SEPARATOR + compartment.name; queue.Enqueue(compartment); } } }
public static void PostProcessSceneGraph(Compartment rootCompartment) { var compartments = new List <Compartment>(); var queue = new Queue <Compartment>(); rootCompartment.parent_id = -1; rootCompartment.path = "root"; queue.Enqueue(rootCompartment); while (queue.Count > 0) { var currentCompartment = queue.Dequeue(); compartments.Add(currentCompartment); foreach (var ingredientGroup in currentCompartment.IngredientGroups) { ingredientGroup.compartment_id = currentCompartment.unique_id; ingredientGroup.path = currentCompartment.path + PATH_SEPARATOR + ingredientGroup.name; foreach (var ingredient in ingredientGroup.Ingredients) { ingredient.name = ingredient.name.Split(new[] { "__" }, StringSplitOptions.RemoveEmptyEntries).Last().Trim(); ingredient.ingredient_group_id = ingredientGroup.unique_id; ingredient.path = ingredientGroup.path + PATH_SEPARATOR + ingredient.name; } } foreach (var compartment in currentCompartment.Compartments) { compartment.parent_id = currentCompartment.unique_id; compartment.path = currentCompartment.path + PATH_SEPARATOR + compartment.name; queue.Enqueue(compartment); } } }
public static List<Ingredient> GetProteinIngredients(Compartment rootCompartment) { var ingredients = new List<Ingredient>(); var queue = new Queue<Compartment>(); queue.Enqueue(rootCompartment); while (queue.Count > 0) { var currentCompartment = queue.Dequeue(); foreach (var ingredientGroup in currentCompartment.IngredientGroups) { //if (ingredientGroup.group_type == (int)IngredientGroupType.INTERIOR_PROTEINS || ingredientGroup.group_type == (int)IngredientGroupType.SURFACE_PROTEINS) if (true) { ingredients.AddRange(ingredientGroup.Ingredients); } } foreach (var compartment in currentCompartment.Compartments) { queue.Enqueue(compartment); } } return ingredients; }