Assimp  v4.0.0 ( July 2017 )
aiString Struct Reference

Represents an UTF-8 string, zero byte terminated. More...

Public Member Functions

 aiString ()
 Default constructor, the string is set to have zero length. More...
 
 aiString (const aiString &rOther)
 Copy constructor. More...
 
 aiString (const std::string &pString)
 Constructor from std::string. More...
 
void Append (const char *app)
 Append a string to the string. More...
 
const char * C_Str () const
 Returns a pointer to the underlying zero-terminated array of characters. More...
 
void Clear ()
 Clear the string - reset its length to zero. More...
 
bool operator!= (const aiString &other) const
 Inverse comparison operator. More...
 
aiStringoperator= (const char *sz)
 Assign a const char* to the string. More...
 
aiStringoperator= (const std::string &pString)
 Assign a cstd::string to the string. More...
 
bool operator== (const aiString &other) const
 Comparison operator. More...
 
void Set (const std::string &pString)
 Copy a std::string to the aiString. More...
 
void Set (const char *sz)
 Copy a const char* to the aiString. More...
 

Public Attributes

char data [MAXLEN]
 String buffer. More...
 
size_t length
 Binary length of the string excluding the terminal 0. More...
 

Detailed Description

Represents an UTF-8 string, zero byte terminated.

The character set of an aiString is explicitly defined to be UTF-8. This Unicode transformation was chosen in the belief that most strings in 3d files are limited to ASCII, thus the character set needed to be strictly ASCII compatible.

Most text file loaders provide proper Unicode input file handling, special unicode characters are correctly transcoded to UTF8 and are kept throughout the libraries' import pipeline.

For most applications, it will be absolutely sufficient to interpret the aiString as ASCII data and work with it as one would work with a plain char*. Windows users in need of proper support for i.e asian characters can use the MultiByteToWideChar(), WideCharToMultiByte() WinAPI functionality to convert the UTF-8 strings to their working character set (i.e. MBCS, WideChar).

We use this representation instead of std::string to be C-compatible. The (binary) length of such a string is limited to MAXLEN characters (including the the terminating zero).

Constructor & Destructor Documentation

◆ aiString() [1/3]

aiString::aiString ( )
inline

Default constructor, the string is set to have zero length.

◆ aiString() [2/3]

aiString::aiString ( const aiString rOther)
inline

Copy constructor.

◆ aiString() [3/3]

aiString::aiString ( const std::string &  pString)
inlineexplicit

Constructor from std::string.

Member Function Documentation

◆ Append()

void aiString::Append ( const char *  app)
inline

Append a string to the string.

◆ C_Str()

const char* aiString::C_Str ( ) const
inline

Returns a pointer to the underlying zero-terminated array of characters.

◆ Clear()

void aiString::Clear ( )
inline

Clear the string - reset its length to zero.

◆ operator!=()

bool aiString::operator!= ( const aiString other) const
inline

Inverse comparison operator.

◆ operator=() [1/2]

aiString& aiString::operator= ( const char *  sz)
inline

Assign a const char* to the string.

◆ operator=() [2/2]

aiString& aiString::operator= ( const std::string &  pString)
inline

Assign a cstd::string to the string.

◆ operator==()

bool aiString::operator== ( const aiString other) const
inline

Comparison operator.

◆ Set() [1/2]

void aiString::Set ( const std::string &  pString)
inline

Copy a std::string to the aiString.

◆ Set() [2/2]

void aiString::Set ( const char *  sz)
inline

Copy a const char* to the aiString.

Member Data Documentation

◆ data

char aiString::data[MAXLEN]

String buffer.

Size limit is MAXLEN

◆ length

size_t aiString::length

Binary length of the string excluding the terminal 0.

This is NOT the logical length of strings containing UTF-8 multibyte sequences! It's the number of bytes from the beginning of the string to its end.


The documentation for this struct was generated from the following file: