Object: add scale argument to creation operators

Needed for to create objects of a specific size.
This commit is contained in:
Campbell Barton
2020-05-28 14:30:42 +10:00
parent d35a33ef72
commit 16943c0146
5 changed files with 137 additions and 45 deletions

View File

@@ -521,7 +521,7 @@ static int curvesurf_prim_add(bContext *C, wmOperator *op, int type, int isSurf)
WM_operator_view3d_unit_defaults(C, op); WM_operator_view3d_unit_defaults(C, op);
if (!ED_object_add_generic_get_opts( if (!ED_object_add_generic_get_opts(
C, op, 'Z', loc, rot, &enter_editmode, &local_view_bits, NULL)) { C, op, 'Z', loc, rot, NULL, &enter_editmode, &local_view_bits, NULL)) {
return OPERATOR_CANCELLED; return OPERATOR_CANCELLED;
} }

View File

@@ -269,6 +269,7 @@ bool ED_object_add_generic_get_opts(struct bContext *C,
const char view_align_axis, const char view_align_axis,
float loc[3], float loc[3],
float rot[3], float rot[3],
float scale[3],
bool *enter_editmode, bool *enter_editmode,
unsigned short *local_view_bits, unsigned short *local_view_bits,
bool *is_view_aligned); bool *is_view_aligned);

View File

