diff --git a/.github/workflows/documentation-workflow.yml b/.github/workflows/documentation-workflow.yml new file mode 100644 index 0000000..fa40a5e --- /dev/null +++ b/.github/workflows/documentation-workflow.yml @@ -0,0 +1,49 @@ +name: Awesome Documentation Build + +on: + workflow_dispatch: # Allow manual triggers + push: + branches: [ master ] + +jobs: + ubuntu-build: + name: Ubuntu Build + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + submodules: recursive + - name: Create build directory and run CMake + run: | + sudo apt-get -y update + sudo apt-get -y install doxygen graphviz freeglut3-dev qtbase5-dev qttools5-dev libxi-dev + mkdir cmake_download_dir + DOWNLOAD_FILE_COIN=coin-latest-Ubuntu2204-gcc11-x64.tar.gz + RELEASE_ID=`curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" https://api.github.com/repos/coin3d/coin/releases | jq -r --arg COIN_REPO_TAG_NAME "CI-builds" '.[] | select(.tag_name==$COIN_REPO_TAG_NAME) | .id'` + ASSET_ID=`curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" https://api.github.com/repos/coin3d/coin/releases/$RELEASE_ID | jq -r --arg DOWNLOAD_FILE_COIN "$DOWNLOAD_FILE_COIN" '.assets[] | select(.name==$DOWNLOAD_FILE_COIN) | .id'` + export DOWNLOAD_ADDRESS_COIN=https://api.github.com/repos/coin3d/coin/releases/assets/$ASSET_ID + echo download file $DOWNLOAD_FILE_COIN from address $DOWNLOAD_ADDRESS_COIN + curl -s -S -L -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" -H "Accept: application/octet-stream" -o $DOWNLOAD_FILE_COIN $DOWNLOAD_ADDRESS_COIN + tar xzf $DOWNLOAD_FILE_COIN -C cmake_download_dir + DOWNLOAD_FILE_SOQT=soqt-latest-Qt5-Ubuntu2204-gcc11-x64.tar.gz + RELEASE_ID=`curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" https://api.github.com/repos/coin3d/soqt/releases | jq -r --arg SOQT_REPO_TAG_NAME "CI-builds" '.[] | select(.tag_name==$SOQT_REPO_TAG_NAME) | .id'` + ASSET_ID=`curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" https://api.github.com/repos/coin3d/soqt/releases/$RELEASE_ID | jq -r --arg DOWNLOAD_FILE_SOQT "$DOWNLOAD_FILE_SOQT" '.assets[] | select(.name==$DOWNLOAD_FILE_SOQT) | .id'` + export DOWNLOAD_ADDRESS_SOQT=https://api.github.com/repos/coin3d/soqt/releases/assets/$ASSET_ID + echo download file $DOWNLOAD_FILE_SOQT from address $DOWNLOAD_ADDRESS_SOQT + curl -s -S -L -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" -H "Accept: application/octet-stream" -o $DOWNLOAD_FILE_SOQT $DOWNLOAD_ADDRESS_SOQT + tar xzf $DOWNLOAD_FILE_SOQT -C cmake_download_dir + curl -L -o doxygen-1.10.0.linux.bin.tar.gz https://github.com/doxygen/doxygen/releases/download/Release_1_10_0/doxygen-1.10.0.linux.bin.tar.gz + tar xzf doxygen-1.10.0.linux.bin.tar.gz + export PATH=${{ github.workspace }}/doxygen-1.10.0/bin:$PATH + cmake -S . -B cmake_build_dir -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=cmake_install_dir -DCMAKE_PREFIX_PATH=cmake_download_dir/Coin3D -DNUTSNBOLTS_BUILD_AWESOME_DOCUMENTATION=ON + - name: Build project + run: | + export PATH=${{ github.workspace }}/doxygen-1.10.0/bin:$PATH + doxygen --version + cmake --build cmake_build_dir --target documentation_awesome --config Release -- -j4 + - name: Deploy Awesome Documentation to Github Pages + uses: peaceiris/actions-gh-pages@v4 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: cmake_build_dir/html_awesome diff --git a/.gitmodules b/.gitmodules index 75696a7..be0d98f 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,7 @@ [submodule "cpack.d"] path = cpack.d url = https://github.com/coin3d/cpack.d +[submodule "docs/doxygen-awesome"] + path = docs/doxygen-awesome + url = https://github.com/coin3d/doxygen-awesome-css.git + branch = coin3d diff --git a/CMakeLists.txt b/CMakeLists.txt index e1ee701..47e399c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -57,6 +57,7 @@ option(NUTSNBOLTS_USE_QT6 "Prefer Qt6 over Qt5 if available" ON) option(NUTSNBOLTS_USE_QT5 "Prefer Qt5 over Qt4 if available" ON) option(NUTSNBOLTS_USE_WX "Prefer wxWidgets over Qt if available" OFF) option(NUTSNBOLTS_BUILD_DOCUMENTATION "Build and install API documentation (requires Doxygen)." OFF) +option(NUTSNBOLTS_BUILD_AWESOME_DOCUMENTATION "Build and install API documentation in new modern style (requires Doxygen)." OFF) cmake_dependent_option(NUTSNBOLTS_BUILD_INTERNAL_DOCUMENTATION "Document internal code not part of the API." OFF "NUTSNBOLTS_BUILD_DOCUMENTATION" OFF) cmake_dependent_option(NUTSNBOLTS_BUILD_DOC_MAN "Build NutsnBolts man pages." OFF "NUTSNBOLTS_BUILD_DOCUMENTATION" OFF) cmake_dependent_option(NUTSNBOLTS_BUILD_DOC_QTHELP "Build QtHelp documentation." OFF "NUTSNBOLTS_BUILD_DOCUMENTATION" OFF) @@ -69,6 +70,7 @@ report_prepare( NUTSNBOLTS_USE_QT5 NUTSNBOLTS_USE_WX NUTSNBOLTS_BUILD_DOCUMENTATION + NUTSNBOLTS_BUILD_AWESOME_DOCUMENTATION NUTSNBOLTS_BUILD_INTERNAL_DOCUMENTATION NUTSNBOLTS_BUILD_DOC_MAN NUTSNBOLTS_BUILD_DOC_QTHELP diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt index 9e53045..8b10903 100644 --- a/docs/CMakeLists.txt +++ b/docs/CMakeLists.txt @@ -89,7 +89,6 @@ if(NUTSNBOLTS_BUILD_DOCUMENTATION) # ############################################################################ # Setup documentation targets # ############################################################################ - add_custom_command( OUTPUT ${DOXYGEN_OUTPUT} COMMAND ${CMAKE_COMMAND} -E echo_append "Generating API documentation with Doxygen " @@ -115,3 +114,97 @@ if(NUTSNBOLTS_BUILD_DOCUMENTATION) message(STATUS "CMAKE_INSTALL_MANDIR ${CMAKE_INSTALL_MANDIR}") endif() endif() + +# Add a target to generate new modern API documentation with Doxygen +if(NUTSNBOLTS_BUILD_AWESOME_DOCUMENTATION) + find_package(Doxygen) + if(NOT DOXYGEN_FOUND) + message(FATAL_ERROR "Doxygen is needed to build the documentation.") + endif() + + if(NOT "${Coin_DOC_DIR}" STREQUAL "") + get_filename_component(_coin_versioned_dir ${Coin_DOC_DIR} NAME) + set(DOXYGEN_TAGFILES_AWESOME "${Coin_DOC_DIR}/html/Coin.tag=../../${_coin_versioned_dir}/html_awesome") + endif() + + find_package(Git QUIET) + if(GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git") + # Update submodules as needed + option(GIT_SUBMODULE "Check submodules during build" ON) + if(GIT_SUBMODULE) + message(STATUS "Submodule update") + execute_process(COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + RESULT_VARIABLE GIT_SUBMOD_RESULT) + if(NOT GIT_SUBMOD_RESULT EQUAL "0") + message(FATAL_ERROR "git submodule update --init --recursive failed with ${GIT_SUBMOD_RESULT}, please checkout submodules") + endif() + endif() + endif() + +# ############################################################################ +# Setup documentation options +# ############################################################################ + set(GENERATE_HTMLHELP NO) + set(DOXYGEN_GENERATE_MAN NO) + set(GENERATE_QHP NO) + set(GENERATE_TREEVIEW YES) + set(DOXYGEN_INTERNAL_DOCS NO) + set(DOXYGEN_EXTRACT_PRIVATE NO) + set(DOXYGEN_WARN_IF_UNDOCUMENTED YES) + set(DOXYGEN_EXCLUDE) + set(GITHUB_LINK "https://github.com/coin3d/nutsnbolts") + if(NUTSNBOLTS_BUILD_INTERNAL_DOCUMENTATION) + set(DOXYGEN_EXTRACT_PRIVATE YES) + set(DOXYGEN_WARN_IF_UNDOCUMENTED NO) + set(DOXYGEN_INTERNAL_DOCS YES) + set(NB_DOCUMENTATION_FILES + ${NB_DOCUMENTATION_FILES} + ${NB_INTERNAL_DOCUMENTATION_FILES} + CACHE INTERNAL "NB_DOCUMENTATION_FILES" + ) + else() + set(NB_DOCUMENTATION_EXCLUDE_SYMBOLS SoProfilerP) + foreach(XF ${NB_INTERNAL_DOCUMENTATION_FILES}) + set(DOXYGEN_EXCLUDE "${DOXYGEN_EXCLUDE} ${XF} \\\n") + endforeach(XF) + endif() + set(DOXYGEN_INPUT) + list(REMOVE_DUPLICATES NB_DOCUMENTATION_FILES) + foreach(XF ${NB_DOCUMENTATION_FILES}) + set(DOXYGEN_INPUT "${DOXYGEN_INPUT} ${XF} \\\n") + endforeach(XF) + dump_variable( + NB_DOCUMENTATION_FILES + DOXYGEN_INPUT + ) + set(DOXYGEN_EXCLUDE_SYMBOLS) + foreach(XF ${NB_DOCUMENTATION_EXCLUDE_SYMBOLS}) + set(DOXYGEN_EXCLUDE_SYMBOLS "${DOXYGEN_EXCLUDE_SYMBOLS} ${XF} \\\n") + endforeach(XF) + + set(DOXYFILE_AWESOME "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_awesome") + set(HTML_HEADER_AWESOME "${CMAKE_BINARY_DIR}/header_awesome.html") + set(DOXYGEN_OUTPUT_AWESOME "${CMAKE_BINARY_DIR}/html_awesome/index.html") + dump_variable(DOXYGEN_TAGFILES) + configure_file("${CMAKE_SOURCE_DIR}/docs/nutsnbolts.doxygen.awesome.cmake.in" ${DOXYFILE_AWESOME} @ONLY) + configure_file("${CMAKE_SOURCE_DIR}/docs/doxygen-awesome/doxygen-custom/header.html.cmake.in" ${HTML_HEADER_AWESOME} @ONLY) + +# ############################################################################ +# Setup documentation targets +# ############################################################################ + add_custom_command( + OUTPUT ${DOXYGEN_OUTPUT_AWESOME} + COMMAND ${CMAKE_COMMAND} -E echo_append "Generating modern API documentation with Doxygen " + COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYFILE_AWESOME} + COMMAND ${CMAKE_COMMAND} -E echo "done." + WORKING_DIRECTORY "${CMAKE_BINARY_DIR}" + DEPENDS ${DOXYFILE_AWESOME} + ) + add_custom_target(documentation_awesome ALL DEPENDS ${DOXYGEN_OUTPUT_AWESOME}) + +# ############################################################################ +# Install built documentation files +# ############################################################################ + install(DIRECTORY "${CMAKE_BINARY_DIR}/html_awesome" DESTINATION ${CMAKE_INSTALL_DOCDIR} COMPONENT documentation REGEX ".*\\.(chm|qch)" EXCLUDE) +endif() diff --git a/docs/doxygen-awesome b/docs/doxygen-awesome new file mode 160000 index 0000000..6217657 --- /dev/null +++ b/docs/doxygen-awesome @@ -0,0 +1 @@ +Subproject commit 6217657eef6aec24a0e4ecea4695031c1a622cf3 diff --git a/docs/nutsnbolts.doxygen.awesome.cmake.in b/docs/nutsnbolts.doxygen.awesome.cmake.in new file mode 100644 index 0000000..fbd82cf --- /dev/null +++ b/docs/nutsnbolts.doxygen.awesome.cmake.in @@ -0,0 +1,420 @@ +# Doxyfile 1.10.0 + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- +DOXYFILE_ENCODING = UTF-8 +PROJECT_NAME = @PROJECT_NAME@ +PROJECT_NUMBER = @PROJECT_VERSION@ +PROJECT_BRIEF = "An extension library for Coin" +PROJECT_LOGO = @CMAKE_SOURCE_DIR@/docs/doxygen/Coin_logo.png +PROJECT_ICON = +OUTPUT_DIRECTORY = +CREATE_SUBDIRS = NO +CREATE_SUBDIRS_LEVEL = 8 +ALLOW_UNICODE_NAMES = NO +OUTPUT_LANGUAGE = English +BRIEF_MEMBER_DESC = YES +REPEAT_BRIEF = YES +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the +ALWAYS_DETAILED_SEC = NO +INLINE_INHERITED_MEMB = NO +FULL_PATH_NAMES = NO +STRIP_FROM_PATH = +STRIP_FROM_INC_PATH = +SHORT_NAMES = NO +JAVADOC_AUTOBRIEF = YES +JAVADOC_BANNER = NO +QT_AUTOBRIEF = NO +MULTILINE_CPP_IS_BRIEF = NO +PYTHON_DOCSTRING = YES +INHERIT_DOCS = YES +SEPARATE_MEMBER_PAGES = NO +TAB_SIZE = 8 +ALIASES = "COININTERNAL=This API member is considered internal to the library, as it is not likely to be of interest to the application programmer.\n\n" \ + "DANGEROUS_ALLOC_RETURN=Note that if the Coin library has been built as a DLL under Microsoft Windows and you use this method from application code, you \e must make sure that both the Coin DLL and the application executable are using the same instance of a C Run-Time (CRT) library. Otherwise, you \e will get memory heap corruption upon deallocating the returned instances, eventually leading to mysterious crashes.\n\n" \ + "TOOLMAKER_REF=For extending the Coin library with your own classes, we strongly recommend that you make yourself acquainted with the excellent ?The Inventor Toolmaker? book (ISBN 0-201-62493-1), which describes the tasks involved in detail. This book was written by the original SGI Inventor designers and explains many of the underlying design ideas, as well as having lots of hands-on examples on how to extend the Coin toolkit in ways that are true to the fundamental design ideas. (?The Inventor Toolmaker? is also available at SGI's online library, at no cost. See Download The Inventor Toolmaker.) Reading the source code of the built-in classes in Coin should also prove very helpful.\n" \ + "COIN_CLASS_EXTENSION=Be aware that this class is an extension for Coin, and it is not available in the original SGI Open Inventor v2.1 API.\n" \ + "COIN_FUNCTION_EXTENSION=This function is an extension for Coin, and it is not available in the original SGI Open Inventor v2.1 API.\n" \ + "WEB3DCOPYRIGHT=The detailed class documentation is taken verbatim from the VRML97 standard (ISO/IEC 14772-1:1997). It is copyright The Web3D Consortium, and is used by permission of the Consortium:\n\n" \ + "ENDWEB3D=The rest of this class documentation is \e not from the VRML97 standards documentation, but was written specifically for the Coin3D API documentation.\n\n" \ + "ENGINE_TYPELESS_FILEFORMAT=The file format for this field is a bit special. Note the leading type specification, which is not necessary for most other field types:" \ + "NODEKIT_PRE_DIAGRAM=Node kit structure (new entries versus parent class marked with arrow prefix):" \ + "NODEKIT_POST_DIAGRAM=(See SoBaseKit::printDiagram() for information about the output formatting.)" \ + "NODEKIT_PRE_TABLE=Detailed information on catalog parts:" \ + "NODEKIT_POST_TABLE=(See SoBaseKit::printTable() for information about the output formatting.)" \ + "DRAGGER_CONSTRUCTOR=Default constructor, sets up the dragger nodekit catalog with the interaction and feedback geometry." \ + "DRAGGER_DEFAULT_SCREENSHOT=Here's how the dragger looks with its default geometry in the inactive state:" +OPTIMIZE_OUTPUT_FOR_C = NO +OPTIMIZE_OUTPUT_JAVA = NO +OPTIMIZE_FOR_FORTRAN = NO +OPTIMIZE_OUTPUT_VHDL = NO +OPTIMIZE_OUTPUT_SLICE = NO +EXTENSION_MAPPING = +MARKDOWN_SUPPORT = YES +TOC_INCLUDE_HEADINGS = 5 +MARKDOWN_ID_STYLE = DOXYGEN +AUTOLINK_SUPPORT = YES +BUILTIN_STL_SUPPORT = NO +CPP_CLI_SUPPORT = NO +SIP_SUPPORT = NO +IDL_PROPERTY_SUPPORT = YES +DISTRIBUTE_GROUP_DOC = NO +GROUP_NESTED_COMPOUNDS = NO +SUBGROUPING = YES +INLINE_GROUPED_CLASSES = NO +INLINE_SIMPLE_STRUCTS = NO +TYPEDEF_HIDES_STRUCT = NO +LOOKUP_CACHE_SIZE = 0 +NUM_PROC_THREADS = 1 +TIMESTAMP = YES +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- +EXTRACT_ALL = NO +EXTRACT_PRIVATE = @DOXYGEN_EXTRACT_PRIVATE@ +EXTRACT_PRIV_VIRTUAL = NO +EXTRACT_PACKAGE = NO +EXTRACT_STATIC = NO +EXTRACT_LOCAL_CLASSES = NO +EXTRACT_LOCAL_METHODS = NO +EXTRACT_ANON_NSPACES = YES +RESOLVE_UNNAMED_PARAMS = YES +HIDE_UNDOC_MEMBERS = NO +HIDE_UNDOC_CLASSES = NO +HIDE_FRIEND_COMPOUNDS = YES +HIDE_IN_BODY_DOCS = NO +INTERNAL_DOCS = @DOXYGEN_INTERNAL_DOCS@ +CASE_SENSE_NAMES = YES +HIDE_SCOPE_NAMES = NO +HIDE_COMPOUND_REFERENCE= NO +SHOW_HEADERFILE = YES +SHOW_INCLUDE_FILES = YES +SHOW_GROUPED_MEMB_INC = NO +FORCE_LOCAL_INCLUDES = NO +INLINE_INFO = YES +SORT_MEMBER_DOCS = YES +SORT_BRIEF_DOCS = YES +SORT_MEMBERS_CTORS_1ST = YES +SORT_GROUP_NAMES = NO +SORT_BY_SCOPE_NAME = NO +STRICT_PROTO_MATCHING = NO +GENERATE_TODOLIST = NO +GENERATE_TESTLIST = NO +GENERATE_BUGLIST = YES +GENERATE_DEPRECATEDLIST= YES +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30 +SHOW_USED_FILES = YES +SHOW_FILES = YES +SHOW_NAMESPACES = YES +FILE_VERSION_FILTER = +LAYOUT_FILE = +CITE_BIB_FILES = +#--------------------------------------------------------------------------- +# Configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = YES +WARNINGS = YES +WARN_IF_UNDOCUMENTED = @DOXYGEN_WARN_IF_UNDOCUMENTED@ +WARN_IF_DOC_ERROR = YES +WARN_IF_INCOMPLETE_DOC = YES +WARN_NO_PARAMDOC = NO +WARN_IF_UNDOC_ENUM_VAL = NO +WARN_AS_ERROR = NO +WARN_FORMAT = "$file:$line: $text" +WARN_LINE_FORMAT = "at line $line of file $file" +WARN_LOGFILE = +#--------------------------------------------------------------------------- +# Configuration options related to the input files +#--------------------------------------------------------------------------- +INPUT = @DOXYGEN_INPUT@ +INPUT_ENCODING = UTF-8 +INPUT_FILE_ENCODING = +FILE_PATTERNS = *.dox \ + *.md \ + *.cpp \ + *.h +RECURSIVE = YES +EXCLUDE = @DOXYGEN_EXCLUDE@ +EXCLUDE_SYMLINKS = NO +EXCLUDE_PATTERNS = +EXCLUDE_SYMBOLS = pc_sensordata \ + *P \ + sm_mesh \ + sm_meshattrib \ + smmarkerset_indexdistance \ + SmVertexArrayShape_vboidx \ + so_marker \ + sotext2set_indexdistance \ + well_tooltip_info +EXAMPLE_PATH = +EXAMPLE_PATTERNS = * +EXAMPLE_RECURSIVE = NO +IMAGE_PATH = @CMAKE_SOURCE_DIR@/docs/doxygen/images +INPUT_FILTER = +FILTER_PATTERNS = +FILTER_SOURCE_FILES = NO +FILTER_SOURCE_PATTERNS = +USE_MDFILE_AS_MAINPAGE = README.md +FORTRAN_COMMENT_AFTER = 72 +#--------------------------------------------------------------------------- +# Configuration options related to source browsing +#--------------------------------------------------------------------------- +SOURCE_BROWSER = NO +INLINE_SOURCES = NO +STRIP_CODE_COMMENTS = YES +REFERENCED_BY_RELATION = NO +REFERENCES_RELATION = NO +REFERENCES_LINK_SOURCE = YES +SOURCE_TOOLTIPS = YES +USE_HTAGS = NO +VERBATIM_HEADERS = YES +CLANG_ASSISTED_PARSING = NO +CLANG_ADD_INC_PATHS = YES +CLANG_OPTIONS = +CLANG_DATABASE_PATH = +#--------------------------------------------------------------------------- +# Configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- +ALPHABETICAL_INDEX = YES +IGNORE_PREFIX = Sm \ + Sb \ + So +#--------------------------------------------------------------------------- +# Configuration options related to the HTML output +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = html_awesome +HTML_FILE_EXTENSION = .html +HTML_HEADER = @CMAKE_BINARY_DIR@/header_awesome.html +HTML_FOOTER = +HTML_STYLESHEET = +HTML_EXTRA_STYLESHEET = @CMAKE_SOURCE_DIR@/docs/doxygen-awesome/doxygen-awesome.css \ + @CMAKE_SOURCE_DIR@/docs/doxygen-awesome/doxygen-custom/custom.css \ + @CMAKE_SOURCE_DIR@/docs/doxygen-awesome/doxygen-awesome-sidebar-only.css \ + @CMAKE_SOURCE_DIR@/docs/doxygen-awesome/doxygen-awesome-sidebar-only-darkmode-toggle.css \ + @CMAKE_SOURCE_DIR@/docs/doxygen-awesome/doxygen-custom/custom-alternative.css +HTML_EXTRA_FILES = @CMAKE_SOURCE_DIR@/docs/doxygen-awesome/doxygen-awesome-darkmode-toggle.js \ + @CMAKE_SOURCE_DIR@/docs/doxygen-awesome/doxygen-awesome-fragment-copy-button.js \ + @CMAKE_SOURCE_DIR@/docs/doxygen-awesome/doxygen-awesome-paragraph-link.js \ + @CMAKE_SOURCE_DIR@/docs/doxygen-awesome/doxygen-custom/toggle-alternative-theme.js \ + @CMAKE_SOURCE_DIR@/docs/doxygen-awesome/doxygen-awesome-interactive-toc.js \ + @CMAKE_SOURCE_DIR@/docs/doxygen-awesome/doxygen-awesome-tabs.js \ + @CMAKE_SOURCE_DIR@/docs/doxygen/Coin_logo.png +HTML_COLORSTYLE = LIGHT +HTML_COLORSTYLE_HUE = 220 +HTML_COLORSTYLE_SAT = 100 +HTML_COLORSTYLE_GAMMA = 80 +HTML_DYNAMIC_MENUS = YES +HTML_DYNAMIC_SECTIONS = NO +HTML_CODE_FOLDING = YES +HTML_COPY_CLIPBOARD = YES +HTML_PROJECT_COOKIE = +HTML_INDEX_NUM_ENTRIES = 100 +GENERATE_DOCSET = NO +DOCSET_FEEDNAME = "Doxygen generated docs" +DOCSET_FEEDURL = +DOCSET_BUNDLE_ID = org.doxygen.Project +DOCSET_PUBLISHER_ID = org.doxygen.Publisher +DOCSET_PUBLISHER_NAME = Publisher +GENERATE_HTMLHELP = @GENERATE_HTMLHELP@ +CHM_FILE = @PROJECT_NAME@-@PROJECT_VERSION_MAJOR@.chm +HHC_LOCATION = @HHC_PROGRAM@ +GENERATE_CHI = NO +CHM_INDEX_ENCODING = +BINARY_TOC = NO +TOC_EXPAND = NO +SITEMAP_URL = +GENERATE_QHP = @GENERATE_QHP@ +QCH_FILE = @PROJECT_NAME@-@PROJECT_VERSION_MAJOR@.qch +QHP_NAMESPACE = org.coin3d.@PROJECT_NAME@-@PROJECT_VERSION_MAJOR@ +QHP_VIRTUAL_FOLDER = doc +QHP_CUST_FILTER_NAME = +QHP_CUST_FILTER_ATTRS = +QHP_SECT_FILTER_ATTRS = +QHG_LOCATION = @QHG_LOCATION@ +GENERATE_ECLIPSEHELP = NO +ECLIPSE_DOC_ID = org.doxygen.Project +DISABLE_INDEX = NO +GENERATE_TREEVIEW = @GENERATE_TREEVIEW@ +FULL_SIDEBAR = NO +ENUM_VALUES_PER_LINE = 4 +TREEVIEW_WIDTH = 250 +EXT_LINKS_IN_WINDOW = NO +OBFUSCATE_EMAILS = YES +HTML_FORMULA_FORMAT = png +FORMULA_FONTSIZE = 10 +FORMULA_MACROFILE = +USE_MATHJAX = NO +MATHJAX_VERSION = MathJax_2 +MATHJAX_FORMAT = HTML-CSS +MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest +MATHJAX_EXTENSIONS = +MATHJAX_CODEFILE = +SEARCHENGINE = YES +SERVER_BASED_SEARCH = NO +EXTERNAL_SEARCH = NO +SEARCHENGINE_URL = +SEARCHDATA_FILE = searchdata.xml +EXTERNAL_SEARCH_ID = +EXTRA_SEARCH_MAPPINGS = +#--------------------------------------------------------------------------- +# Configuration options related to the LaTeX output +#--------------------------------------------------------------------------- +GENERATE_LATEX = NO +LATEX_OUTPUT = latex +LATEX_CMD_NAME = latex +MAKEINDEX_CMD_NAME = makeindex +LATEX_MAKEINDEX_CMD = makeindex +COMPACT_LATEX = NO +PAPER_TYPE = a4wide +EXTRA_PACKAGES = +LATEX_HEADER = +LATEX_FOOTER = +LATEX_EXTRA_STYLESHEET = +LATEX_EXTRA_FILES = +PDF_HYPERLINKS = NO +USE_PDFLATEX = NO +LATEX_BATCHMODE = NO +LATEX_HIDE_INDICES = NO +LATEX_BIB_STYLE = plain +LATEX_EMOJI_DIRECTORY = +#--------------------------------------------------------------------------- +# Configuration options related to the RTF output +#--------------------------------------------------------------------------- +GENERATE_RTF = NO +RTF_OUTPUT = rtf +COMPACT_RTF = NO +RTF_HYPERLINKS = NO +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = +#--------------------------------------------------------------------------- +# Configuration options related to the man page output +#--------------------------------------------------------------------------- +GENERATE_MAN = @DOXYGEN_GENERATE_MAN@ +MAN_OUTPUT = man +MAN_EXTENSION = .3 +MAN_SUBDIR = +MAN_LINKS = NO +#--------------------------------------------------------------------------- +# Configuration options related to the XML output +#--------------------------------------------------------------------------- +GENERATE_XML = NO +XML_OUTPUT = xml +XML_PROGRAMLISTING = YES +XML_NS_MEMB_FILE_SCOPE = NO +#--------------------------------------------------------------------------- +# Configuration options related to the DOCBOOK output +#--------------------------------------------------------------------------- +GENERATE_DOCBOOK = NO +DOCBOOK_OUTPUT = docbook +#--------------------------------------------------------------------------- +# Configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- +GENERATE_AUTOGEN_DEF = NO +#--------------------------------------------------------------------------- +# Configuration options related to Sqlite3 output +#--------------------------------------------------------------------------- +GENERATE_SQLITE3 = NO +SQLITE3_OUTPUT = sqlite3 +SQLITE3_RECREATE_DB = YES +#--------------------------------------------------------------------------- +# Configuration options related to the Perl module output +#--------------------------------------------------------------------------- +GENERATE_PERLMOD = NO +PERLMOD_LATEX = NO +PERLMOD_PRETTY = YES +PERLMOD_MAKEVAR_PREFIX = +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = YES +EXPAND_ONLY_PREDEF = NO +SEARCH_INCLUDES = YES +INCLUDE_PATH = @CMAKE_SOURCE_DIR@/lib/ +INCLUDE_FILE_PATTERNS = *.h \ + *.h.in +PREDEFINED = DOXYGEN_SKIP_THIS=1 \ + HAVE_CONFIG_H= \ + HAVE_VRML97= \ + HAVE_NODEKITS= \ + HAVE_DRAGGERS= \ + HAVE_MANIPULATORS= \ + COIN_DLL_API= \ + "COIN_UNUSED_ARG(x)=x" +EXPAND_AS_DEFINED = SO_COMPOSE__HEADER \ + SO_SFIELD_HEADER \ + SO_MFIELD_HEADER \ + SO_SFIELD_DERIVED_HEADER \ + SO_MFIELD_DERIVED_HEADER \ + SO_SFIELD_CONSTRUCTOR_HEADER \ + SO_SFIELD_REQUIRED_HEADER \ + SO_SFIELD_IO_HEADER \ + SO_MFIELD_IO_HEADER \ + SO_SFIELD_VALUE_HEADER \ + SO_MFIELD_VALUE_HEADER \ + SO_SFIELD_DERIVED_VALUE_HEADER \ + SO_MFIELD_DERIVED_VALUE_HEADER \ + SO_MFIELD_SETVALUESPOINTER_HEADER +SKIP_FUNCTION_MACROS = YES +#--------------------------------------------------------------------------- +# Configuration options related to external references +#--------------------------------------------------------------------------- +TAGFILES = @DOXYGEN_TAGFILES@ +GENERATE_TAGFILE = @CMAKE_BINARY_DIR@/html_awesome/@PROJECT_NAME@-@PROJECT_VERSION_MAJOR@.tag +ALLEXTERNALS = NO +EXTERNAL_GROUPS = YES +EXTERNAL_PAGES = YES +#--------------------------------------------------------------------------- +# Configuration options related to diagram generator tools +#--------------------------------------------------------------------------- +HIDE_UNDOC_RELATIONS = NO +HAVE_DOT = NO +DOT_NUM_THREADS = 0 +DOT_COMMON_ATTR = "fontname=Helvetica,fontsize=10" +DOT_EDGE_ATTR = "labelfontname=Helvetica,labelfontsize=10" +DOT_NODE_ATTR = "shape=box,height=0.2,width=0.4" +DOT_FONTPATH = +CLASS_GRAPH = YES +COLLABORATION_GRAPH = YES +GROUP_GRAPHS = YES +UML_LOOK = NO +UML_LIMIT_NUM_FIELDS = 10 +DOT_UML_DETAILS = NO +DOT_WRAP_THRESHOLD = 17 +TEMPLATE_RELATIONS = YES +INCLUDE_GRAPH = YES +INCLUDED_BY_GRAPH = YES +CALL_GRAPH = NO +CALLER_GRAPH = NO +GRAPHICAL_HIERARCHY = YES +DIRECTORY_GRAPH = YES +DIR_GRAPH_MAX_DEPTH = 1 +DOT_IMAGE_FORMAT = png +INTERACTIVE_SVG = NO +DOT_PATH = +DOTFILE_DIRS = +DIA_PATH = +DIAFILE_DIRS = +PLANTUML_JAR_PATH = +PLANTUML_CFG_FILE = +PLANTUML_INCLUDE_PATH = +DOT_GRAPH_MAX_NODES = 50 +MAX_DOT_GRAPH_DEPTH = 0 +DOT_MULTI_TARGETS = NO +GENERATE_LEGEND = YES +DOT_CLEANUP = YES +MSCGEN_TOOL = +MSCFILE_DIRS =