Blender V5.0
util.h File Reference
#include "RNA_access.hh"
#include "RNA_blender_cpp.hh"
#include "scene/mesh.h"
#include "scene/scene.h"
#include "util/algorithm.h"
#include "util/array.h"
#include "util/path.h"
#include "util/set.h"
#include "util/transform.h"
#include "util/types.h"
#include "DNA_mesh_types.h"
#include "DNA_object_types.h"
#include "DNA_view3d_types.h"
#include "BKE_global.hh"
#include "BKE_image.hh"
#include "BKE_lib_id.hh"
#include "BKE_mesh.h"
#include "BKE_mesh_types.hh"
#include "BKE_mesh_wrapper.hh"

Go to the source code of this file.

Classes

struct  BObjectInfo
class  EdgeMap

Typedefs

using BlenderAttributeType = BL::ShaderNodeAttribute::attribute_type_enum

Functions

static CCL_NAMESPACE_BEGIN BL::ID object_get_data (const BL::Object &b_ob, const bool use_adaptive_subdivision)
static BL::Mesh object_copy_mesh_data (const BObjectInfo &b_ob_info)
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 (const BObjectInfo &b_ob_info, BL::Mesh &mesh)
static BL::Mesh object_to_mesh (BObjectInfo &b_ob_info)
static void free_object_to_mesh (BObjectInfo &b_ob_info, BL::Mesh &mesh)
static void colorramp_to_array (BL::ColorRamp &ramp, array< float3 > &ramp_color, array< float > &ramp_alpha, const int size)
static void curvemap_minmax_curve (BL::CurveMap &curve, float *min_x, float *max_x)
static void curvemapping_minmax (BL::CurveMapping &cumap, const int num_curves, float *min_x, float *max_x)
static void curvemapping_to_array (BL::CurveMapping &cumap, array< float > &data, const int size)
static void curvemapping_float_to_array (BL::CurveMapping &cumap, array< float > &data, const int size)
static void curvemapping_color_to_array (BL::CurveMapping &cumap, array< float3 > &data, const 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, const int cfra)
static int image_user_frame_number (BL::ImageUser &iuser, BL::Image &ima, const int cfra)
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, const float3 value)
static float4 get_float4 (PointerRNA &ptr, const char *name)
static void set_float4 (PointerRNA &ptr, const char *name, const 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, const float value)
static int get_int (PointerRNA &ptr, const char *name)
static void set_int (PointerRNA &ptr, const char *name, const 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, const 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 BL::SubsurfModifier object_subdivision_modifier (BL::Object &b_ob, const bool preview)
static Mesh::SubdivisionType object_subdivision_type (BL::Object &b_ob, const bool preview, const bool use_adaptive_subdivision)
static void object_subdivision_to_mesh (BL::Object &b_ob, Mesh &mesh, const bool preview, const bool use_adaptive_subdivision)
static uint object_ray_visibility (BL::Object &b_ob)
static bool object_need_motion_attribute (BObjectInfo &b_ob_info, Scene *scene)
static bool region_view3d_navigating_or_transforming (const BL::RegionView3D &b_rv3d)

Typedef Documentation

◆ BlenderAttributeType

using BlenderAttributeType = BL::ShaderNodeAttribute::attribute_type_enum

Definition at line 80 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 280 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 275 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,
const int size )
inlinestatic

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

References i, 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 166 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,
const int size,
bool rgb_curve )
inlinestatic

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

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

Referenced by add_node().

◆ curvemapping_float_to_array()

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

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

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

Referenced by add_node().

◆ curvemapping_minmax()

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

◆ curvemapping_to_array()

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

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

References data, float, i, and size().

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

◆ free_object_to_mesh()

void free_object_to_mesh ( 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 name, 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 name, ptr, RNA_float_get_array(), and float4::x.

◆ get_int()

◆ get_int3()

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

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

References make_int3().

Referenced by BlenderSmokeLoader::load_grid().

◆ 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 name, ptr, and RNA_string_get().

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

References ptr.

Referenced by add_node().

◆ get_transform()

◆ image_is_builtin()

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

Definition at line 328 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,
const int cfra )
inlinestatic

Definition at line 302 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,
const int cfra )
inlinestatic

Definition at line 321 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 ( const BObjectInfo & b_ob_info,
BL::Mesh & mesh )
static

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

References blender::bke::Corner, and BObjectInfo::use_adaptive_subdivision.

Referenced by object_to_mesh().

◆ object_copy_mesh_data()

BL::Mesh object_copy_mesh_data ( const BObjectInfo & b_ob_info)
inlinestatic

◆ object_fluid_gas_domain_find()

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

◆ object_get_data()

CCL_NAMESPACE_BEGIN BL::ID object_get_data ( const BL::Object & b_ob,
const bool use_adaptive_subdivision )
inlinestatic

◆ object_mesh_cache_find()

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

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

References i, and 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 573 of file cycles/blender/util.h.

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

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

BL::SubsurfModifier object_subdivision_modifier ( BL::Object & b_ob,
const bool preview )
static

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

References enabled, mod, and PointerRNA_NULL.

Referenced by object_subdivision_to_mesh(), and object_subdivision_type().

◆ object_subdivision_to_mesh()

◆ object_subdivision_type()

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

◆ object_to_mesh()

◆ object_use_deform_motion()

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

Definition at line 606 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 91 of file python.cpp.

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 86 of file python.cpp.

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

◆ region_view3d_navigating_or_transforming()

bool region_view3d_navigating_or_transforming ( const BL::RegionView3D & b_rv3d)
inlinestatic

◆ render_add_metadata()

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

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

References name.

Referenced by add_cryptomatte_layer().

◆ render_resolution_x()

int render_resolution_x ( BL::RenderSettings & b_render)
inlinestatic

◆ render_resolution_y()

int render_resolution_y ( BL::RenderSettings & b_render)
inlinestatic

◆ set_boolean()

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

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

References name, ptr, and RNA_boolean_set().

◆ set_enum() [1/2]

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

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

References name, ptr, and RNA_enum_set().

◆ set_enum() [2/2]

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

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

References name, ptr, and RNA_enum_set_identifier().

◆ set_float()

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

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

References name, ptr, and RNA_float_set().

◆ set_float3()

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

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

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

◆ set_float4()

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

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

References name, ptr, RNA_float_set_array(), and float4::x.

◆ set_int()

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

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

References name, ptr, and RNA_int_set().

◆ set_string()

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

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

References name, ptr, and RNA_string_set().