Blender  V3.3
Classes | Typedefs | Functions
cycles/blender/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"

Go to the source code of this file.

Classes

struct  BObjectInfo
 
class  EdgeMap
 

Typedefs

typedef BL::ShaderNodeAttribute::attribute_type_enum BlenderAttributeType
 

Functions

void BKE_image_user_frame_calc (void *ima, void *iuser, int cfra)
 
void BKE_image_user_file_path_ex (void *bmain, void *iuser, void *ima, char *path, bool resolve_udim, bool resolve_multiview)
 
unsigned char * BKE_image_get_pixels_for_frame (void *image, int frame, int tile)
 
floatBKE_image_get_float_pixels_for_frame (void *image, int frame, int tile)
 
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 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 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 (BL::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 54 of file cycles/blender/util.h.

Function Documentation

◆ BKE_image_get_float_pixels_for_frame()

float* BKE_image_get_float_pixels_for_frame ( void image,
int  frame,
int  tile 
)

◆ BKE_image_get_pixels_for_frame()

unsigned char* BKE_image_get_pixels_for_frame ( void image,
int  frame,
int  tile 
)

◆ BKE_image_user_file_path_ex()

void BKE_image_user_file_path_ex ( void bmain,
void iuser,
void ima,
char *  path,
bool  resolve_udim,
bool  resolve_multiview 
)

Referenced by image_user_file_path().

◆ BKE_image_user_frame_calc()

void BKE_image_user_frame_calc ( void ima,
void iuser,
int  cfra 
)

◆ BKE_object_is_deform_modified()

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

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

References usdtokens::preview(), and scene.

◆ BKE_object_is_modified()

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

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

References usdtokens::preview(), and scene.

◆ blender_absolute_path()

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

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

References dirname(), path_dirname(), and path_join().

Referenced by add_node(), and set_default_value().

◆ blender_attribute_name_split_type()

BlenderAttributeType blender_attribute_name_split_type ( ustring  name,
string *  r_real_name 
)

Definition at line 119 of file blender/shader.cpp.

References instancer_attr_prefix(), and object_attr_prefix().

◆ 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 139 of file cycles/blender/util.h.

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

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 156 of file cycles/blender/util.h.

References curve, 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 209 of file cycles/blender/util.h.

References curvemapping_minmax(), data, float(), make_float3, size(), and t.

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 187 of file cycles/blender/util.h.

References curvemapping_minmax(), data, float(), map, max, min, size(), and t.

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 176 of file cycles/blender/util.h.

References curve, data, float(), size(), and t.

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

static bool get_boolean ( PointerRNA ptr,
const char *  name 
)
inlinestatic

◆ get_enum()

static int get_enum ( PointerRNA ptr,
const char *  name,
int  num_values = -1,
int  default_value = -1 
)
inlinestatic

◆ 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

◆ get_float3() [1/4]

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

◆ get_float3() [2/4]

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

Definition at line 344 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 349 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 369 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 354 of file cycles/blender/util.h.

References make_float4.

Referenced by attr_create_generic(), and set_default_value().

◆ get_float4() [2/2]

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

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

References ptr, and RNA_float_get_array().

◆ get_int()

static int get_int ( PointerRNA ptr,
const char *  name 
)
inlinestatic

◆ 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 364 of file cycles/blender/util.h.

References make_int4.

◆ get_string()

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

◆ get_text_datablock_content()

static string get_text_datablock_content ( const PointerRNA ptr)
inlinestatic

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

References PointerRNA::data, NULL, and ptr.

Referenced by add_node().

◆ get_transform()

static Transform get_transform ( const BL::Array< float, 16 > &  array)
inlinestatic

◆ image_get_float_pixels_for_frame()

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

◆ image_get_pixels_for_frame()

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

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

References BKE_image_get_pixels_for_frame(), image(), and tile.

Referenced by BlenderImageLoader::load_pixels().

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

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

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

References BKE_image_user_frame_calc().

Referenced by add_node().

◆ mesh_texture_space()

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

◆ object_fluid_gas_domain_find()

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

Definition at line 583 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 599 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 533 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 566 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 93 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 88 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 314 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 275 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 280 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 398 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 459 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 454 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 408 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 376 of file cycles/blender/util.h.

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

◆ set_float4()

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

Definition at line 388 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 418 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 475 of file cycles/blender/util.h.

References ptr, and RNA_string_set().