Adding support for loading obj.gz files in ModelCache.

This commit is contained in:
1P-Cusack 2017-06-21 18:50:39 -04:00
parent 8e1cf763e3
commit 781e2f409f

View file

@ -20,6 +20,8 @@
#include <QThreadPool> #include <QThreadPool>
#include <Gzip.h>
#include "ModelNetworkingLogging.h" #include "ModelNetworkingLogging.h"
#include <Trace.h> #include <Trace.h>
#include <StatTracker.h> #include <StatTracker.h>
@ -171,7 +173,9 @@ void GeometryReader::run() {
QString urlname = _url.path().toLower(); QString urlname = _url.path().toLower();
if (!urlname.isEmpty() && !_url.path().isEmpty() && if (!urlname.isEmpty() && !_url.path().isEmpty() &&
(_url.path().toLower().endsWith(".fbx") || _url.path().toLower().endsWith(".obj"))) { (_url.path().toLower().endsWith(".fbx") ||
_url.path().toLower().endsWith(".obj") ||
_url.path().toLower().endsWith(".gz"))) {
FBXGeometry::Pointer fbxGeometry; FBXGeometry::Pointer fbxGeometry;
if (_url.path().toLower().endsWith(".fbx")) { if (_url.path().toLower().endsWith(".fbx")) {
@ -181,7 +185,12 @@ void GeometryReader::run() {
} }
} else if (_url.path().toLower().endsWith(".obj")) { } else if (_url.path().toLower().endsWith(".obj")) {
fbxGeometry.reset(OBJReader().readOBJ(_data, _mapping, _combineParts, _url)); fbxGeometry.reset(OBJReader().readOBJ(_data, _mapping, _combineParts, _url));
} else { } else if (_url.path().toLower().endsWith(".gz")) {
QByteArray uncompressedData;
if (gunzip(_data, uncompressedData)){
fbxGeometry.reset(OBJReader().readOBJ(uncompressedData, _mapping, _combineParts, _url));
}
} else {
throw QString("unsupported format"); throw QString("unsupported format");
} }