Assimp  v4.1. (December 2018)
Assimp::Blender::Structure Class Reference

Represents a data structure in a BLEND file. More...

Public Member Functions

template<typename T >
std::shared_ptr< ElemBaseAllocate () const
 
template<>
void Convert (Base &dest, const FileDatabase &db) const
 
template<>
void Convert (Base &dest, const FileDatabase &db) const
 
template<>
void Convert (Camera &dest, const FileDatabase &db) const
 
template<>
void Convert (Camera &dest, const FileDatabase &db) const
 
template<>
void Convert (char &dest, const FileDatabase &db) const
 
template<>
void Convert (char &dest, const FileDatabase &db) const
 
template<>
void Convert (CustomData &dest, const FileDatabase &db) const
 
template<>
void Convert (CustomData &dest, const FileDatabase &db) const
 
template<>
void Convert (CustomDataLayer &dest, const FileDatabase &db) const
 
template<>
void Convert (CustomDataLayer &dest, const FileDatabase &db) const
 
template<>
void Convert (double &dest, const FileDatabase &db) const
 
template<>
void Convert (double &dest, const FileDatabase &db) const
 
template<>
void Convert (float &dest, const FileDatabase &db) const
 
template<>
void Convert (float &dest, const FileDatabase &db) const
 
template<>
void Convert (Group &dest, const FileDatabase &db) const
 
template<>
void Convert (Group &dest, const FileDatabase &db) const
 
template<>
void Convert (GroupObject &dest, const FileDatabase &db) const
 
template<>
void Convert (GroupObject &dest, const FileDatabase &db) const
 
template<>
void Convert (ID &dest, const FileDatabase &db) const
 
template<>
void Convert (ID &dest, const FileDatabase &db) const
 
template<>
void Convert (Image &dest, const FileDatabase &db) const
 
template<>
void Convert (Image &dest, const FileDatabase &db) const
 
template<>
void Convert (int &dest, const FileDatabase &db) const
 
template<>
void Convert (int &dest, const FileDatabase &db) const
 
template<>
void Convert (Lamp &dest, const FileDatabase &db) const
 
template<>
void Convert (Lamp &dest, const FileDatabase &db) const
 
template<>
void Convert (Library &dest, const FileDatabase &db) const
 
template<>
void Convert (Library &dest, const FileDatabase &db) const
 
template<>
void Convert (ListBase &dest, const FileDatabase &db) const
 
template<>
void Convert (ListBase &dest, const FileDatabase &db) const
 
template<>
void Convert (Material &dest, const FileDatabase &db) const
 
template<>
void Convert (Material &dest, const FileDatabase &db) const
 
template<>
void Convert (MCol &dest, const FileDatabase &db) const
 
template<>
void Convert (MCol &dest, const FileDatabase &db) const
 
template<>
void Convert (MDeformVert &dest, const FileDatabase &db) const
 
template<>
void Convert (MDeformVert &dest, const FileDatabase &db) const
 
template<>
void Convert (MDeformWeight &dest, const FileDatabase &db) const
 
template<>
void Convert (MDeformWeight &dest, const FileDatabase &db) const
 
template<>
void Convert (MEdge &dest, const FileDatabase &db) const
 
template<>
void Convert (MEdge &dest, const FileDatabase &db) const
 
template<>
void Convert (Mesh &dest, const FileDatabase &db) const
 
template<>
void Convert (Mesh &dest, const FileDatabase &db) const
 
template<>
void Convert (MFace &dest, const FileDatabase &db) const
 
template<>
void Convert (MFace &dest, const FileDatabase &db) const
 
template<>
void Convert (MirrorModifierData &dest, const FileDatabase &db) const
 
template<>
void Convert (MirrorModifierData &dest, const FileDatabase &db) const
 
template<>
void Convert (MLoop &dest, const FileDatabase &db) const
 
template<>
void Convert (MLoop &dest, const FileDatabase &db) const
 
template<>
void Convert (MLoopCol &dest, const FileDatabase &db) const
 
template<>
void Convert (MLoopCol &dest, const FileDatabase &db) const
 
template<>
void Convert (MLoopUV &dest, const FileDatabase &db) const
 
