62 const int verts_num = mesh->verts_num;
65 float mapref_imat[4][4];
73 float mat_bone_world[4][4];
78 invert_m4_m4(mapref_imat, map_object->object_to_world().ptr());
82 invert_m4_m4(mapref_imat, map_object->object_to_world().ptr());
93 const OffsetIndices faces = mesh->faces();
94 const Span<int> corner_verts = mesh->corner_verts();
101 uvname, bke::AttrDomain::Corner,
float2(0));
104 for (
const int i : faces.index_range()) {
106 for (
const int corner : face) {
107 const int vert = corner_verts[corner];
110 r_texco[vert][0] = (uv_map[corner][0] * 2.0f) - 1.0f;
111 r_texco[vert][1] = (uv_map[corner][1] * 2.0f) - 1.0f;
126 for (i = 0; i < verts_num; i++, r_texco++) {
127 switch (texmapping) {
132 mul_v3_m4v3(*r_texco, ob->object_to_world().ptr(),
cos !=
nullptr ? *
cos : positions[i]);
135 mul_v3_m4v3(*r_texco, ob->object_to_world().ptr(),
cos !=
nullptr ? *
cos : positions[i]);
139 if (
cos !=
nullptr) {
167 if (*defgrp_index != -1) {
168 *dvert = mesh->deform_verts().data();
191 const char *bonename,
192 const char *description)
194 if (
object ==
nullptr) {
197 if (bonename[0] !=
'\0' && object->type ==
OB_ARMATURE) {
207#define INIT_TYPE(typeName) (types[eModifierType_##typeName] = &modifierType_##typeName)
Blender kernel action and pose functionality.
bPoseChannel * BKE_pose_channel_find_name(const bPose *pose, const char *name)
void CustomData_validate_layer_name(const CustomData *data, eCustomDataType type, blender::StringRef name, char *outname)
bool CustomData_has_layer(const CustomData *data, eCustomDataType type)
void BKE_image_user_frame_calc(Image *ima, ImageUser *iuser, int cfra)
bool BKE_image_is_animated(Image *image)
MDeformVert * BKE_lattice_deform_verts_get(const Object *oblatt)
#define BLI_BITMAP_NEW(_num, _alloc_string)
#define BLI_BITMAP_TEST(_bitmap, _index)
#define BLI_BITMAP_ENABLE(_bitmap, _index)
void mul_m4_m4m4(float R[4][4], const float A[4][4], const float B[4][4])
void mul_m4_v3(const float M[4][4], float r[3])
void mul_v3_m4v3(float r[3], const float mat[4][4], const float vec[3])
bool invert_m4_m4(float inverse[4][4], const float mat[4][4])
MINLINE void copy_v3_v3(float r[3], const float a[3])
void DEG_add_object_relation(DepsNodeHandle *node_handle, Object *object, eDepsObjectComponentType component, const char *description)
float DEG_get_ctime(const Depsgraph *graph)
#define MAX_CUSTOMDATA_LAYER_NAME
Object is a sort of wrapper for general info.
#define OB_TYPE_SUPPORT_VGROUP(_type)
Read Guarded memory(de)allocation.
void MOD_init_texture(MappingInfoModifierData *dmd, const ModifierEvalContext *ctx)
#define INIT_TYPE(typeName)
void MOD_depsgraph_update_object_bone_relation(DepsNodeHandle *node, Object *object, const char *bonename, const char *description)
void MOD_get_vgroup(const Object *ob, const Mesh *mesh, const char *name, const MDeformVert **dvert, int *defgrp_index)
void MOD_previous_vcos_store(ModifierData *md, const float(*vert_coords)[3])
void modifier_type_init(ModifierTypeInfo *types[])
void MOD_get_texture_coords(MappingInfoModifierData *dmd, const ModifierEvalContext *, Object *ob, Mesh *mesh, float(*cos)[3], float(*r_texco)[3])
in reality light always falls off quadratically Particle Retrieve the data of the particle that spawned the object for example to give variation to multiple instances of an object Point Retrieve information about points in a point cloud Retrieve the edges of an object as it appears to Cycles topology will always appear triangulated Convert a blackbody temperature to an RGB value Normal Generate a perturbed normal from an RGB normal map image Typically used for faking highly detailed surfaces Generate an OSL shader from a file or text data block Image Sample an image file as a texture Gabor Generate Gabor noise Gradient Generate interpolated color and intensity values based on the input vector Magic Generate a psychedelic color texture Voronoi Generate Worley noise based on the distance to random points Typically used to generate textures such as or biological cells Brick Generate a procedural texture producing bricks Texture Retrieve multiple types of texture coordinates nTypically used as inputs for texture nodes Vector Convert a or normal between and object coordinate space Combine Create a color from its and value channels Color Retrieve a color or the default fallback if none is specified Separate Split a vector into its and Z components Bevel
in reality light always falls off quadratically Particle Retrieve the data of the particle that spawned the object for example to give variation to multiple instances of an object Point Retrieve information about points in a point cloud Wireframe
void MEM_freeN(void *vmemh)
void *(* MEM_dupallocN)(const void *vmemh)
ccl_device_inline float3 cos(float3 v)
float(* vert_coords_prev)[3]
struct Object * map_object
struct ModifierData * next