Blender  V3.3
Functions
collada_utils.cpp File Reference
#include "COLLADABUPlatform.h"
#include "COLLADAFWGeometry.h"
#include "COLLADAFWMeshPrimitive.h"
#include "COLLADAFWMeshVertexData.h"
#include <set>
#include <string>
#include "MEM_guardedalloc.h"
#include "DNA_armature_types.h"
#include "DNA_constraint_types.h"
#include "DNA_customdata_types.h"
#include "DNA_key_types.h"
#include "DNA_mesh_types.h"
#include "DNA_modifier_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "BLI_linklist.h"
#include "BLI_listbase.h"
#include "BLI_math.h"
#include "BKE_action.h"
#include "BKE_armature.h"
#include "BKE_constraint.h"
#include "BKE_context.h"
#include "BKE_customdata.h"
#include "BKE_global.h"
#include "BKE_key.h"
#include "BKE_layer.h"
#include "BKE_lib_id.h"
#include "BKE_material.h"
#include "BKE_mesh.h"
#include "BKE_mesh_legacy_convert.h"
#include "BKE_mesh_runtime.h"
#include "BKE_node.h"
#include "BKE_object.h"
#include "BKE_scene.h"
#include "ED_node.h"
#include "ED_object.h"
#include "ED_screen.h"
#include "WM_api.h"
#include "WM_types.h"
#include "bmesh.h"
#include "bmesh_tools.h"
#include "DEG_depsgraph.h"
#include "DEG_depsgraph_query.h"
#include "BlenderContext.h"
#include "ExportSettings.h"
#include "collada_utils.h"

Go to the source code of this file.

Functions

float bc_get_float_value (const COLLADAFW::FloatOrDoubleArray &array, unsigned int index)
 
int bc_test_parent_loop (Object *par, Object *ob)
 
bool bc_validateConstraints (bConstraint *con)
 
bool bc_set_parent (Object *ob, Object *par, bContext *C, bool is_parent_space)
 
std::vector< bAction * > bc_getSceneActions (const bContext *C, Object *ob, bool all_actions)
 
std::string bc_get_action_id (std::string action_name, std::string ob_name, std::string channel_type, std::string axis_name, std::string axis_separator)
 
void bc_update_scene (BlenderContext &blender_context, float ctime)
 
Objectbc_add_object (Main *bmain, Scene *scene, ViewLayer *view_layer, int type, const char *name)
 
Meshbc_get_mesh_copy (BlenderContext &blender_context, Object *ob, BC_export_mesh_type export_mesh_type, bool apply_modifiers, bool triangulate)
 
Objectbc_get_assigned_armature (Object *ob)
 
bool bc_has_object_type (LinkNode *export_set, short obtype)
 
void bc_bubble_sort_by_Object_name (LinkNode *export_set)
 
bool bc_is_root_bone (Bone *aBone, bool deform_bones_only)
 
int bc_get_active_UVLayer (Object *ob)
 
std::string bc_url_encode (std::string data)
 
std::string bc_replace_string (std::string data, const std::string &pattern, const std::string &replacement)
 
void bc_match_scale (Object *ob, UnitConverter &bc_unit, bool scale_to_scene)
 
void bc_match_scale (std::vector< Object * > *objects_done, UnitConverter &bc_unit, bool scale_to_scene)
 
void bc_decompose (float mat[4][4], float *loc, float eul[3], float quat[4], float *size)
 
void bc_rotate_from_reference_quat (float quat_to[4], float quat_from[4], float mat_to[4][4])
 
void bc_triangulate_mesh (Mesh *me)
 
bool bc_is_leaf_bone (Bone *bone)
 
EditBonebc_get_edit_bone (bArmature *armature, char *name)
 
int bc_set_layer (int bitfield, int layer)
 
int bc_set_layer (int bitfield, int layer, bool enable)
 
bool isInteger (const std::string &s)
 
void bc_set_IDPropertyMatrix (EditBone *ebone, const char *key, float mat[4][4])
 
IDPropertybc_get_IDProperty (Bone *bone, std::string key)
 
float bc_get_property (Bone *bone, std::string key, float def)
 
bool bc_get_property_matrix (Bone *bone, std::string key, float mat[4][4])
 
void bc_get_property_vector (Bone *bone, std::string key, float val[3], const float def[3])
 
