Exemple #1
0
    // Use this for initialization
    PosEntry entryFromLine(string line)
    {
        Regex CSVParser = new Regex(",(?=(?:[^\"]*\"[^\"]*\")*(?![^\"]*\"))");

        string[] X   = CSVParser.Split(line);
        PosEntry ret = new PosEntry();

        ret.time    = float.Parse(X[1]);
        ret.pos     = new Vector3(float.Parse(X[2]), float.Parse(X[3]), float.Parse(X[4]));
        ret.id      = int.Parse(X[5]);
        ret.meshnum = int.Parse(X[6]);
        return(ret);
    }
Exemple #2
0
        static void AddEntry(string word, string data)
        {
            var list = new List <PosEntry>();

            foreach (string item in data.Split(new char[] { ';' }))
            {
                string[] parts = item.Split(new char[] { '=' });
                var      entry = new PosEntry();
                entry.pos = parts[0];
                float.TryParse(parts[1], out entry.frequency);
                list.Add(entry);
            }
            dictionary[word] = list;
        }
Exemple #3
0
        public void SubmitMap(string schemeName, string boardName, int floor, int board)
        {
            var posMapBlock = GetPosMapBlock(schemeName);
            var entry       = new PosEntry()
            {
                BoardName = boardName,
                FloorNum  = floor,
                BoardNum  = board,
            };
            var id = posMapBlock.PosList.FindIndex(x => x.BoardName == boardName);

            if (id < 0)
            {
                posMapBlock.PosList.Add(entry);
            }
            else
            {
                posMapBlock.PosList[id] = entry;
            }
            var content = PosMapBlockSerialize.Serialize(posMapBlock);

            _dbService.UpdateMapScheme(schemeName, content);
        }
Exemple #4
0
    void Start()
    {
        MultimeshObject output = new MultimeshObject();

        output.meshes = new List <Meshobject>();
        //string meshPath="Assets/csmesh800/cmesh800_";
        string fs = csvFile.text;

        string[]       fLines  = Regex.Split(fs, "\n|\r|\r\n");
        int            cnt     = 0;
        int            curMesh = -1;
        int            curId   = -1;
        List <Vector3> verts   = new List <Vector3>();
        List <Vector2> uvs     = new List <Vector2>();
        List <Color>   clrs    = new List <Color>();
        List <int>     indc    = new List <int>();
        Mesh           curM    = null;
        Vector3        avg     = Vector3.zero;
        float          mintime = -1;
        float          maxtime = -1;

        foreach (string line in fLines)
        {
            if (line.Length < 2)
            {
                continue;
            }
            PosEntry en = entryFromLine(line);
            lst.Add(en);
            cnt++;
            avg += en.pos;
            if (maxtime < 0 || en.time > maxtime)
            {
                maxtime = en.time;
            }
            if (mintime < 0 || en.time < mintime)
            {
                mintime = en.time;
            }

            /* if(curMesh!=en.meshnum)
             * {
             * if(curM!=null)
             * {
             *  AssetDatabase.CreateAsset(curM, "Assets/csmesh/cmesh_" + curMesh.ToString() + ".asset");
             * }
             * }
             * if(curMesh==-1) curMesh=en.meshnum;
             * if(curId==-1) curId=en.id;
             *
             *
             * cnt++;
             * if(cnt>100)
             * break;*/
        }
        Debug.Log(mintime);
        Debug.Log(maxtime);
        Debug.Log(avg / cnt);
        avg /= (float)cnt;
        cnt  = 0;
        float td = maxtime - mintime;

        foreach (PosEntry en in lst)
        {
            if (curMesh != en.meshnum)
            {
                Meshobject msh = new Meshobject(verts.ToArray(), uvs.ToArray(), indc.ToArray());
                output.meshes.Add(msh);
                //msh.indices = indc.ToArray();
                // msh.verts = verts.ToArray();
                // msh.uvs = uvs.ToArray();
                //if(curM!=null)
                // {
                // curM.vertices=verts.ToArray();
                // curM.uv=uvs.ToArray();
                // curM.colors=clrs.ToArray();
                // curM.SetIndices(indc.ToArray(),MeshTopology.Lines,0);
                //AssetDatabase.CreateAsset(curM, meshPath + curMesh.ToString() + ".asset");
                //}
                verts.Clear();
                uvs.Clear();
                clrs.Clear();
                indc.Clear();
                curMesh = en.meshnum;
                curM    = new Mesh();
                cnt     = 0;
            }
            if (curId == en.id)
            {
                indc.Add(cnt - 1);
                indc.Add(cnt);
            }
            else
            {
                curId = en.id;
            }
            verts.Add(en.pos + offset);// -avg);
            float shft = (en.time - mintime);
            if (System.Array.IndexOf(jet, en.id) > -1)
            {
                //ccolor.b = 0.8f;
                uvs.Add(new Vector2(shft, 1));
            }
            else
            {
                uvs.Add(new Vector2(shft, 0));
            }
            clrs.Add(Color.Lerp(Color.red, Color.green, shft));

            cnt++;
        }
        if (verts.Count >= 2 && indc.Count > 0)
        {
            Meshobject msh = new Meshobject(verts.ToArray(), uvs.ToArray(), indc.ToArray());
            output.meshes.Add(msh);
        }
        //if(curM!=null)
        //        {
        //       curM.vertices=verts.ToArray();
        //       curM.uv=uvs.ToArray();
        //       curM.colors=clrs.ToArray();
        //      curM.SetIndices(indc.ToArray(),MeshTopology.Lines,0);
        //			AssetDatabase.CreateAsset(curM, meshPath + curMesh.ToString() + ".asset");
        //            }
        //
        output.SaveToFile(Application.persistentDataPath + "/" + "csvparsed.gz");
    }
