def import_region(self, region_id, action="import"): """ Import the given region into blender. """ self.init_structures() con = SimConnection() con.connect(self.gridinfo._url) scenedata = con._con.ogrescene_list({"RegionID":region_id}) for groupid, scenegroup in scenedata['res'].iteritems(): getattr(self, action+"_group")(groupid, scenegroup, 10) Blender.Window.Redraw(Blender.Window.Types['VIEW3D'])
def sync_region(self, region_id): """ Sync the given region. Downloads information for the given objects from opensim. """ self.init_structures() con = SimConnection() con.connect(self.gridinfo._url) scenedata = con._con.ogrescene_list({"RegionID":region_id})["res"] objects = Blender.Object.GetSelected() if not objects: objects = Blender.Object.Get() for obj in objects: obj_uuid = str(self.get_uuid(obj)) if obj_uuid: if obj_uuid in scenedata: self.import_group(obj_uuid, scenedata[obj_uuid], 10)
def check_region(self, region_id, action="check"): """ Run a check on the region, Checks correspondence of objects between Blender and OpenSim and returns a formatted result as an array. """ self.init_structures() con = SimConnection() con.connect(self.gridinfo._url) scenedata = con._con.ogrescene_list({"RegionID":region_id}) total = 0 total_yes = 0 for groupid, scenegroup in scenedata['res'].iteritems(): if getattr(self, action+"_group")(groupid, scenegroup): total_yes += 1 total += 1 report = [] report.append("--. \n") report.append("total objects %s. \n"%(total,)) for key in self._found.keys(): report.append("total "+key+" %s. \n"%(self._total_server[key],)) report.append(key+" in blend %s\n"%(self._found[key],)) return report