示例#1
0
        static void Main(string[] args)
        {
            var stocks = MarketDataParser.LoadStocks();

            foreach (var stock_samples in stocks)
            {
                foreach (var sample in stock_samples)
                {
                    Console.WriteLine(sample);
                    break;
                }
            }
        }
示例#2
0
    void NewCreateMidMeshes()
    {
        stockmidList = MarketDataParser.LoadStocksMid();
        int maxSamples = stockmidList.Count;

        particles = new Particle[maxSamples];
        for (int i = 0; i < particles.Length; i++)
        {
            particles[i].size  = defaultParticleSize;
            particles[i].color = defaultParticleColor;
        }

        int stocksToRender = System.Math.Min(stockmidList[0].Count, cubesPerMesh);

        print("stockCount=" + stocksToRender + ", cubersPerMesh=" + cubesPerMesh);


        int NMeshes = 100;

//        goMeshes = new GameObject[NMeshes]; // maxSamples//[stocksToRender];
        meshes = new Mesh[NMeshes];// stocksToRender];

        // GaussianRandom gaussianRandom = new GaussianRandom();

        List <Color> mesh_colors = new List <Color> {
            Color.red, Color.green, Color.blue, Color.yellow
        };
        int color_choices = mesh_colors.Count;

        Counts = new int[stocksToRender];


        var colors       = new Color[24 * cubesPerMesh];
        int vertex_group = 10 * 24;

        for (int c = 0; c < colors.Length / vertex_group; ++c)
        {
            var a_color = new Color(Random.Range(0.0f, 1.0f), Random.Range(0.0f, 1.0f), Random.Range(0.0f, 1.0f));
            for (int k = 0; k < vertex_group; ++k)
            {
                colors[vertex_group * c + k] = a_color;
            }
        }

        print("Meshes created");
    }
示例#3
0
    void CreateMidMeshes()
    {
        stockmidList = MarketDataParser.LoadStocksMid();
        int maxSamples = stockmidList.Count;

        log("createMidMeshes", "entry");
        int stocksToRender = System.Math.Min(stockmidList[0].Count, cubesPerMesh);

        print("stockCount=" + stocksToRender + ", cubersPerMesh=" + cubesPerMesh);


        int NMeshes = 100;

        if (maxSamples > NMeshes)
        {
            maxSamples = NMeshes;
        }
        goMeshes = new GameObject[NMeshes]; // maxSamples//[stocksToRender];
        meshes   = new Mesh[NMeshes];       // stocksToRender];

        // GaussianRandom gaussianRandom = new GaussianRandom();

        List <Color> mesh_colors = new List <Color> {
            Color.red, Color.green, Color.blue, Color.yellow
        };
        int color_choices = mesh_colors.Count;

        Counts = new int[stocksToRender];
        for (int t = 0; t < maxSamples; t++)     //cubesPerMesh &&
                                                 //
        {
            log("createMidMeshes", "item:" + t);
            GameObject go = new GameObject("Mesh " + t);//GameObject.CreatePrimitive(PrimitiveType.Cube); //
            go.transform.parent = transform;
            MeshFilter mf   = go.AddComponent <MeshFilter>();
            Mesh       mesh = new Mesh();
            //        mesh.MarkDynamic();   // don't think it changes often anymore if we change the mesh to be across stocks
            mf.mesh = mesh;
            Renderer rend = go.AddComponent <MeshRenderer>();
            rend.material       = material;
            rend.material.color = mesh_colors[t % color_choices];

            var vertices     = new Vector3[24 * cubesPerMesh];
            var triangles    = new int[36 * cubesPerMesh];
            var normals      = new Vector3[24 * cubesPerMesh];
            var colors       = new Color[24 * cubesPerMesh];
            int vertex_group = 10 * 24;
            for (int c = 0; c < colors.Length / vertex_group; ++c)
            {
                var a_color = new Color(Random.Range(0.0f, 1.0f), Random.Range(0.0f, 1.0f), Random.Range(0.0f, 1.0f));
                for (int k = 0; k < vertex_group; ++k)
                {
                    colors[vertex_group * c + k] = a_color;
                }
            }
            var uv = new Vector2[24 * cubesPerMesh];

            float x_time = 0, y_return = 0;
            // TODO: cubesPerMesh might be smaller than the sample count
            //for (int t = 0; t < cubesPerMesh && t < maxSamples; t++) {
            for (int iStock = 0; iStock < stocksToRender; iStock++)
            {
                // x=> screen x
                // y=> screen y
                // z=> depth

                //x = (float)(gaussianRandom.NextGaussian() * spaceRange);
                //z = (float)(gaussianRandom.NextGaussian() * spaceRange);
                //y = (float)(0.1*x + 0.2*z + gaussianRandom.NextGaussian() * 0.5 * spaceRange );

                x_time += spaceRange;

                print("Adding x_time=" + x_time
                      + ", y_price=" + y_return
                      + ", z_stock" + iStock);
                MeshCube.AddCube(ref vertices, ref triangles, ref normals, ref uv, iStock,
                                 new Vector3(x_time, 0, iStock * spaceRange * 10), defaultParticleSize / 2);
            }

            mesh.vertices  = vertices;
            mesh.triangles = triangles;
            mesh.normals   = normals;
            mesh.colors    = colors;
            mesh.uv        = uv;
            mesh.RecalculateBounds();
            mesh.Optimize();
            for (int k = 0; k < 5; k++)
            {
                print("k=" + k);
                print("vertices: " + mesh.vertices[k]);
                print("triangles: " + mesh.triangles[k]);
                print("normals: " + mesh.normals[k]);
                print("uv: " + mesh.uv[k]);
                print("colors: " + mesh.colors[k]);
            }

            goMeshes[t] = go;
            meshes[t]   = mesh;
        }
        log("createMidMeshes", "exit");
        print("Meshes created");
    }
