diff --git a/meshroom/nodes/aliceVision/MergeMeshes.py b/meshroom/nodes/aliceVision/MergeMeshes.py new file mode 100644 index 00000000..483d92c6 --- /dev/null +++ b/meshroom/nodes/aliceVision/MergeMeshes.py @@ -0,0 +1,67 @@ +__version__ = "1.0" + +from meshroom.core import desc + + +class MergeMeshes(desc.CommandLineNode): + commandLine = 'aliceVision_utils_mergeMeshes {allParams}' + documentation = '''This node allows to merge two meshes in one.''' + + inputs = [ + desc.File( + name='inputFirstMesh', + label='Input First Mesh', + description='Input First Mesh (*.obj, *.mesh, *.meshb, *.ply, *.off, *.stl).', + value='', + uid=[0], + ), + desc.File( + name='inputSecondMesh', + label='Input Second Mesh', + description='Input Second Mesh (*.obj, *.mesh, *.meshb, *.ply, *.off, *.stl).', + value='', + uid=[0], + ), + desc.ChoiceParam( + name='mergeOperation', + label='Merge Operation', + description='''Operation types used to merge two meshes.''', + value='boolean_union', + values=['boolean_union', 'boolean_intersection', 'boolean_difference'], + exclusive=True, + uid=[0], + ), + desc.BoolParam( + name='preProcess', + label='Pre-Process', + description='''Pre-process input meshes in order to avoid geometric errors in the merging process''', + value=True, + uid=[0], + ), + desc.BoolParam( + name='postProcess', + label='Post-Process', + description='''Post-process output mesh in order to avoid future geometric errors.''', + value=True, + uid=[0], + ), + desc.ChoiceParam( + name='verboseLevel', + label='Verbose Level', + description='''verbosity level (fatal, error, warning, info, debug, trace).''', + value='info', + values=['fatal', 'error', 'warning', 'info', 'debug', 'trace'], + exclusive=True, + uid=[], + ), + ] + + outputs = [ + desc.File( + name='output', + label='Output mesh', + description='''Output mesh (*.obj, *.mesh, *.meshb, *.ply, *.off, *.stl).''', + value=desc.Node.internalFolder + 'mesh.stl', + uid=[], + ), + ]