From a3ca119122c01f5fa1b81f226d1bb8516d4fb87a Mon Sep 17 00:00:00 2001 From: Meakk Date: Fri, 23 Aug 2024 08:19:08 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20f3d-app/?= =?UTF-8?q?f3d@6a44673ecbdea220a7184860b195ceb149e8d49d=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/js/search-data.json | 4 ++-- doc/dev/BUILD.html | 2 +- doc/dev/BUILD.md | 2 +- doc/user/USAGE.html | 2 +- doc/user/USAGE.md | 1 + 5 files changed, 6 insertions(+), 5 deletions(-) diff --git a/assets/js/search-data.json b/assets/js/search-data.json index ade6759d62..1eeff5c73d 100644 --- a/assets/js/search-data.json +++ b/assets/js/search-data.json @@ -50,7 +50,7 @@ },"7": { "doc": "Build", "title": "Build", - "content": "# Build guide F3D uses a CMake based build system, so building F3D just requires installing needed dependencies, configuring and building. If you are not used to such processes please take a look at our [getting started guide](/doc/dev/GETTING_STARTED.html). ## Dependencies * [CMake](https://cmake.org) >= 3.1. * [VTK](https://vtk.org) >= 9.2.6 (9.3.1 recommended). * A C++17 compiler. * A CMake-compatible build system (Visual Studio, XCode, Ninja, Make, etc.). * Optionally, [Assimp](https://www.assimp.org/) >= 5.0. * Optionally, Open CASCADE [OCCT](https://dev.opencascade.org/) >= 7.5.2. * Optionally, [Alembic](http://www.alembic.io/) >= 1.7. * Optionally, [OpenUSD](https://openusd.org/release/index.html) >= 23.05. * Optionally, [OpenVDB](https://www.openvdb.org/download/) >= 10.0.0, enable `IOOpenVDB` VTK module. * Optionally, [Draco](https://google.github.io/draco/) >= 1.5. * Optionally, [Python](https://www.python.org/) >= 3.6 and [pybind11](https://github.com/pybind/pybind11) >= 2.2. * Optionally, [Java](https://www.java.com) >= 18. * Optionally, [OpenEXR](https://openexr.com/en/latest/) >= 3.0. ## VTK compatibility As stated in the dependencies, F3D is compatible with VTK >= 9.2.6, however, some features may not be available. We suggest using VTK 9.3.1 with RenderingRayTracing, RenderingExternal, IOExodus and IOOpenVDB modules enabled in order to get as many features as possible in F3D. ## Configuration and building Configure and generate the project with CMake, then build the software using your build system. Here is some CMake options of interest: * `F3D_BUILD_APPLICATION`: Build the F3D executable. * `BUILD_TESTING`: Enable the [tests](/doc/dev/TESTING.html). * `F3D_MACOS_BUNDLE`: On macOS, build a `.app` bundle. * `F3D_WINDOWS_GUI`: On Windows, build a Win32 application (without console). * `F3D_WINDOWS_BUILD_SHELL_THUMBNAILS_EXTENSION`: On Windows, build the shell thumbnails extension. * `F3D_PLUGINS_STATIC_BUILD`: Build all plugins as static library (embedded into `libf3d`) and automatically loaded by the application. Incompatible with `F3D_MACOS_BUNDLE`. * `BUILD_SHARED_LIBS`: Build the libf3d and all plugins as static library (embedded into `f3d` executable). The `library` and `plugin_sdk` component will not be installed. Some modules, plugins and bindings depending on external libraries can be optionally enabled with the following CMake variables: * `F3D_MODULE_RAYTRACING`: Support for raytracing rendering. Requires that VTK has been built with `OSPRay` and `VTK_MODULE_ENABLE_VTK_RenderingRayTracing` turned on. Disabled by default. * `F3D_MODULE_EXTERNAL_RENDERING`: Support for external render window. Requires that VTK has been built with `VTK_MODULE_ENABLE_VTK_RenderingExternal` turned on. Disabled by default. * `F3D_MODULE_EXR`: Support for OpenEXR images. Requires `OpenEXR`. Disabled by default. * `F3D_PLUGIN_BUILD_EXODUS`: Support for ExodusII (.ex2) file format. Requires that VTK has been built with `IOExodus` module (and `hdf5`). Enabled by default. * `F3D_PLUGIN_BUILD_OCCT`: Support for STEP, IGES and BREP file formats. Requires `OpenCASCADE`. Disabled by default. * `F3D_PLUGIN_BUILD_ASSIMP`: Support for FBX, DAE, OFF, DXF, X and 3MF file formats. Requires `Assimp`. Disabled by default. * `F3D_PLUGIN_BUILD_ALEMBIC`: Support for ABC file format. Requires `Alembic`. Disabled by default. * `F3D_PLUGIN_BUILD_DRACO`: Support for DRC file format. Requires `Draco`. Disabled by default. * `F3D_PLUGIN_BUILD_USD`: Support for USD file format. Requires `OpenUSD`. Disabled by default. * `F3D_PLUGIN_BUILD_VDB`: Support for VDB file format. Requires that VTK has been built with `IOOpenVDB` module (and `OpenVDB`). Disabled by default. * `F3D_BINDINGS_PYTHON`: Generate python bindings (requires `Python` and `pybind11`). Disabled by default. * `F3D_BINDINGS_JAVA`: Generate java bindings (requires `Java` and `JNI`). Disabled by default. ## VCPKG It's possible to use VCPKG to automatically build dependencies. A manifest file `vcpkg.json` is available at your convenience. Please read [VCPKG documentation](https://vcpkg.io/en/getting-started.html). Basically, just install VCPKG, and configure F3D using `-DCMAKE_TOOLCHAIN_FILE=[path to vcpkg]/scripts/buildsystems/vcpkg.cmake` option. ## Installing Installation can be done through CMake, by running the following command: ``` cmake --install ${your_build_dir} ``` Individual components can also be installed by specifying the component name: ``` cmake --install ${your_build_dir} --component ${component_name} ``` Here is the list of all the components: Name|Installed by default|Operating system|Description ------|------|------|------ `application`|YES|ALL|F3D application. `configuration`|NO|ALL|Default configuration files, `config` and `thumbnail`. `library`|YES|ALL|libf3d library binaries. `plugin`|YES|ALL|libf3d plugins. `dependencies`|NO|ALL|libf3d runtime dependencies. Can be used to create a self-contained and relocatable package. System libraries are excluded. `sdk`|NO|ALL|libf3d SDK (headers and CMake config files) for `library` and `application` find_package components. `plugin_sdk`|NO|ALL|libf3d plugin SDK (headers and CMake config files including macros) for `pluginsdk` find_package components. `licenses`|YES|ALL|F3D and third party licenses. `documentation`|YES|Linux|`man` documentation. `shellext`|YES|Windows/Linux|Desktop integration. `python`|YES|ALL|Python bindings. `java`|YES|ALL|Java bindings. `mimetypes`|NO|Linux|Plugins mimetype XML files for integration with Freedesktop. `assets`|YES|Linux|Assets for integration with Freedesktop. `colormaps`|NO|ALL|Color maps presets, see [documentation](/doc/user/COLOR_MAPS.html) ", + "content": "# Build guide F3D uses a CMake based build system, so building F3D just requires installing needed dependencies, configuring and building. If you are not used to such processes please take a look at our [getting started guide](/doc/dev/GETTING_STARTED.html). ## Dependencies * [CMake](https://cmake.org) >= 3.1. * [VTK](https://vtk.org) >= 9.2.6 (9.3.1 recommended). * A C++17 compiler. * A CMake-compatible build system (Visual Studio, XCode, Ninja, Make, etc.). * Optionally, [Assimp](https://www.assimp.org/) >= 5.0. * Optionally, Open CASCADE [OCCT](https://dev.opencascade.org/) >= 7.5.2. * Optionally, [Alembic](http://www.alembic.io/) >= 1.7. * Optionally, [OpenUSD](https://openusd.org/release/index.html) >= 23.05. * Optionally, [OpenVDB](https://www.openvdb.org/download/) >= 10.0.0, enable `IOOpenVDB` VTK module. * Optionally, [Draco](https://google.github.io/draco/) >= 1.5. * Optionally, [Python](https://www.python.org/) >= 3.6 and [pybind11](https://github.com/pybind/pybind11) >= 2.2. * Optionally, [Java](https://www.java.com) >= 18. * Optionally, [OpenEXR](https://openexr.com/en/latest/) >= 3.0. ## VTK compatibility As stated in the dependencies, F3D is compatible with VTK >= 9.2.6, however, some features may not be available. We suggest using VTK 9.3.1 with RenderingRayTracing, RenderingExternal, IOExodus and IOOpenVDB modules enabled in order to get as many features as possible in F3D. ## Configuration and building Configure and generate the project with CMake, then build the software using your build system. Here is some CMake options of interest: * `F3D_BUILD_APPLICATION`: Build the F3D executable. * `BUILD_TESTING`: Enable the [tests](/doc/dev/TESTING.html). * `F3D_MACOS_BUNDLE`: On macOS, build a `.app` bundle. * `F3D_WINDOWS_GUI`: On Windows, build a Win32 application (without console). * `F3D_WINDOWS_BUILD_SHELL_THUMBNAILS_EXTENSION`: On Windows, build the shell thumbnails extension. * `F3D_PLUGINS_STATIC_BUILD`: Build all plugins as static library (embedded into `libf3d`) and automatically loaded by the application. Incompatible with `F3D_MACOS_BUNDLE`. * `BUILD_SHARED_LIBS`: Build the libf3d and all plugins as static library (embedded into `f3d` executable). The `library` and `plugin_sdk` component will not be installed. Some modules, plugins and bindings depending on external libraries can be optionally enabled with the following CMake variables: * `F3D_MODULE_RAYTRACING`: Support for raytracing rendering. Requires that VTK has been built with `OSPRay` and `VTK_MODULE_ENABLE_VTK_RenderingRayTracing` turned on. Disabled by default. * `F3D_MODULE_EXTERNAL_RENDERING`: Support for external render window. Requires that VTK has been built with `VTK_MODULE_ENABLE_VTK_RenderingExternal` turned on. Disabled by default. * `F3D_MODULE_EXR`: Support for OpenEXR images. Requires `OpenEXR`. Disabled by default. * `F3D_PLUGIN_BUILD_EXODUS`: Support for ExodusII (.ex2) file format. Requires that VTK has been built with `IOExodus` module (and `hdf5`). Enabled by default. * `F3D_PLUGIN_BUILD_OCCT`: Support for STEP, IGES, BREP, and XBF file formats. Requires `OpenCASCADE`. Disabled by default. * `F3D_PLUGIN_BUILD_ASSIMP`: Support for FBX, DAE, OFF, DXF, X and 3MF file formats. Requires `Assimp`. Disabled by default. * `F3D_PLUGIN_BUILD_ALEMBIC`: Support for ABC file format. Requires `Alembic`. Disabled by default. * `F3D_PLUGIN_BUILD_DRACO`: Support for DRC file format. Requires `Draco`. Disabled by default. * `F3D_PLUGIN_BUILD_USD`: Support for USD file format. Requires `OpenUSD`. Disabled by default. * `F3D_PLUGIN_BUILD_VDB`: Support for VDB file format. Requires that VTK has been built with `IOOpenVDB` module (and `OpenVDB`). Disabled by default. * `F3D_BINDINGS_PYTHON`: Generate python bindings (requires `Python` and `pybind11`). Disabled by default. * `F3D_BINDINGS_JAVA`: Generate java bindings (requires `Java` and `JNI`). Disabled by default. ## VCPKG It's possible to use VCPKG to automatically build dependencies. A manifest file `vcpkg.json` is available at your convenience. Please read [VCPKG documentation](https://vcpkg.io/en/getting-started.html). Basically, just install VCPKG, and configure F3D using `-DCMAKE_TOOLCHAIN_FILE=[path to vcpkg]/scripts/buildsystems/vcpkg.cmake` option. ## Installing Installation can be done through CMake, by running the following command: ``` cmake --install ${your_build_dir} ``` Individual components can also be installed by specifying the component name: ``` cmake --install ${your_build_dir} --component ${component_name} ``` Here is the list of all the components: Name|Installed by default|Operating system|Description ------|------|------|------ `application`|YES|ALL|F3D application. `configuration`|NO|ALL|Default configuration files, `config` and `thumbnail`. `library`|YES|ALL|libf3d library binaries. `plugin`|YES|ALL|libf3d plugins. `dependencies`|NO|ALL|libf3d runtime dependencies. Can be used to create a self-contained and relocatable package. System libraries are excluded. `sdk`|NO|ALL|libf3d SDK (headers and CMake config files) for `library` and `application` find_package components. `plugin_sdk`|NO|ALL|libf3d plugin SDK (headers and CMake config files including macros) for `pluginsdk` find_package components. `licenses`|YES|ALL|F3D and third party licenses. `documentation`|YES|Linux|`man` documentation. `shellext`|YES|Windows/Linux|Desktop integration. `python`|YES|ALL|Python bindings. `java`|YES|ALL|Java bindings. `mimetypes`|NO|Linux|Plugins mimetype XML files for integration with Freedesktop. `assets`|YES|Linux|Assets for integration with Freedesktop. `colormaps`|NO|ALL|Color maps presets, see [documentation](/doc/user/COLOR_MAPS.html) ", "url": "/doc/dev/BUILD.html", "relUrl": "/doc/dev/BUILD.html" @@ -232,7 +232,7 @@ },"33": { "doc": "Usage", "title": "Usage", - "content": "# Usage Once F3D has been [installed](/doc/user/INSTALLATION.html), you should be able to open any [supported file](#supported-file-formats), by either: * Using F3D automatically, from your file manager, by directly opening a file. * Running F3D and then dragging and dropping files into it to open them. * By running F3D from the terminal with a set of command-line [options](/doc/user/OPTIONS.html). * As a [thumbnailer](/doc/user/DESKTOP_INTEGRATION.html) for all supported file formats with certain file managers. ## Supported file formats Here is the list of supported file formats: * **.vtk** : the legacy VTK format * **.vt[p\\|u\\|r\\|i\\|s\\|m]** : XML based VTK formats * **.ply** : Polygon File format * **.stl** : Standard Triangle Language format * **.dcm** : DICOM file format * **.nrrd/.nhrd** : \"nearly raw raster data\" file format * **.mhd/.mha** : MetaHeader MetaIO file format * **.tif/.tiff** : TIFF 2D/3D file format * **.ex2/.e/.exo/.g** : Exodus 2 file format * **.gml** : CityGML file format * **.pts** : Point Cloud file format * **.step/.stp** : CAD STEP exchange ISO format * **.iges/.igs** : CAD Initial Graphics Exchange Specification format * **.brep** : Open CASCADE BRep format * **.abc** : Alembic format * **.vdb** : VDB format (experimental) * **.obj** : Wavefront OBJ file format (full scene and default scene) * **.gltf/.glb** : GL Transmission Format (full scene and default scene) * **.3ds** : Autodesk 3D Studio file format (full scene) * **.wrl** : VRML file format (full scene) * **.fbx** : Autodesk Filmbox (full scene) * **.dae** : COLLADA (full scene) * **.off** : Object File Format (full scene) * **.dxf** : Drawing Exchange Format (full scene) * **.x** : DirectX Format (full scene) * **.3mf** : 3D Manufacturing Format (full scene) * **.usd** : Universal Scene Description (full scene) ## Scene construction The **full scene** formats (.gltf/.glb, .3ds, .wrl, .obj, .fbx, .dae, .off, .x, .3mf, .usd) contain not only *geometry*, but also some scene information like *lights*, *cameras*, *actors* in the scene, as well as *texture* properties. By default, all this information will be loaded from the file and displayed. Use the `--geometry-only` [options](/doc/user/OPTIONS.html) to modify this behavior. For file formats that do not support it, **a default scene** is created. ## Animations F3D can play animations for a number of file formats (.ex2/.e/.exo/.g, .gltf/.glb, .fbx, .dae, .x, .usd) if the file contains an animation. It is possible to select the animation to play using `--animation-index`, or to play all animations at once using `--animation-index=-1` (.gltf/.glb only). When F3D plays an animation, it assumes the time unit is in seconds to show accurate speed of animation. Use `--animation-speed-factor` if an adjustment is needed. By default, F3D will try update the scene 60 times per seconds, use `--animation-frame-rate` to change that if needed. Press \"W\" hotkey to cycle through available animations. ## Plugins If you installed F3D using a package manager, it's possible that the packager chose to bundle the plugins in different packages or to list plugin dependencies as optional dependencies to reduce the reduce the number of dependencies of the main package. In this case, in order to open a file that requires a plugin, you will have to make sure all needed dependencies are installed and specify which plugin you want to load in order to be able to open this file. You can either use the `--load-plugins` option or add a line in the [configuration file](/doc/user/CONFIGURATION_FILE.html), if not already. Several plugins can be specified by giving a comma-separated list. Here is the list of plugins provided officially by F3D: - **alembic**: ABC support - **assimp**: FBX, DAE, OFF, DXF, X and 3MF support - **draco**: DRC support - **exodus**: EX2 support - **occt**: STEP and IGES support - **usd**: USD, USDA, UDSC and USDZ support - **vdb**: VDB support (experimental) > Note: If you downloaded the binaries from the Release page, it's not necessary to specify manually the plugins above, all of them are loaded automatically. Here is how the plugins are searched (by precedence order): 1. Search the static plugins 2. Consider the option given is a full path 3. Search in the paths specified in `F3D_PLUGINS_PATH` environment variable 4. Search in a directory relative to the F3D application: `../lib` 5. Rely on OS specific paths (e.g. `LD_LIBRARY_PATH` on Linux or `DYLD_LIBRARY_PATH` on macOS) You can also try plugins maintained by the community. If you have created a plugin and would like it to be listed here, please submit a pull request. - **Abaqus**: ODB support by @YangShen398 ([repository](https://github.com/YangShen398/F3D-ODB-Reader-Plugin)) ", + "content": "# Usage Once F3D has been [installed](/doc/user/INSTALLATION.html), you should be able to open any [supported file](#supported-file-formats), by either: * Using F3D automatically, from your file manager, by directly opening a file. * Running F3D and then dragging and dropping files into it to open them. * By running F3D from the terminal with a set of command-line [options](/doc/user/OPTIONS.html). * As a [thumbnailer](/doc/user/DESKTOP_INTEGRATION.html) for all supported file formats with certain file managers. ## Supported file formats Here is the list of supported file formats: * **.vtk** : the legacy VTK format * **.vt[p\\|u\\|r\\|i\\|s\\|m]** : XML based VTK formats * **.ply** : Polygon File format * **.stl** : Standard Triangle Language format * **.dcm** : DICOM file format * **.nrrd/.nhrd** : \"nearly raw raster data\" file format * **.mhd/.mha** : MetaHeader MetaIO file format * **.tif/.tiff** : TIFF 2D/3D file format * **.ex2/.e/.exo/.g** : Exodus 2 file format * **.gml** : CityGML file format * **.pts** : Point Cloud file format * **.step/.stp** : CAD STEP exchange ISO format * **.iges/.igs** : CAD Initial Graphics Exchange Specification format * **.brep** : Open CASCADE BRep format * **.xbf** : Open CASCADE XBF format * **.abc** : Alembic format * **.vdb** : VDB format (experimental) * **.obj** : Wavefront OBJ file format (full scene and default scene) * **.gltf/.glb** : GL Transmission Format (full scene and default scene) * **.3ds** : Autodesk 3D Studio file format (full scene) * **.wrl** : VRML file format (full scene) * **.fbx** : Autodesk Filmbox (full scene) * **.dae** : COLLADA (full scene) * **.off** : Object File Format (full scene) * **.dxf** : Drawing Exchange Format (full scene) * **.x** : DirectX Format (full scene) * **.3mf** : 3D Manufacturing Format (full scene) * **.usd** : Universal Scene Description (full scene) ## Scene construction The **full scene** formats (.gltf/.glb, .3ds, .wrl, .obj, .fbx, .dae, .off, .x, .3mf, .usd) contain not only *geometry*, but also some scene information like *lights*, *cameras*, *actors* in the scene, as well as *texture* properties. By default, all this information will be loaded from the file and displayed. Use the `--geometry-only` [options](/doc/user/OPTIONS.html) to modify this behavior. For file formats that do not support it, **a default scene** is created. ## Animations F3D can play animations for a number of file formats (.ex2/.e/.exo/.g, .gltf/.glb, .fbx, .dae, .x, .usd) if the file contains an animation. It is possible to select the animation to play using `--animation-index`, or to play all animations at once using `--animation-index=-1` (.gltf/.glb only). When F3D plays an animation, it assumes the time unit is in seconds to show accurate speed of animation. Use `--animation-speed-factor` if an adjustment is needed. By default, F3D will try update the scene 60 times per seconds, use `--animation-frame-rate` to change that if needed. Press \"W\" hotkey to cycle through available animations. ## Plugins If you installed F3D using a package manager, it's possible that the packager chose to bundle the plugins in different packages or to list plugin dependencies as optional dependencies to reduce the reduce the number of dependencies of the main package. In this case, in order to open a file that requires a plugin, you will have to make sure all needed dependencies are installed and specify which plugin you want to load in order to be able to open this file. You can either use the `--load-plugins` option or add a line in the [configuration file](/doc/user/CONFIGURATION_FILE.html), if not already. Several plugins can be specified by giving a comma-separated list. Here is the list of plugins provided officially by F3D: - **alembic**: ABC support - **assimp**: FBX, DAE, OFF, DXF, X and 3MF support - **draco**: DRC support - **exodus**: EX2 support - **occt**: STEP and IGES support - **usd**: USD, USDA, UDSC and USDZ support - **vdb**: VDB support (experimental) > Note: If you downloaded the binaries from the Release page, it's not necessary to specify manually the plugins above, all of them are loaded automatically. Here is how the plugins are searched (by precedence order): 1. Search the static plugins 2. Consider the option given is a full path 3. Search in the paths specified in `F3D_PLUGINS_PATH` environment variable 4. Search in a directory relative to the F3D application: `../lib` 5. Rely on OS specific paths (e.g. `LD_LIBRARY_PATH` on Linux or `DYLD_LIBRARY_PATH` on macOS) You can also try plugins maintained by the community. If you have created a plugin and would like it to be listed here, please submit a pull request. - **Abaqus**: ODB support by @YangShen398 ([repository](https://github.com/YangShen398/F3D-ODB-Reader-Plugin)) ", "url": "/doc/user/USAGE.html", "relUrl": "/doc/user/USAGE.html" diff --git a/doc/dev/BUILD.html b/doc/dev/BUILD.html index d30464c126..eb84389dfc 100644 --- a/doc/dev/BUILD.html +++ b/doc/dev/BUILD.html @@ -1,3 +1,3 @@ - Build | F3D Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Build guide

F3D uses a CMake based build system, so building F3D just requires installing needed dependencies, configuring and building. If you are not used to such processes please take a look at our getting started guide.

Dependencies

  • CMake >= 3.1.
  • VTK >= 9.2.6 (9.3.1 recommended).
  • A C++17 compiler.
  • A CMake-compatible build system (Visual Studio, XCode, Ninja, Make, etc.).
  • Optionally, Assimp >= 5.0.
  • Optionally, Open CASCADE OCCT >= 7.5.2.
  • Optionally, Alembic >= 1.7.
  • Optionally, OpenUSD >= 23.05.
  • Optionally, OpenVDB >= 10.0.0, enable IOOpenVDB VTK module.
  • Optionally, Draco >= 1.5.
  • Optionally, Python >= 3.6 and pybind11 >= 2.2.
  • Optionally, Java >= 18.
  • Optionally, OpenEXR >= 3.0.

VTK compatibility

As stated in the dependencies, F3D is compatible with VTK >= 9.2.6, however, some features may not be available. We suggest using VTK 9.3.1 with RenderingRayTracing, RenderingExternal, IOExodus and IOOpenVDB modules enabled in order to get as many features as possible in F3D.

Configuration and building

Configure and generate the project with CMake, then build the software using your build system.

Here is some CMake options of interest:

  • F3D_BUILD_APPLICATION: Build the F3D executable.
  • BUILD_TESTING: Enable the tests.
  • F3D_MACOS_BUNDLE: On macOS, build a .app bundle.
  • F3D_WINDOWS_GUI: On Windows, build a Win32 application (without console).
  • F3D_WINDOWS_BUILD_SHELL_THUMBNAILS_EXTENSION: On Windows, build the shell thumbnails extension.
  • F3D_PLUGINS_STATIC_BUILD: Build all plugins as static library (embedded into libf3d) and automatically loaded by the application. Incompatible with F3D_MACOS_BUNDLE.
  • BUILD_SHARED_LIBS: Build the libf3d and all plugins as static library (embedded into f3d executable). The library and plugin_sdk component will not be installed.

Some modules, plugins and bindings depending on external libraries can be optionally enabled with the following CMake variables:

  • F3D_MODULE_RAYTRACING: Support for raytracing rendering. Requires that VTK has been built with OSPRay and VTK_MODULE_ENABLE_VTK_RenderingRayTracing turned on. Disabled by default.
  • F3D_MODULE_EXTERNAL_RENDERING: Support for external render window. Requires that VTK has been built with VTK_MODULE_ENABLE_VTK_RenderingExternal turned on. Disabled by default.
  • F3D_MODULE_EXR: Support for OpenEXR images. Requires OpenEXR. Disabled by default.
  • F3D_PLUGIN_BUILD_EXODUS: Support for ExodusII (.ex2) file format. Requires that VTK has been built with IOExodus module (and hdf5). Enabled by default.
  • F3D_PLUGIN_BUILD_OCCT: Support for STEP, IGES and BREP file formats. Requires OpenCASCADE. Disabled by default.
  • F3D_PLUGIN_BUILD_ASSIMP: Support for FBX, DAE, OFF, DXF, X and 3MF file formats. Requires Assimp. Disabled by default.
  • F3D_PLUGIN_BUILD_ALEMBIC: Support for ABC file format. Requires Alembic. Disabled by default.
  • F3D_PLUGIN_BUILD_DRACO: Support for DRC file format. Requires Draco. Disabled by default.
  • F3D_PLUGIN_BUILD_USD: Support for USD file format. Requires OpenUSD. Disabled by default.
  • F3D_PLUGIN_BUILD_VDB: Support for VDB file format. Requires that VTK has been built with IOOpenVDB module (and OpenVDB). Disabled by default.
  • F3D_BINDINGS_PYTHON: Generate python bindings (requires Python and pybind11). Disabled by default.
  • F3D_BINDINGS_JAVA: Generate java bindings (requires Java and JNI). Disabled by default.

VCPKG

It’s possible to use VCPKG to automatically build dependencies. A manifest file vcpkg.json is available at your convenience. Please read VCPKG documentation.
Basically, just install VCPKG, and configure F3D using -DCMAKE_TOOLCHAIN_FILE=[path to vcpkg]/scripts/buildsystems/vcpkg.cmake option.

Installing

Installation can be done through CMake, by running the following command:

cmake --install ${your_build_dir}
+              Build | F3D                      Skip to main content   Link      Menu      Expand       (external link)    Document      Search       Copy       Copied        

Build guide

F3D uses a CMake based build system, so building F3D just requires installing needed dependencies, configuring and building. If you are not used to such processes please take a look at our getting started guide.

Dependencies

  • CMake >= 3.1.
  • VTK >= 9.2.6 (9.3.1 recommended).
  • A C++17 compiler.
  • A CMake-compatible build system (Visual Studio, XCode, Ninja, Make, etc.).
  • Optionally, Assimp >= 5.0.
  • Optionally, Open CASCADE OCCT >= 7.5.2.
  • Optionally, Alembic >= 1.7.
  • Optionally, OpenUSD >= 23.05.
  • Optionally, OpenVDB >= 10.0.0, enable IOOpenVDB VTK module.
  • Optionally, Draco >= 1.5.
  • Optionally, Python >= 3.6 and pybind11 >= 2.2.
  • Optionally, Java >= 18.
  • Optionally, OpenEXR >= 3.0.

VTK compatibility

As stated in the dependencies, F3D is compatible with VTK >= 9.2.6, however, some features may not be available. We suggest using VTK 9.3.1 with RenderingRayTracing, RenderingExternal, IOExodus and IOOpenVDB modules enabled in order to get as many features as possible in F3D.

Configuration and building

Configure and generate the project with CMake, then build the software using your build system.

Here is some CMake options of interest:

  • F3D_BUILD_APPLICATION: Build the F3D executable.
  • BUILD_TESTING: Enable the tests.
  • F3D_MACOS_BUNDLE: On macOS, build a .app bundle.
  • F3D_WINDOWS_GUI: On Windows, build a Win32 application (without console).
  • F3D_WINDOWS_BUILD_SHELL_THUMBNAILS_EXTENSION: On Windows, build the shell thumbnails extension.
  • F3D_PLUGINS_STATIC_BUILD: Build all plugins as static library (embedded into libf3d) and automatically loaded by the application. Incompatible with F3D_MACOS_BUNDLE.
  • BUILD_SHARED_LIBS: Build the libf3d and all plugins as static library (embedded into f3d executable). The library and plugin_sdk component will not be installed.

Some modules, plugins and bindings depending on external libraries can be optionally enabled with the following CMake variables:

  • F3D_MODULE_RAYTRACING: Support for raytracing rendering. Requires that VTK has been built with OSPRay and VTK_MODULE_ENABLE_VTK_RenderingRayTracing turned on. Disabled by default.
  • F3D_MODULE_EXTERNAL_RENDERING: Support for external render window. Requires that VTK has been built with VTK_MODULE_ENABLE_VTK_RenderingExternal turned on. Disabled by default.
  • F3D_MODULE_EXR: Support for OpenEXR images. Requires OpenEXR. Disabled by default.
  • F3D_PLUGIN_BUILD_EXODUS: Support for ExodusII (.ex2) file format. Requires that VTK has been built with IOExodus module (and hdf5). Enabled by default.
  • F3D_PLUGIN_BUILD_OCCT: Support for STEP, IGES, BREP, and XBF file formats. Requires OpenCASCADE. Disabled by default.
  • F3D_PLUGIN_BUILD_ASSIMP: Support for FBX, DAE, OFF, DXF, X and 3MF file formats. Requires Assimp. Disabled by default.
  • F3D_PLUGIN_BUILD_ALEMBIC: Support for ABC file format. Requires Alembic. Disabled by default.
  • F3D_PLUGIN_BUILD_DRACO: Support for DRC file format. Requires Draco. Disabled by default.
  • F3D_PLUGIN_BUILD_USD: Support for USD file format. Requires OpenUSD. Disabled by default.
  • F3D_PLUGIN_BUILD_VDB: Support for VDB file format. Requires that VTK has been built with IOOpenVDB module (and OpenVDB). Disabled by default.
  • F3D_BINDINGS_PYTHON: Generate python bindings (requires Python and pybind11). Disabled by default.
  • F3D_BINDINGS_JAVA: Generate java bindings (requires Java and JNI). Disabled by default.

VCPKG

It’s possible to use VCPKG to automatically build dependencies. A manifest file vcpkg.json is available at your convenience. Please read VCPKG documentation.
Basically, just install VCPKG, and configure F3D using -DCMAKE_TOOLCHAIN_FILE=[path to vcpkg]/scripts/buildsystems/vcpkg.cmake option.

Installing

Installation can be done through CMake, by running the following command:

cmake --install ${your_build_dir}
 

Individual components can also be installed by specifying the component name:

cmake --install ${your_build_dir} --component ${component_name}
 

Here is the list of all the components:

Name Installed by default Operating system Description
application YES ALL F3D application.
configuration NO ALL Default configuration files, config and thumbnail.
library YES ALL libf3d library binaries.
plugin YES ALL libf3d plugins.
dependencies NO ALL libf3d runtime dependencies. Can be used to create a self-contained and relocatable package. System libraries are excluded.
sdk NO ALL libf3d SDK (headers and CMake config files) for library and application find_package components.
plugin_sdk NO ALL libf3d plugin SDK (headers and CMake config files including macros) for pluginsdk find_package components.
licenses YES ALL F3D and third party licenses.
documentation YES Linux man documentation.
shellext YES Windows/Linux Desktop integration.
python YES ALL Python bindings.
java YES ALL Java bindings.
mimetypes NO Linux Plugins mimetype XML files for integration with Freedesktop.
assets YES Linux Assets for integration with Freedesktop.
colormaps NO ALL Color maps presets, see documentation
diff --git a/doc/dev/BUILD.md b/doc/dev/BUILD.md index 9ee94d3639..d00f9307ba 100644 --- a/doc/dev/BUILD.md +++ b/doc/dev/BUILD.md @@ -44,7 +44,7 @@ Some modules, plugins and bindings depending on external libraries can be option * `F3D_MODULE_EXTERNAL_RENDERING`: Support for external render window. Requires that VTK has been built with `VTK_MODULE_ENABLE_VTK_RenderingExternal` turned on. Disabled by default. * `F3D_MODULE_EXR`: Support for OpenEXR images. Requires `OpenEXR`. Disabled by default. * `F3D_PLUGIN_BUILD_EXODUS`: Support for ExodusII (.ex2) file format. Requires that VTK has been built with `IOExodus` module (and `hdf5`). Enabled by default. -* `F3D_PLUGIN_BUILD_OCCT`: Support for STEP, IGES and BREP file formats. Requires `OpenCASCADE`. Disabled by default. +* `F3D_PLUGIN_BUILD_OCCT`: Support for STEP, IGES, BREP, and XBF file formats. Requires `OpenCASCADE`. Disabled by default. * `F3D_PLUGIN_BUILD_ASSIMP`: Support for FBX, DAE, OFF, DXF, X and 3MF file formats. Requires `Assimp`. Disabled by default. * `F3D_PLUGIN_BUILD_ALEMBIC`: Support for ABC file format. Requires `Alembic`. Disabled by default. * `F3D_PLUGIN_BUILD_DRACO`: Support for DRC file format. Requires `Draco`. Disabled by default. diff --git a/doc/user/USAGE.html b/doc/user/USAGE.html index 0e55e6e432..43de20e9c3 100644 --- a/doc/user/USAGE.html +++ b/doc/user/USAGE.html @@ -1 +1 @@ - Usage | F3D Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Usage

Once F3D has been installed, you should be able to open any supported file, by either:

  • Using F3D automatically, from your file manager, by directly opening a file.
  • Running F3D and then dragging and dropping files into it to open them.
  • By running F3D from the terminal with a set of command-line options.
  • As a thumbnailer for all supported file formats with certain file managers.

Supported file formats

Here is the list of supported file formats:

  • .vtk : the legacy VTK format
  • .vt[p|u|r|i|s|m] : XML based VTK formats
  • .ply : Polygon File format
  • .stl : Standard Triangle Language format
  • .dcm : DICOM file format
  • .nrrd/.nhrd : “nearly raw raster data” file format
  • .mhd/.mha : MetaHeader MetaIO file format
  • .tif/.tiff : TIFF 2D/3D file format
  • .ex2/.e/.exo/.g : Exodus 2 file format
  • .gml : CityGML file format
  • .pts : Point Cloud file format
  • .step/.stp : CAD STEP exchange ISO format
  • .iges/.igs : CAD Initial Graphics Exchange Specification format
  • .brep : Open CASCADE BRep format
  • .abc : Alembic format
  • .vdb : VDB format (experimental)
  • .obj : Wavefront OBJ file format (full scene and default scene)
  • .gltf/.glb : GL Transmission Format (full scene and default scene)
  • .3ds : Autodesk 3D Studio file format (full scene)
  • .wrl : VRML file format (full scene)
  • .fbx : Autodesk Filmbox (full scene)
  • .dae : COLLADA (full scene)
  • .off : Object File Format (full scene)
  • .dxf : Drawing Exchange Format (full scene)
  • .x : DirectX Format (full scene)
  • .3mf : 3D Manufacturing Format (full scene)
  • .usd : Universal Scene Description (full scene)

Scene construction

The full scene formats (.gltf/.glb, .3ds, .wrl, .obj, .fbx, .dae, .off, .x, .3mf, .usd) contain not only geometry, but also some scene information like lights, cameras, actors in the scene, as well as texture properties. By default, all this information will be loaded from the file and displayed. Use the --geometry-only options to modify this behavior. For file formats that do not support it, a default scene is created.

Animations

F3D can play animations for a number of file formats (.ex2/.e/.exo/.g, .gltf/.glb, .fbx, .dae, .x, .usd) if the file contains an animation. It is possible to select the animation to play using --animation-index, or to play all animations at once using --animation-index=-1 (.gltf/.glb only). When F3D plays an animation, it assumes the time unit is in seconds to show accurate speed of animation. Use --animation-speed-factor if an adjustment is needed. By default, F3D will try update the scene 60 times per seconds, use --animation-frame-rate to change that if needed. Press “W” hotkey to cycle through available animations.

Plugins

If you installed F3D using a package manager, it’s possible that the packager chose to bundle the plugins in different packages or to list plugin dependencies as optional dependencies to reduce the reduce the number of dependencies of the main package. In this case, in order to open a file that requires a plugin, you will have to make sure all needed dependencies are installed and specify which plugin you want to load in order to be able to open this file. You can either use the --load-plugins option or add a line in the configuration file, if not already. Several plugins can be specified by giving a comma-separated list. Here is the list of plugins provided officially by F3D:

  • alembic: ABC support
  • assimp: FBX, DAE, OFF, DXF, X and 3MF support
  • draco: DRC support
  • exodus: EX2 support
  • occt: STEP and IGES support
  • usd: USD, USDA, UDSC and USDZ support
  • vdb: VDB support (experimental)

Note: If you downloaded the binaries from the Release page, it’s not necessary to specify manually the plugins above, all of them are loaded automatically.

Here is how the plugins are searched (by precedence order):

  1. Search the static plugins
  2. Consider the option given is a full path
  3. Search in the paths specified in F3D_PLUGINS_PATH environment variable
  4. Search in a directory relative to the F3D application: ../lib
  5. Rely on OS specific paths (e.g. LD_LIBRARY_PATH on Linux or DYLD_LIBRARY_PATH on macOS)

You can also try plugins maintained by the community. If you have created a plugin and would like it to be listed here, please submit a pull request.

  • Abaqus: ODB support by @YangShen398 (repository)
+ Usage | F3D Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Usage

Once F3D has been installed, you should be able to open any supported file, by either:

  • Using F3D automatically, from your file manager, by directly opening a file.
  • Running F3D and then dragging and dropping files into it to open them.
  • By running F3D from the terminal with a set of command-line options.
  • As a thumbnailer for all supported file formats with certain file managers.

Supported file formats

Here is the list of supported file formats:

  • .vtk : the legacy VTK format
  • .vt[p|u|r|i|s|m] : XML based VTK formats
  • .ply : Polygon File format
  • .stl : Standard Triangle Language format
  • .dcm : DICOM file format
  • .nrrd/.nhrd : “nearly raw raster data” file format
  • .mhd/.mha : MetaHeader MetaIO file format
  • .tif/.tiff : TIFF 2D/3D file format
  • .ex2/.e/.exo/.g : Exodus 2 file format
  • .gml : CityGML file format
  • .pts : Point Cloud file format
  • .step/.stp : CAD STEP exchange ISO format
  • .iges/.igs : CAD Initial Graphics Exchange Specification format
  • .brep : Open CASCADE BRep format
  • .xbf : Open CASCADE XBF format
  • .abc : Alembic format
  • .vdb : VDB format (experimental)
  • .obj : Wavefront OBJ file format (full scene and default scene)
  • .gltf/.glb : GL Transmission Format (full scene and default scene)
  • .3ds : Autodesk 3D Studio file format (full scene)
  • .wrl : VRML file format (full scene)
  • .fbx : Autodesk Filmbox (full scene)
  • .dae : COLLADA (full scene)
  • .off : Object File Format (full scene)
  • .dxf : Drawing Exchange Format (full scene)
  • .x : DirectX Format (full scene)
  • .3mf : 3D Manufacturing Format (full scene)
  • .usd : Universal Scene Description (full scene)

Scene construction

The full scene formats (.gltf/.glb, .3ds, .wrl, .obj, .fbx, .dae, .off, .x, .3mf, .usd) contain not only geometry, but also some scene information like lights, cameras, actors in the scene, as well as texture properties. By default, all this information will be loaded from the file and displayed. Use the --geometry-only options to modify this behavior. For file formats that do not support it, a default scene is created.

Animations

F3D can play animations for a number of file formats (.ex2/.e/.exo/.g, .gltf/.glb, .fbx, .dae, .x, .usd) if the file contains an animation. It is possible to select the animation to play using --animation-index, or to play all animations at once using --animation-index=-1 (.gltf/.glb only). When F3D plays an animation, it assumes the time unit is in seconds to show accurate speed of animation. Use --animation-speed-factor if an adjustment is needed. By default, F3D will try update the scene 60 times per seconds, use --animation-frame-rate to change that if needed. Press “W” hotkey to cycle through available animations.

Plugins

If you installed F3D using a package manager, it’s possible that the packager chose to bundle the plugins in different packages or to list plugin dependencies as optional dependencies to reduce the reduce the number of dependencies of the main package. In this case, in order to open a file that requires a plugin, you will have to make sure all needed dependencies are installed and specify which plugin you want to load in order to be able to open this file. You can either use the --load-plugins option or add a line in the configuration file, if not already. Several plugins can be specified by giving a comma-separated list. Here is the list of plugins provided officially by F3D:

  • alembic: ABC support
  • assimp: FBX, DAE, OFF, DXF, X and 3MF support
  • draco: DRC support
  • exodus: EX2 support
  • occt: STEP and IGES support
  • usd: USD, USDA, UDSC and USDZ support
  • vdb: VDB support (experimental)

Note: If you downloaded the binaries from the Release page, it’s not necessary to specify manually the plugins above, all of them are loaded automatically.

Here is how the plugins are searched (by precedence order):

  1. Search the static plugins
  2. Consider the option given is a full path
  3. Search in the paths specified in F3D_PLUGINS_PATH environment variable
  4. Search in a directory relative to the F3D application: ../lib
  5. Rely on OS specific paths (e.g. LD_LIBRARY_PATH on Linux or DYLD_LIBRARY_PATH on macOS)

You can also try plugins maintained by the community. If you have created a plugin and would like it to be listed here, please submit a pull request.

  • Abaqus: ODB support by @YangShen398 (repository)
diff --git a/doc/user/USAGE.md b/doc/user/USAGE.md index eda05654aa..d12ac95d0a 100644 --- a/doc/user/USAGE.md +++ b/doc/user/USAGE.md @@ -25,6 +25,7 @@ Here is the list of supported file formats: * **.step/.stp** : CAD STEP exchange ISO format * **.iges/.igs** : CAD Initial Graphics Exchange Specification format * **.brep** : Open CASCADE BRep format +* **.xbf** : Open CASCADE XBF format * **.abc** : Alembic format * **.vdb** : VDB format (experimental) * **.obj** : Wavefront OBJ file format (full scene and default scene)