Blender V4.3
util.h File Reference
#include "scene/mesh.h"
#include "scene/scene.h"
#include "util/algorithm.h"
#include "util/array.h"
#include "util/map.h"
#include "util/path.h"
#include "util/set.h"
#include "util/transform.h"
#include "util/types.h"
#include "util/vector.h"
#include "BKE_image.hh"
#include "BKE_mesh.hh"

Go to the source code of this file.

Classes

struct  BObjectInfo
 
class  EdgeMap
 

Typedefs

typedef BL::ShaderNodeAttribute::attribute_type_enum BlenderAttributeType
 

Functions

BlenderAttributeType blender_attribute_name_split_type (ustring name, string *r_real_name)
 
void python_thread_state_save (void **python_thread_state)
 
void python_thread_state_restore (void **python_thread_state)
 
static bool mesh_use_corner_normals (BL::Mesh &mesh, Mesh::SubdivisionType subdivision_type)
 
static BL::Mesh object_to_mesh (BL::BlendData &, BObjectInfo &b_ob_info, BL::Depsgraph &, bool, Mesh::SubdivisionType subdivision_type)
 
static void free_object_to_mesh (BL::BlendData &, BObjectInfo &b_ob_info, BL::Mesh &mesh)
 
static void colorramp_to_array (BL::ColorRamp &ramp, array< float3 > &ramp_color, array< float > &ramp_alpha, int size)
 
static void curvemap_minmax_curve (BL::CurveMap &curve, float *min_x, float *max_x)
 
static void curvemapping_minmax (BL::CurveMapping &cumap, int num_curves, float *min_x, float *max_x)
 
static void curvemapping_to_array (BL::CurveMapping &cumap, array< float > &data, int size)
 
static void curvemapping_float_to_array (BL::CurveMapping &cumap, array< float > &data, int size)
 
static void curvemapping_color_to_array (BL::CurveMapping &cumap, array< float3 > &data, int size, bool rgb_curve)
 
static bool BKE_object_is_modified (BL::Object &self, BL::Scene &scene, bool preview)
 
static bool BKE_object_is_deform_modified (BObjectInfo &self, BL::Scene &scene, bool preview)
 
static int render_resolution_x (BL::RenderSettings &b_render)
 
static int render_resolution_y (BL::RenderSettings &b_render)
 
static string image_user_file_path (BL::BlendData &data, BL::ImageUser &iuser, BL::Image &ima, int cfra)
 
static int image_user_frame_number (BL::ImageUser &iuser, BL::Image &ima, int cfra)
 
static unsigned char * image_get_pixels_for_frame (BL::Image &image, int frame, int tile)
 
static floatimage_get_float_pixels_for_frame (BL::Image &image, int frame, int tile)
 
static bool image_is_builtin (BL::Image &ima, BL::RenderEngine &engine)
 
static void render_add_metadata (BL::RenderResult &b_rr, string name, string value)
 
static Transform get_transform (const BL::Array< float, 16 > &array)
 
static float2 get_float2 (const BL::Array< float, 2 > &array)
 
static float3 get_float3 (const BL::Array< float, 2 > &array)
 
static float3 get_float3 (const BL::Array< float, 3 > &array)
 
static float3 get_float3 (const BL::Array< float, 4 > &array)
 
static float4 get_float4 (const BL::Array< float, 4 > &array)
 
static int3 get_int3 (const BL::Array< int, 3 > &array)
 
static int4 get_int4 (const BL::Array< int, 4 > &array)
 
static float3 get_float3 (PointerRNA &ptr, const char *name)
 
static void set_float3 (PointerRNA &ptr, const char *name, float3 value)
 
static float4 get_float4 (PointerRNA &ptr, const char *name)
 
static void set_float4 (PointerRNA &ptr, const char *name, float4 value)
 
static bool get_boolean (PointerRNA &ptr, const char *name)
 
static void set_boolean (PointerRNA &ptr, const char *name, bool value)
 
static float get_float (PointerRNA &ptr, const char *name)
 
static void set_float (PointerRNA &ptr, const char *name, float value)
 
static int get_int (PointerRNA &ptr, const char *name)
 
static void set_int (PointerRNA &ptr, const char *name, int value)
 
static int get_enum (PointerRNA &ptr, const char *name, int num_values=-1, int default_value=-1)
 
static string get_enum_identifier (PointerRNA &ptr, const char *name)
 
static void set_enum (PointerRNA &ptr, const char *name, int value)
 
static void set_enum (PointerRNA &ptr, const char *name, const string &identifier)
 
