コード例 #1
0
		public override DataRect Apply(DataRect previousDataRect, DataRect proposedDataRect, Viewport2D viewport)
		{
			DataRect borderRect = DataRect.Create(proposedDataRect.XMin, minSeconds, proposedDataRect.XMax, maxSeconds);
			if (proposedDataRect.IntersectsWith(borderRect))
			{
				DataRect croppedRect = DataRect.Intersect(proposedDataRect, borderRect);
				return croppedRect;
			}

			return previousDataRect;
		}
        public override DataRect Apply(DataRect previousDataRect, DataRect proposedDataRect, Viewport2D viewport)
        {
            DataRect borderRect = DataRect.Create(minSeconds, proposedDataRect.YMin, maxSeconds, proposedDataRect.YMax);
            if (proposedDataRect.IntersectsWith(borderRect))
            {
                DataRect croppedRect = DataRect.Intersect(proposedDataRect, borderRect);
                return croppedRect;
            }

            return previousDataRect;
        }
コード例 #3
0
        /// <summary>
        /// Applies the specified old data rect.
        /// </summary>
        /// <param name="oldDataRect">The old data rect.</param>
        /// <param name="newDataRect">The new data rect.</param>
        /// <param name="viewport">The viewport.</param>
        /// <returns></returns>
        public override DataRect Apply(DataRect oldDataRect, DataRect newDataRect, Viewport2D viewport)
        {
            DataRect res = domain;

            if (domain.IsEmpty)
            {
                res = newDataRect;
            }
            else if (newDataRect.IntersectsWith(domain))
            {
                res = newDataRect;
                if (newDataRect.Size == oldDataRect.Size)
                {
                    if (res.XMin < domain.XMin)
                    {
                        res.XMin = domain.XMin;
                    }
                    if (res.YMin < domain.YMin)
                    {
                        res.YMin = domain.YMin;
                    }
                    if (res.XMax > domain.XMax)
                    {
                        res.XMin += domain.XMax - res.XMax;
                    }
                    if (res.YMax > domain.YMax)
                    {
                        res.YMin += domain.YMax - res.YMax;
                    }
                }
                else
                {
                    res = DataRect.Intersect(newDataRect, domain);
                }
            }

            return(res);
        }