template<>
void Convert (MLoopUV &dest, const FileDatabase &db) const
 
template<>
void Convert (ModifierData &dest, const FileDatabase &db) const
 
template<>
void Convert (ModifierData &dest, const FileDatabase &db) const
 
template<>
void Convert (MPoly &dest, const FileDatabase &db) const
 
template<>
void Convert (MPoly &dest, const FileDatabase &db) const
 
template<>
void Convert (MTex &dest, const FileDatabase &db) const
 
template<>
void Convert (MTex &dest, const FileDatabase &db) const
 
template<>
void Convert (MTexPoly &dest, const FileDatabase &db) const
 
template<>
void Convert (MTexPoly &dest, const FileDatabase &db) const
 
template<>
void Convert (MTFace &dest, const FileDatabase &db) const
 
template<>
void Convert (MTFace &dest, const FileDatabase &db) const
 
template<>
void Convert (MVert &dest, const FileDatabase &db) const
 
template<>
void Convert (MVert &dest, const FileDatabase &db) const
 
template<>
void Convert (Object &dest, const FileDatabase &db) const
 
template<>
void Convert (Object &dest, const FileDatabase &db) const
 
template<>
void Convert (PackedFile &dest, const FileDatabase &db) const
 
template<>
void Convert (PackedFile &dest, const FileDatabase &db) const
 
template<>
void Convert (Pointer &dest, const FileDatabase &db) const
 
template<>
void Convert (Pointer &dest, const FileDatabase &db) const
 
template<>
void Convert (Scene &dest, const FileDatabase &db) const
 
template<>
void Convert (Scene &dest, const FileDatabase &db) const
 
template<>
void Convert (short &dest, const FileDatabase &db) const
 
template<>
void Convert (short &dest, const FileDatabase &db) const
 
template<typename T >
void Convert (std::shared_ptr< ElemBase > in, const FileDatabase &db) const
 
template<>
void Convert (SubsurfModifierData &dest, const FileDatabase &db) const
 
template<>
void Convert (SubsurfModifierData &dest, const FileDatabase &db) const
 
template<typename T >
void Convert (T &dest, const FileDatabase &db) const
 Try to read an instance of the structure from the stream and attempt to convert to T. More...
 
template<>
void Convert (Tex &dest, const FileDatabase &db) const
 
template<>
void Convert (Tex &dest, const FileDatabase &db) const
 
template<>
void Convert (TFace &dest, const FileDatabase &db) const
 
template<>
void Convert (TFace &dest, const FileDatabase &db) const
 
template<>
void Convert (unsigned char &dest, const FileDatabase &db) const
 
template<>
void Convert (World &dest, const FileDatabase &db) const
 
template<>
void Convert (World &dest, const FileDatabase &db) const
 
const FieldGet (const std::string &ss) const
 
bool operator!= (const Structure &other) const
 
bool operator== (const Structure &other) const
 
const Fieldoperator[] (const size_t i) const
 Access a field of the structure by its index. More...
 
const Fieldoperator[] (const std::string &ss) const
 Access a field of the structure by its canonical name. More...
 
template<int error_policy>
bool ReadCustomDataPtr (std::shared_ptr< ElemBase > &out, int cdtype, const char *name, const FileDatabase &db) const
 parses raw customdata More...
 
template<int error_policy, typename T >
void ReadField (T &out, const char *name, const FileDatabase &db) const
 
template<int error_policy, typename T , size_t M>
void ReadFieldArray (T(&out)[M], const char *name, const FileDatabase &db) const
 
template<int error_policy, typename T , size_t M, size_t N>
void ReadFieldArray2 (T(&out)[M][N], const char *name, const FileDatabase &db) const
 
template<int error_policy, template< typename > class TOUT, typename T >
bool ReadFieldPtr (TOUT< T > &out, const char *name, const FileDatabase &db, bool non_recursive=false) const
 
template<int error_policy, template< typename > class TOUT, typename T , size_t N>
bool ReadFieldPtr (TOUT< T >(&out)[N], const char *name, const FileDatabase &db) const
 
