After passing an integer from Java to JavaScript, I am attempting to use the value to adjust the altitude of an object.
I included the variable in RelativeLocation
var location = new AR.RelativeLocation(null, 8, 0, a);
The issue arises when it disregards the passed value of 10 and defaults to a value of 0. However, I can confirm that the correct value is being passed with this code:
var e = document.getElementById('loadingMessage').innerHTML = "Altitude: " + a;
, which displays Altitude: 10.
JavaScript code:
var World = {
loaded: false,
rotating: false,
init: function initFn() {
this.createModelAtLocation();
},
createModelAtLocation: function createModelAtLocationFn() {
/*
First a location where the model should be displayed will be defined. This location will be relative to the user.
*/
var location = new AR.RelativeLocation(null, 8, 0, a);
/*
Next, the model object is loaded.
*/
var modelArrow = new AR.Model("assets/arrow.wt3", {
onLoaded: this.worldLoaded,
scale: {
x: 0.005,
y: 0.005,
z: 0.003
},
rotate: {
x: 0.0,
y: 90.0,
z: 0.0
},
translate: {
x: 0,
y: 0,
z: 0
}
});
var indicatorImage = new AR.ImageResource("assets/indi.png");
var indicatorDrawable = new AR.ImageDrawable(indicatorImage, 0.1, {
verticalAnchor: AR.CONST.VERTICAL_ANCHOR.TOP
});
/*
Combining the location and 3D model to an AR.GeoObject.
*/
var obj = new AR.GeoObject(location, {
drawables: {
cam: [modelArrow],
indicator: [indicatorDrawable]
}
});
},
worldLoaded: function worldLoadedFn() {
World.loaded = true;
var e = document.getElementById('loadingMessage').innerHTML = "Altitude: " + a;
e.parentElement.removeChild(e);
}
};
var a = 0;
var altitude = 0;
function setAltitude(altitude){
a = altitude;
}
World.init();
Following Alex's response:
Currently, both the object and altitude are not displaying; unsure if something is missing.
var World = {
location: null,
loaded: false,
rotating: false,
init: function initFn() {
this.createModelAtLocation();
},
createModelAtLocation: function createModelAtLocationFn() {
/*
First a location where the model should be displayed will be defined. This location will be relativ to the user.
*/
//var location = new AR.RelativeLocation(null, 8, 0, a);
World.location = new AR.RelativeLocation(null, 8, 0, a);
/*
Next the model object is loaded.
*/
var modelArrow = new AR.Model("assets/arrow.wt3", {
onLoaded: this.worldLoaded,
scale: {
x: 0.005,
y: 0.005,
z: 0.003
},
rotate: {
x: 0.0,
y: 90.0,
z: 0.0
},
translate: {
x: 0,
y: 0,
z: 0
}
});
var indicatorImage = new AR.ImageResource("assets/indi.png");
var indicatorDrawable = new AR.ImageDrawable(indicatorImage, 0.1, {
verticalAnchor: AR.CONST.VERTICAL_ANCHOR.TOP
});
/*
Putting it all together the location and 3D model is added to an AR.GeoObject.
*/
var obj = new AR.GeoObject(location, {
drawables: {
cam: [modelArrow],
indicator: [indicatorDrawable]
}
});
},
worldLoaded: function worldLoadedFn() {
World.loaded = true;
var e = document.getElementById('loadingMessage').innerHTML = "Altitude: " + a;
e.parentElement.removeChild(e);
}
};
var a = 0;
var altitude = 0;
function setAltitude(altitude){
//a = altitude;
//World.location.altitudeDelta = altitude;
World.location.a = altitude;
}
World.init();