public Vector3[] GenerateNodeSpiralLocations(SpiralGraphProperties spiralGraphProperties, out int[][] edges)
    {
        if (spiralGraphProperties.FloorsNodesCounts == null)
        {
            int[] floorNodesCounts = GraphGeneratorHelper.GenerateFloorNodesCounts(spiralGraphProperties.FloorsCount, -1,
                                                                                   spiralGraphProperties.FloorsCount);
            spiralGraphProperties.FloorsNodesCounts = floorNodesCounts;
        }
        int nodesCount = spiralGraphProperties.FloorsNodesCounts.Sum(a => a);

        connections = new Edge[nodesCount, nodesCount];
        Vector3[] nodesLocations = _spiralGraphGenerator.GenerateGraph(spiralGraphProperties, out edges);
        return(nodesLocations);
    }
    public Vector3[] GenerateNodeConicLocations(ConicGraphProperties conicGraphProperties, out int[][] edges)
    {
        if (conicGraphProperties.FloorsNodesCounts == null)
        {
            int[] floorNodesCounts = GraphGeneratorHelper.GenerateFloorNodesCounts(conicGraphProperties.FloorsCount, -1,
                                                                                   conicGraphProperties.FloorsCount);
            conicGraphProperties.FloorsNodesCounts = floorNodesCounts;
        }
        int nodesCount = conicGraphProperties.FloorsNodesCounts.Sum(a => a);

        connections = new Edge[nodesCount, nodesCount];
        Vector3[] nodesLocations = _conicGraphGenerator.GenerateGraph(conicGraphProperties, out edges);
        return(nodesLocations);
    }