nativescript-ar
Version:
NativeScript Augmented Reality plugin. ARKit on iOS and (with the help of Sceneform) ARCore on Android.
49 lines (48 loc) • 2.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var utils = require("tns-core-modules/utils/utils");
var arcommon_1 = require("./arcommon");
var arcommongeometry_1 = require("./arcommongeometry");
var ARModel = (function (_super) {
__extends(ARModel, _super);
function ARModel() {
return _super !== null && _super.apply(this, arguments) || this;
}
ARModel.create = function (options, fragment) {
return new Promise(function (resolve, reject) {
var model;
var context = utils.ad.getApplicationContext();
if (options.name.indexOf(".glb") > 0 || options.name.indexOf(".gltf") > 0) {
model = ARModel.getGLTFSource(options.name);
}
else {
model = android.net.Uri.parse(options.name);
}
com.google.ar.sceneform.rendering.ModelRenderable.builder()
.setSource(context, model)
.build()
.thenAccept(new java.util.function.Consumer({
accept: function (renderable) {
var transformableNode = arcommon_1.ARCommonNode.createNode(options, fragment);
transformableNode.setRenderable(renderable);
resolve(new ARModel(options, transformableNode));
}
}))
.exceptionally(new java.util.function.Function({
apply: function (error) {
console.error("failed loading '" + options.name + "': " + error);
reject(error);
}
}));
});
};
ARModel.getGLTFSource = function (asset) {
var context = utils.ad.getApplicationContext();
var type = (asset.indexOf(".glb") > 0)
? com.google.ar.sceneform.assets.RenderableSource.SourceType.GLB
: com.google.ar.sceneform.assets.RenderableSource.SourceType.GLTF2;
return com.google.ar.sceneform.assets.RenderableSource.builder().setSource(context, android.net.Uri.parse(asset), type).build();
};
return ARModel;
}(arcommongeometry_1.ARCommonGeometryNode));
exports.ARModel = ARModel;