Class IntervalTreeImpl

java.lang.Object
com.esri.core.geometry.IntervalTreeImpl

final class IntervalTreeImpl extends Object
  • Field Details

    • m_b_envelopes_ref

      private boolean m_b_envelopes_ref
    • m_b_offline_dynamic

      private boolean m_b_offline_dynamic
    • m_intervals

      private ArrayList<Envelope1D> m_intervals
    • m_envelopes_ref

      private ArrayList<Envelope2D> m_envelopes_ref
    • m_tertiary_nodes

      private StridedIndexTypeCollection m_tertiary_nodes
    • m_interval_nodes

      private StridedIndexTypeCollection m_interval_nodes
    • m_interval_handles

      private AttributeStreamOfInt32 m_interval_handles
    • m_secondary_lists

      private IndexMultiDCList m_secondary_lists
    • m_secondary_treaps

      private Treap m_secondary_treaps
    • m_end_indices_unique

      private AttributeStreamOfInt32 m_end_indices_unique
    • m_c_count

      private int m_c_count
    • m_root

      private int m_root
    • m_b_sort_intervals

      private boolean m_b_sort_intervals
    • m_b_constructing

      private boolean m_b_constructing
    • m_b_construction_ended

      private boolean m_b_construction_ended
  • Constructor Details

    • IntervalTreeImpl

      IntervalTreeImpl(boolean b_offline_dynamic)
  • Method Details

    • sortEndIndices_

      private void sortEndIndices_(AttributeStreamOfInt32 end_indices, int begin_, int end_)
    • sortEndIndicesHelper_

      private void sortEndIndicesHelper_(AttributeStreamOfInt32 end_indices, int begin_, int end_)
    • getValue_

      private double getValue_(int e)
    • addEnvelopesRef

      void addEnvelopesRef(ArrayList<Envelope2D> envelopes)
    • startConstruction

      void startConstruction()
    • addInterval

      void addInterval(Envelope1D interval)
    • addInterval

      void addInterval(double min, double max)
    • endConstruction

      void endConstruction()
    • reset

      void reset()
    • size

      int size()
      Returns the number of intervals stored in the Interval_tree_impl
    • getIterator

      IntervalTreeImpl.IntervalTreeIteratorImpl getIterator(Envelope1D query, double tolerance)
      Gets an iterator on the Interval_tree_impl using the input Envelope_1D interval as the query. To reuse the existing iterator on the same Interval_tree_impl but with a new query, use the reset_iterator function on the Interval_tree_iterator_impl. \param query The Envelope_1D interval used for the query. \param tolerance The tolerance used for the intersection tests.
    • getIterator

      IntervalTreeImpl.IntervalTreeIteratorImpl getIterator(double query, double tolerance)
      Gets an iterator on the Interval_tree_impl using the input double as the stabbing query. To reuse the existing iterator on the same Interval_tree_impl but with a new query, use the reset_iterator function on the Interval_tree_iterator_impl. \param query The double used for the stabbing query. \param tolerance The tolerance used for the intersection tests.
    • getIterator

      Gets an iterator on the Interval_tree_impl.
    • querySortedEndPointIndices_

      private void querySortedEndPointIndices_(AttributeStreamOfInt32 end_indices)
    • querySortedDuplicatesRemoved_

      private void querySortedDuplicatesRemoved_(AttributeStreamOfInt32 end_indices_sorted)
    • insert

      void insert(int index)
    • insertIntervalsStatic_

      private void insertIntervalsStatic_()
    • createRoot_

      private int createRoot_()
    • insertIntervalEnd_

      private int insertIntervalEnd_(int end_index, int root)
    • remove

      void remove(int index)
    • reset_

      private void reset_(boolean b_new_intervals, boolean b_envelopes_ref)
    • getDiscriminant_

      private double getDiscriminant_(int tertiary_handle)
    • getDiscriminantFromIndex1_

      private double getDiscriminantFromIndex1_(int discriminant_index_1)
    • calculateDiscriminantIndex1_

      private int calculateDiscriminantIndex1_(int il, int ir)
    • createTertiaryNode_

      private int createTertiaryNode_(int discriminant_index_1)
    • createSecondary_

      private int createSecondary_(int tertiary_handle)
    • createIntervalNode_

      private int createIntervalNode_()
    • setDiscriminantIndex1_

      private void setDiscriminantIndex1_(int tertiary_handle, int end_index)
    • setSecondaryToTertiary_

      private void setSecondaryToTertiary_(int tertiary_handle, int secondary_handle)
    • setLPTR_

      private void setLPTR_(int tertiary_handle, int lptr)
    • setRPTR_

      private void setRPTR_(int tertiary_handle, int rptr)
    • setPPTR_

      private void setPPTR_(int tertiary_handle, int pptr)
    • setSecondaryToInterval_

      private void setSecondaryToInterval_(int interval_handle, int secondary_handle)
    • addEndIndex_

      private int addEndIndex_(int secondary_handle, int end_index)
    • setLeftEnd_

      private void setLeftEnd_(int interval_handle, int left_end_handle)
    • setRightEnd_

      private void setRightEnd_(int interval_handle, int right_end_handle)
    • getDiscriminantIndex1_

      private int getDiscriminantIndex1_(int tertiary_handle)
    • getSecondaryFromTertiary_

      private int getSecondaryFromTertiary_(int tertiary_handle)
    • getLPTR_

      private int getLPTR_(int tertiary_handle)
    • getRPTR_

      private int getRPTR_(int tertiary_handle)
    • getPPTR_

      private int getPPTR_(int tertiary_handle)
    • getSecondaryFromInterval_

      private int getSecondaryFromInterval_(int interval_handle)
    • getLeftEnd_

      private int getLeftEnd_(int interval_handle)
    • getRightEnd_

      private int getRightEnd_(int interval_handle)
    • getMin_

      private double getMin_(int i)
    • getMax_

      private double getMax_(int i)
    • getFirst_

      private int getFirst_(int secondary_handle)
    • getLast_

      private int getLast_(int secondary_handle)
    • isLeft_

      private static boolean isLeft_(int end_index)
    • isRight_

      private static boolean isRight_(int end_index)