![]() |
Blender V2.61 - r43446
|
#include "MEM_guardedalloc.h"#include "BLI_math.h"#include "raycounter.h"#include "rayintersection.h"#include "rayobject.h"#include "rayobject_hint.h"#include "rayobject_rtbuild.h"#include <assert.h>Go to the source code of this file.
Defines | |
| #define | RE_RAYTRACE_BVH_H |
Functions | |
| static int | rayobject_bb_intersect_test (const Isect *isec, const float *_bb) |
| template<class Tree > | |
| static int | bvh_intersect (Tree *obj, Isect *isec) |
| template<class Tree > | |
| static void | bvh_add (Tree *obj, RayObject *ob) |
| template<class Node > | |
| bool | is_leaf (Node *node) |
| template<class Tree > | |
| static void | bvh_done (Tree *obj) |
| template<class Tree > | |
| static void | bvh_free (Tree *obj) |
| template<class Tree > | |
| static void | bvh_bb (Tree *obj, float *min, float *max) |
| template<class Tree > | |
| static float | bvh_cost (Tree *obj) |
| template<class Node > | |
| static int | bvh_node_hit_test (Node *node, Isect *isec) |
| template<class Node > | |
| static void | bvh_node_merge_bb (Node *node, float *min, float *max) |
| template<class Node > | |
| static void | bvh_node_push_childs (Node *node, Isect *isec, Node **stack, int &stack_pos) |
| template<class Node , int MAX_STACK_SIZE, bool TEST_ROOT, bool SHADOW> | |
| static int | bvh_node_stack_raycast (Node *root, Isect *isec) |
| template<class Node , class HintObject > | |
| void | bvh_dfs_make_hint (Node *node, LCTSHint *hint, int reserve_space, HintObject *hintObject) |
| template<class Tree > | |
| static RayObjectAPI * | bvh_get_api (int maxstacksize) |
| template<class Tree , int DFS_STACK_SIZE> | |
| static RayObject * | bvh_create_tree (int size) |
Definition in file source/blender/render/intern/raytrace/bvh.h.
| #define RE_RAYTRACE_BVH_H |
Definition at line 50 of file source/blender/render/intern/raytrace/bvh.h.
| static void bvh_add | ( | Tree * | obj, |
| RayObject * | ob | ||
| ) | [static] |
Definition at line 102 of file source/blender/render/intern/raytrace/bvh.h.
References rtbuild_add().
| static void bvh_bb | ( | Tree * | obj, |
| float * | min, | ||
| float * | max | ||
| ) | [static] |
Definition at line 128 of file source/blender/render/intern/raytrace/bvh.h.
References bvh_node_merge_bb().
| static float bvh_cost | ( | Tree * | obj | ) | [static] |
Definition at line 136 of file source/blender/render/intern/raytrace/bvh.h.
References assert.
| static RayObject* bvh_create_tree | ( | int | size | ) | [inline, static] |
Definition at line 423 of file source/blender/render/intern/raytrace/bvh.h.
References assert, DFS_STACK_SIZE, MEM_callocN(), NULL, RE_rayobject_isAligned, RE_rayobject_unalignRayAPI, and rtbuild_create().
| void bvh_dfs_make_hint | ( | Node * | node, |
| LCTSHint * | hint, | ||
| int | reserve_space, | ||
| HintObject * | hintObject | ||
| ) |
Definition at line 386 of file source/blender/render/intern/raytrace/bvh.h.
References assert, count_childs(), HINT_ACCEPT, HINT_RECURSE, hint_test_bb(), is_leaf(), RE_RAY_LCTS_MAX_SIZE, LCTSHint::size, and LCTSHint::stack.
| static void bvh_done | ( | Tree * | obj | ) | [static] |
| static void bvh_free | ( | Tree * | obj | ) | [static] |
Definition at line 116 of file source/blender/render/intern/raytrace/bvh.h.
References BLI_memarena_free(), MEM_freeN(), and rtbuild_free().
Referenced by bfree().
| static RayObjectAPI* bvh_get_api | ( | int | maxstacksize | ) | [static] |
Definition at line 198 of file rayobject_vbvh.cpp.
References assert.
| static int bvh_intersect | ( | Tree * | obj, |
| Isect * | isec | ||
| ) | [static] |
Definition at line 145 of file source/blender/render/intern/raytrace/bvh.h.
References rayobject_bb_intersect_test().
Referenced by bvh_node_stack_raycast().
| static void bvh_node_merge_bb | ( | Node * | node, |
| float * | min, | ||
| float * | max | ||
| ) | [inline, static] |
Definition at line 152 of file source/blender/render/intern/raytrace/bvh.h.
References DO_MAX, DO_MIN, is_leaf(), and RE_rayobject_merge_bb().
Referenced by bvh_bb().
| static void bvh_node_push_childs | ( | Node * | node, |
| Isect * | isec, | ||
| Node ** | stack, | ||
| int & | stack_pos | ||
| ) | [inline, static] |
Referenced by bvh_node_stack_raycast().
| static int bvh_node_stack_raycast | ( | Node * | root, |
| Isect * | isec | ||
| ) | [static] |
Definition at line 173 of file source/blender/render/intern/raytrace/bvh.h.
References assert, bvh_node_hit_test(), bvh_node_push_childs(), is_leaf(), RE_rayobject_intersect(), MakeCursor::root, and stack.
| bool is_leaf | ( | Node * | node | ) | [inline] |
Definition at line 108 of file source/blender/render/intern/raytrace/bvh.h.
References RE_rayobject_isAligned.
Referenced by bvh_dfs_make_hint(), bvh_node_merge_bb(), bvh_node_push_childs(), bvh_node_stack_raycast(), bvh_refit(), count_childs(), pushup(), and pushup_simd().
| static int rayobject_bb_intersect_test | ( | const Isect * | isec, |
| const float * | _bb | ||
| ) | [static] |
Definition at line 78 of file source/blender/render/intern/raytrace/bvh.h.
References Isect::bv_index, Isect::dist, Isect::hit, Isect::idot_axis, RE_RC_COUNT, and Isect::start.
Referenced by bvh_node_hit_test().