static bool has_custom_props (Bone *bone, bool enabled, std::string key)
 
void bc_enable_fcurves (bAction *act, char *bone_name)
 
bool bc_bone_matrix_local_get (Object *ob, Bone *bone, Matrix &mat, bool for_opensim)
 
bool bc_is_animated (BCMatrixSampleMap &values)
 
bool bc_has_animations (Object *ob)
 
bool bc_has_animations (Scene *sce, LinkNode *export_set)
 
void bc_add_global_transform (Matrix &to_mat, const Matrix &from_mat, const BCMatrix &global_transform, const bool invert)
 
void bc_add_global_transform (Vector &to_vec, const Vector &from_vec, const BCMatrix &global_transform, const bool invert)
 
void bc_add_global_transform (Matrix &to_mat, const BCMatrix &global_transform, const bool invert)
 
void bc_add_global_transform (Vector &to_vec, const BCMatrix &global_transform, const bool invert)
 
void bc_apply_global_transform (Matrix &to_mat, const BCMatrix &global_transform, const bool invert)
 
void bc_apply_global_transform (Vector &to_vec, const BCMatrix &global_transform, const bool invert)
 
void bc_create_restpose_mat (BCExportSettings &export_settings, Bone *bone, float to_mat[4][4], float from_mat[4][4], bool use_local_space)
 
void bc_sanitize_v3 (float v[3], int precision)
 
void bc_sanitize_v3 (double v[3], int precision)
 
void bc_copy_m4_farray (float r[4][4], float *a)
 
void bc_copy_farray_m4 (float *r, float a[4][4])
 
void bc_copy_darray_m4d (double *r, double a[4][4])
 
void bc_copy_v44_m4d (std::vector< std::vector< double >> &r, double(&a)[4][4])
 
void bc_copy_m4d_v44 (double(&r)[4][4], std::vector< std::vector< double >> &a)
 
static std::string bc_get_active_uvlayer_name (Mesh *me)
 
static std::string bc_get_active_uvlayer_name (Object *ob)
 
static std::string bc_get_uvlayer_name (Mesh *me, int layer)
 
static bNodeTreeprepare_material_nodetree (Material *ma)
 
static bNodebc_add_node (bContext *C, bNodeTree *ntree, int node_type, int locx, int locy, std::string label)
 
static bNodebc_add_node (bContext *C, bNodeTree *ntree, int node_type, int locx, int locy)
 
static void bc_node_add_link (bNodeTree *ntree, bNode *from_node, int from_index, bNode *to_node, int to_index)
 
void bc_add_default_shader (bContext *C, Material *ma)
 
COLLADASW::ColorOrTexture bc_get_base_color (Material *ma)
 
COLLADASW::ColorOrTexture bc_get_emission (Material *ma)
 
COLLADASW::ColorOrTexture bc_get_ambient (Material *ma)
 
COLLADASW::ColorOrTexture bc_get_specular (Material *ma)
 
COLLADASW::ColorOrTexture bc_get_reflective (Material *ma)
 
double bc_get_alpha (Material *ma)
 
double bc_get_ior (Material *ma)
 
double bc_get_shininess (Material *ma)
 
double bc_get_reflectivity (Material *ma)
 
bool bc_get_float_from_shader (bNode *shader, double &val, std::string nodeid)
 
COLLADASW::ColorOrTexture bc_get_cot_from_shader (bNode *shader, std::string nodeid, Color &default_color, bool with_alpha)
 
bNodebc_get_master_shader (Material *ma)
 
COLLADASW::ColorOrTexture bc_get_cot (float r, float g, float b, float a)
 
COLLADASW::ColorOrTexture bc_get_cot (Color col, bool with_alpha)
 

Function Documentation

◆ bc_add_default_shader()

void bc_add_default_shader ( bContext C,
Material ma 
)

◆ bc_add_global_transform() [1/4]

void bc_add_global_transform ( Matrix &  to_mat,
const BCMatrix global_transform,
const bool  invert 
)

Definition at line 920 of file collada_utils.cpp.

References BCMatrix::add_transform(), BCMatrix::get_matrix(), and invert().

◆ bc_add_global_transform() [2/4]

void bc_add_global_transform ( Matrix &  to_mat,
const Matrix &  from_mat,
const BCMatrix global_transform,
const bool  invert 
)

◆ bc_add_global_transform() [3/4]

