public void StartGeneration() { Debug.Log("Start Generation"); root = this; GenerateNCube(root); CalculateVerticesMatrix(); }
private void Start() { ndCube = GetComponent <NDCube>(); permutationList = new List <Vector2Int>(); GeneratePermutation(ndCube.dimension, permutationList); }
void AddLowerDimensionVertices(NDCube min1DimensionCube, float newValue) { //Copy vertices from lower dimension, and add the newValue at the end of the vertex //if lower dimension = 2, copy x y, and add z as newValue; for (int i = 0; i < min1DimensionCube.vertices.Count; i++) { VectorN newDimensionVertex = new VectorN(min1DimensionCube.vertices[i]); newDimensionVertex.AddDimension(newValue); vertices.Add(newDimensionVertex); } }
void ToggleDimension(NDCube currentCube, int dimension) { if (currentCube.dimension == dimension) { bool isActive = currentCube.ConnectionNull.activeInHierarchy; currentCube.ConnectionNull.SetActive(!isActive); } else { ToggleDimension(currentCube.min1DimensionCubeLeft, dimension); ToggleDimension(currentCube.min1DimensionCubeRight, dimension); } }
public void GenerateNCube(NDCube root) { this.root = root; size = root.size; vertices = new List <VectorN>(); lineGroups = new List <LineGroup>(); min1DimensionCubeLeft = GenerateLowerDimension(); min1DimensionCubeRight = GenerateLowerDimension(); //block at 2dim if (min1DimensionCubeLeft == null || min1DimensionCubeRight == null) { GenerateSquare(); return; } AddLowerDimensionVertices(min1DimensionCubeLeft, -0.5f); AddLowerDimensionVertices(min1DimensionCubeRight, 0.5f); Link2LowerDimensions(); CollectLineGroups(); }
NDCube GenerateLowerDimension() { if (dimension <= minDimension) { return(null); } int lowerDimension = dimension - 1; GameObject lowerDimGo = new GameObject("Dimension" + lowerDimension); lowerDimGo.transform.SetParent(transform); lowerDimGo.transform.localPosition = Vector3.zero; lowerDimGo.transform.localScale = Vector3.one; NDCube ncube = lowerDimGo.AddComponent <NDCube>(); ncube.dimension = lowerDimension; ncube.GenerateNCube(root); return(ncube); }
private void Start() { ndCube = GetComponent <NDCube>(); }