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;
64inline void ObjectInfos::sync()
79 ref.object->light_linking;
105 (1.0f / (
float)0xFFFFFFFF);
157 stream <<
"ObjectInfos(";
159 stream <<
"skipped)" << std::endl;
162 stream <<
"orco_add=" << infos.
orco_add <<
", ";
163 stream <<
"orco_mul=" << infos.
orco_mul <<
", ";
164 stream <<
"ob_color=" << infos.
ob_color <<
", ";
165 stream <<
"index=" << infos.
index <<
", ";
166 stream <<
"random=" << infos.
random <<
", ";
167 stream <<
"flag=" << infos.
flag <<
")" << std::endl;
177inline void ObjectBounds::sync()
190inline void ObjectBounds::sync(
const Object &ob,
float inflate_bounds)
213 if (inflate_bounds != 0.0f) {
215 float p = inflate_bounds;
216 float n = -inflate_bounds;
224inline void ObjectBounds::sync(
const float3 ¢er,
const float3 &size)
235 stream <<
"ObjectBounds(";
236 if (
bounds.bounding_sphere.w == -1.0f) {
237 stream <<
"skipped)" << std::endl;
241 stream <<
".bounding_corners[0]"
242 << *
reinterpret_cast<const float3 *
>(&
bounds.bounding_corners[0]) << std::endl;
243 stream <<
".bounding_corners[1]"
244 << *
reinterpret_cast<const float3 *
>(&
bounds.bounding_corners[1]) << std::endl;
245 stream <<
".bounding_corners[2]"
246 << *
reinterpret_cast<const float3 *
>(&
bounds.bounding_corners[2]) << std::endl;
247 stream <<
".bounding_corners[3]"
248 << *
reinterpret_cast<const float3 *
>(&
bounds.bounding_corners[3]) << std::endl;
249 stream <<
".sphere=(pos=" <<
float3(
bounds.bounding_sphere)
250 <<
", rad=" <<
bounds.bounding_sphere.w << std::endl;
251 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 ENUM_OPERATORS(_type, _max)
#define SET_FLAG_FROM_TEST(value, test, flag)
Object is a sort of wrapper for general info.
#define BASE_SELECTED(v3d, base)
static btDbvtVolume bounds(btDbvtNode **leaves, int count)
std::ostream & operator<<(std::ostream &stream, const ObjectMatrices &matrices)
draw_view in_light_buf[] float
CartesianBasis invert(const CartesianBasis &basis)
T midpoint(const T &a, const T &b)
VecBase< float, 4 > float4
float texspace_location[3]
uint8_t blocker_shadow_set
uint8_t receiver_light_set
LightLinkingRuntime runtime
float4 bounding_corners[4]
uint light_and_shadow_set_membership
LightLinking * light_linking
DupliObject * dupli_object