python templates: update operator_modal_view3d_raycast to 2.8
Reviewers: JacquesLucke, sergey Differential Revision: https://developer.blender.org/D4914
This commit is contained in:
@@ -19,19 +19,15 @@ def main(context, event):
|
|||||||
def visible_objects_and_duplis():
|
def visible_objects_and_duplis():
|
||||||
"""Loop over (object, matrix) pairs (mesh only)"""
|
"""Loop over (object, matrix) pairs (mesh only)"""
|
||||||
|
|
||||||
for obj in context.visible_objects:
|
depsgraph = bpy.context.evaluated_depsgraph_get()
|
||||||
if obj.type == 'MESH':
|
for dup in depsgraph.object_instances:
|
||||||
|
if dup.is_instance: # Real dupli instance
|
||||||
|
obj = dup.instance_object
|
||||||
|
yield (obj, dup.matrix_world.copy())
|
||||||
|
else: # Usual object
|
||||||
|
obj = dup.object
|
||||||
yield (obj, obj.matrix_world.copy())
|
yield (obj, obj.matrix_world.copy())
|
||||||
|
|
||||||
if obj.instance_type != 'NONE':
|
|
||||||
obj.dupli_list_create(scene)
|
|
||||||
for dob in obj.dupli_list:
|
|
||||||
obj_dupli = dob.object
|
|
||||||
if obj_dupli.type == 'MESH':
|
|
||||||
yield (obj_dupli, dob.matrix.copy())
|
|
||||||
|
|
||||||
obj.dupli_list_clear()
|
|
||||||
|
|
||||||
def obj_ray_cast(obj, matrix):
|
def obj_ray_cast(obj, matrix):
|
||||||
"""Wrapper for ray casting that moves the ray into object space"""
|
"""Wrapper for ray casting that moves the ray into object space"""
|
||||||
|
|
||||||
@@ -67,8 +63,11 @@ def main(context, event):
|
|||||||
# now we have the object under the mouse cursor,
|
# now we have the object under the mouse cursor,
|
||||||
# we could do lots of stuff but for the example just select.
|
# we could do lots of stuff but for the example just select.
|
||||||
if best_obj is not None:
|
if best_obj is not None:
|
||||||
best_obj.select_set(True)
|
# for selection etc. we need the original object,
|
||||||
context.view_layer.objects.active = best_obj
|
# evaluated objects are not in viewlayer
|
||||||
|
best_original = best_obj.original
|
||||||
|
best_original.select_set(True)
|
||||||
|
context.view_layer.objects.active = best_original
|
||||||
|
|
||||||
|
|
||||||
class ViewOperatorRayCast(bpy.types.Operator):
|
class ViewOperatorRayCast(bpy.types.Operator):
|
||||||
|
Reference in New Issue
Block a user