Example #1
0
        /// <summary>
        /// Draw selection
        /// </summary>
        /// <param name="e"></param>
        public override void OnPostPaint(VCItem sender, ItemPaintEventArgs e)
        {
            if (IsSelecting)
            {
                var rect = SelectionBounds;
                if (!rect.IsEmpty)
                {
                    using (Pen pen = new Pen(Color.Black))
                    {
                        pen.DashStyle = DashStyle.Dot;
                        e.Graphics.DrawRectangle(pen, SelectionBounds.Round());
                    }
                }
            }

            base.OnPostPaint(sender, e);
        }
Example #2
0
        /// <summary>
        /// Draw selection
        /// </summary>
        public void Paint(VCItem sender, ItemPaintEventArgs e)
        {
            if (selecting)
            {
                var rect = SelectionBounds;
                if (!rect.IsEmpty)
                {
                    using (var pen = new Pen(Color.Black))
                    {
                        pen.DashStyle = DashStyle.Dot;
                        e.Graphics.DrawRectangle(pen, SelectionBounds.Round());
                    }
                }
            }

            // Draw selection boxes (if any)
            if (container.SelectedItems.Count > 0)
            {
                container.DrawItems(e, DrawSelectionBoxes);
            }
        }
 void DistributeTriangles(int[] inputTriangles, Vector3[] inputVertices)
 {
     // Redistribute the triangles into two lists.
     trianglesToCut.Clear();
     trianglesToKeep.Clear();
     for (int triStartIndex = 0; triStartIndex < inputTriangles.Length - 3; triStartIndex += 3)
     {
         if (SelectionBounds.Contains(inputVertices[inputTriangles[triStartIndex]]) ||
             SelectionBounds.Contains(inputVertices[inputTriangles[triStartIndex + 1]]) ||
             SelectionBounds.Contains(inputVertices[inputTriangles[triStartIndex + 2]]))
         {
             trianglesToCut.Add(inputTriangles[triStartIndex]);
             trianglesToCut.Add(inputTriangles[triStartIndex + 1]);
             trianglesToCut.Add(inputTriangles[triStartIndex + 2]);
         }
         else
         {
             trianglesToKeep.Add(inputTriangles[triStartIndex]);
             trianglesToKeep.Add(inputTriangles[triStartIndex + 1]);
             trianglesToKeep.Add(inputTriangles[triStartIndex + 2]);
         }
     }
 }