def _get_render_with_legend(cfg, fields, area, title, block_definition, color_definition, block_fields, color_fields, layout): title_h = 1 / 10. ax, ay, aw, ah = area title_node = ngl.Text( title, box_corner=(ax, ay + ah - title_h, 0), box_width=(aw, 0, 0), box_height=(0, title_h, 0), fg_color=(0, 0, 0, 1), bg_color=(1, 1, 1, 1), aspect_ratio=cfg.aspect_ratio, ) text_group = ngl.Group() nb_fields = len(fields) field_h = (ah - title_h) / float(nb_fields) for i, field in enumerate(fields): field_hpos = nb_fields - i - 1 text_node = ngl.Text('#%02d %s' % (field['pos'], field['name']), box_corner=(ax, ay + field_hpos * field_h, 0), box_width=(aw / 2., 0, 0), box_height=(0, field_h, 0), fg_color=list(field['color']) + [1], halign='left', aspect_ratio=cfg.aspect_ratio) text_group.add_children(text_node) quad = ngl.Quad((ax + aw / 2., ay, 0), (aw / 2., 0, 0), (0, ah - title_h, 0)) render = get_render(cfg, quad, fields, block_definition, color_definition, block_fields, color_fields, layout) return ngl.Group(children=(title_node, text_group, render))
def _data_scene(cfg, spec, field_id, seed, layout, debug_positions, color_tint): cfg.duration = ANIM_DURATION cfg.aspect_ratio = (1, 1) fields_info, block_fields, color_fields, block_definition, color_definition = get_random_block_info(spec, seed, layout, color_tint=color_tint) fields = match_fields(fields_info, field_id) quad = ngl.Quad((-1, -1, 0), (2, 0, 0), (0, 2, 0)) render = get_render(cfg, quad, fields, block_definition, color_definition, block_fields, color_fields, layout, debug_positions=debug_positions) return render
def _live_scene(cfg, spec, field_id, seed, layout, debug_positions, color_tint): # duration set to 0 makes it always draw the same time, and we want that # FIXME: can not work with blocks because their update is not re-called # FIXME: can not work with transform chains because the chain transform is not re-updated cfg.duration = 0 #if layout == 'uniform' else ANIM_DURATION cfg.duration = ANIM_DURATION # FIXME: drop cfg.aspect_ratio = (1, 1) fields_info, block_fields, color_fields, block_definition, color_definition = get_random_block_info( spec, seed, layout, color_tint=color_tint) fields = match_fields(fields_info, field_id) quad = ngl.Quad((-1, -1, 0), (2, 0, 0), (0, 2, 0)) render = get_render(cfg, quad, fields, block_definition, color_definition, block_fields, color_fields, layout, debug_positions=debug_positions) return render