public void UpdateLayouter(CVType nComparativeType, SPType nSuperpositionType, int nVisualSpaceDim, int nParametersDim, List <ParameterNameValue> parameters) { Camera.main.transform.position = new Vector3(0, 0, -300); if (GameObject.Find("Composition") != null) { GameObject.DestroyImmediate(GameObject.Find("Composition")); } comparativeType = nComparativeType; visualSpaceDim = nVisualSpaceDim; parametersDim = nParametersDim; switch (comparativeType) { case CVType.Juxtaposition: { if (parametersDim == 1) { layouter = new LayouterStripes(); (layouter as LayouterStripes).mainParameter = ensemble.getParameter(1); (layouter as LayouterStripes).minValue = ensemble.parametersInfo[(layouter as LayouterStripes).mainParameter].minValue; (layouter as LayouterStripes).maxValue = ensemble.parametersInfo[(layouter as LayouterStripes).mainParameter].maxValue; (layouter as LayouterStripes).count = ensemble.parametersInfo[(layouter as LayouterStripes).mainParameter].count; (layouter as LayouterStripes).delta = ensemble.structuresSize.x * 0.5f; } else if (parametersDim == 2 && ensemble.parametersInfo.Count >= 2) { layouter = new LayouterBoxes(); (layouter as LayouterBoxes).mainParameter = ensemble.getParameter(1); (layouter as LayouterBoxes).mCount = ensemble.parametersInfo[(layouter as LayouterBoxes).mainParameter].count; (layouter as LayouterBoxes).mMinValue = ensemble.parametersInfo[(layouter as LayouterBoxes).mainParameter].minValue; (layouter as LayouterBoxes).mMaxValue = ensemble.parametersInfo[(layouter as LayouterBoxes).mainParameter].maxValue; (layouter as LayouterBoxes).mDelta = ensemble.structuresSize.x * 0.5f; (layouter as LayouterBoxes).secParameter = ensemble.getParameter(2); (layouter as LayouterBoxes).sCount = ensemble.parametersInfo[(layouter as LayouterBoxes).secParameter].count; (layouter as LayouterBoxes).sMinValue = ensemble.parametersInfo[(layouter as LayouterBoxes).secParameter].minValue; (layouter as LayouterBoxes).sMaxValue = ensemble.parametersInfo[(layouter as LayouterBoxes).secParameter].maxValue; (layouter as LayouterBoxes).sDelta = ensemble.structuresSize.y * 0.5f; } else { Debug.Log("Not permitted combination! Yet!"); } break; } case CVType.Superposition: { if (parametersDim == 1) { layouter = new LayouterSuperPosition(); (layouter as LayouterSuperPosition).mainParameter = ensemble.getParameter(1); (layouter as LayouterSuperPosition).minValue = ensemble.parametersInfo[(layouter as LayouterSuperPosition).mainParameter].minValue; (layouter as LayouterSuperPosition).maxValue = ensemble.parametersInfo[(layouter as LayouterSuperPosition).mainParameter].maxValue; (layouter as LayouterSuperPosition).count = ensemble.parametersInfo[(layouter as LayouterSuperPosition).mainParameter].count; (layouter as LayouterSuperPosition).delta = 0.5f; (layouter as LayouterSuperPosition).type = nSuperpositionType; } else { Debug.Log("Not permitted combination! Yet!"); } break; } case CVType.Hybrid: { if (parametersDim == 2 && ensemble.parametersInfo.Count >= 2) { layouter = new LayouterSuperStripes(); (layouter as LayouterSuperStripes).mainParameter = ensemble.getParameter(1); (layouter as LayouterSuperStripes).mCount = ensemble.parametersInfo[(layouter as LayouterSuperStripes).mainParameter].count; (layouter as LayouterSuperStripes).mMinValue = ensemble.parametersInfo[(layouter as LayouterSuperStripes).mainParameter].minValue; (layouter as LayouterSuperStripes).mMaxValue = ensemble.parametersInfo[(layouter as LayouterSuperStripes).mainParameter].maxValue; (layouter as LayouterSuperStripes).mDelta = ensemble.structuresSize.x * 0.5f; (layouter as LayouterSuperStripes).secParameter = ensemble.getParameter(2); (layouter as LayouterSuperStripes).sCount = ensemble.parametersInfo[(layouter as LayouterSuperStripes).secParameter].count; (layouter as LayouterSuperStripes).sMinValue = ensemble.parametersInfo[(layouter as LayouterSuperStripes).secParameter].minValue; (layouter as LayouterSuperStripes).sMaxValue = ensemble.parametersInfo[(layouter as LayouterSuperStripes).secParameter].maxValue; (layouter as LayouterSuperStripes).sDelta = 0.5f; (layouter as LayouterSuperStripes).type = nSuperpositionType; } else if (parametersDim == 3 && ensemble.parametersInfo.Count >= 3) { layouter = new LayouterSuperBoxes(); (layouter as LayouterSuperBoxes).mainParameter = ensemble.getParameter(1); (layouter as LayouterSuperBoxes).mCount = ensemble.parametersInfo[(layouter as LayouterSuperBoxes).mainParameter].count; (layouter as LayouterSuperBoxes).mMinValue = ensemble.parametersInfo[(layouter as LayouterSuperBoxes).mainParameter].minValue; (layouter as LayouterSuperBoxes).mMaxValue = ensemble.parametersInfo[(layouter as LayouterSuperBoxes).mainParameter].maxValue; (layouter as LayouterSuperBoxes).mDelta = ensemble.structuresSize.x * 0.5f; (layouter as LayouterSuperBoxes).secParameter = ensemble.getParameter(2); (layouter as LayouterSuperBoxes).sCount = ensemble.parametersInfo[(layouter as LayouterSuperBoxes).secParameter].count; (layouter as LayouterSuperBoxes).sMinValue = ensemble.parametersInfo[(layouter as LayouterSuperBoxes).secParameter].minValue; (layouter as LayouterSuperBoxes).sMaxValue = ensemble.parametersInfo[(layouter as LayouterSuperBoxes).secParameter].maxValue; (layouter as LayouterSuperBoxes).sDelta = ensemble.structuresSize.y * 0.5f; (layouter as LayouterSuperBoxes).thirdParameter = ensemble.getParameter(2); (layouter as LayouterSuperBoxes).tCount = ensemble.parametersInfo[(layouter as LayouterSuperBoxes).thirdParameter].count; (layouter as LayouterSuperBoxes).tMinValue = ensemble.parametersInfo[(layouter as LayouterSuperBoxes).thirdParameter].minValue; (layouter as LayouterSuperBoxes).tMaxValue = ensemble.parametersInfo[(layouter as LayouterSuperBoxes).thirdParameter].maxValue; (layouter as LayouterSuperBoxes).tDelta = 0.5f; (layouter as LayouterSuperBoxes).type = nSuperpositionType; } else { Debug.Log("Not permitted combination! Yet!"); } break; } } if (visualSpaceDim == 3) { Camera.main.gameObject.GetComponent <MouseCameraControl> ().pitch.activate = true; Camera.main.gameObject.GetComponent <MouseCameraControl> ().yaw.activate = true; } else { Camera.main.gameObject.GetComponent <MouseCameraControl> ().pitch.activate = false; Camera.main.gameObject.GetComponent <MouseCameraControl> ().yaw.activate = false; } layouter.axisParameters = parameters; string abstractionName = pickupAbstractionNew(); int numOfElements = Mathf.FloorToInt((Camera.main.orthographicSize * 2f) / (abstractions[abstractionName].scale * 300f)); if (numOfElements == 0) { numOfElements = 5; } layouter.PlacePreview(numOfElements); wasLayoutChanged = true; isCompositionCreated = false; }