def draw_model_locator(obj, scs_globals): """ Draw Model locator. :param obj: :return: """ import mathutils size = scs_globals.locator_size empty_size = scs_globals.locator_empty_size mat_sca = mathutils.Matrix.Scale(size, 4) mat_orig = obj.matrix_world mat = mat_orig @ mat_sca _primitive.draw_shape_x_axis(mat, empty_size) _primitive.draw_shape_y_axis_neg(mat, empty_size) _primitive.draw_shape_z_axis(mat, empty_size) draw_shape_model_locator(mat, scs_globals) if not obj.scs_props.locator_preview_model_present: draw_model_box(mat_orig, scs_globals)
def draw_model_locator(obj, scs_globals): """ Draw Model locator. :param obj: :return: """ import mathutils size = scs_globals.locator_size empty_size = scs_globals.locator_empty_size mat_sca = mathutils.Matrix.Scale(size, 4) mat_orig = obj.matrix_world mat = mat_orig * mat_sca _primitive.draw_shape_x_axis(mat, empty_size) _primitive.draw_shape_y_axis_neg(mat, empty_size) _primitive.draw_shape_z_axis(mat, empty_size) draw_shape_model_locator(mat, scs_globals) if not obj.scs_props.locator_preview_model_present: draw_model_box(mat_orig, scs_globals)
def draw_prefab_locator(obj, scene_scs_props): """ Draw Prefab locator. :param obj: :return: """ size = scene_scs_props.locator_size empty_size = scene_scs_props.locator_empty_size mat_sca = Matrix.Scale(size, 4) mat_orig = obj.matrix_world mat = mat_orig * mat_sca if obj.scs_props.locator_prefab_type == 'Control Node': _primitive.draw_shape_x_axis(mat, empty_size) _primitive.draw_shape_y_axis_neg(mat, empty_size) _primitive.draw_shape_z_axis(mat, empty_size) draw_shape_control_node(mat, scene_scs_props) glPointSize(12.0) glBegin(GL_POINTS) if obj.scs_props.locator_prefab_con_node_index == '0': glColor3f(1, 0, 0) else: glColor3f(0, 1, 0) glVertex3f(*(mat * Vector((0.0, 0.0, 0.0)))) glEnd() glPointSize(1.0) elif obj.scs_props.locator_prefab_type == 'Sign': _primitive.draw_shape_x_axis(mat, empty_size) _primitive.draw_shape_y_axis(mat, empty_size) _primitive.draw_shape_z_axis_neg(mat, empty_size) if not obj.scs_props.locator_preview_model_present or not scene_scs_props.show_preview_models: draw_shape_sign(mat, scene_scs_props) elif obj.scs_props.locator_prefab_type == 'Spawn Point': _primitive.draw_shape_x_axis(mat, empty_size) _primitive.draw_shape_y_axis(mat, empty_size) _primitive.draw_shape_z_axis_neg(mat, empty_size) if not obj.scs_props.locator_preview_model_present or not scene_scs_props.show_preview_models: draw_shape_spawn_point(mat, scene_scs_props) elif obj.scs_props.locator_prefab_type == 'Traffic Semaphore': _primitive.draw_shape_x_axis(mat, empty_size) _primitive.draw_shape_y_axis(mat, empty_size) _primitive.draw_shape_z_axis_neg(mat, empty_size) if not obj.scs_props.locator_preview_model_present or not scene_scs_props.show_preview_models: draw_shape_traffic_light(mat, scene_scs_props) elif obj.scs_props.locator_prefab_type == 'Navigation Point': _primitive.draw_shape_x_axis(mat, empty_size) _primitive.draw_shape_y_axis_neg(mat, empty_size) _primitive.draw_shape_z_axis(mat, empty_size) draw_shape_control_node(mat, scene_scs_props) elif obj.scs_props.locator_prefab_type == 'Map Point': _primitive.draw_shape_x_axis(mat, empty_size) _primitive.draw_shape_y_axis(mat, empty_size) _primitive.draw_shape_z_axis(mat, empty_size) draw_shape_map_point(mat, scene_scs_props) elif obj.scs_props.locator_prefab_type == 'Trigger Point': _primitive.draw_shape_x_axis(mat, empty_size) _primitive.draw_shape_y_axis(mat, empty_size) _primitive.draw_shape_z_axis(mat, empty_size) draw_shape_trigger_point(mat, mat_orig, obj.scs_props.locator_prefab_tp_range, scene_scs_props)
def draw_prefab_locator(obj, scs_globals): """ Draw Prefab locator. :param obj: :return: """ size = scs_globals.locator_size empty_size = scs_globals.locator_empty_size mat_sca = Matrix.Scale(size, 4) mat_orig = obj.matrix_world mat = mat_orig @ mat_sca if obj.scs_props.locator_prefab_type == 'Control Node': _primitive.draw_shape_x_axis(mat, empty_size) _primitive.draw_shape_y_axis_neg(mat, empty_size) _primitive.draw_shape_z_axis(mat, empty_size) draw_shape_control_node(mat, scs_globals) if obj.scs_props.locator_prefab_con_node_index == '0': color = (1, 0, 0, 1) else: color = (0, 1, 0, 1) _primitive.draw_point((mat @ Vector((0.0, 0.0, 0.0))), color, 12.0) elif obj.scs_props.locator_prefab_type == 'Sign': _primitive.draw_shape_x_axis(mat, empty_size) _primitive.draw_shape_y_axis(mat, empty_size) _primitive.draw_shape_z_axis_neg(mat, empty_size) if not obj.scs_props.locator_preview_model_present or not scs_globals.show_preview_models: draw_shape_sign(mat, scs_globals) elif obj.scs_props.locator_prefab_type == 'Spawn Point': _primitive.draw_shape_x_axis(mat, empty_size) _primitive.draw_shape_y_axis(mat, empty_size) _primitive.draw_shape_z_axis_neg(mat, empty_size) if not obj.scs_props.locator_preview_model_present or not scs_globals.show_preview_models: draw_shape_spawn_point(mat, scs_globals) elif obj.scs_props.locator_prefab_type == 'Traffic Semaphore': _primitive.draw_shape_x_axis(mat, empty_size) _primitive.draw_shape_y_axis(mat, empty_size) _primitive.draw_shape_z_axis_neg(mat, empty_size) if not obj.scs_props.locator_preview_model_present or not scs_globals.show_preview_models: draw_shape_traffic_light(mat, scs_globals) elif obj.scs_props.locator_prefab_type == 'Navigation Point': _primitive.draw_shape_x_axis(mat, empty_size) _primitive.draw_shape_y_axis_neg(mat, empty_size) _primitive.draw_shape_z_axis(mat, empty_size) draw_shape_control_node(mat, scs_globals) elif obj.scs_props.locator_prefab_type == 'Map Point': _primitive.draw_shape_x_axis(mat, empty_size) _primitive.draw_shape_y_axis(mat, empty_size) _primitive.draw_shape_z_axis(mat, empty_size) draw_shape_map_point(mat, scs_globals) elif obj.scs_props.locator_prefab_type == 'Trigger Point': _primitive.draw_shape_x_axis(mat, empty_size) _primitive.draw_shape_y_axis(mat, empty_size) _primitive.draw_shape_z_axis(mat, empty_size) is_sphere = obj.scs_props.locator_prefab_tp_sphere_trigger draw_shape_trigger_point(mat, mat_orig, obj.scs_props.locator_prefab_tp_range, scs_globals, is_sphere)