Fix spelling mistakes
parent
d094dfc3a1
commit
87e7cf00a2
4
CREDITS
4
CREDITS
|
@ -30,7 +30,7 @@ Ogre Loader, VC2010 fixes and CMake fixes.
|
||||||
|
|
||||||
- Sebastian Hempel,
|
- Sebastian Hempel,
|
||||||
PyAssimp (first version)
|
PyAssimp (first version)
|
||||||
Compile-Bugfixes for mingw, add enviroment for static library support in make.
|
Compile-Bugfixes for mingw, add environment for static library support in make.
|
||||||
|
|
||||||
- Jonathan Pokrass
|
- Jonathan Pokrass
|
||||||
Supplied a bugfix concerning the scaling in the md3 loader.
|
Supplied a bugfix concerning the scaling in the md3 loader.
|
||||||
|
@ -114,7 +114,7 @@ Contributes a fix for the configure script environment.
|
||||||
Contributed AssimpDelphi (/port/AssimpDelphi).
|
Contributed AssimpDelphi (/port/AssimpDelphi).
|
||||||
|
|
||||||
- rdb
|
- rdb
|
||||||
Contributes a bundle of fixes and improvments for the bsp-importer.
|
Contributes a bundle of fixes and improvements for the bsp-importer.
|
||||||
|
|
||||||
- Mick P
|
- Mick P
|
||||||
For contributing the De-bone postprocessing step and filing various bug reports.
|
For contributing the De-bone postprocessing step and filing various bug reports.
|
||||||
|
|
|
@ -100,7 +100,7 @@ Open Asset Import Library is implemented in C++. The directory structure is:
|
||||||
/tools Tools (old assimp viewer, command line `assimp`)
|
/tools Tools (old assimp viewer, command line `assimp`)
|
||||||
/samples A small number of samples to illustrate possible
|
/samples A small number of samples to illustrate possible
|
||||||
use cases for Assimp
|
use cases for Assimp
|
||||||
/workspaces Build enviroments for vc,xcode,... (deprecated,
|
/workspaces Build environments for vc,xcode,... (deprecated,
|
||||||
CMake has superseeded all legacy build options!)
|
CMake has superseeded all legacy build options!)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -64,7 +64,7 @@ set( ASSIMP_LIBRARIES ${ASSIMP_LIBRARIES}@CMAKE_DEBUG_POSTFIX@)
|
||||||
# the boost version assimp was compiled with
|
# the boost version assimp was compiled with
|
||||||
set( ASSIMP_Boost_VERSION "@Boost_MAJOR_VERSION@.@Boost_MINOR_VERSION@")
|
set( ASSIMP_Boost_VERSION "@Boost_MAJOR_VERSION@.@Boost_MINOR_VERSION@")
|
||||||
|
|
||||||
# for compatibility wiht pkg-config
|
# for compatibility with pkg-config
|
||||||
set(ASSIMP_CFLAGS_OTHER "${ASSIMP_CXX_FLAGS}")
|
set(ASSIMP_CFLAGS_OTHER "${ASSIMP_CXX_FLAGS}")
|
||||||
set(ASSIMP_LDFLAGS_OTHER "${ASSIMP_LINK_FLAGS}")
|
set(ASSIMP_LDFLAGS_OTHER "${ASSIMP_LINK_FLAGS}")
|
||||||
|
|
||||||
|
|
|
@ -197,7 +197,7 @@ void Discreet3DSImporter::InternReadFile( const std::string& pFile,
|
||||||
ComputeNormalsWithSmoothingsGroups<D3DS::Face>(*i);
|
ComputeNormalsWithSmoothingsGroups<D3DS::Face>(*i);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Replace all occurences of the default material with a
|
// Replace all occurrences of the default material with a
|
||||||
// valid material. Generate it if no material containing
|
// valid material. Generate it if no material containing
|
||||||
// DEFAULT in its name has been found in the file
|
// DEFAULT in its name has been found in the file
|
||||||
ReplaceDefaultMaterial();
|
ReplaceDefaultMaterial();
|
||||||
|
|
|
@ -884,7 +884,7 @@ void AC3DImporter::InternReadFile( const std::string& pFile,
|
||||||
// copy meshes
|
// copy meshes
|
||||||
if (meshes.empty())
|
if (meshes.empty())
|
||||||
{
|
{
|
||||||
throw DeadlyImportError("An unknown error occured during converting");
|
throw DeadlyImportError("An unknown error occurred during converting");
|
||||||
}
|
}
|
||||||
pScene->mNumMeshes = (unsigned int)meshes.size();
|
pScene->mNumMeshes = (unsigned int)meshes.size();
|
||||||
pScene->mMeshes = new aiMesh*[pScene->mNumMeshes];
|
pScene->mMeshes = new aiMesh*[pScene->mNumMeshes];
|
||||||
|
|
|
@ -604,7 +604,7 @@ private:
|
||||||
//! \param out Output string
|
//! \param out Output string
|
||||||
//! \param szName Name of the enclosing element -> used in error
|
//! \param szName Name of the enclosing element -> used in error
|
||||||
//! messages.
|
//! messages.
|
||||||
//! \return false if an error occured
|
//! \return false if an error occurred
|
||||||
bool ParseString(std::string& out,const char* szName);
|
bool ParseString(std::string& out,const char* szName);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -368,7 +368,7 @@ void BVHLoader::ReadMotion( aiScene* /*pScene*/)
|
||||||
// Retrieves the next token
|
// Retrieves the next token
|
||||||
std::string BVHLoader::GetNextToken()
|
std::string BVHLoader::GetNextToken()
|
||||||
{
|
{
|
||||||
// skip any preceeding whitespace
|
// skip any preceding whitespace
|
||||||
while( mReader != mBuffer.end())
|
while( mReader != mBuffer.end())
|
||||||
{
|
{
|
||||||
if( !isspace( *mReader))
|
if( !isspace( *mReader))
|
||||||
|
|
|
@ -336,7 +336,7 @@ void BaseImporter::ConvertToUTF8(std::vector<char>& data)
|
||||||
// UTF 32 BE with BOM
|
// UTF 32 BE with BOM
|
||||||
if(*((uint32_t*)&data.front()) == 0xFFFE0000) {
|
if(*((uint32_t*)&data.front()) == 0xFFFE0000) {
|
||||||
|
|
||||||
// swap the endianess ..
|
// swap the endianness ..
|
||||||
for(uint32_t* p = (uint32_t*)&data.front(), *end = (uint32_t*)&data.back(); p <= end; ++p) {
|
for(uint32_t* p = (uint32_t*)&data.front(), *end = (uint32_t*)&data.back(); p <= end; ++p) {
|
||||||
AI_SWAP4P(p);
|
AI_SWAP4P(p);
|
||||||
}
|
}
|
||||||
|
@ -367,7 +367,7 @@ void BaseImporter::ConvertToUTF8(std::vector<char>& data)
|
||||||
// UTF 16 BE with BOM
|
// UTF 16 BE with BOM
|
||||||
if(*((uint16_t*)&data.front()) == 0xFFFE) {
|
if(*((uint16_t*)&data.front()) == 0xFFFE) {
|
||||||
|
|
||||||
// swap the endianess ..
|
// swap the endianness ..
|
||||||
for(uint16_t* p = (uint16_t*)&data.front(), *end = (uint16_t*)&data.back(); p <= end; ++p) {
|
for(uint16_t* p = (uint16_t*)&data.front(), *end = (uint16_t*)&data.back(); p <= end; ++p) {
|
||||||
ByteSwap::Swap2(p);
|
ByteSwap::Swap2(p);
|
||||||
}
|
}
|
||||||
|
@ -534,7 +534,7 @@ BatchLoader::~BatchLoader()
|
||||||
|
|
||||||
delete (*it).scene;
|
delete (*it).scene;
|
||||||
}
|
}
|
||||||
data->pImporter->SetIOHandler(NULL); /* get pointer back into our posession */
|
data->pImporter->SetIOHandler(NULL); /* get pointer back into our possession */
|
||||||
delete data->pImporter;
|
delete data->pImporter;
|
||||||
delete data;
|
delete data;
|
||||||
}
|
}
|
||||||
|
|
|
@ -176,8 +176,8 @@ public:
|
||||||
);
|
);
|
||||||
|
|
||||||
// -------------------------------------------------------------------
|
// -------------------------------------------------------------------
|
||||||
/** Returns the error description of the last error that occured.
|
/** Returns the error description of the last error that occurred.
|
||||||
* @return A description of the last error that occured. An empty
|
* @return A description of the last error that occurred. An empty
|
||||||
* string if there was no error.
|
* string if there was no error.
|
||||||
*/
|
*/
|
||||||
const std::string& GetErrorText() const {
|
const std::string& GetErrorText() const {
|
||||||
|
|
|
@ -227,7 +227,7 @@ void CSMImporter::InternReadFile( const std::string& pFile,
|
||||||
|
|
||||||
// read x,y,z
|
// read x,y,z
|
||||||
if(!SkipSpacesAndLineEnd(&buffer))
|
if(!SkipSpacesAndLineEnd(&buffer))
|
||||||
throw DeadlyImportError("CSM: Unexpected EOF occured reading sample x coord");
|
throw DeadlyImportError("CSM: Unexpected EOF occurred reading sample x coord");
|
||||||
|
|
||||||
if (TokenMatchI(buffer, "DROPOUT", 7)) {
|
if (TokenMatchI(buffer, "DROPOUT", 7)) {
|
||||||
// seems this is invalid marker data; at least the doc says it's possible
|
// seems this is invalid marker data; at least the doc says it's possible
|
||||||
|
@ -239,11 +239,11 @@ void CSMImporter::InternReadFile( const std::string& pFile,
|
||||||
buffer = fast_atoreal_move<float>(buffer, (float&)sub->mValue.x);
|
buffer = fast_atoreal_move<float>(buffer, (float&)sub->mValue.x);
|
||||||
|
|
||||||
if(!SkipSpacesAndLineEnd(&buffer))
|
if(!SkipSpacesAndLineEnd(&buffer))
|
||||||
throw DeadlyImportError("CSM: Unexpected EOF occured reading sample y coord");
|
throw DeadlyImportError("CSM: Unexpected EOF occurred reading sample y coord");
|
||||||
buffer = fast_atoreal_move<float>(buffer, (float&)sub->mValue.y);
|
buffer = fast_atoreal_move<float>(buffer, (float&)sub->mValue.y);
|
||||||
|
|
||||||
if(!SkipSpacesAndLineEnd(&buffer))
|
if(!SkipSpacesAndLineEnd(&buffer))
|
||||||
throw DeadlyImportError("CSM: Unexpected EOF occured reading sample z coord");
|
throw DeadlyImportError("CSM: Unexpected EOF occurred reading sample z coord");
|
||||||
buffer = fast_atoreal_move<float>(buffer, (float&)sub->mValue.z);
|
buffer = fast_atoreal_move<float>(buffer, (float&)sub->mValue.z);
|
||||||
|
|
||||||
++s->mNumPositionKeys;
|
++s->mNumPositionKeys;
|
||||||
|
|
|
@ -872,7 +872,7 @@ void ColladaExporter::WriteGeometry( size_t pIndex)
|
||||||
mOutput << startstr << "</lines>" << endstr;
|
mOutput << startstr << "</lines>" << endstr;
|
||||||
}
|
}
|
||||||
|
|
||||||
// triangle - dont use it, because compatibility problems
|
// triangle - don't use it, because compatibility problems
|
||||||
|
|
||||||
// polygons
|
// polygons
|
||||||
if (countPoly)
|
if (countPoly)
|
||||||
|
@ -1041,7 +1041,7 @@ void ColladaExporter::WriteNode(aiNode* pNode)
|
||||||
PushTag();
|
PushTag();
|
||||||
|
|
||||||
// write transformation - we can directly put the matrix there
|
// write transformation - we can directly put the matrix there
|
||||||
// TODO: (thom) decompose into scale - rot - quad to allow adressing it by animations afterwards
|
// TODO: (thom) decompose into scale - rot - quad to allow addressing it by animations afterwards
|
||||||
const aiMatrix4x4& mat = pNode->mTransformation;
|
const aiMatrix4x4& mat = pNode->mTransformation;
|
||||||
mOutput << startstr << "<matrix>";
|
mOutput << startstr << "<matrix>";
|
||||||
mOutput << mat.a1 << " " << mat.a2 << " " << mat.a3 << " " << mat.a4 << " ";
|
mOutput << mat.a1 << " " << mat.a2 << " " << mat.a3 << " " << mat.a4 << " ";
|
||||||
|
|
|
@ -663,7 +663,7 @@ aiMesh* ColladaLoader::CreateMesh( const ColladaParser& pParser, const Collada::
|
||||||
// joint vertex_weight name list - should refer to the same list as the joint names above. If not, report and reconsider
|
// joint vertex_weight name list - should refer to the same list as the joint names above. If not, report and reconsider
|
||||||
const Collada::Accessor& weightNamesAcc = pParser.ResolveLibraryReference( pParser.mAccessorLibrary, pSrcController->mWeightInputJoints.mAccessor);
|
const Collada::Accessor& weightNamesAcc = pParser.ResolveLibraryReference( pParser.mAccessorLibrary, pSrcController->mWeightInputJoints.mAccessor);
|
||||||
if( &weightNamesAcc != &jointNamesAcc)
|
if( &weightNamesAcc != &jointNamesAcc)
|
||||||
throw DeadlyImportError( "Temporary implementational lazyness. If you read this, please report to the author.");
|
throw DeadlyImportError( "Temporary implementational laziness. If you read this, please report to the author.");
|
||||||
// vertex weights
|
// vertex weights
|
||||||
const Collada::Accessor& weightsAcc = pParser.ResolveLibraryReference( pParser.mAccessorLibrary, pSrcController->mWeightInputWeights.mAccessor);
|
const Collada::Accessor& weightsAcc = pParser.ResolveLibraryReference( pParser.mAccessorLibrary, pSrcController->mWeightInputWeights.mAccessor);
|
||||||
const Collada::Data& weights = pParser.ResolveLibraryReference( pParser.mDataLibrary, weightsAcc.mSource);
|
const Collada::Data& weights = pParser.ResolveLibraryReference( pParser.mDataLibrary, weightsAcc.mSource);
|
||||||
|
@ -1148,7 +1148,7 @@ void ColladaLoader::CreateAnimation( aiScene* pScene, const ColladaParser& pPars
|
||||||
// Calculate resulting transformation
|
// Calculate resulting transformation
|
||||||
aiMatrix4x4 mat = pParser.CalculateResultTransform( transforms);
|
aiMatrix4x4 mat = pParser.CalculateResultTransform( transforms);
|
||||||
|
|
||||||
// out of lazyness: we store the time in matrix.d4
|
// out of laziness: we store the time in matrix.d4
|
||||||
mat.d4 = time;
|
mat.d4 = time;
|
||||||
resultTrafos.push_back( mat);
|
resultTrafos.push_back( mat);
|
||||||
|
|
||||||
|
@ -1294,7 +1294,7 @@ void ColladaLoader::AddTexture ( aiMaterial& mat, const ColladaParser& pParser,
|
||||||
_AI_MATKEY_TEXBLEND_BASE, type, idx);
|
_AI_MATKEY_TEXBLEND_BASE, type, idx);
|
||||||
|
|
||||||
// UV source index ... if we didn't resolve the mapping, it is actually just
|
// UV source index ... if we didn't resolve the mapping, it is actually just
|
||||||
// a guess but it works in most cases. We search for the frst occurence of a
|
// a guess but it works in most cases. We search for the frst occurrence of a
|
||||||
// number in the channel name. We assume it is the zero-based index into the
|
// number in the channel name. We assume it is the zero-based index into the
|
||||||
// UV channel array of all corresponding meshes. It could also be one-based
|
// UV channel array of all corresponding meshes. It could also be one-based
|
||||||
// for some exporters, but we won't care of it unless someone complains about.
|
// for some exporters, but we won't care of it unless someone complains about.
|
||||||
|
|
|
@ -616,7 +616,7 @@ void ColladaParser::ReadControllerLibrary()
|
||||||
{
|
{
|
||||||
if( IsElement( "controller"))
|
if( IsElement( "controller"))
|
||||||
{
|
{
|
||||||
// read ID. Ask the spec if it's neccessary or optional... you might be surprised.
|
// read ID. Ask the spec if it's necessary or optional... you might be surprised.
|
||||||
int attrID = GetAttribute( "id");
|
int attrID = GetAttribute( "id");
|
||||||
std::string id = mReader->getAttributeValue( attrID);
|
std::string id = mReader->getAttributeValue( attrID);
|
||||||
|
|
||||||
|
@ -2282,7 +2282,7 @@ size_t ColladaParser::ReadPrimitives( Mesh* pMesh, std::vector<InputChannel>& pP
|
||||||
if( expectedPointCount > 0)
|
if( expectedPointCount > 0)
|
||||||
indices.reserve( expectedPointCount * numOffsets);
|
indices.reserve( expectedPointCount * numOffsets);
|
||||||
|
|
||||||
if (pNumPrimitives > 0) // It is possible to not contain any indicies
|
if (pNumPrimitives > 0) // It is possible to not contain any indices
|
||||||
{
|
{
|
||||||
const char* content = GetTextContent();
|
const char* content = GetTextContent();
|
||||||
while( *content != 0)
|
while( *content != 0)
|
||||||
|
@ -2317,7 +2317,7 @@ size_t ColladaParser::ReadPrimitives( Mesh* pMesh, std::vector<InputChannel>& pP
|
||||||
|
|
||||||
// find accessor
|
// find accessor
|
||||||
input.mResolved = &ResolveLibraryReference( mAccessorLibrary, input.mAccessor);
|
input.mResolved = &ResolveLibraryReference( mAccessorLibrary, input.mAccessor);
|
||||||
// resolve accessor's data pointer as well, if neccessary
|
// resolve accessor's data pointer as well, if necessary
|
||||||
const Accessor* acc = input.mResolved;
|
const Accessor* acc = input.mResolved;
|
||||||
if( !acc->mData)
|
if( !acc->mData)
|
||||||
acc->mData = &ResolveLibraryReference( mDataLibrary, acc->mSource);
|
acc->mData = &ResolveLibraryReference( mDataLibrary, acc->mSource);
|
||||||
|
@ -2340,7 +2340,7 @@ size_t ColladaParser::ReadPrimitives( Mesh* pMesh, std::vector<InputChannel>& pP
|
||||||
|
|
||||||
// find accessor
|
// find accessor
|
||||||
input.mResolved = &ResolveLibraryReference( mAccessorLibrary, input.mAccessor);
|
input.mResolved = &ResolveLibraryReference( mAccessorLibrary, input.mAccessor);
|
||||||
// resolve accessor's data pointer as well, if neccessary
|
// resolve accessor's data pointer as well, if necessary
|
||||||
const Accessor* acc = input.mResolved;
|
const Accessor* acc = input.mResolved;
|
||||||
if( !acc->mData)
|
if( !acc->mData)
|
||||||
acc->mData = &ResolveLibraryReference( mDataLibrary, acc->mSource);
|
acc->mData = &ResolveLibraryReference( mDataLibrary, acc->mSource);
|
||||||
|
@ -2876,7 +2876,7 @@ void ColladaParser::ReadScene()
|
||||||
if( mReader->getNodeType() == irr::io::EXN_ELEMENT) {
|
if( mReader->getNodeType() == irr::io::EXN_ELEMENT) {
|
||||||
if( IsElement( "instance_visual_scene"))
|
if( IsElement( "instance_visual_scene"))
|
||||||
{
|
{
|
||||||
// should be the first and only occurence
|
// should be the first and only occurrence
|
||||||
if( mRootNode)
|
if( mRootNode)
|
||||||
ThrowException( "Invalid scene containing multiple root nodes in <instance_visual_scene> element");
|
ThrowException( "Invalid scene containing multiple root nodes in <instance_visual_scene> element");
|
||||||
|
|
||||||
|
|
|
@ -175,7 +175,7 @@ void DXFImporter::InternReadFile( const std::string& pFile,
|
||||||
}
|
}
|
||||||
|
|
||||||
// skip unneeded sections entirely to avoid any problems with them
|
// skip unneeded sections entirely to avoid any problems with them
|
||||||
// alltogether.
|
// altogether.
|
||||||
else if (reader.Is(2,"CLASSES") || reader.Is(2,"TABLES")) {
|
else if (reader.Is(2,"CLASSES") || reader.Is(2,"TABLES")) {
|
||||||
SkipSection(reader);
|
SkipSection(reader);
|
||||||
continue;
|
continue;
|
||||||
|
|
|
@ -191,7 +191,7 @@ void ReadData(const char*& sbegin_out, const char*& send_out, const char* input,
|
||||||
|
|
||||||
// 32 bit int
|
// 32 bit int
|
||||||
case 'I':
|
case 'I':
|
||||||
// <- fall thru
|
// <- fall through
|
||||||
|
|
||||||
// float
|
// float
|
||||||
case 'F':
|
case 'F':
|
||||||
|
|
|
@ -354,7 +354,7 @@ void MeshGeometry::ReadVertexData(const std::string& type, int index, const Scop
|
||||||
// sometimes, there will be only negative entries. Drop the material
|
// sometimes, there will be only negative entries. Drop the material
|
||||||
// layer in such a case (I guess it means a default material should
|
// layer in such a case (I guess it means a default material should
|
||||||
// be used). This is what the converter would do anyway, and it
|
// be used). This is what the converter would do anyway, and it
|
||||||
// avoids loosing the material if there are more material layers
|
// avoids losing the material if there are more material layers
|
||||||
// coming of which at least one contains actual data (did observe
|
// coming of which at least one contains actual data (did observe
|
||||||
// that with one test file).
|
// that with one test file).
|
||||||
const size_t count_neg = std::count_if(temp_materials.begin(),temp_materials.end(),std::bind2nd(std::less<int>(),0));
|
const size_t count_neg = std::count_if(temp_materials.begin(),temp_materials.end(),std::bind2nd(std::less<int>(),0));
|
||||||
|
|
|
@ -74,7 +74,7 @@ const char* TokenTypeString(TokenType t);
|
||||||
* @param prefix Message prefix to be preprended to the location info.
|
* @param prefix Message prefix to be preprended to the location info.
|
||||||
* @param text Message text
|
* @param text Message text
|
||||||
* @param line Line index, 1-based
|
* @param line Line index, 1-based
|
||||||
* @param column Colum index, 1-based
|
* @param column Column index, 1-based
|
||||||
* @return A string of the following format: {prefix} (offset 0x{offset}) {text}*/
|
* @return A string of the following format: {prefix} (offset 0x{offset}) {text}*/
|
||||||
std::string AddOffset(const std::string& prefix, const std::string& text, unsigned int offset);
|
std::string AddOffset(const std::string& prefix, const std::string& text, unsigned int offset);
|
||||||
|
|
||||||
|
@ -84,7 +84,7 @@ std::string AddOffset(const std::string& prefix, const std::string& text, unsign
|
||||||
* @param prefix Message prefix to be preprended to the location info.
|
* @param prefix Message prefix to be preprended to the location info.
|
||||||
* @param text Message text
|
* @param text Message text
|
||||||
* @param line Line index, 1-based
|
* @param line Line index, 1-based
|
||||||
* @param column Colum index, 1-based
|
* @param column Column index, 1-based
|
||||||
* @return A string of the following format: {prefix} (line {line}, col {column}) {text}*/
|
* @return A string of the following format: {prefix} (line {line}, col {column}) {text}*/
|
||||||
std::string AddLineAndColumn(const std::string& prefix, const std::string& text, unsigned int line, unsigned int column);
|
std::string AddLineAndColumn(const std::string& prefix, const std::string& text, unsigned int line, unsigned int column);
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
/** @file FileSystemFilter.h
|
/** @file FileSystemFilter.h
|
||||||
* Implements a filter system to filter calls to Exists() and Open()
|
* Implements a filter system to filter calls to Exists() and Open()
|
||||||
* in order to improve the sucess rate of file opening ...
|
* in order to improve the success rate of file opening ...
|
||||||
*/
|
*/
|
||||||
#ifndef AI_FILESYSTEMFILTER_H_INC
|
#ifndef AI_FILESYSTEMFILTER_H_INC
|
||||||
#define AI_FILESYSTEMFILTER_H_INC
|
#define AI_FILESYSTEMFILTER_H_INC
|
||||||
|
|
|
@ -604,7 +604,7 @@ const aiScene* Importer::ReadFile( const char* _pFile, unsigned int pFlags)
|
||||||
FreeScene();
|
FreeScene();
|
||||||
}
|
}
|
||||||
|
|
||||||
// First check if the file is accessable at all
|
// First check if the file is accessible at all
|
||||||
if( !pimpl->mIOHandler->Exists( pFile)) {
|
if( !pimpl->mIOHandler->Exists( pFile)) {
|
||||||
|
|
||||||
pimpl->mErrorString = "Unable to open file \"" + pFile + "\".";
|
pimpl->mErrorString = "Unable to open file \"" + pFile + "\".";
|
||||||
|
@ -723,7 +723,7 @@ const aiScene* Importer::ReadFile( const char* _pFile, unsigned int pFlags)
|
||||||
catch (std::exception &e)
|
catch (std::exception &e)
|
||||||
{
|
{
|
||||||
#if (defined _MSC_VER) && (defined _CPPRTTI)
|
#if (defined _MSC_VER) && (defined _CPPRTTI)
|
||||||
// if we have RTTI get the full name of the exception that occured
|
// if we have RTTI get the full name of the exception that occurred
|
||||||
pimpl->mErrorString = std::string(typeid( e ).name()) + ": " + e.what();
|
pimpl->mErrorString = std::string(typeid( e ).name()) + ": " + e.what();
|
||||||
#else
|
#else
|
||||||
pimpl->mErrorString = std::string("std::exception: ") + e.what();
|
pimpl->mErrorString = std::string("std::exception: ") + e.what();
|
||||||
|
|
|
@ -166,7 +166,7 @@ public:
|
||||||
|
|
||||||
// -------------------------------------------------------------------
|
// -------------------------------------------------------------------
|
||||||
/** Construct a batch loader from a given IO system to be used
|
/** Construct a batch loader from a given IO system to be used
|
||||||
* to acess external files */
|
* to access external files */
|
||||||
explicit BatchLoader(IOSystem* pIO);
|
explicit BatchLoader(IOSystem* pIO);
|
||||||
~BatchLoader();
|
~BatchLoader();
|
||||||
|
|
||||||
|
|
|
@ -192,8 +192,8 @@ int JoinVerticesProcess::ProcessMesh( aiMesh* pMesh, unsigned int meshIndex)
|
||||||
// Position mismatch is impossible - the vertex finder already discarded all non-matching positions
|
// Position mismatch is impossible - the vertex finder already discarded all non-matching positions
|
||||||
|
|
||||||
// We just test the other attributes even if they're not present in the mesh.
|
// We just test the other attributes even if they're not present in the mesh.
|
||||||
// In this case they're initialized to 0 so the comparision succeeds.
|
// In this case they're initialized to 0 so the comparison succeeds.
|
||||||
// By this method the non-present attributes are effectively ignored in the comparision.
|
// By this method the non-present attributes are effectively ignored in the comparison.
|
||||||
if( (uv.normal - v.normal).SquareLength() > squareEpsilon)
|
if( (uv.normal - v.normal).SquareLength() > squareEpsilon)
|
||||||
continue;
|
continue;
|
||||||
if( (uv.texcoords[0] - v.texcoords[0]).SquareLength() > squareEpsilon)
|
if( (uv.texcoords[0] - v.texcoords[0]).SquareLength() > squareEpsilon)
|
||||||
|
@ -265,7 +265,7 @@ int JoinVerticesProcess::ProcessMesh( aiMesh* pMesh, unsigned int meshIndex)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// no unique vertex matches it upto now -> so add it
|
// no unique vertex matches it up to now -> so add it
|
||||||
replaceIndex[a] = (unsigned int)uniqueVertices.size();
|
replaceIndex[a] = (unsigned int)uniqueVertices.size();
|
||||||
uniqueVertices.push_back( v);
|
uniqueVertices.push_back( v);
|
||||||
}
|
}
|
||||||
|
|
|
@ -112,7 +112,7 @@ void LWOImporter::LoadLWOBPolygons(unsigned int length)
|
||||||
LE_NCONST uint16_t* const end = (LE_NCONST uint16_t*)(mFileBuffer+length);
|
LE_NCONST uint16_t* const end = (LE_NCONST uint16_t*)(mFileBuffer+length);
|
||||||
LE_NCONST uint16_t* cursor = (LE_NCONST uint16_t*)mFileBuffer;
|
LE_NCONST uint16_t* cursor = (LE_NCONST uint16_t*)mFileBuffer;
|
||||||
|
|
||||||
// perform endianess conversions
|
// perform endianness conversions
|
||||||
#ifndef AI_BUILD_BIG_ENDIAN
|
#ifndef AI_BUILD_BIG_ENDIAN
|
||||||
while (cursor < end)ByteSwap::Swap2(cursor++);
|
while (cursor < end)ByteSwap::Swap2(cursor++);
|
||||||
cursor = (LE_NCONST uint16_t*)mFileBuffer;
|
cursor = (LE_NCONST uint16_t*)mFileBuffer;
|
||||||
|
@ -256,8 +256,8 @@ void LWOImporter::LoadLWOBSurface(unsigned int size)
|
||||||
LWO::Texture* pTex = NULL;
|
LWO::Texture* pTex = NULL;
|
||||||
|
|
||||||
GetS0(surf.mName,size);
|
GetS0(surf.mName,size);
|
||||||
bool runnning = true;
|
bool running = true;
|
||||||
while (runnning) {
|
while (running) {
|
||||||
if (mFileBuffer + 6 >= end)
|
if (mFileBuffer + 6 >= end)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -765,7 +765,7 @@ void LWOImporter::LoadLWOPoints(unsigned int length)
|
||||||
}
|
}
|
||||||
else mCurLayer->mTempPoints.resize( regularSize );
|
else mCurLayer->mTempPoints.resize( regularSize );
|
||||||
|
|
||||||
// perform endianess conversions
|
// perform endianness conversions
|
||||||
#ifndef AI_BUILD_BIG_ENDIAN
|
#ifndef AI_BUILD_BIG_ENDIAN
|
||||||
for (unsigned int i = 0; i < length>>2;++i)
|
for (unsigned int i = 0; i < length>>2;++i)
|
||||||
ByteSwap::Swap4( mFileBuffer + (i << 2));
|
ByteSwap::Swap4( mFileBuffer + (i << 2));
|
||||||
|
|
|
@ -125,7 +125,7 @@ public:
|
||||||
mWeight = pWeight;
|
mWeight = pWeight;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Comparision operator to sort bone weights by descending weight */
|
/** Comparison operator to sort bone weights by descending weight */
|
||||||
bool operator < (const Weight& pWeight) const
|
bool operator < (const Weight& pWeight) const
|
||||||
{
|
{
|
||||||
return mWeight > pWeight.mWeight;
|
return mWeight > pWeight.mWeight;
|
||||||
|
|
|
@ -305,7 +305,7 @@ inline void Vec3NormalToLatLng( const aiVector3D& p_vIn, uint16_t& p_iOut )
|
||||||
b &= 0xff;
|
b &= 0xff;
|
||||||
|
|
||||||
((unsigned char*)&p_iOut)[0] = b; // longitude
|
((unsigned char*)&p_iOut)[0] = b; // longitude
|
||||||
((unsigned char*)&p_iOut)[1] = a; // lattitude
|
((unsigned char*)&p_iOut)[1] = a; // latitude
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -763,7 +763,7 @@ void MD3Importer::InternReadFile( const std::string& pFile,
|
||||||
|
|
||||||
pcHeader = (BE_NCONST MD3::Header*)mBuffer;
|
pcHeader = (BE_NCONST MD3::Header*)mBuffer;
|
||||||
|
|
||||||
// Ensure correct endianess
|
// Ensure correct endianness
|
||||||
#ifdef AI_BUILD_BIG_ENDIAN
|
#ifdef AI_BUILD_BIG_ENDIAN
|
||||||
|
|
||||||
AI_SWAP4(pcHeader->VERSION);
|
AI_SWAP4(pcHeader->VERSION);
|
||||||
|
@ -832,7 +832,7 @@ void MD3Importer::InternReadFile( const std::string& pFile,
|
||||||
unsigned int iNumMaterials = 0;
|
unsigned int iNumMaterials = 0;
|
||||||
while (iNum-- > 0) {
|
while (iNum-- > 0) {
|
||||||
|
|
||||||
// Ensure correct endianess
|
// Ensure correct endianness
|
||||||
#ifdef AI_BUILD_BIG_ENDIAN
|
#ifdef AI_BUILD_BIG_ENDIAN
|
||||||
|
|
||||||
AI_SWAP4(pcSurfaces->FLAGS);
|
AI_SWAP4(pcSurfaces->FLAGS);
|
||||||
|
@ -965,7 +965,7 @@ void MD3Importer::InternReadFile( const std::string& pFile,
|
||||||
pScene->mMaterials[iNumMaterials] = (aiMaterial*)pcHelper;
|
pScene->mMaterials[iNumMaterials] = (aiMaterial*)pcHelper;
|
||||||
pcMesh->mMaterialIndex = iNumMaterials++;
|
pcMesh->mMaterialIndex = iNumMaterials++;
|
||||||
|
|
||||||
// Ensure correct endianess
|
// Ensure correct endianness
|
||||||
#ifdef AI_BUILD_BIG_ENDIAN
|
#ifdef AI_BUILD_BIG_ENDIAN
|
||||||
|
|
||||||
for (uint32_t i = 0; i < pcSurfaces->NUM_VERTICES;++i) {
|
for (uint32_t i = 0; i < pcSurfaces->NUM_VERTICES;++i) {
|
||||||
|
|
|
@ -406,7 +406,7 @@ MD5AnimParser::MD5AnimParser(SectionList& mSections)
|
||||||
desc.mValues.reserve(mNumAnimatedComponents);
|
desc.mValues.reserve(mNumAnimatedComponents);
|
||||||
}
|
}
|
||||||
|
|
||||||
// now read all elements (continous list of floats)
|
// now read all elements (continuous list of floats)
|
||||||
for (ElementList::const_iterator eit = (*iter).mElements.begin(), eitEnd = (*iter).mElements.end(); eit != eitEnd; ++eit){
|
for (ElementList::const_iterator eit = (*iter).mElements.begin(), eitEnd = (*iter).mElements.end(); eit != eitEnd; ++eit){
|
||||||
const char* sz = (*eit).szStart;
|
const char* sz = (*eit).szStart;
|
||||||
while (SkipSpacesAndLineEnd(&sz)) {
|
while (SkipSpacesAndLineEnd(&sz)) {
|
||||||
|
|
|
@ -370,14 +370,14 @@ public:
|
||||||
// -------------------------------------------------------------------
|
// -------------------------------------------------------------------
|
||||||
/** Report a specific error message and throw an exception
|
/** Report a specific error message and throw an exception
|
||||||
* @param error Error message to be reported
|
* @param error Error message to be reported
|
||||||
* @param line Index of the line where the error occured
|
* @param line Index of the line where the error occurred
|
||||||
*/
|
*/
|
||||||
AI_WONT_RETURN static void ReportError (const char* error, unsigned int line) AI_WONT_RETURN_SUFFIX;
|
AI_WONT_RETURN static void ReportError (const char* error, unsigned int line) AI_WONT_RETURN_SUFFIX;
|
||||||
|
|
||||||
// -------------------------------------------------------------------
|
// -------------------------------------------------------------------
|
||||||
/** Report a specific warning
|
/** Report a specific warning
|
||||||
* @param warn Warn message to be reported
|
* @param warn Warn message to be reported
|
||||||
* @param line Index of the line where the error occured
|
* @param line Index of the line where the error occurred
|
||||||
*/
|
*/
|
||||||
static void ReportWarning (const char* warn, unsigned int line);
|
static void ReportWarning (const char* warn, unsigned int line);
|
||||||
|
|
||||||
|
|
|
@ -1290,7 +1290,7 @@ void MDLImporter::SortByMaterials_3DGS_MDL7(
|
||||||
iMatIndex2 = iNumMaterials-1;
|
iMatIndex2 = iNumMaterials-1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// do a slow seach in the list ...
|
// do a slow search in the list ...
|
||||||
iNum = 0;
|
iNum = 0;
|
||||||
bool bFound = false;
|
bool bFound = false;
|
||||||
for (std::vector<MDL::IntMaterial_MDL7>::iterator i = avMats.begin();i != avMats.end();++i,++iNum){
|
for (std::vector<MDL::IntMaterial_MDL7>::iterator i = avMats.begin();i != avMats.end();++i,++iNum){
|
||||||
|
|
|
@ -60,7 +60,7 @@ using namespace Assimp;
|
||||||
static aiTexel* const bad_texel = reinterpret_cast<aiTexel*>(SIZE_MAX);
|
static aiTexel* const bad_texel = reinterpret_cast<aiTexel*>(SIZE_MAX);
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
// Find a suitable pallette file or take teh default one
|
// Find a suitable pallette file or take the default one
|
||||||
void MDLImporter::SearchPalette(const unsigned char** pszColorMap)
|
void MDLImporter::SearchPalette(const unsigned char** pszColorMap)
|
||||||
{
|
{
|
||||||
// now try to find the color map in the current directory
|
// now try to find the color map in the current directory
|
||||||
|
@ -129,7 +129,7 @@ aiColor4D MDLImporter::ReplaceTextureWithColor(const aiTexture* pcTexture)
|
||||||
// Read a texture from a MDL3 file
|
// Read a texture from a MDL3 file
|
||||||
void MDLImporter::CreateTextureARGB8_3DGS_MDL3(const unsigned char* szData)
|
void MDLImporter::CreateTextureARGB8_3DGS_MDL3(const unsigned char* szData)
|
||||||
{
|
{
|
||||||
const MDL::Header *pcHeader = (const MDL::Header*)mBuffer; //the endianess is allready corrected in the InternReadFile_3DGS_MDL345 function
|
const MDL::Header *pcHeader = (const MDL::Header*)mBuffer; //the endianness is already corrected in the InternReadFile_3DGS_MDL345 function
|
||||||
|
|
||||||
VALIDATE_FILE_SIZE(szData + pcHeader->skinwidth *
|
VALIDATE_FILE_SIZE(szData + pcHeader->skinwidth *
|
||||||
pcHeader->skinheight);
|
pcHeader->skinheight);
|
||||||
|
@ -178,7 +178,7 @@ void MDLImporter::CreateTexture_3DGS_MDL4(const unsigned char* szData,
|
||||||
{
|
{
|
||||||
ai_assert(NULL != piSkip);
|
ai_assert(NULL != piSkip);
|
||||||
|
|
||||||
const MDL::Header *pcHeader = (const MDL::Header*)mBuffer; //the endianess is allready corrected in the InternReadFile_3DGS_MDL345 function
|
const MDL::Header *pcHeader = (const MDL::Header*)mBuffer; //the endianness is already corrected in the InternReadFile_3DGS_MDL345 function
|
||||||
|
|
||||||
if (iType == 1 || iType > 3)
|
if (iType == 1 || iType > 3)
|
||||||
{
|
{
|
||||||
|
|
|
@ -262,7 +262,7 @@ void NDOImporter::InternReadFile( const std::string& pFile,
|
||||||
aiFace* faces = mesh->mFaces = new aiFace[mesh->mNumFaces=face_table.size()];
|
aiFace* faces = mesh->mFaces = new aiFace[mesh->mNumFaces=face_table.size()];
|
||||||
|
|
||||||
vertices.clear();
|
vertices.clear();
|
||||||
vertices.reserve(4 * face_table.size()); // arbitrarily choosen
|
vertices.reserve(4 * face_table.size()); // arbitrarily chosen
|
||||||
for_each(FaceTable::value_type& v, face_table) {
|
for_each(FaceTable::value_type& v, face_table) {
|
||||||
indices.clear();
|
indices.clear();
|
||||||
|
|
||||||
|
|
|
@ -388,7 +388,7 @@ bool PLY::Element::ParseElement (const char* pCur,
|
||||||
|
|
||||||
if (!SkipSpaces(&pCur))return false;
|
if (!SkipSpaces(&pCur))return false;
|
||||||
|
|
||||||
//parse the number of occurences of this element
|
//parse the number of occurrences of this element
|
||||||
pOut->NumOccur = strtoul10(pCur,&pCur);
|
pOut->NumOccur = strtoul10(pCur,&pCur);
|
||||||
|
|
||||||
// go to the next line
|
// go to the next line
|
||||||
|
@ -854,7 +854,7 @@ bool PLY::PropertyInstance::ParseValueBinary(
|
||||||
out->iUInt = (uint32_t)*((uint32_t*)pCur);
|
out->iUInt = (uint32_t)*((uint32_t*)pCur);
|
||||||
pCur += 4;
|
pCur += 4;
|
||||||
|
|
||||||
// Swap endianess
|
// Swap endianness
|
||||||
if (p_bBE)ByteSwap::Swap((int32_t*)&out->iUInt);
|
if (p_bBE)ByteSwap::Swap((int32_t*)&out->iUInt);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -862,7 +862,7 @@ bool PLY::PropertyInstance::ParseValueBinary(
|
||||||
{
|
{
|
||||||
uint16_t i = *((uint16_t*)pCur);
|
uint16_t i = *((uint16_t*)pCur);
|
||||||
|
|
||||||
// Swap endianess
|
// Swap endianness
|
||||||
if (p_bBE)ByteSwap::Swap(&i);
|
if (p_bBE)ByteSwap::Swap(&i);
|
||||||
out->iUInt = (uint32_t)i;
|
out->iUInt = (uint32_t)i;
|
||||||
pCur += 2;
|
pCur += 2;
|
||||||
|
@ -880,7 +880,7 @@ bool PLY::PropertyInstance::ParseValueBinary(
|
||||||
out->iInt = *((int32_t*)pCur);
|
out->iInt = *((int32_t*)pCur);
|
||||||
pCur += 4;
|
pCur += 4;
|
||||||
|
|
||||||
// Swap endianess
|
// Swap endianness
|
||||||
if (p_bBE)ByteSwap::Swap(&out->iInt);
|
if (p_bBE)ByteSwap::Swap(&out->iInt);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -888,7 +888,7 @@ bool PLY::PropertyInstance::ParseValueBinary(
|
||||||
{
|
{
|
||||||
int16_t i = *((int16_t*)pCur);
|
int16_t i = *((int16_t*)pCur);
|
||||||
|
|
||||||
// Swap endianess
|
// Swap endianness
|
||||||
if (p_bBE)ByteSwap::Swap(&i);
|
if (p_bBE)ByteSwap::Swap(&i);
|
||||||
out->iInt = (int32_t)i;
|
out->iInt = (int32_t)i;
|
||||||
pCur += 2;
|
pCur += 2;
|
||||||
|
@ -904,7 +904,7 @@ bool PLY::PropertyInstance::ParseValueBinary(
|
||||||
{
|
{
|
||||||
out->fFloat = *((float*)pCur);
|
out->fFloat = *((float*)pCur);
|
||||||
|
|
||||||
// Swap endianess
|
// Swap endianness
|
||||||
if (p_bBE)ByteSwap::Swap((int32_t*)&out->fFloat);
|
if (p_bBE)ByteSwap::Swap((int32_t*)&out->fFloat);
|
||||||
pCur += 4;
|
pCur += 4;
|
||||||
break;
|
break;
|
||||||
|
@ -913,7 +913,7 @@ bool PLY::PropertyInstance::ParseValueBinary(
|
||||||
{
|
{
|
||||||
out->fDouble = *((double*)pCur);
|
out->fDouble = *((double*)pCur);
|
||||||
|
|
||||||
// Swap endianess
|
// Swap endianness
|
||||||
if (p_bBE)ByteSwap::Swap((int64_t*)&out->fDouble);
|
if (p_bBE)ByteSwap::Swap((int64_t*)&out->fDouble);
|
||||||
pCur += 8;
|
pCur += 8;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -39,7 +39,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/** @file SMDLoader.h
|
/** @file SMDLoader.h
|
||||||
* @brief Defintion of the Valve SMD file format
|
* @brief Definition of the Valve SMD file format
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef AI_SMDLOADER_H_INCLUDED
|
#ifndef AI_SMDLOADER_H_INCLUDED
|
||||||
|
|
|
@ -406,7 +406,7 @@ bool STLImporter::LoadBinaryFile()
|
||||||
}
|
}
|
||||||
bool bIsMaterialise = false;
|
bool bIsMaterialise = false;
|
||||||
|
|
||||||
// search for an occurence of "COLOR=" in the header
|
// search for an occurrence of "COLOR=" in the header
|
||||||
const unsigned char* sz2 = (const unsigned char*)mBuffer;
|
const unsigned char* sz2 = (const unsigned char*)mBuffer;
|
||||||
const unsigned char* const szEnd = sz2+80;
|
const unsigned char* const szEnd = sz2+80;
|
||||||
while (sz2 < szEnd) {
|
while (sz2 < szEnd) {
|
||||||
|
|
|
@ -273,7 +273,7 @@ public:
|
||||||
/** Merges two or more materials
|
/** Merges two or more materials
|
||||||
*
|
*
|
||||||
* The materials should be complementary as much as possible. In case
|
* The materials should be complementary as much as possible. In case
|
||||||
* of a property present in different materials, the first occurence
|
* of a property present in different materials, the first occurrence
|
||||||
* is used.
|
* is used.
|
||||||
*
|
*
|
||||||
* @param dest Destination material. Must be empty.
|
* @param dest Destination material. Must be empty.
|
||||||
|
@ -323,7 +323,7 @@ public:
|
||||||
* the master graph), a scene is attached to the root of the master
|
* the master graph), a scene is attached to the root of the master
|
||||||
* graph (as an additional child node)
|
* graph (as an additional child node)
|
||||||
* @duplicates List of duplicates. If elem[n] == n the scene is not
|
* @duplicates List of duplicates. If elem[n] == n the scene is not
|
||||||
* a duplicate. Otherwise elem[n] links scene n to its first occurence.
|
* a duplicate. Otherwise elem[n] links scene n to its first occurrence.
|
||||||
*/
|
*/
|
||||||
static void AttachToGraph ( aiScene* master,
|
static void AttachToGraph ( aiScene* master,
|
||||||
std::vector<NodeAttachmentInfo>& srcList);
|
std::vector<NodeAttachmentInfo>& srcList);
|
||||||
|
|
|
@ -234,7 +234,7 @@ namespace {
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
// Fills an array with indices of all positions indentical to the given position. In opposite to
|
// Fills an array with indices of all positions identical to the given position. In opposite to
|
||||||
// FindPositions(), not an epsilon is used but a (very low) tolerance of four floating-point units.
|
// FindPositions(), not an epsilon is used but a (very low) tolerance of four floating-point units.
|
||||||
void SpatialSort::FindIdenticalPositions( const aiVector3D& pPosition,
|
void SpatialSort::FindIdenticalPositions( const aiVector3D& pPosition,
|
||||||
std::vector<unsigned int>& poResults) const
|
std::vector<unsigned int>& poResults) const
|
||||||
|
|
|
@ -121,7 +121,7 @@ public:
|
||||||
std::vector<unsigned int>& poResults) const;
|
std::vector<unsigned int>& poResults) const;
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------
|
||||||
/** Fills an array with indices of all positions indentical to the given position. In
|
/** Fills an array with indices of all positions identical to the given position. In
|
||||||
* opposite to FindPositions(), not an epsilon is used but a (very low) tolerance of
|
* opposite to FindPositions(), not an epsilon is used but a (very low) tolerance of
|
||||||
* four floating-point units.
|
* four floating-point units.
|
||||||
* @param pPosition The position to look for vertices.
|
* @param pPosition The position to look for vertices.
|
||||||
|
|
|
@ -182,7 +182,7 @@ public:
|
||||||
// ----------------------------------------------------------------
|
// ----------------------------------------------------------------
|
||||||
/** @brief Generates a flat circle
|
/** @brief Generates a flat circle
|
||||||
*
|
*
|
||||||
* The circle is constructed in the planed formed by the x,z
|
* The circle is constructed in the planned formed by the x,z
|
||||||
* axes of the cartesian coordinate system.
|
* axes of the cartesian coordinate system.
|
||||||
*
|
*
|
||||||
* @param radius Radius of the circle
|
* @param radius Radius of the circle
|
||||||
|
|
|
@ -40,7 +40,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/** @file Defines the StreamReader class which reads data from
|
/** @file Defines the StreamReader class which reads data from
|
||||||
* a binary stream with a well-defined endianess. */
|
* a binary stream with a well-defined endianness. */
|
||||||
|
|
||||||
#ifndef AI_STREAMREADER_H_INCLUDED
|
#ifndef AI_STREAMREADER_H_INCLUDED
|
||||||
#define AI_STREAMREADER_H_INCLUDED
|
#define AI_STREAMREADER_H_INCLUDED
|
||||||
|
@ -57,9 +57,9 @@ namespace Assimp {
|
||||||
/** Wrapper class around IOStream to allow for consistent reading of binary data in both
|
/** Wrapper class around IOStream to allow for consistent reading of binary data in both
|
||||||
* little and big endian format. Don't attempt to instance the template directly. Use
|
* little and big endian format. Don't attempt to instance the template directly. Use
|
||||||
* StreamReaderLE to read from a little-endian stream and StreamReaderBE to read from a
|
* StreamReaderLE to read from a little-endian stream and StreamReaderBE to read from a
|
||||||
* BE stream. The class expects that the endianess of any input data is known at
|
* BE stream. The class expects that the endianness of any input data is known at
|
||||||
* compile-time, which should usually be true (#BaseImporter::ConvertToUTF8 implements
|
* compile-time, which should usually be true (#BaseImporter::ConvertToUTF8 implements
|
||||||
* runtime endianess conversions for text files).
|
* runtime endianness conversions for text files).
|
||||||
*
|
*
|
||||||
* XXX switch from unsigned int for size types to size_t? or ptrdiff_t?*/
|
* XXX switch from unsigned int for size types to size_t? or ptrdiff_t?*/
|
||||||
// --------------------------------------------------------------------------------------------
|
// --------------------------------------------------------------------------------------------
|
||||||
|
@ -79,7 +79,7 @@ public:
|
||||||
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------
|
// ---------------------------------------------------------------------
|
||||||
/** Construction from a given stream with a well-defined endianess.
|
/** Construction from a given stream with a well-defined endianness.
|
||||||
*
|
*
|
||||||
* The StreamReader holds a permanent strong reference to the
|
* The StreamReader holds a permanent strong reference to the
|
||||||
* stream, which is released upon destruction.
|
* stream, which is released upon destruction.
|
||||||
|
@ -88,7 +88,7 @@ public:
|
||||||
* reads from the current position to the end of the stream.
|
* reads from the current position to the end of the stream.
|
||||||
* @param le If @c RuntimeSwitch is true: specifies whether the
|
* @param le If @c RuntimeSwitch is true: specifies whether the
|
||||||
* stream is in little endian byte order. Otherwise the
|
* stream is in little endian byte order. Otherwise the
|
||||||
* endianess information is contained in the @c SwapEndianess
|
* endianness information is contained in the @c SwapEndianess
|
||||||
* template parameter and this parameter is meaningless. */
|
* template parameter and this parameter is meaningless. */
|
||||||
StreamReader(boost::shared_ptr<IOStream> stream, bool le = false)
|
StreamReader(boost::shared_ptr<IOStream> stream, bool le = false)
|
||||||
: stream(stream)
|
: stream(stream)
|
||||||
|
|
|
@ -40,7 +40,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/** @file Defines the StreamWriter class which writes data to
|
/** @file Defines the StreamWriter class which writes data to
|
||||||
* a binary stream with a well-defined endianess. */
|
* a binary stream with a well-defined endianness. */
|
||||||
|
|
||||||
#ifndef AI_STREAMWRITER_H_INCLUDED
|
#ifndef AI_STREAMWRITER_H_INCLUDED
|
||||||
#define AI_STREAMWRITER_H_INCLUDED
|
#define AI_STREAMWRITER_H_INCLUDED
|
||||||
|
@ -57,7 +57,7 @@ namespace Assimp {
|
||||||
/** Wrapper class around IOStream to allow for consistent writing of binary data in both
|
/** Wrapper class around IOStream to allow for consistent writing of binary data in both
|
||||||
* little and big endian format. Don't attempt to instance the template directly. Use
|
* little and big endian format. Don't attempt to instance the template directly. Use
|
||||||
* StreamWriterLE to read from a little-endian stream and StreamWriterBE to read from a
|
* StreamWriterLE to read from a little-endian stream and StreamWriterBE to read from a
|
||||||
* BE stream. Alternatively, there is StreamWriterAny if the endianess of the output
|
* BE stream. Alternatively, there is StreamWriterAny if the endianness of the output
|
||||||
* stream is to be determined at runtime.
|
* stream is to be determined at runtime.
|
||||||
*/
|
*/
|
||||||
// --------------------------------------------------------------------------------------------
|
// --------------------------------------------------------------------------------------------
|
||||||
|
@ -71,7 +71,7 @@ class StreamWriter
|
||||||
public:
|
public:
|
||||||
|
|
||||||
// ---------------------------------------------------------------------
|
// ---------------------------------------------------------------------
|
||||||
/** Construction from a given stream with a well-defined endianess.
|
/** Construction from a given stream with a well-defined endianness.
|
||||||
*
|
*
|
||||||
* The StreamReader holds a permanent strong reference to the
|
* The StreamReader holds a permanent strong reference to the
|
||||||
* stream, which is released upon destruction.
|
* stream, which is released upon destruction.
|
||||||
|
@ -79,7 +79,7 @@ public:
|
||||||
continues at the current position of the stream cursor.
|
continues at the current position of the stream cursor.
|
||||||
* @param le If @c RuntimeSwitch is true: specifies whether the
|
* @param le If @c RuntimeSwitch is true: specifies whether the
|
||||||
* stream is in little endian byte order. Otherwise the
|
* stream is in little endian byte order. Otherwise the
|
||||||
* endianess information is defined by the @c SwapEndianess
|
* endianness information is defined by the @c SwapEndianess
|
||||||
* template parameter and this parameter is meaningless. */
|
* template parameter and this parameter is meaningless. */
|
||||||
StreamWriter(boost::shared_ptr<IOStream> stream, bool le = false)
|
StreamWriter(boost::shared_ptr<IOStream> stream, bool le = false)
|
||||||
: stream(stream)
|
: stream(stream)
|
||||||
|
|
|
@ -126,7 +126,7 @@ void TerragenImporter::InternReadFile( const std::string& pFile,
|
||||||
if( file == NULL)
|
if( file == NULL)
|
||||||
throw DeadlyImportError( "Failed to open TERRAGEN TERRAIN file " + pFile + ".");
|
throw DeadlyImportError( "Failed to open TERRAGEN TERRAIN file " + pFile + ".");
|
||||||
|
|
||||||
// Construct a stream reader to read all data in the correct endianess
|
// Construct a stream reader to read all data in the correct endianness
|
||||||
StreamReaderLE reader(file);
|
StreamReaderLE reader(file);
|
||||||
if(reader.GetRemainingSize() < 16)
|
if(reader.GetRemainingSize() < 16)
|
||||||
throw DeadlyImportError( "TER: file is too small" );
|
throw DeadlyImportError( "TER: file is too small" );
|
||||||
|
|
|
@ -554,7 +554,7 @@ void TextureTransformStep::Execute( aiScene* pScene)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Print some detailled statistics into the log
|
// Print some detailed statistics into the log
|
||||||
if (!DefaultLogger::isNullLogger()) {
|
if (!DefaultLogger::isNullLogger()) {
|
||||||
|
|
||||||
if (transformedChannels) {
|
if (transformedChannels) {
|
||||||
|
|
|
@ -668,7 +668,7 @@ void XFileImporter::ConvertMaterials( aiScene* pScene, std::vector<XFile::Materi
|
||||||
sz[sExt] = '\0';
|
sz[sExt] = '\0';
|
||||||
}
|
}
|
||||||
|
|
||||||
// convert to lower case for easier comparision
|
// convert to lower case for easier comparison
|
||||||
for( unsigned int c = 0; c < sz.length(); c++)
|
for( unsigned int c = 0; c < sz.length(); c++)
|
||||||
if( isalpha( sz[c]))
|
if( isalpha( sz[c]))
|
||||||
sz[c] = tolower( sz[c]);
|
sz[c] = tolower( sz[c]);
|
||||||
|
|
|
@ -1298,7 +1298,7 @@ unsigned int XFileParser::ReadInt()
|
||||||
|
|
||||||
// TODO: consider using strtol10 instead???
|
// TODO: consider using strtol10 instead???
|
||||||
|
|
||||||
// check preceeding minus sign
|
// check preceding minus sign
|
||||||
bool isNegative = false;
|
bool isNegative = false;
|
||||||
if( *P == '-')
|
if( *P == '-')
|
||||||
{
|
{
|
||||||
|
@ -1453,7 +1453,7 @@ AI_WONT_RETURN void XFileParser::ThrowException( const std::string& pText)
|
||||||
void XFileParser::FilterHierarchy( XFile::Node* pNode)
|
void XFileParser::FilterHierarchy( XFile::Node* pNode)
|
||||||
{
|
{
|
||||||
// if the node has just a single unnamed child containing a mesh, remove
|
// if the node has just a single unnamed child containing a mesh, remove
|
||||||
// the anonymous node inbetween. The 3DSMax kwXport plugin seems to produce this
|
// the anonymous node between. The 3DSMax kwXport plugin seems to produce this
|
||||||
// mess in some cases
|
// mess in some cases
|
||||||
if( pNode->mChildren.size() == 1 && pNode->mMeshes.empty() )
|
if( pNode->mChildren.size() == 1 && pNode->mMeshes.empty() )
|
||||||
{
|
{
|
||||||
|
|
18
doc/dox.h
18
doc/dox.h
|
@ -98,7 +98,7 @@ more work. Both ways are described at the @link install Installation page. @endl
|
||||||
|
|
||||||
When you're done integrating the library into your IDE / project, you can now start using it. There are two separate
|
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
|
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,
|
is easier to handle, the latter also forms a point where other programming languages can connect to. Up to 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.
|
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
|
@section main_data Data Structures
|
||||||
|
@ -137,7 +137,7 @@ If you develop at Visual Studio 2005 or 2008, you can simply use the pre-built l
|
||||||
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)
|
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.
|
This is necessary only once to setup all paths inside you IDE.
|
||||||
|
|
||||||
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>.
|
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
|
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
|
||||||
|
@ -310,7 +310,7 @@ bool DoTheImportThing( const std::string& pFile)
|
||||||
@endcode
|
@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.
|
imported data are listed at #aiPostProcessSteps. See the @ref pp Post processing page for more details.
|
||||||
|
|
||||||
Note that the aiScene data structure returned is declared 'const'. Yes, you can get rid of
|
Note that the aiScene data structure returned is declared 'const'. Yes, you can get rid of
|
||||||
these 5 letters with a simple cast. Yes, you may do that. No, it's not recommended (and it's
|
these 5 letters with a simple cast. Yes, you may do that. No, it's not recommended (and it's
|
||||||
|
@ -660,7 +660,7 @@ an index into this array.
|
||||||
|
|
||||||
An aiMesh is defined by a series of data channels. The presence of these data channels is defined
|
An aiMesh is defined by a series of data channels. The presence of these data channels is defined
|
||||||
by the contents of the imported file: by default there are only those data channels present in the mesh
|
by the contents of the imported file: by default there are only those data channels present in the mesh
|
||||||
that were also found in the file. The only channels guarenteed to be always present are aiMesh::mVertices
|
that were also found in the file. The only channels guaranteed 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
|
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
|
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.
|
||||||
|
@ -753,7 +753,7 @@ both Direct3D and OpenGL (swizzling the order of the color components might be n
|
||||||
RGBA8888 has been chosen because it is well-known, easy to use and natively
|
RGBA8888 has been chosen because it is well-known, easy to use and natively
|
||||||
supported by nearly all graphics APIs.
|
supported by nearly all graphics APIs.
|
||||||
<br>
|
<br>
|
||||||
<b>2)</b> This applies if aiTexture::mHeight == 0 is fullfilled. Then, texture is stored in a
|
<b>2)</b> This applies if aiTexture::mHeight == 0 is fulfilled. Then, texture is stored in a
|
||||||
"compressed" format such as DDS or PNG. The term "compressed" does not mean that the
|
"compressed" format such as DDS or PNG. The term "compressed" does not mean that the
|
||||||
texture data must actually be compressed, however the texture was found in the
|
texture data must actually be compressed, however the texture was found in the
|
||||||
model file as if it was stored in a separate file on the harddisk. Appropriate
|
model file as if it was stored in a separate file on the harddisk. Appropriate
|
||||||
|
@ -780,7 +780,7 @@ presence of certain properties in a material and retrieve their values.
|
||||||
|
|
||||||
@section mat_tex Textures
|
@section mat_tex Textures
|
||||||
|
|
||||||
Textures are organized in stacks, each stack being evaluated independently. The final color value from a particular texture stack is used in the shading equation. For example, the computed color value of the diffuse texture stack (aiTextureType_DIFFUSE) is multipled with the amount of incoming diffuse light to obtain the final diffuse color of a pixel.
|
Textures are organized in stacks, each stack being evaluated independently. The final color value from a particular texture stack is used in the shading equation. For example, the computed color value of the diffuse texture stack (aiTextureType_DIFFUSE) is multiplied with the amount of incoming diffuse light to obtain the final diffuse color of a pixel.
|
||||||
|
|
||||||
@code
|
@code
|
||||||
|
|
||||||
|
@ -938,7 +938,7 @@ All material key constants start with 'AI_MATKEY' (it's an ugly macro for histor
|
||||||
<td><tt>TEXBLEND(t,n)</tt></td>
|
<td><tt>TEXBLEND(t,n)</tt></td>
|
||||||
<td>float</td>
|
<td>float</td>
|
||||||
<td>n/a</td>
|
<td>n/a</td>
|
||||||
<td>Defines the strength the n'th texture on the stack 't'. All color components (rgb) are multipled with this factor *before* any further processing is done.</td>
|
<td>Defines the strength the n'th texture on the stack 't'. All color components (rgb) are multiplied with this factor *before* any further processing is done.</td>
|
||||||
<td>-</td>
|
<td>-</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
@ -1466,7 +1466,7 @@ The skeleton file must have the same name as the mesh file, e.g. fish.mesh.xml a
|
||||||
The material file can have the same name as the mesh file (if the file is model.mesh or model.mesh.xml the
|
The material file can have the same name as the mesh file (if the file is model.mesh or model.mesh.xml the
|
||||||
loader will try to load model.material),
|
loader will try to load model.material),
|
||||||
or you can use Importer::Importer::SetPropertyString(AI_CONFIG_IMPORT_OGRE_MATERIAL_FILE, "materiafile.material")
|
or you can use Importer::Importer::SetPropertyString(AI_CONFIG_IMPORT_OGRE_MATERIAL_FILE, "materiafile.material")
|
||||||
to specify the name of the material file. This is especially usefull if multiply materials a stored in a single file.
|
to specify the name of the material file. This is especially useful if multiply materials a stored in a single file.
|
||||||
The importer will first try to load the material with the same name as the mesh and only if this can't be open try
|
The importer will first try to load the material with the same name as the mesh and only if this can't be open try
|
||||||
to load the alternate material file. The default material filename is "Scene.material".
|
to load the alternate material file. The default material filename is "Scene.material".
|
||||||
|
|
||||||
|
@ -1574,7 +1574,7 @@ But the general rule of thumb is <i>be strict in what you write and tolerant in
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
Take care of endianess issues! Assimp importers mostly support big-endian platforms, which define the <tt>AI_BUILD_BIG_ENDIAN</tt> constant.
|
Take care of endianness issues! Assimp importers mostly support big-endian platforms, which define the <tt>AI_BUILD_BIG_ENDIAN</tt> constant.
|
||||||
See the next section for a list of utilities to simplify this task.
|
See the next section for a list of utilities to simplify this task.
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
|
|
@ -73,7 +73,7 @@
|
||||||
* include stdint.h. The hope is that one or the other can be
|
* include stdint.h. The hope is that one or the other can be
|
||||||
* used with no real difference.
|
* used with no real difference.
|
||||||
*
|
*
|
||||||
* 5) In the current verison, if your platform can't represent
|
* 5) In the current version, if your platform can't represent
|
||||||
* int32_t, int16_t and int8_t, it just dumps out with a compiler
|
* int32_t, int16_t and int8_t, it just dumps out with a compiler
|
||||||
* error.
|
* error.
|
||||||
*
|
*
|
||||||
|
|
|
@ -464,7 +464,7 @@ public:
|
||||||
/** @brief Reads the given file and returns its contents if successful.
|
/** @brief Reads the given file and returns its contents if successful.
|
||||||
*
|
*
|
||||||
* This function is provided for backward compatibility.
|
* This function is provided for backward compatibility.
|
||||||
* See the const char* version for detailled docs.
|
* See the const char* version for detailed docs.
|
||||||
* @see ReadFile(const char*, pFlags) */
|
* @see ReadFile(const char*, pFlags) */
|
||||||
const aiScene* ReadFile(
|
const aiScene* ReadFile(
|
||||||
const std::string& pFile,
|
const std::string& pFile,
|
||||||
|
|
|
@ -409,7 +409,7 @@ namespace Assimp {
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
/** @brief CPP-API: Utility class to simplify interpolations of various data types.
|
/** @brief CPP-API: Utility class to simplify interpolations of various data types.
|
||||||
*
|
*
|
||||||
* The type of interpolation is choosen automatically depending on the
|
* The type of interpolation is chosen automatically depending on the
|
||||||
* types of the arguments. */
|
* types of the arguments. */
|
||||||
template <typename T>
|
template <typename T>
|
||||||
struct Interpolator
|
struct Interpolator
|
||||||
|
|
|
@ -103,7 +103,7 @@ enum aiTextureOp
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
/** @brief Defines how UV coordinates outside the [0...1] range are handled.
|
/** @brief Defines how UV coordinates outside the [0...1] range are handled.
|
||||||
*
|
*
|
||||||
* Commonly refered to as 'wrapping mode'.
|
* Commonly referred to as 'wrapping mode'.
|
||||||
*/
|
*/
|
||||||
enum aiTextureMapMode
|
enum aiTextureMapMode
|
||||||
{
|
{
|
||||||
|
|
|
@ -522,7 +522,7 @@ struct aiMesh
|
||||||
* mixed primitive types (i.e. lines and triangles) may have
|
* mixed primitive types (i.e. lines and triangles) may have
|
||||||
* normals, but the normals for vertices that are only referenced by
|
* normals, but the normals for vertices that are only referenced by
|
||||||
* point or line primitives are undefined and set to qNaN. See
|
* point or line primitives are undefined and set to qNaN. See
|
||||||
* the #mNormals member for a detailled discussion of qNaNs.
|
* the #mNormals member for a detailed discussion of qNaNs.
|
||||||
* @note If the mesh contains tangents, it automatically also
|
* @note If the mesh contains tangents, it automatically also
|
||||||
* contains bitangents.
|
* contains bitangents.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -39,7 +39,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/** @file Android implementation of IOSystem using the standard C file functions.
|
/** @file Android implementation of IOSystem using the standard C file functions.
|
||||||
* Aimed to ease the acces to android assets */
|
* Aimed to ease the access to android assets */
|
||||||
|
|
||||||
#if __ANDROID__ and __ANDROID_API__ > 9 and defined(AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT)
|
#if __ANDROID__ and __ANDROID_API__ > 9 and defined(AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT)
|
||||||
#ifndef AI_ANDROIDJNIIOSYSTEM_H_INC
|
#ifndef AI_ANDROIDJNIIOSYSTEM_H_INC
|
||||||
|
|
|
@ -6,6 +6,6 @@ All possible errors.
|
||||||
|
|
||||||
class AssimpError(BaseException):
|
class AssimpError(BaseException):
|
||||||
"""
|
"""
|
||||||
If an internal error occures.
|
If an internal error occurs.
|
||||||
"""
|
"""
|
||||||
pass
|
pass
|
|
@ -568,7 +568,7 @@ class Mesh(Structure):
|
||||||
# normals, but the normals for vertices that are only referenced by
|
# normals, but the normals for vertices that are only referenced by
|
||||||
# point or line primitives are undefined and set to qNaN. See
|
# point or line primitives are undefined and set to qNaN. See
|
||||||
# the
|
# the
|
||||||
#mNormals member for a detailled discussion of qNaNs.
|
#mNormals member for a detailed discussion of qNaNs.
|
||||||
# @note If the mesh contains tangents, it automatically also
|
# @note If the mesh contains tangents, it automatically also
|
||||||
# contains bitangents (the bitangent is just the cross product of
|
# contains bitangents (the bitangent is just the cross product of
|
||||||
# tangent and normal vectors).
|
# tangent and normal vectors).
|
||||||
|
|
|
@ -607,7 +607,7 @@ extern ( C ) {
|
||||||
* <code>aiGetMaterialTextureCount()</code> can be used to determine
|
* <code>aiGetMaterialTextureCount()</code> can be used to determine
|
||||||
* the number of textures in a particular texture stack.
|
* the number of textures in a particular texture stack.
|
||||||
* path = Receives the output path. null is not a valid value.
|
* path = Receives the output path. null is not a valid value.
|
||||||
* mapping = Recieves the texture mapping mode to be used.
|
* mapping = Receives the texture mapping mode to be used.
|
||||||
* Pass null if you are not interested in this information.
|
* Pass null if you are not interested in this information.
|
||||||
* uvindex = For UV-mapped textures: receives the index of the UV source
|
* uvindex = For UV-mapped textures: receives the index of the UV source
|
||||||
* channel. Unmodified otherwise. Pass null if you are not interested
|
* channel. Unmodified otherwise. Pass null if you are not interested
|
||||||
|
|
|
@ -110,7 +110,7 @@ extern ( C ) {
|
||||||
* Defines how UV coordinates outside the <code>[0..1]</code> range are
|
* Defines how UV coordinates outside the <code>[0..1]</code> range are
|
||||||
* handled.
|
* handled.
|
||||||
*
|
*
|
||||||
* Commonly refered to as 'wrapping mode'.
|
* Commonly referred to as 'wrapping mode'.
|
||||||
*/
|
*/
|
||||||
enum aiTextureMapMode : uint {
|
enum aiTextureMapMode : uint {
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -71,7 +71,7 @@ extern( C ) {
|
||||||
/**
|
/**
|
||||||
* Represents a row-major 3x3 matrix
|
* Represents a row-major 3x3 matrix
|
||||||
*
|
*
|
||||||
* There is much confusion about matrix layouts (colum vs. row order). This
|
* There is much confusion about matrix layouts (column vs. row order). This
|
||||||
* is <em>always</em> a row-major matrix, even when using the
|
* is <em>always</em> a row-major matrix, even when using the
|
||||||
* <code>ConvertToLeftHanded</code> post processing step.
|
* <code>ConvertToLeftHanded</code> post processing step.
|
||||||
*/
|
*/
|
||||||
|
@ -84,7 +84,7 @@ extern( C ) {
|
||||||
/**
|
/**
|
||||||
* Represents a row-major 3x3 matrix
|
* Represents a row-major 3x3 matrix
|
||||||
*
|
*
|
||||||
* There is much confusion about matrix layouts (colum vs. row order). This
|
* There is much confusion about matrix layouts (column vs. row order). This
|
||||||
* is <em>always</em> a row-major matrix, even when using the
|
* is <em>always</em> a row-major matrix, even when using the
|
||||||
* <code>ConvertToLeftHanded</code> post processing step.
|
* <code>ConvertToLeftHanded</code> post processing step.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -115,7 +115,7 @@ extern ( C ) {
|
||||||
uint mNumIndices;
|
uint mNumIndices;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Array of the indicies defining the face.
|
* Array of the indices defining the face.
|
||||||
*
|
*
|
||||||
* The size is given in <code>mNumIndices</code>.
|
* The size is given in <code>mNumIndices</code>.
|
||||||
*/
|
*/
|
||||||
|
@ -205,7 +205,7 @@ extern ( C ) {
|
||||||
*
|
*
|
||||||
* A triangle is a polygon, but in this context, polygon means
|
* A triangle is a polygon, but in this context, polygon means
|
||||||
* "all polygons that are not triangles". The <code>Triangulate</code>
|
* "all polygons that are not triangles". The <code>Triangulate</code>
|
||||||
* post processing step is provided for your convinience, it splits all
|
* post processing step is provided for your convenience, it splits all
|
||||||
* polygons in triangles (which are much easier to handle).
|
* polygons in triangles (which are much easier to handle).
|
||||||
*/
|
*/
|
||||||
POLYGON = 0x8
|
POLYGON = 0x8
|
||||||
|
@ -403,7 +403,7 @@ extern ( C ) {
|
||||||
/**
|
/**
|
||||||
* The faces the mesh is contstructed from.
|
* The faces the mesh is contstructed from.
|
||||||
*
|
*
|
||||||
* Each face referrs to a number of vertices by their indices.
|
* Each face refers to a number of vertices by their indices.
|
||||||
* This array is always present in a mesh, its size is given
|
* This array is always present in a mesh, its size is given
|
||||||
* in <code>mNumFaces</code>. If the
|
* in <code>mNumFaces</code>. If the
|
||||||
* <code>AI_SCENE_FLAGS_NON_VERBOSE_FORMAT</code> is <em>not</em> set,
|
* <code>AI_SCENE_FLAGS_NON_VERBOSE_FORMAT</code> is <em>not</em> set,
|
||||||
|
|
|
@ -44,7 +44,7 @@ package jassimp;
|
||||||
/**
|
/**
|
||||||
* Defines how UV coordinates outside the [0...1] range are handled.<p>
|
* Defines how UV coordinates outside the [0...1] range are handled.<p>
|
||||||
*
|
*
|
||||||
* Commonly refered to as 'wrapping mode'.
|
* Commonly referred to as 'wrapping mode'.
|
||||||
*/
|
*/
|
||||||
public enum AiTextureMapMode {
|
public enum AiTextureMapMode {
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -10,7 +10,7 @@ namespace Assimp {
|
||||||
%ignore Importer::GetExtensionList(std::string& szOut);
|
%ignore Importer::GetExtensionList(std::string& szOut);
|
||||||
%ignore Importer::IsExtensionSupported(const std::string& szExtension);
|
%ignore Importer::IsExtensionSupported(const std::string& szExtension);
|
||||||
|
|
||||||
// These are only neccessary for extending Assimp with custom importers or post
|
// These are only necessary for extending Assimp with custom importers or post
|
||||||
// processing steps, which would require wrapping the internal BaseImporter and
|
// processing steps, which would require wrapping the internal BaseImporter and
|
||||||
// BaseProcess classes.
|
// BaseProcess classes.
|
||||||
%ignore Importer::RegisterLoader(BaseImporter* pImp);
|
%ignore Importer::RegisterLoader(BaseImporter* pImp);
|
||||||
|
|
|
@ -384,7 +384,7 @@
|
||||||
* il_jpeg.c:53: Added check for IL_USE_IJL.
|
* il_jpeg.c:53: Added check for IL_USE_IJL.
|
||||||
* il_exr.cpp:319,329: Changed to write functions instead of read.
|
* il_exr.cpp:319,329: Changed to write functions instead of read.
|
||||||
* il_files.c: Added iSetOutputFake.
|
* il_files.c: Added iSetOutputFake.
|
||||||
* il_files.c (iSetOutputLump): Added check for NULL to accomodate ilDetermineSize function.
|
* il_files.c (iSetOutputLump): Added check for NULL to accommodate ilDetermineSize function.
|
||||||
* il_hdr.c:457: Changed from char* to ILbyte*.
|
* il_hdr.c:457: Changed from char* to ILbyte*.
|
||||||
* il_icns.h:24,30: Changed from ILbyte to char.
|
* il_icns.h:24,30: Changed from ILbyte to char.
|
||||||
* il_size.c: Added #ifdefs for when user has declared IL_NO_XXX. Changed error to ENUM instead of PARAM.
|
* il_size.c: Added #ifdefs for when user has declared IL_NO_XXX. Changed error to ENUM instead of PARAM.
|
||||||
|
@ -410,7 +410,7 @@
|
||||||
* il_pic.c (readScanline):294-295: Added check for alpha channel.
|
* il_pic.c (readScanline):294-295: Added check for alpha channel.
|
||||||
* il_pic.c: Added ilSetError calls throughout.
|
* il_pic.c: Added ilSetError calls throughout.
|
||||||
* il_sgi.c (iLoadSgiInternal): Fixed bug #1060946 - Removed IL_LUMINANCE_ALPHA filetype.
|
* il_sgi.c (iLoadSgiInternal): Fixed bug #1060946 - Removed IL_LUMINANCE_ALPHA filetype.
|
||||||
* WindowsTest.cpp:52,53: Changed border size to accomodate Windows Vista/7.
|
* WindowsTest.cpp:52,53: Changed border size to accommodate Windows Vista/7.
|
||||||
* il_endian.h:20: Changed to give __BIG_ENDIAN__ a value of 1. The Google cached page of
|
* il_endian.h:20: Changed to give __BIG_ENDIAN__ a value of 1. The Google cached page of
|
||||||
http://74.125.47.132/search?q=cache:YfSl36C2pAQJ:patch-tracking.debian.net/patch/series/view/devil/1.7.2-1/00_endian_and_ILvoid_fixes.diff+devil+big+endian&hl=en&ct=clnk&cd=11&gl=us&lr=lang_en
|
http://74.125.47.132/search?q=cache:YfSl36C2pAQJ:patch-tracking.debian.net/patch/series/view/devil/1.7.2-1/00_endian_and_ILvoid_fixes.diff+devil+big+endian&hl=en&ct=clnk&cd=11&gl=us&lr=lang_en
|
||||||
has this patch (Nov. 24, 2008 cache).
|
has this patch (Nov. 24, 2008 cache).
|
||||||
|
@ -597,7 +597,7 @@ Up to 2009-01-02 (since 1.7.5 release) Denton Woods <doomwiz@users.sf.net>
|
||||||
* Fixed bug in iRegisterLoad (https://sourceforge.net/forum/message.php?msg_id=5973761).
|
* Fixed bug in iRegisterLoad (https://sourceforge.net/forum/message.php?msg_id=5973761).
|
||||||
* Changed seek functions in il_files.c to return ILint.
|
* Changed seek functions in il_files.c to return ILint.
|
||||||
* Added rpcsal.h and sal.h #includes to ilut.h for DX10.
|
* Added rpcsal.h and sal.h #includes to ilut.h for DX10.
|
||||||
* Added IL_MAX_QUANT_INDICES to use instead of IL_MAX_QUANT_INDEXS (mispelled).
|
* Added IL_MAX_QUANT_INDICES to use instead of IL_MAX_QUANT_INDEXS (misspelled).
|
||||||
* Added WBMP support (loading and saving).
|
* Added WBMP support (loading and saving).
|
||||||
* EXR files can now be loaded as file streams and lumps.
|
* EXR files can now be loaded as file streams and lumps.
|
||||||
* Changed iNeuQuant to take number of colors in palette.
|
* Changed iNeuQuant to take number of colors in palette.
|
||||||
|
|
|
@ -57,7 +57,7 @@
|
||||||
|
|
||||||
//
|
//
|
||||||
// sorry just
|
// sorry just
|
||||||
// cant get this one to work under windows
|
// can't get this one to work under windows
|
||||||
// have disabled for the now
|
// have disabled for the now
|
||||||
//
|
//
|
||||||
// will look at it some more later
|
// will look at it some more later
|
||||||
|
|
|
@ -59,7 +59,7 @@
|
||||||
|
|
||||||
//
|
//
|
||||||
// sorry just
|
// sorry just
|
||||||
// cant get this one to work under windows
|
// can't get this one to work under windows
|
||||||
// have disabled for the now
|
// have disabled for the now
|
||||||
//
|
//
|
||||||
// will look at it some more later
|
// will look at it some more later
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
|
|
||||||
//
|
//
|
||||||
// sorry just
|
// sorry just
|
||||||
// cant get this one to work under windows
|
// can't get this one to work under windows
|
||||||
// have disabled for the now
|
// have disabled for the now
|
||||||
//
|
//
|
||||||
// will look at it some more later
|
// will look at it some more later
|
||||||
|
|
|
@ -486,7 +486,7 @@ static CVReturn MyDisplayLinkCallback(CVDisplayLinkRef displayLink,const CVTimeS
|
||||||
for (unsigned int a = 0; a < nidx; ++a)
|
for (unsigned int a = 0; a < nidx; ++a)
|
||||||
{
|
{
|
||||||
// if(mesh->mFaces[x].mNumIndices != 3)
|
// if(mesh->mFaces[x].mNumIndices != 3)
|
||||||
// NSLog(@"whoa dont have 3 indices...");
|
// NSLog(@"whoa don't have 3 indices...");
|
||||||
|
|
||||||
*indices++ = mesh->mFaces[x].mIndices[a];
|
*indices++ = mesh->mFaces[x].mIndices[a];
|
||||||
}
|
}
|
||||||
|
|
|
@ -234,14 +234,14 @@ int LoadGLTextures(const aiScene* scene)
|
||||||
std::string fileloc = basepath + filename; /* Loading of image */
|
std::string fileloc = basepath + filename; /* Loading of image */
|
||||||
success = ilLoadImage(fileloc.c_str());
|
success = ilLoadImage(fileloc.c_str());
|
||||||
|
|
||||||
if (success) /* If no error occured: */
|
if (success) /* If no error occurred: */
|
||||||
{
|
{
|
||||||
// Convert every colour component into unsigned byte.If your image contains
|
// Convert every colour component into unsigned byte.If your image contains
|
||||||
// alpha channel you can replace IL_RGB with IL_RGBA
|
// alpha channel you can replace IL_RGB with IL_RGBA
|
||||||
success = ilConvertImage(IL_RGB, IL_UNSIGNED_BYTE);
|
success = ilConvertImage(IL_RGB, IL_UNSIGNED_BYTE);
|
||||||
if (!success)
|
if (!success)
|
||||||
{
|
{
|
||||||
/* Error occured */
|
/* Error occurred */
|
||||||
abortGLInit("Couldn't convert image");
|
abortGLInit("Couldn't convert image");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -264,7 +264,7 @@ int LoadGLTextures(const aiScene* scene)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* Error occured */
|
/* Error occurred */
|
||||||
MessageBox(NULL, ("Couldn't load Image: " + fileloc).c_str() , "ERROR", MB_OK | MB_ICONEXCLAMATION);
|
MessageBox(NULL, ("Couldn't load Image: " + fileloc).c_str() , "ERROR", MB_OK | MB_ICONEXCLAMATION);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -230,7 +230,7 @@ CHANGES/FIXES:
|
||||||
(Oct 3, '01)
|
(Oct 3, '01)
|
||||||
x Fixed bug in getVisualInfoFromString(): visuals not reloaded on
|
x Fixed bug in getVisualInfoFromString(): visuals not reloaded on
|
||||||
display mode change. Reload visuals each time they are queried.
|
display mode change. Reload visuals each time they are queried.
|
||||||
This fixes a problem with Win32 because the list of availabe Visuals
|
This fixes a problem with Win32 because the list of available Visuals
|
||||||
(Pixelformats) changes after a change in displaymode. The problem
|
(Pixelformats) changes after a change in displaymode. The problem
|
||||||
occurs when switching to gamemode and back. Thanks to Michael
|
occurs when switching to gamemode and back. Thanks to Michael
|
||||||
Wimmer for pointing this out & providing the fix.
|
Wimmer for pointing this out & providing the fix.
|
||||||
|
@ -435,7 +435,7 @@ CHANGES/FIXES:
|
||||||
by the structure that I used in the previous port of GLUT.
|
by the structure that I used in the previous port of GLUT.
|
||||||
Therefore I decided that it would be best to "get back to
|
Therefore I decided that it would be best to "get back to
|
||||||
the roots". I re-implemented most of glut trying to stick
|
the roots". I re-implemented most of glut trying to stick
|
||||||
with the structure layed out by Mark. The result is a much
|
with the structure laid out by Mark. The result is a much
|
||||||
more stable version that passes ALL (!) (except overlay)
|
more stable version that passes ALL (!) (except overlay)
|
||||||
the tests provided by Mark. In addition, this new
|
the tests provided by Mark. In addition, this new
|
||||||
structure will allow future enhancements by Mark to be
|
structure will allow future enhancements by Mark to be
|
||||||
|
@ -492,7 +492,7 @@ CHANGES/FIXES:
|
||||||
x I don't know if this is avoidable. If you have a tight rendering
|
x I don't know if this is avoidable. If you have a tight rendering
|
||||||
loop, it may be that the processor time is going to be sucked up
|
loop, it may be that the processor time is going to be sucked up
|
||||||
no matter what. You can add a sleep() to the end of your render
|
no matter what. You can add a sleep() to the end of your render
|
||||||
loop if you would like to yeild to other processes and you don't
|
loop if you would like to yield to other processes and you don't
|
||||||
care too much about the speed of your rendering loop. If you have
|
care too much about the speed of your rendering loop. If you have
|
||||||
Hardware that supports OpenGL (like a 3Dpro card, or GLint card)
|
Hardware that supports OpenGL (like a 3Dpro card, or GLint card)
|
||||||
then this should be less of a problem, since it won't be rendering
|
then this should be less of a problem, since it won't be rendering
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
cgtextures.com - free, even for commercial use. See the licensing conditions and the FAQ the site for mroe details.
|
cgtextures.com - free, even for commercial use. See the licensing conditions and the FAQ the site for more details.
|
||||||
Great source for free textures, btw!
|
Great source for free textures, btw!
|
|
@ -72,7 +72,7 @@ makes it reasonably easy to locate the offending field.
|
||||||
---------------------------------------------------------------------------------
|
---------------------------------------------------------------------------------
|
||||||
As mentioned above, floating-point inaccuracies between differently optimized
|
As mentioned above, floating-point inaccuracies between differently optimized
|
||||||
builds are not considered regressions and all float comparisons done by the test
|
builds are not considered regressions and all float comparisons done by the test
|
||||||
suite involve an epsilon to accomodate. However compiler settings that allow
|
suite involve an epsilon to accommodate. However compiler settings that allow
|
||||||
compilers to perform non-IEEE754 compliant optimizations can cause arbitrary
|
compilers to perform non-IEEE754 compliant optimizations can cause arbitrary
|
||||||
failures in the test suite. Even if the compiler is configured to be IEE754
|
failures in the test suite. Even if the compiler is configured to be IEE754
|
||||||
comformant, there is lots of code in assimp that leaves the compiler a choice
|
comformant, there is lots of code in assimp that leaves the compiler a choice
|
||||||
|
|
|
@ -1104,7 +1104,7 @@ int CDisplay::OnSetup(HTREEITEM p_hTreeItem)
|
||||||
return OnSetupTextureView(pcNew);
|
return OnSetupTextureView(pcNew);
|
||||||
}
|
}
|
||||||
|
|
||||||
// seach the node list
|
// search the node list
|
||||||
for (std::vector<NodeInfo>::iterator i = m_asNodes.begin(); i != m_asNodes.end();++i){
|
for (std::vector<NodeInfo>::iterator i = m_asNodes.begin(); i != m_asNodes.end();++i){
|
||||||
if (p_hTreeItem == (*i).hTreeItem) {
|
if (p_hTreeItem == (*i).hTreeItem) {
|
||||||
pcNew2 = &(*i);
|
pcNew2 = &(*i);
|
||||||
|
@ -1115,7 +1115,7 @@ int CDisplay::OnSetup(HTREEITEM p_hTreeItem)
|
||||||
return OnSetupNodeView(pcNew2);
|
return OnSetupNodeView(pcNew2);
|
||||||
}
|
}
|
||||||
|
|
||||||
// seach the material list
|
// search the material list
|
||||||
for (std::vector<MaterialInfo>::iterator i = m_asMaterials.begin();i != m_asMaterials.end();++i){
|
for (std::vector<MaterialInfo>::iterator i = m_asMaterials.begin();i != m_asMaterials.end();++i){
|
||||||
if (p_hTreeItem == (*i).hTreeItem){
|
if (p_hTreeItem == (*i).hTreeItem){
|
||||||
pcNew3 = &(*i);
|
pcNew3 = &(*i);
|
||||||
|
|
|
@ -605,7 +605,7 @@ void CMaterialManager::HMtoNMIfNecessary(
|
||||||
*piTextureOut = piTexture;
|
*piTextureOut = piTexture;
|
||||||
|
|
||||||
// Lock the input texture and try to determine its type.
|
// Lock the input texture and try to determine its type.
|
||||||
// Criterias:
|
// Criteria:
|
||||||
// - If r,g,b channel are identical it MUST be a height map
|
// - If r,g,b channel are identical it MUST be a height map
|
||||||
// - If one of the rgb channels is used and the others are empty it
|
// - If one of the rgb channels is used and the others are empty it
|
||||||
// must be a height map, too.
|
// must be a height map, too.
|
||||||
|
|
|
@ -194,7 +194,7 @@ enum EClickPos
|
||||||
{
|
{
|
||||||
// The click was inside the inner circle (x,y axis)
|
// The click was inside the inner circle (x,y axis)
|
||||||
EClickPos_Circle,
|
EClickPos_Circle,
|
||||||
// The click was inside one of tghe vertical snap-ins
|
// The click was inside one of the vertical snap-ins
|
||||||
EClickPos_CircleVert,
|
EClickPos_CircleVert,
|
||||||
// The click was inside onf of the horizontal snap-ins
|
// The click was inside onf of the horizontal snap-ins
|
||||||
EClickPos_CircleHor,
|
EClickPos_CircleHor,
|
||||||
|
|
|
@ -21,7 +21,7 @@ LOCAL_CPP_FEATURES := exceptions
|
||||||
# but next breaks blender and other importer
|
# but next breaks blender and other importer
|
||||||
# LOCAL_CFLAGS += -std=c++11
|
# LOCAL_CFLAGS += -std=c++11
|
||||||
|
|
||||||
# cant be disabled? rudamentary function?
|
# can't be disabled? rudamentary function?
|
||||||
# -DASSIMP_BUILD_NO_FLIPWINDING_PROCESS \
|
# -DASSIMP_BUILD_NO_FLIPWINDING_PROCESS \
|
||||||
#
|
#
|
||||||
DontBuildProcess = \
|
DontBuildProcess = \
|
||||||
|
|
Loading…
Reference in New Issue