示例#1
0
		/// <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 PushMatrix(PMatrix matrix) {
			if (matrix == null) return;
			RectangleF newLocalClip = matrix.InverseTransform(LocalClip);
			transformStack.Push(graphics.Transform);
			localClipStack.Push(newLocalClip);
			graphics.MultiplyTransform(matrix.MatrixReference);
		}
示例#2
0
 /// <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);
     }
 }
示例#3
0
		/// <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 PushMatrix(PMatrix matrix) {
			if (matrix == null) return;
			RectangleF newLocalClip = matrix.InverseTransform(LocalClip);
			transformStack.Push(graphics.Transform);
			localClipStack.Push(newLocalClip);
			graphics.MultiplyTransform(matrix.MatrixReference);
		}
		/// <summary>
		/// Overridden.  See <see cref="PPaintContext.PushMatrix">PPaintContext.PushTransform</see>.
		/// </summary>
		public override void PushMatrix(PMatrix matrix) {
			if (matrix == null) return;
			RectangleF newLocalClip = matrix.InverseTransform(LocalClip);
			localClipStack.Push(newLocalClip);
			PMatrix newMatrix = (PMatrix)Transform.Clone();
			newMatrix.Multiply(matrix);
			transformStack.Push(newMatrix);

			SetWorldMatrix(newMatrix);
		}
示例#5
0
		/// <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);
			}
		}