static string get_string (PointerRNA &ptr, const char *name)
 
static void set_string (PointerRNA &ptr, const char *name, const string &value)
 
static string blender_absolute_path (BL::BlendData &b_data, BL::ID &b_id, const string &path)
 
static string get_text_datablock_content (const PointerRNA &ptr)
 
static void mesh_texture_space (const ::Mesh &b_mesh, float3 &loc, float3 &size)
 
static uint object_motion_steps (BL::Object &b_parent, BL::Object &b_ob, const int max_steps=INT_MAX)
 
static bool object_use_deform_motion (BL::Object &b_parent, BL::Object &b_ob)
 
static BL::FluidDomainSettings object_fluid_gas_domain_find (BL::Object &b_ob)
 
static BL::MeshSequenceCacheModifier object_mesh_cache_find (BL::Object &b_ob, bool *has_subdivision_modifier)
 
static Mesh::SubdivisionType object_subdivision_type (BL::Object &b_ob, bool preview, bool experimental)
 
static uint object_ray_visibility (BL::Object &b_ob)
 
static bool object_need_motion_attribute (BObjectInfo &b_ob_info, Scene *scene)
 

Typedef Documentation

◆ BlenderAttributeType

typedef BL::ShaderNodeAttribute::attribute_type_enum BlenderAttributeType

Definition at line 47 of file cycles/blender/util.h.

Function Documentation

◆ BKE_object_is_deform_modified()

static bool BKE_object_is_deform_modified ( BObjectInfo & self,
BL::Scene & scene,
bool preview )
inlinestatic

Definition at line 277 of file cycles/blender/util.h.

References self, and true.

◆ BKE_object_is_modified()

static bool BKE_object_is_modified ( BL::Object & self,
BL::Scene & scene,
bool preview )
inlinestatic

Definition at line 272 of file cycles/blender/util.h.

References self, and true.

◆ blender_absolute_path()

static string blender_absolute_path ( BL::BlendData & b_data,
BL::ID & b_id,
const string & path )
inlinestatic

◆ blender_attribute_name_split_type()

BlenderAttributeType blender_attribute_name_split_type ( ustring name,
string * r_real_name )

◆ colorramp_to_array()

static void colorramp_to_array ( BL::ColorRamp & ramp,
array< float3 > & ramp_color,
array< float > & ramp_alpha,
int size )
inlinestatic

Definition at line 149 of file cycles/blender/util.h.

References make_float3(), and array< T, alignment >::resize().

Referenced by add_node().

◆ curvemap_minmax_curve()

static void curvemap_minmax_curve ( BL::CurveMap & curve,
float * min_x,
float * max_x )
inlinestatic

Definition at line 167 of file cycles/blender/util.h.

References max, and min.

Referenced by curvemapping_minmax().

◆ curvemapping_color_to_array()

static void curvemapping_color_to_array ( BL::CurveMapping & cumap,
array< float3 > & data,
int size,
bool rgb_curve )
inlinestatic

Definition at line 222 of file cycles/blender/util.h.

References curvemapping_minmax(), float, and make_float3().

Referenced by add_node().

◆ curvemapping_float_to_array()

static void curvemapping_float_to_array ( BL::CurveMapping & cumap,
array< float > & data,
int size )
inlinestatic

Definition at line 199 of file cycles/blender/util.h.

References curvemapping_minmax(), float, min, and range.

Referenced by add_node().

◆ curvemapping_minmax()

static void curvemapping_minmax ( BL::CurveMapping & cumap,
int num_curves,
float * min_x,
float * max_x )
inlinestatic

◆ curvemapping_to_array()

static void curvemapping_to_array ( BL::CurveMapping & cumap,
array< float > & data,
int size )
inlinestatic

Definition at line 187 of file cycles/blender/util.h.

References float.

Referenced by blender_camera_from_view(), and BlenderSync::sync_camera().

◆ free_object_to_mesh()

static void free_object_to_mesh ( BL::BlendData & ,
BObjectInfo & b_ob_info,
BL::Mesh & mesh )
inlinestatic

◆ get_boolean()

◆ get_enum()

◆ get_enum_identifier()

static string get_enum_identifier ( PointerRNA & ptr,
const char * name )
inlinestatic

◆ get_float()

static float get_float ( PointerRNA & ptr,
const char * name )
inlinestatic

◆ get_float2()

static float2 get_float2 ( const BL::Array< float, 2 > & array)
inlinestatic

Definition at line 372 of file cycles/blender/util.h.

References make_float2().

Referenced by blender_camera_from_view().

