nativescript-ar
Version:
NativeScript Augmented Reality plugin. ARKit on iOS and (with the help of Sceneform) ARCore on Android.
44 lines (43 loc) • 1.89 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var image_source_1 = require("tns-core-modules/image-source");
var arcommon_1 = require("./arcommon");
var pixelsPerMeter = 500;
var ARImage = (function (_super) {
__extends(ARImage, _super);
function ARImage() {
return _super !== null && _super.apply(this, arguments) || this;
}
ARImage.create = function (options, renderer) {
var _this = this;
if (typeof options.image === "string") {
if (options.image.indexOf("://") >= 0) {
return image_source_1.fromUrl(options.image).then(function (image) {
options.image = image;
return ARImage.create(options, renderer);
});
}
options.image = image_source_1.fromFileOrResource(options.image);
}
return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
var image, dimensions, materialPlane;
return __generator(this, function (_a) {
image = options.image.ios;
if (!options.dimensions) {
options.dimensions = {
x: image.size.width / pixelsPerMeter,
y: image.size.height / pixelsPerMeter
};
}
dimensions = options.dimensions;
materialPlane = SCNPlane.planeWithWidthHeight(dimensions.x, dimensions.y);
materialPlane.firstMaterial.diffuse.contents = image;
materialPlane.firstMaterial.doubleSided = true;
resolve(new ARImage(options, SCNNode.nodeWithGeometry(materialPlane), renderer));
return [2];
});
}); });
};
return ARImage;
}(arcommon_1.ARCommonNode));
exports.ARImage = ARImage;