示例#4
0
    void CreateStockListMeshes()
    {
        stockLists = MarketDataParser.LoadStocks();
        int maxSamples = 0;

        foreach (var list in stockLists)
        {
            if (maxSamples < list.Count)
            {
                maxSamples = list.Count;
            }
        }

        particles = new Particle[maxSamples];
        for (int i = 0; i < particles.Length; i++)
        {
            particles[i].size  = defaultParticleSize;
            particles[i].color = defaultParticleColor;
        }

        int stocksToRender = stockLists.Count;

        print("stockCount=" + stockLists.Count + ", cubersPerMesh=" + cubesPerMesh);

        goMeshes = new GameObject[stockLists.Count];
        meshes   = new Mesh[stockLists.Count];

        GaussianRandom gaussianRandom = new GaussianRandom();

        List <Color> mesh_colors = new List <Color> {
            Color.red, Color.green, Color.blue, Color.yellow
        };
        int color_choices = mesh_colors.Count;

        Counts = new int[stockLists.Count];
        for (int i = 0; i < stockLists.Count; i++)
        {
            GameObject go = GameObject.CreatePrimitive(PrimitiveType.Cube); //new GameObject("Mesh " + i);
            go.transform.parent = transform;
            MeshFilter mf   = go.AddComponent <MeshFilter>();
            Mesh       mesh = new Mesh();
            mesh.MarkDynamic();
            mf.mesh = mesh;
            Renderer rend = go.AddComponent <MeshRenderer>();
            rend.material       = material;
            rend.material.color = mesh_colors[i % color_choices];



            var vertices     = new Vector3[24 * cubesPerMesh];
            var triangles    = new int[36 * cubesPerMesh];
            var normals      = new Vector3[24 * cubesPerMesh];
            var colors       = new Color[24 * cubesPerMesh];
            int vertex_group = 10 * 24;
            var uv           = new Vector2[24 * cubesPerMesh];

            for (int c = 0; c < colors.Length / vertex_group; ++c)
            {
                var a_color = new Color(Random.Range(0.0f, 1.0f), Random.Range(0.0f, 1.0f), Random.Range(0.0f, 1.0f));
                for (int k = 0; k < vertex_group; ++k)
                {
                    colors[vertex_group * c + k] = a_color;
                }
            }


            float x_time = 0, y_return = 0;
            // TODO: cubesPerMesh might be smaller than the sample count
            var samples = stockLists[i];
            Counts[i] = samples.Count;
            for (int j = 0; j < cubesPerMesh && j < samples.Count; j++)
            {
                // x=> screen x
                // y=> screen y
                // z=> depth

                //x = (float)(gaussianRandom.NextGaussian() * spaceRange);
                //z = (float)(gaussianRandom.NextGaussian() * spaceRange);
                //y = (float)(0.1*x + 0.2*z + gaussianRandom.NextGaussian() * 0.5 * spaceRange );

                x_time += spaceRange;
                float init = samples[0].open;
                float open = samples[j].open;
                y_return = (open - init) * 10000 / init; // in bps

                print("Adding x_time=" + x_time
                      + ", y_price=" + y_return
                      + ", z_stock" + i);
                MeshCube.AddCube(ref vertices, ref triangles, ref normals, ref uv, j,
                                 new Vector3(x_time, 0, i * spaceRange * 10), defaultParticleSize / 2);
            }

            mesh.vertices  = vertices;
            mesh.triangles = triangles;
            mesh.normals   = normals;
            mesh.colors    = colors;
            mesh.uv        = uv;
            mesh.RecalculateBounds();
            mesh.Optimize();
            for (int k = 0; k < 5; k++)
            {
                print("k=" + k);
                print("vertices: " + mesh.vertices[k]);
                print("triangles: " + mesh.triangles[k]);
                print("normals: " + mesh.normals[k]);
                print("uv: " + mesh.uv[k]);
                print("colors: " + mesh.colors[k]);
            }

            goMeshes[i] = go;
            meshes[i]   = mesh;
        }

        print("Meshes created");
    }
