[nodes] Replace desc.Node.internalFolder with {nodeCacheFolder}

This commit is contained in:
Candice Bentéjac 2025-01-08 18:59:49 +01:00
parent 6cbb97d9a8
commit 2290c12da2
88 changed files with 160 additions and 160 deletions

View file

@ -44,6 +44,6 @@ class ApplyCalibration(desc.AVCommandLineNode):
name="output", name="output",
label="SMData", label="SMData",
description="Path to the output SfMData file.", description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "sfmData.sfm", value="{nodeCacheFolder}/sfmData.sfm",
), ),
] ]

View file

@ -124,6 +124,6 @@ class CameraCalibration(desc.AVCommandLineNode):
name="output", name="output",
label="Output", label="Output",
description="Output filename for intrinsic [and extrinsic] parameters.", description="Output filename for intrinsic [and extrinsic] parameters.",
value=desc.Node.internalFolder + "/cameraCalibration.cal", value="{nodeCacheFolder}/cameraCalibration.cal",
), ),
] ]

View file

@ -487,7 +487,7 @@ The needed metadata are:
name="output", name="output",
label="SfMData", label="SfMData",
description="Output SfMData.", description="Output SfMData.",
value=desc.Node.internalFolder + "cameraInit.sfm", value="{nodeCacheFolder}/cameraInit.sfm",
), ),
] ]

View file

@ -191,12 +191,12 @@ class CameraLocalization(desc.AVCommandLineNode):
name="outputAlembic", name="outputAlembic",
label="Alembic", label="Alembic",
description="Filename for the SfMData export file (where camera poses will be stored).", description="Filename for the SfMData export file (where camera poses will be stored).",
value=desc.Node.internalFolder + "trackedCameras.abc", value="{nodeCacheFolder}/trackedCameras.abc",
), ),
desc.File( desc.File(
name="outputJSON", name="outputJSON",
label="JSON File", label="JSON File",
description="Filename for the localization results as .json.", description="Filename for the localization results as .json.",
value=desc.Node.internalFolder + "trackedCameras.json", value="{nodeCacheFolder}/trackedCameras.json",
), ),
] ]

View file

@ -156,6 +156,6 @@ class CameraRigCalibration(desc.AVCommandLineNode):
name="outfile", name="outfile",
label="Output File", label="Output File",
description="The name of the file to store the calibration data in.", description="The name of the file to store the calibration data in.",
value=desc.Node.internalFolder + "cameraRigCalibration.rigCal", value="{nodeCacheFolder}/cameraRigCalibration.rigCal",
), ),
] ]

View file

@ -162,6 +162,6 @@ class CameraRigLocalization(desc.AVCommandLineNode):
name="outputAlembic", name="outputAlembic",
label="Alembic", label="Alembic",
description="Filename for the SfMData export file (where camera poses will be stored).", description="Filename for the SfMData export file (where camera poses will be stored).",
value=desc.Node.internalFolder + "trackedcameras.abc", value="{nodeCacheFolder}/trackedcameras.abc",
), ),
] ]

View file

@ -47,6 +47,6 @@ Estimate the camera intrinsics and extrinsincs on a set of checkerboard images.
name="output", name="output",
label="SfMData File", label="SfMData File",
description="Path to the output SfMData file.", description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "sfmData.sfm", value="{nodeCacheFolder}/sfmData.sfm",
) )
] ]

View file

@ -61,7 +61,7 @@ The detection method also supports nested calibration grids.
name="output", name="output",
label="Folder", label="Folder",
description="Output folder.", description="Output folder.",
value=desc.Node.internalFolder, value="{nodeCacheFolder}",
), ),
desc.File( desc.File(
name="checkerLines", name="checkerLines",
@ -69,7 +69,7 @@ The detection method also supports nested calibration grids.
label="Checker Lines", label="Checker Lines",
description="Debug images.", description="Debug images.",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "<VIEW_ID>.png", value="{nodeCacheFolder}/<VIEW_ID>.png",
group="", # do not export on the command line group="", # do not export on the command line
), ),
] ]

View file

@ -69,13 +69,13 @@ If multiple color charts are submitted, only the first one will be taken in acco
name="outSfMData", name="outSfMData",
label="SfMData", label="SfMData",
description="Output SfMData.", description="Output SfMData.",
value=lambda attr: (desc.Node.internalFolder + os.path.basename(attr.node.input.value)) if (os.path.splitext(attr.node.input.value)[1] in [".abc", ".sfm"]) else "", value=lambda attr: ("{nodeCacheFolder}/" + os.path.basename(attr.node.input.value)) if (os.path.splitext(attr.node.input.value)[1] in [".abc", ".sfm"]) else "",
group="", # do not export on the command line group="", # do not export on the command line
), ),
desc.File( desc.File(
name="output", name="output",
label="Folder", label="Folder",
description="Output images folder.", description="Output images folder.",
value=desc.Node.internalFolder, value="{nodeCacheFolder}",
), ),
] ]

View file

@ -62,6 +62,6 @@ Dev notes:
name="outputData", name="outputData",
label="Color Checker Data", label="Color Checker Data",
description="Output position and colorimetric data extracted from detected color checkers in the images.", description="Output position and colorimetric data extracted from detected color checkers in the images.",
value=desc.Node.internalFolder + "/ccheckers.json", value="{nodeCacheFolder}/ccheckers.json",
), ),
] ]

View file

@ -48,6 +48,6 @@ class ConvertDistortion(desc.AVCommandLineNode):
name="output", name="output",
label="Output", label="Output",
description="Path to the output SfMData file.", description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "sfm.abc", value="{nodeCacheFolder}/sfm.abc",
), ),
] ]

View file

@ -39,6 +39,6 @@ class ConvertMesh(desc.AVCommandLineNode):
name="output", name="output",
label="Mesh", label="Mesh",
description="Output mesh (*.obj, *.mesh, *.meshb, *.ply, *.off, *.stl).", description="Output mesh (*.obj, *.mesh, *.meshb, *.ply, *.off, *.stl).",
value=desc.Node.internalFolder + "mesh." + "{outputMeshFileTypeValue}", value="{nodeCacheFolder}/mesh.{outputMeshFileTypeValue}",
), ),
] ]

View file

@ -94,6 +94,6 @@ It can also be used to remove specific parts of from an SfM scene (like filter a
name="output", name="output",
label="Output", label="Output",
description="Path to the output SfMData file.", description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "sfm.{fileExtValue}", value="{nodeCacheFolder}/sfm.{fileExtValue}",
), ),
] ]

View file

