From dc700d530ad778f149880fb9a5d681de99793647 Mon Sep 17 00:00:00 2001 From: ulfjorensen Date: Tue, 20 May 2008 16:02:29 +0000 Subject: [PATCH] - Documentation - WorkInProgress git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@20 67173fc5-114c-0410-ac8e-9d2fd5bffc1f --- doc/Doxyfile | 267 +++++++++++++++++++++++++++++++++++ doc/dox.h | 100 +++++++++++++ workspaces/vc8/assimp.vcproj | 4 + 3 files changed, 371 insertions(+) create mode 100644 doc/Doxyfile create mode 100644 doc/dox.h diff --git a/doc/Doxyfile b/doc/Doxyfile new file mode 100644 index 000000000..accf4c727 --- /dev/null +++ b/doc/Doxyfile @@ -0,0 +1,267 @@ +# Doxyfile 1.5.3 + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- +DOXYFILE_ENCODING = UTF-8 +PROJECT_NAME = assimp +PROJECT_NUMBER = +OUTPUT_DIRECTORY = +CREATE_SUBDIRS = YES +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 = YES +STRIP_FROM_PATH = +STRIP_FROM_INC_PATH = +SHORT_NAMES = NO +JAVADOC_AUTOBRIEF = NO +QT_AUTOBRIEF = NO +MULTILINE_CPP_IS_BRIEF = NO +DETAILS_AT_TOP = NO +INHERIT_DOCS = YES +SEPARATE_MEMBER_PAGES = NO +TAB_SIZE = 8 +ALIASES = +OPTIMIZE_OUTPUT_FOR_C = NO +OPTIMIZE_OUTPUT_JAVA = NO +BUILTIN_STL_SUPPORT = NO +CPP_CLI_SUPPORT = NO +DISTRIBUTE_GROUP_DOC = NO +SUBGROUPING = YES +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- +EXTRACT_ALL = NO +EXTRACT_PRIVATE = NO +EXTRACT_STATIC = YES +EXTRACT_LOCAL_CLASSES = YES +EXTRACT_LOCAL_METHODS = NO +EXTRACT_ANON_NSPACES = NO +HIDE_UNDOC_MEMBERS = YES +HIDE_UNDOC_CLASSES = YES +HIDE_FRIEND_COMPOUNDS = NO +HIDE_IN_BODY_DOCS = NO +INTERNAL_DOCS = NO +CASE_SENSE_NAMES = NO +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 +SHOW_DIRECTORIES = NO +FILE_VERSION_FILTER = +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = NO +WARNINGS = YES +WARN_IF_UNDOCUMENTED = YES +WARN_IF_DOC_ERROR = YES +WARN_NO_PARAMDOC = NO +WARN_FORMAT = "$file:$line: $text " +WARN_LOGFILE = +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- +INPUT = ../ +INPUT_ENCODING = UTF-8 +FILE_PATTERNS = *.c \ + *.cc \ + *.cxx \ + *.cpp \ + *.c++ \ + *.d \ + *.java \ + *.ii \ + *.ixx \ + *.ipp \ + *.i++ \ + *.inl \ + *.h \ + *.hh \ + *.hxx \ + *.hpp \ + *.h++ \ + *.idl \ + *.odl \ + *.cs \ + *.php \ + *.php3 \ + *.inc \ + *.m \ + *.mm \ + *.dox \ + *.py +RECURSIVE = YES +EXCLUDE = +EXCLUDE_SYMLINKS = NO +EXCLUDE_PATTERNS = +EXCLUDE_SYMBOLS = +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 = YES +INLINE_SOURCES = NO +STRIP_CODE_COMMENTS = NO +REFERENCED_BY_RELATION = NO +REFERENCES_RELATION = NO +REFERENCES_LINK_SOURCE = YES +USE_HTAGS = NO +VERBATIM_HEADERS = NO +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- +ALPHABETICAL_INDEX = YES +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 = +HTML_ALIGN_MEMBERS = YES +GENERATE_HTMLHELP = NO +HTML_DYNAMIC_SECTIONS = NO +CHM_FILE = +HHC_LOCATION = +GENERATE_CHI = NO +BINARY_TOC = NO +TOC_EXPAND = NO +DISABLE_INDEX = NO +ENUM_VALUES_PER_LINE = 4 +GENERATE_TREEVIEW = NO +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 = +INCLUDE_FILE_PATTERNS = +PREDEFINED = +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 = NO +MSCGEN_PATH = +HIDE_UNDOC_RELATIONS = YES +HAVE_DOT = NO +CLASS_GRAPH = YES +COLLABORATION_GRAPH = YES +GROUP_GRAPHS = YES +UML_LOOK = NO +TEMPLATE_RELATIONS = NO +INCLUDE_GRAPH = YES +INCLUDED_BY_GRAPH = YES +CALL_GRAPH = NO +CALLER_GRAPH = NO +GRAPHICAL_HIERARCHY = YES +DIRECTORY_GRAPH = YES +DOT_IMAGE_FORMAT = png +DOT_PATH = +DOTFILE_DIRS = +DOT_GRAPH_MAX_NODES = 50 +MAX_DOT_GRAPH_DEPTH = 1000 +DOT_TRANSPARENT = NO +DOT_MULTI_TARGETS = NO +GENERATE_LEGEND = YES +DOT_CLEANUP = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- +SEARCHENGINE = NO diff --git a/doc/dox.h b/doc/dox.h new file mode 100644 index 000000000..eb5c6ffb6 --- /dev/null +++ b/doc/dox.h @@ -0,0 +1,100 @@ +/** @file General documentation built from a doxygen comment */ + +/** @mainpage ASSIMP - The open asset import library +@section intro Introduction + +ASSIMP is a library to load and process geometric scenes from various data formats. It is taylored at typical game +scenarios by supporting a node hierarchy, static or skinned meshes, materials, bone animations and potential texture data. +The library is *not* designed for speed, it is primarily useful for importing assets from various sources once and +storing it in a engine-specific format for easy and fast every-day-loading. ASSIMP is also able to apply various post +processing steps to the imported data such as conversion to indexed meshes, calculation of normals or tangents/bitangents +or conversion from right-handed to left-handed coordinate systems. + +At the moment ASSIMP is able to read Lightwave Object files (.obj), Milkshape3D scene (.ms3d), DirectX scenes (.x), +old 3D Studio Max scene files (.3ds), Doom/Quake model files (.md1 to .md7), 3D Game Studio models (.mdl) and +PLY files (.ply). ASSIMP is independent of the Operating System by nature, providing a C++ interface for easy integration +with game engines and a C interface to allow bindings to other programming languages. At the moment the library runs +on any little-endian platform including X86/Windows/Linux/Mac and X64/Windows/Linux/Mac. Big endian systems such as +PPC-Macs or PPC-Linux systems are not supported at the moment, but this might change later on. Special attention +was paid to keep the library as free as possible from dependencies. + +The ASSIMP linker library and viewer application are provided under the BSD 3-clause license. This basically means +that you are free to use it in open- or closed-source projects, for commercial or non-commercial purposes as you like +as long as you retain the license informations and take own responsibility for what you do with it. For details see +the License file. + +@section main_install Installation + +ASSIMP can be used in two ways: linking against the pre-built libraries or building the library on your own. The former +option is the easiest, but the ASSIMP distribution contains pre-built libraries only for Visual C++ 2005 and 2008. For other +compilers you'll have to build ASSIMP for yourself. Which is hopefully as hassle-free as the other way, but needs a bit +more work. Both ways are described at the @link install Installation page. @endlink + +@section main_usage Usage + +When you're done integrating the library into your IDE / project, you can now start using it. There are two separate +interfaces by which you can access the library: a C++ interface and a C interface using flat functions. While the former +is easier to handle, the latter also forms a point where other programming languages can connect to. Upto the moment, though, +there are no bindings for any other language provided. Have a look at the @link usage Usage page @endlink for a detailed explanation and code examples. + +@section main_data Data Structures + +When the importer successfully completed its job, the imported data is returned in an aiScene structure. This is the root +point from where you can access all the various data types that a scene/model file can possibly contain. The +@link data Data Structures page @endlink describes how to interpret this data. + +@section main_viewer The Viewer + +The ASSIMP viewer is a standalone Windows/DirectX application that was developed along with the library. It is very useful +for quickly examining the contents of a scene file and test the suitability of its contents for realtime rendering. +The viewer offers a lot of additional features to view, interact with or export bits of the data. See the +@link viewer Viewer page @endlink for a detailed description of its capabilities. +*/ + +/** +@page install Installation + +@section install_prebuilt Using the prebuilt libraries + +If you develop at Visual Studio 2005 or 2008, you can simply use the prebuilt linker libraries provided in the distribution. +Extract all files to a place of your choice. A directory called "Assimp" will be created there. Add the Assimp/include path +to your include paths (Menu->Extras->Options->Projects and Solutions->VC++ Directories->Include files) +and the Assimp/lib/ path to your linker paths (Menu->Extras->Options->Projects and Solutions->VC++ Directories->Library files). +This is neccessary only once to setup all paths inside you IDE. + +To use the library in your C++ project you have to include either or plus some others starting with . +If you set up your IDE correctly the compiler should be able to find the files. Then you have to add the linker library to your +project dependencies. Depending on your runtime of choice you either link against assimp_Debug.lib / assimp_Release.lib +(static runtime) or assimp_Debug_DLL.lib / assimp_Release_DLL.lib. If done correctly you should now be able to compile, link, +run and use the application. If the linker complains about some integral functions being defined twice you propably have +mixed the runtimes. Recheck the project configuration (project properties -> C++ -> Code generation -> Runtime) if you use +static runtimes (Multithreaded / Multithreaded Debug) or dynamic runtimes (Multithreaded DLL / Multithreaded Debug DLL). Choose +the ASSIMP linker lib accordingly. + +@section install_own Building the library from scratch + +*/ + +/** +@page usage Usage + +Erklärung: C++-Schnittstelle für C++, C-Schnittstelle für alle anderen. Grundsätzlicher Ablauf Einrichten - Benutzung - Ergebnistest - Abräumen. Mögliche Nachbearbeitungs-Flags. +Beispiel C++: Importer-Instanz anlegen, ReadFile() aufrufen, Ergebnis prüfen, Daten auslesen +Beispiel C: Init() aufrufen, ReadFile() aufrufen, Ergebnis prüfen, Release() aufrufen. +*/ + +/** +@page data Data Structures + +Grundlegend: Koordinatensystem, aiScene (Link), Erklärung Hierarchie, Nodes, Verweis auf Meshes, Mesh-Sammlung, +Einzel-Mesh, Mesh-Komponentenbauweise, Verweis auf Material, Material-Sammlung, Erklärung Material-Tags, +Animations-Sammlung, Einzel-Animation, Interpretation der Keyframes. +Bones: Finden und Zuordnen der Bone-Hierarchie zu Meshes. +*/ + +/** +@page viewer The Viewer +Sinn: StandAlone-Test für die Importlib +Benutzung: was kann er und wie löst man es aus +Build: alles von #CustomBuild + DirectX + MFC? +*/ diff --git a/workspaces/vc8/assimp.vcproj b/workspaces/vc8/assimp.vcproj index 6cb628a59..d9497fe12 100644 --- a/workspaces/vc8/assimp.vcproj +++ b/workspaces/vc8/assimp.vcproj @@ -803,6 +803,10 @@ RelativePath="..\..\doc\datastructure.xml" > + +