Blender
V3.3
|
#include <unaligned.h>
Public Member Functions | |
BVHUnaligned (const vector< Object * > &objects) | |
Transform | compute_aligned_space (const BVHObjectBinning &range, const BVHReference *references) const |
Transform | compute_aligned_space (const BVHRange &range, const BVHReference *references) const |
bool | compute_aligned_space (const BVHReference &ref, Transform *aligned_space) const |
BoundBox | compute_aligned_prim_boundbox (const BVHReference &prim, const Transform &aligned_space) const |
BoundBox | compute_aligned_boundbox (const BVHObjectBinning &range, const BVHReference *references, const Transform &aligned_space, BoundBox *cent_bounds=NULL) const |
BoundBox | compute_aligned_boundbox (const BVHRange &range, const BVHReference *references, const Transform &aligned_space, BoundBox *cent_bounds=NULL) const |
Static Public Member Functions | |
static Transform | compute_node_transform (const BoundBox &bounds, const Transform &aligned_space) |
Protected Attributes | |
const vector< Object * > & | objects_ |
Definition at line 19 of file unaligned.h.
CCL_NAMESPACE_BEGIN BVHUnaligned::BVHUnaligned | ( | const vector< Object * > & | objects | ) |
Definition at line 17 of file unaligned.cpp.
BoundBox BVHUnaligned::compute_aligned_boundbox | ( | const BVHObjectBinning & | range, |
const BVHReference * | references, | ||
const Transform & | aligned_space, | ||
BoundBox * | cent_bounds = NULL |
||
) | const |
Definition at line 99 of file unaligned.cpp.
References bounds(), BoundBox::center2(), compute_aligned_prim_boundbox(), BoundBox::empty, BVHRange::end(), BoundBox::grow(), NULL, and BVHRange::start().
Referenced by BVHBuild::build_node(), BVHObjectBinning::BVHObjectBinning(), and BVHSpatialSplit::BVHSpatialSplit().
BoundBox BVHUnaligned::compute_aligned_boundbox | ( | const BVHRange & | range, |
const BVHReference * | references, | ||
const Transform & | aligned_space, | ||
BoundBox * | cent_bounds = NULL |
||
) | const |
Definition at line 119 of file unaligned.cpp.
References bounds(), BoundBox::center2(), compute_aligned_prim_boundbox(), BoundBox::empty, BVHRange::end(), BoundBox::grow(), NULL, and BVHRange::start().
BoundBox BVHUnaligned::compute_aligned_prim_boundbox | ( | const BVHReference & | prim, |
const Transform & | aligned_space | ||
) | const |
Definition at line 77 of file unaligned.cpp.
References BVHReference::bounds(), bounds(), curve, BoundBox::empty, Hair::get_curve(), objects_, BVHReference::prim_index(), BVHReference::prim_object(), BVHReference::prim_type(), PRIMITIVE_ALL, PRIMITIVE_CURVE, PRIMITIVE_MOTION, PRIMITIVE_UNPACK_SEGMENT, BoundBox::transformed(), and type.
Referenced by compute_aligned_boundbox(), BVHBuild::create_leaf_node(), BVHObjectBinning::get_prim_bounds(), BVHReferenceCompare::get_prim_bounds(), BVHObjectSplit::get_prim_bounds(), and BVHSpatialSplit::get_prim_bounds().
Transform BVHUnaligned::compute_aligned_space | ( | const BVHObjectBinning & | range, |
const BVHReference * | references | ||
) | const |
Definition at line 21 of file unaligned.cpp.
References BVHRange::end(), BVHRange::start(), and transform_identity().
Referenced by BVHBuild::build_node(), compute_aligned_space(), and BVHBuild::create_leaf_node().
Transform BVHUnaligned::compute_aligned_space | ( | const BVHRange & | range, |
const BVHReference * | references | ||
) | const |
Definition at line 37 of file unaligned.cpp.
References compute_aligned_space(), BVHRange::end(), BVHRange::start(), and transform_identity().
bool BVHUnaligned::compute_aligned_space | ( | const BVHReference & | ref, |
Transform * | aligned_space | ||
) | const |
Definition at line 53 of file unaligned.cpp.
References curve, Hair::get_curve(), blender::math::length(), make_transform_frame(), normalize_len(), objects_, BVHReference::prim_index(), BVHReference::prim_object(), BVHReference::prim_type(), PRIMITIVE_ALL, PRIMITIVE_CURVE, PRIMITIVE_MOTION, PRIMITIVE_UNPACK_SEGMENT, transform_identity(), type, v1, and v2.
|
static |
Definition at line 139 of file unaligned.cpp.
References bounds(), max, transform_scale(), float3::x, Transform::x, float3::y, Transform::y, float3::z, and Transform::z.
Referenced by BVH2::pack_unaligned_node().
Definition at line 55 of file unaligned.h.
Referenced by compute_aligned_prim_boundbox(), and compute_aligned_space().