Exemple #5
0
    void OnWizardCreate()
    {
        if (csvFile == null)
        {
            return;
        }
        if (meshMat == null)
        {
            return;
        }
        List <PosEntry> lst = new List <PosEntry>();
        GameObject      go  = new GameObject(csvFile.name);
        GameObject      sec = new GameObject("offset");

        sec.transform.parent        = go.transform;
        sec.transform.localPosition = Vector3.zero;
        go.transform.position       = Vector3.zero;
        string meshPath = "Assets/prefabsAndMeshes/mesh_" + csvFile.name;
        string fs       = csvFile.text;

        string[]       fLines      = Regex.Split(fs, "\n|\r|\r\n");
        int            cnt         = 0;
        int            curMesh     = -1;
        int            curId       = -1;
        List <Vector3> verts       = new List <Vector3>();
        List <Vector2> uvs         = new List <Vector2>();
        List <Color>   clrs        = new List <Color>();
        List <int>     indc        = new List <int>();
        Mesh           curM        = null;
        Vector3        avg         = Vector3.zero;
        float          mintime     = -1;
        float          maxtime     = -1;
        float          minInitTime = -1;
        float          maxInitTime = -1;

        foreach (string line in fLines)
        {
            if (line.Length < 2)
            {
                continue;
            }
            if (line[0] == ',')
            {
                continue;
            }
            PosEntry en = entryFromLine(line);
            if (en.id != curId)
            {
                if (maxInitTime < 0 || en.time > maxInitTime)
                {
                    maxInitTime = en.time;
                }
                if (minInitTime < 0 || en.time < minInitTime)
                {
                    minInitTime = en.time;
                }
                curId = en.id;
            }
            lst.Add(en);
            cnt++;
            avg += en.pos;
            if (maxtime < 0 || en.time > maxtime)
            {
                maxtime = en.time;
            }
            if (mintime < 0 || en.time < mintime)
            {
                mintime = en.time;
            }
        }
        Debug.Log(mintime);
        Debug.Log(maxtime);
        Debug.Log(avg / cnt);
        avg /= (float)cnt;
        sec.transform.localPosition = avg;
        cnt = 0;
        float td     = maxtime - mintime;
        float tdInit = 129.0f;//maxInitTime-minInitTime; - set it fixed...

        Color ccolor = new Color();

        curId = -1;
        foreach (PosEntry en in lst)
        {
            if (curMesh != en.meshnum)
            {
                if (curM != null)
                {
                    curM.vertices = verts.ToArray();
                    curM.uv       = uvs.ToArray();
                    curM.colors   = clrs.ToArray();
                    curM.SetIndices(indc.ToArray(), MeshTopology.Lines, 0);
                    MakeGo(curM, sec, curMesh);
                    AssetDatabase.CreateAsset(curM, meshPath + curMesh.ToString() + ".asset");
                }
                verts.Clear();
                uvs.Clear();
                clrs.Clear();
                indc.Clear();
                curMesh = en.meshnum;
                curM    = new Mesh();
                cnt     = 0;
            }
            float shft = (en.time - mintime) / td;
            if (curId == en.id)
            {
                indc.Add(cnt - 1);
                indc.Add(cnt);
            }
            else
            {
                curId  = en.id;
                ccolor = Color.Lerp(Color.red, Color.green, (en.time - minInitTime) / tdInit);
                if (System.Array.IndexOf(jet, en.id) > -1)
                {
                    ccolor.b = 0.8f;
                }
                else
                {
                    ccolor *= 0.8f;
                }
            }
            verts.Add(en.pos - avg);

            uvs.Add(new Vector2(shft, 0));
            clrs.Add(ccolor);//Color.Lerp(Color.red, Color.green, shft));

            cnt++;
        }
        if (curM != null)
        {
            curM.vertices = verts.ToArray();
            curM.uv       = uvs.ToArray();
            curM.colors   = clrs.ToArray();
            curM.SetIndices(indc.ToArray(), MeshTopology.Lines, 0);
            MakeGo(curM, sec, curMesh);
            AssetDatabase.CreateAsset(curM, meshPath + curMesh.ToString() + ".asset");
        }



        PrefabUtility.CreatePrefab("Assets/prefabsAndMeshes/" + csvFile.name + ".prefab", go, ReplacePrefabOptions.ConnectToPrefab);
    }
