Esempio n. 1
0
    def __current_window(self):
        bimpy.set_next_window_pos(bimpy.Vec2(5, 393 + 128),
                                  bimpy.Condition.Once)
        bimpy.set_next_window_size(bimpy.Vec2(345, 110), bimpy.Condition.Once)

        bimpy.begin("Current",
                    flags=bimpy.WindowFlags(4) | bimpy.WindowFlags(1)
                    | bimpy.WindowFlags(2))

        bimpy.push_font(self.fonts.fonts[16]["cond"])
        bimpy.text_colored(bimpy.Vec4(1, 0, 0, 1), "Current")
        bimpy.pop_font()
        bimpy.separator()

        bimpy.push_font(self.fonts.fonts[44]["ext_bold_ital"])
        bimpy.text("")
        bimpy.same_line(25, 0)
        bimpy.text("{:.2f}".format(self.data.voltage).rjust(6, "0"))
        bimpy.pop_font()

        bimpy.push_font(self.fonts.fonts[44]["ext_bold_ital"])
        bimpy.same_line(215, 0)
        bimpy.text("Amp")
        bimpy.pop_font()

        bimpy.end()
Esempio n. 2
0
    def __voltage_window(self):
        bimpy.set_next_window_pos(bimpy.Vec2(5, 278 + 128),
                                  bimpy.Condition.Once)
        bimpy.set_next_window_size(bimpy.Vec2(345, 110), bimpy.Condition.Once)

        bimpy.begin("Voltage",
                    flags=bimpy.WindowFlags(4) | bimpy.WindowFlags(1)
                    | bimpy.WindowFlags(2))

        bimpy.push_font(self.fonts.fonts[16]["cond"])
        bimpy.text_colored(bimpy.Vec4(1, 0, 0, 1), "Voltage")
        bimpy.pop_font()
        bimpy.separator()

        bimpy.push_font(self.fonts.fonts[44]["ext_bold_ital"])
        bimpy.text("")
        bimpy.same_line(25, 0)
        if self.data.voltage >= 0:
            bimpy.text("{:.2f}".format(self.data.voltage).rjust(6, "0"))
        else:
            bimpy.text("-" + "{:.2f}".format(self.data.voltage).rjust(5, "0"))
        bimpy.pop_font()

        bimpy.push_font(self.fonts.fonts[44]["ext_bold_ital"])
        bimpy.same_line(220, 0)
        bimpy.text("Volt")
        bimpy.pop_font()

        bimpy.end()
Esempio n. 3
0
    def __distance_window(self):
        bimpy.set_next_window_pos(bimpy.Vec2(5, 120 + 128),
                                  bimpy.Condition.Once)
        bimpy.set_next_window_size(bimpy.Vec2(345, 110), bimpy.Condition.Once)

        bimpy.begin("Distance",
                    flags=bimpy.WindowFlags(4) | bimpy.WindowFlags(1)
                    | bimpy.WindowFlags(2))

        bimpy.push_font(self.fonts.fonts[16]["cond"])
        bimpy.text_colored(bimpy.Vec4(1, 0, 0, 1), "Distance Traveled")
        bimpy.pop_font()
        bimpy.separator()

        if self.data.distance <= 1.1:
            distance_formatted_data = str(int(self.data.distance * 1000))
            distance_formatted_data = distance_formatted_data.rjust(4, "0")
            scalar = "m"
        else:
            distance_formatted_data = "{:.2f}".format(self.data.distance)
            distance_formatted_data = distance_formatted_data.rjust(6, "0")
            scalar = "Km"

        bimpy.push_font(self.fonts.fonts[44]["ext_bold_ital"])
        bimpy.text("")
        bimpy.same_line(38, -1)
        bimpy.text(distance_formatted_data)
        bimpy.same_line(245, 0)
        bimpy.text(scalar)
        bimpy.pop_font()

        bimpy.end()
Esempio n. 4
0
    def __rpm_window(self):
        bimpy.set_next_window_pos(bimpy.Vec2(705, 278 + 128),
                                  bimpy.Condition.Once)
        bimpy.set_next_window_size(bimpy.Vec2(305, 225), bimpy.Condition.Once)

        bimpy.begin("RPM",
                    flags=bimpy.WindowFlags(4) | bimpy.WindowFlags(1)
                    | bimpy.WindowFlags(2))

        bimpy.push_font(self.fonts.fonts[16]["cond"])
        bimpy.text_colored(bimpy.Vec4(1, 0, 0, 1), "RPM")
        bimpy.pop_font()
        bimpy.separator()

        bimpy.push_font(self.fonts.fonts[44]["ext_bold_ital"])
        bimpy.text("")
        bimpy.same_line(25, 0)
        bimpy.text(str(int(self.data.rpm)).rjust(4, "0"))
        bimpy.pop_font()

        bimpy.push_font(self.fonts.fonts[44]["ext_bold_ital"])
        bimpy.same_line(175, 0)
        bimpy.text("RPM")
        bimpy.pop_font()

        self.rpm_datas.append(self.data.rpm)
        self.rpm_datas.pop(0)

        self.rpm_datas.reverse()
        bimpy.plot_lines("", self.rpm_datas, graph_size=bimpy.Vec2(288, 112))
        self.rpm_datas.reverse()
        bimpy.end()
Esempio n. 5
0
    def render(self, is_lock):
        bimpy.indent(10)

        bimpy.text('- Plane')
        bimpy.same_line()
        bimpy_tools.help_marker(
            'generate with random points\n' \
            '* plane random: random on whole plane\n' \
            '* balanced random: balanced positive and negative samples'
        )

        bimpy.push_item_width(140)

        if bimpy.begin_combo('strategy##plane_random_generator',
                             self._select_strategy):
            for item in self._strategy_list:
                is_selected = bimpy.Bool(self._select_strategy == item)

                if bimpy.selectable(item, is_selected) and not is_lock:
                    self._select_strategy = item

                if is_selected.value:
                    bimpy.set_item_default_focus()
            bimpy.end_combo()

        bimpy.pop_item_width()
        bimpy.unindent(10)
