/**
   * render visual node
   *
   * @param gl
   * @param node
   */
  private void renderVisualNode(GL2 gl, VisualNode node) {

    // dont render when picking mode is
    // enabled and node is not pickable
    ARenderPass cp = engine.getCurrentPass();
    if (cp.getId() == ARenderPass.PASS_PICKING && !node.isPickable()) {
      return;
    }

    // load current matrix
    Matrix4d m = node.getGlobalMatrix();
    gl.glLoadMatrixd(
        new double[] {
          m.m00, m.m10, m.m20, m.m30, m.m01, m.m11, m.m21, m.m31, m.m02, m.m12, m.m22, m.m32, m.m03,
          m.m13, m.m23, m.m33,
        },
        0);

    // render the node with respect to current pass
    node.renderNode(gl, engine);
  }