template<int error_policy, template< typename > class TOUT, typename T >
bool ReadFieldPtrVector (vector< TOUT< T >> &out, const char *name, const FileDatabase &db) const
 field parsing for dynamic vectors More...
 
 Structure ()
 

Public Attributes

vector< Fieldfields
 
std::map< std::string, size_t > indices
 
std::string name
 
size_t size
 

Friends

template<template< typename > class>
class ObjectCache
 

Detailed Description

Represents a data structure in a BLEND file.

A Structure defines n fields and their locations and encodings the input stream. Usually, every Structure instance pertains to one equally-named data structure in the BlenderScene.h header. This class defines various utilities to map a binary blob read from the file to such a structure instance with meaningful contents.

Constructor & Destructor Documentation

◆ Structure()

Assimp::Blender::Structure::Structure ( )
inline

Member Function Documentation

◆ Allocate()

template<typename T >
std::shared_ptr< ElemBase > Assimp::Blender::Structure::Allocate ( ) const

◆ Convert() [1/85]

template<>
void Assimp::Blender::Structure::Convert ( Base dest,
const FileDatabase db 
) const

◆ Convert() [2/85]

template<>
void Assimp::Blender::Structure::Convert ( Base dest,
const FileDatabase db 
) const

◆ Convert() [3/85]

template<>
void Assimp::Blender::Structure::Convert ( Camera dest,
const FileDatabase db 
) const

◆ Convert() [4/85]

template<>
void Assimp::Blender::Structure::Convert ( Camera dest,
const FileDatabase db 
) const

◆ Convert() [5/85]

template<>
void Assimp::Blender::Structure::Convert ( char &  dest,
const FileDatabase db 
) const
inline

◆ Convert() [6/85]

template<>
void Assimp::Blender::Structure::Convert ( char &  dest,
const FileDatabase db 
) const
inline

◆ Convert() [7/85]

template<>
void Assimp::Blender::Structure::Convert ( CustomData dest,
const FileDatabase db 
) const

◆ Convert() [8/85]

template<>
void Assimp::Blender::Structure::Convert ( CustomData dest,
const FileDatabase db 
) const

◆ Convert() [9/85]

template<>
void Assimp::Blender::Structure::Convert ( CustomDataLayer dest,
const FileDatabase db 
) const

◆ Convert() [10/85]

template<>
void Assimp::Blender::Structure::Convert ( CustomDataLayer dest,
const FileDatabase db 
) const

◆ Convert() [11/85]

template<>
void Assimp::Blender::Structure::Convert ( double &  dest,
const FileDatabase db 
) const
inline

◆ Convert() [12/85]

template<>
void Assimp::Blender::Structure::Convert ( double &  dest,
const FileDatabase db 
) const
inline

◆ Convert() [13/85]

template<>
void Assimp::Blender::Structure::Convert ( float &  dest,
const FileDatabase db 
) const
inline

◆ Convert() [14/85]

template<>
void Assimp::Blender::Structure::Convert ( float &  dest,
const FileDatabase db 
) const
inline

◆ Convert() [15/85]

template<>
void Assimp::Blender::Structure::Convert ( Group dest,
const FileDatabase db 
) const

◆ Convert() [16/85]

template<>
void Assimp::Blender::Structure::Convert ( Group dest,
const FileDatabase db 
) const

◆ Convert() [17/85]

template<>
void Assimp::Blender::Structure::Convert ( GroupObject dest,
const FileDatabase db 
) const

◆ Convert() [18/85]

template<>
void Assimp::Blender::Structure::Convert ( GroupObject dest,
const FileDatabase db 
) const

◆ Convert() [19/85]

template<>
void Assimp::Blender::Structure::Convert ( ID dest,
const FileDatabase db 
) const

◆ Convert() [20/85]

template<>
void Assimp::Blender::Structure::Convert ( ID dest,
const FileDatabase db 
) const

◆ Convert() [21/85]

template<>
void Assimp::Blender::Structure::Convert ( Image dest,
const FileDatabase db 
) const

◆ Convert() [22/85]

template<>
void Assimp::Blender::Structure::Convert ( Image dest,
const FileDatabase db 
) const

◆ Convert() [23/85]

template<>
void Assimp::Blender::Structure::Convert ( int &  dest,
const FileDatabase db 
) const
inline

