Path Tracer
Classes | Typedefs | Functions | Variables
Assimp Namespace Reference

Classes

struct  AttachmentInfo
 Helper data structure for SceneCombiner. More...
 
class  BaseImporter
 
class  Bitmap
 
class  BlobIOStream
 
class  BlobIOSystem
 
struct  BoneWithHash
 Helper data structure for SceneCombiner::MergeBones. More...
 
class  ByteSwap
 
class  CommentRemover
 Helper class to remove single and multi line comments from a file. More...
 
class  DefaultIOStream
 Default IO implementation, use standard IO operations. More...
 
class  DefaultIOSystem
 
class  DefaultLogger
 CPP-API: Primary logging facility of Assimp. More...
 
class  Exporter
 
class  ExportProperties
 
struct  find_node_by_name_predicate
 
class  Importer
 
class  IOStream
 CPP-API: Class to handle file I/O for C++. More...
 
class  IOStreamBuffer
 
class  IOSystem
 CPP-API: Interface to the file system. More...
 
class  LineSplitter
 
class  LogFunctions
 
class  Logger
 CPP-API: Abstract interface for logger implementations. Assimp provides a default implementation and uses it for almost all logging stuff ('DefaultLogger'). This class defines just basic logging behavior and is not of interest for you. Instead, take a look at #DefaultLogger. More...
 
class  LogStream
 CPP-API: Abstract interface for log stream implementations. More...
 
class  MemoryIOStream
 
class  MemoryIOSystem
 
struct  NodeAttachmentInfo
 
struct  NodeConverter
 
class  NullLogger
 CPP-API: Empty logging implementation. More...
 
class  ProgressHandler
 CPP-API: Abstract interface for custom progress report receivers. More...
 
class  SceneCombiner
 Static helper class providing various utilities to merge two scenes. It is intended as internal utility and NOT for use by applications. More...
 
struct  SceneHelper
 Utility for SceneCombiner. More...
 
class  SGSpatialSort
 
class  SkeletonMeshBuilder
 
class  SmallVector
 Small vector with inplace storage. More...
 
class  SpatialSort
 
class  StandardShapes
 Helper class to generate vertex buffers for standard geometric shapes, such as cylinders, cones, boxes, spheres, elipsoids ... . More...
 
class  StreamReader
 
class  StreamWriter
 
class  Subdivider
 
class  TXmlParser
 
class  Vertex
 
class  XmlNodeIterator
 
class  ZipArchiveIOSystem
 

Typedefs

typedef std::pair< aiBone *, unsigned int > BoneSrcIndex
 
typedef StreamReader< true > StreamReaderBE
 
typedef StreamReader< false > StreamReaderLE
 
typedef StreamReader< true, true > StreamReaderAny
 
typedef StreamWriter< true > StreamWriterBE
 
typedef StreamWriter< false > StreamWriterLE
 
typedef StreamWriter< true, true > StreamWriterAny
 
using XmlNode = pugi::xml_node
 
using XmlAttribute = pugi::xml_attribute
 
using XmlParser = TXmlParser< pugi::xml_node >
 

Functions

ASSIMP_API void aiAssertViolation (const char *failedExpression, const char *file, int line)
 
ASSIMP_API aiAnimMeshaiCreateAnimMesh (const aiMesh *mesh)
 
unsigned int strtoul10 (const char *in, const char **out=0)
 
unsigned int strtoul8 (const char *in, const char **out=0)
 
unsigned int strtoul16 (const char *in, const char **out=0)
 
unsigned int HexDigitToDecimal (char in)
 
uint8_t HexOctetToDecimal (const char *in)
 
int strtol10 (const char *in, const char **out=0)
 
unsigned int strtoul_cppstyle (const char *in, const char **out=0)
 
template<typename ExceptionType = DeadlyImportError>
uint64_t strtoul10_64 (const char *in, const char **out=0, unsigned int *max_inout=0)
 
template<typename ExceptionType = DeadlyImportError>
int64_t strtol10_64 (const char *in, const char **out=0, unsigned int *max_inout=0)
 
template<typename Real , typename ExceptionType = DeadlyImportError>
const char * fast_atoreal_move (const char *c, Real &out, bool check_comma=true)
 
template<typename ExceptionType = DeadlyImportError>
ai_real fast_atof (const char *c)
 