@ -565,7 +565,7 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
name="output", name="output",
label="Folder", label="Folder",
description="Output folder for generated depth maps.", description="Output folder for generated depth maps.",
value=desc.Node.internalFolder, value="{nodeCacheFolder}",
), ),
# these attributes are only here to describe more accurately the output of the node # these attributes are only here to describe more accurately the output of the node
# by specifying that it generates 2 sequences of images # by specifying that it generates 2 sequences of images
@ -575,7 +575,7 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
label="Depth Maps", label="Depth Maps",
description="Generated depth maps.", description="Generated depth maps.",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "<VIEW_ID>_depthMap.exr", value="{nodeCacheFolder}/<VIEW_ID>_depthMap.exr",
group="", # do not export on the command line group="", # do not export on the command line
), ),
desc.File( desc.File(
@ -583,14 +583,14 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
label="Sim Maps", label="Sim Maps",
description="Generated sim maps.", description="Generated sim maps.",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "<VIEW_ID>_simMap.exr", value="{nodeCacheFolder}/<VIEW_ID>_simMap.exr",
group="", # do not export on the command line group="", # do not export on the command line
), ),
desc.File( desc.File(
name="tilePattern", name="tilePattern",
label="Tile Pattern", label="Tile Pattern",
description="Debug: Tile pattern.", description="Debug: Tile pattern.",
value=desc.Node.internalFolder + "<VIEW_ID>_tilePattern.obj", value="{nodeCacheFolder}/<VIEW_ID>_tilePattern.obj",
group="", # do not export on the command line group="", # do not export on the command line
enabled=lambda node: node.intermediateResults.exportTilePattern.value, enabled=lambda node: node.intermediateResults.exportTilePattern.value,
), ),
@ -599,7 +599,7 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
label="Depth Maps SGM", label="Depth Maps SGM",
description="Debug: Depth maps SGM", description="Debug: Depth maps SGM",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "<VIEW_ID>_depthMap_sgm.exr", value="{nodeCacheFolder}/<VIEW_ID>_depthMap_sgm.exr",
group="", # do not export on the command line group="", # do not export on the command line
enabled=lambda node: node.intermediateResults.exportIntermediateDepthSimMaps.value, enabled=lambda node: node.intermediateResults.exportIntermediateDepthSimMaps.value,
), ),
@ -608,7 +608,7 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
label="Depth Maps SGM Upscaled", label="Depth Maps SGM Upscaled",
description="Debug: Depth maps SGM upscaled.", description="Debug: Depth maps SGM upscaled.",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "<VIEW_ID>_depthMap_sgmUpscaled.exr", value="{nodeCacheFolder}/<VIEW_ID>_depthMap_sgmUpscaled.exr",
group="", # do not export on the command line group="", # do not export on the command line
enabled=lambda node: node.intermediateResults.exportIntermediateDepthSimMaps.value, enabled=lambda node: node.intermediateResults.exportIntermediateDepthSimMaps.value,
), ),
@ -617,7 +617,7 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
label="Depth Maps Refined", label="Depth Maps Refined",
description="Debug: Depth maps after refinement", description="Debug: Depth maps after refinement",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "<VIEW_ID>_depthMap_refinedFused.exr", value="{nodeCacheFolder}/<VIEW_ID>_depthMap_refinedFused.exr",
group="", # do not export on the command line group="", # do not export on the command line
enabled=lambda node: node.intermediateResults.exportIntermediateDepthSimMaps.value, enabled=lambda node: node.intermediateResults.exportIntermediateDepthSimMaps.value,
), ),

View file

@ -113,7 +113,7 @@ This allows to filter unstable points before starting the fusion of all depth ma
name="output", name="output",
label="Filtered Depth Maps Folder", label="Filtered Depth Maps Folder",
description="Output folder for generated depth maps.", description="Output folder for generated depth maps.",
value=desc.Node.internalFolder, value="{nodeCacheFolder}"
), ),
# these attributes are only here to describe more accurately the output of the node # these attributes are only here to describe more accurately the output of the node
# by specifying that it generates 2 sequences of images # by specifying that it generates 2 sequences of images
@ -123,7 +123,7 @@ This allows to filter unstable points before starting the fusion of all depth ma
label="Depth Maps", label="Depth Maps",
description="Filtered depth maps.", description="Filtered depth maps.",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "<VIEW_ID>_depthMap.exr", value="{nodeCacheFolder}/<VIEW_ID>_depthMap.exr",
group="", # do not export on the command line group="", # do not export on the command line
), ),
desc.File( desc.File(
@ -131,7 +131,7 @@ This allows to filter unstable points before starting the fusion of all depth ma
label="Sim Maps", label="Sim Maps",
description="Filtered sim maps.", description="Filtered sim maps.",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "<VIEW_ID>_simMap.exr", value="{nodeCacheFolder}/<VIEW_ID>_simMap.exr",
group="", # do not export on the command line group="", # do not export on the command line
), ),
desc.File( desc.File(
@ -139,7 +139,7 @@ This allows to filter unstable points before starting the fusion of all depth ma
label="Normal Maps", label="Normal Maps",
description="Normal maps.", description="Normal maps.",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "<VIEW_ID>_normalMap.exr", value="{nodeCacheFolder}/<VIEW_ID>_normalMap.exr",
enabled=lambda node: node.computeNormalMaps.value, enabled=lambda node: node.computeNormalMaps.value,
group="", # do not export on the command line group="", # do not export on the command line
), ),

View file

@ -39,14 +39,14 @@ class DepthMapRendering(desc.AVCommandLineNode):
name="output", name="output",
label="Folder", label="Folder",
description="Output folder.", description="Output folder.",
value=desc.Node.internalFolder, value="{nodeCacheFolder}",
), ),
desc.File( desc.File(
name="depth", name="depth",
label="Depth Maps", label="Depth Maps",
description="Rendered depth maps.", description="Rendered depth maps.",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "<VIEW_ID>_depthMap.exr", value="{nodeCacheFolder}/<VIEW_ID>_depthMap.exr",
group="", # do not export on the command line group="", # do not export on the command line
), ),
desc.File( desc.File(
@ -54,7 +54,7 @@ class DepthMapRendering(desc.AVCommandLineNode):
label="Masks", label="Masks",
description="Masks.", description="Masks.",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "<VIEW_ID>_mask.exr", value="{nodeCacheFolder}/<VIEW_ID>_mask.exr",
group="", # do not export on the command line group="", # do not export on the command line
), ),
] ]

View file

@ -59,6 +59,6 @@ Calibration of a camera/lens couple distortion using a full screen checkerboard.
name="output", name="output",
label="SfMData File", label="SfMData File",
description="Path to the output SfMData file.", description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "sfmData.sfm", value="{nodeCacheFolder}/sfmData.sfm",
), ),
] ]

View file

@ -83,27 +83,27 @@ Based on the input image filenames, it will recognize the input video sequence t
name="output", name="output",
label="Folder", label="Folder",
description="Output folder with animated camera and undistorted images.", description="Output folder with animated camera and undistorted images.",
value=desc.Node.internalFolder, value="{nodeCacheFolder}",
), ),
desc.File( desc.File(
name="outputCamera", name="outputCamera",
label="Camera", label="Camera",
description="Output filename for the animated camera in Alembic format.", description="Output filename for the animated camera in Alembic format.",
value=desc.Node.internalFolder + "camera.abc", value="{nodeCacheFolder}/camera.abc",
group="", # exclude from command line group="", # exclude from command line
), ),
desc.File( desc.File(
name="outputUndistorted", name="outputUndistorted",
label="Undistorted Folder", label="Undistorted Folder",
description="Output undistorted folder.", description="Output undistorted folder.",
value=desc.Node.internalFolder + "undistort/", value="{nodeCacheFolder}/undistort/",
group="", # exclude from command line group="", # exclude from command line
), ),
desc.File( desc.File(
name="outputImages", name="outputImages",
label="Undistorted Images", label="Undistorted Images",
description="Output undistorted images.", description="Output undistorted images.",
value=desc.Node.internalFolder + "undistort/" + "<INTRINSIC_ID>_<FILESTEM>.{undistortedImageTypeValue}", value="{nodeCacheFolder}/undistort/<INTRINSIC_ID>_<FILESTEM>.{undistortedImageTypeValue}",
semantic="image", semantic="image",
group="", # exclude from command line group="", # exclude from command line
enabled=lambda node: node.exportUndistortedImages.value, enabled=lambda node: node.exportUndistortedImages.value,

View file

@ -32,6 +32,6 @@ class ExportColoredPointCloud(desc.AVCommandLineNode):
name="output", name="output",
label="Point Cloud Filepath", label="Point Cloud Filepath",
description="Output point cloud with visibilities as SfMData file.", description="Output point cloud with visibilities as SfMData file.",
value=desc.Node.internalFolder + "pointCloud.abc", value="{nodeCacheFolder}/pointCloud.abc",
), ),
] ]

View file