Esempio n. 6
0
    def __speed_window(self):
        bimpy.set_next_window_pos(bimpy.Vec2(355, 120 + 128),
                                  bimpy.Condition.Once)
        bimpy.set_next_window_size(bimpy.Vec2(345, 110), bimpy.Condition.Once)

        bimpy.begin("Speed",
                    flags=bimpy.WindowFlags(4) | bimpy.WindowFlags(1)
                    | bimpy.WindowFlags(2))

        bimpy.push_font(self.fonts.fonts[16]["cond"])
        bimpy.text_colored(bimpy.Vec4(1, 0, 0, 1), "Speed")
        bimpy.pop_font()
        bimpy.separator()

        bimpy.push_font(self.fonts.fonts[44]["ext_bold_ital"])
        bimpy.text("")
        bimpy.same_line(25, 0)
        bimpy.text(str(int(self.data.speed[0])).rjust(4, " "))
        bimpy.pop_font()

        bimpy.push_font(self.fonts.fonts[44]["ext_bold_ital"])
        bimpy.same_line(200, 0)
        bimpy.text("Km/H")
        bimpy.pop_font()

        bimpy.end()
Esempio n. 7
0
    def __calories_burtn_window(self):
        bimpy.set_next_window_pos(bimpy.Vec2(355, 5 + 128),
                                  bimpy.Condition.Once)
        bimpy.set_next_window_size(bimpy.Vec2(345, 110), bimpy.Condition.Once)

        bimpy.begin("Calories Burnt",
                    flags=bimpy.WindowFlags(4) | bimpy.WindowFlags(1)
                    | bimpy.WindowFlags(2))

        bimpy.push_font(self.fonts.fonts[16]["cond"])
        bimpy.text_colored(bimpy.Vec4(1, 0, 0, 1), "Calories Burnt")
        bimpy.pop_font()
        bimpy.separator()

        bimpy.push_font(self.fonts.fonts[44]["ext_bold_ital"])
        bimpy.text("")
        bimpy.same_line(25, 0)
        if self.data.calories_burned >= 0:
            bimpy.text("{:.2f}".format(self.data.calories_burned).rjust(
                7, "0"))
        else:
            bimpy.text("0.00".rjust(7, "0"))
        bimpy.pop_font()

        bimpy.push_font(self.fonts.fonts[44]["ext_bold_ital"])
        bimpy.same_line(250, 0)
        bimpy.text("cal")
        bimpy.pop_font()

        bimpy.end()
Esempio n. 8
0
    def render(self):
        super(SaveGameFrame, self).render()
        if bimpy.begin(self.name,
                       self.opened,
                       flags=bimpy.WindowFlags.NoCollapse
                       | bimpy.WindowFlags.MenuBar):

            if bimpy.begin_menu_bar():
                bimpy.menu_item('Save', 'Cmd+S', self.click_states['save'])
                bimpy.menu_item('Reload', 'Cmd+R', self.click_states['reload'])
                bimpy.menu_item('Export', 'Cmd+E', self.click_states['export'])
                bimpy.menu_item('Reload & Diff', 'Cmd+D',
                                self.click_states['reload_and_diff'])
                bimpy.end_menu_bar()

            if self.diff_string:
                bimpy.columns(2, "hex split")

            bimpy.text('Game: ')
            bimpy.same_line()
            bimpy.text(self.backend.game.value)

            for section_name, section_items in self.items.items():
                if bimpy.collapsing_header(section_name):
                    for item in section_items:
                        item.render_widget()

            if self.diff_string:
                bimpy.next_column()
                for line in self.diff_string.splitlines():
                    bimpy.text(line)

            bimpy.end()
Esempio n. 9
0
def ranged_slider(name, value, range_info):
    f = bimpy.Float(value)
    ret = None
    rng = (range_info.max - range_info.min)
    spd = .0025 * rng if rng > 0 else .1
    if bimpy.drag_float("##v_" + name, f, spd, range_info.min, range_info.max):
        ret = ps.ConfigurationInfo.ClampFloat(range_info, f.value)
    bimpy.same_line()
    if bimpy.button("init##b_" + name):
        ret = range_info.initial
    return ret
Esempio n. 10
0
def show_io_plot(ui_input, model):
    if (not model.simulator):
        return
    bimpy.slider_float("Input", ui_input, *util.mm)

    outputs = model.compute_outputs(util.x_ary())
    bimpy.plot_lines("", outputs, 0, "", -1.0, 1.0, bimpy.Vec2(0,100))

    bimpy.same_line()

    output = bimpy.Float(model.compute_output(ui_input.value))
    bimpy.v_slider_float("Output", bimpy.Vec2(40,100), output, -1.0, 1.0)
Esempio n. 11
0
    def render(self, is_lock):
        bimpy.set_next_tree_node_open(True, bimpy.Condition.FirstUseEver)
        
        if not bimpy.tree_node('convex points##convex_component'):
            return
        
        bimpy.same_line()
        bimpy_tools.help_marker('Convex points should be presented in counter-clockwise order')

        flags = bimpy.InputTextFlags.EnterReturnsTrue
        if is_lock:
            flags |= bimpy.InputTextFlags.ReadOnly
        
        last_convex_number_value = self._convex_number.value

        if bimpy.input_int('number##convex_component', self._convex_number, 1, 1, flags):
            self._convex_number.value = max(3, self._convex_number.value)
            if last_convex_number_value > self._convex_number.value:
                self._convex_data = self._convex_data[:self._convex_number.value]  # cut back points
            else:
                self._convex_data.extend([
                    [bimpy.Float(0), bimpy.Float(0)] 
                    for _ in range(last_convex_number_value, self._convex_number.value)
                ])
        
        # show convex value setting
        bimpy.set_next_tree_node_open(self._convex_number.value < 10, bimpy.Condition.FirstUseEver)

        if bimpy.tree_node('convex value ({})##convex_component'.format(self._convex_number.value)):
            for index in range(self._convex_number.value):
                bimpy.push_item_width(210)
                bimpy.input_float2(
                    '{:<3d}'.format(index),
                    self._convex_data[index][0],
                    self._convex_data[index][1],
                    flags=flags
                )
                bimpy.pop_item_width()
            bimpy.tree_pop()
        
        # draw part
        bimpy.new_line()
        if bimpy.button('draw convex##convex_component') and not is_lock:
            self._convex_data_backup = [[item[0].value, item[1].value]
                                        for item in self._convex_data]
            self._convex_draw_flag = True
            self._convex_data = []
            self._convex_number.value = 0

        bimpy.tree_pop()