@@ -59,6 +59,7 @@ static Object *make_prim_init(bContext *C,
const char *idname, const char *idname,
const float loc[3], const float loc[3],
const float rot[3], const float rot[3],
const float scale[3],
ushort local_view_bits, ushort local_view_bits,
MakePrimitiveData *r_creation_data) MakePrimitiveData *r_creation_data)
{ {
@@ -76,6 +77,13 @@ static Object *make_prim_init(bContext *C,
ED_object_new_primitive_matrix(C, obedit, loc, rot, r_creation_data->mat); ED_object_new_primitive_matrix(C, obedit, loc, rot, r_creation_data->mat);
if (scale && !equals_v3v3(scale, (const float[3]){1.0f, 1.0f, 1.0f})) {
float scale_half[3];
copy_v3_v3(scale_half, scale);
mul_v3_fl(scale_half, 0.5f);
rescale_m4(r_creation_data->mat, scale_half);
}
return obedit; return obedit;
} }
@@ -112,9 +120,16 @@ static int add_primitive_plane_exec(bContext *C, wmOperator *op)
const bool calc_uvs = RNA_boolean_get(op->ptr, "calc_uvs"); const bool calc_uvs = RNA_boolean_get(op->ptr, "calc_uvs");
WM_operator_view3d_unit_defaults(C, op); WM_operator_view3d_unit_defaults(C, op);
ED_object_add_generic_get_opts(C, op, 'Z', loc, rot, &enter_editmode, &local_view_bits, NULL); ED_object_add_generic_get_opts(
obedit = make_prim_init( C, op, 'Z', loc, rot, NULL, &enter_editmode, &local_view_bits, NULL);
C, CTX_DATA_(BLT_I18NCONTEXT_ID_MESH, "Plane"), loc, rot, local_view_bits, &creation_data); obedit = make_prim_init(C,
CTX_DATA_(BLT_I18NCONTEXT_ID_MESH, "Plane"),
loc,
rot,
NULL,
local_view_bits,
&creation_data);
em = BKE_editmesh_from_object(obedit); em = BKE_editmesh_from_object(obedit);
if (calc_uvs) { if (calc_uvs) {
@@ -164,15 +179,22 @@ static int add_primitive_cube_exec(bContext *C, wmOperator *op)
MakePrimitiveData creation_data; MakePrimitiveData creation_data;
Object *obedit; Object *obedit;
BMEditMesh *em; BMEditMesh *em;
float loc[3], rot[3]; float loc[3], rot[3], scale[3];
bool enter_editmode; bool enter_editmode;
ushort local_view_bits; ushort local_view_bits;
const bool calc_uvs = RNA_boolean_get(op->ptr, "calc_uvs"); const bool calc_uvs = RNA_boolean_get(op->ptr, "calc_uvs");
WM_operator_view3d_unit_defaults(C, op); WM_operator_view3d_unit_defaults(C, op);
ED_object_add_generic_get_opts(C, op, 'Z', loc, rot, &enter_editmode, &local_view_bits, NULL); ED_object_add_generic_get_opts(
obedit = make_prim_init( C, op, 'Z', loc, rot, scale, &enter_editmode, &local_view_bits, NULL);
C, CTX_DATA_(BLT_I18NCONTEXT_ID_MESH, "Cube"), loc, rot, local_view_bits, &creation_data); obedit = make_prim_init(C,
CTX_DATA_(BLT_I18NCONTEXT_ID_MESH, "Cube"),
loc,
rot,
scale,
local_view_bits,
&creation_data);
em = BKE_editmesh_from_object(obedit); em = BKE_editmesh_from_object(obedit);
if (calc_uvs) { if (calc_uvs) {
@@ -237,9 +259,16 @@ static int add_primitive_circle_exec(bContext *C, wmOperator *op)
cap_tri = (cap_end == 2); cap_tri = (cap_end == 2);
WM_operator_view3d_unit_defaults(C, op); WM_operator_view3d_unit_defaults(C, op);
ED_object_add_generic_get_opts(C, op, 'Z', loc, rot, &enter_editmode, &local_view_bits, NULL); ED_object_add_generic_get_opts(
obedit = make_prim_init( C, op, 'Z', loc, rot, NULL, &enter_editmode, &local_view_bits, NULL);
C, CTX_DATA_(BLT_I18NCONTEXT_ID_MESH, "Circle"), loc, rot, local_view_bits, &creation_data); obedit = make_prim_init(C,
CTX_DATA_(BLT_I18NCONTEXT_ID_MESH, "Circle"),
loc,
rot,
NULL,
local_view_bits,
&creation_data);
em = BKE_editmesh_from_object(obedit); em = BKE_editmesh_from_object(obedit);
if (calc_uvs) { if (calc_uvs) {
@@ -294,7 +323,7 @@ static int add_primitive_cylinder_exec(bContext *C, wmOperator *op)
MakePrimitiveData creation_data; MakePrimitiveData creation_data;
Object *obedit; Object *obedit;
BMEditMesh *em; BMEditMesh *em;
float loc[3], rot[3]; float loc[3], rot[3], scale[3];
bool enter_editmode; bool enter_editmode;
ushort local_view_bits; ushort local_view_bits;
const int end_fill_type = RNA_enum_get(op->ptr, "end_fill_type"); const int end_fill_type = RNA_enum_get(op->ptr, "end_fill_type");
@@ -303,11 +332,13 @@ static int add_primitive_cylinder_exec(bContext *C, wmOperator *op)
const bool calc_uvs = RNA_boolean_get(op->ptr, "calc_uvs"); const bool calc_uvs = RNA_boolean_get(op->ptr, "calc_uvs");
WM_operator_view3d_unit_defaults(C, op); WM_operator_view3d_unit_defaults(C, op);
ED_object_add_generic_get_opts(C, op, 'Z', loc, rot, &enter_editmode, &local_view_bits, NULL); ED_object_add_generic_get_opts(
C, op, 'Z', loc, rot, scale, &enter_editmode, &local_view_bits, NULL);
obedit = make_prim_init(C, obedit = make_prim_init(C,
CTX_DATA_(BLT_I18NCONTEXT_ID_MESH, "Cylinder"), CTX_DATA_(BLT_I18NCONTEXT_ID_MESH, "Cylinder"),
loc, loc,
rot, rot,
scale,
local_view_bits, local_view_bits,
&creation_data); &creation_data);
em = BKE_editmesh_from_object(obedit); em = BKE_editmesh_from_object(obedit);
@@ -368,7 +399,7 @@ static int add_primitive_cone_exec(bContext *C, wmOperator *op)
MakePrimitiveData creation_data; MakePrimitiveData creation_data;
Object *obedit; Object *obedit;
BMEditMesh *em; BMEditMesh *em;
float loc[3], rot[3]; float loc[3], rot[3], scale[3];
bool enter_editmode; bool enter_editmode;
ushort local_view_bits; ushort local_view_bits;
const int end_fill_type = RNA_enum_get(op->ptr, "end_fill_type"); const int end_fill_type = RNA_enum_get(op->ptr, "end_fill_type");
@@ -377,9 +408,15 @@ static int add_primitive_cone_exec(bContext *C, wmOperator *op)
const bool calc_uvs = RNA_boolean_get(op->ptr, "calc_uvs"); const bool calc_uvs = RNA_boolean_get(op->ptr, "calc_uvs");
WM_operator_view3d_unit_defaults(C, op); WM_operator_view3d_unit_defaults(C, op);
ED_object_add_generic_get_opts(C, op, 'Z', loc, rot, &enter_editmode, &local_view_bits, NULL); ED_object_add_generic_get_opts(
obedit = make_prim_init( C, op, 'Z', loc, rot, scale, &enter_editmode, &local_view_bits, NULL);
C, CTX_DATA_(BLT_I18NCONTEXT_ID_MESH, "Cone"), loc, rot, local_view_bits, &creation_data); obedit = make_prim_init(C,
CTX_DATA_(BLT_I18NCONTEXT_ID_MESH, "Cone"),
loc,
rot,
scale,
local_view_bits,
&creation_data);
em = BKE_editmesh_from_object(obedit); em = BKE_editmesh_from_object(obedit);
if (calc_uvs) { if (calc_uvs) {
@@ -447,9 +484,15 @@ static int add_primitive_grid_exec(bContext *C, wmOperator *op)
const bool calc_uvs = RNA_boolean_get(op->ptr, "calc_uvs"); const bool calc_uvs = RNA_boolean_get(op->ptr, "calc_uvs");
WM_operator_view3d_unit_defaults(C, op); WM_operator_view3d_unit_defaults(C, op);
ED_object_add_generic_get_opts(C, op, 'Z', loc, rot, &enter_editmode, &local_view_bits, NULL); ED_object_add_generic_get_opts(
obedit = make_prim_init( C, op, 'Z', loc, rot, NULL, &enter_editmode, &local_view_bits, NULL);
C, CTX_DATA_(BLT_I18NCONTEXT_ID_MESH, "Grid"), loc, rot, local_view_bits, &creation_data); obedit = make_prim_init(C,
CTX_DATA_(BLT_I18NCONTEXT_ID_MESH, "Grid"),
loc,
rot,
NULL,
local_view_bits,
&creation_data);
em = BKE_editmesh_from_object(obedit); em = BKE_editmesh_from_object(obedit);
if (calc_uvs) { if (calc_uvs) {
@@ -514,10 +557,16 @@ static int add_primitive_monkey_exec(bContext *C, wmOperator *op)
const bool calc_uvs = RNA_boolean_get(op->ptr, "calc_uvs"); const bool calc_uvs = RNA_boolean_get(op->ptr, "calc_uvs");
WM_operator_view3d_unit_defaults(C, op); WM_operator_view3d_unit_defaults(C, op);
ED_object_add_generic_get_opts(C, op, 'Y', loc, rot, &enter_editmode, &local_view_bits, NULL); ED_object_add_generic_get_opts(
C, op, 'Y', loc, rot, NULL, &enter_editmode, &local_view_bits, NULL);
obedit = make_prim_init( obedit = make_prim_init(C,
C, CTX_DATA_(BLT_I18NCONTEXT_ID_MESH, "Suzanne"), loc, rot, local_view_bits, &creation_data); CTX_DATA_(BLT_I18NCONTEXT_ID_MESH, "Suzanne"),
loc,
rot,
NULL,
local_view_bits,
&creation_data);
dia = RNA_float_get(op->ptr, "size") / 2.0f; dia = RNA_float_get(op->ptr, "size") / 2.0f;
mul_mat3_m4_fl(creation_data.mat, dia); mul_mat3_m4_fl(creation_data.mat, dia);
@@ -567,15 +616,21 @@ static int add_primitive_uvsphere_exec(bContext *C, wmOperator *op)
MakePrimitiveData creation_data; MakePrimitiveData creation_data;
Object *obedit; Object *obedit;
BMEditMesh *em; BMEditMesh *em;
float loc[3], rot[3]; float loc[3], rot[3], scale[3];
bool enter_editmode; bool enter_editmode;
ushort local_view_bits; ushort local_view_bits;
const bool calc_uvs = RNA_boolean_get(op->ptr, "calc_uvs"); const bool calc_uvs = RNA_boolean_get(op->ptr, "calc_uvs");
WM_operator_view3d_unit_defaults(C, op); WM_operator_view3d_unit_defaults(C, op);
ED_object_add_generic_get_opts(C, op, 'Z', loc, rot, &enter_editmode, &local_view_bits, NULL); ED_object_add_generic_get_opts(
obedit = make_prim_init( C, op, 'Z', loc, rot, scale, &enter_editmode, &local_view_bits, NULL);
C, CTX_DATA_(BLT_I18NCONTEXT_ID_MESH, "Sphere"), loc, rot, local_view_bits, &creation_data); obedit = make_prim_init(C,
CTX_DATA_(BLT_I18NCONTEXT_ID_MESH, "Sphere"),
loc,
rot,
scale,
local_view_bits,
&creation_data);
em = BKE_editmesh_from_object(obedit); em = BKE_editmesh_from_object(obedit);
if (calc_uvs) { if (calc_uvs) {
@@ -629,17 +684,19 @@ static int add_primitive_icosphere_exec(bContext *C, wmOperator *op)
MakePrimitiveData creation_data; MakePrimitiveData creation_data;
Object *obedit; Object *obedit;
BMEditMesh *em; BMEditMesh *em;
float loc[3], rot[3]; float loc[3], rot[3], scale[3];
bool enter_editmode; bool enter_editmode;
ushort local_view_bits; ushort local_view_bits;
const bool calc_uvs = RNA_boolean_get(op->ptr, "calc_uvs"); const bool calc_uvs = RNA_boolean_get(op->ptr, "calc_uvs");
WM_operator_view3d_unit_defaults(C, op); WM_operator_view3d_unit_defaults(C, op);
ED_object_add_generic_get_opts(C, op, 'Z', loc, rot, &enter_editmode, &local_view_bits, NULL); ED_object_add_generic_get_opts(
C, op, 'Z', loc, rot, scale, &enter_editmode, &local_view_bits, NULL);
obedit = make_prim_init(C, obedit = make_prim_init(C,
CTX_DATA_(BLT_I18NCONTEXT_ID_MESH, "Icosphere"), CTX_DATA_(BLT_I18NCONTEXT_ID_MESH, "Icosphere"),
loc, loc,
rot, rot,
scale,
local_view_bits, local_view_bits,
&creation_data); &creation_data);
em = BKE_editmesh_from_object(obedit); em = BKE_editmesh_from_object(obedit);

View File

@@ -350,6 +350,18 @@ void ED_object_add_generic_props(wmOperatorType *ot, bool do_editmode)
DEG2RADF(-360.0f), DEG2RADF(-360.0f),
DEG2RADF(360.0f)); DEG2RADF(360.0f));
RNA_def_property_flag(prop, PROP_SKIP_SAVE); RNA_def_property_flag(prop, PROP_SKIP_SAVE);
prop = RNA_def_float_vector_xyz(ot->srna,
"scale",
3,
NULL,
-OBJECT_ADD_SIZE_MAXF,
OBJECT_ADD_SIZE_MAXF,
"Scale",
"Scale for the newly added object",
-1000.0f,
1000.0f);
RNA_def_property_flag(prop, PROP_HIDDEN | PROP_SKIP_SAVE);
} }
void ED_object_add_mesh_props(wmOperatorType *ot) void ED_object_add_mesh_props(wmOperatorType *ot)
@@ -362,6 +374,7 @@ bool ED_object_add_generic_get_opts(bContext *C,
const char view_align_axis, const char view_align_axis,
float loc[3], float loc[3],
float rot[3], float rot[3],
float scale[3],
bool *enter_editmode, bool *enter_editmode,
ushort *local_view_bits, ushort *local_view_bits,
bool *is_view_aligned) bool *is_view_aligned)
@@ -470,6 +483,26 @@ bool ED_object_add_generic_get_opts(bContext *C,
} }
} }
/* Scale! */
{
float _scale[3];
if (!scale) {
scale = _scale;
}
/* For now this is optional, we can make it always use. */
copy_v3_fl(scale, 1.0f);
if ((prop = RNA_struct_find_property(op->ptr, "scale"))) {
if (RNA_property_is_set(op->ptr, prop)) {
RNA_property_float_get_array(op->ptr, prop, scale);
}
else {
copy_v3_fl(scale, 1.0f);
RNA_property_float_set_array(op->ptr, prop, scale);
}
}
}
return true; return true;
} }
@@ -535,7 +568,7 @@ static int object_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( if (!ED_object_add_generic_get_opts(
C, op, 'Z', loc, rot, &enter_editmode, &local_view_bits, NULL)) { C, op, 'Z', loc, rot, NULL, &enter_editmode, &local_view_bits, NULL)) {
return OPERATOR_CANCELLED; return OPERATOR_CANCELLED;
} }
radius = RNA_float_get(op->ptr, "radius"); radius = RNA_float_get(op->ptr, "radius");
@@ -609,7 +642,7 @@ static int lightprobe_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( if (!ED_object_add_generic_get_opts(
C, op, 'Z', loc, rot, &enter_editmode, &local_view_bits, NULL)) { C, op, 'Z', loc, rot, NULL, &enter_editmode, &local_view_bits, NULL)) {
return OPERATOR_CANCELLED; return OPERATOR_CANCELLED;
} }
type = RNA_enum_get(op->ptr, "type"); type = RNA_enum_get(op->ptr, "type");
@@ -668,7 +701,7 @@ static int effector_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( if (!ED_object_add_generic_get_opts(
C, op, 'Z', loc, rot, &enter_editmode, &local_view_bits, NULL)) { C, op, 'Z', loc, rot, NULL, &enter_editmode, &local_view_bits, NULL)) {
return OPERATOR_CANCELLED; return OPERATOR_CANCELLED;
} }
type = RNA_enum_get(op->ptr, "type"); type = RNA_enum_get(op->ptr, "type");
@@ -746,7 +779,7 @@ static int object_camera_add_exec(bContext *C, wmOperator *op)
RNA_enum_set(op->ptr, "align", ALIGN_VIEW); RNA_enum_set(op->ptr, "align", ALIGN_VIEW);
if (!ED_object_add_generic_get_opts( if (!ED_object_add_generic_get_opts(
C, op, 'Z', loc, rot, &enter_editmode, &local_view_bits, NULL)) { C, op, 'Z', loc, rot, NULL, &enter_editmode, &local_view_bits, NULL)) {
return OPERATOR_CANCELLED; return OPERATOR_CANCELLED;
} }
ob = ED_object_add_type(C, OB_CAMERA, NULL, loc, rot, false, local_view_bits); ob = ED_object_add_type(C, OB_CAMERA, NULL, loc, rot, false, local_view_bits);
@@ -807,7 +840,7 @@ static int object_metaball_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( if (!ED_object_add_generic_get_opts(
C, op, 'Z', loc, rot, &enter_editmode, &local_view_bits, NULL)) { C, op, 'Z', loc, rot, NULL, &enter_editmode, &local_view_bits, NULL)) {
return OPERATOR_CANCELLED; return OPERATOR_CANCELLED;
} }
if (obedit == NULL || obedit->type != OB_MBALL) { if (obedit == NULL || obedit->type != OB_MBALL) {
@@ -872,7 +905,7 @@ static int object_add_text_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( if (!ED_object_add_generic_get_opts(
C, op, 'Z', loc, rot, &enter_editmode, &local_view_bits, NULL)) { C, op, 'Z', loc, rot, NULL, &enter_editmode, &local_view_bits, NULL)) {
return OPERATOR_CANCELLED; return OPERATOR_CANCELLED;
} }
if (obedit && obedit->type == OB_FONT) { if (obedit && obedit->type == OB_FONT) {
@@ -924,7 +957,7 @@ static int object_armature_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( if (!ED_object_add_generic_get_opts(
C, op, 'Z', loc, rot, &enter_editmode, &local_view_bits, NULL)) { C, op, 'Z', loc, rot, NULL, &enter_editmode, &local_view_bits, NULL)) {
return OPERATOR_CANCELLED; return OPERATOR_CANCELLED;
} }
if ((obedit == NULL) || (obedit->type != OB_ARMATURE)) { if ((obedit == NULL) || (obedit->type != OB_ARMATURE)) {
@@ -987,7 +1020,7 @@ static int object_empty_add_exec(bContext *C, wmOperator *op)
float loc[3], rot[3]; float loc[3], rot[3];
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, 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);
@@ -1047,7 +1080,8 @@ static int empty_drop_named_image_invoke(bContext *C, wmOperator *op, const wmEv
ushort local_view_bits; ushort local_view_bits;
float rot[3]; float rot[3];
if (!ED_object_add_generic_get_opts(C, op, 'Z', NULL, rot, NULL, &local_view_bits, NULL)) { if (!ED_object_add_generic_get_opts(
C, op, 'Z', NULL, rot, NULL, NULL, &local_view_bits, NULL)) {
return OPERATOR_CANCELLED; return OPERATOR_CANCELLED;
} }
ob = ED_object_add_type(C, OB_EMPTY, NULL, NULL, rot, false, local_view_bits); ob = ED_object_add_type(C, OB_EMPTY, NULL, NULL, rot, false, local_view_bits);
@@ -1134,7 +1168,7 @@ static int object_gpencil_add_exec(bContext *C, wmOperator *op)
/* Note: We use 'Y' here (not 'Z'), as */ /* Note: We use 'Y' here (not 'Z'), as */
WM_operator_view3d_unit_defaults(C, op); WM_operator_view3d_unit_defaults(C, op);
if (!ED_object_add_generic_get_opts(C, op, 'Y', loc, rot, NULL, &local_view_bits, NULL)) { if (!ED_object_add_generic_get_opts(C, op, 'Y', loc, rot, NULL, NULL, &local_view_bits, NULL)) {
return OPERATOR_CANCELLED; return OPERATOR_CANCELLED;
} }
/* add new object if not currently editing a GP object, /* add new object if not currently editing a GP object,
@@ -1264,7 +1298,7 @@ static int object_light_add_exec(bContext *C, wmOperator *op)
float loc[3], rot[3]; float loc[3], rot[3];
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, NULL, &local_view_bits, NULL)) {
return OPERATOR_CANCELLED; return OPERATOR_CANCELLED;
} }
ob = ED_object_add_type(C, OB_LAMP, get_light_defname(type), loc, rot, false, local_view_bits); ob = ED_object_add_type(C, OB_LAMP, get_light_defname(type), loc, rot, false, local_view_bits);
@@ -1349,7 +1383,7 @@ static int collection_instance_add_exec(bContext *C, wmOperator *op)
collection = BLI_findlink(&bmain->collections, RNA_enum_get(op->ptr, "collection")); collection = BLI_findlink(&bmain->collections, RNA_enum_get(op->ptr, "collection"));
} }
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, NULL, &local_view_bits, NULL)) {
return OPERATOR_CANCELLED; return OPERATOR_CANCELLED;
} }
if (collection) { if (collection) {
@@ -1422,7 +1456,7 @@ static int object_speaker_add_exec(bContext *C, wmOperator *op)
float loc[3], rot[3]; float loc[3], rot[3];
Scene *scene = CTX_data_scene(C); Scene *scene = CTX_data_scene(C);
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, NULL, &local_view_bits, NULL)) {
return OPERATOR_CANCELLED; return OPERATOR_CANCELLED;
} }
ob = ED_object_add_type(C, OB_SPEAKER, NULL, loc, rot, false, local_view_bits); ob = ED_object_add_type(C, OB_SPEAKER, NULL, loc, rot, false, local_view_bits);
@@ -1479,7 +1513,7 @@ static int object_hair_add_exec(bContext *C, wmOperator *op)
ushort local_view_bits; ushort local_view_bits;
float loc[3], rot[3]; float loc[3], rot[3];
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, NULL, &local_view_bits, NULL)) {
return OPERATOR_CANCELLED; return OPERATOR_CANCELLED;
} }
Object *object = ED_object_add_type(C, OB_HAIR, NULL, loc, rot, false, local_view_bits); Object *object = ED_object_add_type(C, OB_HAIR, NULL, loc, rot, false, local_view_bits);
@@ -1516,7 +1550,7 @@ static int object_pointcloud_add_exec(bContext *C, wmOperator *op)
ushort local_view_bits; ushort local_view_bits;
float loc[3], rot[3]; float loc[3], rot[3];
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, NULL, &local_view_bits, NULL)) {
return OPERATOR_CANCELLED; return OPERATOR_CANCELLED;
} }
Object *object = ED_object_add_type(C, OB_POINTCLOUD, NULL, loc, rot, false, local_view_bits); Object *object = ED_object_add_type(C, OB_POINTCLOUD, NULL, loc, rot, false, local_view_bits);

View File

@@ -59,7 +59,7 @@ static Object *object_volume_add(bContext *C, wmOperator *op, const char *name)
ushort local_view_bits; ushort local_view_bits;
float loc[3], rot[3]; float loc[3], rot[3];
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, NULL, &local_view_bits, NULL)) {
return false; return false;
} }
return ED_object_add_type(C, OB_VOLUME, name, loc, rot, false, local_view_bits); return ED_object_add_type(C, OB_VOLUME, name, loc, rot, false, local_view_bits);