@ -59,13 +59,13 @@ It also allows to export an undistorted image of the lens grids for validation.
name="output", name="output",
label="Folder", label="Folder",
description="Output folder.", description="Output folder.",
value=desc.Node.internalFolder, value="{nodeCacheFolder}",
), ),
desc.File( desc.File(
name="distortionNukeNode", name="distortionNukeNode",
label="Distortion Nuke Node", label="Distortion Nuke Node",
description="Calibrated distortion ST map.", description="Calibrated distortion ST map.",
value=desc.Node.internalFolder + "nukeLensDistortion_<INTRINSIC_ID>.nk", value="{nodeCacheFolder}/nukeLensDistortion_<INTRINSIC_ID>.nk",
group="", # do not export on the command line group="", # do not export on the command line
enabled=lambda node: node.exportNukeNode.value, enabled=lambda node: node.exportNukeNode.value,
), ),
@ -74,7 +74,7 @@ It also allows to export an undistorted image of the lens grids for validation.
label="Undistorted Lens Grids", label="Undistorted Lens Grids",
description="Undistorted lens grids for validation", description="Undistorted lens grids for validation",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "lensgrid_<VIEW_ID>_undistort.exr", value="{nodeCacheFolder}/lensgrid_<VIEW_ID>_undistort.exr",
group="", # do not export on the command line group="", # do not export on the command line
enabled=lambda node: node.exportLensGridsUndistorted.value, enabled=lambda node: node.exportLensGridsUndistorted.value,
), ),
@ -83,7 +83,7 @@ It also allows to export an undistorted image of the lens grids for validation.
label="Distortion ST Map", label="Distortion ST Map",
description="Calibrated distortion ST map.", description="Calibrated distortion ST map.",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "stmap_<INTRINSIC_ID>_distort.exr", value="{nodeCacheFolder}/stmap_<INTRINSIC_ID>_distort.exr",
group="", # do not export on the command line group="", # do not export on the command line
enabled=lambda node: node.exportSTMaps.value, enabled=lambda node: node.exportSTMaps.value,
), ),
@ -92,7 +92,7 @@ It also allows to export an undistorted image of the lens grids for validation.
label="Undistortion ST Map", label="Undistortion ST Map",
description="Calibrated undistortion ST map.", description="Calibrated undistortion ST map.",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "stmap_<INTRINSIC_ID>_undistort.exr", value="{nodeCacheFolder}/stmap_<INTRINSIC_ID>_undistort.exr",
group="", # do not export on the command line group="", # do not export on the command line
enabled=lambda node: node.exportSTMaps.value, enabled=lambda node: node.exportSTMaps.value,
), ),

View file

@ -76,6 +76,6 @@ class ExportMatches(desc.AVCommandLineNode):
name="output", name="output",
label="Folder", label="Folder",
description="Output path for the features and descriptors files (*.feat, *.desc).", description="Output path for the features and descriptors files (*.feat, *.desc).",
value=desc.Node.internalFolder, value="{nodeCacheFolder}",
), ),
] ]

View file

@ -56,13 +56,13 @@ class ExportMaya(desc.Node):
name="meloutput", name="meloutput",
label="Mel Script", label="Mel Script",
description="Generated mel script.", description="Generated mel script.",
value=desc.Node.internalFolder + "import.mel", value="{nodeCacheFolder}/import.mel",
), ),
desc.File( desc.File(
name="mayaoutput", name="mayaoutput",
label="Maya Scene", label="Maya Scene",
description="Generated Maya scene.", description="Generated Maya scene.",
value=desc.Node.internalFolder + "scene.mb", value="{nodeCacheFolder}/scene.mb",
enabled=lambda node: node.generateMaya.value, enabled=lambda node: node.generateMaya.value,
), ),
] ]

View file

@ -41,6 +41,6 @@ class ExportUSD(desc.AVCommandLineNode):
name="output", name="output",
label="Output", label="Output",
description="Path to the output file.", description="Path to the output file.",
value=desc.Node.internalFolder + "output.{fileTypeValue}", value="{nodeCacheFolder}/output.{fileTypeValue}",
), ),
] ]

View file

@ -68,7 +68,7 @@ Using exifTool, this node extracts metadata of all images referenced in a sfmDat
name="output", name="output",
label="Result Folder", label="Result Folder",
description="Output path for the resulting metadata files.", description="Output path for the resulting metadata files.",
value=desc.Node.internalFolder, value="{nodeCacheFolder}",
), ),
] ]

View file

@ -160,6 +160,6 @@ It is robust to motion-blur, depth-of-field, occlusion. Be careful to have enoug
name="output", name="output",
label="Features Folder", label="Features Folder",
description="Output path for the features and descriptors files (*.feat, *.desc).", description="Output path for the features and descriptors files (*.feat, *.desc).",
value=desc.Node.internalFolder, value="{nodeCacheFolder}",
), ),
] ]

View file

@ -205,6 +205,6 @@ then it checks the number of features that validates this model and iterate thro
name="output", name="output",
label="Matches Folder", label="Matches Folder",
description="Path to a folder in which the computed matches are stored.", description="Path to a folder in which the computed matches are stored.",
value=desc.Node.internalFolder, value="{nodeCacheFolder}",
), ),
] ]

View file

@ -115,6 +115,6 @@ Compare feature/descriptor matching repeatability on some dataset with known hom
name="output", name="output",
label="Folder", label="Folder",
description="Output path for the features and descriptors files (*.feat, *.desc).", description="Output path for the features and descriptors files (*.feat, *.desc).",
value=desc.Node.internalFolder, value="{nodeCacheFolder}",
), ),
] ]

View file

@ -61,6 +61,6 @@ Estimate the global rotation given tracks.
name="output", name="output",
label="SfMData", label="SfMData",
description="Path to the output SfMData file.", description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "sfm.abc", value="{nodeCacheFolder}/sfm.abc",
), ),
] ]

View file

@ -94,18 +94,18 @@ It is known to be faster but less robust to challenging datasets than the Increm
name="output", name="output",
label="SfMData", label="SfMData",
description="Path to the output SfMData file.", description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "sfm.abc", value="{nodeCacheFolder}/sfm.abc",
), ),
desc.File( desc.File(
name="outputViewsAndPoses", name="outputViewsAndPoses",
label="Output Poses", label="Output Poses",
description="Path to the output SfMData file with cameras (views and poses).", description="Path to the output SfMData file with cameras (views and poses).",
value=desc.Node.internalFolder + "cameras.sfm", value="{nodeCacheFolder}/cameras.sfm",
), ),
desc.File( desc.File(
name="extraInfoFolder", name="extraInfoFolder",
label="Folder", label="Folder",
description="Folder for intermediate reconstruction files and additional reconstruction information files.", description="Folder for intermediate reconstruction files and additional reconstruction information files.",
value=desc.Node.internalFolder, value="{nodeCacheFolder}",
), ),
] ]

View file

@ -131,6 +131,6 @@ class ImageMasking(desc.AVCommandLineNode):
name="output", name="output",
label="Output", label="Output",
description="Output folder.", description="Output folder.",
value=desc.Node.internalFolder, value="{nodeCacheFolder}",
), ),
] ]

View file

@ -135,6 +135,6 @@ If images have known poses, use frustum intersection else use VocabularuTree.
name="output", name="output",
label="Image Pairs", label="Image Pairs",
description="Filepath to the output file with the list of selected image pairs.", description="Filepath to the output file with the list of selected image pairs.",
value=desc.Node.internalFolder + "imageMatches.txt", value="{nodeCacheFolder}/imageMatches.txt",
), ),
] ]

View file

@ -141,12 +141,12 @@ Thanks to this node, the FeatureMatching node will only compute the matches betw
name="output", name="output",
label="List File", label="List File",
description="Filepath to the output file with the list of selected image pairs.", description="Filepath to the output file with the list of selected image pairs.",
value=desc.Node.internalFolder + "imageMatches.txt", value="{nodeCacheFolder}/imageMatches.txt",
), ),
desc.File( desc.File(
name="outputCombinedSfM", name="outputCombinedSfM",
label="Combined SfM", label="Combined SfM",
description="Path for the combined SfMData file.", description="Path for the combined SfMData file.",
value=desc.Node.internalFolder + "combineSfM.sfm", value="{nodeCacheFolder}/combineSfM.sfm",
), ),
] ]

