parent
							
								
									4be70b9c31
								
							
						
					
					
						commit
						1acd14bea4
					
				
				 4 changed files with 69 additions and 2 deletions
			
			
		@ -0,0 +1,35 @@ | 
				
			|||||||
 | 
					class Regions(object): | 
				
			||||||
 | 
					    _pixelsEnabled: [] = [] | 
				
			||||||
 | 
					    _regions: [] = [] | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def __init__(self, strip_length: int, splitters: []): | 
				
			||||||
 | 
					        self._length: int = strip_length | 
				
			||||||
 | 
					        start_pixel = 0 | 
				
			||||||
 | 
					        for i in splitters: | 
				
			||||||
 | 
					            if i > self._length: | 
				
			||||||
 | 
					                raise ValueError('splitter out of bounds, you idiot') | 
				
			||||||
 | 
					            self._regions.append([start_pixel, i + 1, True]) | 
				
			||||||
 | 
					            start_pixel = i + 1 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        self._regions.append([start_pixel, self._length, True]) | 
				
			||||||
 | 
					        for i in range(self._length): | 
				
			||||||
 | 
					            self._pixelsEnabled.append(True) | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def region_switch(self, region_id: int, enabled: bool): | 
				
			||||||
 | 
					        pixel_region = self._regions[region_id] | 
				
			||||||
 | 
					        for i in range(pixel_region[0], pixel_region[1]): | 
				
			||||||
 | 
					            self._pixelsEnabled[i] = enabled | 
				
			||||||
 | 
					        self._regions[region_id][2] = enabled | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def is_pixel_enabled(self, pixel_id: int): | 
				
			||||||
 | 
					        return self._pixelsEnabled[pixel_id] | 
				
			||||||
 | 
					     | 
				
			||||||
 | 
					    def switch_region(self, region_id: int): | 
				
			||||||
 | 
					        status: bool = self._regions[region_id][2] | 
				
			||||||
 | 
					        self.region_switch(region_id, not status) | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def list_region_ids(self): | 
				
			||||||
 | 
					        result = [] | 
				
			||||||
 | 
					        for i in range(len(self._regions)): | 
				
			||||||
 | 
					            result.append(i) | 
				
			||||||
 | 
					        return result | 
				
			||||||
					Loading…
					
					
				
		Reference in new issue