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

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

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

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

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 color, make_float3(), array< T, alignment >::resize(), and size().

Referenced by add_node().

◆ curvemap_minmax_curve()

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

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(), data, float, make_float3(), and size().

Referenced by add_node().

◆ curvemapping_float_to_array()

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(), data, float, max, min, and size().

Referenced by add_node().

◆ curvemapping_minmax()

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

◆ curvemapping_to_array()

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

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

References data, float, and size().

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

◆ free_object_to_mesh()

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

◆ get_boolean()

◆ get_enum()

◆ get_enum_identifier()

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

◆ get_float()

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

◆ get_float2()

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]

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]

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]

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]

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]

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]

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

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

◆ get_int4()

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

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

string get_text_datablock_content ( const PointerRNA & ptr)
inlinestatic

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

References NULL, and ptr.

Referenced by add_node().

◆ get_transform()

◆ image_get_float_pixels_for_frame()

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

◆ image_get_pixels_for_frame()

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(), image(), and tile.

Referenced by BlenderImageLoader::load_pixels().

◆ image_is_builtin()

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

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(), BKE_image_user_frame_calc(), and data.

Referenced by add_node().

◆ image_user_frame_number()

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

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

◆ mesh_use_corner_normals()

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

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

◆ object_mesh_cache_find()

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

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

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

◆ object_ray_visibility()

uint object_ray_visibility ( BL::Object & b_ob)
inlinestatic

◆ object_subdivision_type()

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

◆ object_to_mesh()

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

◆ object_use_deform_motion()

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

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

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

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

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]

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]

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

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

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

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

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

◆ set_float4()

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

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

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