View file

@ -15,20 +15,20 @@ def outputImagesValueFunct(attr):
if inputExt in ['.abc', '.sfm']: if inputExt in ['.abc', '.sfm']:
fileStem = '<FILESTEM>' if attr.node.keepImageFilename.value else '<VIEW_ID>' fileStem = '<FILESTEM>' if attr.node.keepImageFilename.value else '<VIEW_ID>'
# If we have an SfM in input # If we have an SfM in input
return desc.Node.internalFolder + fileStem + (outputExt or '.*') return "{nodeCacheFolder}/" + fileStem + (outputExt or '.*')
if inputExt: if inputExt:
# If we have one or multiple files in input # If we have one or multiple files in input
return desc.Node.internalFolder + fileStem + (outputExt or inputExt) return "{nodeCacheFolder}/" + fileStem + (outputExt or inputExt)
if '*' in fileStem: if '*' in fileStem:
# The fileStem of the input param is a regular expression, # The fileStem of the input param is a regular expression,
# so even if there is no file extension, # so even if there is no file extension,
# we consider that the expression represents files. # we consider that the expression represents files.
return desc.Node.internalFolder + fileStem + (outputExt or '.*') return "{nodeCacheFolder}/" + fileStem + (outputExt or '.*')
# No extension and no expression means that the input param is a folder path # No extension and no expression means that the input param is a folder path
return desc.Node.internalFolder + '*' + (outputExt or '.*') return "{nodeCacheFolder}/" + '*' + (outputExt or '.*')
class ImageProcessing(desc.AVCommandLineNode): class ImageProcessing(desc.AVCommandLineNode):
@ -608,14 +608,14 @@ Convert or apply filtering to the input images.
name="outSfMData", name="outSfMData",
label="SfMData", label="SfMData",
description="Output SfMData file.", description="Output SfMData file.",
value=lambda attr: (desc.Node.internalFolder + os.path.basename(attr.node.input.value)) if (os.path.splitext(attr.node.input.value)[1] in [".abc", ".sfm"]) else "", value=lambda attr: ("{nodeCacheFolder}/" + os.path.basename(attr.node.input.value)) if (os.path.splitext(attr.node.input.value)[1] in [".abc", ".sfm"]) else "",
group="", # do not export on the command line group="", # do not export on the command line
), ),
desc.File( desc.File(
name="output", name="output",
label="Folder", label="Folder",
description="Output images folder.", description="Output images folder.",
value=desc.Node.internalFolder, value="{nodeCacheFolder}",
), ),
desc.File( desc.File(
name="outputImages", name="outputImages",

View file

@ -81,14 +81,14 @@ Generate a mask with segmented labels for each pixel.
name="output", name="output",
label="Masks Folder", label="Masks Folder",
description="Output path for the masks.", description="Output path for the masks.",
value=desc.Node.internalFolder, value="{nodeCacheFolder}",
), ),
desc.File( desc.File(
name="masks", name="masks",
label="Masks", label="Masks",
description="Generated segmentation masks.", description="Generated segmentation masks.",
semantic="image", semantic="image",
value=lambda attr: desc.Node.internalFolder + "<VIEW_ID>.exr" if not attr.node.keepFilename.value else desc.Node.internalFolder + "<FILESTEM>.exr", value=lambda attr: "{nodeCacheFolder}/<VIEW_ID>.exr" if not attr.node.keepFilename.value else "{nodeCacheFolder}/<FILESTEM>.exr",
group="", group="",
), ),
] ]

View file

@ -60,6 +60,6 @@ Import an E57 file and generate an SfMData.
name="output", name="output",
label="Output", label="Output",
description="Path to the output JSON file.", description="Path to the output JSON file.",
value=desc.Node.internalFolder + "inputset.json", value="{nodeCacheFolder}/inputset.json",
), ),
] ]

View file

@ -39,6 +39,6 @@ class ImportKnownPoses(desc.AVCommandLineNode):
name="output", name="output",
label="Output", label="Output",
description="Path to the output SfMData file.", description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "/sfmData.abc", value="{nodeCacheFolder}/sfmData.abc",
), ),
] ]

View file

@ -390,20 +390,20 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
name="outputFolder", name="outputFolder",
label="Folder", label="Folder",
description="Output keyframes folder for extracted frames.", description="Output keyframes folder for extracted frames.",
value=desc.Node.internalFolder, value="{nodeCacheFolder}",
), ),
desc.File( desc.File(
name="outputSfMDataKeyframes", name="outputSfMDataKeyframes",
label="Keyframes SfMData", label="Keyframes SfMData",
description="Output SfMData file containing all the selected keyframes.", description="Output SfMData file containing all the selected keyframes.",
value=desc.Node.internalFolder + "keyframes.sfm", value="{nodeCacheFolder}/keyframes.sfm",
), ),
desc.File( desc.File(
name="outputSfMDataFrames", name="outputSfMDataFrames",
label="Frames SfMData", label="Frames SfMData",
description="Output SfMData file containing all the frames that were not selected as keyframes.\n" description="Output SfMData file containing all the frames that were not selected as keyframes.\n"
"If the input contains videos, this file will not be written since all the frames that were not selected do not actually exist on disk.", "If the input contains videos, this file will not be written since all the frames that were not selected do not actually exist on disk.",
value=desc.Node.internalFolder + "frames.sfm", value="{nodeCacheFolder}/frames.sfm",
), ),
] ]

View file

@ -46,7 +46,7 @@ Calibrate LDR to HDR response curve from samples.
name="samples", name="samples",
label="Samples Folder", label="Samples Folder",
description="Samples folder.", description="Samples folder.",
value=desc.Node.internalFolder, value="{nodeCacheFolder}",
), ),
desc.IntParam( desc.IntParam(
name="userNbBrackets", name="userNbBrackets",
@ -151,7 +151,7 @@ Calibrate LDR to HDR response curve from samples.
name="response", name="response",
label="Response File", label="Response File",
description="Path to the output response file.", description="Path to the output response file.",
value=desc.Node.internalFolder + "response_<INTRINSIC_ID>.csv", value="{nodeCacheFolder}/response_<INTRINSIC_ID>.csv",
), ),
] ]

View file

@ -228,14 +228,14 @@ Merge LDR images into HDR images.
name="outputFolder", name="outputFolder",
label="Folder", label="Folder",
description="Path to the folder containing the merged HDR images.", description="Path to the folder containing the merged HDR images.",
value=desc.Node.internalFolder, value="{nodeCacheFolder}",
group="", # do not export on the command line group="", # do not export on the command line
), ),
desc.File( desc.File(
name="outSfMData", name="outSfMData",
label="SfMData", label="SfMData",
description="Path to the output SfMData file.", description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "sfmData.sfm", value="{nodeCacheFolder}/sfmData.sfm",
), ),
] ]

View file

@ -176,7 +176,7 @@ Sample pixels from Low range images for HDR creation.
name="output", name="output",
label="Folder", label="Folder",
description="Output path for the samples.", description="Output path for the samples.",
value=desc.Node.internalFolder, value="{nodeCacheFolder}",
), ),
] ]

View file

@ -46,12 +46,12 @@ class LidarDecimating(desc.AVCommandLineNode):
name="output", name="output",
label="Sub-Meshes Directory", label="Sub-Meshes Directory",
description="Output directory for sub-meshes.", description="Output directory for sub-meshes.",
value=desc.Node.internalFolder, value="{nodeCacheFolder}",
), ),
desc.File( desc.File(
name="outputJson", name="outputJson",
label="Scene Description", label="Scene Description",
description="Output scene description.", description="Output scene description.",
value=desc.Node.internalFolder + "scene.json", value="{nodeCacheFolder}/scene.json",
), ),
] ]