void bc_add_global_transform ( Vector &  to_vec,
const BCMatrix global_transform,
const bool  invert 
)

Definition at line 927 of file collada_utils.cpp.

References copy_v3_v3(), BCMatrix::get_matrix(), invert(), and mul_v3_m4v3().

◆ bc_add_global_transform() [4/4]

void bc_add_global_transform ( Vector &  to_vec,
const Vector &  from_vec,
const BCMatrix global_transform,
const bool  invert 
)

Definition at line 911 of file collada_utils.cpp.

References bc_add_global_transform(), copy_v3_v3(), and invert().

◆ bc_add_node() [1/2]

static bNode* bc_add_node ( bContext C,
bNodeTree ntree,
int  node_type,
int  locx,
int  locy 
)
static

Definition at line 1132 of file collada_utils.cpp.

References bc_add_node(), C, and ntree.

◆ bc_add_node() [2/2]

static bNode* bc_add_node ( bContext C,
bNodeTree ntree,
int  node_type,
int  locx,
int  locy,
std::string  label 
)
static

Definition at line 1117 of file collada_utils.cpp.

References C, label, node, NODE_SELECT, nodeAddStaticNode(), and ntree.

Referenced by bc_add_default_shader(), and bc_add_node().

◆ bc_add_object()

Object* bc_add_object ( Main bmain,
Scene scene,
ViewLayer view_layer,
int  type,
const char *  name 
)

◆ bc_apply_global_transform() [1/2]

void bc_apply_global_transform ( Matrix &  to_mat,
const BCMatrix global_transform,
const bool  invert 
)

◆ bc_apply_global_transform() [2/2]

void bc_apply_global_transform ( Vector &  to_vec,
const BCMatrix global_transform,
const bool  invert 
)

Definition at line 943 of file collada_utils.cpp.

References BCMatrix::get_matrix(), mul_v3_m4v3(), and transform().

◆ bc_bone_matrix_local_get()

bool bc_bone_matrix_local_get ( Object ob,
Bone bone,
Matrix &  mat,
bool  for_opensim 
)

◆ bc_bubble_sort_by_Object_name()

void bc_bubble_sort_by_Object_name ( LinkNode export_set)

Definition at line 280 of file collada_utils.cpp.

References Freestyle::a, usdtokens::b(), LinkNode::link, LinkNode::next, and node.

Referenced by collada_export().

◆ bc_copy_darray_m4d()

void bc_copy_darray_m4d ( double r,
double  a[4][4] 
)

Definition at line 1041 of file collada_utils.cpp.

References Freestyle::a, and r.

◆ bc_copy_farray_m4()

void bc_copy_farray_m4 ( float r,
float  a[4][4] 
)

Definition at line 1032 of file collada_utils.cpp.

References Freestyle::a, and r.

◆ bc_copy_m4_farray()

void bc_copy_m4_farray ( float  r[4][4],
float a 
)

Definition at line 1023 of file collada_utils.cpp.

References Freestyle::a, and r.

◆ bc_copy_m4d_v44()

void bc_copy_m4d_v44 ( double(&)  r[4][4],
std::vector< std::vector< double >> &  a 
)

Definition at line 1059 of file collada_utils.cpp.

References Freestyle::a, and r.

◆ bc_copy_v44_m4d()

void bc_copy_v44_m4d ( std::vector< std::vector< double >> &  r,
double(&)  a[4][4] 
)

Definition at line 1050 of file collada_utils.cpp.

References Freestyle::a, and r.

◆ bc_create_restpose_mat()

void bc_create_restpose_mat ( BCExportSettings &  export_settings,
Bone bone,
float  to_mat[4][4],
float  from_mat[4][4],
bool  use_local_space 
)

Check if custom information about bind matrix exists and modify the from_mat accordingly.

Note
This is old style for Blender <= 2.78 only kept for compatibility.

Definition at line 950 of file collada_utils.cpp.

References usdtokens::b(), bc_decompose(), bc_get_IDProperty(), bc_get_property(), bc_get_property_vector(), copy_m4_m4(), DEG2RADF, has_custom_props(), loc_eulO_size_to_mat4(), Bone::parent, and rot.

◆ bc_decompose()

void bc_decompose ( float  mat[4][4],
float loc,
float  eul[3],
float  quat[4],
float size 
)

Convenience function to get only the needed components of a matrix.

Definition at line 367 of file collada_utils.cpp.

References copy_v3_v3(), mat4_to_eul(), mat4_to_quat(), mat4_to_size(), and size().

Referenced by TransformWriter::add_joint_transform(), TransformWriter::add_node_transform_ob(), and bc_create_restpose_mat().

◆ bc_enable_fcurves()

void bc_enable_fcurves ( bAction act,
char *  bone_name 
)

◆ bc_get_action_id()

std::string bc_get_action_id ( std::string  action_name,
std::string  ob_name,
std::string  channel_type,
std::string  axis_name,
std::string  axis_separator 
)

◆ bc_get_active_UVLayer()

int bc_get_active_UVLayer ( Object ob)

◆ bc_get_active_uvlayer_name() [1/2]

static std::string bc_get_active_uvlayer_name ( Mesh me)
static

Returns name of Active UV Layer or empty String if no active UV Layer defined

Definition at line 1071 of file collada_utils.cpp.

References bc_CustomData_get_active_layer_name(), CD_MLOOPUV, CustomData_number_of_layers(), and Mesh::ldata.

Referenced by bc_get_active_uvlayer_name().

◆ bc_get_active_uvlayer_name() [2/2]

static std::string bc_get_active_uvlayer_name ( Object ob)
static

Returns name of Active UV Layer or empty String if no active UV Layer defined. Assuming the Object is of type MESH

Definition at line 1087 of file collada_utils.cpp.

References bc_get_active_uvlayer_name(), and Object::data.

◆ bc_get_alpha()

double bc_get_alpha ( Material ma)

◆ bc_get_ambient()

COLLADASW::ColorOrTexture bc_get_ambient ( Material ma)

Definition at line 1278 of file collada_utils.cpp.

References bc_get_cot(), and Color.

◆ bc_get_assigned_armature()

Object* bc_get_assigned_armature ( Object ob)

◆ bc_get_base_color()

COLLADASW::ColorOrTexture bc_get_base_color ( Material ma)

◆ bc_get_cot() [1/2]

COLLADASW::ColorOrTexture bc_get_cot ( Color  col,
bool  with_alpha 
)

Definition at line 1382 of file collada_utils.cpp.

References col, color, and Color.

◆ bc_get_cot() [2/2]

COLLADASW::ColorOrTexture bc_get_cot ( float  r,
float  g,
float  b,
float  a 
)

◆ bc_get_cot_from_shader()

COLLADASW::ColorOrTexture bc_get_cot_from_shader ( bNode shader,
std::string  nodeid,
Color default_color,
bool  with_alpha 
)

◆ bc_get_edit_bone()

EditBone* bc_get_edit_bone ( bArmature armature,
char *  name 
)

Definition at line 435 of file collada_utils.cpp.

References bArmature::edbo, ListBase::first, EditBone::name, EditBone::next, and STREQ.

◆ bc_get_emission()

COLLADASW::ColorOrTexture bc_get_emission ( Material ma)

◆ bc_get_float_from_shader()

bool bc_get_float_from_shader ( bNode shader,
double val,
std::string  nodeid 
)

◆ bc_get_float_value()

float bc_get_float_value ( const COLLADAFW::FloatOrDoubleArray &  array,
unsigned int  index 
)

Definition at line 69 of file collada_utils.cpp.

Referenced by SkinInfo::borrow_skin_controller_data().

◆ bc_get_IDProperty()

IDProperty* bc_get_IDProperty ( Bone bone,
std::string  key 
)

Get a custom property when it exists. This function is also used to check if a property exists.

Definition at line 700 of file collada_utils.cpp.

References IDP_GetPropertyFromGroup(), and Bone::prop.

Referenced by bc_create_restpose_mat(), bc_get_property(), bc_get_property_matrix(), and has_custom_props().

◆ bc_get_ior()

double bc_get_ior ( Material ma)

◆ bc_get_master_shader()

bNode* bc_get_master_shader ( Material ma)

◆ bc_get_mesh_copy()

Mesh* bc_get_mesh_copy ( BlenderContext &  blender_context,
Object ob,
BC_export_mesh_type  export_mesh_type,
bool  apply_modifiers,
bool  triangulate 
)

◆ bc_get_property()

float bc_get_property ( Bone bone,
std::string  key,
float  def 
)

