1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- /*-
- * Written by H. Mitasova, I. Kosinovsky, D. Gerdes Fall 1993
- * University of Illinois
- * US Army Construction Engineering Research Lab
- * Copyright 1993, H. Mitasova (University of Illinois),
- * I. Kosinovsky, (USA-CERL), and D.Gerdes (USA-CERL)
- *
- * updated by Mitasova Nov. 96, no changes necessary
- */
- #ifndef TREE_H
- #define TREE_H
- #define VOID_T char
- struct multfunc
- {
- int (*compare) ();
- struct quaddata **(*divide_data) ();
- int (*add_data) ();
- int (*intersect) ();
- int (*division_check) ();
- int (*get_points) ();
- };
- struct tree_info
- {
- struct multfunc *functions;
- double dmin;
- int kmax;
- struct multtree *root;
- };
- struct multtree
- {
- struct quaddata *data;
- struct multtree **leafs;
- struct multtree *parent;
- int multant;
- };
- struct multfunc *MT_functions_new(int (*)(struct triple *, struct quaddata *),
- struct quaddata **(*)(struct quaddata *,
- int, double),
- int (*)(struct triple *, struct quaddata *,
- double), int (*)(struct quaddata *,
- struct quaddata *),
- int (*)(struct quaddata *, int),
- int (*)(struct quaddata *,
- struct quaddata *, int));
- struct tree_info *MT_tree_info_new(struct multtree *, struct multfunc *,
- double, int);
- struct multtree *MT_tree_new(struct quaddata *, struct multtree **,
- struct multtree *, int);
- int MT_insert(struct triple *, struct tree_info *, struct multtree *, int);
- int MT_divide(struct tree_info *, struct multtree *, int);
- int MT_region_data(struct tree_info *, struct multtree *, struct quaddata *,
- int, int);
- #endif
|