View file

@ -35,6 +35,6 @@ class LidarMerging(desc.AVCommandLineNode):
name="output", name="output",
label="Mesh Path Output", label="Mesh Path Output",
description="Output directory for mesh.", description="Output directory for mesh.",
value=desc.Node.internalFolder + "output.obj", value="{nodeCacheFolder}/output.obj",
), ),
] ]

View file

@ -126,12 +126,12 @@ class LidarMeshing(desc.AVCommandLineNode):
name="output", name="output",
label="Sub-Meshes Directory", label="Sub-Meshes Directory",
description="Output directory for sub-meshes", description="Output directory for sub-meshes",
value=desc.Node.internalFolder, value="{nodeCacheFolder}",
), ),
desc.File( desc.File(
name="outputJson", name="outputJson",
label="Scene Description", label="Scene Description",
description="Output scene description.", description="Output scene description.",
value=desc.Node.internalFolder + "scene.json", value="{nodeCacheFolder}/scene.json",
), ),
] ]

View file

@ -60,14 +60,14 @@ Can also be used to calibrate a lighting dome (RTI type).
name="outputFile", name="outputFile",
label="Light File", label="Light File",
description="Light information will be written here.", description="Light information will be written here.",
value=desc.Node.internalFolder + "/lights.json", value="{nodeCacheFolder}/lights.json",
), ),
desc.File( desc.File(
name="lightingEstimationVisualization", name="lightingEstimationVisualization",
label="Estimated Lighting Visualization", label="Estimated Lighting Visualization",
description="Estimated Lighting Visualization.", description="Estimated Lighting Visualization.",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "/<FILESTEM>_{methodValue}.png", value="{nodeCacheFolder}/<FILESTEM>_{methodValue}.png",
group=None, group=None,
), ),
] ]

View file

@ -77,6 +77,6 @@ class LightingEstimation(desc.AVCommandLineNode):
name="output", name="output",
label="Folder", label="Folder",
description="Folder for output lighting vector files.", description="Folder for output lighting vector files.",
value=desc.Node.internalFolder, value="{nodeCacheFolder}",
), ),
] ]

View file

@ -72,14 +72,14 @@ class MaskProcessing(desc.AVCommandLineNode):
name="output", name="output",
label="Output", label="Output",
description="Path to the output directory.", description="Path to the output directory.",
value=desc.Node.internalFolder, value="{nodeCacheFolder}",
), ),
desc.File( desc.File(
name="masks", name="masks",
label="Masks", label="Masks",
description="Processed segmentation masks.", description="Processed segmentation masks.",
semantic="imageList", semantic="imageList",
value= desc.Node.internalFolder + "*.exr", value= "{nodeCacheFolder}/*.exr",
group="", group="",
), ),
] ]

View file

@ -64,6 +64,6 @@ Operation types used to merge two meshes:
name="output", name="output",
label="Mesh", label="Mesh",
description="Output mesh (*.obj, *.mesh, *.meshb, *.ply, *.off, *.stl).", description="Output mesh (*.obj, *.mesh, *.meshb, *.ply, *.off, *.stl).",
value=desc.Node.internalFolder + "mesh.stl", value="{nodeCacheFolder}/mesh.stl",
), ),
] ]

View file

@ -72,6 +72,6 @@ This node allows to reduce the density of the Mesh.
name="output", name="output",
label="Mesh", label="Mesh",
description="Output mesh in the OBJ file format.", description="Output mesh in the OBJ file format.",
value=desc.Node.internalFolder + "mesh.obj", value="{nodeCacheFolder}/mesh.obj",
), ),
] ]

View file

@ -87,6 +87,6 @@ for now, the parameters are difficult to control and vary a lot from one dataset
name="output", name="output",
label="Output", label="Output",
description="Output mesh in the OBJ file format.", description="Output mesh in the OBJ file format.",
value=desc.Node.internalFolder + "mesh.obj", value="{nodeCacheFolder}/mesh.obj",
), ),
] ]

View file

@ -112,6 +112,6 @@ This node applies a Laplacian filtering to remove local defects from the raw Mes
name="outputMesh", name="outputMesh",
label="Mesh", label="Mesh",
description="Output mesh file.", description="Output mesh file.",
value=desc.Node.internalFolder + "mesh.{outputMeshFileTypeValue}", value="{nodeCacheFolder}/mesh.{outputMeshFileTypeValue}",
), ),
] ]

View file

@ -98,6 +98,6 @@ Decimate triangles based on image masks.
name="outputMesh", name="outputMesh",
label="Mesh", label="Mesh",
description="Output mesh file.", description="Output mesh file.",
value=desc.Node.internalFolder + "mesh.{outputMeshFileTypeValue}", value="{nodeCacheFolder}/mesh.{outputMeshFileTypeValue}",
), ),
] ]

View file

@ -64,6 +64,6 @@ Remove triangles from the mesh when the vertices are not visible by any camera.
name="outputMesh", name="outputMesh",
label="Mesh", label="Mesh",
description="Output mesh file.", description="Output mesh file.",
value=desc.Node.internalFolder + "mesh.{outputMeshFileTypeValue}", value="{nodeCacheFolder}/mesh.{outputMeshFileTypeValue}",
), ),
] ]

View file

@ -77,6 +77,6 @@ This node allows to recompute the mesh surface with a new topology and uniform d
name="output", name="output",
label="Mesh", label="Mesh",
description="Output mesh in the OBJ file format.", description="Output mesh in the OBJ file format.",
value=desc.Node.internalFolder + "mesh.obj", value="{nodeCacheFolder}/mesh.obj",
), ),
] ]

View file

@ -472,12 +472,12 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
name="outputMesh", name="outputMesh",
label="Mesh", label="Mesh",
description="Output mesh.", description="Output mesh.",
value=desc.Node.internalFolder + "mesh.{outputMeshFileTypeValue}", value="{nodeCacheFolder}/mesh.{outputMeshFileTypeValue}",
), ),
desc.File( desc.File(
name="output", name="output",
label="Dense SfMData", label="Dense SfMData",
description="Output dense point cloud with visibilities (SfMData file format).", description="Output dense point cloud with visibilities (SfMData file format).",
value=desc.Node.internalFolder + "densePointCloud.abc", value="{nodeCacheFolder}/densePointCloud.abc",
), ),
] ]

View file

@ -46,6 +46,6 @@ A Structure-From-Motion node specifically designed to handle pure rotation camer
name="output", name="output",
label="SfMData", label="SfMData",
description="Path to the output SfMData file.", description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "sfm.abc", value="{nodeCacheFolder}/sfm.abc",
), ),
] ]

View file

@ -46,7 +46,7 @@ Evaluate a depth map from a normals map (currently in development)
label="Depth Map Camera", label="Depth Map Camera",
description="Generated depth in the camera coordinate system.", description="Generated depth in the camera coordinate system.",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "<POSE_ID>_depthMap.exr", value="{nodeCacheFolder}/<POSE_ID>_depthMap.exr",
group="", # do not export on the command line group="", # do not export on the command line
) )
] ]

View file

@ -39,14 +39,14 @@ class NormalMapRendering(desc.AVCommandLineNode):
name="output", name="output",
label="Folder", label="Folder",
description="Output folder.", description="Output folder.",
value=desc.Node.internalFolder, value="{nodeCacheFolder}",
), ),
desc.File( desc.File(
name="normal", name="normal",
label="Normal Maps", label="Normal Maps",
description="Rendered normal maps.", description="Rendered normal maps.",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "<VIEW_ID>_normalMap.exr", value="{nodeCacheFolder}/<VIEW_ID>_normalMap.exr",
group="", # do not export on the command line group="", # do not export on the command line
), ),
] ]

