class GridH2ProxySpatialIndex extends GridH2ProxyIndex implements SpatialIndex {
    /**
     *
     * @param tbl Table.
     * @param name Name of the proxy index.
     * @param colsList Column list for the proxy index.
     * @param idx Target index.
     */
    public GridH2ProxySpatialIndex(GridH2Table tbl,
                                   String name,
                                   List<IndexColumn> colsList,
                                   Index idx) {
        super(tbl, name, colsList, idx);
    }

    /** {@inheritDoc} */
    @Override public double getCost(Session ses, int[] masks, TableFilter[] filters, int filter,
        SortOrder sortOrder, HashSet<Column> cols) {
        return SpatialTreeIndex.getCostRangeIndex(masks, columns) / 10;
    }

    /** {@inheritDoc} */
    @Override public Cursor findByGeometry(TableFilter filter, SearchRow first, SearchRow last, SearchRow intersection) {<FILL_FUNCTION_BODY>}
}

        GridQueryRowDescriptor desc = ((GridH2Table)idx.getTable()).rowDescriptor();

        return ((SpatialIndex)idx).findByGeometry(filter,
                prepareProxyIndexRow(desc, first),
                prepareProxyIndexRow(desc, last),
                prepareProxyIndexRow(desc, intersection));
    
<methods>public void <init>(org.apache.ignite.internal.processors.query.h2.opt.GridH2Table, java.lang.String, List<IndexColumn>, Index) ,public void add(Session, Row) ,public boolean canGetFirstOrLast() ,public void checkRename() ,public void close(Session) ,public IndexLookupBatch createLookupBatch(TableFilter[], int) ,public Cursor find(Session, SearchRow, SearchRow) ,public Cursor findFirstOrLast(Session, boolean) ,public double getCost(Session, int[], TableFilter[], int, SortOrder, HashSet<Column>) ,public long getDiskSpaceUsed() ,public long getRowCount(Session) ,public long getRowCountApproximation() ,public boolean needRebuild() ,public static SearchRow prepareProxyIndexRow(org.apache.ignite.internal.processors.query.GridQueryRowDescriptor, SearchRow) ,public void remove(Session, Row) ,public void remove(Session) ,public void truncate(Session) ,public Index underlyingIndex() <variables>protected Index idx