Blender V2.61 - r43446
|
#include "rayobject.h"
Go to the source code of this file.
Classes | |
struct | RTBuilder |
struct | RTBuilder::Object |
Defines | |
#define | RTBUILD_MAX_CHILDS 32 |
Typedefs | |
typedef struct RTBuilder | RTBuilder |
Functions | |
RTBuilder * | rtbuild_create (int size) |
void | rtbuild_free (RTBuilder *b) |
void | rtbuild_add (RTBuilder *b, RayObject *o) |
void | rtbuild_done (RTBuilder *b, RayObjectControl *c) |
void | rtbuild_merge_bb (RTBuilder *b, float *min, float *max) |
int | rtbuild_size (RTBuilder *b) |
RayObject * | rtbuild_get_primitive (RTBuilder *b, int offset) |
RTBuilder * | rtbuild_get_child (RTBuilder *b, int child, RTBuilder *tmp) |
int | rtbuild_get_largest_axis (RTBuilder *b) |
int | rtbuild_mean_split (RTBuilder *b, int nchilds, int axis) |
int | rtbuild_mean_split_largest_axis (RTBuilder *b, int nchilds) |
int | rtbuild_heuristic_object_split (RTBuilder *b, int nchilds) |
int | rtbuild_median_split (RTBuilder *b, float *separators, int nchilds, int axis) |
int | rtbuild_median_split_largest_axis (RTBuilder *b, int nchilds) |
float | bb_area (float *min, float *max) |
float | bb_volume (float *min, float *max) |
int | bb_largest_axis (float *min, float *max) |
int | bb_fits_inside (float *outer_min, float *outer_max, float *inner_min, float *inner_max) |
Definition in file rayobject_rtbuild.h.
#define RTBUILD_MAX_CHILDS 32 |
Definition at line 52 of file rayobject_rtbuild.h.
Referenced by rtbuild_init().
float bb_area | ( | float * | min, |
float * | max | ||
) |
Definition at line 482 of file rayobject_rtbuild.cpp.
Referenced by bvh_refit(), VBVH_optimalPackSIMD< Node, TestCost >::calc_best::calc_best(), VBVH_optimalPackSIMD< Node, TestCost >::calc_costs(), pushup(), reorganize_find_fittest_parent(), and rtbuild_heuristic_object_split().
int bb_fits_inside | ( | float * | outer_min, |
float * | outer_max, | ||
float * | inner_min, | ||
float * | inner_max | ||
) |
Definition at line 519 of file rayobject_rtbuild.cpp.
References i.
Referenced by hint_test_bb(), node_fits_inside(), and pushdown().
int bb_largest_axis | ( | float * | min, |
float * | max | ||
) |
Definition at line 496 of file rayobject_rtbuild.cpp.
float bb_volume | ( | float * | min, |
float * | max | ||
) |
Definition at line 477 of file rayobject_rtbuild.cpp.
Definition at line 98 of file rayobject_rtbuild.cpp.
References assert, Object::bb, RTBuilder::begin, copy_v3_v3(), RTBuilder::end, i, INIT_MINMAX, RTBuilder::maxsize, RTBuilder::primitives, RE_rayobject_cost(), RE_rayobject_merge_bb(), and RTBuilder::sorted_end.
Referenced by bvh_add().
RTBuilder* rtbuild_create | ( | int | size | ) |
Definition at line 66 of file rayobject_rtbuild.cpp.
References RTBuilder::begin, RTBuilder::end, i, RTBuilder::maxsize, MEM_mallocN(), RTBuilder::primitives, rtbuild_init(), size(), RTBuilder::sorted_begin, and RTBuilder::sorted_end.
Referenced by bvh_create_tree().
void rtbuild_done | ( | RTBuilder * | b, |
RayObjectControl * | c | ||
) |
Definition at line 158 of file rayobject_rtbuild.cpp.
References i, object_sort(), RE_rayobjectcontrol_test_break(), RTBuilder::sorted_begin, and RTBuilder::sorted_end.
Referenced by bvh_done< VBVHTree >().
void rtbuild_free | ( | RTBuilder * | b | ) |
Definition at line 87 of file rayobject_rtbuild.cpp.
References RTBuilder::begin, i, MEM_freeN(), RTBuilder::primitives, and RTBuilder::sorted_begin.
Referenced by bvh_done< VBVHTree >(), and bvh_free().
Definition at line 173 of file rayobject_rtbuild.cpp.
References RTBuilder::child_offset, i, rtbuild_init(), RTBuilder::sorted_begin, and RTBuilder::sorted_end.
Referenced by BuildBinaryVBVH< Node >::_transform().
int rtbuild_get_largest_axis | ( | RTBuilder * | b | ) |
Definition at line 168 of file rayobject_rtbuild.cpp.
References RTBuilder::sorted_begin.
Referenced by BuildBinaryVBVH< Node >::_transform().
int rtbuild_heuristic_object_split | ( | RTBuilder * | b, |
int | nchilds | ||
) |
Definition at line 333 of file rayobject_rtbuild.cpp.
References assert, RTBuilder::Object::bb, SweepCost::bb, bb_area(), RTBuilder::child_offset, copy_v3_v3(), RTBuilder::Object::cost, SweepCost::cost, DO_MAX, DO_MIN, FLT_MAX, i, MAX2, MEM_freeN(), MEM_mallocN(), MIN2, rtbuild_size(), selected_node(), size(), RTBuilder::sorted_begin, and RTBuilder::sorted_end.
Referenced by BuildBinaryVBVH< Node >::rtbuild_split().
int rtbuild_mean_split | ( | RTBuilder * | b, |
int | nchilds, | ||
int | axis | ||
) |
int rtbuild_mean_split_largest_axis | ( | RTBuilder * | b, |
int | nchilds | ||
) |
int rtbuild_median_split | ( | RTBuilder * | b, |
float * | separators, | ||
int | nchilds, | ||
int | axis | ||
) |
int rtbuild_median_split_largest_axis | ( | RTBuilder * | b, |
int | nchilds | ||
) |
void rtbuild_merge_bb | ( | RTBuilder * | b, |
float * | min, | ||
float * | max | ||
) |
Definition at line 201 of file rayobject_rtbuild.cpp.
References RTBuilder::bb, DO_MAX, DO_MIN, and rtbuild_calc_bb().
Referenced by BuildBinaryVBVH< Node >::_transform().
int rtbuild_size | ( | RTBuilder * | b | ) |
Definition at line 135 of file rayobject_rtbuild.cpp.
References RTBuilder::sorted_begin, and RTBuilder::sorted_end.
Referenced by BuildBinaryVBVH< Node >::_transform(), and rtbuild_heuristic_object_split().