For complete examples, please refer to the source code of sample commands contained in the directories
`c++-samples
' and `c-samples
'.
The following is an example of using the function
`getNeighbors()
'.
See also HnPoint, HnDataItem, HnPointVector, HnDataItemVector.
(C++) HnSRTreeFile file; HnPoint queryPoint; int i, numNeighbors; HnPointVector points; HnDataItemVector dataItems; . . . /* open an index file and prepare `queryPoint' and `numNeighbors' */ . . . file.getNeighbors(queryPoint, numNeighbors, &points, &dataItems); for ( i=0; i<points.size(); i++ ) { HnPoint point = points.elementAt(i); HnDataItem dataItem = dataItems.elementAt(i); . . . /* work with `point' and `dataItem' */ . . . } /* close an index file */ (C ) HnSRTreeFileSt *file; HnPointSt *queryPoint; int i, numNeighbors; HnPointVectorSt *points; HnDataItemVectorSt *dataItems; . . . /* open an index file and prepare `queryPoint' and `numNeighbors' */ . . . HnSRTreeFileSt_getNeighbors(file, queryPoint, numNeighbors, &points, &dataItems); for ( i=0; i<points->size; i++ ) { HnPointSt *point = points->elements[i]; HnDataItemSt *dataItem = dataItems->elements[i]; . . . /* work with `point' and `dataItem' */ . . . } HnPointVectorSt_freeElements(points); HnPointVectorSt_free(points); HnDataItemVectorSt_freeElements(dataItems); HnDataItemVectorSt_free(dataItems); /* close an index file and delete `queryPoint' */
The following is an example of using the function `getFirst()
'
and `getNext()
'.
See also HnRect, HnPoint, HnDataItem.
(C++) HnSRTreeFile file; HnRect queryRect; HnPoint point; HnDataItem dataItem; . . . /* open an index file and prepare `queryRect' */ . . . file.getFirst(queryRect, &point, &dataItem); while ( point != HnPoint::null ) { . . . /* work with `point' and `dataItem' */ . . . file.getNext(&point, &dataItem); } /* close an index file */ (C ) HnSRTreeFileSt *file; HnRectSt *queryRect; HnPointSt *point; HnDataItemSt *dataItem; . . . /* open an index file and prepare `queryRect' */ . . . HnSRTreeFileSt_getFirstInRect(file, queryRect, &point, &dataItem); while ( point != NULL ) { . . . /* work with `point' and `dataItem' */ . . . HnPointSt_free(point); HnDataItemSt_free(dataItem); HnSRTreeFileSt_getNext(file, &point, &dataItem); } /* close an index file and delete `queryRect' */
Any feedback is appreciated (corrections, suggestions, etc.).
Norio KATAYAMA <katayama@nii.ac.jp>