Merge branch 'master' into Koekto-code-patch-1
commit
173fad738f
|
@ -2057,7 +2057,7 @@ void ColladaParser::ReadSceneNode(XmlNode &node, Node *pNode) {
|
||||||
XmlParser::getStdStrAttribute(currentNode, "id", child->mID);
|
XmlParser::getStdStrAttribute(currentNode, "id", child->mID);
|
||||||
}
|
}
|
||||||
if (XmlParser::hasAttribute(currentNode, "sid")) {
|
if (XmlParser::hasAttribute(currentNode, "sid")) {
|
||||||
XmlParser::getStdStrAttribute(currentNode, "id", child->mSID);
|
XmlParser::getStdStrAttribute(currentNode, "sid", child->mSID);
|
||||||
}
|
}
|
||||||
if (XmlParser::hasAttribute(currentNode, "name")) {
|
if (XmlParser::hasAttribute(currentNode, "name")) {
|
||||||
XmlParser::getStdStrAttribute(currentNode, "name", child->mName);
|
XmlParser::getStdStrAttribute(currentNode, "name", child->mName);
|
||||||
|
|
|
@ -368,7 +368,9 @@ void DXFImporter::ExpandBlockReferences(DXF::Block& bl,const DXF::BlockMap& bloc
|
||||||
// XXX this would be the place to implement recursive expansion if needed.
|
// XXX this would be the place to implement recursive expansion if needed.
|
||||||
const DXF::Block& bl_src = *(*it).second;
|
const DXF::Block& bl_src = *(*it).second;
|
||||||
|
|
||||||
for (std::shared_ptr<const DXF::PolyLine> pl_in : bl_src.lines) {
|
const size_t size = bl_src.lines.size(); // the size may increase in the loop
|
||||||
|
for (size_t i = 0; i < size; ++i) {
|
||||||
|
std::shared_ptr<const DXF::PolyLine> pl_in = bl_src.lines[i];
|
||||||
if (!pl_in) {
|
if (!pl_in) {
|
||||||
ASSIMP_LOG_ERROR("DXF: PolyLine instance is nullptr, skipping.");
|
ASSIMP_LOG_ERROR("DXF: PolyLine instance is nullptr, skipping.");
|
||||||
continue;
|
continue;
|
||||||
|
|
|
@ -313,6 +313,9 @@ void LWSImporter::SetupNodeName(aiNode *nd, LWS::NodeDesc &src) {
|
||||||
std::string::size_type t = src.path.substr(s).find_last_of('.');
|
std::string::size_type t = src.path.substr(s).find_last_of('.');
|
||||||
|
|
||||||
nd->mName.length = ::ai_snprintf(nd->mName.data, MAXLEN, "%s_(%08X)", src.path.substr(s).substr(0, t).c_str(), combined);
|
nd->mName.length = ::ai_snprintf(nd->mName.data, MAXLEN, "%s_(%08X)", src.path.substr(s).substr(0, t).c_str(), combined);
|
||||||
|
if (nd->mName.length > MAXLEN) {
|
||||||
|
nd->mName.length = MAXLEN;
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -136,7 +136,9 @@ void NDOImporter::InternReadFile( const std::string& pFile,
|
||||||
ASSIMP_LOG_INFO("NDO file format is 1.2");
|
ASSIMP_LOG_INFO("NDO file format is 1.2");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
ASSIMP_LOG_WARN( "Unrecognized nendo file format version, continuing happily ... :", (head+6));
|
char buff[4] = {0};
|
||||||
|
memcpy(buff, head+6, 3);
|
||||||
|
ASSIMP_LOG_WARN( "Unrecognized nendo file format version, continuing happily ... :", buff);
|
||||||
}
|
}
|
||||||
|
|
||||||
reader.IncPtr(2); /* skip flags */
|
reader.IncPtr(2); /* skip flags */
|
||||||
|
|
|
@ -126,17 +126,21 @@ void ObjFileMtlImporter::load() {
|
||||||
if (*m_DataIt == 'a') // Ambient color
|
if (*m_DataIt == 'a') // Ambient color
|
||||||
{
|
{
|
||||||
++m_DataIt;
|
++m_DataIt;
|
||||||
getColorRGBA(&m_pModel->m_pCurrentMaterial->ambient);
|
if (m_pModel->m_pCurrentMaterial != nullptr)
|
||||||
|
getColorRGBA(&m_pModel->m_pCurrentMaterial->ambient);
|
||||||
} else if (*m_DataIt == 'd') {
|
} else if (*m_DataIt == 'd') {
|
||||||
// Diffuse color
|
// Diffuse color
|
||||||
++m_DataIt;
|
++m_DataIt;
|
||||||
getColorRGBA(&m_pModel->m_pCurrentMaterial->diffuse);
|
if (m_pModel->m_pCurrentMaterial != nullptr)
|
||||||
|
getColorRGBA(&m_pModel->m_pCurrentMaterial->diffuse);
|
||||||
} else if (*m_DataIt == 's') {
|
} else if (*m_DataIt == 's') {
|
||||||
++m_DataIt;
|
++m_DataIt;
|
||||||
getColorRGBA(&m_pModel->m_pCurrentMaterial->specular);
|
if (m_pModel->m_pCurrentMaterial != nullptr)
|
||||||
|
getColorRGBA(&m_pModel->m_pCurrentMaterial->specular);
|
||||||
} else if (*m_DataIt == 'e') {
|
} else if (*m_DataIt == 'e') {
|
||||||
++m_DataIt;
|
++m_DataIt;
|
||||||
getColorRGBA(&m_pModel->m_pCurrentMaterial->emissive);
|
if (m_pModel->m_pCurrentMaterial != nullptr)
|
||||||
|
getColorRGBA(&m_pModel->m_pCurrentMaterial->emissive);
|
||||||
}
|
}
|
||||||
m_DataIt = skipLine<DataArrayIt>(m_DataIt, m_DataItEnd, m_uiLine);
|
m_DataIt = skipLine<DataArrayIt>(m_DataIt, m_DataItEnd, m_uiLine);
|
||||||
} break;
|
} break;
|
||||||
|
@ -145,13 +149,15 @@ void ObjFileMtlImporter::load() {
|
||||||
// Material transmission color
|
// Material transmission color
|
||||||
if (*m_DataIt == 'f') {
|
if (*m_DataIt == 'f') {
|
||||||
++m_DataIt;
|
++m_DataIt;
|
||||||
getColorRGBA(&m_pModel->m_pCurrentMaterial->transparent);
|
if (m_pModel->m_pCurrentMaterial != nullptr)
|
||||||
|
getColorRGBA(&m_pModel->m_pCurrentMaterial->transparent);
|
||||||
} else if (*m_DataIt == 'r') {
|
} else if (*m_DataIt == 'r') {
|
||||||
// Material transmission alpha value
|
// Material transmission alpha value
|
||||||
++m_DataIt;
|
++m_DataIt;
|
||||||
ai_real d;
|
ai_real d;
|
||||||
getFloatValue(d);
|
getFloatValue(d);
|
||||||
m_pModel->m_pCurrentMaterial->alpha = static_cast<ai_real>(1.0) - d;
|
if (m_pModel->m_pCurrentMaterial != nullptr)
|
||||||
|
m_pModel->m_pCurrentMaterial->alpha = static_cast<ai_real>(1.0) - d;
|
||||||
}
|
}
|
||||||
m_DataIt = skipLine<DataArrayIt>(m_DataIt, m_DataItEnd, m_uiLine);
|
m_DataIt = skipLine<DataArrayIt>(m_DataIt, m_DataItEnd, m_uiLine);
|
||||||
} break;
|
} break;
|
||||||
|
@ -162,7 +168,8 @@ void ObjFileMtlImporter::load() {
|
||||||
} else {
|
} else {
|
||||||
// Alpha value
|
// Alpha value
|
||||||
++m_DataIt;
|
++m_DataIt;
|
||||||
getFloatValue(m_pModel->m_pCurrentMaterial->alpha);
|
if (m_pModel->m_pCurrentMaterial != nullptr)
|
||||||
|
getFloatValue(m_pModel->m_pCurrentMaterial->alpha);
|
||||||
m_DataIt = skipLine<DataArrayIt>(m_DataIt, m_DataItEnd, m_uiLine);
|
m_DataIt = skipLine<DataArrayIt>(m_DataIt, m_DataItEnd, m_uiLine);
|
||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
|
@ -173,11 +180,13 @@ void ObjFileMtlImporter::load() {
|
||||||
switch (*m_DataIt) {
|
switch (*m_DataIt) {
|
||||||
case 's': // Specular exponent
|
case 's': // Specular exponent
|
||||||
++m_DataIt;
|
++m_DataIt;
|
||||||
getFloatValue(m_pModel->m_pCurrentMaterial->shineness);
|
if (m_pModel->m_pCurrentMaterial != nullptr)
|
||||||
|
getFloatValue(m_pModel->m_pCurrentMaterial->shineness);
|
||||||
break;
|
break;
|
||||||
case 'i': // Index Of refraction
|
case 'i': // Index Of refraction
|
||||||
++m_DataIt;
|
++m_DataIt;
|
||||||
getFloatValue(m_pModel->m_pCurrentMaterial->ior);
|
if (m_pModel->m_pCurrentMaterial != nullptr)
|
||||||
|
getFloatValue(m_pModel->m_pCurrentMaterial->ior);
|
||||||
break;
|
break;
|
||||||
case 'e': // New material
|
case 'e': // New material
|
||||||
createMaterial();
|
createMaterial();
|
||||||
|
@ -197,23 +206,28 @@ void ObjFileMtlImporter::load() {
|
||||||
{
|
{
|
||||||
case 'r':
|
case 'r':
|
||||||
++m_DataIt;
|
++m_DataIt;
|
||||||
getFloatValue(m_pModel->m_pCurrentMaterial->roughness);
|
if (m_pModel->m_pCurrentMaterial != nullptr)
|
||||||
|
getFloatValue(m_pModel->m_pCurrentMaterial->roughness);
|
||||||
break;
|
break;
|
||||||
case 'm':
|
case 'm':
|
||||||
++m_DataIt;
|
++m_DataIt;
|
||||||
getFloatValue(m_pModel->m_pCurrentMaterial->metallic);
|
if (m_pModel->m_pCurrentMaterial != nullptr)
|
||||||
|
getFloatValue(m_pModel->m_pCurrentMaterial->metallic);
|
||||||
break;
|
break;
|
||||||
case 's':
|
case 's':
|
||||||
++m_DataIt;
|
++m_DataIt;
|
||||||
getColorRGBA(m_pModel->m_pCurrentMaterial->sheen);
|
if (m_pModel->m_pCurrentMaterial != nullptr)
|
||||||
|
getColorRGBA(m_pModel->m_pCurrentMaterial->sheen);
|
||||||
break;
|
break;
|
||||||
case 'c':
|
case 'c':
|
||||||
++m_DataIt;
|
++m_DataIt;
|
||||||
if (*m_DataIt == 'r') {
|
if (*m_DataIt == 'r') {
|
||||||
++m_DataIt;
|
++m_DataIt;
|
||||||
getFloatValue(m_pModel->m_pCurrentMaterial->clearcoat_roughness);
|
if (m_pModel->m_pCurrentMaterial != nullptr)
|
||||||
|
getFloatValue(m_pModel->m_pCurrentMaterial->clearcoat_roughness);
|
||||||
} else {
|
} else {
|
||||||
getFloatValue(m_pModel->m_pCurrentMaterial->clearcoat_thickness);
|
if (m_pModel->m_pCurrentMaterial != nullptr)
|
||||||
|
getFloatValue(m_pModel->m_pCurrentMaterial->clearcoat_thickness);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -232,7 +246,8 @@ void ObjFileMtlImporter::load() {
|
||||||
case 'i': // Illumination model
|
case 'i': // Illumination model
|
||||||
{
|
{
|
||||||
m_DataIt = getNextToken<DataArrayIt>(m_DataIt, m_DataItEnd);
|
m_DataIt = getNextToken<DataArrayIt>(m_DataIt, m_DataItEnd);
|
||||||
getIlluminationModel(m_pModel->m_pCurrentMaterial->illumination_model);
|
if (m_pModel->m_pCurrentMaterial != nullptr)
|
||||||
|
getIlluminationModel(m_pModel->m_pCurrentMaterial->illumination_model);
|
||||||
m_DataIt = skipLine<DataArrayIt>(m_DataIt, m_DataItEnd, m_uiLine);
|
m_DataIt = skipLine<DataArrayIt>(m_DataIt, m_DataItEnd, m_uiLine);
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
|
@ -240,7 +255,8 @@ void ObjFileMtlImporter::load() {
|
||||||
{
|
{
|
||||||
++m_DataIt;
|
++m_DataIt;
|
||||||
getFloatValue(m_pModel->m_pCurrentMaterial->anisotropy);
|
getFloatValue(m_pModel->m_pCurrentMaterial->anisotropy);
|
||||||
m_DataIt = skipLine<DataArrayIt>(m_DataIt, m_DataItEnd, m_uiLine);
|
if (m_pModel->m_pCurrentMaterial != nullptr)
|
||||||
|
m_DataIt = skipLine<DataArrayIt>(m_DataIt, m_DataItEnd, m_uiLine);
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
default: {
|
default: {
|
||||||
|
|
|
@ -458,7 +458,8 @@ void ObjFileParser::getFace(aiPrimitiveType type) {
|
||||||
iPos = 0;
|
iPos = 0;
|
||||||
} else {
|
} else {
|
||||||
//OBJ USES 1 Base ARRAYS!!!!
|
//OBJ USES 1 Base ARRAYS!!!!
|
||||||
const int iVal(::atoi(&(*m_DataIt)));
|
std::string number(&(*m_DataIt), m_DataItEnd - m_DataIt);
|
||||||
|
const int iVal(::atoi(number.c_str()));
|
||||||
|
|
||||||
// increment iStep position based off of the sign and # of digits
|
// increment iStep position based off of the sign and # of digits
|
||||||
int tmp = iVal;
|
int tmp = iVal;
|
||||||
|
|
|
@ -4941,7 +4941,7 @@ static int stbi__parse_png_file(stbi__png *z, int scan, int req_comp)
|
||||||
{
|
{
|
||||||
stbi_uc palette[1024], pal_img_n=0;
|
stbi_uc palette[1024], pal_img_n=0;
|
||||||
stbi_uc has_trans=0, tc[3]={0};
|
stbi_uc has_trans=0, tc[3]={0};
|
||||||
stbi__uint16 tc16[3];
|
stbi__uint16 tc16[3]={0};
|
||||||
stbi__uint32 ioff=0, idata_limit=0, i, pal_len=0;
|
stbi__uint32 ioff=0, idata_limit=0, i, pal_len=0;
|
||||||
int first=1,k,interlace=0, color=0, is_iphone=0;
|
int first=1,k,interlace=0, color=0, is_iphone=0;
|
||||||
stbi__context *s = z->s;
|
stbi__context *s = z->s;
|
||||||
|
|
Loading…
Reference in New Issue