public override void EnumPoints(Command command, Action <string> onFindPoint) { int index = command.DeviceAddress.IndexOf("|"); string ip = command.DeviceAddress.Substring(0, index); string progid = command.DeviceAddress.Substring(index + 1); OPC.Data.OpcServer server = new OPC.Data.OpcServer(); server.Connect(progid, ip); server.AsyncGetNode += new OPC.Data.OpcServer.AsyncGetNodeHandler((tag, node) => { var obj = new PointInfomation { Path = node.ID, IsFolder = !node.IsItemProperty, Name = node.Name }; onFindPoint(Newtonsoft.Json.JsonConvert.SerializeObject(obj)); }); server.AsyncGetNodes(command.ParentPath, null, true); }
public JPointInfomation(PointInfomation pointInfomation) { this.position = new UtilPack4Unity.TypeUtils.Json.Vec3(pointInfomation.position); this.uv = new UtilPack4Unity.TypeUtils.Json.Vec2(pointInfomation.uv); }
public void Init(PointInfomation leftTop, PointInfomation rightTop, PointInfomation rightBottom, PointInfomation leftBottom, int segmentX, int segmentY) { var points = new PointInfomation[] { leftTop, rightTop, rightBottom, leftBottom }; var mesh = new Mesh(); var vertices = new List <Vector3>(); var uvs = new List <Vector2>(); for (var y = 0; y < segmentY; y++) { for (var x = 0; x < segmentX; x++) { var p = new Vector2((float)x / (float)(segmentX - 1), (float)y / (float)(segmentY - 1)); var pos = leftTop.position * (1f - p.x) * (1f - p.y) + rightTop.position * (p.x) * (1f - p.y) + rightBottom.position * (p.x) * (p.y) + leftBottom.position * (1f - p.x) * (p.y); var uv = leftTop.uv * (1f - p.x) * (1f - p.y) + rightTop.uv * (p.x) * (1f - p.y) + rightBottom.uv * (p.x) * (p.y) + leftBottom.uv * (1f - p.x) * (p.y); vertices.Add(pos); uvs.Add(uv); } } defaultVertices = vertices.ToArray(); var lt = vertices[0]; var rt = vertices[segmentX - 1]; var rb = vertices[segmentX * (segmentY - 1) + segmentX - 1]; var lb = vertices[segmentX * (segmentY - 1)]; var center = (lt + rt + rb + lb) / 4f; CornerPoints = new ControlPoint[] { new ControlPoint(0, lt), new ControlPoint(1, rt), new ControlPoint(2, rb), new ControlPoint(3, lb) }; defaultCornerPoints = new ControlPoint[] { new ControlPoint(0, lt), new ControlPoint(1, rt), new ControlPoint(2, rb), new ControlPoint(3, lb) }; mesh.vertices = vertices.ToArray(); mesh.uv = uvs.ToArray(); var triangles = new List <int>(); for (var y = 0; y < segmentY - 1; y++) { for (var x = 0; x < segmentX - 1; x++) { if (x + 1 < segmentX && y + 1 < segmentY) { var index = x + (y * segmentX); triangles.Add(index); triangles.Add(index + segmentX); triangles.Add(index + 1); triangles.Add(index + segmentX); triangles.Add(index + segmentX + 1); triangles.Add(index + 1); } } } mesh.triangles = triangles.ToArray(); Init(mesh); }