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); }
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); } }
// 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); } }