/// <summary> /// Initializes a new instance of the <see cref="HilbertRTree"/> class using /// the specified <see cref="ISpaceFillingCurveEncoder"/> as a space filling curve implementation /// and the specifield limits to children count. /// </summary> /// <param name="maxChildren">The maximum number of children. Shall be a positive integer which can be divided by 3.</param> /// <param name="encoder">The space filling curve implementation used to encode coordinate values to one dimensional integers</param> public HilbertRTree(Int32 maxChildren, ISpaceFillingCurveEncoder encoder) : base(maxChildren * 2 / 3, maxChildren) { this.encoder = encoder ?? throw new ArgumentNullException(nameof(encoder) + " cannot be null"); }
/// <summary> /// Initializes a new instance of the <see cref="HilbertRTree"/> class using /// the specified <see cref="ISpaceFillingCurveEncoder"/> as a space filling curve implementation. /// </summary> /// <param name="encoder">the space filling curve implementation used to encode coordinate values to one dimensional integers</param> public HilbertRTree(ISpaceFillingCurveEncoder encoder) : this(DefaultMaxChildren, encoder) { }