예제 #1
0
    protected void AddNodes(List <Vector3> verts, List <int> inds, List <int> fullResInds, List <int> lineInds)
    {
        base.AddNodes(verts, inds);

        if (showOriginalResolution)
        {
            Vector3[] v = _fullResGrid.GetVertices(true);

            verts.AddRange(v);
            for (int i = 0; i < v.Length; i++)
            {
                fullResInds.Add(verts.Count - v.Length + i);
            }

            GridShape centerGrid = _featureMaps[_featureMaps.Count / 2].GetPixelGrid();
            float[]   bbox       = centerGrid.GetBbox();

            float[] zpos = { 0, -fullresOffset };

            List <int> lineStartEndInds = new List <int>();
            foreach (float z in zpos)
            {
                verts.Add(new Vector3(bbox[0], bbox[1], centerGrid.position.z + z));
                lineStartEndInds.Add(verts.Count - 1);

                verts.Add(new Vector3(bbox[0], bbox[3], centerGrid.position.z + z));
                lineStartEndInds.Add(verts.Count - 1);

                verts.Add(new Vector3(bbox[2], bbox[1], centerGrid.position.z + z));
                lineStartEndInds.Add(verts.Count - 1);

                verts.Add(new Vector3(bbox[2], bbox[3], centerGrid.position.z + z));
                lineStartEndInds.Add(verts.Count - 1);
            }
            for (int i = 0; i < 4; i++)
            {
                lineInds.Add(lineStartEndInds[i]);
                lineInds.Add(lineStartEndInds[i + 4]);
            }
        }
    }