View file

@ -113,6 +113,6 @@ Multiple cameras are contributing to the low frequencies and only the best one c
name="output", name="output",
label="Folder", label="Folder",
description="Output folder containing the composited panorama.", description="Output folder containing the composited panorama.",
value=desc.Node.internalFolder, value="{nodeCacheFolder}",
), ),
] ]

View file

@ -170,12 +170,12 @@ Estimate relative camera rotations between input images.
name="output", name="output",
label="SfM File", label="SfM File",
description="Path to the output SfM file.", description="Path to the output SfM file.",
value=desc.Node.internalFolder + "panorama.abc", value="{nodeCacheFolder}/panorama.abc",
), ),
desc.File( desc.File(
name="outputViewsAndPoses", name="outputViewsAndPoses",
label="Views And Poses", label="Views And Poses",
description="Path to the output SfMData file with cameras (views and poses).", description="Path to the output SfMData file with cameras (views and poses).",
value=desc.Node.internalFolder + "cameras.sfm", value="{nodeCacheFolder}/cameras.sfm",
), ),
] ]

View file

@ -147,7 +147,7 @@ This node allows to setup the Panorama:
label="Contact sheet", label="Contact sheet",
semantic="image", semantic="image",
description="Contact sheet path.", description="Contact sheet path.",
value=desc.Node.internalFolder + "contactSheetImage.jpg", value="{nodeCacheFolder}/contactSheetImage.jpg",
group="", # do not export on the command line group="", # do not export on the command line
enabled=lambda node: node.buildContactSheet.enabled enabled=lambda node: node.buildContactSheet.enabled
), ),
@ -155,6 +155,6 @@ This node allows to setup the Panorama:
name="outSfMData", name="outSfMData",
label="SfMData File", label="SfMData File",
description="Path to the output SfMData file.", description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "sfmData.sfm", value="{nodeCacheFolder}/sfmData.sfm",
), ),
] ]

View file

@ -72,6 +72,6 @@ Merge all inputs coming from the PanoramaCompositing node.
label="Panorama", label="Panorama",
description="Output merged panorama image.", description="Output merged panorama image.",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "panorama.{outputFileTypeValue}", value="{nodeCacheFolder}/panorama.{outputFileTypeValue}",
), ),
] ]

View file

@ -107,20 +107,20 @@ Post process the panorama.
label="Output Panorama Preview", label="Output Panorama Preview",
description="Preview of the generated panorama in JPG format.", description="Preview of the generated panorama in JPG format.",
semantic="image", semantic="image",
value=lambda attr: desc.Node.internalFolder + attr.node.previewName.value, value=lambda attr: "{nodeCacheFolder}/" + attr.node.previewName.value,
), ),
desc.File( desc.File(
name="outputPanorama", name="outputPanorama",
label="Output Panorama", label="Output Panorama",
description="Generated panorama in EXR format.", description="Generated panorama in EXR format.",
semantic="image", semantic="image",
value=lambda attr: desc.Node.internalFolder + attr.node.panoramaName.value, value=lambda attr: "{nodeCacheFolder}/" + attr.node.panoramaName.value,
), ),
desc.File( desc.File(
name="downscaledPanoramaLevels", name="downscaledPanoramaLevels",
label="Downscaled Panorama Levels", label="Downscaled Panorama Levels",
description="Downscaled versions of the generated panorama.", description="Downscaled versions of the generated panorama.",
value=lambda attr: desc.Node.internalFolder + os.path.splitext(attr.node.panoramaName.value)[0] + "_level_*.exr", value=lambda attr: "{nodeCacheFolder}/" + os.path.splitext(attr.node.panoramaName.value)[0] + "_level_*.exr",
group="", group="",
), ),
] ]

View file

@ -36,6 +36,6 @@ Prepare images for Panorama pipeline: ensures that images orientations are coher
name="output", name="output",
label="SfMData", label="SfMData",
description="Output SfMData file.", description="Output SfMData file.",
value=lambda attr: desc.Node.internalFolder + os.path.basename(attr.node.input.value), value=lambda attr: "{nodeCacheFolder}/" + os.path.basename(attr.node.input.value),
), ),
] ]

View file

@ -59,12 +59,12 @@ Estimate the seams lines between the inputs to provide an optimal compositing in
label="Labels", label="Labels",
description="", description="",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "labels.exr", value="{nodeCacheFolder}/labels.exr",
), ),
desc.File( desc.File(
name="outputSfm", name="outputSfm",
label="Output SfMData File", label="Output SfMData File",
description="Path to the output SfMData file.", description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "panorama.sfm", value="{nodeCacheFolder}/panorama.sfm",
), ),
] ]

View file

@ -93,6 +93,6 @@ Compute the image warping for each input image in the panorama coordinate system
name="output", name="output",
label="Folder", label="Folder",
description="Output folder.", description="Output folder.",
value=desc.Node.internalFolder, value="{nodeCacheFolder}",
), ),
] ]

View file

@ -78,27 +78,27 @@ The lighting conditions are assumed to be known.
name="outputPath", name="outputPath",
label="Output Folder", label="Output Folder",
description="Path to the output folder.", description="Path to the output folder.",
value=desc.Node.internalFolder, value="{nodeCacheFolder}",
), ),
desc.File( desc.File(
name="outputSfmDataAlbedo", name="outputSfmDataAlbedo",
label="SfMData Albedo", label="SfMData Albedo",
description="Output SfMData file containing the albedo information.", description="Output SfMData file containing the albedo information.",
value=desc.Node.internalFolder + "/albedoMaps.sfm", value="{nodeCacheFolder}/albedoMaps.sfm",
group="", # remove from command line group="", # remove from command line
), ),
desc.File( desc.File(
name="outputSfmDataNormal", name="outputSfmDataNormal",
label="SfMData Normal", label="SfMData Normal",
description="Output SfMData file containing the normal maps information.", description="Output SfMData file containing the normal maps information.",
value=desc.Node.internalFolder + "/normalMaps.sfm", value="{nodeCacheFolder}/normalMaps.sfm",
group="", # remove from command line group="", # remove from command line
), ),
desc.File( desc.File(
name="outputSfmDataNormalPNG", name="outputSfmDataNormalPNG",
label="SfMData Normal PNG", label="SfMData Normal PNG",
description="Output SfMData file containing the normal maps information.", description="Output SfMData file containing the normal maps information.",
value=desc.Node.internalFolder + "/normalMapsPNG.sfm", value="{nodeCacheFolder}/normalMapsPNG.sfm",
group="", # remove from command line group="", # remove from command line
), ),
# these attributes are only here to describe more accurately the output of the node # these attributes are only here to describe more accurately the output of the node
@ -109,7 +109,7 @@ The lighting conditions are assumed to be known.
label="Normal Maps Camera", label="Normal Maps Camera",
description="Generated normal maps in the camera coordinate system.", description="Generated normal maps in the camera coordinate system.",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "<POSE_ID>_normals.exr", value="{nodeCacheFolder}/<POSE_ID>_normals.exr",
group="", # do not export on the command line group="", # do not export on the command line
), ),
desc.File( desc.File(
@ -117,7 +117,7 @@ The lighting conditions are assumed to be known.
label="Normal Maps Camera (in false colors)", label="Normal Maps Camera (in false colors)",
description="Generated normal maps in the camera coordinate system (in false colors).", description="Generated normal maps in the camera coordinate system (in false colors).",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "<POSE_ID>_normals.png", value="{nodeCacheFolder}/<POSE_ID>_normals.png",
group="", # do not export on the command line group="", # do not export on the command line
), ),
desc.File( desc.File(
@ -125,7 +125,7 @@ The lighting conditions are assumed to be known.
label="Normal Maps World", label="Normal Maps World",
description="Generated normal maps in the world coordinate system.", description="Generated normal maps in the world coordinate system.",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "<POSE_ID>_normals_w.exr", value="{nodeCacheFolder}/<POSE_ID>_normals_w.exr",
group="", # do not export on the command line group="", # do not export on the command line
), ),
@ -134,7 +134,7 @@ The lighting conditions are assumed to be known.
label="Albedo Maps", label="Albedo Maps",
description="Generated albedo maps.", description="Generated albedo maps.",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "<POSE_ID>_albedo.png", value="{nodeCacheFolder}/<POSE_ID>_albedo.png",
group="", # do not export on the command line group="", # do not export on the command line
), ),
] ]

