@Override
  protected void preDraw(final GLState pGLState, final Camera pCamera) {
    super.preDraw(pGLState, pCamera);

    pGLState.lineWidth(this.mLineWidth);

    this.mLineChainVertexBufferObject.bind(pGLState, this.mShaderProgram);
  }
  @Override
  public void setY(final float pY) {
    final float dY = this.mY - pY;

    for (int i = this.mIndex - 1; i >= 0; i++) {
      this.mYs[i] += dY;
    }

    super.setY(pY);

    this.onUpdateVertices();
  }
  @Override
  public void setX(final float pX) {
    final float dX = this.mX - pX;

    for (int i = this.mIndex - 1; i >= 0; i++) {
      this.mXs[i] += dX;
    }

    super.setX(pX);

    this.onUpdateVertices();
  }
  @Override
  public void setPosition(final float pX, final float pY) {
    final float dX = this.mX - pX;
    final float dY = this.mY - pY;

    for (int i = this.mIndex - 1; i >= 0; i++) {
      this.mXs[i] += dX;
      this.mYs[i] += dY;
    }

    super.setPosition(pX, pY);

    this.onUpdateVertices();
  }
  @Override
  protected void postDraw(final GLState pGLState, final Camera pCamera) {
    this.mLineChainVertexBufferObject.unbind(pGLState, this.mShaderProgram);

    super.postDraw(pGLState, pCamera);
  }
 @Deprecated
 @Override
 public void setSize(final float pWidth, final float pHeight) {
   super.setSize(pWidth, pHeight);
 }
 @Deprecated
 @Override
 public void setHeight(final float pHeight) {
   super.setHeight(pHeight);
 }
 @Deprecated
 @Override
 public void setWidth(final float pWidth) {
   super.setWidth(pWidth);
 }