36inline void ObjectMatrices::sync(
const Object &
object)
38 model =
object.object_to_world();
42inline void ObjectMatrices::sync(
const float4x4 &model_matrix)
50 stream <<
"ObjectMatrices(" << std::endl;
51 stream <<
"model=" << matrices.
model <<
", " << std::endl;
52 stream <<
"model_inverse=" << matrices.
model_inverse <<
")" << std::endl;
62inline void ObjectInfos::sync()
71 bool is_active_object,
72 bool is_active_edit_mode)
79 ref.object->light_linking;
103 using namespace blender::math;
117 (1.0f / (float)0xFFFFFFFF);
170 stream <<
"ObjectInfos(";
172 stream <<
"skipped)" << std::endl;
175 stream <<
"orco_add=" << infos.
orco_add <<
", ";
176 stream <<
"orco_mul=" << infos.
orco_mul <<
", ";
177 stream <<
"ob_color=" << infos.
ob_color <<
", ";
178 stream <<
"index=" << infos.
index <<
", ";
179 stream <<
"random=" << infos.
random <<
", ";
180 stream <<
"flag=" << infos.
flag <<
")" << std::endl;
190inline void ObjectBounds::sync()
203inline void ObjectBounds::sync(
const Object &ob,
float inflate_bounds)
226 if (inflate_bounds != 0.0f) {
228 float p = inflate_bounds;
229 float n = -inflate_bounds;
248 stream <<
"ObjectBounds(";
249 if (
bounds.bounding_sphere.w == -1.0f) {
250 stream <<
"skipped)" << std::endl;
254 stream <<
".bounding_corners[0]"
255 << *
reinterpret_cast<const float3 *
>(&
bounds.bounding_corners[0]) << std::endl;
256 stream <<
".bounding_corners[1]"
257 << *
reinterpret_cast<const float3 *
>(&
bounds.bounding_corners[1]) << std::endl;
258 stream <<
".bounding_corners[2]"
259 << *
reinterpret_cast<const float3 *
>(&
bounds.bounding_corners[2]) << std::endl;
260 stream <<
".bounding_corners[3]"
261 << *
reinterpret_cast<const float3 *
>(&
bounds.bounding_corners[3]) << std::endl;
262 stream <<
".sphere=(pos=" <<
float3(
bounds.bounding_sphere)
263 <<
", rad=" <<
bounds.bounding_sphere.w << std::endl;
264 stream <<
")" << std::endl;
void BKE_curve_texspace_ensure(Curve *cu)
void BKE_mesh_texspace_get(Mesh *mesh, float r_texspace_location[3], float r_texspace_size[3])
General operations, lookup, etc. for blender objects.
void BKE_boundbox_init_from_minmax(BoundBox *bb, const float min[3], const float max[3])
std::optional< blender::Bounds< blender::float3 > > BKE_object_boundbox_get(const Object *ob)
std::optional< blender::Bounds< blender::float3 > > BKE_volume_min_max(const Volume *volume)
BLI_INLINE unsigned int BLI_hash_string(const char *str)
BLI_INLINE unsigned int BLI_hash_int_2d(unsigned int kx, unsigned int ky)
#define SET_FLAG_FROM_TEST(value, test, flag)
Object is a sort of wrapper for general info.
struct LightLinking LightLinking
#define BASE_SELECTED(v3d, base)
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
static btDbvtVolume bounds(btDbvtNode **leaves, int count)
reduce_max(value.rgb)") DEFINE_VALUE("REDUCE(lhs
Mesh & DRW_object_get_data_for_drawing(const Object &object)
std::ostream & operator<<(std::ostream &stream, const ObjectMatrices &matrices)
@ OBJECT_ACTIVE_EDIT_MODE
CartesianBasis invert(const CartesianBasis &basis)
T midpoint(const T &a, const T &b)
VecBase< T, 3 > to_scale(const MatBase< T, NumCol, NumRow > &mat)
MatBase< float, 4, 4 > float4x4
VecBase< float, 4 > float4
VecBase< float, 3 > float3
float texspace_location[3]
uint8_t blocker_shadow_set
uint8_t receiver_light_set
LightLinkingRuntime runtime
float4 bounding_corners[4]
float shadow_terminator_normal_offset
uint light_and_shadow_set_membership
float shadow_terminator_geometry_offset
float shadow_terminator_geometry_offset
LightLinking * light_linking
float shadow_terminator_normal_offset
DupliObject * dupli_object