- update documentation.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1151 67173fc5-114c-0410-ac8e-9d2fd5bffc1fpull/5/head
parent
6fa251c2f2
commit
fd293547c4
Binary file not shown.
|
@ -187,7 +187,7 @@ QHP_SECT_FILTER_ATTRS =
|
|||
QHG_LOCATION =
|
||||
DISABLE_INDEX = NO
|
||||
ENUM_VALUES_PER_LINE = 4
|
||||
GENERATE_TREEVIEW = NO
|
||||
GENERATE_TREEVIEW = YES
|
||||
TREEVIEW_WIDTH = 250
|
||||
FORMULA_FONTSIZE = 10
|
||||
#---------------------------------------------------------------------------
|
||||
|
|
128
doc/dox.h
128
doc/dox.h
|
@ -3,21 +3,21 @@
|
|||
*/
|
||||
|
||||
/**
|
||||
@mainpage ASSIMP - Open Asset Import Library
|
||||
@mainpage assimp - Open Asset Import Library
|
||||
|
||||
<img src="dragonsplash.png"></img>
|
||||
|
||||
@section intro Introduction
|
||||
|
||||
ASSIMP is a library to load and process geometric scenes from various data formats. It is tailored at typical game
|
||||
assimp is a library to load and process geometric scenes from various data formats. It is tailored 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
|
||||
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.
|
||||
|
||||
ASSIMP currently supports the following file formats (note that some loaders lack some features of their formats because
|
||||
some file formats contain data not supported by ASSIMP, some stuff would require so much conversion work
|
||||
assimp currently supports the following file formats (note that some loaders lack some features of their formats because
|
||||
some file formats contain data not supported by assimp, some stuff would require so much conversion work
|
||||
that it has not been implemented yet and some (most ...) formats lack proper specifications):
|
||||
<hr>
|
||||
<br><tt>
|
||||
|
@ -67,11 +67,11 @@ http://assimp.sourceforge.net/main_features_formats.html
|
|||
|
||||
<sup>1</sup>: Experimental loaders<br>
|
||||
<sup>2</sup>: Indicates very limited support - many of the format's features don't map to Assimp's data structures.<br>
|
||||
<sup>3</sup>: These formats support animations, but ASSIMP doesn't yet support them (or they're buggy)<br>
|
||||
<sup>3</sup>: These formats support animations, but assimp doesn't yet support them (or they're buggy)<br>
|
||||
<br>
|
||||
<hr>
|
||||
|
||||
ASSIMP is independent of the Operating System by nature, providing a C++ interface for easy integration
|
||||
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. Special attention
|
||||
was paid to keep the library as free as possible from dependencies.
|
||||
|
@ -79,7 +79,7 @@ was paid to keep the library as free as possible from dependencies.
|
|||
Big endian systems such as PPC-Macs or PPC-Linux systems are not officially supported at the moment. However, most
|
||||
formats handle the required endian conversion correctly, so large parts of the library should work.
|
||||
|
||||
The ASSIMP linker library and viewer application are provided under the BSD 3-clause license. This basically means
|
||||
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.
|
||||
|
@ -89,9 +89,9 @@ but not all of them are *open-source*. If there's an accompagning '<file>\source
|
|||
|
||||
@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
|
||||
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
|
||||
|
@ -111,7 +111,7 @@ point from where you can access all the various data types that a scene/model fi
|
|||
|
||||
There are many 3d file formats in the world, and we're happy to support as many as possible. If you need support for
|
||||
a particular file format, why not implement it yourself and add it to the library? Writing importer plugins for
|
||||
ASSIMP is considerably easy, as the whole postprocessing infrastructure is available and does much of the work for you.
|
||||
assimp is considerably easy, as the whole postprocessing infrastructure is available and does much of the work for you.
|
||||
See the @link extend Extending the library @endlink page for more information.
|
||||
|
||||
|
||||
|
@ -134,12 +134,12 @@ assimp-discussions</a>.
|
|||
@section install_prebuilt Using the pre-built libraries with Visual C++ 8/9
|
||||
|
||||
If you develop at Visual Studio 2005 or 2008, you can simply use the pre-built 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
|
||||
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/<Compiler> path to your linker paths (Menu->Extras->Options->Projects and Solutions->VC++ Directories->Library files).
|
||||
and the assimp/lib/<Compiler> 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 <assimp.hpp> or <assimp.h> plus some others starting with <aiTypes.h>.
|
||||
To use the library in your C++ project you have to include either <assimp/Importer.hpp> or <assimp/cimport.h> plus some others starting with <types.h>.
|
||||
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. Link to <assimp_root>/lib/<config-name>/assimp.lib. config-name is one of the predefined
|
||||
project configs. For static linking, use release/debug. See the sections below on this page for more information on the
|
||||
|
@ -148,7 +148,7 @@ 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.
|
||||
Choose the assimp linker lib accordingly.
|
||||
<br><br>
|
||||
Please don't forget to also read the @ref assimp_stl section on MSVC and the STL.
|
||||
|
||||
|
@ -157,7 +157,7 @@ Please don't forget to also read the @ref assimp_stl section on MSVC and the STL
|
|||
In VC8 and VC9 Microsoft introduced some Standard Library debugging features. A good example are improved iterator checks and
|
||||
various useful debug checks. The problem is the performance penalty that incurs with those extra checks.
|
||||
|
||||
Most of these security enhancements are active in release builds by default, rendering ASSIMP several times
|
||||
Most of these security enhancements are active in release builds by default, rendering assimp several times
|
||||
slower. However, it is possible to disable them by setting
|
||||
|
||||
@code
|
||||
|
@ -166,14 +166,14 @@ _SECURE_SCL=0
|
|||
@endcode
|
||||
|
||||
in the preprocessor options (or alternatively in the source code, just before the STL is included for the first time).
|
||||
<b>ASSIMP's vc8 and vc9 configs enable these flags by default</b>.
|
||||
<b>assimp's vc8 and vc9 configs enable these flags by default</b>.
|
||||
|
||||
<i>If you're linking statically against ASSIMP:</i> Make sure your applications uses the same STl settings!
|
||||
<i>If you're linking statically against assimp:</i> Make sure your applications uses the same STl settings!
|
||||
If you do not, there are two binary incompatible STL versions mangled together and you'll crash.
|
||||
Alternatively you can disable the fast STL settings for ASSIMP by removing the 'FastSTL' property sheet from
|
||||
Alternatively you can disable the fast STL settings for assimp by removing the 'FastSTL' property sheet from
|
||||
the vc project file.
|
||||
|
||||
<i>If you're using ASSIMP in a DLL/SO:</i> It's ok. There's no STL used in the binary DLL/SO interface, so it doesn't care whether
|
||||
<i>If you're using assimp in a DLL/SO:</i> It's ok. There's no STL used in the binary DLL/SO interface, so it doesn't care whether
|
||||
your application uses the same STL settings or not.
|
||||
<br><br>
|
||||
Another option is to build against a different STL implementation, for example STlport. There's a special
|
||||
|
@ -195,14 +195,14 @@ implementations of the various boost utility classes used. However, you'll loose
|
|||
So, if you can use boost, you should use boost. Otherwise, See the @link use_noboost NoBoost-Section @endlink
|
||||
later on this page for the details of the workaround.
|
||||
|
||||
Once boost is working, you have to set up a project for the ASSIMP library in your favorite IDE. If you use VC2005 or
|
||||
Once boost is working, you have to set up a project for the assimp library in your favorite IDE. If you use VC2005 or
|
||||
VC2008, you can simply load the solution or project files in the workspaces/ folder, otherwise you have to create a new
|
||||
package and add all the headers and source files from the include/ and code/ directories. Set the temporary output folder
|
||||
to obj/, for example, and redirect the output folder to bin/. Then build the library - it should compile and link fine.
|
||||
|
||||
The last step is to integrate the library into your project. This is basically the same task as described in the
|
||||
"Using the pre-built libraries" section above: add the include/ and bin/ directories to your IDE's paths so that the compiler can find
|
||||
the library files. Alternatively you can simply add the ASSIMP project to your project's overall solution and build it inside
|
||||
the library files. Alternatively you can simply add the assimp project to your project's overall solution and build it inside
|
||||
your solution.
|
||||
|
||||
|
||||
|
@ -219,7 +219,7 @@ The Boost-Workaround consists of dummy replacements for some boost utility templ
|
|||
- boost.tuple
|
||||
- boost.make_shared
|
||||
|
||||
These implementations are very limited and are not intended for use outside ASSIMP. A compiler
|
||||
These implementations are very limited and are not intended for use outside assimp. A compiler
|
||||
with full support for partial template specializations is required. To enable the workaround, put the following in
|
||||
your compiler's list of predefined macros:
|
||||
@code
|
||||
|
@ -228,7 +228,7 @@ your compiler's list of predefined macros:
|
|||
<br>
|
||||
If you're working with the provided solutions for Visual Studio use the <i>-noboost</i> build configs. <br>
|
||||
|
||||
<b>ASSIMP_BUILD_BOOST_WORKAROUND</b> implies <b>ASSIMP_BUILD_SINGLETHREADED</b>. <br>
|
||||
<b>assimp_BUILD_BOOST_WORKAROUND</b> implies <b>assimp_BUILD_SINGLETHREADED</b>. <br>
|
||||
See the @ref assimp_st section
|
||||
for more details.
|
||||
|
||||
|
@ -237,7 +237,7 @@ for more details.
|
|||
|
||||
@section assimp_dll Windows DLL Build
|
||||
|
||||
ASSIMP can be built as DLL. You just need to select a -dll config from the list of project
|
||||
assimp can be built as DLL. You just need to select a -dll config from the list of project
|
||||
configs and you're fine.
|
||||
|
||||
<b>NOTE:</b> Theoretically, assimp-dll can be used with multithreaded (non-dll) runtime libraries,
|
||||
|
@ -252,7 +252,7 @@ all major compilers and platforms. To get it, download the latest release from
|
|||
Usually you'll just need to run 'configure' + a makefile (see their README for more details).
|
||||
Don't miss to add <stlport_root>/stlport to your compiler's default include paths - <b>prior</b>
|
||||
to the directory where your compiler vendor's headers lie. Do the same for <stlport_root>/lib and
|
||||
recompile ASSIMP. To ensure you're really building against STLport see aiGetCompileFlags().
|
||||
recompile assimp. To ensure you're really building against STLport see aiGetCompileFlags().
|
||||
<br>
|
||||
In our testing, STLport builds tend to be a bit faster than builds against Microsoft's
|
||||
C++ Standard Library.
|
||||
|
@ -265,7 +265,7 @@ C++ Standard Library.
|
|||
|
||||
@section access_cpp Access by C++ class interface
|
||||
|
||||
The ASSIMP library can be accessed by both a class or flat function interface. The C++ class
|
||||
The assimp library can be accessed by both a class or flat function interface. The C++ class
|
||||
interface is the preferred way of interaction: you create an instance of class Assimp::Importer,
|
||||
maybe adjust some settings of it and then call Assimp::Importer::ReadFile(). The class will
|
||||
read the files and process its data, handing back the imported data as a pointer to an aiScene
|
||||
|
@ -276,9 +276,9 @@ results and then simply let it go out of scope.
|
|||
|
||||
C++ example:
|
||||
@code
|
||||
#include <assimp.hpp> // C++ importer interface
|
||||
#include <aiScene.h> // Output data structure
|
||||
#include <aiPostProcess.h> // Post processing flags
|
||||
#include <assimp/Importer.hpp> // C++ importer interface
|
||||
#include <assimp/scene.h> // Output data structure
|
||||
#include <assimp/postprocess.h> // Post processing flags
|
||||
|
||||
bool DoTheImportThing( const std::string& pFile)
|
||||
{
|
||||
|
@ -309,7 +309,7 @@ bool DoTheImportThing( const std::string& pFile)
|
|||
}
|
||||
@endcode
|
||||
|
||||
What exactly is read from the files and how you interpret it is described at the @ref data page. @endlink The post processing steps that the ASSIMP library can apply to the
|
||||
What exactly is read from the files and how you interpret it is described at the @ref data page. @endlink The post processing steps that the assimp library can apply to the
|
||||
imported data are listed at #aiPostProcessSteps. See the @ref pp Post proccessing page for more details.
|
||||
|
||||
Note that the aiScene data structure returned is declared 'const'. Yes, you can get rid of
|
||||
|
@ -327,9 +327,9 @@ imported scene to clean up all resources associated with the import.
|
|||
|
||||
C example:
|
||||
@code
|
||||
#include <assimp.h> // Plain-C interface
|
||||
#include <aiScene.h> // Output data structure
|
||||
#include <aiPostProcess.h> // Post processing flags
|
||||
#include <assimp/cimport.h> // Plain-C interface
|
||||
#include <assimp/scene.h> // Output data structure
|
||||
#include <assimp/postprocess.h> // Post processing flags
|
||||
|
||||
bool DoTheImportThing( const char* pFile)
|
||||
{
|
||||
|
@ -360,18 +360,18 @@ bool DoTheImportThing( const char* pFile)
|
|||
|
||||
@section custom_io Using custom IO logic with the C++ class interface
|
||||
|
||||
The ASSIMP library needs to access files internally. This of course applies to the file you want
|
||||
The assimp library needs to access files internally. This of course applies to the file you want
|
||||
to read, but also to additional files in the same folder for certain file formats. By default,
|
||||
standard C/C++ IO logic is used to access these files. If your application works in a special
|
||||
environment where custom logic is needed to access the specified files, you have to supply
|
||||
custom implementations of IOStream and IOSystem. A shortened example might look like this:
|
||||
|
||||
@code
|
||||
#include <IOStream.h>
|
||||
#include <IOSystem.h>
|
||||
#include <assimp/IOStream.hpp>
|
||||
#include <assimp/IOSystem.hpp>
|
||||
|
||||
// My own implementation of IOStream
|
||||
class MyIOStream : public ASSIMP::IOStream
|
||||
class MyIOStream : public Assimp::IOStream
|
||||
{
|
||||
friend class MyIOSystem;
|
||||
|
||||
|
@ -390,7 +390,7 @@ public:
|
|||
};
|
||||
|
||||
// Fisher Price - My First Filesystem
|
||||
class MyIOSystem : public ASSIMP::IOSystem
|
||||
class MyIOSystem : public Assimp::IOSystem
|
||||
{
|
||||
MyIOSystem() { ... }
|
||||
~MyIOSystem() { ... }
|
||||
|
@ -436,17 +436,17 @@ The C interface also provides a way to override the file system. Control is not
|
|||
surely enough for almost any purpose. The process is simple:
|
||||
|
||||
<ul>
|
||||
<li> Include aiFileIO.h
|
||||
<li> Include cfileio.h
|
||||
<li> Fill an aiFileIO structure with custom file system callbacks (they're self-explanatory as they work similar to the CRT's fXXX functions)
|
||||
<li> .. and pass it as last parameter to #aiImportFileEx
|
||||
<li> .. and pass it as parameter to #aiImportFileEx
|
||||
</ul>
|
||||
|
||||
@section logging Logging
|
||||
|
||||
The ASSIMP library provides an easy mechanism to log messages. For instance if you want to check the state of your
|
||||
The assimp library provides an easy mechanism to log messages. For instance if you want to check the state of your
|
||||
import and you just want to see, after which preprocessing step the import-process was aborted you can take a look
|
||||
into the log.
|
||||
Per default the ASSIMP-library provides a default log implementation, where you can log your user specific message
|
||||
Per default the assimp-library provides a default log implementation, where you can log your user specific message
|
||||
by calling it as a singleton with the requested logging-type. To see how this works take a look to this:
|
||||
|
||||
@code
|
||||
|
@ -465,7 +465,7 @@ DefaultLogger::kill();
|
|||
At first you have to create the default-logger-instance (create). Now you are ready to rock and can log a
|
||||
little bit around. After that you should kill it to release the singleton instance.
|
||||
|
||||
If you want to integrate the ASSIMP-log into your own GUI it my be helpful to have a mechanism writing
|
||||
If you want to integrate the assimp-log into your own GUI it my be helpful to have a mechanism writing
|
||||
the logs into your own log windows. The logger interface provides this by implementing an interface called LogStream.
|
||||
You can attach and detach this log stream to the default-logger instance or any implementation derived from Logger.
|
||||
Just derivate your own logger from the abstract base class LogStream and overwrite the write-method:
|
||||
|
@ -539,10 +539,10 @@ kind kind of logging might decrease import performance.
|
|||
/**
|
||||
@page data Data Structures
|
||||
|
||||
The ASSIMP library returns the imported data in a collection of structures. aiScene forms the root
|
||||
The assimp library returns the imported data in a collection of structures. aiScene forms the root
|
||||
of the data, from here you gain access to all the nodes, meshes, materials, animations or textures
|
||||
that were read from the imported file. The aiScene is returned from a successful call to
|
||||
ASSIMP::Importer::ReadFile(), aiImportFile() or aiImportFileEx() - see the @link usage Usage page @endlink
|
||||
assimp::Importer::ReadFile(), aiImportFile() or aiImportFileEx() - see the @link usage Usage page @endlink
|
||||
for further information on how to use the library.
|
||||
|
||||
By default, all 3D data is provided in a right-handed coordinate system such as OpenGL uses. In
|
||||
|
@ -663,7 +663,7 @@ by the contents of the imported file: by default there are only those data chann
|
|||
that were also found in the file. The only channels guarenteed to be always present are aiMesh::mVertices
|
||||
and aiMesh::mFaces. You can test for the presence of other data by testing the pointers against NULL
|
||||
or use the helper functions provided by aiMesh. You may also specify several post processing flags
|
||||
at Importer::ReadFile() to let ASSIMP calculate or recalculate additional data channels for you.
|
||||
at Importer::ReadFile() to let assimp calculate or recalculate additional data channels for you.
|
||||
|
||||
At the moment, a single aiMesh may contain a set of triangles and polygons. A single vertex does always
|
||||
have a position. In addition it may have one normal, one tangent and bitangent, zero to AI_MAX_NUMBER_OF_TEXTURECOORDS
|
||||
|
@ -761,7 +761,7 @@ decoders (such as libjpeg, libpng, D3DX, DevIL) are required to load theses text
|
|||
aiTexture::mWidth specifies the size of the texture data in bytes, aiTexture::pcData is
|
||||
a pointer to the raw image data and aiTexture::achFormatHint is either zeroed or
|
||||
contains the most common file extension of the embedded texture's format. This value is only
|
||||
set if ASSIMP is able to determine the file format.
|
||||
set if assimp is able to determine the file format.
|
||||
*/
|
||||
|
||||
|
||||
|
@ -774,7 +774,7 @@ All materials are stored in an array of aiMaterial inside the aiScene.
|
|||
Each aiMesh refers to one
|
||||
material by its index in the array. Due to the vastly diverging definitions and usages of material
|
||||
parameters there is no hard definition of a material structure. Instead a material is defined by
|
||||
a set of properties accessible by their names. Have a look at aiMaterial.h to see what types of
|
||||
a set of properties accessible by their names. Have a look at assimp/material.h to see what types of
|
||||
properties are defined. In this file there are also various functions defined to test for the
|
||||
presence of certain properties in a material and retrieve their values.
|
||||
|
||||
|
@ -1072,7 +1072,7 @@ aiGetMaterialColor(mat,AI_MATKEY_COLOR_DIFFUSE,&color);
|
|||
@section uvwsrc How to map UV channels to textures (MATKEY_UVWSRC)
|
||||
|
||||
The MATKEY_UVWSRC property is only present if the source format doesn't specify an explicit mapping from
|
||||
textures to UV channels. Many formats don't do this and ASSIMP is not aware of a perfect rule either.
|
||||
textures to UV channels. Many formats don't do this and assimp is not aware of a perfect rule either.
|
||||
|
||||
Your handling of UV channels needs to be flexible therefore. Our recommendation is to use logic like this
|
||||
to handle most cases properly:
|
||||
|
@ -1236,11 +1236,11 @@ float4 PimpMyPixel (float4 prev)
|
|||
|
||||
@section perf_overview Overview
|
||||
|
||||
This page discusses general performance issues related to ASSIMP.
|
||||
This page discusses general performance issues related to assimp.
|
||||
|
||||
@section perf_profile Profiling
|
||||
|
||||
ASSIMP has built-in support for <i>very</i> basic profiling and time measurement. To turn it on, set the <tt>GLOB_MEASURE_TIME</tt>
|
||||
assimp has built-in support for <i>very</i> basic profiling and time measurement. To turn it on, set the <tt>GLOB_MEASURE_TIME</tt>
|
||||
configuration switch to <tt>true</tt> (nonzero). Results are dumped to the log file, so you need to setup
|
||||
an appropriate logger implementation with at least one output stream first (see the @link logging Logging Page @endlink
|
||||
for the details.).
|
||||
|
@ -1317,7 +1317,7 @@ Debug, T5488: END `total`, dt= 11.269 s
|
|||
In this particular example only one fourth of the total import time was spent on the actual importing, while the rest of the
|
||||
time got consumed by the #aiProcess_Triangulate, #aiProcess_JoinIdenticalVertices and #aiProcess_ImproveCacheLocality
|
||||
postprocessing steps. A wise selection of postprocessing steps is therefore essential to getting good performance.
|
||||
Of course this depends on the individual requirements of your application, in many of the typical use cases of ASSIMP performance won't
|
||||
Of course this depends on the individual requirements of your application, in many of the typical use cases of assimp performance won't
|
||||
matter (i.e. in an offline content pipeline).
|
||||
*/
|
||||
|
||||
|
@ -1326,7 +1326,7 @@ matter (i.e. in an offline content pipeline).
|
|||
|
||||
@section overview Overview
|
||||
|
||||
This page discusses both ASSIMPs scalability in threaded environments and the precautions to be taken in order to
|
||||
This page discusses both assimps scalability in threaded environments and the precautions to be taken in order to
|
||||
use it from multiple threads concurrently.
|
||||
|
||||
@section threadsafety Thread-safety / using Assimp concurrently from several threads
|
||||
|
@ -1337,7 +1337,7 @@ following prerequisites are fulfilled:
|
|||
- Users of the C++-API should ensure that they use a dedicated #Assimp::Importer instance for each thread. Constructing instances of #Assimp::Importer is expensive, so it might be a good idea to
|
||||
let every thread maintain its own thread-local instance (which can be used to
|
||||
load as many files as necessary).
|
||||
- The C-API is thread safe as long as AI_C_THREADSAFE is defined (default).
|
||||
- The C-API is thread safe.
|
||||
- When supplying custom IO logic, one must make sure the underlying implementation is thread-safe.
|
||||
- Custom log streams or logger replacements have to be thread-safe, too.
|
||||
|
||||
|
@ -1357,11 +1357,11 @@ Internal multi-threading is not currently implemented.
|
|||
/**
|
||||
@page res Resources
|
||||
|
||||
This page lists some useful resources for ASSIMP. Note that, even though the core team has an eye on them,
|
||||
This page lists some useful resources for assimp. Note that, even though the core team has an eye on them,
|
||||
we cannot guarantee the accuracy of third-party information. If in doubt, it's best to ask either on the
|
||||
mailing list or on our forums on SF.net.
|
||||
|
||||
- ASSIMP comes with some sample applications, these can be found in the <i>./samples</i> folder. Don't forget to read the <i>README</i> file.
|
||||
- assimp comes with some sample applications, these can be found in the <i>./samples</i> folder. Don't forget to read the <i>README</i> file.
|
||||
- http://www.drivenbynostalgia.com/files/AssimpOpenGLDemo.rar - OpenGl animation sample using the library's animation import facilities.
|
||||
- http://nolimitsdesigns.com/game-design/open-asset-import-library-animation-loader/ is another utility to
|
||||
simplify animation playback.
|
||||
|
@ -1371,7 +1371,7 @@ mailing list or on our forums on SF.net.
|
|||
|
||||
|
||||
/**
|
||||
@page importer_notes Remarks on individual importers
|
||||
@page importer_notes Importer Notes
|
||||
|
||||
<hr>
|
||||
@section blender Blender
|
||||
|
@ -1379,12 +1379,12 @@ mailing list or on our forums on SF.net.
|
|||
This section contains implementation notes for the Blender3D importer.
|
||||
@subsection bl_overview Overview
|
||||
|
||||
ASSIMP provides a self-contained reimplementation of Blender's so called SDNA system (http://www.blender.org/development/architecture/notes-on-sdna/).
|
||||
assimp provides a self-contained reimplementation of Blender's so called SDNA system (http://www.blender.org/development/architecture/notes-on-sdna/).
|
||||
SDNA allows Blender to be fully backward and forward compatible and to exchange
|
||||
files across all platforms. The BLEND format is thus a non-trivial binary monster and the loader tries to read the most of it,
|
||||
naturally limited by the scope of the #aiScene output data structure.
|
||||
Consequently, if Blender is the only modeling tool in your asset work flow, consider writing a
|
||||
custom exporter from Blender if ASSIMPs format coverage does not meet the requirements.
|
||||
custom exporter from Blender if assimps format coverage does not meet the requirements.
|
||||
|
||||
@subsection bl_status Current status
|
||||
|
||||
|
@ -1496,7 +1496,7 @@ source group for your importer and put them also to ADD_LIBRARY( assimp SHARED))
|
|||
<li>Open Importer.cpp and include your header just below the <i>(include_new_importers_here)</i> line,
|
||||
guarded by a #define
|
||||
@code
|
||||
#if (!defined ASSIMP_BUILD_NO_FormatName_IMPORTER)
|
||||
#if (!defined assimp_BUILD_NO_FormatName_IMPORTER)
|
||||
...
|
||||
#endif
|
||||
@endcode
|
||||
|
@ -1533,7 +1533,7 @@ Done! Please, share your loader that everyone can profit from it!
|
|||
@section properties Properties
|
||||
|
||||
You can use properties to chance the behavior of you importer. In order to do so, you have to overide BaseImporter::SetupProperties, and specify
|
||||
you custom properties in aiConfig.h. Just have a look to the other AI_CONFIG_IMPORT_* defines and you will understand, how it works.
|
||||
you custom properties in config.h. Just have a look to the other AI_CONFIG_IMPORT_* defines and you will understand, how it works.
|
||||
|
||||
The properties can be set with Importer::SetProperty***() and can be accessed in your SetupProperties function with Importer::GetProperty***(). You can
|
||||
store the properties as a member variable of your importer, they are thread safe.
|
||||
|
@ -1612,7 +1612,7 @@ The boost whitelist:
|
|||
</ul>
|
||||
|
||||
(if you happen to need something else, i.e. boost::thread, make this an optional feature.
|
||||
<tt>ASSIMP_BUILD_BOOST_WORKAROUND</tt> is defined for <i>-noboost</i> builds)
|
||||
<tt>assimp_BUILD_BOOST_WORKAROUND</tt> is defined for <i>-noboost</i> builds)
|
||||
|
||||
@section appa Appendix A - Template for BaseImporter's abstract methods
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
body, table, div, p, dl {
|
||||
font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
|
||||
font-size: 11px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
/* @group Heading Levels */
|
||||
|
|
Loading…
Reference in New Issue