98 sub = &
col->column(
false,
IFACE_(
"Include"));
120 bool changed =
false;
138 ot->name =
"Export STL";
139 ot->description =
"Save the scene to an STL file";
140 ot->idname =
"WM_OT_stl_export";
142 ot->invoke = wm_stl_export_invoke;
143 ot->exec = wm_stl_export_exec;
145 ot->ui = wm_stl_export_draw;
146 ot->check = wm_stl_export_check;
162 "Export file in ASCII format, export as binary otherwise");
164 ot->srna,
"use_batch",
false,
"Batch Export",
"Export each object to a separate file");
166 "export_selected_objects",
168 "Export Selected Objects",
169 "Export only selected objects instead of all supported objects");
176 "Export only objects from this collection (and its children)");
179 RNA_def_float(
ot->srna,
"global_scale", 1.0f, 1e-6f, 1e6f,
"Scale",
"", 0.001f, 1000.0f);
184 "Apply current scene's unit (as defined by unit scale) to exported data");
193 ot->srna,
"apply_modifiers",
true,
"Apply Modifiers",
"Apply modifiers to exported meshes");
196 prop =
RNA_def_string(
ot->srna,
"filter_glob",
"*.stl", 0,
"Extension Filter",
"");
214 if (paths.is_empty()) {
218 for (
const auto &path : paths) {
234 const int num_axes = 3;
267 ui_stl_import_settings(
C, op->
layout, op->
ptr);
274 ot->name =
"Import STL";
275 ot->description =
"Import an STL file as an object";
276 ot->idname =
"WM_OT_stl_import";
279 ot->exec = wm_stl_import_exec;
281 ot->check = wm_stl_import_check;
282 ot->ui = wm_stl_import_draw;
294 RNA_def_float(
ot->srna,
"global_scale", 1.0f, 1e-6f, 1e6f,
"Scale",
"", 0.001f, 1000.0f);
299 "Apply current scene's unit (as defined by unit scale) to imported data");
304 "Use (import) facet normals (note that this will still give flat shading)");
313 "Ensure the data is valid "
314 "(when disabled, data may be imported which causes crashes displaying or editing)");
317 prop =
RNA_def_string(
ot->srna,
"filter_glob",
"*.stl", 0,
"Extension Filter",
"");
324 auto fh = std::make_unique<blender::bke::FileHandlerType>();
SpaceFile * CTX_wm_space_file(const bContext *C)
Scene * CTX_data_scene(const bContext *C)
bool BKE_reports_contain(ReportList *reports, eReportType level)
void BKE_report(ReportList *reports, eReportType type, const char *message)
bool BLI_path_extension_check(const char *path, const char *ext) ATTR_NONNULL(1
bool BLI_path_extension_ensure(char *path, size_t path_maxncpy, const char *ext) ATTR_NONNULL(1
char * STRNCPY(char(&dst)[N], const char *src)
#define STRNCPY_UTF8(dst, src)
void ED_fileselect_ensure_default_filepath(bContext *C, wmOperator *op, const char *extension)
void ED_outliner_select_sync_from_object_tag(bContext *C)
void STL_import(bContext *C, const STLImportParams *import_params)
void STL_export(bContext *C, const STLExportParams *export_params)
void WM_OT_stl_import(wmOperatorType *ot)
void WM_OT_stl_export(wmOperatorType *ot)
void file_handler_add(std::unique_ptr< FileHandlerType > file_handler)
void stl_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 *)
const EnumPropertyItem io_transform_axis[]
void io_ui_forward_axis_update(Main *, Scene *, PointerRNA *ptr)
void io_ui_up_axis_update(Main *, Scene *, PointerRNA *ptr)
void RNA_string_set(PointerRNA *ptr, const char *name, const char *value)
bool RNA_struct_property_is_set_ex(PointerRNA *ptr, const char *identifier, bool use_ghost)
float RNA_float_get(PointerRNA *ptr, const char *name)
std::string RNA_string_get(PointerRNA *ptr, const char *name)
bool RNA_boolean_get(PointerRNA *ptr, const char *name)
void RNA_enum_set(PointerRNA *ptr, const char *name, int value)
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)
void RNA_def_property_update_runtime(PropertyRNA *prop, RNAPropertyUpdateFunc func)
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)
char collection[MAX_ID_NAME - 2]
bool export_selected_objects
void use_property_decorate_set(bool is_sep)
PanelLayout panel(const bContext *C, blender::StringRef idname, bool default_closed)
void use_property_split_set(bool value)
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)
struct ReportList * reports
void WM_event_add_fileselect(bContext *C, wmOperator *op)
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)