Skip to content

Commit c3216b0

Browse files
committed
Removed some excess code. Specifically the float functions and the 3d helpers.
1 parent 202a5ed commit c3216b0

File tree

3 files changed

+10
-167
lines changed

3 files changed

+10
-167
lines changed

examples/test.c

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,18 +37,20 @@ int main(int argc, char **argv)
3737

3838
start = get_msec();
3939
for(i=0; i<vcount; i++) {
40-
float x, y, z;
41-
x = ((float)rand() / RAND_MAX) * 200.0 - 100.0;
42-
y = ((float)rand() / RAND_MAX) * 200.0 - 100.0;
43-
z = ((float)rand() / RAND_MAX) * 200.0 - 100.0;
40+
double pos[3] = {
41+
((float)rand() / RAND_MAX) * 200.0 - 100.0,
42+
((float)rand() / RAND_MAX) * 200.0 - 100.0,
43+
((float)rand() / RAND_MAX) * 200.0 - 100.0
44+
};
4445

45-
assert(kd_insert3(kd, x, y, z, 0) == 0);
46+
assert(kd_insert(kd, pos, 0) == 0);
4647
}
4748
msec = get_msec() - start;
4849
printf("%.3f sec\n", (float)msec / 1000.0);
4950

5051
start = get_msec();
51-
set = kd_nearest_range3(kd, 0, 0, 0, 40);
52+
double near_pos[3] = {0, 0, 0};
53+
set = kd_nearest_range(kd, near_pos, 40);
5254
msec = get_msec() - start;
5355
printf("range query returned %d items in %.5f sec\n", kd_res_size(set), (float)msec / 1000.0);
5456
kd_res_free(set);

examples/test2.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,9 @@ int main(int argc, char **argv) {
4141

4242
/* add some random nodes to the tree (assert nodes are successfully inserted) */
4343
for( i=0; i<num_pts; i++ ) {
44+
double pos[3] = { rd(), rd(), rd() };
4445
data[i] = 'a' + i;
45-
assert( 0 == kd_insert3( ptree, rd(), rd(), rd(), &data[i] ) );
46+
assert( 0 == kd_insert( ptree, pos, &data[i] ) );
4647
}
4748

4849
/* find points closest to the origin and within distance radius */

src/kdtree.cpp

Lines changed: 0 additions & 160 deletions
Original file line numberDiff line numberDiff line change
@@ -178,48 +178,6 @@ int kd_insert(struct kdtree *tree, const double *pos, void *data)
178178
return 0;
179179
}
180180

181-
int kd_insertf(struct kdtree *tree, const float *pos, void *data)
182-
{
183-
static double sbuf[16];
184-
double *bptr, *buf = 0;
185-
int res, dim = tree->dim;
186-
187-
if(dim > 16) {
188-
if(!(bptr = buf = new double[dim])) {
189-
return -1;
190-
}
191-
} else {
192-
bptr = sbuf;
193-
}
194-
195-
while(dim-- > 0) {
196-
*bptr++ = *pos++;
197-
}
198-
199-
res = kd_insert(tree, buf, data);
200-
201-
if (tree->dim > 16) delete[] buf;
202-
return res;
203-
}
204-
205-
int kd_insert3(struct kdtree *tree, double x, double y, double z, void *data)
206-
{
207-
double buf[3];
208-
buf[0] = x;
209-
buf[1] = y;
210-
buf[2] = z;
211-
return kd_insert(tree, buf, data);
212-
}
213-
214-
int kd_insert3f(struct kdtree *tree, float x, float y, float z, void *data)
215-
{
216-
double buf[3];
217-
buf[0] = x;
218-
buf[1] = y;
219-
buf[2] = z;
220-
return kd_insert(tree, buf, data);
221-
}
222-
223181
static int find_nearest(struct kdnode *node, const double *pos, double range, struct res_node *list, int ordered, int dim)
224182
{
225183
double dist_sq, dx;
@@ -417,48 +375,6 @@ struct kdres *kd_nearest(struct kdtree *kd, const double *pos)
417375
}
418376
}
419377

