Esempio n. 1
0
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)
Esempio n. 2
0
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)
Esempio n. 3
0
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)
Esempio n. 4
0
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)
Esempio n. 5
0
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)