diff options
Diffstat (limited to 'source/blender/blenkernel/intern/object.c')
-rw-r--r-- | source/blender/blenkernel/intern/object.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index 8c85a0413b8..2e257a329ea 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -486,7 +486,7 @@ void BKE_object_free(Object *ob) } /* actual check for internal data, not context or flags */ -bool BKE_object_is_in_editmode(Object *ob) +bool BKE_object_is_in_editmode(const Object *ob) { if (ob->data == NULL) return false; @@ -535,11 +535,11 @@ bool BKE_object_is_in_editmode_vgroup(Object *ob) BKE_object_is_in_editmode(ob)); } -bool BKE_object_is_in_wpaint_select_vert(Object *ob) +bool BKE_object_is_in_wpaint_select_vert(const EvaluationContext *eval_ctx, const Object *ob) { if (ob->type == OB_MESH) { - Mesh *me = ob->data; - return ((ob->mode & OB_MODE_WEIGHT_PAINT) && + const Mesh *me = ob->data; + return ((eval_ctx->object_mode & OB_MODE_WEIGHT_PAINT) && (me->edit_btmesh == NULL) && (ME_EDIT_PAINT_SEL_MODE(me) == SCE_SELECT_VERTEX)); } @@ -884,10 +884,10 @@ static LodLevel *lod_level_select(Object *ob, const float camera_position[3]) return current; } -bool BKE_object_lod_is_usable(Object *ob, ViewLayer *view_layer) +bool BKE_object_lod_is_usable(Object *ob, ViewLayer *view_layer, const short object_mode) { bool active = (view_layer) ? ob == OBACT(view_layer) : false; - return (ob->mode == OB_MODE_OBJECT || !active); + return (object_mode == OB_MODE_OBJECT || !active); } void BKE_object_lod_update(Object *ob, const float camera_position[3]) @@ -900,11 +900,11 @@ void BKE_object_lod_update(Object *ob, const float camera_position[3]) } } -static Object *lod_ob_get(Object *ob, ViewLayer *view_layer, int flag) +static Object *lod_ob_get(Object *ob, ViewLayer *view_layer, int flag, const short object_mode) { LodLevel *current = ob->currentlod; - if (!current || !BKE_object_lod_is_usable(ob, view_layer)) + if (!current || !BKE_object_lod_is_usable(ob, view_layer, object_mode)) return ob; while (current->prev && (!(current->flags & flag) || !current->source || current->source->type != OB_MESH)) { @@ -914,14 +914,14 @@ static Object *lod_ob_get(Object *ob, ViewLayer *view_layer, int flag) return current->source; } -struct Object *BKE_object_lod_meshob_get(Object *ob, ViewLayer *view_layer) +struct Object *BKE_object_lod_meshob_get(Object *ob, ViewLayer *view_layer, const short object_mode) { - return lod_ob_get(ob, view_layer, OB_LOD_USE_MESH); + return lod_ob_get(ob, view_layer, OB_LOD_USE_MESH, object_mode); } -struct Object *BKE_object_lod_matob_get(Object *ob, ViewLayer *view_layer) +struct Object *BKE_object_lod_matob_get(Object *ob, ViewLayer *view_layer, const short object_mode) { - return lod_ob_get(ob, view_layer, OB_LOD_USE_MAT); + return lod_ob_get(ob, view_layer, OB_LOD_USE_MAT, object_mode); } #endif /* WITH_GAMEENGINE */ |