Esempio n. 12
0
    def __heart_rate_window(self):
        bimpy.set_next_window_pos(bimpy.Vec2(705, 5 + 128),
                                  bimpy.Condition.Once)
        bimpy.set_next_window_size(bimpy.Vec2(305, 225), bimpy.Condition.Once)

        bimpy.begin("Heart Rate",
                    flags=bimpy.WindowFlags(4) | bimpy.WindowFlags(1)
                    | bimpy.WindowFlags(2))

        bimpy.push_font(self.fonts.fonts[16]["cond"])
        bimpy.text_colored(bimpy.Vec4(1, 0, 0, 1), "Heart Rate")
        bimpy.pop_font()
        bimpy.separator()

        bimpy.text("")

        bimpy.same_line(30, -1)

        bimpy.push_font(self.fonts.fonts[44]["ext_bold_ital"])
        bimpy.text(str(int(self.data.heart_rate)).rjust(3, "0"))
        bimpy.pop_font()

        bimpy.same_line(140, 20)

        bimpy.push_font(self.fonts.fonts[44]["ext_bold_ital"])
        bimpy.text("BPM")
        bimpy.pop_font()

        if (time.time() -
                self.heart_rate_start_monitor) >= (self.data.heart_rate / 60):
            self.heart_rate_data.append(-0.7)
            self.heart_rate_data.append(1)
            self.heart_rate_start_monitor = time.time()
            self.heart_rate_data.pop(0)
        else:
            self.heart_rate_data.append(0)

        self.heart_rate_data.pop(0)

        self.heart_rate_data.reverse()
        bimpy.plot_lines("",
                         self.heart_rate_data,
                         graph_size=bimpy.Vec2(288, 112),
                         scale_min=-1.0,
                         scale_max=1.3)
        self.heart_rate_data.reverse()

        bimpy.end()
Esempio n. 13
0
    def scene_tree(self):
        if bimpy.button("New Node"):
            self.new_node()
        bimpy.same_line()
        if bimpy.button("Delete Node"):
            if self.selected_node is not None:

                def rem(l):
                    if self.selected_node in l:
                        l.remove(self.selected_node)

                self.walk(self.root_nodes, rem)

        def pnodes(l):
            remove_n = None

            for n in l:
                node_flags = bimpy.OpenOnArrow | bimpy.OpenOnDoubleClick | bimpy.DefaultOpen
                if n == self.selected_node:
                    node_flags |= bimpy.Selected

                if len(n.children) == 0:
                    node_flags |= bimpy.Leaf | bimpy.NoTreePushOnOpen

                node_open = bimpy.tree_node_ex(n.id, node_flags, n.name)
                if bimpy.is_item_clicked():
                    if self.selected_node == n:
                        self.selected_node = None
                    else:
                        self.selected_node = n

                if self.selected_node is not None and self.selected_node == n and self.ctrl_x:
                    self.copied_node = n
                    self.selected_node = None
                    remove_n = n

                if node_open and len(n.children) != 0:
                    pnodes(n.children)
                    bimpy.tree_pop()

            if remove_n is not None:
                l.remove(remove_n)

        if self.copied_node is not None and self.selected_node is not None and self.ctrl_v:
            self.selected_node.children.append(self.copied_node)
            self.copied_node = None

        pnodes(self.root_nodes)
Esempio n. 14
0
    def show(self, ctx):
        # Add a layer to the MLP
        bimpy.push_item_width(80)
        bimpy.input_int("nr neurons", self.ui.nr_neurons)
        bimpy.same_line()
        bimpy.combo("transfer", self.ui.transfer, self.ui.transfer_names)
        if (self.ui.nr_neurons.value > 0):
            bimpy.same_line()
            if (bimpy.button("add layer")):
                transfer = self.ui.transfer_names[self.ui.transfer.value]
                self.model.add_layer(transfer, self.ui.nr_neurons.value)
        bimpy.pop_item_width()

        self.model.show(ctx)

        show_io_plot(self.ui.input, self.model)
Esempio n. 15
0
    def render(self, is_lock):
        bimpy.indent(10)

        bimpy.text('- SGD')
        bimpy.same_line()
        bimpy_tools.help_marker('torch.optim.SGD')

        flags = bimpy.InputTextFlags.EnterReturnsTrue
        if is_lock:
            flags |= bimpy.InputTextFlags.ReadOnly

        bimpy.push_item_width(120)

        if bimpy.input_float('lr##sgd_optimizer', self._lr, flags=flags):
            self._lr.value = max(0.0, self._lr.value)

        if bimpy.input_float('momentum##sgd_optimizer',
                             self._momentum,
                             flags=flags):
            self._momentum.value = max(0.0, self._momentum.value)

        if bimpy.input_float('dampening##sgd_optimizer',
                             self._dampening,
                             flags=flags):
            self._dampening.value = max(0.0, self._dampening.value)

        if bimpy.input_float('weight_decay##sgd_optimizer',
                             self._weight_decay,
                             flags=flags):
            self._weight_decay.value = max(0.0, self._weight_decay.value)

        if bimpy.checkbox('nesterov##sgd_optimizer', self._nesterov):
            self._hint_nesterov = False

        if self._nesterov.value:
            if self._momentum.value == 0 or self._dampening.value > 0:
                self._nesterov.value = False
                self._hint_nesterov = True

        bimpy.same_line()
        bimpy_tools.help_marker(
            'Nesterov momentum requires a momentum and zero dampening',
            self._hint_nesterov)

        bimpy.pop_item_width()
        bimpy.unindent(10)
Esempio n. 16
0
    def render(self, is_lock):
        bimpy.indent(10)

        bimpy.text('- Linear layer init')
        bimpy.same_line()
        bimpy_tools.help_marker(
            'Initializer used in torch.nn.Linear, use Kaiming uniform')

        bimpy.push_item_width(120)

        flags = bimpy.InputTextFlags.EnterReturnsTrue
        if is_lock:
            flags |= bimpy.InputTextFlags.ReadOnly

        if bimpy.input_float('a##sgd_optimizer', self._a, flags=flags):
            self._a.value = max(0.0, self._a.value)

        if bimpy.begin_combo('mode##linear_layer_init', self._select_mode):
            for item in self._mode_list:
                is_selected = bimpy.Bool(self._select_mode == item)

                if bimpy.selectable(item, is_selected) and not is_lock:
                    self._select_mode = item

                if is_selected.value:
                    bimpy.set_item_default_focus()
            bimpy.end_combo()

        if bimpy.begin_combo('nonlinearity##linear_layer_init',
                             self._select_nonlinearity):
            for item in self._nonlinearity_list:
                is_selected = bimpy.Bool(self._select_nonlinearity == item)

                if bimpy.selectable(item, is_selected) and not is_lock:
                    self._select_nonlinearity = item

                if is_selected.value:
                    bimpy.set_item_default_focus()
            bimpy.end_combo()

        bimpy.pop_item_width()
        bimpy.unindent(10)
