コード例 #1
0
ファイル: LongIndex.cs プロジェクト: jorik041/osmsharp
 /// <summary>
 /// Creates a new longindex.
 /// </summary>
 public LongIndex()
 {
     _rootPositive = new LongIndexNode(1);
     _rootNegative = new LongIndexNode(1);
 }
コード例 #2
0
ファイル: LongIndex.cs プロジェクト: jorik041/osmsharp
 /// <summary>
 /// Clears this index.
 /// </summary>
 public void Clear()
 {
     _rootPositive = new LongIndexNode(1);
     _rootNegative = new LongIndexNode(1);
 }
コード例 #3
0
ファイル: LongIndex.cs プロジェクト: jorik041/osmsharp
        /// <summary>
        /// Adds an id.
        /// </summary>
        /// <param name="number"></param>
        private void PositiveAdd(long number)
        {
            while (number >= LongIndexNode.CalculateBaseNumber((short)(_rootPositive.Base + 1)))
            {
                LongIndexNode oldRoot = _rootPositive;
                _rootPositive = new LongIndexNode((short)(_rootPositive.Base + 1));
                _rootPositive.has_0 = oldRoot;
            }

            _rootPositive.Add(number);
        }