View file

@ -94,14 +94,14 @@ This node export undistorted images so the depth map and texturing can be comput
name="output", name="output",
label="Images Folder", label="Images Folder",
description="Output folder.", description="Output folder.",
value=desc.Node.internalFolder, value="{nodeCacheFolder}",
), ),
desc.File( desc.File(
name="undistorted", name="undistorted",
label="Undistorted Images", label="Undistorted Images",
description="List of undistorted images.", description="List of undistorted images.",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "<VIEW_ID>.{outputFileTypeValue}", value="{nodeCacheFolder}/<VIEW_ID>.{outputFileTypeValue}",
group="", group="",
advanced=True, advanced=True,
), ),

View file

@ -64,6 +64,6 @@ Estimate relative pose between each pair of views that share tracks.
name="output", name="output",
label="Pairs Info", label="Pairs Info",
description="Path to the output Pairs info files directory.", description="Path to the output Pairs info files directory.",
value=desc.Node.internalFolder, value="{nodeCacheFolder}",
), ),
] ]

View file

@ -59,6 +59,6 @@ Select Connected Views based on SfM landmarks.
name="output", name="output",
label="Connected Views", label="Connected Views",
description="List of connected views in a text file.", description="List of connected views in a text file.",
value=desc.Node.internalFolder + "connectedViews.txt", value="{nodeCacheFolder}/connectedViews.txt",
), ),
] ]

View file

@ -107,12 +107,12 @@ The alignment can be based on:
name="output", name="output",
label="SfMData File", label="SfMData File",
description="Output SfMData file.", description="Output SfMData file.",
value=lambda attr: desc.Node.internalFolder + (os.path.splitext(os.path.basename(attr.node.input.value))[0] or "sfmData") + ".abc", value=lambda attr: "{nodeCacheFolder}/" + (os.path.splitext(os.path.basename(attr.node.input.value))[0] or "sfmData") + ".abc",
), ),
desc.File( desc.File(
name="outputViewsAndPoses", name="outputViewsAndPoses",
label="Poses", label="Poses",
description="Path to the output SfMData file with cameras (views and poses).", description="Path to the output SfMData file with cameras (views and poses).",
value=desc.Node.internalFolder + "cameras.sfm", value="{nodeCacheFolder}/cameras.sfm",
), ),
] ]

View file

@ -40,7 +40,7 @@ class SfMChecking(desc.Node):
name="output", name="output",
label="SfM File", label="SfM File",
description="Path to the output SfM file.", description="Path to the output SfM file.",
value=desc.Node.internalFolder + "sfmData.abc", value="{nodeCacheFolder}/sfmData.abc",
) )
] ]

View file

@ -36,6 +36,6 @@ class SfMColorizing(desc.AVCommandLineNode):
name="output", name="output",
label="SfMData", label="SfMData",
description="Path to the output SfM file.", description="Path to the output SfM file.",
value=desc.Node.internalFolder + "sfmData.abc", value="{nodeCacheFolder}/sfmData.abc",
), ),
] ]

View file

@ -46,12 +46,12 @@ This node allows select views from sfmData file using a regular expresion.
name="outputSfMData_selected", name="outputSfMData_selected",
label="SfMData_selected", label="SfMData_selected",
description="Output SfMData file containing selected views.", description="Output SfMData file containing selected views.",
value=desc.Node.internalFolder + "/selectedSfmData.sfm", value="{nodeCacheFolder}/selectedSfmData.sfm",
), ),
desc.File( desc.File(
name="outputSfMData_unselected", name="outputSfMData_unselected",
label="SfMData_unselected", label="SfMData_unselected",
description="Output SfMData file containing remaining views.", description="Output SfMData file containing remaining views.",
value=desc.Node.internalFolder + "/unselectedSfmData.sfm", value="{nodeCacheFolder}/unselectedSfmData.sfm",
), ),
] ]

View file

@ -96,8 +96,8 @@ Merges two SfMData files into a single one. Fails if some UID is shared among th
outputs = [ outputs = [
desc.File( desc.File(
name="output", name="output",
label="SfMData", label="SfMData",
description="Path to the output SfM file (in SfMData format).", description="Path to the output SfM file (in SfMData format).",
value=lambda attr: desc.Node.internalFolder + "sfmData.{fileExtValue}", value="{nodeCacheFolder}/sfmData.{fileExtValue}",
) )
] ]

View file

@ -50,6 +50,6 @@ Use a JSON file to inject poses inside the SfMData.
name="output", name="output",
label="SfMData", label="SfMData",
description="Path to the output SfM file.", description="Path to the output SfM file.",
value=desc.Node.internalFolder + "sfmData.abc", value="{nodeCacheFolder}/sfmData.abc",
), ),
] ]

View file

@ -36,12 +36,12 @@ class SfMSplitReconstructed(desc.AVCommandLineNode):
name="reconstructedOutput", name="reconstructedOutput",
label="Reconstructed SfMData File", label="Reconstructed SfMData File",
description="SfMData file containing the reconstructed cameras.", description="SfMData file containing the reconstructed cameras.",
value=desc.Node.internalFolder + "sfmReconstructed.abc", value="{nodeCacheFolder}/sfmReconstructed.abc",
), ),
desc.File( desc.File(
name="notReconstructedOutput", name="notReconstructedOutput",
label="Not Reconstructed SfMData File", label="Not Reconstructed SfMData File",
description="SfMData file containing the non-reconstructed cameras.", description="SfMData file containing the non-reconstructed cameras.",
value=desc.Node.internalFolder + "sfmNonReconstructed.abc", value="{nodeCacheFolder}/sfmNonReconstructed.abc",
), ),
] ]

View file

@ -35,6 +35,6 @@ Assumes the input SfMData describes a set of cameras capturing a scene at a comm
name="output", name="output",
label="SfMData", label="SfMData",
description="Path to the output SfM file (in SfMData format).", description="Path to the output SfM file (in SfMData format).",
value=lambda attr: desc.Node.internalFolder + "sfmData.sfm", value="{nodeCacheFolder}/sfmData.sfm",
), ),
] ]

View file

@ -99,12 +99,12 @@ This node allows to transfer poses and/or intrinsics form one SfM scene onto ano
name="output", name="output",
label="SfMData", label="SfMData",
description="Path to the output SfM point cloud file (in SfMData format).", description="Path to the output SfM point cloud file (in SfMData format).",
value=lambda attr: desc.Node.internalFolder + (os.path.splitext(os.path.basename(attr.node.input.value))[0] or "sfmData") + ".abc", value=lambda attr: "{nodeCacheFolder}/" + (os.path.splitext(os.path.basename(attr.node.input.value))[0] or "sfmData") + ".abc",
), ),
desc.File( desc.File(
name="outputViewsAndPoses", name="outputViewsAndPoses",
label="Poses", label="Poses",
description="Path to the output SfMData file with cameras (views and poses).", description="Path to the output SfMData file with cameras (views and poses).",
value=desc.Node.internalFolder + "cameras.sfm", value="{nodeCacheFolder}/cameras.sfm",
), ),
] ]

View file

