from classes.science.side import Side from gettext import gettext as _ class Border: """ Define a rectangle with coordinate as edge """ def __init__( self , x = Side() , y = Side() ): if not isinstance( x , Side ) or not isinstance( y , Side ): raise TypeError( _( 'x and y should be sides' ) ) self.x = x self.y = y def scale( self , factor ): """ Update coordinate to adapt from compression """ self.x.scale( factor ) self.y.scale( factor ) def slice( self ): """ Return rectangular slice """ return ( slice( self.y.min , self.y.max ), slice( self.x.min , self.x.max, ), ) def __str__( self ): return '\ border [\ \n x: ' + str( self.x ) + ',\ \n y: ' + str( self.y ) + ',\ \n]\ '