/// <summary>
        /// Clear the contents
        /// </summary>
        internal override void Clear()
        {
            _elements.Clear();

            var element = new FreeElement();

            element.OnCSUnitsPerPixelChanged(this.CSUnitsPerPixel);
            _elements.Add(element);

            base.Clear();
        }
        /// <summary>
        /// End the measuring
        /// </summary>
        internal override void EndMeasuring()
        {
            base.EndMeasuring();

            ActiveCollection.FinalizeElements();
            CreateFeatureGeometry();

            var element = new FreeElement();

            element.OnCSUnitsPerPixelChanged(this.CSUnitsPerPixel);
            _elements.Add(element);
        }
Esempio n. 3
0
        public bool InitWriteReadList(HandleElement eleHandle, FreeElement eleFree)
        {
            if (eleHandle == null || eleFree == null)
            {
                Trace.Assert(false, "InitWriteReadList input param error.");
                return(false);
            }

            elementHandle = eleHandle;
            elementFree   = eleFree;

            visitorGuard = new object();
            if (visitorGuard == null)
            {
                return(false);
            }

            elementListA = new List <TYPE>();
            if (elementListA == null)
            {
                visitorGuard = null;
                return(false);
            }

            elementListB = new List <TYPE>();
            if (elementListB == null)
            {
                visitorGuard = null;
                elementListA = null;
                return(false);
            }

            writeElementList = elementListA;
            readElementList  = elementListB;

            return(true);
        }
        /// <summary>
        /// Closes the measurer
        /// </summary>
        internal override void CloseMeasurer()
        {
            if (Coordinates.Count == 0)
            {
                // No Coordinates; so not drawing; clear everything
                Clear();
            }
            else if (Coordinates.Count <= 2)
            {
                if (_elements.Count > 1)
                {
                    Coordinates.Clear();
                    LastCoordinate      = null;
                    LastMouseCoordinate = null;
                    _elements.RemoveAt(_elements.Count - 1);

                    var element = new FreeElement();
                    element.OnCSUnitsPerPixelChanged(this.CSUnitsPerPixel);
                    _elements.Add(element);

                    CreateFeatureGeometry();
                }
                else
                {
                    Clear();
                }
            }
            else
            {
                ActiveCollection.Close();
                EndMeasuring();

                Coordinates.Clear();
                LastCoordinate      = null;
                LastMouseCoordinate = null;
            }
        }
Esempio n. 5
0
 private void SetCapacity(int cap)
 {
     FreeElement[] new_array = new FreeElement[cap];
     Array.Copy(_data, 0, new_array, 0, Capacity);
     _data = new_array;
 }