void UpdateCounter(uint[] e) { for (int t = 0; t < e.Length; t += 2) // for (var t = 0; t < e.length; t += 2) { int r = (int)e[t]; // var r = e[t + 0], int n = (int)e[t + 1]; // n = e[t + 1], int o = r >> 16 & 255; // o = r >> 16 & 255, int a = r >> 8 & 255; // a = r >> 8 & 255, GTWSystem i = systems[o]; // i = GTW.systems[o]; if (a == 0) // 0 === a ? i.count = n : (i.target_count[a] = n, GTW.total_target_count[a] += n) { i.count = n; } else { i.target_count[a] = n; total_target_count[a] += n; } } }
void CreateMesh() { List <Vector3> verts = new List <Vector3>(); List <int> idxs = new List <int>(); foreach (KeyValuePair <int, GTWSystem> kvp in GTW.Instance.systems) { verts.Clear(); idxs.Clear(); int iKey = kvp.Key; GTWSystem sys = kvp.Value; int r = sys.n_sides; bool a = r < 0; // var a = 0 > r; r = Mathf.Abs(r); // r = Math.abs(r); float i = a ? Mathf.PI / r : Mathf.PI * 2f / r; // var i; // i = a ? Math.PI / r : TWO_PI / r; for (int u = 5, c = 0; c < u; ++c) // for (var u = 5, c = 0; u > c; ++c) { { float l = 0f; for (int s = 0; s < r; ++s)// for (var l = 0, s = 0; r > s; ++s) e(l, c), { ShapeAddVertex(l, c, verts, idxs); ShapeAddVertex(l + i, c, verts, idxs); // e(l + i, c), l += i; // l += i; } if (a) // a && (e(l, c), e(0, c)), { ShapeAddVertex(l, c, verts, idxs); ShapeAddVertex(0f, c, verts, idxs); } if (r == 31)// 31 == r && (l = 0.8, e(l, c), e(l + Math.PI, c))// } { l = 0.8f; ShapeAddVertex(l, c, verts, idxs); ShapeAddVertex(l + Mathf.PI, c, verts, idxs); } } Mesh m = new Mesh(); m.name = "ShapeIcon_" + iKey.ToString(); m.SetVertices(verts); m.SetIndices(idxs.ToArray(), MeshTopology.Lines, 0); meshIcon[iKey] = m; } verts.Clear(); idxs.Clear(); for (int r = 32, n = 0; n < r; ++n) // for (var e = [], r = 32, n = 0; r > n; ++n) { { float o = Mathf.PI * 2.0f * n / (r - 1); // var o = TWO_PI * n / (r - 1), float a = Mathf.Cos(o); // a = Math.cos(o), float i = Mathf.Sin(o); // i = Math.sin(o); verts.Add(new Vector3(a, 0f, i)); // e.push(a, 0, i, a, 1, i) verts.Add(new Vector3(a, 1f, i)); }// } idxs = CreateTriangleStripIndex(verts.ToArray()); meshCone.SetVertices(verts); meshCone.SetIndices(idxs.ToArray(), MeshTopology.Triangles, 0); meshCone.name = "meshCone"; verts.Clear(); idxs.Clear(); verts.Add(new Vector3(0f, 0f, 0f)); verts.Add(new Vector3(1f, 0f, 0f)); verts.Add(new Vector3(0f, 1f, 0f)); verts.Add(new Vector3(1f, 1f, 0f)); idxs = CreateTriangleStripIndex(verts.ToArray()); meshQuad.SetVertices(verts); meshQuad.SetIndices(idxs.ToArray(), MeshTopology.Triangles, 0); meshQuad.name = "meshQuad"; }
void Update() { // 模拟一个小时内时间循环 run_time += (ulong)(Time.deltaTime * 1000f); if (run_time > GTW_o) { run_time = 0; next_fetch_time = 0; } current_time = begin_time + run_time; List <GTWEvent> doEvents = new List <GTWEvent>(); if (bUseDemoData) { doEvents = PollEvents(current_time); } if (true)// (country_length > 0) { foreach (GTWEvent e in doEvents) { uint t = e.key; // var t = e.key, uint r = t >> 16 & 255; // r = t >> 16 & 255, uint n = t >> 8 & 255; // n = t >> 8 & 255, uint o = t >> 0 & 255; // o = t >> 0 & 255, GTWSystem a = systems[(int)r]; // a = GTW.systems[r], bool i = true; // i = !0; if (r == 8 && e.coords != Vector4.zero) // 8 == r && e.coords && (i = !1), { i = false; } if (r == 8 && n == 0)// 8 == r && 0 == n && (i = !1), { i = false; } if (i)// i && (++a.count, ++a.graph[ue], ++a.target_count[n]), { ++a.count; ++a.target_count[n]; } ++total_target_count[n]; // ++GTW.total_target_count[n], if (a.enabled) // W && z.draw_world && a.enabled && p(r, n, o, e.coords, e.angle) { DrawEvent(r, n, o, e.coords, e.angle); } } } if (bChangeColor) { if (bDark) { MainCamera.backgroundColor = new Color(0f, 0f, 0f, 1f); mat_country.SetColor("_Color0", new Color(0.1f, 0.12f, 0.11f)); mat_country.SetColor("_Color1", new Color(0.2f, 0.23f, 0.21f)); mat_country_picked.SetColor("_Color0", new Color(0.1f, 0.12f, 0.11f)); mat_country_picked.SetColor("_Color1", new Color(0.2f, 0.23f, 0.21f)); mat_coast.SetColor("_Color0", new Color(0.1f, 0.12f, 0.11f)); mat_coast.SetColor("_Color1", new Color(0.2f, 0.23f, 0.21f)); mat_grid.SetColor("_Color0", new Color(0.07f, 0.09f, 0.07f)); mat_grid.SetColor("_Color1", new Color(0.36f, 0.41f, 0.36f)); mat_corona.SetColor("_Color1", Color.black); mat_corona.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.SrcAlpha); mat_corona.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.One); } else { MainCamera.backgroundColor = new Color(0.9f, 0.9f, 0.9f, 1f); mat_country.SetColor("_Color0", new Color(0.41f, 0.61f, 0.48f)); mat_country.SetColor("_Color1", new Color(0.51f, 0.69f, 0.53f)); mat_country_picked.SetColor("_Color0", new Color(0.41f, 0.61f, 0.48f)); mat_country_picked.SetColor("_Color1", new Color(0.51f, 0.69f, 0.53f)); mat_coast.SetColor("_Color0", new Color(0.41f, 0.61f, 0.48f)); mat_coast.SetColor("_Color1", new Color(0.51f, 0.69f, 0.53f)); mat_grid.SetColor("_Color0", new Color(0.93f, 0.95f, 0.93f)); mat_grid.SetColor("_Color1", new Color(0.42f, 0.48f, 0.42f)); mat_corona.SetColor("_Color1", Color.white); mat_corona.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.DstColor); mat_corona.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.Zero); } bChangeColor = false; } // if (bSphere && fDeform < 1f) // { // fDeform += Time.deltaTime * fDeformPerSecond; // fDeform = Mathf.Clamp01(fDeform); // UpdateDeform(); // } // else if (!bSphere && fDeform > 0f) // { // fDeform -= Time.deltaTime * fDeformPerSecond; // fDeform = Mathf.Clamp01(fDeform); // UpdateDeform(); // } UpdateDeform(); }