feat: show flag for user on an other scene
feat: disable user drawing on other scene Related to #40
This commit is contained in:
@ -98,6 +98,12 @@ class SessionProps(bpy.types.PropertyGroup):
|
|||||||
default=True,
|
default=True,
|
||||||
update=presence.update_overlay_settings
|
update=presence.update_overlay_settings
|
||||||
)
|
)
|
||||||
|
presence_show_far_user: bpy.props.BoolProperty(
|
||||||
|
name="Show different scenes",
|
||||||
|
description="Show user on different scenes",
|
||||||
|
default=False,
|
||||||
|
update=presence.update_overlay_settings
|
||||||
|
)
|
||||||
filter_owned: bpy.props.BoolProperty(
|
filter_owned: bpy.props.BoolProperty(
|
||||||
name="filter_owned",
|
name="filter_owned",
|
||||||
description='Show only owned datablocks',
|
description='Show only owned datablocks',
|
||||||
|
@ -204,15 +204,21 @@ class DrawClient(Draw):
|
|||||||
|
|
||||||
for user in users.values():
|
for user in users.values():
|
||||||
metadata = user.get('metadata')
|
metadata = user.get('metadata')
|
||||||
|
color = metadata.get('color')
|
||||||
if 'color' in metadata:
|
scene_current = metadata.get('scene_current')
|
||||||
|
user_showable = scene_current == bpy.context.scene.name or settings.presence_show_far_user
|
||||||
|
if color and scene_current and user_showable:
|
||||||
if settings.presence_show_selected and 'selected_objects' in metadata.keys():
|
if settings.presence_show_selected and 'selected_objects' in metadata.keys():
|
||||||
renderer.draw_client_selection(
|
renderer.draw_client_selection(
|
||||||
user['id'], metadata['color'], metadata['selected_objects'])
|
user['id'], color, metadata['selected_objects'])
|
||||||
if settings.presence_show_user and 'view_corners' in metadata:
|
if settings.presence_show_user and 'view_corners' in metadata:
|
||||||
renderer.draw_client_camera(
|
renderer.draw_client_camera(
|
||||||
user['id'], metadata['view_corners'], metadata['color'])
|
user['id'], metadata['view_corners'], color)
|
||||||
|
if not user_showable:
|
||||||
|
# TODO: remove this when user event drivent update will be
|
||||||
|
# ready
|
||||||
|
renderer.flush_selection()
|
||||||
|
renderer.flush_users()
|
||||||
|
|
||||||
class ClientUpdate(Timer):
|
class ClientUpdate(Timer):
|
||||||
def __init__(self, timout=.5):
|
def __init__(self, timout=.5):
|
||||||
|
@ -219,6 +219,10 @@ class DrawFactory(object):
|
|||||||
if ob.type == 'EMPTY':
|
if ob.type == 'EMPTY':
|
||||||
# TODO: Child case
|
# TODO: Child case
|
||||||
# Collection instance case
|
# Collection instance case
|
||||||
|
indices = (
|
||||||
|
(0, 1), (1, 2), (2, 3), (0, 3),
|
||||||
|
(4, 5), (5, 6), (6, 7), (4, 7),
|
||||||
|
(0, 4), (1, 5), (2, 6), (3, 7))
|
||||||
if ob.instance_collection:
|
if ob.instance_collection:
|
||||||
for obj in ob.instance_collection.objects:
|
for obj in ob.instance_collection.objects:
|
||||||
if obj.type == 'MESH':
|
if obj.type == 'MESH':
|
||||||
|
@ -341,7 +341,10 @@ class SESSION_PT_presence(bpy.types.Panel):
|
|||||||
col = layout.column()
|
col = layout.column()
|
||||||
col.prop(settings,"presence_show_selected")
|
col.prop(settings,"presence_show_selected")
|
||||||
col.prop(settings,"presence_show_user")
|
col.prop(settings,"presence_show_user")
|
||||||
row = layout.row()
|
row = layout.column()
|
||||||
|
row.active = settings.presence_show_user
|
||||||
|
row.prop(settings,"presence_show_far_user")
|
||||||
|
|
||||||
|
|
||||||
class SESSION_PT_services(bpy.types.Panel):
|
class SESSION_PT_services(bpy.types.Panel):
|
||||||
bl_idname = "MULTIUSER_SERVICE_PT_panel"
|
bl_idname = "MULTIUSER_SERVICE_PT_panel"
|
||||||
|
Reference in New Issue
Block a user