Package com.esri.core.geometry
Class IntervalTreeImpl
- java.lang.Object
-
- com.esri.core.geometry.IntervalTreeImpl
-
final class IntervalTreeImpl extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
IntervalTreeImpl.EndPointsComparer
private class
IntervalTreeImpl.IntervalTreeBucketSortHelper
(package private) static class
IntervalTreeImpl.IntervalTreeIteratorImpl
private static class
IntervalTreeImpl.SecondaryComparator
-
Field Summary
Fields Modifier and Type Field Description private boolean
m_b_constructing
private boolean
m_b_construction_ended
private boolean
m_b_envelopes_ref
private boolean
m_b_offline_dynamic
private boolean
m_b_sort_intervals
private int
m_c_count
private AttributeStreamOfInt32
m_end_indices_unique
private java.util.ArrayList<Envelope2D>
m_envelopes_ref
private AttributeStreamOfInt32
m_interval_handles
private StridedIndexTypeCollection
m_interval_nodes
private java.util.ArrayList<Envelope1D>
m_intervals
private int
m_root
private IndexMultiDCList
m_secondary_lists
private Treap
m_secondary_treaps
private StridedIndexTypeCollection
m_tertiary_nodes
-
Constructor Summary
Constructors Constructor Description IntervalTreeImpl(boolean b_offline_dynamic)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private int
addEndIndex_(int secondary_handle, int end_index)
(package private) void
addEnvelopesRef(java.util.ArrayList<Envelope2D> envelopes)
(package private) void
addInterval(double min, double max)
(package private) void
addInterval(Envelope1D interval)
private int
calculateDiscriminantIndex1_(int il, int ir)
private int
createIntervalNode_()
private int
createRoot_()
private int
createSecondary_(int tertiary_handle)
private int
createTertiaryNode_(int discriminant_index_1)
(package private) void
endConstruction()
private double
getDiscriminant_(int tertiary_handle)
private double
getDiscriminantFromIndex1_(int discriminant_index_1)
private int
getDiscriminantIndex1_(int tertiary_handle)
private int
getFirst_(int secondary_handle)
(package private) IntervalTreeImpl.IntervalTreeIteratorImpl
getIterator()
Gets an iterator on the Interval_tree_impl.(package private) IntervalTreeImpl.IntervalTreeIteratorImpl
getIterator(double query, double tolerance)
Gets an iterator on the Interval_tree_impl using the input double as the stabbing query.(package private) IntervalTreeImpl.IntervalTreeIteratorImpl
getIterator(Envelope1D query, double tolerance)
Gets an iterator on the Interval_tree_impl using the input Envelope_1D interval as the query.private int
getLast_(int secondary_handle)
private int
getLeftEnd_(int interval_handle)
private int
getLPTR_(int tertiary_handle)
private double
getMax_(int i)
private double
getMin_(int i)
private int
getPPTR_(int tertiary_handle)
private int
getRightEnd_(int interval_handle)
private int
getRPTR_(int tertiary_handle)
private int
getSecondaryFromInterval_(int interval_handle)
private int
getSecondaryFromTertiary_(int tertiary_handle)
private double
getValue_(int e)
(package private) void
insert(int index)
private int
insertIntervalEnd_(int end_index, int root)
private void
insertIntervalsStatic_()
private static boolean
isLeft_(int end_index)
private static boolean
isRight_(int end_index)
private void
querySortedDuplicatesRemoved_(AttributeStreamOfInt32 end_indices_sorted)
private void
querySortedEndPointIndices_(AttributeStreamOfInt32 end_indices)
(package private) void
remove(int index)
(package private) void
reset()
private void
reset_(boolean b_new_intervals, boolean b_envelopes_ref)
private void
setDiscriminantIndex1_(int tertiary_handle, int end_index)
private void
setLeftEnd_(int interval_handle, int left_end_handle)
private void
setLPTR_(int tertiary_handle, int lptr)
private void
setPPTR_(int tertiary_handle, int pptr)
private void
setRightEnd_(int interval_handle, int right_end_handle)
private void
setRPTR_(int tertiary_handle, int rptr)
private void
setSecondaryToInterval_(int interval_handle, int secondary_handle)
private void
setSecondaryToTertiary_(int tertiary_handle, int secondary_handle)
(package private) int
size()
Returns the number of intervals stored in the Interval_tree_implprivate void
sortEndIndices_(AttributeStreamOfInt32 end_indices, int begin_, int end_)
private void
sortEndIndicesHelper_(AttributeStreamOfInt32 end_indices, int begin_, int end_)
(package private) void
startConstruction()
-
-
-
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_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
-
-
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.
-
getIterator
IntervalTreeImpl.IntervalTreeIteratorImpl 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)
-
-