◆ Convert() [24/85]

template<>
void Assimp::Blender::Structure::Convert ( int &  dest,
const FileDatabase db 
) const
inline

◆ Convert() [25/85]

template<>
void Assimp::Blender::Structure::Convert ( Lamp dest,
const FileDatabase db 
) const

◆ Convert() [26/85]

template<>
void Assimp::Blender::Structure::Convert ( Lamp dest,
const FileDatabase db 
) const

◆ Convert() [27/85]

template<>
void Assimp::Blender::Structure::Convert ( Library dest,
const FileDatabase db 
) const

◆ Convert() [28/85]

template<>
void Assimp::Blender::Structure::Convert ( Library dest,
const FileDatabase db 
) const

◆ Convert() [29/85]

template<>
void Assimp::Blender::Structure::Convert ( ListBase dest,
const FileDatabase db 
) const

◆ Convert() [30/85]

template<>
void Assimp::Blender::Structure::Convert ( ListBase dest,
const FileDatabase db 
) const

◆ Convert() [31/85]

template<>
void Assimp::Blender::Structure::Convert ( Material dest,
const FileDatabase db 
) const

◆ Convert() [32/85]

template<>
void Assimp::Blender::Structure::Convert ( Material dest,
const FileDatabase db 
) const

◆ Convert() [33/85]

template<>
void Assimp::Blender::Structure::Convert ( MCol dest,
const FileDatabase db 
) const

◆ Convert() [34/85]

template<>
void Assimp::Blender::Structure::Convert ( MCol dest,
const FileDatabase db 
) const

◆ Convert() [35/85]

template<>
void Assimp::Blender::Structure::Convert ( MDeformVert dest,
const FileDatabase db 
) const

◆ Convert() [36/85]

template<>
void Assimp::Blender::Structure::Convert ( MDeformVert dest,
const FileDatabase db 
) const

◆ Convert() [37/85]

template<>
void Assimp::Blender::Structure::Convert ( MDeformWeight dest,
const FileDatabase db 
) const

◆ Convert() [38/85]

template<>
void Assimp::Blender::Structure::Convert ( MDeformWeight dest,
const FileDatabase db 
) const

◆ Convert() [39/85]

template<>
void Assimp::Blender::Structure::Convert ( MEdge dest,
const FileDatabase db 
) const

◆ Convert() [40/85]

template<>
void Assimp::Blender::Structure::Convert ( MEdge dest,
const FileDatabase db 
) const

◆ Convert() [41/85]

template<>
void Assimp::Blender::Structure::Convert ( Mesh dest,
const FileDatabase db 
) const

◆ Convert() [42/85]

template<>
void Assimp::Blender::Structure::Convert ( Mesh dest,
const FileDatabase db 
) const

◆ Convert() [43/85]

template<>
void Assimp::Blender::Structure::Convert ( MFace dest,
const FileDatabase db 
) const

◆ Convert() [44/85]

template<>
void Assimp::Blender::Structure::Convert ( MFace dest,
const FileDatabase db 
) const

◆ Convert() [45/85]

template<>
void Assimp::Blender::Structure::Convert ( MirrorModifierData dest,
const FileDatabase db 
) const

◆ Convert() [46/85]

template<>
void Assimp::Blender::Structure::Convert ( MirrorModifierData dest,
const FileDatabase db 
) const

◆ Convert() [47/85]

template<>
void Assimp::Blender::Structure::Convert ( MLoop dest,
const FileDatabase db 
) const

◆ Convert() [48/85]

template<>
void Assimp::Blender::Structure::Convert ( MLoop dest,
const FileDatabase db 
) const

◆ Convert() [49/85]

template<>
void Assimp::Blender::Structure::Convert ( MLoopCol dest,
const FileDatabase db 
) const

◆ Convert() [50/85]

template<>
void Assimp::Blender::Structure::Convert ( MLoopCol dest,
const FileDatabase db 
) const

◆ Convert() [51/85]

template<>
void Assimp::Blender::Structure::Convert ( MLoopUV dest,
const FileDatabase db 
) const

◆ Convert() [52/85]