Esempio n. 17
0
    def __gender_window(self):
        bimpy.set_next_window_pos(bimpy.Vec2(729, 5), bimpy.Condition.Once)
        bimpy.set_next_window_size(bimpy.Vec2(166, 80), bimpy.Condition.Once)

        bimpy.begin("Gender",
                    flags=bimpy.WindowFlags(4) | bimpy.WindowFlags(1)
                    | bimpy.WindowFlags(2))

        bimpy.push_font(self.fonts.fonts[16]["cond"])
        bimpy.text_colored(bimpy.Vec4(1, 0, 0, 1), "Gender")
        bimpy.pop_font()
        bimpy.separator()

        bimpy.push_font(self.fonts.fonts[16]["ext_bold_ital"])
        bimpy.text("")
        bimpy.same_line(38, 0)
        bimpy.text("Female" if self.data.gender else "Male")
        bimpy.pop_font()

        bimpy.end()
Esempio n. 18
0
    def __age_window(self):
        bimpy.set_next_window_pos(bimpy.Vec2(900, 5), bimpy.Condition.Once)
        bimpy.set_next_window_size(bimpy.Vec2(110, 80), bimpy.Condition.Once)

        bimpy.begin("Age",
                    flags=bimpy.WindowFlags(4) | bimpy.WindowFlags(1)
                    | bimpy.WindowFlags(2))

        bimpy.push_font(self.fonts.fonts[16]["cond"])
        bimpy.text_colored(bimpy.Vec4(1, 0, 0, 1), "Age")
        bimpy.pop_font()
        bimpy.separator()

        bimpy.push_font(self.fonts.fonts[16]["ext_bold_ital"])
        bimpy.text("")
        bimpy.same_line(38, 0)
        bimpy.text(str(self.data.age))
        bimpy.pop_font()

        bimpy.end()
Esempio n. 19
0
    def __time_window(self):
        bimpy.set_next_window_pos(bimpy.Vec2(5, 5 + 128), bimpy.Condition.Once)
        bimpy.set_next_window_size(bimpy.Vec2(345, 110), bimpy.Condition.Once)

        bimpy.begin("Time Elapsed",
                    flags=bimpy.WindowFlags(4) | bimpy.WindowFlags(1)
                    | bimpy.WindowFlags(2))

        bimpy.push_font(self.fonts.fonts[16]["cond"])
        bimpy.text_colored(bimpy.Vec4(1, 0, 0, 1), "Time Elapsed")
        bimpy.pop_font()
        bimpy.separator()

        bimpy.push_font(self.fonts.fonts[44]["ext_bold_ital"])
        bimpy.text("")
        bimpy.same_line(38, 0)
        bimpy.text(
            str(datetime.timedelta(seconds=self.data.exercize_time))[:-4])
        bimpy.pop_font()

        bimpy.end()
Esempio n. 20
0
    def render(self, is_lock):
        bimpy.indent(10)

        bimpy.text('- MSE loss')
        bimpy.same_line()
        bimpy_tools.help_marker('torch.nn.MSELoss')

        bimpy.push_item_width(120)

        if bimpy.begin_combo('reduction##mse_loss_fn', self._select_redution):
            for item in self._reduction_list:
                is_selected = bimpy.Bool(self._select_redution == item)

                if bimpy.selectable(item, is_selected) and not is_lock:
                    self._select_redution = item

                if is_selected.value:
                    bimpy.set_item_default_focus()
            bimpy.end_combo()
        
        bimpy.pop_item_width()
        bimpy.unindent(10)
Esempio n. 21
0
    def render(self, is_lock):
        bimpy.indent(10)

        bimpy.text('- Adam')
        bimpy.same_line()
        bimpy_tools.help_marker('torch.optim.Adam')

        flags = bimpy.InputTextFlags.EnterReturnsTrue
        if is_lock:
            flags |= bimpy.InputTextFlags.ReadOnly

        bimpy.push_item_width(140)

        if bimpy.input_float('lr##adam_optimizer', self._lr, flags=flags):
            self._lr.value = max(0.0, self._lr.value)

        if bimpy.input_float2('momentum##adam_optimizer',
                              self._betas_first,
                              self._betas_second,
                              flags=flags):
            self._betas_first.value = max(0.0, self._betas_first.value)
            self._betas_second.value = max(0.0, self._betas_second.value)

        if bimpy.input_float('eps##adam_optimizer',
                             self._eps,
                             decimal_precision=8,
                             flags=flags):
            self._dampening.value = max(0.0, self._eps.value)

        if bimpy.input_float('weight_decay##adam_optimizer',
                             self._weight_decay,
                             flags=flags):
            self._weight_decay.value = max(0.0, self._weight_decay.value)

        bimpy.checkbox('amsgrad##adam_optimizer', self._amsgrad)

        bimpy.pop_item_width()
        bimpy.unindent(10)
Esempio n. 22
0
    def render(self, is_lock):
        bimpy.indent(10)

        bimpy.text('- Raw Point')
        bimpy.same_line()
        bimpy_tools.help_marker('generate with raw points')

        bimpy.push_item_width(120)

        if bimpy.begin_combo('strategy##raw_point_generator',
                             self._select_strategy):
            for item in self._strategy_list:
                is_selected = bimpy.Bool(self._select_strategy == item)

                if bimpy.selectable(item, is_selected) and not is_lock:
                    self._select_strategy = item

                if is_selected.value:
                    bimpy.set_item_default_focus()
            bimpy.end_combo()

        bimpy.pop_item_width()
        bimpy.unindent(10)
