Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/object/object_add.c
| Show First 20 Lines • Show All 288 Lines • ▼ Show 20 Lines | |||||
| static void view_align_update(struct Main *UNUSED(main), | static void view_align_update(struct Main *UNUSED(main), | ||||
| struct Scene *UNUSED(scene), | struct Scene *UNUSED(scene), | ||||
| struct PointerRNA *ptr) | struct PointerRNA *ptr) | ||||
| { | { | ||||
| RNA_struct_idprops_unset(ptr, "rotation"); | RNA_struct_idprops_unset(ptr, "rotation"); | ||||
| } | } | ||||
| void ED_object_add_unit_props_size(wmOperatorType *ot) | void ED_object_add_unit_props_size(wmOperatorType *ot, float default_value) | ||||
| { | { | ||||
| RNA_def_float_distance( | RNA_def_float_distance( | ||||
| ot->srna, "size", 2.0f, 0.0, OBJECT_ADD_SIZE_MAXF, "Size", "", 0.001, 100.00); | ot->srna, "size", default_value, 0.0, OBJECT_ADD_SIZE_MAXF, "Size", "", 0.001, 100.00); | ||||
| } | } | ||||
| void ED_object_add_unit_props_radius(wmOperatorType *ot) | void ED_object_add_unit_props_radius(wmOperatorType *ot) | ||||
| { | { | ||||
| RNA_def_float_distance( | RNA_def_float_distance( | ||||
| ot->srna, "radius", 1.0f, 0.0, OBJECT_ADD_SIZE_MAXF, "Radius", "", 0.001, 100.00); | ot->srna, "radius", 1.0f, 0.0, OBJECT_ADD_SIZE_MAXF, "Radius", "", 0.001, 100.00); | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 668 Lines • ▼ Show 20 Lines | static int object_empty_add_exec(bContext *C, wmOperator *op) | ||||
| WM_operator_view3d_unit_defaults(C, op); | WM_operator_view3d_unit_defaults(C, op); | ||||
| if (!ED_object_add_generic_get_opts(C, op, 'Z', loc, rot, NULL, &local_view_bits, NULL)) { | if (!ED_object_add_generic_get_opts(C, op, 'Z', loc, rot, NULL, &local_view_bits, NULL)) { | ||||
| return OPERATOR_CANCELLED; | return OPERATOR_CANCELLED; | ||||
| } | } | ||||
| ob = ED_object_add_type(C, OB_EMPTY, NULL, loc, rot, false, local_view_bits); | ob = ED_object_add_type(C, OB_EMPTY, NULL, loc, rot, false, local_view_bits); | ||||
| BKE_object_empty_draw_type_set(ob, type); | BKE_object_empty_draw_type_set(ob, type); | ||||
| BKE_object_obdata_size_init(ob, RNA_float_get(op->ptr, "radius")); | BKE_object_obdata_size_init(ob, RNA_float_get(op->ptr, "size")); | ||||
| return OPERATOR_FINISHED; | return OPERATOR_FINISHED; | ||||
| } | } | ||||
| void OBJECT_OT_empty_add(wmOperatorType *ot) | void OBJECT_OT_empty_add(wmOperatorType *ot) | ||||
| { | { | ||||
| /* identifiers */ | /* identifiers */ | ||||
| ot->name = "Add Empty"; | ot->name = "Add Empty"; | ||||
| ot->description = "Add an empty object to the scene"; | ot->description = "Add an empty object to the scene"; | ||||
| ot->idname = "OBJECT_OT_empty_add"; | ot->idname = "OBJECT_OT_empty_add"; | ||||
| /* api callbacks */ | /* api callbacks */ | ||||
| ot->invoke = WM_menu_invoke; | ot->invoke = WM_menu_invoke; | ||||
| ot->exec = object_empty_add_exec; | ot->exec = object_empty_add_exec; | ||||
| ot->poll = ED_operator_objectmode; | ot->poll = ED_operator_objectmode; | ||||
| /* flags */ | /* flags */ | ||||
| ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; | ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; | ||||
| /* properties */ | /* properties */ | ||||
| ot->prop = RNA_def_enum(ot->srna, "type", rna_enum_object_empty_drawtype_items, 0, "Type", ""); | ot->prop = RNA_def_enum(ot->srna, "type", rna_enum_object_empty_drawtype_items, 0, "Type", ""); | ||||
| ED_object_add_unit_props_radius(ot); | ED_object_add_unit_props_size(ot, 1.0f); | ||||
| ED_object_add_generic_props(ot, false); | ED_object_add_generic_props(ot, false); | ||||
| } | } | ||||
| static int empty_drop_named_image_invoke(bContext *C, wmOperator *op, const wmEvent *event) | static int empty_drop_named_image_invoke(bContext *C, wmOperator *op, const wmEvent *event) | ||||
| { | { | ||||
| Scene *scene = CTX_data_scene(C); | Scene *scene = CTX_data_scene(C); | ||||
| Image *ima = NULL; | Image *ima = NULL; | ||||
| ▲ Show 20 Lines • Show All 1,924 Lines • Show Last 20 Lines | |||||