![]() |
Blender V2.61 - r43446
|
#include <assert.h>#include "MEM_guardedalloc.h"#include "BLI_math.h"#include "BLI_utildefines.h"#include "rayintersection.h"#include "rayobject.h"Go to the source code of this file.
Classes | |
| struct | InstanceRayObject |
Defines | |
| #define | RE_COST_INSTANCE (1.0f) |
Typedefs | |
| typedef struct InstanceRayObject | InstanceRayObject |
Functions | |
| static int | RE_rayobject_instance_intersect (RayObject *o, Isect *isec) |
| static void | RE_rayobject_instance_free (RayObject *o) |
| static void | RE_rayobject_instance_bb (RayObject *o, float *min, float *max) |
| static float | RE_rayobject_instance_cost (RayObject *o) |
| static void | RE_rayobject_instance_hint_bb (RayObject *UNUSED(o), RayHint *UNUSED(hint), float *UNUSED(min), float *UNUSED(max)) |
| RayObject * | RE_rayobject_instance_create (RayObject *target, float transform[][4], void *ob, void *target_ob) |
Variables | |
| static RayObjectAPI | instance_api |
Definition in file rayobject_instance.cpp.
| #define RE_COST_INSTANCE (1.0f) |
Definition at line 43 of file rayobject_instance.cpp.
Referenced by RE_rayobject_instance_cost().
| typedef struct InstanceRayObject InstanceRayObject |
| static void RE_rayobject_instance_bb | ( | RayObject * | o, |
| float * | min, | ||
| float * | max | ||
| ) | [static] |
Definition at line 192 of file rayobject_instance.cpp.
References DO_MINMAX, i, INIT_MINMAX, M, mul_m4_v3(), RE_rayobject_merge_bb(), InstanceRayObject::target, and InstanceRayObject::target2global.
| static float RE_rayobject_instance_cost | ( | RayObject * | o | ) | [static] |
Definition at line 186 of file rayobject_instance.cpp.
References RE_COST_INSTANCE, RE_rayobject_cost(), and InstanceRayObject::target.
| RayObject* RE_rayobject_instance_create | ( | RayObject * | target, |
| float | transform[][4], | ||
| void * | ob, | ||
| void * | target_ob | ||
| ) |
Definition at line 79 of file rayobject_instance.cpp.
References RayObject::api, assert, copy_m4_m4(), InstanceRayObject::global2target, instance_api, invert_m4_m4(), MEM_callocN(), InstanceRayObject::ob, InstanceRayObject::rayobj, RE_rayobject_isAligned, RE_rayobject_unalignRayAPI, InstanceRayObject::target, InstanceRayObject::target2global, and InstanceRayObject::target_ob.
Referenced by makeraytree_object().
| static void RE_rayobject_instance_free | ( | RayObject * | o | ) | [static] |
Definition at line 180 of file rayobject_instance.cpp.
References MEM_freeN().
| static void RE_rayobject_instance_hint_bb | ( | RayObject * | UNUSEDo, |
| RayHint * | UNUSEDhint, | ||
| float * | UNUSEDmin, | ||
| float * | UNUSEDmax | ||
| ) | [static] |
Definition at line 50 of file rayobject_instance.cpp.
Definition at line 95 of file rayobject_instance.cpp.
References Isect::bv_index, copy_v3_v3(), Isect::dir, Isect::dist, InstanceRayObject::global2target, Isect::hit, i, Isect::idot_axis, Isect::last_hit, len_v3(), mul_m4_v3(), mul_mat3_m4_v3(), mul_v3_v3fl(), normalize_v3(), InstanceRayObject::ob, Isect::ob, Isect::orig, RE_rayobject_intersect(), RE_rayobject_unalignRayAPI, Isect::start, InstanceRayObject::target, InstanceRayObject::target2global, and InstanceRayObject::target_ob.
RayObjectAPI instance_api [static] |
{
RE_rayobject_instance_intersect,
NULL,
NULL,
RE_rayobject_instance_free,
RE_rayobject_instance_bb,
RE_rayobject_instance_cost,
RE_rayobject_instance_hint_bb
}
Definition at line 54 of file rayobject_instance.cpp.
Referenced by RE_rayobject_instance_create().