public R_PartArray(PartArray partArray) { PartArray = partArray; Parts = new List <R_PhysicsPart>(); var numVerts = 0; var numPolys = 0; for (var i = 0; i < partArray.Parts.Count; i++) { var physicsPart = partArray.Parts[i]; // skip anchor locations if (partArray.Parts[i].GfxObj.ID == 0x010001ec) { continue; } Parts.Add(new R_PhysicsPart(physicsPart)); numVerts += physicsPart.GfxObj.VertexArray.Vertices.Count; numPolys += physicsPart.GfxObj.Polygons.Count; } //Console.WriteLine("NumParts: " + Parts.Count); //Console.WriteLine("NumVerts: " + numVerts); //Console.WriteLine("NumPolys: " + numPolys); BuildVertices(); BuildIndices(); //SetUpBuffers(); }
/* * requ {"data_count": 1000, "distribution": "normal", "m": 0, "d": 1, "clients":[]} */ public override void Execute(ClientData argument) { uint count = argument.data["data_count"].GetValue <uint>(); IPart hid = argument.data["clients"]; argument.data.Data.Remove("clients"); Task <IPart>[] workers = new Task <IPart> [hid.Count]; Client[] selected_clients = new Client[hid.Count]; string req = new PartStruct() .Add("cmd", "load") .Add("data", argument.data.Data).ToJSON(); int index = 0; foreach (IPart cli in hid) { Client currentClient = data.clients[cli.GetValue <string>()]; selected_clients[index] = currentClient; workers[index] = Task.Factory.StartNew(() => { return(TestForSingleIotClient(currentClient, req, count)); }); index++; } IPart container = new PartArray(); IPart sendedMessage = new PartStruct().Add("ok", container); Task.WaitAll(workers); for (int i = 0; i < workers.Length; i++) { container.Add(new PartStruct().Add("name", selected_clients[i].ToString()).Add("result", workers[i].Result)); } argument.client.SendMessageAsync(sendedMessage.ToJSON()); }
//{name, groupe} public override void Execute(ClientData argument) { PartArray res = new PartArray(); IPart ng = null; Func <Client, bool> nameReact = (arg) => true; Func <Client, bool> groupeReact = (arg) => true; if (argument.data.Data.ByPathSave("name", out ng)) { string targetName = ng.GetValue <string>(); nameReact = (arg) => arg.Name.Equals(targetName); } if (argument.data.Data.ByPathSave("groupe", out ng)) { string targetGroupe = ng.GetValue <string>(); nameReact = (arg) => arg.Groupe.Equals(targetGroupe); } IEnumerable <KeyValuePair <String, Client> > query = (from cli in data.clients where nameReact(cli.Value) == true && groupeReact(cli.Value) == true select cli); foreach (KeyValuePair <String, Client> client in query) { res.Add(new PartStruct() .Add("address", String.Format("{0}:{1}", client.Value.Address.Address, client.Value.Address.Port)) .Add("name", client.Value.Name) .Add("groupe", client.Value.Groupe) .Add("id", client.Key)); } argument.client.SendMessageAsync(res.ToJSON()); }
public PartArray GetSelectedClients() { if (selected.Count == 0) { throw new Exception("nothing to test"); } PartArray res = new PartArray(); foreach (Client iotClient in selected) { res.Add(iotClient.HID); } return(res); }