示例#5
0
    void CreateMeshes()
    {
        MarketDataParser.Load3ds();
        List <MydataType> all3DS = MarketDataParser.runningList;

        numOfStocks = MarketDataParser.NStocks;

        int stocksToRender = System.Math.Min(MarketDataParser.NStocks, numOfStocks);

        print("stockCount=" + stocksToRender + ", cubersPerMesh=" + numOfStocks);
        log("newcreatemid", "cubsPerMesh=" + numOfStocks);
        //Tuple<int, int, int, int> sizes = shape.getSizes();
        int[] sizes = shape.getSize();
        log("CreateMeshes", "V:" + sizes[MeshShape.NVertices] + " N:" + sizes[MeshShape.NNormals]
            + " U:" + sizes[MeshShape.NUVs] + " T:" + sizes[MeshShape.NTriangles] + "," + sizes[0] + sizes[1] + sizes[3] + sizes[3]);


        var          colors       = new Color32[sizes[MeshShape.NVertices] * numOfStocks];
        int          vertex_group = sizes[MeshShape.NVertices];
        List <Color> allColor     = MarketDataParser.runningColorList;

        for (int k = 0; k < numOfStocks; ++k)
        {
            for (int j = 0; j < vertex_group; j++)
            {
                colors[k * vertex_group + j] = allColor[k];
            }
        }

        go = new GameObject("Mesh 1");//GameObject.CreatePrimitive(PrimitiveType.Cube); //
        go.transform.parent = transform;

        MeshFilter mf = go.AddComponent <MeshFilter>();

        mesh = go.GetComponent <MeshFilter>().mesh;

        Renderer rend = go.AddComponent <MeshRenderer>();

        log("NewCreate", "before shader find");
        rend.material = material;
        log("NewCreate", "post shader find");


        mesh.vertices  = new Vector3[sizes[MeshShape.NVertices] * numOfStocks];
        mesh.normals   = new Vector3[sizes[MeshShape.NNormals] * numOfStocks];
        mesh.uv        = new Vector2[sizes[MeshShape.NUVs] * numOfStocks];
        mesh.triangles = new int[sizes[MeshShape.NTriangles] * numOfStocks];

        log("Sizes", "V:" + mesh.vertices.Length + "N:" + mesh.normals.Length + "U:" + mesh.uv.Length + "T:" + mesh.triangles.Length);

        mesh.MarkDynamic();

        var vertices  = mesh.vertices;
        var triangles = mesh.triangles;
        var normals   = mesh.normals;
        var uv        = mesh.uv;

        for (int stocki = 0; stocki < numOfStocks; stocki++)
        {
            Vector3 newLocation = new Vector3(
                // No sizing here, all sizing controlled by matlab codes
                all3DS[stocki].x * 1,
                all3DS[stocki].y * 1,
                all3DS[stocki].z * 1);

            Vector3 worldPt = transform.TransformPoint(newLocation);

            shape.AddShape(ref vertices, ref triangles, ref normals, ref uv, stocki, //which
                           newLocation,                                              //worldPt,// GetVertexWorldPosition(newLocation, transform),
                           defaultParticleSize * all3DS[stocki].w);
            //log("create", "done with " + stocki);
        }

        mesh.vertices  = vertices;
        mesh.triangles = triangles;
        mesh.normals   = normals;
        mesh.uv        = uv;
        mesh.colors32  = colors;
        mesh.RecalculateBounds();
        mesh.RecalculateNormals();
        ;
        print("Meshes created");
    }