diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml new file mode 100644 index 0000000..9b3274c --- /dev/null +++ b/.github/workflows/continuous-integration.yml @@ -0,0 +1,21 @@ +name: Continuous Integration + +on: + - pull_request + +jobs: + docs: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - name: Setup TeX Live + uses: teatimeguest/setup-texlive-action@v3 + with: + package-file: | + ci/texlive/texlive_packages + - name: Sphinx Action + uses: ammaraskar/sphinx-action@master + with: + docs-folder: "." \ No newline at end of file diff --git a/.readthedocs.yml b/.readthedocs.yaml similarity index 80% rename from .readthedocs.yml rename to .readthedocs.yaml index 826904a..8718daa 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yaml @@ -5,6 +5,12 @@ # Required version: 2 +# Set the version of Python and other tools you might need +build: + os: ubuntu-22.04 + tools: + python: "3.11" + # Build documentation in the docs/ directory with Sphinx sphinx: configuration: source/conf.py @@ -14,6 +20,5 @@ formats: all # Optionally set the version of Python and requirements required to build your docs python: - version: 3.7 install: - requirements: requirements.txt diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index f87de5f..0000000 --- a/.travis.yml +++ /dev/null @@ -1,60 +0,0 @@ -dist: xenial - -language: python - -python: - - 3.5 - -install: - - pip install -r requirements.txt - - source ./ci/texlive/texlive_install.sh - -cache: - directories: - - /tmp/texlive - - $HOME/.texlive - -script: - - cd ${TRAVIS_BUILD_DIR} - - make html - - make latex - - cd build/latex - - LATEXNAME=meshroom - #- pdflatex -interaction nonstopmode -halt-on-error -file-line-error ${LATEXNAME}.tex - - pdflatex -interaction nonstopmode -file-line-error ${LATEXNAME}.tex - - - # in case there are other latex packages to install texliveonfly will do the - # installation of the required packages automatically - # - make latex - # - cd build - # - cd latex - # - texliveonfly meshroom.tex - # or add them to the list in ci/texlive/texlive_packages - -before_deploy: - - BUILD_DIR=${TRAVIS_BUILD_DIR}/build - - ARCHIVE_BASE_PATH=${BUILD_DIR} - - TARGET_VERSION=$(echo ${TRAVIS_TAG} | cut -d "v" -f2) - # deploy the html - - TARGET_NAME=html - - TARGET_FULL_NAME=meshroom_doc-${TARGET_NAME}-${TARGET_VERSION} - - INSTALL_ARCHIVE_FILENAME=${TARGET_FULL_NAME}.tgz - - cd ${BUILD_DIR} - - tar -czvf ${INSTALL_ARCHIVE_FILENAME} ${TARGET_NAME} - # deploy the pdf - - TARGET_NAME=pdf - - TARGET_FULL_NAME=meshroom_doc-${TARGET_VERSION} - - INSTALL_PDF_FILENAME=${TARGET_FULL_NAME}.pdf - - cp latex/${LATEXNAME}.pdf ${INSTALL_PDF_FILENAME} - -deploy: - provider: releases - api_key: - secure: ${GITHUB_RELEASE_API_KEY} - file: - - ${ARCHIVE_BASE_PATH}/${INSTALL_ARCHIVE_FILENAME} - - ${ARCHIVE_BASE_PATH}/${INSTALL_PDF_FILENAME} - skip_cleanup: true - on: - tags: true diff --git a/requirements.txt b/requirements.txt index 7a94f69..2faeac7 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,3 @@ -sphinx>=1.9.0 +sphinx>=5.0 sphinx_rtd_theme -sphinxcontrib-bibtex<2.0.0 +sphinxcontrib-bibtex diff --git a/source/capturing/capturing.rst b/source/capturing/capturing.rst index 12f794a..b41cc75 100644 --- a/source/capturing/capturing.rst +++ b/source/capturing/capturing.rst @@ -4,16 +4,16 @@ Capturing If this is the first time you are using photogrammetry software, read the following chapter on how to take good photos for your project. **Basics** ------- +---------- - Your scene/object should be well lit. - Avoid shadows, reflections, and transparent objects. - Take the photos in diffuse or indirect lighting, such as on an overcast day (outdoor) or using multiple light sources (indoor). -- DonĀ“t use the flash setting on the camera. +- Don't use the flash setting on the camera. - Do not change the focal length/zoom while shooting. Use a fixed focal length lens if possible. - Try to take pictures from all angles. - Avoid moving objects in the scene or background. -- If taking pictures using a rotating rig, make sure to use a plain color background with no distiguishable features. +- If taking pictures using a rotating rig, make sure to use a plain color background with no distinguishable features. - The object of interest should always fill most of the image. - Take images with a side overlap of 60% minimum and frontal overlap of 80% minimum. - For each shot, move to a new position (or rotate the object). diff --git a/source/conf.py b/source/conf.py index 9a5b6c8..30cef1c 100644 --- a/source/conf.py +++ b/source/conf.py @@ -40,6 +40,7 @@ # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = ['sphinx.ext.autodoc', 'sphinx.ext.autosectionlabel', 'sphinx_rtd_theme', 'sphinxcontrib.bibtex'] +bibtex_bibfiles = ['refs.bib'] sphinxVersion = sphinx.version_info if(sphinxVersion[0] <= 1 and sphinxVersion[1] <= 8) : extensions.append('sphinx.ext.pngmath') diff --git a/source/feature-documentation/cmd/photogrammetry.rst b/source/feature-documentation/cmd/photogrammetry.rst index f8ebccd..a57b97f 100644 --- a/source/feature-documentation/cmd/photogrammetry.rst +++ b/source/feature-documentation/cmd/photogrammetry.rst @@ -1,5 +1,5 @@ ``meshroom_batch (formerly meshroom_photogrammetry)`` -=========================== +===================================================== Launch the full photogrammetry or panorama HDR pipeline. diff --git a/source/feature-documentation/core/nodes.rst b/source/feature-documentation/core/nodes.rst index c900ecc..6946d30 100644 --- a/source/feature-documentation/core/nodes.rst +++ b/source/feature-documentation/core/nodes.rst @@ -39,6 +39,13 @@ These allow the progress and performance of the process to be monitored. API +++ +You can create custom nodes in python and make them available in Meshroom using the ``MESHROOM_NODES_PATH`` environment variable. + +In a standard precompiled version of Meshroom, you can also directly add custom nodes in ``lib/meshroom/nodes``. +If the nodes are placed in a custom folder there should be a Python module (an ``__init__.py`` file is needed) in the folder for the nodes to be recognized by Meshroom, . + +To add a new node, you need to create a Python class that inherits from ``desc.Node`` or ``desc.CommandLineNode``. + Naming ######