mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-08-04 00:13:10 +02:00
Tidy model data handling
This commit is contained in:
parent
f39aed37b6
commit
0c589b73c4
1 changed files with 20 additions and 18 deletions
|
@ -282,6 +282,7 @@ var modelUploader = (function () {
|
|||
fbxBuffer,
|
||||
svoBuffer,
|
||||
mapping,
|
||||
geometry,
|
||||
NAME_FIELD = "name",
|
||||
SCALE_FIELD = "scale",
|
||||
FILENAME_FIELD = "filename",
|
||||
|
@ -290,14 +291,22 @@ var modelUploader = (function () {
|
|||
PITCH_FIELD = "pitch",
|
||||
YAW_FIELD = "yaw",
|
||||
ROLL_FIELD = "roll",
|
||||
MAX_TEXTURE_SIZE = 1024,
|
||||
geometry;
|
||||
MAX_TEXTURE_SIZE = 1024;
|
||||
|
||||
function error(message) {
|
||||
Window.alert(message);
|
||||
print(message);
|
||||
}
|
||||
|
||||
function resetDataObjects() {
|
||||
fstBuffer = null;
|
||||
fbxBuffer = null;
|
||||
svoBuffer = null;
|
||||
mapping = {};
|
||||
geometry = {};
|
||||
geometry.textures = [];
|
||||
}
|
||||
|
||||
function readFile(filename) {
|
||||
var url = "file:///" + filename,
|
||||
req = new XMLHttpRequest();
|
||||
|
@ -318,7 +327,6 @@ var modelUploader = (function () {
|
|||
|
||||
function readMapping(fstBuffer) {
|
||||
var dv = new DataView(fstBuffer.buffer),
|
||||
mapping = {},
|
||||
lines,
|
||||
line,
|
||||
values,
|
||||
|
@ -342,13 +350,10 @@ var modelUploader = (function () {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
return mapping;
|
||||
}
|
||||
|
||||
function readGeometry(fbxBuffer) {
|
||||
var geometry,
|
||||
textures,
|
||||
var textures,
|
||||
view,
|
||||
index,
|
||||
EOF;
|
||||
|
@ -356,8 +361,6 @@ var modelUploader = (function () {
|
|||
// Reference:
|
||||
// http://code.blender.org/index.php/2013/08/fbx-binary-file-format-specification/
|
||||
|
||||
geometry = {};
|
||||
geometry.textures = [];
|
||||
textures = {};
|
||||
view = new DataView(fbxBuffer.buffer);
|
||||
EOF = false;
|
||||
|
@ -458,8 +461,6 @@ var modelUploader = (function () {
|
|||
readTextFBX();
|
||||
|
||||
}
|
||||
|
||||
return geometry;
|
||||
}
|
||||
|
||||
function readModel() {
|
||||
|
@ -467,11 +468,6 @@ var modelUploader = (function () {
|
|||
|
||||
print("Reading model file: " + modelFile);
|
||||
|
||||
fstBuffer = null;
|
||||
fbxBuffer = null;
|
||||
svoBuffer = null;
|
||||
mapping = {};
|
||||
|
||||
if (modelFile.toLowerCase().slice(-4) === ".svo") {
|
||||
svoBuffer = readFile(modelFile);
|
||||
if (svoBuffer === null) {
|
||||
|
@ -485,7 +481,7 @@ var modelUploader = (function () {
|
|||
if (fstBuffer === null) {
|
||||
return false;
|
||||
}
|
||||
mapping = readMapping(fstBuffer);
|
||||
readMapping(fstBuffer);
|
||||
if (mapping.hasOwnProperty(FILENAME_FIELD)) {
|
||||
fbxFilename = modelFile.path() + "\\" + mapping[FILENAME_FIELD];
|
||||
} else {
|
||||
|
@ -507,7 +503,7 @@ var modelUploader = (function () {
|
|||
return false;
|
||||
}
|
||||
|
||||
geometry = readGeometry(fbxBuffer);
|
||||
readGeometry(fbxBuffer);
|
||||
|
||||
if (mapping.hasOwnProperty(SCALE_FIELD)) {
|
||||
mapping[SCALE_FIELD] = parseFloat(mapping[SCALE_FIELD]);
|
||||
|
@ -697,23 +693,29 @@ var modelUploader = (function () {
|
|||
|
||||
modelFile = file;
|
||||
|
||||
resetDataObjects();
|
||||
|
||||
// Read model content ...
|
||||
if (!readModel()) {
|
||||
resetDataObjects();
|
||||
return;
|
||||
}
|
||||
|
||||
// Set model properties ...
|
||||
if (!setProperties()) {
|
||||
resetDataObjects();
|
||||
return;
|
||||
}
|
||||
|
||||
// Put model in HTTP message ...
|
||||
if (!createHttpMessage()) {
|
||||
resetDataObjects();
|
||||
return;
|
||||
}
|
||||
|
||||
// Send model to High Fidelity ...
|
||||
sendToHighFidelity(url, callback);
|
||||
resetDataObjects();
|
||||
};
|
||||
|
||||
return that;
|
||||
|
|
Loading…
Reference in a new issue