Exemple #1
0
import json
import numpy as np


controller = Controller(scene='FloorPlan28', gridSize=0.25, renderObjectImage=True)

event = controller.step(
    'AddThirdPartyCamera',
    rotation=dict(x=45, y=90, z=0),
    position=dict(x=-4, y=1.5, z=-1.5),
    fieldOfView=90
)

center = event.metadata["sceneBounds"]["center"]

controller.interact()

print(center)

bounds = np.array(event.metadata["sceneBounds"]["cornerPoints"])

print(bounds)

x_min = np.amin(bounds[:, 0])
x_max = np.amax(bounds[:, 0])
y_min = np.amin(bounds[:, 1])
y_max = np.amax(bounds[:, 1])
z_min = np.amin(bounds[:, 2])
z_max = np.amax(bounds[:, 2])

y = y_min + 0.9 * y_max - y_min
        for r in sort_index:
            dummy_pos.append(valid_pos[r])
        valid_pos = dummy_pos
#        valid_pos =sorted(valid_pos,key=distarr.get) 

    else:
        random.shuffle(valid_pos)

    nos = len(valid_pos)
    flag=0
    for i in range(len(valid_pos)):
        pos = valid_pos[nos-i-1]
    #print('pos',pos)
        eve = co.step(action = 'PlaceObjectAtPoint', objectId=objid, position=pos, forceAction=True)
        met = eve.metadata['objects']
        for j in range(len(met)):
            if met[j]['objectId'] == parentrec:
                set = met[j]['receptacleObjectIds']
                if set == None:
                    break
                else:
                    for k in set:
                        if k==objid:
                            print('Placed object :',objid) 
                            flag=1
            if flag==1:
                break
        if flag==1:
            break
co.interact()