#compdef f3d

arguments=(
  '--input[Input Files]'
  '(-D --define)'{-D,--define}'[Define libf3d options]'
  '(-R --reset)'{-R,--reset}'[Reset libf3d options]'
  '--output[Render to file]'
  '--no-background[No background when render to file]'
  '(-h --help)'{-h,--help}'[Print help]'
  '--version[Print version details]'
  '--list-readers[Print the list of readers]'
  '--force-reader[Force a specific reader to be used, disregarding the file extension]'
  '--list-bindings[Print the list of interaction bindings and exits, ignored with `--no-render`, only considers the first file group.]'
  '--config[Specify the configuration file to use. absolute/relative path or filename/filestem to search in configuration file locations]'
  '--no-config[Do not read the configuration file]'
  '--no-render[Do not render anything and quit right after loading the first file, use with --verbose to recover information about a file.]'
  '--rendering-backend[Backend to use when rendering (auto|glx|wgl|egl|osmesa)]'
  '--list-rendering-backends[Print the list of rendering backends available on this system]'
  '--max-size[Maximum size in Mib of a file to load, leave empty for unlimited]'
  '--dpi-aware[Scale font and window resolution according to system scale]'
  '--watch[Watch current file and automatically reload it whenever it is modified on disk]'
  '--frame-rate[Frame rate used to refresh animation and other repeated tasks (watch, UI). Does not impact rendering frame rate.]'
  '--load-plugins[List of plugins to load separated with a comma]'
  '--scan-plugins[Scan standard directories for plugins and display available plugins (result can be incomplete)]'
  '--screenshot-filename[Screenshot filename]'
  '--verbose[Set verbose level, providing more information about the loaded data in the console output]'
  '--loading-progress[Show loading progress bar]'
  '--animation-progress[Show animation progress bar]'
  '--multi-file-mode[Choose the behavior when opening multiple files. \"single\" will show one file at a time, \"all\" will show all files in a single scene, \"dir\" will show files from the same directory in the same scene.]'
  '--multi-file-regex[Regular expression pattern to group files. Captured groups are replaced with \"*\" so that, for example, the pattern \"part(\\d+)\" would group files \"foo-part1.xyz\" and \"foo-part2.xyz\" together as \"foo-part*.xyz\"]'
  '--recursive-dir-add[Add directories recursively]'
  '--remove-empty-file-groups[Remove file groups that results into an empty scene]'
  '--up[Up direction]'
  '(-x --axis)'{-x,--axis}'[Show axes]'
  '(-g --grid)'{-g,--grid}'[Show grid]'
  '--x-color[Color of the X axis]'
  '--y-color[Color of the Y axis]'
  '--z-color[Color of the Z axis]'
  '--grid-absolute[Position grid at the absolute origin instead of below the model]'
  '--grid-unit[Size of grid unit square, automatically computed by default]'
  '--grid-subdivisions[Number of grid subdivisions]'
  '--grid-color[Color of main grid lines]'
  '--axes-grid[Enable grid axis]'
  '(-e --edges)'{-e,--edges}'[Show cell edges]'
  '--armature[Enable armature visualization]'
  '--camera-index[Select the camera to use]'
  '(-k --interaction-style)'{-k,--interaction-style}'[Interaction style]'
  '--interaction-trackball[Enable trackball interaction (deprecated, use --interaction-style=trackball)]'
  '--invert-zoom[Invert zoom direction with right mouse click]'
  '--animation-autoplay[Automatically start animation]'
  '--animation-index[Select animation to show (deprecated)]'
  '--animation-indices[Select animations to show]'
  '--animation-speed-factor[Set animation speed factor]'
  '--animation-time[Set animation time to load]'
  '--font-file[Path to a FreeType compatible font file]'
  '--font-scale[Scale fonts]'
  '--font-color[Set font color]'
  '--backdrop-opacity[UI backdrop opacity]'
  '--command-script[Path to a script file containing commands to execute]'
  '--normal-glyphs[Enable normal glyphs]'
  '(-o --point-sprites)'{-o,--point-sprites}'[Select point sprites type (\"none\", \"sphere\", \"gaussian\", \"circle\", \"stddev\", \"bound\")]'
  '--point-sprites-type[Point sprites type (deprecated)]'
  '--point-sprites-size[Point sprites sphere size]'
  '--point-sprites-absolute-size[Do not scale point sprites size by scene size]'
  '--point-size[Point size when showing vertices, model specified by default]'
  '--line-width[Line width when showing edges, model specified by default]'
  '--backface-type[Backface type, can be visible or hidden, model specified by default]'
  '--color[Solid color]'
  '--opacity[Opacity]'
  '--roughness[Roughness coefficient (0.0-1.0)]'
  '--metallic[Metallic coefficient (0.0-1.0)]'
  '--base-ior[Index Of Refraction of the base layer (1.0-2.5)]'
  '--hdri-file[Path to an image file that can be used as a light source and skybox]'
  '(-f --hdri-ambient)'{-f,--hdri-ambient}'[Enable HDRI ambient lighting]'
  '(-j --hdri-skybox)'{-j,--hdri-skybox}'[Enable HDRI skybox background]'
  '--texture-matcap[Path to a texture file containing a material capture]'
  '--texture-base-color[Path to a texture file that sets the color of the object]'
  '--texture-material[Path to a texture file that sets the Occlusion, Roughness and Metallic values of the object]'
  '--texture-emissive[Path to a texture file that sets the emitted light of the object]'
  '--textures-transform[3x3 matrix to transform textures]'
  '--emissive-factor[Emissive factor. This value is multiplied with the emissive color when an emissive texture is present]'
  '--texture-normal[Path to a texture file that sets the normal map of the object]'
  '--checkerboard[Apply checkerboard texture to objects]'
  '--normal-scale[Normal scale affects the strength of the normal deviation from the normal texture]'
  '--unlit[Ignore shading and make the material unlit]'
  '--background-color[Background color]'
  '--resolution[Window resolution]'
  '--position[Window position]'
  '(-z --fps)'{-z,--fps}'[Display rendering frame per second]'
  '--filename[Display filename]'
  '(-m --metadata)'{-m,--metadata}'[Display file metadata]'
  '--scene-hierarchy[Display the scene hierarchy widget]'
  '--notifications[Display notifications]'
  '--hdri-filename[Display hdri filename]'
  '(-u --blur-background)'{-u,--blur-background}'[Blur background]'
  '--blur-coc[Blur circle of confusion radius]'
  '--light-intensity[Light intensity]'
  '(-s --scalar-coloring)'{-s,--scalar-coloring}'[Color by a scalar array]'
  '--coloring-array[Name of the array to color with]'
  '(-y --coloring-component)'{-y,--coloring-component}'[Component from the array to color with. -1 means magnitude, -2 or the short option, -y, means direct scalars]'
  '(-c --coloring-by-cells)'{-c,--coloring-by-cells}'[Use an array from the cells]'
  '--coloring-range[Custom range for the coloring by array, automatically computed by default]'
  '(-b --coloring-scalar-bar)'{-b,--coloring-scalar-bar}'[Show scalar bar]'
  '--colormap-file[Specify a colormap image]'
  '--colormap-discretization[Specify number of colors in colormap]'
  '--colormap[Specify a custom colormap (ignored if \"colormap-file\" is specified)]'
  '--volume-opacity-map[Specify a custom opacity map for volume rendering]'
  '--volume-opacity-file[Specify a custom opacity map image for volume rendering]'
  '(-v --volume)'{-v,--volume}'[Show volume if the file is compatible]'
  '(-i --volume-inverse)'{-i,--volume-inverse}'[Inverse opacity function for volume rendering]'
  '--camera-position[Camera position (overrides camera direction and camera zoom factor if any)]'
  '--camera-focal-point[Camera focal point]'
  '--camera-view-up[Camera view up]'
  '--camera-view-angle[Camera view angle (non-zero, in degrees)]'
  '--camera-direction[Camera direction]'
  '--camera-zoom-factor[Camera zoom factor (non-zero)]'
  '--camera-azimuth-angle[Camera azimuth angle (in degrees), performed after other camera options]'
  '--camera-elevation-angle[Camera elevation angle (in degrees), performed after other camera options]'
  '--camera-orthographic[Use an orthographic camera]'
  '(-r --raytracing)'{-r,--raytracing}'[Enable raytracing]'
  '--raytracing-samples[Number of samples per pixel]'
  '(-d --raytracing-denoise)'{-d,--raytracing-denoise}'[Denoise the image]'
  '(-p --blending)'{-p,--blending}'[Select translucency blending mode (\"none\", \"ddp\", \"sort\", \"sort_cpu\" or \"stochastic\")]'
  '--translucency-support[Enable translucency blending (deprecated)]'
  '(-q --ambient-occlusion)'{-q,--ambient-occlusion}'[Enable ambient occlusion providing approximate shadows for better depth perception, implemented using SSAO]'
  '(-a --anti-aliasing)'{-a,--anti-aliasing}'[Select anti-aliasing method (\"none\", \"fxaa\", \"ssaa\" or \"taa\")]'
  '--anti-aliasing-mode[Select anti-aliasing method (\"fxaa\", \"ssaa\" or \"taa\") (deprecated)]'
  '(-t --tone-mapping)'{-t,--tone-mapping}'[Enable Tone Mapping, providing balanced coloring]'
  '--final-shader[Execute the final shader at the end of the rendering pipeline]'
  '--display-depth[Display depth buffer as grayscale image or with a colormap if \"--scalar-coloring\" is specified]'
  '--reference[Reference]'
  '--reference-threshold[Testing threshold]'
  '--interaction-test-record[Path to an interaction log file to record interactions events to]'
  '--interaction-test-play[Path to an interaction log file to play interaction events from when loading a file]'
)

_arguments "$arguments[@]" "*:file:_files"
