22 if (!(bone && visitor)) {
48 if (md->type == type) {
80 const bool use_deform,
88 auto visitor = [&](
const Bone *bone) {
109 return pxr::TfToken(path);
119 pxr::VtTokenArray joints;
125 if (deform_map && !deform_map->
contains(pchan->bone->name)) {
135 skel_anim.GetJointsAttr().Set(joints);
141 return mod ?
mod->object :
nullptr;
172 auto deform_visitor = [&](
const Bone *bone) {
179 deform_map->
add(bone->
name, bone);
186 for (
const auto &item : deform_map->
items()) {
188 for (
const Bone *parent = item.value->
parent; parent; parent = parent->parent) {
189 deform_map->
add(parent->name, parent);
Bone * BKE_armature_find_bone_name(bArmature *arm, const char *name)
bool BKE_modifier_is_enabled(const Scene *scene, ModifierData *md, int required_mode)
#define LISTBASE_FOREACH(type, var, list)
eEvaluationMode DEG_get_mode(const Depsgraph *graph)
Scene * DEG_get_input_scene(const Depsgraph *graph)
bool add(const Key &key, const Value &value)
ItemIterator items() const
bool contains(const Key &key) const
void append(const T &value)
const Depsgraph * depsgraph
void init_deform_bones_map(const Object *obj, Map< StringRef, const Bone * > *deform_map)
static const ArmatureModifierData * get_armature_modifier(const Object &obj, const Depsgraph *depsgraph)
std::string make_safe_name(const std::string &name, bool allow_unicode)
bool is_armature_modifier_bone_name(const Object &obj, const StringRefNull name, const Depsgraph *depsgraph)
void create_pose_joints(pxr::UsdSkelAnimation &skel_anim, const Object &obj, const Map< StringRef, const Bone * > *deform_map, bool allow_unicode)
pxr::TfToken build_usd_joint_path(const Bone *bone, bool allow_unicode)
void get_armature_bone_names(const Object *ob_arm, const bool use_deform, Vector< std::string > &r_names)
const ModifierData * get_enabled_modifier(const Object &obj, ModifierType type, const Depsgraph *depsgraph)
const Object * get_armature_modifier_obj(const Object &obj, const Depsgraph *depsgraph)
static void visit_bones(const Bone *bone, FunctionRef< void(const Bone *)> visitor)
bool can_export_skinned_mesh(const Object &obj, const Depsgraph *depsgraph)
ccl_device_inline int mod(int x, int m)