template<>
void Assimp::Blender::Structure::Convert ( MLoopUV dest,
const FileDatabase db 
) const

◆ Convert() [53/85]

template<>
void Assimp::Blender::Structure::Convert ( ModifierData dest,
const FileDatabase db 
) const

◆ Convert() [54/85]

template<>
void Assimp::Blender::Structure::Convert ( ModifierData dest,
const FileDatabase db 
) const

◆ Convert() [55/85]

template<>
void Assimp::Blender::Structure::Convert ( MPoly dest,
const FileDatabase db 
) const

◆ Convert() [56/85]

template<>
void Assimp::Blender::Structure::Convert ( MPoly dest,
const FileDatabase db 
) const

◆ Convert() [57/85]

template<>
void Assimp::Blender::Structure::Convert ( MTex dest,
const FileDatabase db 
) const

◆ Convert() [58/85]

template<>
void Assimp::Blender::Structure::Convert ( MTex dest,
const FileDatabase db 
) const

◆ Convert() [59/85]

template<>
void Assimp::Blender::Structure::Convert ( MTexPoly dest,
const FileDatabase db 
) const

◆ Convert() [60/85]

template<>
void Assimp::Blender::Structure::Convert ( MTexPoly dest,
const FileDatabase db 
) const

◆ Convert() [61/85]

template<>
void Assimp::Blender::Structure::Convert ( MTFace dest,
const FileDatabase db 
) const

◆ Convert() [62/85]

template<>
void Assimp::Blender::Structure::Convert ( MTFace dest,
const FileDatabase db 
) const

◆ Convert() [63/85]

template<>
void Assimp::Blender::Structure::Convert ( MVert dest,
const FileDatabase db 
) const

◆ Convert() [64/85]

template<>
void Assimp::Blender::Structure::Convert ( MVert dest,
const FileDatabase db 
) const

◆ Convert() [65/85]

template<>
void Assimp::Blender::Structure::Convert ( Object dest,
const FileDatabase db 
) const

◆ Convert() [66/85]

template<>
void Assimp::Blender::Structure::Convert ( Object dest,
const FileDatabase db 
) const

◆ Convert() [67/85]

template<>
void Assimp::Blender::Structure::Convert ( PackedFile dest,
const FileDatabase db 
) const

◆ Convert() [68/85]

template<>
void Assimp::Blender::Structure::Convert ( PackedFile dest,
const FileDatabase db 
) const

◆ Convert() [69/85]

template<>
void Assimp::Blender::Structure::Convert ( Pointer dest,
const FileDatabase db 
) const
inline

◆ Convert() [70/85]

template<>
void Assimp::Blender::Structure::Convert ( Pointer dest,
const FileDatabase db 
) const
inline

◆ Convert() [71/85]

template<>
void Assimp::Blender::Structure::Convert ( Scene dest,
const FileDatabase db 
) const

◆ Convert() [72/85]

template<>
void Assimp::Blender::Structure::Convert ( Scene dest,
const FileDatabase db 
) const

◆ Convert() [73/85]

template<>
void Assimp::Blender::Structure::Convert ( short &  dest,
const FileDatabase db 
) const
inline

◆ Convert() [74/85]

template<>
void Assimp::Blender::Structure::Convert ( short &  dest,
const FileDatabase db 
) const
inline

◆ Convert() [75/85]

template<typename T >
void Assimp::Blender::Structure::Convert ( std::shared_ptr< ElemBase in,
const FileDatabase db 
) const

◆ Convert() [76/85]

template<>
void Assimp::Blender::Structure::Convert ( SubsurfModifierData dest,
const FileDatabase db 
) const

◆ Convert() [77/85]

template<>
void Assimp::Blender::Structure::Convert ( SubsurfModifierData dest,
const FileDatabase db 
) const

◆ Convert() [78/85]

template<typename T >
void Assimp::Blender::Structure::Convert ( T &  dest,
const FileDatabase db 
) const

Try to read an instance of the structure from the stream and attempt to convert to T.

This is done by an appropriate specialization. If none is available, a compiler complain is the result.

Parameters
destDestination value to be written
dbFile database, including input stream.

◆ Convert() [79/85]

