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().