Exemple #6
0
    void Start()
    {
        string meshPath = "Assets/csmesh800/cmesh800_";
        string fs       = csvFile.text;

        string[]       fLines  = Regex.Split(fs, "\n|\r|\r\n");
        int            cnt     = 0;
        int            curMesh = -1;
        int            curId   = -1;
        List <Vector3> verts   = new List <Vector3>();
        List <Vector2> uvs     = new List <Vector2>();
        List <Color>   clrs    = new List <Color>();
        List <int>     indc    = new List <int>();
        Mesh           curM    = null;
        Vector3        avg     = Vector3.zero;
        float          mintime = -1;
        float          maxtime = -1;

        foreach (string line in fLines)
        {
            if (line.Length < 2)
            {
                continue;
            }
            PosEntry en = entryFromLine(line);
            lst.Add(en);
            cnt++;
            avg += en.pos;
            if (maxtime < 0 || en.time > maxtime)
            {
                maxtime = en.time;
            }
            if (mintime < 0 || en.time < mintime)
            {
                mintime = en.time;
            }

            /* if(curMesh!=en.meshnum)
             * {
             * if(curM!=null)
             * {
             *  AssetDatabase.CreateAsset(curM, "Assets/csmesh/cmesh_" + curMesh.ToString() + ".asset");
             * }
             * }
             * if(curMesh==-1) curMesh=en.meshnum;
             * if(curId==-1) curId=en.id;
             *
             *
             * cnt++;
             * if(cnt>100)
             * break;*/
        }
        Debug.Log(mintime);
        Debug.Log(maxtime);
        Debug.Log(avg / cnt);
        avg /= (float)cnt;
        cnt  = 0;
        float td = maxtime - mintime;

        foreach (PosEntry en in lst)
        {
            if (curMesh != en.meshnum)
            {
                //if(curM!=null)
                // {
                // curM.vertices=verts.ToArray();
                // curM.uv=uvs.ToArray();
                // curM.colors=clrs.ToArray();
                // curM.SetIndices(indc.ToArray(),MeshTopology.Lines,0);
                //AssetDatabase.CreateAsset(curM, meshPath + curMesh.ToString() + ".asset");
                //}
                verts.Clear();
                uvs.Clear();
                clrs.Clear();
                indc.Clear();
                curMesh = en.meshnum;
                curM    = new Mesh();
                cnt     = 0;
            }
            if (curId == en.id)
            {
                indc.Add(cnt - 1);
                indc.Add(cnt);
            }
            else
            {
                curId = en.id;
            }
            verts.Add(en.pos - avg);
            float shft = (en.time - mintime) / td;
            uvs.Add(new Vector2(shft, 0));
            clrs.Add(Color.Lerp(Color.red, Color.green, shft));

            cnt++;
        }
        //if(curM!=null)
        //        {
        //       curM.vertices=verts.ToArray();
        //       curM.uv=uvs.ToArray();
        //       curM.colors=clrs.ToArray();
        //      curM.SetIndices(indc.ToArray(),MeshTopology.Lines,0);
//			AssetDatabase.CreateAsset(curM, meshPath + curMesh.ToString() + ".asset");
//            }
        //
    }