@ -255,12 +255,12 @@ The transformation can be based on:
name="output", name="output",
label="SfMData File", label="SfMData File",
description="Aligned SfMData file.", description="Aligned SfMData file.",
value=lambda attr: desc.Node.internalFolder + (os.path.splitext(os.path.basename(attr.node.input.value))[0] or "sfmData") + ".abc", value=lambda attr: "{nodeCacheFolder}/" + (os.path.splitext(os.path.basename(attr.node.input.value))[0] or "sfmData") + ".abc",
), ),
desc.File( desc.File(
name="outputViewsAndPoses", name="outputViewsAndPoses",
label="Poses", label="Poses",
description="Path to the output SfMData file with cameras (views and poses).", description="Path to the output SfMData file with cameras (views and poses).",
value=desc.Node.internalFolder + "cameras.sfm", value="{nodeCacheFolder}/cameras.sfm",
), ),
] ]

View file

@ -143,12 +143,12 @@ Contrary to the StructureFromMotion node, this node does not infer the camera po
name="output", name="output",
label="SfMData", label="SfMData",
description="Path to the output SfMData file.", description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "sfm.abc", value="{nodeCacheFolder}/sfm.abc",
), ),
desc.File( desc.File(
name="extraInfoFolder", name="extraInfoFolder",
label="Folder", label="Folder",
description="Folder for intermediate reconstruction files and additional reconstruction information files.", description="Folder for intermediate reconstruction files and additional reconstruction information files.",
value=desc.Node.internalFolder, value="{nodeCacheFolder}",
), ),
] ]

View file

@ -79,6 +79,6 @@ class SfMBootStraping(desc.AVCommandLineNode):
name="output", name="output",
label="SfMData", label="SfMData",
description="Path to the output SfMData file.", description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "bootstrap.abc", value="{nodeCacheFolder}/bootstrap.abc",
), ),
] ]

View file

@ -170,12 +170,12 @@ class SfMExpanding(desc.AVCommandLineNode):
name="output", name="output",
label="SfMData", label="SfMData",
description="Path to the output SfMData file.", description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "sfmExpanded.abc", value="{nodeCacheFolder}/sfmExpanded.abc",
), ),
desc.File( desc.File(
name="outputViewsAndPoses", name="outputViewsAndPoses",
label="Views And Poses", label="Views And Poses",
description="Path to the output SfMData file with cameras (views and poses).", description="Path to the output SfMData file with cameras (views and poses).",
value=desc.Node.internalFolder + "cameras.sfm", value="{nodeCacheFolder}/cameras.sfm",
) )
] ]

View file

@ -84,6 +84,6 @@ Spheres can be automatically detected or manually defined in the interface.
name="output", name="output",
label="Output Path", label="Output Path",
description="Sphere detection information will be written here.", description="Sphere detection information will be written here.",
value=desc.Node.internalFolder + "/detection.json", value="{nodeCacheFolder}/detection.json",
) )
] ]

View file

@ -128,12 +128,12 @@ class Split360Images(desc.AVCommandLineNode):
name="output", name="output",
label="Folder", label="Folder",
description="Output folder for extracted frames.", description="Output folder for extracted frames.",
value=desc.Node.internalFolder, value="{nodeCacheFolder}",
), ),
desc.File( desc.File(
name="outSfMData", name="outSfMData",
label="SfMData File", label="SfMData File",
description="Output SfMData file.", description="Output SfMData file.",
value=desc.Node.internalFolder + "rig.sfm", value="{nodeCacheFolder}/rig.sfm",
), ),
] ]

View file

@ -376,18 +376,18 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
name="output", name="output",
label="SfMData", label="SfMData",
description="Path to the output SfM point cloud file (in SfMData format).", description="Path to the output SfM point cloud file (in SfMData format).",
value=desc.Node.internalFolder + "sfm.abc", value="{nodeCacheFolder}/sfm.abc",
), ),
desc.File( desc.File(
name="outputViewsAndPoses", name="outputViewsAndPoses",
label="Views And Poses", label="Views And Poses",
description="Path to the output SfMData file with cameras (views and poses).", description="Path to the output SfMData file with cameras (views and poses).",
value=desc.Node.internalFolder + "cameras.sfm", value="{nodeCacheFolder}/cameras.sfm",
), ),
desc.File( desc.File(
name="extraInfoFolder", name="extraInfoFolder",
label="Folder", label="Folder",
description="Folder for intermediate reconstruction files and additional reconstruction information files.", description="Folder for intermediate reconstruction files and additional reconstruction information files.",
value=desc.Node.internalFolder, value="{nodeCacheFolder}",
), ),
] ]

View file

@ -336,13 +336,13 @@ Many cameras are contributing to the low frequencies and only the best ones cont
name="output", name="output",
label="Folder", label="Folder",
description="Folder for output mesh: OBJ, material and texture files.", description="Folder for output mesh: OBJ, material and texture files.",
value=desc.Node.internalFolder, value="{nodeCacheFolder}",
), ),
desc.File( desc.File(
name="outputMesh", name="outputMesh",
label="Mesh", label="Mesh",
description="Output mesh file.", description="Output mesh file.",
value=desc.Node.internalFolder + "texturedMesh.{outputMeshFileTypeValue}", value="{nodeCacheFolder}/texturedMesh.{outputMeshFileTypeValue}",
group="", group="",
), ),
desc.File( desc.File(
@ -350,22 +350,22 @@ Many cameras are contributing to the low frequencies and only the best ones cont
enabled=lambda node: node.outputMeshFileType.value == "obj", enabled=lambda node: node.outputMeshFileType.value == "obj",
label="Material", label="Material",
description="Output material file.", description="Output material file.",
value=desc.Node.internalFolder + "texturedMesh.mtl", value="{nodeCacheFolder}/texturedMesh.mtl",
group="", group="",
), ),
desc.File( desc.File(
name="outputTextures", name="outputTextures",
label="Textures", label="Textures",
description="Output texture files.", description="Output texture files.",
value=lambda attr: desc.Node.internalFolder + "texture_*." + attr.node.colorMapping.colorMappingFileType.value if attr.node.colorMapping.enable.value else "", value=lambda attr: "{nodeCacheFolder}/texture_*." + attr.node.colorMapping.colorMappingFileType.value if attr.node.colorMapping.enable.value else "",
group="", group="",
), ),
] ]
def upgradeAttributeValues(self, attrValues, fromVersion): def upgradeAttributeValues(self, attrValues, fromVersion):
if fromVersion < Version(6, 0): if fromVersion < Version(6, 0):
outputTextureFileType = attrValues['outputTextureFileType'] outputTextureFileType = attrValues["outputTextureFileType"]
if isinstance(outputTextureFileType, str): if isinstance(outputTextureFileType, str):
attrValues['colorMapping'] = {} attrValues["colorMapping"] = {}
attrValues['colorMapping']['colorMappingFileType'] = outputTextureFileType attrValues["colorMapping"]["colorMappingFileType"] = outputTextureFileType
return attrValues return attrValues

View file

@ -92,6 +92,6 @@ It fuses all feature matches between image pairs into tracks. Each track represe
name="output", name="output",
label="Tracks", label="Tracks",
description="Path to the output tracks file.", description="Path to the output tracks file.",
value=desc.Node.internalFolder + "tracksFile.json", value="{nodeCacheFolder}/tracksFile.json",
), ),
] ]

View file

@ -128,14 +128,14 @@ One frame per viewpoint will be rendered, and the undistorted views can optional
name="output", name="output",
label="Output", label="Output",
description="Output folder.", description="Output folder.",
value=desc.Node.internalFolder, value="{nodeCacheFolder}",
), ),
desc.File( desc.File(
name="frames", name="frames",
label="Frames", label="Frames",
description="Frames rendered in Blender.", description="Frames rendered in Blender.",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "<FILESTEM>_preview.jpg", value="{nodeCacheFolder}/<FILESTEM>_preview.jpg",
group="", group="",
), ),
] ]