Esempio n. 23
0
    def __power_window(self):
        bimpy.set_next_window_pos(bimpy.Vec2(355, 278 + 128),
                                  bimpy.Condition.Once)
        bimpy.set_next_window_size(bimpy.Vec2(345, 225), bimpy.Condition.Once)

        bimpy.begin("Power",
                    flags=bimpy.WindowFlags(4) | bimpy.WindowFlags(1)
                    | bimpy.WindowFlags(2))

        bimpy.push_font(self.fonts.fonts[16]["cond"])
        bimpy.text_colored(bimpy.Vec4(1, 0, 0, 1), "Power")
        bimpy.pop_font()
        bimpy.separator()

        bimpy.push_font(self.fonts.fonts[44]["ext_bold_ital"])
        bimpy.text("")
        bimpy.same_line(25, 0)
        bimpy.text("{:.2f}".format(self.data.power).rjust(6, "0"))
        bimpy.pop_font()

        bimpy.push_font(self.fonts.fonts[44]["ext_bold_ital"])
        bimpy.same_line(212, 0)
        bimpy.text("Watts")
        bimpy.pop_font()

        self.power_datas.append(self.data.power)
        self.power_datas.pop(0)

        self.power_datas.reverse()
        bimpy.plot_lines("",
                         self.power_datas,
                         graph_size=bimpy.Vec2(329, 112),
                         scale_min=-1.0,
                         scale_max=500.0)
        self.power_datas.reverse()

        bimpy.end()
Esempio n. 24
0
    def render(self):
        if not self._size:
            self._size = bimpy.Vec2(400, 600)
            bimpy.set_next_window_size(self._size)

        if bimpy.begin(self.name,
                       self.opened,
                       flags=bimpy.WindowFlags.NoCollapse
                       | bimpy.WindowFlags.MenuBar):

            if bimpy.begin_menu_bar():
                bimpy.menu_item('Reload', 'Cmd+R', self.click_states['reload'])
                bimpy.end_menu_bar()

            for folder_name, folder_files in self.tree.items():
                if bimpy.collapsing_header(folder_name):
                    for item, button_name in folder_files:
                        if bimpy.button(button_name):
                            item_path = '{0}/{1}'.format(folder_name, item)
                            try:
                                new_savegame = SaveGameFrame(
                                    PS2WrappedBinBackend, item_path, self)
                                self.child_frames.append(new_savegame)

                            except KeyboardInterrupt as e:
                                raise e
                            except Exception as e:
                                print(e)

                        bimpy.same_line()
                        bimpy.text(item)

            bimpy.end()

            for child_frame in self.child_frames:
                child_frame.render()
Esempio n. 25
0
def show_demo_window():
    bp.begin_root(menu=True)

    #  Menu Bar
    if bp.begin_menu_bar():
        if bp.begin_menu("Menu"):
            bp.end_menu()

        if bp.begin_menu("Examples"):
            bp.end_menu()

        if bp.begin_menu("Tools"):
            bp.end_menu()

        bp.end_menu_bar()

    global clicked
    if bp.button("Button"):
        clicked += 1
    if clicked & 1:
        bp.same_line()
        bp.text("Thanks for clicking me!")

    bp.checkbox("checkbox", check)

    bp.radio_button("radio a", e, 0)
    bp.same_line()
    bp.radio_button("radio b", e, 1)
    bp.same_line()
    bp.radio_button("radio c", e, 2)

    #  Color buttons, demonstrate using PushID() to add unique identifier in the ID stack, and changing style.
    for i in range(7):
        if i > 0:
            bp.same_line()
        bp.push_id_int(i)
        bp.push_style_color(bp.Colors.Button, bp.Vec4(i / 7.0, 0.6, 0.6, 1.0))
        bp.push_style_color(bp.Colors.ButtonHovered,
                            bp.Vec4(i / 7.0, 0.7, 0.7, 1.0))
        bp.push_style_color(bp.Colors.ButtonActive,
                            bp.Vec4(i / 7.0, 0.8, 0.8, 1.0))
        bp.button("Click")
        bp.pop_style_color(3)
        bp.pop_id()

    #  Use AlignTextToFramePadding() to align text baseline to the baseline of framed elements (otherwise a Text+SameLine+Button sequence will have the text a little too high by default)
    bp.align_text_to_frame_padding()
    bp.text("Hold to repeat:")
    bp.same_line()

    #  Arrow buttons with Repeater
    spacing = bp.get_style().item_inner_spacing.x
    bp.push_button_repeat(True)

    global counter
    if bp.arrow_button("##left", bp.Direction.Left):
        counter -= 1

    bp.same_line(0.0, spacing)
    if bp.arrow_button("##right", bp.Direction.Right):
        counter += 1

    bp.pop_button_repeat()
    bp.same_line()
    bp.text("%d" % counter)

    bp.text("Hover over me")
    if bp.is_item_hovered():
        bp.set_tooltip("I am a tooltip")

    bp.same_line()
    bp.text("- or me")
    if bp.is_item_hovered():
        bp.begin_tooltip()
        bp.text("I am a fancy tooltip")
        arr = [0.6, 0.1, 1.0, 0.5, 0.92, 0.1, 0.2]
        bp.plot_lines("Curve", arr)
        bp.end_tooltip()

    bp.separator()

    bp.label_text("label", "Value")

    #  Using the _simplified_ one-liner Combo() api here
    #  See "Combo" section for examples of how to use the more complete BeginCombo()/EndCombo() api.
    items = [
        "AAAA", "BBBB", "CCCC", "DDDD", "EEEE", "FFFF", "GGGG", "HHHH", "IIII",
        "JJJJ", "KKKK", "LLLLLLL", "MMMM", "OOOOOOO"
    ]
    bp.combo("combo", item_current, items)
    bp.same_line()
    help_marker(
        "Refer to the \"Combo\" section below for an explanation of the full BeginCombo/EndCombo API, and demonstration of various flags.\n"
    )

    #  To wire InputText() with std::string or any other custom string type,
    #  see the "Text Input > Resize Callback" section of this demo, and the misc/cpp/imgui_stdlib.h file.
    bp.input_text("input text", str0, 128)
    bp.same_line()
    help_marker(
        "USER:\nHold SHIFT or use mouse to select text.\n"
        "CTRL+Left/Right to word jump.\n"
        "CTRL+A or double-click to select all.\n"
        "CTRL+X,CTRL+C,CTRL+V clipboard.\n"
        "CTRL+Z,CTRL+Y undo/redo.\n"
        "ESCAPE to revert.\n\nPROGRAMMER:\nYou can use the ImGuiInputTextFlags_CallbackResize facility if you need to wire InputText() to a dynamic string type. See misc/cpp/imgui_stdlib.h for an example (this is not demonstrated in imgui_demo.cpp)."
    )

    bp.end()
