Esempio n. 1
0
        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);
        }
Esempio n. 2
0
 public JPointInfomation(PointInfomation pointInfomation)
 {
     this.position = new UtilPack4Unity.TypeUtils.Json.Vec3(pointInfomation.position);
     this.uv       = new UtilPack4Unity.TypeUtils.Json.Vec2(pointInfomation.uv);
 }
Esempio n. 3
0
    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);
    }