template<>
void Assimp::Blender::Structure::Convert ( Tex dest,
const FileDatabase db 
) const

◆ Convert() [80/85]

template<>
void Assimp::Blender::Structure::Convert ( Tex dest,
const FileDatabase db 
) const

◆ Convert() [81/85]

template<>
void Assimp::Blender::Structure::Convert ( TFace dest,
const FileDatabase db 
) const

◆ Convert() [82/85]

template<>
void Assimp::Blender::Structure::Convert ( TFace dest,
const FileDatabase db 
) const

◆ Convert() [83/85]

template<>
void Assimp::Blender::Structure::Convert ( unsigned char &  dest,
const FileDatabase db 
) const
inline

◆ Convert() [84/85]

template<>
void Assimp::Blender::Structure::Convert ( World dest,
const FileDatabase db 
) const

◆ Convert() [85/85]

template<>
void Assimp::Blender::Structure::Convert ( World dest,
const FileDatabase db 
) const

◆ Get()

const Field * Assimp::Blender::Structure::Get ( const std::string &  ss) const
inline

◆ operator!=()

bool Assimp::Blender::Structure::operator!= ( const Structure other) const
inline

◆ operator==()

bool Assimp::Blender::Structure::operator== ( const Structure other) const
inline

◆ operator[]() [1/2]

const Field & Assimp::Blender::Structure::operator[] ( const size_t  i) const
inline

Access a field of the structure by its index.

◆ operator[]() [2/2]

const Field & Assimp::Blender::Structure::operator[] ( const std::string &  ss) const
inline

Access a field of the structure by its canonical name.

The pointer version returns NULL on failure while the reference version raises an import error.

◆ ReadCustomDataPtr()

template<int error_policy>
bool Assimp::Blender::Structure::ReadCustomDataPtr ( std::shared_ptr< ElemBase > &  out,
int  cdtype,
const char *  name,
const FileDatabase db 
) const

parses raw customdata

Parameters
[in]outshared_ptr to be filled
[in]cdtypecustomdata type to read
[in]nameof field ptr
[in]dbto access the file, dna, ...
Returns
true when read was successful

◆ ReadField()

template<int error_policy, typename T >
void Assimp::Blender::Structure::ReadField ( T &  out,
const char *  name,
const FileDatabase db 
) const

◆ ReadFieldArray()

template<int error_policy, typename T , size_t M>
void Assimp::Blender::Structure::ReadFieldArray ( T(&)  out[M],
const char *  name,
const FileDatabase db 
) const

◆ ReadFieldArray2()

template<int error_policy, typename T , size_t M, size_t N>
void Assimp::Blender::Structure::ReadFieldArray2 ( T(&)  out[M][N],
const char *  name,
const FileDatabase db 
) const

◆ ReadFieldPtr() [1/2]

template<int error_policy, template< typename > class TOUT, typename T >
bool Assimp::Blender::Structure::ReadFieldPtr ( TOUT< T > &  out,
const char *  name,
const FileDatabase db,
bool  non_recursive = false 
) const

◆ ReadFieldPtr() [2/2]

template<int error_policy, template< typename > class TOUT, typename T , size_t N>
bool Assimp::Blender::Structure::ReadFieldPtr ( TOUT< T >(&)  out[N],
const char *  name,
const FileDatabase db 
) const

◆ ReadFieldPtrVector()

template<int error_policy, template< typename > class TOUT, typename T >
bool Assimp::Blender::Structure::ReadFieldPtrVector ( vector< TOUT< T >> &  out,
const char *  name,
const FileDatabase db 
) const

field parsing for dynamic vectors

Parameters
[in]outvector of struct to be filled
[in]nameof field
[in]dbto access the file, dna, ...
Returns
true when read was successful

Friends And Related Function Documentation

◆ ObjectCache

template<template< typename > class>
friend class ObjectCache
friend

Member Data Documentation

◆ fields

vector< Field > Assimp::Blender::Structure::fields

◆ indices

std::map<std::string, size_t> Assimp::Blender::Structure::indices

◆ name

std::string Assimp::Blender::Structure::name

◆ size

size_t Assimp::Blender::Structure::size

The documentation for this class was generated from the following files: