Fix couple of stuff

This commit is contained in:
rdb 2008-12-29 15:45:17 +00:00
parent 82a071864c
commit 347216a3ac
2 changed files with 12 additions and 4 deletions

View File

@ -54,7 +54,7 @@ void DaeMaterials::add_material_instance(const FCDMaterialInstance* instance) {
nassertv(instance != NULL); nassertv(instance != NULL);
const string semantic (FROM_FSTRING(instance->GetSemantic())); const string semantic (FROM_FSTRING(instance->GetSemantic()));
if (_materials.count(semantic) > 0) { if (_materials.count(semantic) > 0) {
daeegg_cat.warning() << "Ignoring duplicate material with semantic" << semantic << endl; daeegg_cat.warning() << "Ignoring duplicate material with semantic " << semantic << endl;
return; return;
} }
_materials[semantic] = new DaeMaterial(); _materials[semantic] = new DaeMaterial();
@ -63,7 +63,11 @@ void DaeMaterials::add_material_instance(const FCDMaterialInstance* instance) {
for (size_t vib = 0; vib < instance->GetVertexInputBindingCount(); ++vib) { for (size_t vib = 0; vib < instance->GetVertexInputBindingCount(); ++vib) {
const FCDMaterialInstanceBindVertexInput* mivib = instance->GetVertexInputBinding(vib); const FCDMaterialInstanceBindVertexInput* mivib = instance->GetVertexInputBinding(vib);
assert(mivib != NULL); assert(mivib != NULL);
#if FCOLLADA_VERSION >= 0x00030005
_materials[semantic]->_uvsets[mivib->inputSet] = *mivib->semantic; _materials[semantic]->_uvsets[mivib->inputSet] = *mivib->semantic;
#else
_materials[semantic]->_uvsets[mivib->inputSet] = FROM_FSTRING(mivib->semantic);
#endif
} }
// Handle the material stuff // Handle the material stuff

View File

@ -36,7 +36,6 @@
#include "FCDocument/FCDGeometry.h" #include "FCDocument/FCDGeometry.h"
#include "FCDocument/FCDGeometryInstance.h" #include "FCDocument/FCDGeometryInstance.h"
#include "FCDocument/FCDGeometryPolygons.h" #include "FCDocument/FCDGeometryPolygons.h"
#include "FCDocument/FCDGeometryPolygonsInput.h"
#include "FCDocument/FCDGeometrySource.h" #include "FCDocument/FCDGeometrySource.h"
#include "FCDocument/FCDSkinController.h" #include "FCDocument/FCDSkinController.h"
#include "FCDocument/FCDController.h" #include "FCDocument/FCDController.h"
@ -46,6 +45,9 @@
#include "FCDocument/FCDExtra.h" #include "FCDocument/FCDExtra.h"
#include "FCDocument/FCDEffect.h" #include "FCDocument/FCDEffect.h"
#include "FCDocument/FCDEffectStandard.h" #include "FCDocument/FCDEffectStandard.h"
#if FCOLLADA_VERSION >= 0x00030005
#include "FCDocument/FCDGeometryPolygonsInput.h"
#endif
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
// Function: DAEToEggConverter::Constructor // Function: DAEToEggConverter::Constructor
@ -136,13 +138,15 @@ convert_file(const Filename &filename) {
// Read the file // Read the file
FCollada::Initialize(); FCollada::Initialize();
_document = FCollada::LoadDocument(filename.to_os_specific().c_str()); _document = FCollada::LoadDocument(filename.to_os_specific().c_str());
if(_document == NULL) { if (_document == NULL) {
daeegg_cat.error() << "Failed to load document: " << _error_handler.GetErrorString() << endl; daeegg_cat.error() << "Failed to load document: " << _error_handler.GetErrorString() << endl;
FCollada::Release(); FCollada::Release();
return false; return false;
} }
// Make sure the file uses consistent coordinate system and length // Make sure the file uses consistent coordinate system and length
if (_document->GetAsset() != NULL) {
FCDocumentTools::StandardizeUpAxisAndLength(_document); FCDocumentTools::StandardizeUpAxisAndLength(_document);
}
_table = new EggTable(); _table = new EggTable();
_table->set_table_type(EggTable::TT_table); _table->set_table_type(EggTable::TT_table);