@bezlepkin/nativescript-ar
Version:
NativeScript Augmented Reality plugin. ARKit on iOS and (with the help of Sceneform) ARCore on Android.
35 lines (34 loc) • 1.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ARImage = void 0;
const core_1 = require("@nativescript/core");
const arcommon_1 = require("./arcommon");
const pixelsPerMeter = 500;
class ARImage extends arcommon_1.ARCommonNode {
static create(options, renderer) {
if (typeof options.image === "string") {
if (options.image.indexOf("://") >= 0) {
return core_1.ImageSource.fromUrl(options.image).then(function (image) {
options.image = image;
return ARImage.create(options, renderer);
});
}
options.image = core_1.ImageSource.fromFileOrResourceSync(options.image);
}
return new Promise(async (resolve, reject) => {
const image = options.image.ios;
if (!options.dimensions) {
options.dimensions = {
x: image.size.width / pixelsPerMeter,
y: image.size.height / pixelsPerMeter
};
}
const dimensions = options.dimensions;
const materialPlane = SCNPlane.planeWithWidthHeight(dimensions.x, dimensions.y);
materialPlane.firstMaterial.diffuse.contents = image;
materialPlane.firstMaterial.doubleSided = true;
resolve(new ARImage(options, SCNNode.nodeWithGeometry(materialPlane), renderer));
});
}
}
exports.ARImage = ARImage;