40 "Vertex colors in the file are in sRGB color space"},
45 "Vertex colors in the file are in linear color space"},
46 {0,
nullptr, 0,
nullptr,
nullptr}};
66 if (paths.is_empty()) {
70 for (
const auto &path : paths) {
100 subcol.
prop(
ptr,
"use_custom_props_enum_as_string",
UI_ITEM_NONE, std::nullopt, ICON_NONE);
103 if (
uiLayout *panel = layout->
panel(C,
"FBX_import_geometry",
false,
IFACE_(
"Geometry"))) {
122 if (
uiLayout *panel = layout->
panel(C,
"FBX_import_armature",
false,
IFACE_(
"Armature"))) {
130 ui_fbx_import_settings(C, op->
layout, op->
ptr);
137 ot->
name =
"Import FBX (experimental)";
142 ot->
exec = wm_fbx_import_exec;
144 ot->
check = wm_fbx_import_check;
145 ot->
ui = wm_fbx_import_draw;
160 fbx_vertex_colors_mode,
163 "Import vertex color attributes");
166 "use_custom_normals",
169 "Import custom normals, if available (otherwise Blender will compute them)");
174 "Import user properties as custom properties");
176 "use_custom_props_enum_as_string",
179 "Store custom property enumeration values as strings");
181 "import_subdivision",
184 "Import FBX subdivision information as subdivision surface modifiers");
189 "Ignore the last bone at the end of each chain (used to mark the length of the "
196 "Ensure the data is valid "
197 "(when disabled, data may be imported which causes crashes displaying or editing)");
206 "Offset to apply to animation timestamps, in frames",
219 auto fh = std::make_unique<blender::bke::FileHandlerType>();
220 STRNCPY(fh->idname,
"IO_FH_fbx_experimental");
221 STRNCPY(fh->import_operator,
"WM_OT_fbx_import");
223 STRNCPY(fh->file_extensions_str,
".fbx");
Scene * CTX_data_scene(const bContext *C)
void BKE_report(ReportList *reports, eReportType type, const char *message)
char * STRNCPY(char(&dst)[N], const char *src)
void ED_outliner_select_sync_from_object_tag(bContext *C)
void FBX_import(bContext *C, const FBXImportParams ¶ms)
void uiLayoutSetActive(uiLayout *layout, bool active)
void uiLayoutSetPropSep(uiLayout *layout, bool is_sep)
void uiLayoutSetPropDecorate(uiLayout *layout, bool is_sep)
void WM_OT_fbx_import(wmOperatorType *ot)
void file_handler_add(std::unique_ptr< FileHandlerType > file_handler)
void fbx_file_handler_add()
bool poll_file_object_drop(const bContext *C, blender::bke::FileHandlerType *)
Vector< std::string > paths_from_operator_properties(PointerRNA *ptr)
wmOperatorStatus filesel_drop_import_invoke(bContext *C, wmOperator *op, const wmEvent *)
float RNA_float_get(PointerRNA *ptr, const char *name)
bool RNA_boolean_get(PointerRNA *ptr, const char *name)
int RNA_enum_get(PointerRNA *ptr, const char *name)
PropertyRNA * RNA_def_string(StructOrFunctionRNA *cont_, const char *identifier, const char *default_value, const int maxlen, const char *ui_name, const char *ui_description)
PropertyRNA * RNA_def_float(StructOrFunctionRNA *cont_, const char *identifier, const float default_value, const float hardmin, const float hardmax, const char *ui_name, const char *ui_description, const float softmin, const float softmax)
PropertyRNA * RNA_def_enum(StructOrFunctionRNA *cont_, const char *identifier, const EnumPropertyItem *items, const int default_value, const char *ui_name, const char *ui_description)
PropertyRNA * RNA_def_boolean(StructOrFunctionRNA *cont_, const char *identifier, const bool default_value, const char *ui_name, const char *ui_description)
void RNA_def_property_flag(PropertyRNA *prop, PropertyFlag flag)
void RNA_def_property_ui_range(PropertyRNA *prop, double min, double max, double step, int precision)
PanelLayout panel(const bContext *C, blender::StringRef idname, bool default_closed)
void label(blender::StringRef name, int icon)
uiLayout & column(bool align)
void prop(PointerRNA *ptr, PropertyRNA *prop, int index, int value, eUI_Item_Flag flag, std::optional< blender::StringRef > name_opt, int icon, std::optional< blender::StringRef > placeholder=std::nullopt)
wmOperatorStatus(* exec)(bContext *C, wmOperator *op) ATTR_WARN_UNUSED_RESULT
bool(* poll)(bContext *C) ATTR_WARN_UNUSED_RESULT
bool(* check)(bContext *C, wmOperator *op)
wmOperatorStatus(* invoke)(bContext *C, wmOperator *op, const wmEvent *event) ATTR_WARN_UNUSED_RESULT
void(* ui)(bContext *C, wmOperator *op)
struct ReportList * reports
void WM_event_add_notifier(const bContext *C, uint type, void *reference)
void WM_operator_properties_filesel(wmOperatorType *ot, const int filter, const short type, const eFileSel_Action action, const eFileSel_Flag flag, const short display, const short sort)
bool WM_operator_winactive(bContext *C)