def _apply_pressure_mapping_settings(self): p = self.preferences['input.global_pressure_mapping'] if len(p) == 2 and abs(p[0][1]-1.0)+abs(p[1][1]-0.0) < 0.0001: # 1:1 mapping (mapping disabled) self.pressure_mapping = None else: # This mapping is still required for certain problematic hw # See https://github.com/mypaint/mypaint/issues/275 m = mypaintlib.MappingWrapper(1) m.set_n(0, len(p)) for i, (x, y) in enumerate(p): m.set_point(0, i, x, 1.0-y) def mapping(pressure): return m.calculate_single_input(pressure) self.pressure_mapping = mapping
def _apply_pressure_mapping_settings(self): p = self.preferences['input.global_pressure_mapping'] if len(p) == 2 and abs(p[0][1] - 1.0) + abs(p[1][1] - 0.0) < 0.0001: # 1:1 mapping (mapping disabled) self.pressure_mapping = None else: # TODO: maybe replace this stupid mapping by a hard<-->soft slider? # https://github.com/mypaint/mypaint/issues/275 m = mypaintlib.MappingWrapper(1) m.set_n(0, len(p)) for i, (x, y) in enumerate(p): m.set_point(0, i, x, 1.0 - y) def mapping(pressure): return m.calculate_single_input(pressure) self.pressure_mapping = mapping
def update_input_mapping(self): p = self.preferences['input.global_pressure_mapping'] if len(p) == 2 and abs(p[0][1]-1.0)+abs(p[1][1]-0.0) < 0.0001: # 1:1 mapping (mapping disabled) self.pressure_mapping = None else: # TODO: maybe replace this stupid mapping by a hard<-->soft slider? # But then we would also need a "minimum pressure" setting, # or else this often used workaround is no longer possible: # http://wiki.mypaint.info/File:Pressure_workaround.png m = mypaintlib.MappingWrapper(1) m.set_n(0, len(p)) for i, (x, y) in enumerate(p): m.set_point(0, i, x, 1.0-y) def mapping(pressure): return m.calculate_single_input(pressure) self.pressure_mapping = mapping