Read a custom bone property and convert to float Return def if the property does not exist.

Definition at line 705 of file collada_utils.cpp.

References bc_get_IDProperty(), float(), IDP_Double, IDP_DOUBLE, IDP_Float, IDP_FLOAT, IDP_Int, IDP_INT, and result.

Referenced by bc_create_restpose_mat(), and bc_get_property_vector().

◆ bc_get_property_matrix()

bool bc_get_property_matrix ( Bone bone,
std::string  key,
float  mat[4][4] 
)

Read a custom bone property and convert to matrix Return true if conversion was successful

Return false if:

  • the property does not exist
  • is not an array of size 16

Definition at line 727 of file collada_utils.cpp.

References bc_get_IDProperty(), IDP_Array, and IDP_ARRAY.

◆ bc_get_property_vector()

void bc_get_property_vector ( Bone bone,
std::string  key,
float  val[3],
const float  def[3] 
)

Get a vector that is stored in 3 custom properties (used in Blender <= 2.78).

Definition at line 742 of file collada_utils.cpp.

References bc_get_property().

Referenced by bc_create_restpose_mat().

◆ bc_get_reflective()

COLLADASW::ColorOrTexture bc_get_reflective ( Material ma)

Definition at line 1290 of file collada_utils.cpp.

References bc_get_cot(), and Color.

◆ bc_get_reflectivity()

double bc_get_reflectivity ( Material ma)

◆ bc_get_shininess()

double bc_get_shininess ( Material ma)

◆ bc_get_specular()

COLLADASW::ColorOrTexture bc_get_specular ( Material ma)

Definition at line 1284 of file collada_utils.cpp.

References bc_get_cot(), and Color.

◆ bc_get_uvlayer_name()

static std::string bc_get_uvlayer_name ( Mesh me,
int  layer 
)
static

Returns UV Layer name or empty string if layer index is out of range

Definition at line 1096 of file collada_utils.cpp.

References bc_CustomData_get_layer_name(), CD_MLOOPUV, CustomData_number_of_layers(), and Mesh::ldata.

◆ bc_getSceneActions()

std::vector<bAction *> bc_getSceneActions ( const bContext C,
Object ob,
bool  all_actions 
)

◆ bc_has_animations() [1/2]

bool bc_has_animations ( Object ob)

◆ bc_has_animations() [2/2]

bool bc_has_animations ( Scene sce,
LinkNode export_set 
)

Definition at line 887 of file collada_utils.cpp.

References bc_has_animations(), if(), and node.

◆ bc_has_object_type()

bool bc_has_object_type ( LinkNode export_set,
short  obtype 
)

Definition at line 266 of file collada_utils.cpp.

References Object::data, if(), node, and Object::type.

Referenced by DocumentExporter::exportCurrentScene().

◆ bc_is_animated()

bool bc_is_animated ( BCMatrixSampleMap values)

◆ bc_is_leaf_bone()

bool bc_is_leaf_bone ( Bone bone)

A bone is a leaf when it has no children or all children are not connected.

Definition at line 425 of file collada_utils.cpp.

References BONE_CONNECTED, Bone::childbase, and ListBase::first.

◆ bc_is_root_bone()

bool bc_is_root_bone ( Bone aBone,
bool  deform_bones_only 
)

Check if a bone is the top most exportable bone in the bone hierarchy. When deform_bones_only == false, then only bones with NO parent can be root bones. Otherwise the top most deform bones in the hierarchy are root bones.

Definition at line 304 of file collada_utils.cpp.

References BONE_NO_DEFORM, Bone::flag, and Bone::parent.

◆ bc_match_scale() [1/2]

void bc_match_scale ( Object ob,
UnitConverter bc_unit,
bool  scale_to_scene 
)

Calculate a rescale factor such that the imported scene's scale is preserved. I.e. 1 meter in the import will also be 1 meter in the current scene.

Definition at line 347 of file collada_utils.cpp.

References BKE_object_apply_mat4(), UnitConverter::get_rotation(), UnitConverter::get_scale(), mul_m4_m4m4(), and Object::obmat.

Referenced by bc_match_scale(), and DocumentImporter::finish().

◆ bc_match_scale() [2/2]

void bc_match_scale ( std::vector< Object * > *  objects_done,
UnitConverter bc_unit,
bool  scale_to_scene 
)