420-
struct kdres *kd_nearestf(struct kdtree *tree, const float *pos)
421-
{
422-
static double sbuf[16];
423-
double *bptr, *buf = 0;
424-
int dim = tree->dim;
425-
struct kdres *res;
426-
427-
if(dim > 16) {
428-
if(!(bptr = buf = new double[dim])) {
429-
return 0;
430-
}
431-
} else {
432-
bptr = sbuf;
433-
}
434-
435-
while(dim-- > 0) {
436-
*bptr++ = *pos++;
437-
}
438-
439-
res = kd_nearest(tree, buf);
440-
if(tree->dim > 16) delete[] buf;
441-
return res;
442-
}
443-
444-
struct kdres *kd_nearest3(struct kdtree *tree, double x, double y, double z)
445-
{
446-
double pos[3];
447-
pos[0] = x;
448-
pos[1] = y;
449-
pos[2] = z;
450-
return kd_nearest(tree, pos);
451-
}
452-
453-
struct kdres *kd_nearest3f(struct kdtree *tree, float x, float y, float z)
454-
{
455-
double pos[3];
456-
pos[0] = x;
457-
pos[1] = y;
458-
pos[2] = z;
459-
return kd_nearest(tree, pos);
460-
}
461-
462378
struct kdres *kd_nearest_range(struct kdtree *kd, const double *pos, double range)
463379
{
464380
int ret;
@@ -483,48 +399,6 @@ struct kdres *kd_nearest_range(struct kdtree *kd, const double *pos, double rang
483399
return rset;
484400
}
485401

486-
struct kdres *kd_nearest_rangef(struct kdtree *kd, const float *pos, float range)
487-
{
488-
static double sbuf[16];
489-
double *bptr, *buf = 0;
490-
int dim = kd->dim;
491-
struct kdres *res;
492-
493-
if(dim > 16) {
494-
if(!(bptr = buf = new double[dim])) {
495-
return 0;
496-
}
497-
} else {
498-
bptr = sbuf;
499-
}
500-
501-
while(dim-- > 0) {
502-
*bptr++ = *pos++;
503-
}
504-
505-
res = kd_nearest_range(kd, buf, range);
506-
if(kd->dim > 16) delete[] buf;
507-
return res;
508-
}
509-
510-
struct kdres *kd_nearest_range3(struct kdtree *tree, double x, double y, double z, double range)
511-
{
512-
double buf[3];
513-
buf[0] = x;
514-
buf[1] = y;
515-
buf[2] = z;
516-
return kd_nearest_range(tree, buf, range);
517-
}
518-
519-
struct kdres *kd_nearest_range3f(struct kdtree *tree, float x, float y, float z, float range)
520-
{
521-
double buf[3];
522-
buf[0] = x;
523-
buf[1] = y;
524-
buf[2] = z;
525-
return kd_nearest_range(tree, buf, range);
526-
}
527-
528402
void kd_res_free(struct kdres *rset)
529403
{
530404
clear_results(rset);
@@ -564,40 +438,6 @@ void *kd_res_item(struct kdres *rset, double *pos)
564438
return 0;
565439
}
566440

567-
void *kd_res_itemf(struct kdres *rset, float *pos)
568-
{
569-
if(rset->riter) {
570-
if(pos) {
571-
int i;
572-
for(i=0; i<rset->tree->dim; i++) {
573-
pos[i] = rset->riter->item->pos[i];
574-
}
575-
}
576-
return rset->riter->item->data;
577-
}
578-
return 0;
579-
}
580-
581-
void *kd_res_item3(struct kdres *rset, double *x, double *y, double *z)
582-
{
583-
if(rset->riter) {
584-
if(*x) *x = rset->riter->item->pos[0];
585-
if(*y) *y = rset->riter->item->pos[1];
586-
if(*z) *z = rset->riter->item->pos[2];
587-
}
588-
return 0;
589-
}
590-
591-
void *kd_res_item3f(struct kdres *rset, float *x, float *y, float *z)
592-
{
593-
if(rset->riter) {
594-
if(*x) *x = rset->riter->item->pos[0];
595-
if(*y) *y = rset->riter->item->pos[1];
596-
if(*z) *z = rset->riter->item->pos[2];
597-
}
598-
return 0;
599-
}
600-
601441
void *kd_res_item_data(struct kdres *set)
602442
{
603443
return kd_res_item(set, 0);

0 commit comments

Comments
 (0)