コード例 #1
0
 public void StartGeneration()
 {
     Debug.Log("Start Generation");
     root = this;
     GenerateNCube(root);
     CalculateVerticesMatrix();
 }
コード例 #2
0
    private void Start()
    {
        ndCube = GetComponent <NDCube>();

        permutationList = new List <Vector2Int>();
        GeneratePermutation(ndCube.dimension, permutationList);
    }
コード例 #3
0
ファイル: NDCube.cs プロジェクト: DominicBg/Geometry
    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);
        }
    }
コード例 #4
0
 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);
     }
 }
コード例 #5
0
ファイル: NDCube.cs プロジェクト: DominicBg/Geometry
    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();
    }
コード例 #6
0
ファイル: NDCube.cs プロジェクト: DominicBg/Geometry
    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);
    }
コード例 #7
0
 private void Start()
 {
     ndCube = GetComponent <NDCube>();
 }