def draw_tic_lines(self, tics): for j, tic in enumerate(tics): if j % self.major_tick_every_x == 0: # major tick glVertex3fv(gl_transform_list_to_GLfloat([-self.major_length_position, tic, 0])) glVertex3fv(gl_transform_list_to_GLfloat([ self.major_length_position, tic, 0])) else: # minor tick glVertex3fv(gl_transform_list_to_GLfloat([-self.minor_length_position, tic, 0])) glVertex3fv(gl_transform_list_to_GLfloat([ self.minor_length_position, tic, 0]))
def setup(self, window_width, window_height, zero_offset = 0): # where should the origin of our coordinate system be placed? # ORG = gl_transform_list_to_GLfloat([zero_offset, zero_offset, 0]) # we draw the axes from [-value : +value] self.XP_minus = gl_transform_list_to_GLfloat([-window_width, zero_offset, 0]) self.YP_minus = gl_transform_list_to_GLfloat([zero_offset, -window_height, 0]) self.XP = gl_transform_list_to_GLfloat([window_width, zero_offset, 0]) self.YP = gl_transform_list_to_GLfloat([zero_offset, window_height, 0]) # 'win_height' and 'win_width' are more panel heights and widths. self.win_height = window_height self.win_width = window_width self.zero_offset = zero_offset
def gl_update_line_value(self, value, offsets): glBindBuffer(GL_ARRAY_BUFFER, self.vbo_id) new_value = gl_transform_list_to_GLfloat([value]) size_value = sizeof(new_value) for i in range(len(offsets)): glBufferSubData(GL_ARRAY_BUFFER, offsets[i], size_value, new_value)
def draw_tic_lines(self, tics): for j, tic in enumerate(tics): if j % self.major_tick_every_x == 0: # major tick glVertex3fv( gl_transform_list_to_GLfloat( [-self.major_length_position, tic, 0])) glVertex3fv( gl_transform_list_to_GLfloat( [self.major_length_position, tic, 0])) else: # minor tick glVertex3fv( gl_transform_list_to_GLfloat( [-self.minor_length_position, tic, 0])) glVertex3fv( gl_transform_list_to_GLfloat( [self.minor_length_position, tic, 0]))
def setup(self, window_width, window_height, zero_offset=0): # where should the origin of our coordinate system be placed? # ORG = gl_transform_list_to_GLfloat([zero_offset, zero_offset, 0]) # we draw the axes from [-value : +value] self.XP_minus = gl_transform_list_to_GLfloat( [-window_width, zero_offset, 0]) self.YP_minus = gl_transform_list_to_GLfloat( [zero_offset, -window_height, 0]) self.XP = gl_transform_list_to_GLfloat([window_width, zero_offset, 0]) self.YP = gl_transform_list_to_GLfloat([zero_offset, window_height, 0]) # 'win_height' and 'win_width' are more panel heights and widths. self.win_height = window_height self.win_width = window_width self.zero_offset = zero_offset
def setup_vertical_line(self, MIN_y, MAX_y, x, color, n_COORDINATES_PER_COLOR = n_COORDINATES_PER_COLOR): data = gl_transform_list_to_GLfloat([x, MIN_y, x, MAX_y]) self.setup_line(color, data, n_COORDINATES_PER_COLOR)
def setup_horizontal_line(self, MIN_x, MAX_x, y, color, n_COORDINATES_PER_COLOR = n_COORDINATES_PER_COLOR): data = gl_transform_list_to_GLfloat([MIN_x, y, MAX_x, y]) self.setup_line(color, data, n_COORDINATES_PER_COLOR)
def setup_line(self, color, data, n_COORDINATES_PER_COLOR): colors = gl_transform_list_to_GLfloat(color * 2) self.vbo_id, self.color_id, self.colors = gl_setup_intial_data_and_color_vbos(data, colors, n_COORDINATES_PER_COLOR)