/**
* @fileOverview
* @author Russell Toris - rctoris@wpi.edu
*/
var ROS2D = ROS2D || {
/**
* @description Library version
*/
REVISION : '0.10.0'
};
// convert the given global Stage coordinates to ROS coordinates
createjs.Stage.prototype.globalToRos = function(x, y) {
var rosX = (x - this.x) / this.scaleX;
var rosY = (this.y - y) / this.scaleY;
return new ROSLIB.Vector3({
x : rosX,
y : rosY
});
};
// convert the given ROS coordinates to global Stage coordinates
createjs.Stage.prototype.rosToGlobal = function(pos) {
var x = pos.x * this.scaleX + this.x;
var y = pos.y * this.scaleY + this.y;
return {
x : x,
y : y
};
};
// convert a ROS quaternion to theta in degrees
createjs.Stage.prototype.rosQuaternionToGlobalTheta = function(orientation) {
// See https://en.wikipedia.org/wiki/Conversion_between_quaternions_and_Euler_angles#Rotation_matrices
// here we use [x y z] = R * [1 0 0]
var q0 = orientation.w;
var q1 = orientation.x;
var q2 = orientation.y;
var q3 = orientation.z;
// Canvas rotation is clock wise and in degrees
return -Math.atan2(2 * (q0 * q3 + q1 * q2), 1 - 2 * (q2 * q2 + q3 * q3)) * 180.0 / Math.PI;
};