Changeset View
Changeset View
Standalone View
Standalone View
source/blender/io/collada/MeshImporter.cpp
| Show First 20 Lines • Show All 615 Lines • ▼ Show 20 Lines | void MeshImporter::read_polys(COLLADAFW::Mesh *collada_mesh, | ||||
| MutableSpan<MPoly> polys = me->polys_for_write(); | MutableSpan<MPoly> polys = me->polys_for_write(); | ||||
| MutableSpan<MLoop> loops = me->loops_for_write(); | MutableSpan<MLoop> loops = me->loops_for_write(); | ||||
| MPoly *mpoly = polys.data(); | MPoly *mpoly = polys.data(); | ||||
| MLoop *mloop = loops.data(); | MLoop *mloop = loops.data(); | ||||
| int loop_index = 0; | int loop_index = 0; | ||||
| MaterialIdPrimitiveArrayMap mat_prim_map; | MaterialIdPrimitiveArrayMap mat_prim_map; | ||||
| int *material_indices = (int *)CustomData_add_layer_named( | int *material_indices = BKE_mesh_material_indices_for_write(me); | ||||
| &me->pdata, CD_PROP_INT32, CD_SET_DEFAULT, nullptr, me->totpoly, "material_index"); | |||||
| COLLADAFW::MeshPrimitiveArray &prim_arr = collada_mesh->getMeshPrimitives(); | COLLADAFW::MeshPrimitiveArray &prim_arr = collada_mesh->getMeshPrimitives(); | ||||
| COLLADAFW::MeshVertexData &nor = collada_mesh->getNormals(); | COLLADAFW::MeshVertexData &nor = collada_mesh->getNormals(); | ||||
| for (i = 0; i < prim_arr.getCount(); i++) { | for (i = 0; i < prim_arr.getCount(); i++) { | ||||
| COLLADAFW::MeshPrimitive *mp = prim_arr[i]; | COLLADAFW::MeshPrimitive *mp = prim_arr[i]; | ||||
| ▲ Show 20 Lines • Show All 136 Lines • ▼ Show 20 Lines | if (ELEM(collada_meshtype, | ||||
| } | } | ||||
| else { | else { | ||||
| set_vcol(mloopcol + loop_index, vcol, start_index, color_index_list, vcount); | set_vcol(mloopcol + loop_index, vcol, start_index, color_index_list, vcount); | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| mpoly++; | mpoly++; | ||||
| if (material_indices) { | |||||
| material_indices++; | |||||
| } | |||||
| mloop += vcount; | mloop += vcount; | ||||
| loop_index += vcount; | loop_index += vcount; | ||||
| start_index += vcount; | start_index += vcount; | ||||
| prim.totpoly++; | prim.totpoly++; | ||||
| if (mp_has_normals) { | if (mp_has_normals) { | ||||
| normal_indices += vcount; | normal_indices += vcount; | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 405 Lines • Show Last 20 Lines | |||||