UNPKG

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
"use strict"; 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;