◆ get_float3() [1/4]

static float3 get_float3 ( const BL::Array< float, 2 > & array)
inlinestatic

Definition at line 377 of file cycles/blender/util.h.

References make_float3().

Referenced by add_node(), get_tex_mapping(), and set_default_value().

◆ get_float3() [2/4]

static float3 get_float3 ( const BL::Array< float, 3 > & array)
inlinestatic

Definition at line 382 of file cycles/blender/util.h.

References make_float3().

◆ get_float3() [3/4]

static float3 get_float3 ( const BL::Array< float, 4 > & array)
inlinestatic

Definition at line 387 of file cycles/blender/util.h.

References make_float3().

◆ get_float3() [4/4]

static float3 get_float3 ( PointerRNA & ptr,
const char * name )
inlinestatic

Definition at line 407 of file cycles/blender/util.h.

References ptr, RNA_float_get_array(), and float3::x.

◆ get_float4() [1/2]

static float4 get_float4 ( const BL::Array< float, 4 > & array)
inlinestatic

Definition at line 392 of file cycles/blender/util.h.

References make_float4().

Referenced by set_default_value().

◆ get_float4() [2/2]

static float4 get_float4 ( PointerRNA & ptr,
const char * name )
inlinestatic

Definition at line 419 of file cycles/blender/util.h.

References ptr, and RNA_float_get_array().

◆ get_int()

◆ get_int3()

static int3 get_int3 ( const BL::Array< int, 3 > & array)
inlinestatic

◆ get_int4()

static int4 get_int4 ( const BL::Array< int, 4 > & array)
inlinestatic

Definition at line 402 of file cycles/blender/util.h.

References make_int4().

◆ get_string()

static string get_string ( PointerRNA & ptr,
const char * name )
inlinestatic

Definition at line 502 of file cycles/blender/util.h.

References MEM_freeN(), NULL, ptr, RNA_string_get_alloc(), and str.

Referenced by blender_device_info(), and set_default_value().

◆ get_text_datablock_content()

static string get_text_datablock_content ( const PointerRNA & ptr)
inlinestatic

Definition at line 540 of file cycles/blender/util.h.

References PointerRNA::data, NULL, and ptr.

Referenced by add_node().

◆ get_transform()

◆ image_get_float_pixels_for_frame()

static float * image_get_float_pixels_for_frame ( BL::Image & image,
int frame,
int tile )
inlinestatic

Definition at line 330 of file cycles/blender/util.h.

References BKE_image_get_float_pixels_for_frame(), and tile.

Referenced by BlenderImageLoader::load_pixels().

◆ image_get_pixels_for_frame()

static unsigned char * image_get_pixels_for_frame ( BL::Image & image,
int frame,
int tile )
inlinestatic

Definition at line 325 of file cycles/blender/util.h.

References BKE_image_get_pixels_for_frame(), and tile.

Referenced by BlenderImageLoader::load_pixels().

◆ image_is_builtin()

static bool image_is_builtin ( BL::Image & ima,
BL::RenderEngine & engine )
inlinestatic

Definition at line 335 of file cycles/blender/util.h.

References tile.

Referenced by add_node().

◆ image_user_file_path()

static string image_user_file_path ( BL::BlendData & data,
BL::ImageUser & iuser,
BL::Image & ima,
int cfra )
inlinestatic

Definition at line 299 of file cycles/blender/util.h.

References BKE_image_user_file_path_ex(), and BKE_image_user_frame_calc().

Referenced by add_node().

◆ image_user_frame_number()

static int image_user_frame_number ( BL::ImageUser & iuser,
BL::Image & ima,
int cfra )
inlinestatic

Definition at line 318 of file cycles/blender/util.h.

References BKE_image_user_frame_calc().

Referenced by add_node().

◆ mesh_texture_space()

static void mesh_texture_space ( const ::Mesh & b_mesh,
float3 & loc,
float3 & size )
inlinestatic

◆ mesh_use_corner_normals()

static bool mesh_use_corner_normals ( BL::Mesh & mesh,
Mesh::SubdivisionType subdivision_type )
static

Definition at line 53 of file cycles/blender/util.h.

References blender::bke::Corner, and Mesh::SUBDIVISION_NONE.

Referenced by object_to_mesh().

◆ object_fluid_gas_domain_find()

static BL::FluidDomainSettings object_fluid_gas_domain_find ( BL::Object & b_ob)
inlinestatic

Definition at line 628 of file cycles/blender/util.h.

References PointerRNA_NULL.

Referenced by determine_geom_type(), and sync_smoke_volume().

