Changeset View
Changeset View
Standalone View
Standalone View
source/blender/collada/MeshImporter.cpp
| Show First 20 Lines • Show All 201 Lines • ▼ Show 20 Lines | switch (mVData->getType()) { | ||||
| } | } | ||||
| break; | break; | ||||
| default: | default: | ||||
| fprintf(stderr, "VCOLDataWrapper.getvcol(): unknown data type\n"); | fprintf(stderr, "VCOLDataWrapper.getvcol(): unknown data type\n"); | ||||
| } | } | ||||
| } | } | ||||
| MeshImporter::MeshImporter(UnitConverter *unitconv, ArmatureImporter *arm, Scene *sce, ViewLayer *view_layer): | MeshImporter::MeshImporter(UnitConverter *unitconv, ArmatureImporter *arm, Scene *sce, ViewLayer *view_layer, WorkSpace *ws): | ||||
| unitconverter(unitconv), | unitconverter(unitconv), | ||||
| scene(sce), | scene(sce), | ||||
| view_layer(view_layer), | view_layer(view_layer), | ||||
| workspace(ws), | |||||
| armature_importer(arm) { | armature_importer(arm) { | ||||
| } | } | ||||
| bool MeshImporter::set_poly_indices(MPoly *mpoly, MLoop *mloop, int loop_index, unsigned int *indices, int loop_count) | bool MeshImporter::set_poly_indices(MPoly *mpoly, MLoop *mloop, int loop_index, unsigned int *indices, int loop_count) | ||||
| { | { | ||||
| mpoly->loopstart = loop_index; | mpoly->loopstart = loop_index; | ||||
| mpoly->totloop = loop_count; | mpoly->totloop = loop_count; | ||||
| bool broken_loop = false; | bool broken_loop = false; | ||||
| ▲ Show 20 Lines • Show All 918 Lines • ▼ Show 20 Lines | Object *MeshImporter::create_mesh_object(COLLADAFW::Node *node, COLLADAFW::InstanceGeometry *geom, | ||||
| } | } | ||||
| if (!uid_mesh_map[*geom_uid]) return NULL; | if (!uid_mesh_map[*geom_uid]) return NULL; | ||||
| // name Object | // name Object | ||||
| const std::string& id = node->getName().size() ? node->getName() : node->getOriginalId(); | const std::string& id = node->getName().size() ? node->getName() : node->getOriginalId(); | ||||
| const char *name = (id.length()) ? id.c_str() : NULL; | const char *name = (id.length()) ? id.c_str() : NULL; | ||||
| // add object | // add object | ||||
| Object *ob = bc_add_object(scene, view_layer, OB_MESH, name); | Object *ob = bc_add_object(scene, view_layer, workspace, OB_MESH, name); | ||||
| bc_set_mark(ob); // used later for material assignement optimization | bc_set_mark(ob); // used later for material assignement optimization | ||||
| // store object pointer for ArmatureImporter | // store object pointer for ArmatureImporter | ||||
| uid_object_map[*geom_uid] = ob; | uid_object_map[*geom_uid] = ob; | ||||
| imported_objects.push_back(ob); | imported_objects.push_back(ob); | ||||
| // replace ob->data freeing the old one | // replace ob->data freeing the old one | ||||
| ▲ Show 20 Lines • Show All 69 Lines • Show Last 20 Lines | |||||