Ejemplo n.º 1
0
        void UpdateMesh(ref GeomMesh gm, Mesh dst)
        {
            if (dst == null)
            {
                return;
            }
            dst.Clear();

            if (m_ogc.FillPoints(ref gm, m_points))
            {
                dst.SetVertices(m_points.List);
            }
            if (m_ogc.FillNormals(ref gm, m_normals))
            {
                dst.SetNormals(m_normals.List);
            }
            if (m_ogc.FillTangents(ref gm, m_tangents))
            {
                dst.SetTangents(m_tangents.List);
            }
            if (m_ogc.FillUV0(ref gm, m_uv0))
            {
                dst.SetUVs(0, m_uv0.List);
            }
            if (m_ogc.FillUV1(ref gm, m_uv1))
            {
                dst.SetUVs(1, m_uv0.List);
            }
            if (m_ogc.FillColors(ref gm, m_colors))
            {
                dst.SetColors(m_colors.List);
            }

            int si   = 0;
            var subm = new GeomSubmesh();

            for (int smi = 0; smi < gm.submeshCount; ++smi)
            {
                m_ogc.GetSubmesh(gm.submeshOffset + smi, ref subm);
                if (subm.topology == Topology.Triangles)
                {
                    m_ogc.FillIndices(ref subm, m_indices);
                    dst.SetTriangles(m_indices.List, si++, false);
                }
            }
        }
Ejemplo n.º 2
0
        void UpdateMeshes()
        {
            if (!m_ogc)
            {
                m_ogc = OutputGeomCache.Create();
            }

            if (m_gc.Assign(m_ogc))
            {
                var gm        = new GeomMesh();
                int meshCount = m_ogc.meshCount;
                for (int mi = 0; mi < meshCount; ++mi)
                {
                    m_ogc.GetMesh(mi, ref gm);
                    UpdateMesh(ref gm, FindOrAddMesh(m_gc.GetPath(mi)));
                }
            }
        }
Ejemplo n.º 3
0
 [DllImport("NativeVertexCache")] static extern bool nvcOGCCopyColors(IntPtr self, ref GeomMesh gm, IntPtr dst);
Ejemplo n.º 4
0
 [DllImport("NativeVertexCache")] static extern void nvcOGCGetMesh(IntPtr self, int index, ref GeomMesh dst);
Ejemplo n.º 5
0
 public bool FillColors(ref GeomMesh gm, PinnedList <Color> dst)
 {
     dst.ResizeDiscard(gm.vertexCount);
     return(nvcOGCCopyColors(self, ref gm, dst));
 }
Ejemplo n.º 6
0
 public bool FillUV1(ref GeomMesh gm, PinnedList <Vector2> dst)
 {
     dst.ResizeDiscard(gm.vertexCount);
     return(nvcOGCCopyUV1(self, ref gm, dst));
 }
Ejemplo n.º 7
0
 public void GetMesh(int index, ref GeomMesh dst)
 {
     nvcOGCGetMesh(self, index, ref dst);
 }