|
Blender
V2.59
|
Go to the source code of this file.
Classes | |
| struct | KDTreeNode |
| struct | KDTree |
Typedefs | |
| typedef struct KDTreeNode | KDTreeNode |
Functions | |
| KDTree * | BLI_kdtree_new (int maxsize) |
| void | BLI_kdtree_free (KDTree *tree) |
| void | BLI_kdtree_insert (KDTree *tree, int index, float *co, float *nor) |
| static KDTreeNode * | kdtree_balance (KDTreeNode *nodes, int totnode, int axis) |
| void | BLI_kdtree_balance (KDTree *tree) |
| static float | squared_distance (float *v2, float *v1, float *n1, float *n2) |
| int | BLI_kdtree_find_nearest (KDTree *tree, float *co, float *nor, KDTreeNearest *nearest) |
| static void | add_nearest (KDTreeNearest *ptn, int *found, int n, int index, float dist, float *co) |
| int | BLI_kdtree_find_n_nearest (KDTree *tree, int n, float *co, float *nor, KDTreeNearest *nearest) |
| static int | range_compare (const void *a, const void *b) |
| static void | add_in_range (KDTreeNearest **ptn, int found, int *totfoundstack, int index, float dist, float *co) |
| int | BLI_kdtree_range_search (KDTree *tree, float range, float *co, float *nor, KDTreeNearest **nearest) |
Definition in file BLI_kdtree.c.
| typedef struct KDTreeNode KDTreeNode |
| static void add_in_range | ( | KDTreeNearest ** | ptn, |
| int | found, | ||
| int * | totfoundstack, | ||
| int | index, | ||
| float | dist, | ||
| float * | co | ||
| ) | [static] |
Definition at line 357 of file BLI_kdtree.c.
References KDTreeNearest::co, copy_v3_v3(), KDTreeNearest::dist, KDTreeNearest::index, MEM_callocN(), MEM_freeN(), and sqrt().
Referenced by BLI_kdtree_range_search().
| static void add_nearest | ( | KDTreeNearest * | ptn, |
| int * | found, | ||
| int | n, | ||
| int | index, | ||
| float | dist, | ||
| float * | co | ||
| ) | [static] |
Definition at line 242 of file BLI_kdtree.c.
References copy_v3_v3(), KDTreeNearest::dist, i, and KDTreeNearest::index.
Referenced by BLI_kdtree_find_n_nearest().
| void BLI_kdtree_balance | ( | KDTree * | tree | ) |
Definition at line 132 of file BLI_kdtree.c.
References kdtree_balance(), KDTree::nodes, KDTree::root, and KDTree::totnode.
Referenced by brush_add(), createFacepa(), distribute_threads_init_data(), PE_update_mirror_cache(), psys_find_parents(), psys_update_particle_tree(), recalc_emitter_field(), and remove_doubles_exec().
| int BLI_kdtree_find_n_nearest | ( | KDTree * | tree, |
| int | n, | ||
| float * | co, | ||
| float * | nor, | ||
| KDTreeNearest * | nearest | ||
| ) |
Definition at line 261 of file BLI_kdtree.c.
References add_nearest(), KDTreeNode::co, KDTreeNode::d, i, KDTreeNode::index, KDTreeNode::left, MEM_callocN(), MEM_freeN(), KDTreeNode::nor, NULL, KDTreeNode::right, KDTree::root, MakeCursor::root, sqrt(), squared_distance(), and stack.
Referenced by brush_add(), distribute_threads_exec(), remove_doubles_exec(), and rule_flock().
| int BLI_kdtree_find_nearest | ( | KDTree * | tree, |
| float * | co, | ||
| float * | nor, | ||
| KDTreeNearest * | nearest | ||
| ) |
Definition at line 155 of file BLI_kdtree.c.
References KDTreeNearest::co, KDTreeNode::co, copy_v3_v3(), KDTreeNode::d, KDTreeNearest::dist, KDTreeNearest::index, KDTreeNode::index, KDTreeNode::left, MEM_callocN(), MEM_freeN(), KDTreeNode::nor, KDTreeNode::right, KDTree::root, MakeCursor::root, sqrt(), squared_distance(), and stack.
Referenced by brush_puff(), createFacepa(), pe_deflect_emitter(), PE_update_mirror_cache(), and psys_find_parents().
| void BLI_kdtree_free | ( | KDTree * | tree | ) |
Definition at line 70 of file BLI_kdtree.c.
References MEM_freeN(), and KDTree::nodes.
Referenced by brush_add(), createFacepa(), PE_free_ptcache_edit(), PE_update_mirror_cache(), psys_find_parents(), psys_free(), psys_threads_free(), psys_update_particle_tree(), recalc_emitter_field(), and remove_doubles_exec().
| void BLI_kdtree_insert | ( | KDTree * | tree, |
| int | index, | ||
| float * | co, | ||
| float * | nor | ||
| ) |
Definition at line 78 of file BLI_kdtree.c.
References KDTreeNode::co, copy_v3_v3(), KDTreeNode::index, KDTree::nodes, KDTreeNode::nor, and KDTree::totnode.
Referenced by brush_add(), createFacepa(), distribute_threads_init_data(), PE_update_mirror_cache(), psys_find_parents(), psys_update_particle_tree(), recalc_emitter_field(), and remove_doubles_exec().
| KDTree* BLI_kdtree_new | ( | int | maxsize | ) |
Definition at line 59 of file BLI_kdtree.c.
References MEM_callocN(), KDTree::nodes, and KDTree::totnode.
Referenced by brush_add(), createFacepa(), distribute_threads_init_data(), PE_update_mirror_cache(), psys_find_parents(), psys_update_particle_tree(), recalc_emitter_field(), and remove_doubles_exec().
| int BLI_kdtree_range_search | ( | KDTree * | tree, |
| float | range, | ||
| float * | co, | ||
| float * | nor, | ||
| KDTreeNearest ** | nearest | ||
| ) |
Definition at line 376 of file BLI_kdtree.c.
References add_in_range(), KDTreeNode::co, KDTreeNode::d, KDTreeNode::index, KDTreeNode::left, MEM_callocN(), MEM_freeN(), KDTreeNode::nor, NULL, range_compare(), KDTreeNode::right, KDTree::root, MakeCursor::root, squared_distance(), and stack.
Referenced by rule_avoid_collision(), rule_fight(), and rule_separate().
| static KDTreeNode* kdtree_balance | ( | KDTreeNode * | nodes, |
| int | totnode, | ||
| int | axis | ||
| ) | [static] |
Definition at line 87 of file BLI_kdtree.c.
References KDTreeNode::co, co, KDTreeNode::d, i, KDTreeNode::left, left, nodes, NULL, KDTreeNode::right, and SWAP.
Referenced by BLI_kdtree_balance().
| static int range_compare | ( | const void * | a, |
| const void * | b | ||
| ) | [static] |
Definition at line 345 of file BLI_kdtree.c.
References KDTreeNearest::dist.
Referenced by BLI_kdtree_range_search().
| static float squared_distance | ( | float * | v2, |
| float * | v1, | ||
| float * | n1, | ||
| float * | n2 | ||
| ) | [static] |
Definition at line 137 of file BLI_kdtree.c.
References simple_enum_gen::d.
Referenced by BLI_kdtree_find_n_nearest(), BLI_kdtree_find_nearest(), and BLI_kdtree_range_search().