Esempio n. 26
0
        if bimpy.menu_item('Save', ''):
            save_data(args.save_path)
        if bimpy.menu_item('Load', ''):
            load_data(args.save_path)
        bimpy.end_main_menu_bar(
        )  # According to bimpy docs, this is a special case where end is called inside the if.

    if bimpy.begin("Video", opened=tab_video_view):
        is_placing_rect = True
        s = bimpy.text(args.base_path_video)
        b_i = bimpy.Int(display_frame)
        bimpy.slider_int("Frame", b_i, 0, video_len, "%d")

        if bimpy.button(" < Prev (z) ") or bimpy.is_key_released(ord('Z')):
            b_i.value -= 1
        bimpy.same_line()
        bimpy.checkbox("Autoplay (c to stop)", is_autoplay)
        if bimpy.is_key_down(ord('C')):
            is_autoplay.value = False
        bimpy.same_line()
        if bimpy.button(" Next > (x) ") or bimpy.is_key_released(
                ord('X')) or is_autoplay.value:
            b_i.value += 1

        if display_frame != b_i.value:
            simulate_to_frame(b_i.value)

        bimpy.combo('Label used for annotation', current_label_idx, all_labels)

        img_display_w = bimpy.get_window_content_region_width()
        img_display_h = img_display_w * video_h / video_w
    def render(self, ctx, windows_info):
        # calculate autoly
        pos = bimpy.Vec2(
            windows_info['file_brewswer_ui']['x'] +
            windows_info['file_brewswer_ui']['w'] + conf.margin,
            windows_info['image_shower_ui']['y'] +
            windows_info['image_shower_ui']['h'] + conf.margin)

        size = bimpy.Vec2(ctx.width() - pos.x - conf.margin,
                          conf.meta_info_height)

        bimpy.set_next_window_pos(pos, bimpy.Condition.Always)
        bimpy.set_next_window_size(size, bimpy.Condition.Always)

        bimpy.begin(
            "", bimpy.Bool(True), bimpy.WindowFlags.NoCollapse
            | bimpy.WindowFlags.NoMove | bimpy.WindowFlags.NoResize
            | bimpy.WindowFlags.NoTitleBar | bimpy.WindowFlags.NoScrollbar)

        ###########UI###########

        if self.meta_info is not None:
            ####LINE1####
            self.meta_info.setdefault('ImageWidth', '')
            self.meta_info.setdefault('ImageLength', '')
            bimpy.text('{}:{}x{}'.format(LANG.meta_size,
                                         self.meta_info['ImageWidth'],
                                         self.meta_info['ImageLength']))
            bimpy.same_line(size.x / 3)

            self.meta_info.setdefault('DateTimeOriginal', '')
            bimpy.text('{}:{}'.format(LANG.meta_date,
                                      self.meta_info['DateTimeOriginal']))
            bimpy.same_line(size.x / 3 * 2)

            self.meta_info.setdefault('Make', '')
            self.meta_info.setdefault('Model', '')
            bimpy.text('{}:{} {}'.format(LANG.meta_device,
                                         self.meta_info['Make'],
                                         self.meta_info['Model']))

            ####LINE2####
            self.meta_info.setdefault('FocalLength', '')
            bimpy.text('{}:{}'.format(LANG.meta_focal_length,
                                      self.meta_info['FocalLength']))
            bimpy.same_line(size.x / 3)

            self.meta_info.setdefault('ExposureTime', '')
            # truncate too high number
            try:
                x, y = self.meta_info['ExposureTime']
                self.meta_info['ExposureTime'] = (x % 1000, y % 1000)
            except:
                pass

            bimpy.text('{}:{}'.format(LANG.meta_exposure_time,
                                      self.meta_info['ExposureTime']))
            bimpy.same_line(size.x / 3 * 2)

            self.meta_info.setdefault('ISOSpeedRatings', '')
            bimpy.text('{}:{}'.format(LANG.meta_ISO_speed_ratings,
                                      self.meta_info['ISOSpeedRatings']))

            ####LINE3####
            bimpy.text('{}:({},{})'.format(LANG.meta_GPS, round(self.lat, 1),
                                           round(self.lon, 1)))
            bimpy.same_line(size.x / 3)

            bimpy.text('{}:{}'.format(LANG.meta_location, self.location))
        ########################

        t = {
            'x': bimpy.get_window_pos().x,
            'y': bimpy.get_window_pos().y,
            'w': bimpy.get_window_size().x,
            'h': bimpy.get_window_size().y,
            'self': self,
        }

        bimpy.end()

        return t
    def render(self, ctx, windows_info):

        pos = bimpy.Vec2(conf.margin, conf.margin)
        size_min = bimpy.Vec2(conf.min_file_browser_width,
                              ctx.height() - 2 * conf.margin)
        size_max = bimpy.Vec2(conf.max_file_browser_width,
                              ctx.height() - 2 * conf.margin)

        bimpy.set_next_window_pos(pos, bimpy.Condition.Once)
        bimpy.set_next_window_size_constraints(size_min, size_max)

        bimpy.begin(LANG.file_brewswer_ui_title, bimpy.Bool(True),
                    bimpy.WindowFlags.NoCollapse | bimpy.WindowFlags.NoMove)

        ###########UI###########
        if bimpy.button(LANG.file_brewswer_ui_refresh) == True:
            self.fb.refresh_file_list()

        bimpy.same_line()
        if bimpy.button(LANG.about) == True:
            bimpy.open_popup(LANG.about)

        # call render about ui
        # print(dir(windows_info['about_ui']))
        windows_info['about_ui']['self'].about()

        for idx, f_name in enumerate(self.fb.file_list):
            # print(self.selected.value)
            if bimpy.selectable(
                    f_name.split('\\')[-1], self.selected.value == idx):
                self.selected.value = idx

                if self.selected.value != -1 and self.selected.value != self.preidx:
                    self.preidx = self.selected.value
                    windows_info['image_shower_ui']['self'].update_pic(f_name)
                    windows_info['meta_info_ui']['self'].update_meta_info(
                        f_name)

        # progress bar
        if not self.fb.q.empty():
            self.process = self.fb.q.get()

            f, d = self.process[-2], self.process[-1]
            # update if new
            if d != {}:
                self.fb.pp.yolo_res[f] = d

            self.process = (self.process[0] + 1, self.process[1])

            if self.process[0] == self.process[1]:
                with open('yolo_res', 'wb') as f:
                    pickle.dump(self.fb.pp.yolo_res, f)

                # build retrieval index
                windows_info['retrival_ui']['self'].init = False

        sz = bimpy.get_window_size()
        bimpy.set_cursor_pos(bimpy.Vec2(conf.margin, sz.y - conf.margin * 2))
        bimpy.push_item_width(sz.x - conf.margin * 3 - 60)

        process = self.process
        bimpy.progress_bar(process[0] / float(process[1]),
                           bimpy.Vec2(0.0, 0.0),
                           "{}/{}".format(process[0], process[1]))

        bimpy.same_line()
        if bimpy.button(LANG.reindex) == True and process[0] == process[1]:
            self.fb.refresh()

        ########################

        t = {
            'x': bimpy.get_window_pos().x,
            'y': bimpy.get_window_pos().y,
            'w': bimpy.get_window_size().x,
            'h': bimpy.get_window_size().y,
            'self': self,
        }

        bimpy.end()

        return t
