def setPixelVisibility(points): pixels = [] firstInvPixels = [] lastInvPixels = [] visiblePixels = [] if points[0] in Amputation.visibleArea: for p in points: if p in Amputation.visibleArea: visiblePixels.append(p) else: lastInvPixels.append(p) else: i = 0 for p in points: if p in Amputation.visibleArea: i = 1 visiblePixels.append(p) elif i < 1: firstInvPixels.append(p) else: lastInvPixels.append(p) pixels += convert(firstInvPixels) pixels += convert(visiblePixels, color=Colors.green) pixels += convert(lastInvPixels) return pixels
def blower(self, position): if position == 0: ret = self.end_effector.send( convert(DATA(EIG.OFF_BLOWER, position))) print(ret) return ret[0] else: ret = self.end_effector.send(convert(DATA(EIG.ON_BLOWER, position))) print(ret) return ret[0]
def vacuum_granular(self, position): if position == 0: ret = self.end_effector.send( convert(DATA(EIG.OFF_GRANULAR_VACUUM, position))) print(ret) return ret[0] else: ret = self.end_effector.send( convert(DATA(EIG.ON_GRANULAR_VACUUM, position))) print(ret) return ret[0]
def vacuum_solid(self, position): if position == 0: ret = self.end_effector.send( convert(DATA(EIG.OFF_CYLINDER_VACUUM, position))) print(ret) return ret[0] else: ret = self.end_effector.send( convert(DATA(EIG.ON_CYLINDER_VACUUM, position))) print(ret) return ret[0]
def move_cylinder(self, position): """ :param position: maximum value is 13000 :return: """ if position > EIG.MAX_CYLINDER: print( f'invalid position : {position} is more than maximum position') position = EIG.MAX_CYLINDER self.end_effector.send( convert(DATA(EIG.MOVE_CYLINDER_MOTOR, position))) ret = self.end_effector.send( convert(DATA(EIG.MOVE_CYLINDER_MOTOR, position))) print(ret) return ret[0]
def drawDDA(self, points = []): if not points: points = self.__scene.getEndingPointsPos() while len(points) >= CDA.getMinPointsCount(): self.__pixelsToDraw += convert(CDA.getPixels(points)) points.pop(0) self.__drawPixels()
def start(self): self.env.act(0) obs = convert(self.env.getScreenGrayscale()) self.state = np.stack([[obs for _ in range(4)]], axis=0) self.t_alive = 0 self.total_reward = 0 return self.state
def drawBresenham(self,points = []): self.__tmp = [] if not points: points = self.__scene.getEndingPointsPos() while len(points) >= Bresenham.getMinPointsCount(): self.__tmp += Bresenham.getPixels(points) self.__pixelsToDraw += convert(Bresenham.getPixels(points)) points.pop(0) self.__drawPixels()
def drawLineFilling(self): points = self.__scene.getEndingPointsPos() vertexes = list(points) points.append(points[0]) self.drawBresenham(points) pixels = LineFilling.getPixels(vertexes, self.__tmp) self.__pixelsToDraw += convert(pixels, color=Colors.blue) self.__pixelsToDraw.reverse() self.__drawPixels()
def save(self, *args, **kwargs): if not self.pk: self.status = Status.objects.get(name='Pending') self.slug = slugify(self.name) self.size = round(self.audio_file.size/(1024*1024),2) self.filetype = self.audio_file.name.split('.')[-1] self.duration = convert(int(getattr_recursive(mutagen.File(self.audio_file), ['info', 'length']))) super(Library, self).save(*args, **kwargs)
def drawFill(self): fillPoint = None points = self.__scene.getEndingPointsPos() if len(points) > 1: fillPoint = points.pop() points.append(points[0]) self.drawBresenham(points) pixels = Fill.getPixels(fillPoint or points[0],self.__tmp) self.__pixelsToDraw += convert(pixels, color=Colors.blue) self.__pixelsToDraw.reverse() self.__drawPixels()
def move_granular(self, position): """ :param position: maximum value is 9000 :return: """ if position > EIG.MAX_GRANULAR: print( f'invalid position : {position} is more than maximum position') position = EIG.MAX_GRANULAR ret = self.end_effector.send( convert(DATA(EIG.MOVE_GRANULAR_MOTOR, position))) print(ret) return ret[0]
def step(self, action): reward = self.env.act(self.action_set[action]) # make next state obs = convert(self.env.getScreenGrayscale()) obs = np.reshape(obs, [1, 1, obs.shape[0], obs.shape[1]]) next_state = np.append(self.state[:, 1:, ...], obs, axis=1) self.t_alive += 1 self.total_reward += reward self.state = next_state return self.state, reward, self.env.game_over()
def move_syringe(self, position): """ :param position: maximum value is 13000 :return: """ if position > EIG.MAX_SYRINGE: print( f'invalid position : {position} is more than maximum position') position = EIG.MAX_SYRINGE ret = self.end_effector.send( convert(DATA(EIG.MOVE_PULLER_MOTOR, position))) print(ret) return ret[0]
def drawParabola(self): points = self.__scene.getEndingPointsPos() self.__pixelsToDraw += convert(Parabola.getPixels(points)) self.__pixelsToDraw.reverse() self.__drawPixels()
def drawCircle(self): points = self.__scene.getEndingPointsPos() self.__pixelsToDraw += convert(Circle.getPixels(points)) self.__drawPixels()