Beispiel #1
0
        public bool ExtractMeshBuffers(ref Vector3[] vertices, ref Vector2[] uvs, ref Color[] colors, ref int[] triangles)
        {
            bool flag = MeshBuffer.ResizeChecked <Vector3>(ref vertices, this.vSize) | MeshBuffer.ResizeChecked <Vector2>(ref uvs, this.vSize) | MeshBuffer.ResizeChecked <Color>(ref colors, this.vSize) | MeshBuffer.ResizeChecked <int>(ref triangles, this.iCount);

            MeshBuffer.FillBuffer <Vector3> fillBuffer = new MeshBuffer.FillBuffer <Vector3>()
            {
                buf = vertices
            };
            MeshBuffer.FillBuffer <Vector2> fillBuffer1 = new MeshBuffer.FillBuffer <Vector2>()
            {
                buf = uvs
            };
            MeshBuffer.FillBuffer <Color> fillBuffer2 = new MeshBuffer.FillBuffer <Color>()
            {
                buf = colors
            };
            MeshBuffer.FillBuffer <int> fillBuffer3 = new MeshBuffer.FillBuffer <int>()
            {
                buf = triangles
            };
            this.Extract(fillBuffer, fillBuffer1, fillBuffer2, fillBuffer3);
            return(flag);
        }
Beispiel #2
0
        private void Extract(MeshBuffer.FillBuffer <Vector3> vertices, MeshBuffer.FillBuffer <Vector2> uvs, MeshBuffer.FillBuffer <Color> colors, MeshBuffer.FillBuffer <int> triangles)
        {
            Vector3[] vector3Array = vertices.buf;
            Vector2[] vector2Array = uvs.buf;
            Color[]   colorArray   = colors.buf;
            int[]     numArray     = triangles.buf;
            int       num          = vertices.offset;
            int       num1         = uvs.offset;
            int       num2         = colors.offset;

            for (int i = 0; i < this.vSize; i++)
            {
                vector3Array[num].x  = (float)this.v[i].x;
                vector3Array[num].y  = (float)this.v[i].y;
                vector3Array[num].z  = (float)this.v[i].z;
                vector2Array[num1].x = (float)this.v[i].u;
                vector2Array[num1].y = (float)this.v[i].v;
                colorArray[num2].r   = (float)this.v[i].r;
                colorArray[num2].g   = (float)this.v[i].g;
                colorArray[num2].b   = (float)this.v[i].b;
                colorArray[num2].a   = (float)this.v[i].a;
                num++;
                num1++;
                num2++;
            }
            int num3 = triangles.offset;
            int num4 = vertices.offset;

            if (this.primSize > 0)
            {
                for (int j = 0; j < this.primSize - 1; j++)
                {
                    this.primitives[j].Put(numArray, ref num4, ref num3, (int)this.primitives[j + 1].start);
                }
                this.primitives[this.primSize - 1].Put(numArray, ref num4, ref num3, this.vSize);
            }
        }
Beispiel #3
0
        // Token: 0x06004B3E RID: 19262 RVA: 0x0012457C File Offset: 0x0012277C
        private void Extract(MeshBuffer.FillBuffer <Vector3> vertices, MeshBuffer.FillBuffer <Vector2> uvs, MeshBuffer.FillBuffer <Color> colors, MeshBuffer.FillBuffer <int> triangles)
        {
            Vector3[] buf  = vertices.buf;
            Vector2[] buf2 = uvs.buf;
            Color[]   buf3 = colors.buf;
            int[]     buf4 = triangles.buf;
            int       num  = vertices.offset;
            int       num2 = uvs.offset;
            int       num3 = colors.offset;

            for (int i = 0; i < this.vSize; i++)
            {
                buf[num].x   = this.v[i].x;
                buf[num].y   = this.v[i].y;
                buf[num].z   = this.v[i].z;
                buf2[num2].x = this.v[i].u;
                buf2[num2].y = this.v[i].v;
                buf3[num3].r = this.v[i].r;
                buf3[num3].g = this.v[i].g;
                buf3[num3].b = this.v[i].b;
                buf3[num3].a = this.v[i].a;
                num++;
                num2++;
                num3++;
            }
            int offset  = triangles.offset;
            int offset2 = vertices.offset;

            if (this.primSize > 0)
            {
                for (int j = 0; j < this.primSize - 1; j++)
                {
                    this.primitives[j].Put(buf4, ref offset2, ref offset, (int)this.primitives[j + 1].start);
                }
                this.primitives[this.primSize - 1].Put(buf4, ref offset2, ref offset, this.vSize);
            }
        }