Esempio n. 29
0
#   return to array and use the array to fill in the values
# cool_thread = threading.Thread(target = fetchTempFunction())
# cool_thread.start()

if __name__ == "__main__":
    while (not ctx.should_close()):
        with ctx:
            w.Sensor()

            # intro window
            b.set_next_window_pos(b.Vec2(12, 15), b.Condition.Once)
            b.set_next_window_size(b.Vec2(765, 80), b.Condition.Once)
            b.begin("Hardware-Rating")

            b.text("Welcome to Hardware-Rating,")
            b.same_line()
            b.text(realUser)
            b.text(
                "Below are your listed computer components and any other useful information per device."
            )

            # CPU window
            b.set_next_window_pos(b.Vec2(12, 100), b.Condition.Once)
            b.set_next_window_size(b.Vec2(435, 325), b.Condition.Once)
            b.begin("CPU")

            b.text("Your CPU is a(n):")
            #try:
            b.text(cpu.name)
            b.text("")
Esempio n. 30
0
    def __buttons_window(self):
        bimpy.set_next_window_pos(bimpy.Vec2(5, 635), bimpy.Condition.Once)
        bimpy.set_next_window_size(bimpy.Vec2(1005, 128), bimpy.Condition.Once)

        bimpy.begin("Exercise Control",
                    flags=bimpy.WindowFlags(4) | bimpy.WindowFlags(1)
                    | bimpy.WindowFlags(2))

        bimpy.push_font(self.fonts.fonts[16]["cond"])
        bimpy.text_colored(bimpy.Vec4(1, 0, 0, 1), "Controls")
        bimpy.separator()
        bimpy.pop_font()

        bimpy.push_font(self.fonts.fonts[16]["cond"])
        bimpy.text("")
        bimpy.same_line(0, 150)

        if self.pause_button_state == 1:
            bimpy.push_style_color(bimpy.Colors(0), bimpy.Vec4(0, 0, 0, 1))
            bimpy.push_style_color(bimpy.Colors(21),
                                   bimpy.Vec4(0.8, 0.8, 0, 1))
            bimpy.push_style_color(bimpy.Colors(22), bimpy.Vec4(1, 1, 0, 1))
            bimpy.push_style_color(bimpy.Colors(23),
                                   bimpy.Vec4(0.5, 0.5, 0, 1))
            pause_button_text = "Pause Exercise"
        elif self.pause_button_state == 0:
            bimpy.push_style_color(bimpy.Colors(0), bimpy.Vec4(0, 0, 0, 1))
            bimpy.push_style_color(bimpy.Colors(21),
                                   bimpy.Vec4(0.0, 0.8, 0.0, 1))
            bimpy.push_style_color(bimpy.Colors(22),
                                   bimpy.Vec4(0.0, 1, 0.0, 1))
            bimpy.push_style_color(bimpy.Colors(23),
                                   bimpy.Vec4(0.0, 0.5, 0.0, 1))
            pause_button_text = "Resume Exercise"
        elif self.pause_button_state == -1:
            bimpy.push_style_color(bimpy.Colors(0), bimpy.Vec4(0, 0, 0, 1))
            bimpy.push_style_color(bimpy.Colors(21),
                                   bimpy.Vec4(0.4, 0.4, 0.4, 1))
            bimpy.push_style_color(bimpy.Colors(22),
                                   bimpy.Vec4(0.4, 0.4, 0.4, 1))
            bimpy.push_style_color(bimpy.Colors(23),
                                   bimpy.Vec4(0.4, 0.4, 0.4, 1))
            pause_button_text = "------ -------"

        if bimpy.button(pause_button_text, bimpy.Vec2(250, 75)):
            if self.pause_button_state == 1:
                self.pause_button_state = 0
                self.data.is_exercising = False
            elif self.pause_button_state == 0:
                self.pause_button_state = 1
                self.data.is_exercising = True

        bimpy.pop_style_color()
        bimpy.pop_style_color()
        bimpy.pop_style_color()
        bimpy.pop_style_color()

        bimpy.same_line(450, 150)

        if self.stop_button_enabled:
            bimpy.push_style_color(bimpy.Colors(0), bimpy.Vec4(0, 0, 0, 1))
            bimpy.push_style_color(bimpy.Colors(21), bimpy.Vec4(0.8, 0, 0, 1))
            bimpy.push_style_color(bimpy.Colors(22), bimpy.Vec4(1, 0, 0, 1))
            bimpy.push_style_color(bimpy.Colors(23), bimpy.Vec4(0.5, 0, 0, 1))
        else:
            bimpy.push_style_color(bimpy.Colors(0), bimpy.Vec4(0, 0, 0, 1))
            bimpy.push_style_color(bimpy.Colors(21),
                                   bimpy.Vec4(0.4, 0.4, 0.4, 1))
            bimpy.push_style_color(bimpy.Colors(22),
                                   bimpy.Vec4(0.4, 0.4, 0.4, 1))
            bimpy.push_style_color(bimpy.Colors(23),
                                   bimpy.Vec4(0.4, 0.4, 0.4, 1))
            self.pause_button_state = -1

        if bimpy.button("Stop Exercise", bimpy.Vec2(250, 75)):
            self.data.is_exercising = False
            self.stop_button_enabled = False

        bimpy.pop_style_color()
        bimpy.pop_style_color()
        bimpy.pop_style_color()
        bimpy.pop_style_color()

        bimpy.pop_font()

        bimpy.end()