template<typename ExceptionType = DeadlyImportError>
ai_real fast_atof (const char *c, const char **cout)
 
template<typename ExceptionType = DeadlyImportError>
ai_real fast_atof (const char **inout)
 
template<class char_t >
AI_FORCE_INLINE char_t ToLower (char_t in)
 
template<class char_t >
AI_FORCE_INLINE char_t ToUpper (char_t in)
 
template<class char_t >
AI_FORCE_INLINE bool IsUpper (char_t in)
 
template<class char_t >
AI_FORCE_INLINE bool IsLower (char_t in)
 
template<class char_t >
AI_FORCE_INLINE bool IsSpace (char_t in)
 
template<class char_t >
AI_FORCE_INLINE bool IsLineEnd (char_t in)
 
template<class char_t >
AI_FORCE_INLINE bool IsSpaceOrNewLine (char_t in)
 
template<class char_t >
AI_FORCE_INLINE bool SkipSpaces (const char_t *in, const char_t **out)
 
template<class char_t >
AI_FORCE_INLINE bool SkipSpaces (const char_t **inout)
 
template<class char_t >
AI_FORCE_INLINE bool SkipLine (const char_t *in, const char_t **out)
 
template<class char_t >
AI_FORCE_INLINE bool SkipLine (const char_t **inout)
 
template<class char_t >
AI_FORCE_INLINE bool SkipSpacesAndLineEnd (const char_t *in, const char_t **out)
 
template<class char_t >
AI_FORCE_INLINE bool SkipSpacesAndLineEnd (const char_t **inout)
 
template<class char_t >
AI_FORCE_INLINE bool GetNextLine (const char_t *&buffer, char_t out[BufferSize])
 
template<class char_t >
AI_FORCE_INLINE bool IsNumeric (char_t in)
 
template<class char_t >
AI_FORCE_INLINE bool TokenMatch (char_t *&in, const char *token, unsigned int len)
 
AI_FORCE_INLINE bool TokenMatchI (const char *&in, const char *token, unsigned int len)
 Case-ignoring version of TokenMatch. More...
 
AI_FORCE_INLINE void SkipToken (const char *&in)
 
AI_FORCE_INLINE std::string GetNextToken (const char *&in)
 
template<class string_type >
AI_FORCE_INLINE unsigned int tokenize (const string_type &str, std::vector< string_type > &tokens, const string_type &delimiters)
 Will perform a simple tokenize. More...
 
std::string ai_stdStrToLower (const std::string &str)
 
AI_FORCE_INLINE unsigned int ASSIMP_itoa10 (char *out, unsigned int max, int32_t number)
 itoa with a fixed base 10 'itoa' is not consistently available on all platforms so it is quite useful to have a small replacement function here. No need to use a full sprintf() if we just want to print a number ... More...
 
template<size_t length>
AI_FORCE_INLINE unsigned int ASSIMP_itoa10 (char(&out)[length], int32_t number)
 itoa with a fixed base 10 (Secure template overload) The compiler should choose this function if he or she is able to determine the size of the array automatically.
 
AI_FORCE_INLINE int ASSIMP_stricmp (const char *s1, const char *s2)
 Helper function to do platform independent string comparison. More...
 
AI_FORCE_INLINE int ASSIMP_stricmp (const std::string &a, const std::string &b)
 Case independent comparison of two std::strings. More...
 
AI_FORCE_INLINE int ASSIMP_strincmp (const char *s1, const char *s2, unsigned int n)
 Helper function to do platform independent string comparison. More...
 
AI_FORCE_INLINE unsigned int integer_pow (unsigned int base, unsigned int power)
 Evaluates an integer power. More...
 
AI_FORCE_INLINE Vertex operator+ (const Vertex &v0, const Vertex &v1)
 
AI_FORCE_INLINE Vertex operator- (const Vertex &v0, const Vertex &v1)
 
AI_FORCE_INLINE Vertex operator* (const Vertex &v0, ai_real f)
 
AI_FORCE_INLINE Vertex operator/ (const Vertex &v0, ai_real f)
 
AI_FORCE_INLINE Vertex operator* (ai_real f, const Vertex &v0)
 
std::string XMLEscape (const std::string &data)
 

Variables

class ASSIMP_API ExportProperties
 
const double fast_atof_table [16]
 

Detailed Description

Assimp's CPP-API and all internal APIs

Function Documentation

◆ aiCreateAnimMesh()

