Ejemplo n.º 1
0
    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]
Ejemplo n.º 2
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)
Ejemplo n.º 4
0
    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"])