def __init__(self, pairs, minimum_area): Connection.__init__( self, set([(environment1.id, environment2.id) for environment1, environment2 in pairs])) self.triangle1 = Triangle([pair[0] for pair in pairs], minimum_area) self.triangle2 = Triangle([pair[1] for pair in pairs], minimum_area) self.valid = self.triangle1.valid and self.triangle2.valid
def compare_environments(self, environment1, environment2): #self.output("*** COMPARING: %s %s\n" % (point1.id.name, point2.id.name)) for index1, delta1 in enumerate(environment1.deltas): for index2, delta2 in enumerate(environment2.deltas): # pairs of deltas must match within a certain accuracy AND avoiding duplicates diff_delta = delta1 - self.rotation2 * delta2 diff_distance = numpy.linalg.norm(diff_delta) if (self.hit(diff_distance) and environment1.id < environment1.neighbors[index1]): connection = Connection( set([(environment1.id, environment2.id), (environment1.neighbors[index1], environment2.neighbors[index2])])) connection.t = environment1.coordinate - self.rotation2 * environment2.coordinate + 0.5 * diff_delta self.connections.append(connection)
def start_interface(self, server): if not server in self.interfaces and not server in self.connecting: if server == self.default_server: log.info("connecting to %s as new interface", server) self.set_status('connecting') self.connecting.add(server) c = Connection(server, self.socket_queue, self.config.path)
def start_interface(self, server): if (not server in self.interfaces and not server in self.connecting): if server == self.default_server: self.print_error("connecting to %s as new interface" % server) self.set_status('connecting') self.connecting.add(server) c = Connection(server, self.socket_queue, self.config.path)
def compare_environments(self, environment1, environment2): #self.output("*** COMPARING: %s %s\n" % (point1.id.name, point2.id.name)) for index1, delta1 in enumerate(environment1.deltas): for index2, delta2 in enumerate(environment2.deltas): # pairs of deltas must match within a certain accuracy AND avoiding duplicates diff_delta = delta1 - self.rotation2*delta2 diff_distance = numpy.linalg.norm(diff_delta) if ( self.hit(diff_distance) and environment1.id < environment1.neighbors[index1] ): connection = Connection(set([ (environment1.id, environment2.id), (environment1.neighbors[index1], environment2.neighbors[index2]) ])) connection.t = environment1.coordinate - self.rotation2*environment2.coordinate + 0.5*diff_delta self.connections.append(connection)
def options(self, parts): '''what can this part connect to? returns a list''' parts = self.setify(parts) if self in parts: parts.remove(self) #unless this part is really flexible for part in parts: interfaces = set(part.interfaces) rval = set() for i in interfaces: for j in self.interfaces: if i.compatible(j) and j.compatible(i): rval.add(Connection(i, j)) return list(rval)
def __init__(self, url): Connection.__init__(self, url) self.url += '/rpc' self.proxy = Pyro.core.getProxyForURI( self.url )
def __init__(self, pairs, minimum_area): Connection.__init__(self, set([(environment1.id, environment2.id) for environment1, environment2 in pairs])) self.triangle1 = Triangle([pair[0] for pair in pairs], minimum_area) self.triangle2 = Triangle([pair[1] for pair in pairs], minimum_area) self.valid = self.triangle1.valid and self.triangle2.valid