diff options
author | Gaia Clary <gaia.clary@machinimatrix.org> | 2012-06-22 20:16:58 +0400 |
---|---|---|
committer | Gaia Clary <gaia.clary@machinimatrix.org> | 2012-06-22 20:16:58 +0400 |
commit | adf3a5e33229633be9b3ea3639a1baa6596ec7ff (patch) | |
tree | 7bfe447274b86e9d91c4952b5bf765827b365ecf /source/blender/collada/InstanceWriter.cpp | |
parent | 257283e030792157d24c2cd7846a92de9572b846 (diff) |
Collada: (Export) Added export of surface textures, and control over exported uv layers
Diffstat (limited to 'source/blender/collada/InstanceWriter.cpp')
-rw-r--r-- | source/blender/collada/InstanceWriter.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/source/blender/collada/InstanceWriter.cpp b/source/blender/collada/InstanceWriter.cpp index 788bd2a98b7..5908037d782 100644 --- a/source/blender/collada/InstanceWriter.cpp +++ b/source/blender/collada/InstanceWriter.cpp @@ -41,7 +41,7 @@ #include "collada_internal.h" #include "collada_utils.h" -void InstanceWriter::add_material_bindings(COLLADASW::BindMaterial& bind_material, Object *ob) +void InstanceWriter::add_material_bindings(COLLADASW::BindMaterial& bind_material, Object *ob, bool active_uv_only) { for (int a = 0; a < ob->totcol; a++) { Material *ma = give_current_material(ob, a + 1); @@ -52,16 +52,20 @@ void InstanceWriter::add_material_bindings(COLLADASW::BindMaterial& bind_materia std::string matid(get_material_id(ma)); matid = translate_id(matid); std::ostringstream ostr; - ostr << translate_id(id_name(ma)); + ostr << matid; COLLADASW::InstanceMaterial im(ostr.str(), COLLADASW::URI(COLLADABU::Utils::EMPTY_STRING, matid)); // create <bind_vertex_input> for each uv map Mesh *me = (Mesh *)ob->data; int totlayer = CustomData_number_of_layers(&me->fdata, CD_MTFACE); + int map_index = 0; + int active_uv_index = CustomData_get_active_layer_index(&me->fdata, CD_MTFACE) -1; for (int b = 0; b < totlayer; b++) { - char *name = bc_CustomData_get_layer_name(&me->fdata, CD_MTFACE, b); - im.push_back(COLLADASW::BindVertexInput(name, "TEXCOORD", b)); + if (!active_uv_only || b == active_uv_index) { + char *name = bc_CustomData_get_layer_name(&me->fdata, CD_MTFACE, map_index); + im.push_back(COLLADASW::BindVertexInput(name, "TEXCOORD", map_index++)); + } } iml.push_back(im); |