ASSIMP_API aiAnimMesh* Assimp::aiCreateAnimMesh ( const aiMesh mesh)

Create aiAnimMesh from aiMesh.

Parameters
meshThe input mesh to create an animated mesh from.
Returns
The new created animated mesh.

◆ ASSIMP_itoa10()

AI_FORCE_INLINE unsigned int Assimp::ASSIMP_itoa10 ( char *  out,
unsigned int  max,
int32_t  number 
)

itoa with a fixed base 10 'itoa' is not consistently available on all platforms so it is quite useful to have a small replacement function here. No need to use a full sprintf() if we just want to print a number ...

Parameters
outOutput buffer
maxMaximum number of characters to be written, including '\0'. This parameter may not be 0.
numberNumber to be written
Returns
Length of the output string, excluding the '\0'

◆ ASSIMP_stricmp() [1/2]

AI_FORCE_INLINE int Assimp::ASSIMP_stricmp ( const char *  s1,
const char *  s2 
)

Helper function to do platform independent string comparison.

This is required since stricmp() is not consistently available on all platforms. Some platforms use the '_' prefix, others don't even have such a function.

Parameters
s1First input string
s2Second input string
Returns
0 if the given strings are identical

◆ ASSIMP_stricmp() [2/2]

AI_FORCE_INLINE int Assimp::ASSIMP_stricmp ( const std::string &  a,
const std::string &  b 
)

Case independent comparison of two std::strings.

Parameters
aFirst string
bSecond string
Returns
0 if a == b

◆ ASSIMP_strincmp()

AI_FORCE_INLINE int Assimp::ASSIMP_strincmp ( const char *  s1,
const char *  s2,
unsigned int  n 
)

Helper function to do platform independent string comparison.

This is required since strincmp() is not consistently available on all platforms. Some platforms use the '_' prefix, others don't even have such a function.

Parameters
s1First input string
s2Second input string
nMacimum number of characters to compare
Returns
0 if the given strings are identical

◆ fast_atoreal_move()

template<typename Real , typename ExceptionType = DeadlyImportError>
const char* Assimp::fast_atoreal_move ( const char *  c,
Real &  out,
bool  check_comma = true 
)
inline

Provides a fast function for converting a string into a float, about 6 times faster than atof in win32.

◆ integer_pow()

AI_FORCE_INLINE unsigned int Assimp::integer_pow ( unsigned int  base,
unsigned int  power 
)

Evaluates an integer power.

todo: move somewhere where it fits better in than here

◆ tokenize()

template<class string_type >
AI_FORCE_INLINE unsigned int Assimp::tokenize ( const string_type &  str,
std::vector< string_type > &  tokens,
const string_type &  delimiters 
)

Will perform a simple tokenize.

Parameters
strString to tokenize.
tokensArray with tokens, will be empty if no token was found.
delimitersDelimiter for tokenize.
Returns
Number of found token.

◆ TokenMatchI()

AI_FORCE_INLINE bool Assimp::TokenMatchI ( const char *&  in,
const char *  token,
unsigned int  len 
)

Case-ignoring version of TokenMatch.

Parameters
inInput
tokenToken to check for
lenNumber of characters to check

Variable Documentation

◆ ExportProperties

class ASSIMP_API Assimp::ExportProperties

CPP-API: The Exporter class forms an C++ interface to the export functionality of the Open Asset Import Library. Note that the export interface is available only if Assimp has been built with ASSIMP_BUILD_NO_EXPORT not defined.

The interface is modeled after the importer interface and mostly symmetric. The same rules for threading etc. apply.

In a nutshell, there are two export interfaces: #Export, which writes the output file(s) either to the regular file system or to a user-supplied #IOSystem, and #ExportToBlob which returns a linked list of memory buffers (blob), each referring to one output file (in most cases there will be only one output file of course, but this extra complexity is needed since Assimp aims at supporting a wide range of file formats).

#ExportToBlob is especially useful if you intend to work with the data in-memory.

◆ fast_atof_table

const double Assimp::fast_atof_table[16]
Initial value:
= {
0.0,
0.1,
0.01,
0.001,
0.0001,
0.00001,
0.000001,
0.0000001,
0.00000001,
0.000000001,
0.0000000001,
0.00000000001,
0.000000000001,
0.0000000000001,
0.00000000000001,
0.000000000000001
}