Meshroom/meshroom/nodes/aliceVision/LidarMeshing.py
2024-09-12 10:54:18 +02:00

138 lines
5.1 KiB
Python

__version__ = "1.0"
from meshroom.core import desc
from meshroom.core.utils import VERBOSE_LEVEL
class LidarMeshing(desc.AVCommandLineNode):
commandLine = 'aliceVision_lidarMeshing {allParams}'
size = desc.StaticNodeSize(10)
parallelization = desc.Parallelization(blockSize=1)
commandLineRange = '--rangeStart {rangeStart} --rangeSize {rangeFullSize}'
cpu = desc.Level.INTENSIVE
ram = desc.Level.INTENSIVE
category = 'Dense Reconstruction'
documentation = '''
This node creates a dense geometric surface representation of the Lidar measurements.
'''
inputs = [
desc.File(
name="input",
label="Input JSON",
description="Input JSON file with description of inputs.",
value="",
),
desc.BoolParam(
name="useBoundingBox",
label="Custom Bounding Box",
description="Edit the meshing bounding box.\n"
"If enabled, it takes priority over the 'Estimate Space From SfM' option.\n"
"Parameters can be adjusted in advanced settings.",
value=False,
group="",
),
desc.GroupAttribute(
name="boundingBox",
label="Bounding Box Settings",
description="Translation, rotation and scale of the bounding box.",
groupDesc=[
desc.GroupAttribute(
name="bboxTranslation",
label="Translation",
description="Position in space.",
groupDesc=[
desc.FloatParam(
name="x", label="x", description="X offset.",
value=0.0,
range=(-20.0, 20.0, 0.01),
),
desc.FloatParam(
name="y", label="y", description="Y offset.",
value=0.0,
range=(-20.0, 20.0, 0.01),
),
desc.FloatParam(
name="z", label="z", description="Z offset.",
value=0.0,
range=(-20.0, 20.0, 0.01),
),
],
joinChar=",",
),
desc.GroupAttribute(
name="bboxRotation",
label="Euler Rotation",
description="Rotation in Euler degrees.",
groupDesc=[
desc.FloatParam(
name="x", label="x", description="Euler X rotation.",
value=0.0,
range=(-90.0, 90.0, 1.0),
),
desc.FloatParam(
name="y", label="y", description="Euler Y rotation.",
value=0.0,
range=(-180.0, 180.0, 1.0),
),
desc.FloatParam(
name="z", label="z", description="Euler Z rotation.",
value=0.0,
range=(-180.0, 180.0, 1.0),
),
],
joinChar=",",
),
desc.GroupAttribute(
name="bboxScale",
label="Scale",
description="Scale of the bounding box.",
groupDesc=[
desc.FloatParam(
name="x", label="x", description="X scale.",
value=1.0,
range=(0.0, 20.0, 0.01),
),
desc.FloatParam(
name="y", label="y", description="Y scale.",
value=1.0,
range=(0.0, 20.0, 0.01),
),
desc.FloatParam(
name="z", label="z", description="Z scale.",
value=1.0,
range=(0.0, 20.0, 0.01),
),
],
joinChar=",",
),
],
joinChar=",",
enabled=lambda node: node.useBoundingBox.value,
),
desc.ChoiceParam(
name="verboseLevel",
label="Verbose Level",
description="Verbosity level (fatal, error, warning, info, debug, trace).",
values=VERBOSE_LEVEL,
value="info",
exclusive=True,
),
]
outputs = [
desc.File(
name="output",
label="Sub-Meshes Directory",
description="Output directory for sub-meshes",
value=desc.Node.internalFolder,
),
desc.File(
name="outputJson",
label="Scene Description",
description="Output scene description.",
value=desc.Node.internalFolder + "scene.json",
),
]