Source: sensors/TFAxes.js

/**
 * @fileOverview
 * @author Jihoon Lee - jihoon.lee@kakaobrain.com
 */
/**
 * An Axes node can be used to display the axis of a particular coordinate frame.
 *
 * @constructor
 * @param options - object with following keys:
 *
 *   * frame_id - the frame id to visualize axes
 *   * tfClient - the TF client handle to use
 *   * shaftRadius (optional) - the radius of the shaft to render
 *   * headRadius (optional) - the radius of the head to render
 *   * headLength (optional) - the length of the head to render
 *   * scale (optional) - the scale of the frame (defaults to 1.0)
 *   * lineType (optional) - the line type for the axes. Supported line types:
 *                           'dashed' and 'full'.
 *   * lineDashLength (optional) - the length of the dashes, relative to the length of the axis.
 *                                 Maximum value is 1, which means the dash length is
 *                                 equal to the length of the axis. Parameter only applies when
 *                                 lineType is set to dashed.
 */
ROS3D.TFAxes = function(options) {
  THREE.Object3D.call(this);
  var that = this;
  options = options || {};

  this.frame_id = options.frame_id;
  this.tfClient = options.tfClient;
  this.rootObject = options.rootObject || new THREE.Object3D();
  this.axes = new ROS3D.Axes(
    {
      shaftRadius: options.shaftRadius || 0.025,
      headRadius: options.headRaidus || 0.07,
      headLength: options.headLength || 0.2,
      scale: options.scale || 1.0,
      lineType: options.lineType || 'full',
      lineDashLength: options.lineDashLength || 0.1
    });

  this.sn = new ROS3D.SceneNode({
    frameID: this.frame_id,
    tfClient : this.tfClient,
    object : this.axes
  });

  this.rootObject.add(this.sn);

};


ROS3D.TFAxes.prototype.__proto__ = THREE.Object3D.prototype;