Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2018-12-07 04:59:04 +0300
committerCampbell Barton <ideasman42@gmail.com>2018-12-07 05:01:26 +0300
commit341d5b08b0f6743ddd03bc9868a96d311b509900 (patch)
tree2f6479e76330932ad8ab96bb6c9afe5bceca4593 /source/blender/editors/mesh
parenta48bd6cc74298cbd5ed66c8ab8de33f3713950c8 (diff)
Fix adding objects in local view
Diffstat (limited to 'source/blender/editors/mesh')
-rw-r--r--source/blender/editors/mesh/editmesh_add.c67
1 files changed, 47 insertions, 20 deletions
diff --git a/source/blender/editors/mesh/editmesh_add.c b/source/blender/editors/mesh/editmesh_add.c
index dd16cb9e4ec..bcde2411899 100644
--- a/source/blender/editors/mesh/editmesh_add.c
+++ b/source/blender/editors/mesh/editmesh_add.c
@@ -66,14 +66,14 @@ typedef struct MakePrimitiveData {
static Object *make_prim_init(
bContext *C, const char *idname,
- const float loc[3], const float rot[3],
+ const float loc[3], const float rot[3], ushort local_view_bits,
MakePrimitiveData *r_creation_data)
{
Object *obedit = CTX_data_edit_object(C);
r_creation_data->was_editmode = false;
if (obedit == NULL || obedit->type != OB_MESH) {
- obedit = ED_object_add_type(C, OB_MESH, idname, loc, rot, false);
+ obedit = ED_object_add_type(C, OB_MESH, idname, loc, rot, false, local_view_bits);
/* create editmode */
ED_object_editmode_enter(C, EM_IGNORE_LAYER); /* rare cases the active layer is messed up */
@@ -111,11 +111,14 @@ static int add_primitive_plane_exec(bContext *C, wmOperator *op)
BMEditMesh *em;
float loc[3], rot[3];
bool enter_editmode;
+ ushort local_view_bits;
const bool calc_uvs = RNA_boolean_get(op->ptr, "calc_uvs");
WM_operator_view3d_unit_defaults(C, op);
- ED_object_add_generic_get_opts(C, op, 'Z', loc, rot, &enter_editmode, NULL);
- obedit = make_prim_init(C, CTX_DATA_(BLT_I18NCONTEXT_ID_MESH, "Plane"), loc, rot, &creation_data);
+ ED_object_add_generic_get_opts(C, op, 'Z', loc, rot, &enter_editmode, &local_view_bits, NULL);
+ obedit = make_prim_init(
+ C, CTX_DATA_(BLT_I18NCONTEXT_ID_MESH, "Plane"),
+ loc, rot, local_view_bits, &creation_data);
em = BKE_editmesh_from_object(obedit);
if (calc_uvs) {
@@ -161,11 +164,14 @@ static int add_primitive_cube_exec(bContext *C, wmOperator *op)
BMEditMesh *em;
float loc[3], rot[3];
bool enter_editmode;
+ ushort local_view_bits;
const bool calc_uvs = RNA_boolean_get(op->ptr, "calc_uvs");
WM_operator_view3d_unit_defaults(C, op);
- ED_object_add_generic_get_opts(C, op, 'Z', loc, rot, &enter_editmode, NULL);
- obedit = make_prim_init(C, CTX_DATA_(BLT_I18NCONTEXT_ID_MESH, "Cube"), loc, rot, &creation_data);
+ ED_object_add_generic_get_opts(C, op, 'Z', loc, rot, &enter_editmode, &local_view_bits, NULL);
+ obedit = make_prim_init(
+ C, CTX_DATA_(BLT_I18NCONTEXT_ID_MESH, "Cube"),
+ loc, rot, local_view_bits, &creation_data);
em = BKE_editmesh_from_object(obedit);
if (calc_uvs) {
@@ -218,6 +224,7 @@ static int add_primitive_circle_exec(bContext *C, wmOperator *op)
BMEditMesh *em;
float loc[3], rot[3];
bool enter_editmode;
+ ushort local_view_bits;
int cap_end, cap_tri;
const bool calc_uvs = RNA_boolean_get(op->ptr, "calc_uvs");
@@ -225,8 +232,10 @@ static int add_primitive_circle_exec(bContext *C, wmOperator *op)
cap_tri = (cap_end == 2);
WM_operator_view3d_unit_defaults(C, op);
- ED_object_add_generic_get_opts(C, op, 'Z', loc, rot, &enter_editmode, NULL);
- obedit = make_prim_init(C, CTX_DATA_(BLT_I18NCONTEXT_ID_MESH, "Circle"), loc, rot, &creation_data);
+ ED_object_add_generic_get_opts(C, op, 'Z', loc, rot, &enter_editmode, &local_view_bits, NULL);
+ obedit = make_prim_init(
+ C, CTX_DATA_(BLT_I18NCONTEXT_ID_MESH, "Circle"),
+ loc, rot, local_view_bits, &creation_data);
em = BKE_editmesh_from_object(obedit);
if (calc_uvs) {
@@ -277,14 +286,17 @@ static int add_primitive_cylinder_exec(bContext *C, wmOperator *op)
BMEditMesh *em;
float loc[3], rot[3];
bool enter_editmode;
+ ushort local_view_bits;
const int end_fill_type = RNA_enum_get(op->ptr, "end_fill_type");
const bool cap_end = (end_fill_type != 0);
const bool cap_tri = (end_fill_type == 2);
const bool calc_uvs = RNA_boolean_get(op->ptr, "calc_uvs");
WM_operator_view3d_unit_defaults(C, op);
- ED_object_add_generic_get_opts(C, op, 'Z', loc, rot, &enter_editmode, NULL);
- obedit = make_prim_init(C, CTX_DATA_(BLT_I18NCONTEXT_ID_MESH, "Cylinder"), loc, rot, &creation_data);
+ ED_object_add_generic_get_opts(C, op, 'Z', loc, rot, &enter_editmode, &local_view_bits, NULL);
+ obedit = make_prim_init(
+ C, CTX_DATA_(BLT_I18NCONTEXT_ID_MESH, "Cylinder"),
+ loc, rot, local_view_bits, &creation_data);
em = BKE_editmesh_from_object(obedit);
if (calc_uvs) {
@@ -339,14 +351,17 @@ static int add_primitive_cone_exec(bContext *C, wmOperator *op)
BMEditMesh *em;
float loc[3], rot[3];
bool enter_editmode;
+ ushort local_view_bits;
const int end_fill_type = RNA_enum_get(op->ptr, "end_fill_type");
const bool cap_end = (end_fill_type != 0);
const bool cap_tri = (end_fill_type == 2);
const bool calc_uvs = RNA_boolean_get(op->ptr, "calc_uvs");
WM_operator_view3d_unit_defaults(C, op);
- ED_object_add_generic_get_opts(C, op, 'Z', loc, rot, &enter_editmode, NULL);
- obedit = make_prim_init(C, CTX_DATA_(BLT_I18NCONTEXT_ID_MESH, "Cone"), loc, rot, &creation_data);
+ ED_object_add_generic_get_opts(C, op, 'Z', loc, rot, &enter_editmode, &local_view_bits, NULL);
+ obedit = make_prim_init(
+ C, CTX_DATA_(BLT_I18NCONTEXT_ID_MESH, "Cone"),
+ loc, rot, local_view_bits, &creation_data);
em = BKE_editmesh_from_object(obedit);
if (calc_uvs) {
@@ -400,11 +415,14 @@ static int add_primitive_grid_exec(bContext *C, wmOperator *op)
BMEditMesh *em;
float loc[3], rot[3];
bool enter_editmode;
+ ushort local_view_bits;
const bool calc_uvs = RNA_boolean_get(op->ptr, "calc_uvs");
WM_operator_view3d_unit_defaults(C, op);
- ED_object_add_generic_get_opts(C, op, 'Z', loc, rot, &enter_editmode, NULL);
- obedit = make_prim_init(C, CTX_DATA_(BLT_I18NCONTEXT_ID_MESH, "Grid"), loc, rot, &creation_data);
+ ED_object_add_generic_get_opts(C, op, 'Z', loc, rot, &enter_editmode, &local_view_bits, NULL);
+ obedit = make_prim_init(
+ C, CTX_DATA_(BLT_I18NCONTEXT_ID_MESH, "Grid"),
+ loc, rot, local_view_bits, &creation_data);
em = BKE_editmesh_from_object(obedit);
if (calc_uvs) {
@@ -459,12 +477,15 @@ static int add_primitive_monkey_exec(bContext *C, wmOperator *op)
float loc[3], rot[3];
float dia;
bool enter_editmode;
+ ushort local_view_bits;
const bool calc_uvs = RNA_boolean_get(op->ptr, "calc_uvs");
WM_operator_view3d_unit_defaults(C, op);
- ED_object_add_generic_get_opts(C, op, 'Y', loc, rot, &enter_editmode, NULL);
+ ED_object_add_generic_get_opts(C, op, 'Y', loc, rot, &enter_editmode, &local_view_bits, NULL);
- obedit = make_prim_init(C, CTX_DATA_(BLT_I18NCONTEXT_ID_MESH, "Suzanne"), loc, rot, &creation_data);
+ obedit = make_prim_init(
+ C, CTX_DATA_(BLT_I18NCONTEXT_ID_MESH, "Suzanne"),
+ loc, rot, local_view_bits, &creation_data);
dia = RNA_float_get(op->ptr, "size") / 2.0f;
mul_mat3_m4_fl(creation_data.mat, dia);
@@ -513,11 +534,14 @@ static int add_primitive_uvsphere_exec(bContext *C, wmOperator *op)
BMEditMesh *em;
float loc[3], rot[3];
bool enter_editmode;
+ ushort local_view_bits;
const bool calc_uvs = RNA_boolean_get(op->ptr, "calc_uvs");
WM_operator_view3d_unit_defaults(C, op);
- ED_object_add_generic_get_opts(C, op, 'Z', loc, rot, &enter_editmode, NULL);
- obedit = make_prim_init(C, CTX_DATA_(BLT_I18NCONTEXT_ID_MESH, "Sphere"), loc, rot, &creation_data);
+ ED_object_add_generic_get_opts(C, op, 'Z', loc, rot, &enter_editmode, &local_view_bits, NULL);
+ obedit = make_prim_init(
+ C, CTX_DATA_(BLT_I18NCONTEXT_ID_MESH, "Sphere"),
+ loc, rot, local_view_bits, &creation_data);
em = BKE_editmesh_from_object(obedit);
if (calc_uvs) {
@@ -568,11 +592,14 @@ static int add_primitive_icosphere_exec(bContext *C, wmOperator *op)
BMEditMesh *em;
float loc[3], rot[3];
bool enter_editmode;
+ ushort local_view_bits;
const bool calc_uvs = RNA_boolean_get(op->ptr, "calc_uvs");
WM_operator_view3d_unit_defaults(C, op);
- ED_object_add_generic_get_opts(C, op, 'Z', loc, rot, &enter_editmode, NULL);
- obedit = make_prim_init(C, CTX_DATA_(BLT_I18NCONTEXT_ID_MESH, "Icosphere"), loc, rot, &creation_data);
+ ED_object_add_generic_get_opts(C, op, 'Z', loc, rot, &enter_editmode, &local_view_bits, NULL);
+ obedit = make_prim_init(
+ C, CTX_DATA_(BLT_I18NCONTEXT_ID_MESH, "Icosphere"),
+ loc, rot, local_view_bits, &creation_data);
em = BKE_editmesh_from_object(obedit);
if (calc_uvs) {