diff --git a/CMake/VTKmBuildDocumentation.cmake b/CMake/VTKmBuildDocumentation.cmake new file mode 100644 index 000000000..7a7cfccde --- /dev/null +++ b/CMake/VTKmBuildDocumentation.cmake @@ -0,0 +1,53 @@ +##============================================================================ +## Copyright (c) Kitware, Inc. +## All rights reserved. +## See LICENSE.txt for details. +## This software is distributed WITHOUT ANY WARRANTY; without even +## the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +## PURPOSE. See the above copyright notice for more information. +## +## Copyright 2014 Sandia Corporation. +## Copyright 2014 UT-Battelle, LLC. +## Copyright 2014 Los Alamos National Security. +## +## Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +## the U.S. Government retains certain rights in this software. +## +## Under the terms of Contract DE-AC52-06NA25396 with Los Alamos National +## Laboratory (LANL), the U.S. Government retains certain rights in +## this software. +##============================================================================ + +#----------------------------------------------------------------------------- +# Find Doxygen +#----------------------------------------------------------------------------- +find_package(Doxygen REQUIRED) + +#----------------------------------------------------------------------------- +# Configure Doxygen +#----------------------------------------------------------------------------- +set(VTKm_DOXYGEN_HAVE_DOT ${DOXYGEN_DOT_FOUND}) +set(VTKm_DOXYGEN_DOT_PATH ${DOXYGEN_DOT_PATH}) +set(VTKm_DOXYFILE ${CMAKE_CURRENT_BINARY_DIR}/docs/doxyfile) +set(VTKm_DOXYGEN_EXCLUDE_FILES + ${VTKm_SOURCE_DIR}/vtkm/testing/OptionParser.h +) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/CMake/doxyfile.in ${VTKm_DOXYFILE} + @ONLY) + +#----------------------------------------------------------------------------- +# Run Doxygen +#----------------------------------------------------------------------------- +function(vtkm_build_documentation) + add_custom_command( + OUTPUT ${VTKm_BINARY_DIR}/docs/doxygen + COMMAND ${DOXYGEN_EXECUTABLE} ${VTKm_DOXYFILE} > /dev/null + MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/CMake/doxyfile.in + DEPENDS ${VTKm_DOXYFILE} + COMMENT "Generating VTKm Documentation" + ) + add_custom_target(VTKmDoxygenDocs + ALL + DEPENDS ${VTKm_BINARY_DIR}/docs/doxygen + ) +endfunction(vtkm_build_documentation) diff --git a/CMake/doxyfile.in b/CMake/doxyfile.in new file mode 100644 index 000000000..56dd7d3dc --- /dev/null +++ b/CMake/doxyfile.in @@ -0,0 +1,393 @@ +##============================================================================ +## Copyright (c) Kitware, Inc. +## All rights reserved. +## See LICENSE.txt for details. +## This software is distributed WITHOUT ANY WARRANTY; without even +## the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +## PURPOSE. See the above copyright notice for more information. +## +## Copyright 2014 Sandia Corporation. +## Copyright 2014 UT-Battelle, LLC. +## Copyright 2014 Los Alamos National Security. +## +## Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +## the U.S. Government retains certain rights in this software. +## +## Under the terms of Contract DE-AC52-06NA25396 with Los Alamos National +## Laboratory (LANL), the U.S. Government retains certain rights in +## this software. +##============================================================================ + +PROJECT_NAME = "VTK-m" + +PROJECT_NUMBER = @VTKm_VERSION@ + +OUTPUT_DIRECTORY = @VTKm_BINARY_DIR@/docs/doxygen/ + +CREATE_SUBDIRS = NO + +OUTPUT_LANGUAGE = English + +BRIEF_MEMBER_DESC = YES + +REPEAT_BRIEF = YES + +ABBREVIATE_BRIEF = + +ALWAYS_DETAILED_SEC = NO + +INLINE_INHERITED_MEMB = NO + +FULL_PATH_NAMES = YES + +STRIP_FROM_PATH = + +STRIP_FROM_INC_PATH = + +SHORT_NAMES = NO + +JAVADOC_AUTOBRIEF = YES + +MULTILINE_CPP_IS_BRIEF = NO + +INHERIT_DOCS = YES + +DISTRIBUTE_GROUP_DOC = NO + +TAB_SIZE = 2 + +ALIASES = + +OPTIMIZE_OUTPUT_FOR_C = NO + +OPTIMIZE_OUTPUT_JAVA = NO + +SUBGROUPING = YES + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +EXTRACT_ALL = YES + +EXTRACT_PRIVATE = YES + +EXTRACT_STATIC = NO + +EXTRACT_LOCAL_CLASSES = NO + +EXTRACT_LOCAL_METHODS = NO + +HIDE_UNDOC_MEMBERS = NO + +HIDE_UNDOC_CLASSES = NO + +HIDE_FRIEND_COMPOUNDS = NO + +HIDE_IN_BODY_DOCS = NO + +INTERNAL_DOCS = NO + +CASE_SENSE_NAMES = YES + +HIDE_SCOPE_NAMES = NO + +SHOW_INCLUDE_FILES = YES + +INLINE_INFO = YES + +SORT_MEMBER_DOCS = YES + +SORT_BRIEF_DOCS = NO + +SORT_BY_SCOPE_NAME = NO + +GENERATE_TODOLIST = YES + +GENERATE_TESTLIST = YES + +GENERATE_BUGLIST = YES + +GENERATE_DEPRECATEDLIST= YES + +ENABLED_SECTIONS = + +MAX_INITIALIZER_LINES = 30 + +SHOW_USED_FILES = YES + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +QUIET = NO + +WARNINGS = YES + +WARN_IF_UNDOCUMENTED = YES + +WARN_IF_DOC_ERROR = YES + +WARN_FORMAT = "$file:$line: $text" + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +INPUT = @VTKm_SOURCE_DIR@/vtkm + +FILE_PATTERNS = *.cxx *.h *.cu + +RECURSIVE = YES + +EXCLUDE = @VTKm_DOXYGEN_EXCLUDE_FILES@ + +EXCLUDE_SYMLINKS = NO + +EXCLUDE_PATTERNS = + +EXAMPLE_PATH = + +EXAMPLE_PATTERNS = + +EXAMPLE_RECURSIVE = NO + +IMAGE_PATH = + +INPUT_FILTER = + +FILTER_PATTERNS = + +FILTER_SOURCE_FILES = NO + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +SOURCE_BROWSER = NO + +INLINE_SOURCES = NO + +STRIP_CODE_COMMENTS = YES + +REFERENCED_BY_RELATION = YES + +REFERENCES_RELATION = YES + +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +ALPHABETICAL_INDEX = NO + +COLS_IN_ALPHA_INDEX = 5 + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +GENERATE_HTML = YES + +HTML_OUTPUT = html + +HTML_FILE_EXTENSION = .html + +HTML_HEADER = + +HTML_FOOTER = + +HTML_STYLESHEET = + +GENERATE_HTMLHELP = NO + +CHM_FILE = + +HHC_LOCATION = + +GENERATE_CHI = NO + +BINARY_TOC = NO + +TOC_EXPAND = NO + +DISABLE_INDEX = NO + +ENUM_VALUES_PER_LINE = 4 + +GENERATE_TREEVIEW = YES + +TREEVIEW_WIDTH = 250 + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +GENERATE_LATEX = NO + +LATEX_OUTPUT = latex + +LATEX_CMD_NAME = latex + +MAKEINDEX_CMD_NAME = makeindex + +COMPACT_LATEX = NO + +PAPER_TYPE = a4wide + +EXTRA_PACKAGES = + +LATEX_HEADER = + +PDF_HYPERLINKS = NO + +USE_PDFLATEX = NO + +LATEX_BATCHMODE = NO + +LATEX_HIDE_INDICES = NO + +#--------------------------------------------------------------------------- +# 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 = NO + +MAN_OUTPUT = man + +MAN_EXTENSION = .3 + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +GENERATE_XML = NO + +XML_OUTPUT = xml + +XML_SCHEMA = + +XML_DTD = + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# 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 = NO + +EXPAND_ONLY_PREDEF = NO + +SEARCH_INCLUDES = YES + +INCLUDE_PATH = @VTKm_SOURCE_DIR@ @VTKm_BINARY_DIR@ + +INCLUDE_FILE_PATTERNS = + +PREDEFINED = DOXYGEN + +EXPAND_AS_DEFINED = + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- + +TAGFILES = + +GENERATE_TAGFILE = + +ALLEXTERNALS = NO + +EXTERNAL_GROUPS = YES + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +CLASS_DIAGRAMS = YES + +HIDE_UNDOC_RELATIONS = YES + +HAVE_DOT = @VTKm_DOXYGEN_HAVE_DOT@ + +CLASS_GRAPH = YES + +COLLABORATION_GRAPH = YES + +UML_LOOK = NO + +TEMPLATE_RELATIONS = YES + +INCLUDE_GRAPH = YES + +INCLUDED_BY_GRAPH = YES + +CALL_GRAPH = NO + +GRAPHICAL_HIERARCHY = YES + +DOT_IMAGE_FORMAT = png + +DOT_PATH = @VTKm_DOXYGEN_DOT_PATH@ + +DOTFILE_DIRS = + +MAX_DOT_GRAPH_DEPTH = 0 + +GENERATE_LEGEND = YES + +DOT_CLEANUP = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- + +SEARCHENGINE = NO diff --git a/CMakeLists.txt b/CMakeLists.txt index 91d8bdae1..1471d3756 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -58,6 +58,8 @@ option(VTKm_ENABLE_TBB "Enable TBB support" OFF) option(VTKm_ENABLE_TESTING "Enable VTKm Testing" ON) option(VTKm_ENABLE_BENCHMARKS "Enable VTKm Benchmarking" OFF) +option(VTKm_BUILD_DOCUMENTATION "Build Doxygen documentation" OFF) + option(VTKm_USE_DOUBLE_PRECISION "Use double precision for floating point calculations" OFF @@ -146,6 +148,14 @@ find_package(Pyexpander) # Add subdirectories add_subdirectory(vtkm) +#----------------------------------------------------------------------------- +# Build documentation +if (VTKm_BUILD_DOCUMENTATION) + include(CMake/VTKmBuildDocumentation.cmake) + vtkm_build_documentation() +endif() + +#----------------------------------------------------------------------------- # Configuration for build directory. set(VTKm_INCLUDE_DIRS_CONFIG "${VTKm_SOURCE_DIR};${VTKm_BINARY_DIR}") set(VTKm_CMAKE_MODULE_PATH_CONFIG "${VTKm_SOURCE_DIR}/CMake") diff --git a/vtkm/Math.h b/vtkm/Math.h index 269677a00..389a2a529 100644 --- a/vtkm/Math.h +++ b/vtkm/Math.h @@ -1786,7 +1786,7 @@ vtkm::Float64 ModF(vtkm::Float64 x, vtkm::Float64 &integral) } //----------------------------------------------------------------------------- -/// Return the absolute value of \x. That is, return \p x if it is positive or +/// Return the absolute value of \p x. That is, return \p x if it is positive or /// \p -x if it is negative. /// VTKM_EXEC_CONT_EXPORT @@ -1849,7 +1849,7 @@ vtkm::Vec Abs(const vtkm::Vec &x) { vtkm::Abs(x[1])); } -/// Returns a nonzero value if \x is negative. +/// Returns a nonzero value if \p x is negative. /// VTKM_EXEC_CONT_EXPORT vtkm::Int32 SignBit(vtkm::Float32 x) { diff --git a/vtkm/cont/cuda/internal/ArrayManagerExecutionThrustDevice.h b/vtkm/cont/cuda/internal/ArrayManagerExecutionThrustDevice.h index 4abcb2dc0..56eebe4bb 100644 --- a/vtkm/cont/cuda/internal/ArrayManagerExecutionThrustDevice.h +++ b/vtkm/cont/cuda/internal/ArrayManagerExecutionThrustDevice.h @@ -66,7 +66,7 @@ template /// \c ArrayManagerExecutionThrustDevice provides an implementation for a \c /// ArrayManagerExecution class for a thrust device adapter that is designed /// for the cuda backend which has separate memory spaces for host and device. -/// This implementation contains a ::thrust::system::cuda::vector to allocate +/// This implementation contains a thrust::system::cuda::vector to allocate /// and manage the array. /// template diff --git a/vtkm/worklet/VertexClustering.h b/vtkm/worklet/VertexClustering.h index dfae0810b..f4a0823a6 100644 --- a/vtkm/worklet/VertexClustering.h +++ b/vtkm/worklet/VertexClustering.h @@ -269,9 +269,13 @@ public: /////////////////////////////////////////////////// /// \brief VertexClustering: Mesh simplification - /// \param ds : dataset - /// \param bounds: dataset bounds - /// \param nDivisions : number of max divisions per dimension + /// \param pointArray : Input points + /// \param pointIdArray: Input point-ids + /// \param cellToConnectivityIndexArray : Connectivity + /// \param bounds : Bounds of the input dataset + /// \param nDivisions: Number of divisions + /// \param output_pointArray: Output points + /// \param output_pointId3Array: Output point-ids template