diff --git a/tools/RegressionSceneData.py b/tools/RegressionSceneData.py index ea8fc56..0c6e809 100644 --- a/tools/RegressionSceneData.py +++ b/tools/RegressionSceneData.py @@ -29,6 +29,17 @@ def default(self, obj): return obj.tolist() return JSONEncoder.default(self, obj) + +def is_mapped(node): + mapping = node.getMechanicalMapping() + + if mapping is None: + return False + else: + return True + # no mapping in this node context + + class RegressionSceneData: def __init__(self, file_scene_path: str = None, file_ref_path: str = None, steps = 1000, @@ -51,7 +62,7 @@ def __init__(self, file_scene_path: str = None, file_ref_path: str = None, steps self.file_ref_path = file_ref_path self.steps = int(steps) self.epsilon = float(epsilon) - self.meca_in_mapping = meca_in_mapping + self.meca_in_mapping = bool(meca_in_mapping) self.dump_number_step = int(dump_number_step) self.meca_objs = [] self.filenames = [] @@ -87,14 +98,18 @@ def print_meca_objs(self): def parse_node(self, node, level = 0): + # first check current node + mstate = node.getMechanicalState() + if mstate and is_simulated(node): + if self.meca_in_mapping is True or is_mapped(node) is False: + self.meca_objs.append(mstate) + if self.verbose: + print(" " * level + f"- Adding MechanicalObject: {mstate.name.value} from Node: {node.name.value}") + + # recursively check children for child in node.children: - mstate = child.getMechanicalState() - if mstate: - if is_simulated(child): - self.meca_objs.append(mstate) - self.parse_node(child, level + 1) - + def add_compare_state(self): counter = 0 diff --git a/tools/RegressionSceneList.py b/tools/RegressionSceneList.py index 14f3448..05e2bcc 100644 --- a/tools/RegressionSceneList.py +++ b/tools/RegressionSceneList.py @@ -72,8 +72,12 @@ def process_file(self): full_file_path = os.path.join(self.file_dir, values[0]) full_ref_file_path = os.path.join(self.ref_dir_path, values[0]) + meca_in_mapping = False + if values[3] == '1': # converting string to Bool always gives True + meca_in_mapping = True + scene_data = RegressionSceneData.RegressionSceneData(full_file_path, full_ref_file_path, - values[1], values[2], values[3], values[4], + values[1], values[2], meca_in_mapping, values[4], self.disable_progress_bar) #scene_data.printInfo()