Esempio n. 31
0
    def render(self, is_lock):
        bimpy.set_next_tree_node_open(True, bimpy.Condition.FirstUseEver)
        
        if not bimpy.tree_node('lines##lines_component'):
            return

        # number setting
        flags = bimpy.InputTextFlags.EnterReturnsTrue
        if is_lock:
            flags |= bimpy.InputTextFlags.ReadOnly
        
        if bimpy.input_int('number##lines_component', self._line_number, 1, 1, flags):
            self._line_number.value = max(3, self._line_number.value)
            if self._last_line_number_value > self._line_number.value:
                self._line_data = self._line_data[:self._line_number.value]  # cut back points
            else:
                self._line_data.extend([
                    [bimpy.Float(0), bimpy.Float(0), bimpy.Float(0)] 
                    for _ in range(self._last_line_number_value, self._line_number.value)
                ])
            self._last_line_number_value = self._line_number.value
            # print('line number change to {}'.format(self._line_number.value))

        # show line value setting
        bimpy.set_next_tree_node_open(self._line_number.value < 10, bimpy.Condition.FirstUseEver)

        self._highlight_line_index = None

        if bimpy.tree_node('line value ({})'.format(self._line_number.value)):
            for index in range(self._line_number.value):
                bimpy.push_item_width(210)
                bimpy.input_float3(
                    '{:<3d}'.format(index),
                    self._line_data[index][0],
                    self._line_data[index][1],
                    self._line_data[index][2],
                    flags=flags
                )
                bimpy.pop_item_width()

                if bimpy.is_item_hovered():
                    self._highlight_line_index = index

                bimpy.same_line()
                if bimpy.button('rev##lines_component{}'.format(index)) and not is_lock:
                    for j in range(3):
                        self._line_data[index][j].value = -self._line_data[index][j].value
                
                if bimpy.is_item_hovered():
                    self._highlight_line_index = index

                bimpy.same_line()
                if bimpy.button('draw##lines_component{}'.format(index)) and not is_lock:
                    self._waitting_draw_line_index = index
                    bimpy.set_window_focus('canvas window##canvas')
                
                if bimpy.is_item_hovered():
                    self._highlight_line_index = index

            bimpy.tree_pop()

        # random setting
        bimpy.new_line()
        if bimpy.button('random##lines_component') and not is_lock:
            initializer = self.initializer_component.build_initializer()
            random_lines = initializer.random(self._line_number.value)
            for index in range(self._line_number.value):
                self._line_data[index][0].value = random_lines[index].a
                self._line_data[index][1].value = random_lines[index].b
                self._line_data[index][2].value = random_lines[index].c
        
        self.initializer_component.render(is_lock)

        bimpy.tree_pop()
Esempio n. 32
0
def view_legacy_controller(pl):
    bimpy.begin("Single File")

    bimpy.text("No file" if not ViewConfig.fileName else ViewConfig.fileName)

    if bimpy.button("Open File"):
        fn = askopenfilename(filetypes=(("WAV files", "*.wav"), ("AIFF files",
                                                                 "*.aif")))
        if fn:
            _lc.OpenFile(fn)
            ViewConfig.fileName = fn

    bimpy.text("No configuration file"
               if not ViewConfig.configFileName else ViewConfig.configFileName)

    if bimpy.button("Open Configuration"):
        fn = askopenfilename(filetypes=(("JSON files", "*.ps.json"),
                                        ("All files", "*.*")))

    if bimpy.button("Save Configuration"):
        pass

    bimpy.separator()

    vcfg = bimpy.Bool(ViewConfig.showParameters)
    if bimpy.checkbox("Edit Configuration", vcfg):
        ViewConfig.showParameters = vcfg.value

    bimpy.separator()
    if (not _lc.IsPlaying()):
        if bimpy.button("Play"):
            _lc.Play()
            bimpy.same_line()

    if (_lc.IsPlaying()):
        if bimpy.button("Stop"):
            _lc.Stop()

    bimpy.same_line()

    f = bimpy.Float(_lc.GetSeek())
    if bimpy.slider_float("##seek", f, 0, 1):
        if (not _lc.IsPlaying()):
            _lc.Seek(f.value)
            #bimpy.text(str(_lc.GetSeek()));
    bimpy.separator()
    bimpy.slider_float("Start##region_start", bimpy.Float(0), 0, 1)
    bimpy.slider_float("End##region_end", bimpy.Float(1), 0, 1)
    if bimpy.button("Render file (default)"):
        path = os.path.abspath(__file__)
        output_file = os.path.dirname(path) + "/render.wav"
        _lc.RenderToFile(output_file)


#    bimpy.text("render: "+str(_lc.GetRenderPercent()))
#    if bimpy.button("Cancel"):
#        _lc.CancelRender()

#    if bimpy.button("Render async (default)"):
#        path = os.path.abspath(__file__)
#        output_file = os.path.dirname(path)+"/render_async.wav"
#        _lc.RenderToFileAsync(output_file)
#    bimpy.text(str(_lc.GetRenderPercent()))
#    bimpy.button("Cancel Render")
#
#    if bimpy.button("Render Task"):
#        if not ViewConfig.renderTask:
#            path = os.path.abspath(__file__)
#            input_file = os.path.dirname(path)+"/test_file.wav"
#            output_file = os.path.dirname(path)+"/render-task.wav"
#
#            ViewConfig.renderTask = ps.LegacyRenderTask(input_file, output_file, _lc.RenderRange(), _lc.Parameters());
#            ViewConfig.renderTask.StartRender()
#    if ViewConfig.renderTask:
#        bimpy.text(str(ViewConfig.renderTask.GetRenderPercent()))
#        bimpy.button("Cancel Render")
#    bimpy.end()

#
    if ViewConfig.showParameters:
        #cfg = _lc.Parameters()
        if edit_config(_parameters) == True:
            _lc.SetParameters(_parameters)
            print("edit")
            pass