Example #1
0
        /// <summary>
        /// Draws single door or window
        /// </summary>
        /// <param name="canvas">Canvas to draw in</param>
        /// <param name="dow">DoorOrWindow</param>
        /// <param name="ratio">What ratio to use</param>
        /// <param name="leftBottomPoint">Left botom coordinate of start</param>
        private void DrawDoorOrWindow(Canvas canvas, DoorOrWindow dow, double ratio, Point leftBottomPoint)
        {
            Rectangle rect = new Rectangle();
                rect.Width = (double)dow.Width * ratio;
                rect.Height = (double)dow.Height * ratio;
                rect.StrokeThickness = 1;
                rect.Stroke = Brushes.Gray;
                rect.Fill = Brushes.White;

            // Consider position of whole result shape
            Canvas.SetLeft(rect, leftBottomPoint.X + (double)dow.X * ratio);
            Canvas.SetBottom(rect, this.can_Result.ActualHeight - leftBottomPoint.Y + (double)dow.Y * ratio);

            canvas.Children.Add(rect);
        }
Example #2
0
        /// <summary>
        /// Gets number of vertical transom that are crossed by windows
        /// </summary>
        /// <param name="dow">Window to check</param>
        /// <returns>Returns number of crossed transoms</returns>
        private int GetTransomCrossedByWindow(DoorOrWindow dow)
        {
            if (dow.IsDoor)
                return 0;

            int transomsCrossed = (WindowsWidthRoundedBySpacing / this.Spacing) - 1;

            // Attached on left side?
            if (dow.X % this.Spacing == 0)
                ++transomsCrossed;

            // Attached on right side?
            if ((dow.X + dow.Width) % this.Spacing == 0)
                ++transomsCrossed;

            return Math.Max(0, transomsCrossed);
        }