Exemplo n.º 1
0
        public GraphicsModelData(ModelData modelData, bool smoothing)
        {
            smoothing = true;
            var faceCount = modelData.GetFaceCount();

            faces   = new TriangleFace[faceCount];
            dataTNV = new VertexTNV[faceCount * 3];
            for (var index = 0; index < faceCount; ++index)
            {
                ModelData.Face face      = modelData.GetFace(index);
                Vector3        position1 = modelData[face.Index1];
                Vector3        position2 = modelData[face.Index2];
                Vector3        position3 = modelData[face.Index3];
                if (smoothing)
                {
                    dataTNV[3 * index]     = new VertexTNV(cheatSmoothing(modelData.GetVertex(face.Index1), face.Normal), position1);
                    dataTNV[3 * index + 1] = new VertexTNV(cheatSmoothing(modelData.GetVertex(face.Index2), face.Normal), position2);
                    dataTNV[3 * index + 2] = new VertexTNV(cheatSmoothing(modelData.GetVertex(face.Index3), face.Normal), position3);
                }
                else
                {
                    dataTNV[3 * index]     = new VertexTNV(face.Normal, position1);
                    dataTNV[3 * index + 1] = new VertexTNV(face.Normal, position2);
                    dataTNV[3 * index + 2] = new VertexTNV(face.Normal, position3);
                }
                faces[index] = new TriangleFace((uint)(3 * index), (uint)(3 * index + 1), (uint)(3 * index + 2));
            }
        }
Exemplo n.º 2
0
        public GraphicsModelData(List <VertexTNV> vertex_list)
        {
            faces   = new TriangleFace[vertex_list.Count / 3];
            dataTNV = new VertexTNV[vertex_list.Count];
            var num = 0;

            while (num < vertex_list.Count)
            {
                for (var index = num; index < num + 3; ++index)
                {
                    dataTNV[index] = vertex_list[index];
                }

                faces[num / 3] = new TriangleFace((uint)num, (uint)(num + 1), (uint)(num + 2));
                num           += 3;
            }
        }