Changeset View
Changeset View
Standalone View
Standalone View
source/blender/collada/ArmatureImporter.cpp
| Show First 20 Lines • Show All 49 Lines • ▼ Show 20 Lines | |||||
| template<class T> | template<class T> | ||||
| static const char *bc_get_joint_name(T *node) | static const char *bc_get_joint_name(T *node) | ||||
| { | { | ||||
| const std::string& id = node->getName(); | const std::string& id = node->getName(); | ||||
| return id.size() ? id.c_str() : node->getOriginalId().c_str(); | return id.size() ? id.c_str() : node->getOriginalId().c_str(); | ||||
| } | } | ||||
| ArmatureImporter::ArmatureImporter(UnitConverter *conv, MeshImporterBase *mesh, Scene *sce, ViewLayer *view_layer, const ImportSettings *import_settings) : | ArmatureImporter::ArmatureImporter(UnitConverter *conv, MeshImporterBase *mesh, Scene *sce, ViewLayer *view_layer, WorkSpace *ws, const ImportSettings *import_settings) : | ||||
| TransformReader(conv), | TransformReader(conv), | ||||
| scene(sce), | scene(sce), | ||||
| view_layer(view_layer), | view_layer(view_layer), | ||||
| workspace(ws), | |||||
| unit_converter(conv), | unit_converter(conv), | ||||
| import_settings(import_settings), | import_settings(import_settings), | ||||
| empty(NULL), | empty(NULL), | ||||
| mesh_importer(mesh) { | mesh_importer(mesh) { | ||||
| } | } | ||||
| ArmatureImporter::~ArmatureImporter() | ArmatureImporter::~ArmatureImporter() | ||||
| { | { | ||||
| ▲ Show 20 Lines • Show All 337 Lines • ▼ Show 20 Lines | void ArmatureImporter::set_euler_rotmode() | ||||
| } | } | ||||
| } | } | ||||
| #endif | #endif | ||||
| Object *ArmatureImporter::get_empty_for_leaves() | Object *ArmatureImporter::get_empty_for_leaves() | ||||
| { | { | ||||
| if (empty) return empty; | if (empty) return empty; | ||||
| empty = bc_add_object(scene, view_layer, OB_EMPTY, NULL); | empty = bc_add_object(scene, view_layer, workspace, OB_EMPTY, NULL); | ||||
| empty->empty_drawtype = OB_EMPTY_SPHERE; | empty->empty_drawtype = OB_EMPTY_SPHERE; | ||||
| return empty; | return empty; | ||||
| } | } | ||||
| #if 0 | #if 0 | ||||
| Object *ArmatureImporter::find_armature(COLLADAFW::Node *node) | Object *ArmatureImporter::find_armature(COLLADAFW::Node *node) | ||||
| { | { | ||||
| ▲ Show 20 Lines • Show All 158 Lines • ▼ Show 20 Lines | if (!shared && this->joint_parent_map.size() > 0) { | ||||
| // in the import. | // in the import. | ||||
| shared = this->joint_parent_map.begin()->second; | shared = this->joint_parent_map.begin()->second; | ||||
| } | } | ||||
| if (shared) { | if (shared) { | ||||
| ob_arm = skin.set_armature(shared); | ob_arm = skin.set_armature(shared); | ||||
| } | } | ||||
| else { | else { | ||||
| ob_arm = skin.create_armature(scene, view_layer); //once for every armature | ob_arm = skin.create_armature(scene, view_layer, workspace); //once for every armature | ||||
| } | } | ||||
| // enter armature edit mode | // enter armature edit mode | ||||
| bArmature * armature = (bArmature *)ob_arm->data; | bArmature * armature = (bArmature *)ob_arm->data; | ||||
| ED_armature_to_edit(armature); | ED_armature_to_edit(armature); | ||||
| totbone = 0; | totbone = 0; | ||||
| // bone_direction_row = 1; // TODO: don't default to Y but use asset and based on it decide on default row | // bone_direction_row = 1; // TODO: don't default to Y but use asset and based on it decide on default row | ||||
| ▲ Show 20 Lines • Show All 419 Lines • Show Last 20 Lines | |||||