in data/question-gen/engine.py [0:0]
def distance(self, *args):
ent = self.ent_queue
if ent['type'] == 'objects':
h_low_threshold, h_high_threshold = 0.2, 2.0
pairwise_distances = self.house.getAllPairwiseDistances(
ent['elements'])
# self.ent_queue['elements'] = []
updated_ent_queue = {'type': ent['type'], 'elements': []}
for i in ent['elements']:
sub_list = [
x for x in pairwise_distances
if x[0].meta['id'] == i.meta['id']
or x[1].meta['id'] == i.meta['id']
]
sub_list = [
x for x in sub_list if x[0].rooms[0].name == x[1].rooms[0].name
]
far = [x for x in sub_list if x[2] >= h_high_threshold]
close = [x for x in sub_list if x[2] <= h_low_threshold]
if len(far) == 0 or len(close) == 0:
continue
for j in far:
far_ent = 1 if j[0].name == i.name else 0
for k in close:
close_ent = 1 if k[0].name == i.name else 0
updated_ent_queue['elements'].append(
[k[close_ent], i, j[far_ent], 'closer'])
updated_ent_queue['elements'].append(
[j[far_ent], i, k[close_ent], 'farther'])
self.ent_queue = updated_ent_queue
return self.ent_queue