BabylonJS - common pivot

HTML

<script src="https://rawgithub.com/BabylonJS/Babylon.js/v1.8.5/babylon.1.8.5.js"></script>
<button id="translate">Translate common pivot</button>
<button id="rotate">Rotate common pivot</button>
<div id="rootDiv">
  <canvas id="renderCanvas"></canvas>
  <canvas id="canvas_2D"></canvas>
</div>

CSS

html,
body,
div,
canvas {
  width: 100%;
  height: 100%;
  padding: 0;
  margin: 0;
  overflow: hidden;
}

button {
  height: 20px
}

#canvas_2D {
  position: absolute;
  top: 20px;
  pointer-events: none;
}

JavaScript

/// BABYLON.CommonPivot ; need to be improved for sure this it doesn't take
/// into account parents of its meshes
(function() {

  BABYLON.CommonPivot = function() {};

  BABYLON.CommonPivot.prototype._meshes = [];
  BABYLON.CommonPivot.prototype._position = BABYLON.Vector3.Zero();
  BABYLON.CommonPivot.prototype._rotation = BABYLON.Vector3.Zero();
  BABYLON.CommonPivot.prototype._scaling = new BABYLON.Vector3(1, 1, 1);

  BABYLON.CommonPivot.prototype.add = function(m, pivotMatrix) {
    this._meshes.push(m);
    m.position.x = this._position.x;
    m.position.y = this._position.y;
    m.position.z = this._position.z;
    m.rotation.x = this._rotation.x;
    m.rotation.y = this._rotation.y;
    m.rotation.z = this._rotation.z;
    m.scaling.x = this._scaling.x;
    m.scaling.y = this._scaling.y;
    m.scaling.z = this._scaling.z;
    m.setPivotMatrix(pivotMatrix);
  };

  BABYLON.CommonPivot.prototype.positionX = function(x) {
    for (var i in this._meshes) {
      this._meshes[i].position.x = x;
    }
    this._position.x = x;
  };

  BABYLON.CommonPivot.prototype.positionY = function(y) {
    for (var i in this._meshes) {
      this._meshes[i].position.y = y;
    }
    this._position.y = y;
  };

  BABYLON.CommonPivot.prototype.positionZ = function(z) {
    for (var i in this._meshes) {
      this._meshes[i].position.z = z;
    }
    this._position.z = z;
  };

  BABYLON.CommonPivot.prototype.rotationX = function(x) {
    for (var i in this._meshes) {
      this._meshes[i].rotation.x = x;
    }
    this._rotation.x = x;
  };

  BABYLON.CommonPivot.prototype.rotationY = function(y) {
    for (var i in this._meshes) {
      this._meshes[i].rotation.y = y;
    }
    this._rotation.y = y;
  };

  BABYLON.CommonPivot.prototype.rotationZ = function(z) {
    for (var i in this._meshes) {
      this._meshes[i].rotation.z = z;
    }
    this._rotation.z = z;
  };

  BABYLON.CommonPivot.prototype.scalingX = function(x) {
    for (var i in this._meshes) {
     ...