/// <summary> /// Pushes the given matrix onto the matrix stack. /// </summary> /// <param name="aMatrix">The matrix to push.</param> public virtual void PushMatrix(PMatrix aMatrix) { matrixStack.Push(new PTuple(PickedNode, aMatrix)); if (aMatrix != null) { RectangleF newPickBounds = aMatrix.InverseTransform(PickBounds); pickBoundsStack.Push(newPickBounds); } }
/// <summary> /// Pushes the given matrix onto the transform stack. /// </summary> /// <param name="matrix">The matrix to push.</param> /// <remarks> /// This method also applies the matrix to the graphics context and the current local clip. /// The new local clip is then pushed onto the local clip stack. /// </remarks> public virtual void PushTransform(PMatrix matrix) { if (matrix == null) { return; } RectangleF newLocalClip = matrix.InverseTransform(LocalClip); transformStack.Push(graphics.Matrix); localClipStack.Push(newLocalClip); graphics.MultiplyTransform(matrix); }
/// <summary> /// Pushes the given matrix onto the transform stack. /// </summary> /// <param name="matrix">The matrix to push.</param> /// <remarks> /// This method also applies the matrix to the graphics context and the current local clip. /// The new local clip is then pushed onto the local clip stack. /// </remarks> public virtual void PushTransform(PMatrix matrix) { if (matrix == null) return; RectangleF newLocalClip = matrix.InverseTransform(LocalClip); transformStack.Push(graphics.Matrix); localClipStack.Push(newLocalClip); graphics.MultiplyTransform(matrix); }