Definition at line 356 of file collada_utils.cpp.

References bc_match_scale().

◆ bc_node_add_link()

static void bc_node_add_link ( bNodeTree ntree,
bNode from_node,
int  from_index,
bNode to_node,
int  to_index 
)
static

Definition at line 1197 of file collada_utils.cpp.

References BLI_findlink(), bNode::inputs, nodeAddLink(), ntree, and bNode::outputs.

Referenced by bc_add_default_shader().

◆ bc_replace_string()

std::string bc_replace_string ( std::string  data,
const std::string &  pattern,
const std::string &  replacement 
)

Definition at line 335 of file collada_utils.cpp.

References data, and pos.

Referenced by bc_url_encode().

◆ bc_rotate_from_reference_quat()

void bc_rotate_from_reference_quat ( float  quat_to[4],
float  quat_from[4],
float  mat_to[4][4] 
)

Create rotation_quaternion from a delta rotation and a reference quat

Input: mat_from: The rotation matrix before rotation mat_to : The rotation matrix after rotation qref : the quat corresponding to mat_from

Output: rot : the calculated result (quaternion).

Definition at line 386 of file collada_utils.cpp.

References invert_m4_m4(), mat4_to_quat(), mul_m4_m4m4(), mul_qt_qtqt(), and quat_to_mat4().

◆ bc_sanitize_v3() [1/2]

void bc_sanitize_v3 ( double  v[3],
int  precision 
)

Definition at line 1016 of file collada_utils.cpp.

References double_round(), and v.

◆ bc_sanitize_v3() [2/2]

void bc_sanitize_v3 ( float  v[3],
int  precision 
)

Definition at line 1007 of file collada_utils.cpp.

References double(), double_round(), float(), and v.

Referenced by TransformWriter::add_node_transform_ob().

◆ bc_set_IDPropertyMatrix()

void bc_set_IDPropertyMatrix ( EditBone ebone,
const char *  key,
float  mat[4][4] 
)

Stores a 4*4 matrix as a custom bone property array of size 16.

Definition at line 655 of file collada_utils.cpp.

References IDPropertyTemplate::array, data, IDP_AddToGroup(), IDP_Array, IDP_ARRAY, IDP_FLOAT, IDP_GROUP, IDP_New(), if(), IDPropertyTemplate::len, EditBone::prop, and IDPropertyTemplate::type.

◆ bc_set_layer() [1/2]

int bc_set_layer ( int  bitfield,
int  layer 
)

Definition at line 447 of file collada_utils.cpp.

Referenced by BoneExtended::set_bone_layers().

◆ bc_set_layer() [2/2]

int bc_set_layer ( int  bitfield,
int  layer,
bool  enable 
)

Definition at line 452 of file collada_utils.cpp.

◆ bc_set_parent()

bool bc_set_parent ( Object ob,
Object par,
bContext C,
bool  is_parent_space 
)

◆ bc_test_parent_loop()

int bc_test_parent_loop ( Object par,
Object ob 
)

Definition at line 82 of file collada_utils.cpp.

References Object::parent.

◆ bc_triangulate_mesh()

void bc_triangulate_mesh ( Mesh me)

◆ bc_update_scene()

void bc_update_scene ( BlenderContext &  blender_context,
float  ctime 
)

◆ bc_url_encode()

std::string bc_url_encode ( std::string  data)

Definition at line 327 of file collada_utils.cpp.

References bc_replace_string(), and data.

Referenced by DocumentImporter::import().

◆ bc_validateConstraints()

bool bc_validateConstraints ( bConstraint con)

◆ has_custom_props()

static bool has_custom_props ( Bone bone,
bool  enabled,
std::string  key 
)
static

Check if vector exist stored in 3 custom properties (used in Blender <= 2.78)

Definition at line 752 of file collada_utils.cpp.

References bc_get_IDProperty(), and enabled.

Referenced by bc_create_restpose_mat().

◆ isInteger()

bool isInteger ( const std::string &  s)
inline

Definition at line 575 of file collada_utils.cpp.

Referenced by BoneExtended::set_bone_layers().

◆ prepare_material_nodetree()

static bNodeTree* prepare_material_nodetree ( Material ma)
static

Definition at line 1108 of file collada_utils.cpp.

References Material::nodetree, ntreeAddTree(), and Material::use_nodes.

Referenced by bc_add_default_shader().