Class IntervalTreeImpl


  • final class IntervalTreeImpl
    extends java.lang.Object
    • Field Detail

      • m_b_envelopes_ref

        private boolean m_b_envelopes_ref
      • m_b_offline_dynamic

        private boolean m_b_offline_dynamic
      • m_intervals

        private java.util.ArrayList<Envelope1D> m_intervals
      • m_envelopes_ref

        private java.util.ArrayList<Envelope2D> m_envelopes_ref
      • m_secondary_treaps

        private Treap m_secondary_treaps
      • 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 Detail

      • IntervalTreeImpl

        IntervalTreeImpl​(boolean b_offline_dynamic)
    • Method Detail

      • 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​(java.util.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.
      • 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)