◆ object_mesh_cache_find()

static BL::MeshSequenceCacheModifier object_mesh_cache_find ( BL::Object & b_ob,
bool * has_subdivision_modifier )
inlinestatic

Definition at line 645 of file cycles/blender/util.h.

References PointerRNA_NULL.

◆ object_motion_steps()

static uint object_motion_steps ( BL::Object & b_parent,
BL::Object & b_ob,
const int max_steps = INT_MAX )
inlinestatic

Definition at line 579 of file cycles/blender/util.h.

References get_boolean(), get_int(), max, min, RNA_pointer_get(), and steps.

Referenced by blender_camera_from_object().

◆ object_need_motion_attribute()

static bool object_need_motion_attribute ( BObjectInfo & b_ob_info,
Scene * scene )
inlinestatic

◆ object_ray_visibility()

static uint object_ray_visibility ( BL::Object & b_ob)
inlinestatic

◆ object_subdivision_type()

static Mesh::SubdivisionType object_subdivision_type ( BL::Object & b_ob,
bool preview,
bool experimental )
inlinestatic

◆ object_to_mesh()

static BL::Mesh object_to_mesh ( BL::BlendData & ,
BObjectInfo & b_ob_info,
BL::Depsgraph & ,
bool ,
Mesh::SubdivisionType subdivision_type )
inlinestatic

◆ object_use_deform_motion()

static bool object_use_deform_motion ( BL::Object & b_parent,
BL::Object & b_ob )
inlinestatic

Definition at line 612 of file cycles/blender/util.h.

References get_boolean(), and RNA_pointer_get().

◆ python_thread_state_restore()

void python_thread_state_restore ( void ** python_thread_state)

Definition at line 96 of file python.cpp.

References NULL.

Referenced by bake_func(), render_frame_finish_func(), render_func(), reset_func(), and sync_func().

◆ python_thread_state_save()

void python_thread_state_save ( void ** python_thread_state)

Definition at line 91 of file python.cpp.

Referenced by bake_func(), render_frame_finish_func(), render_func(), reset_func(), and sync_func().

◆ render_add_metadata()

static void render_add_metadata ( BL::RenderResult & b_rr,
string name,
string value )
inlinestatic

Definition at line 352 of file cycles/blender/util.h.

Referenced by add_cryptomatte_layer().

◆ render_resolution_x()

static int render_resolution_x ( BL::RenderSettings & b_render)
inlinestatic

Definition at line 289 of file cycles/blender/util.h.

Referenced by blender_camera_init(), and BlenderSession::reset_session().

◆ render_resolution_y()

static int render_resolution_y ( BL::RenderSettings & b_render)
inlinestatic

Definition at line 294 of file cycles/blender/util.h.

Referenced by blender_camera_init(), and BlenderSession::reset_session().

◆ set_boolean()

static void set_boolean ( PointerRNA & ptr,
const char * name,
bool value )
inlinestatic

Definition at line 436 of file cycles/blender/util.h.

References ptr, and RNA_boolean_set().

◆ set_enum() [1/2]

static void set_enum ( PointerRNA & ptr,
const char * name,
const string & identifier )
inlinestatic

Definition at line 497 of file cycles/blender/util.h.

References NULL, ptr, and RNA_enum_set_identifier().

◆ set_enum() [2/2]

static void set_enum ( PointerRNA & ptr,
const char * name,
int value )
inlinestatic

Definition at line 492 of file cycles/blender/util.h.

References ptr, and RNA_enum_set().

◆ set_float()

static void set_float ( PointerRNA & ptr,
const char * name,
float value )
inlinestatic

Definition at line 446 of file cycles/blender/util.h.

References ptr, and RNA_float_set().

◆ set_float3()

static void set_float3 ( PointerRNA & ptr,
const char * name,
float3 value )
inlinestatic

Definition at line 414 of file cycles/blender/util.h.

References ptr, and RNA_float_set_array().

◆ set_float4()

static void set_float4 ( PointerRNA & ptr,
const char * name,
float4 value )
inlinestatic

Definition at line 426 of file cycles/blender/util.h.

References ptr, and RNA_float_set_array().

◆ set_int()

static void set_int ( PointerRNA & ptr,
const char * name,
int value )
inlinestatic

Definition at line 456 of file cycles/blender/util.h.

References ptr, and RNA_int_set().

◆ set_string()

static void set_string ( PointerRNA & ptr,
const char * name,
const string & value )
inlinestatic

Definition at line 514 of file cycles/blender/util.h.

References ptr, and RNA_string_set().