def __init__(self, config): Module.__init__(self, config) object_pose_sampler_config = config.get_raw_dict( "object_pose_sampler", {}) camera_pose_sampler_config = config.get_raw_dict( "camera_pose_sampler", {}) self._object_pose_sampler = Utility.initialize_modules( [object_pose_sampler_config])[0] self._camera_pose_sampler = Utility.initialize_modules( [camera_pose_sampler_config])[0]
def __init__(self, config): Module.__init__(self, config) self.postprocessing_modules_per_output = {} module_configs = config.get_raw_dict("postprocessing_modules", {}) for output_key in module_configs: self.postprocessing_modules_per_output[ output_key] = Utility.initialize_modules( module_configs[output_key]) self.name_to_id = {} self.destination_frame = self.config.get_list("destination_frame", ["X", "Y", "Z"]) self.write_alpha_channel = self.config.get_bool( "write_alpha_channel", False)
def run(self): # use a loader module to load objects bpy.ops.object.select_all(action='SELECT') previously_selected_objects = set(bpy.context.selected_objects) module_list_config = self.config.get_list("used_loader_config") modules = Utility.initialize_modules(module_list_config) for module in modules: print("Running module " + module.__class__.__name__) module.run() bpy.ops.object.select_all(action='SELECT') loaded_objects = list( set(bpy.context.selected_objects) - previously_selected_objects) # only select non see through materials config = { "conditions": { "cp_is_cc_texture": True, "cf_principled_bsdf_Alpha_eq": 1.0 } } material_getter = MaterialProvider(Config(config)) all_cc_materials = MaterialLoaderUtility.convert_to_materials( material_getter.run()) construct_random_room( used_floor_area=self.used_floor_area, interior_objects=convert_to_meshes(loaded_objects), materials=all_cc_materials, amount_of_extrusions=self.amount_of_extrusions, fac_from_square_room=self.fac_from_square_room, corridor_width=self.corridor_width, wall_height=self.wall_height, amount_of_floor_cuts=self.amount_of_floor_cuts, only_use_big_edges=self.only_use_big_edges, create_ceiling=self.create_ceiling, assign_material_to_ceiling=self.assign_material_to_ceiling, placement_tries_per_face=self.tries_per_face, amount_of_objects_per_sq_meter=self.amount_of_objects_per_sq_meter)
def __init__(self, config_path, args, temp_dir, avoid_output=False): """ Inits the pipeline, by calling the constructors of all modules mentioned in the config. :param config_path: path to the config :param args: arguments which were provided to the run.py and are specified in the config file :param temp_dir: the directory where to put temporary files during the execution :param avoid_output: if this is true, all modules (renderers and writers) skip producing output. With this it is possible to debug \ properly. """ config_parser = ConfigParser(silent=True) config = config_parser.parse(resolve_path(config_path), args) # Setup pip packages specified in config SetupUtility.setup_pip(config["setup"]["pip"] if "pip" in config["setup"] else []) if avoid_output: GlobalStorage.add_to_config_before_init("avoid_output", True) Utility.temp_dir = resolve_path(temp_dir) os.makedirs(Utility.temp_dir, exist_ok=True) self.modules = Utility.initialize_modules(config["modules"])