79 if (linestyle_src->
mtex[
a]) {
81 *linestyle_dst->
mtex[
a] = *linestyle_src->
mtex[
a];
89 flag_private_id_data);
96 linestyle_modifier = linestyle_modifier->
next) {
103 linestyle_modifier = linestyle_modifier->
next) {
110 linestyle_modifier = linestyle_modifier->
next) {
117 linestyle_modifier = linestyle_modifier->
next) {
127 for (
int material_slot_index = 0; material_slot_index <
MAX_MTEX; material_slot_index++) {
156 for (
int i = 0; i <
MAX_MTEX; i++) {
199 for (m = modifiers->
first; m; m = m->
next) {
231 for (m = modifiers->
first; m; m = m->
next) {
268 for (m = modifiers->
first; m; m = m->
next) {
300 for (m = modifiers->
first; m; m = m->
next) {
336 for (m = modifiers->
first; m; m = m->
next) {
371 for (m = modifiers->
first; m; m = m->
next) {
405 for (m = modifiers->
first; m; m = m->
next) {
487 switch (modifier->
type) {
536 switch (modifier->
type) {
593 switch (modifier->
type) {
752 .name =
"FreestyleLineStyle",
753 .name_plural =
"linestyles",
762 .foreach_cache =
NULL,
770 .blend_read_undo_preserve =
NULL,
772 .lib_override_apply_post =
NULL,
778 "Distance from Camera",
779 "Distance from Object",
783 "Sinus Displacement",
787 "Backbone Stretcher",
1967 link->
data = color_ramp;
2022 char name_esc[
sizeof(m->
name) * 2];
2024 return BLI_sprintfN(
"color_modifiers[\"%s\"].color_ramp", name_esc);
2027 printf(
"BKE_linestyle_path_to_color_ramp: No color ramps correspond to the given pointer.\n");
2033 if (use_shading_nodes) {
2054 bNode *uv_along_stroke, *input_texure, *output_linestyle;
2065 uv_along_stroke->
locx = 0.0f;
2066 uv_along_stroke->
locy = 300.0f;
2070 input_texure->
locx = 200.0f;
2071 input_texure->
locy = 300.0f;
2074 output_linestyle->
locx = 400.0f;
2075 output_linestyle->
locy = 300.0f;
2077 output_linestyle->
custom2 = 0;
void BKE_animdata_blend_read_data(struct BlendDataReader *reader, struct AnimData *adt)
void BKE_animdata_blend_write(struct BlendWriter *writer, struct AnimData *adt)
struct ColorBand * BKE_colorband_add(bool rangetype)
struct Main * CTX_data_main(const bContext *C)
struct FreestyleLineSet * BKE_freestyle_lineset_get_active(struct FreestyleConfig *config)
@ LIB_ID_CREATE_NO_ALLOCATE
@ LIB_ID_CREATE_NO_USER_REFCOUNT
void * BKE_libblock_alloc(struct Main *bmain, short type, const char *name, const int flag) ATTR_WARN_UNUSED_RESULT
struct ID * BKE_id_copy_ex(struct Main *bmain, const struct ID *id, struct ID **r_newid, const int flag)
void id_us_plus(struct ID *id)
void BKE_id_blend_write(struct BlendWriter *writer, struct ID *id)
#define BKE_LIB_FOREACHID_PROCESS(_data, _id_super, _cb_flag)
bool BKE_library_foreach_ID_embedded(struct LibraryForeachIDData *data, struct ID **id_pp)
Blender kernel freestyle line style functionality.
void ntreeBlendWrite(struct BlendWriter *writer, struct bNodeTree *ntree)
#define SH_NODE_UVALONGSTROKE
void ntreeUpdateTree(struct Main *main, struct bNodeTree *ntree)
void ntreeFreeEmbeddedTree(struct bNodeTree *ntree)
struct bNodeLink * nodeAddLink(struct bNodeTree *ntree, struct bNode *fromnode, struct bNodeSocket *fromsock, struct bNode *tonode, struct bNodeSocket *tosock)
struct bNodeTree * ntreeAddTree(struct Main *bmain, const char *name, const char *idname)
struct bNode * nodeAddStaticNode(const struct bContext *C, struct bNodeTree *ntree, int type)
#define NODE_CLASS_TEXTURE
void nodeSetActive(struct bNodeTree *ntree, struct bNode *node)
void BKE_texture_mtex_foreach_id(struct LibraryForeachIDData *data, struct MTex *mtex)
#define LISTBASE_FOREACH(type, var, list)
void BLI_freelinkN(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
BLI_INLINE void BLI_listbase_clear(struct ListBase *lb)
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void void void bool BLI_listbase_link_move(ListBase *listbase, void *vlink, int step) ATTR_NONNULL()
int BLI_findindex(const struct ListBase *listbase, const void *vlink) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void * BLI_findlink(const struct ListBase *listbase, int number) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
size_t size_t char * BLI_sprintfN(const char *__restrict format,...) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1) ATTR_MALLOC ATTR_PRINTF_FORMAT(1
size_t size_t char size_t BLI_str_escape(char *__restrict dst, const char *__restrict src, const size_t dst_maxncpy) ATTR_NONNULL()
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, const size_t maxncpy) ATTR_NONNULL()
bool BLI_uniquename(struct ListBase *list, void *vlink, const char *defname, char delim, int name_offset, size_t len)
#define MEMCMP_STRUCT_AFTER_IS_ZERO(struct_var, member)
#define MEMCPY_STRUCT_AFTER(struct_dst, struct_src, member)
#define BLO_read_data_address(reader, ptr_p)
#define BLO_write_id_struct(writer, struct_name, id_address, id)
#define BLO_write_struct(writer, struct_name, data_ptr)
void BLO_read_list(BlendDataReader *reader, struct ListBase *list)
#define BLO_read_id_address(reader, lib, id_ptr_p)
#define BLO_expand(expander, id)
bool BLO_write_is_undo(BlendWriter *writer)
void BLO_write_struct_by_id(BlendWriter *writer, int struct_id, const void *data_ptr)
#define BLT_I18NCONTEXT_ID_FREESTYLELINESTYLE
#define DNA_struct_default_get(struct_name)
struct LineStyleColorModifier_Curvature_3D LineStyleColorModifier_Curvature_3D
struct LineStyleGeometryModifier_SinusDisplacement LineStyleGeometryModifier_SinusDisplacement
struct FreestyleLineStyle FreestyleLineStyle
struct LineStyleThicknessModifier_Curvature_3D LineStyleThicknessModifier_Curvature_3D
#define LS_MODIFIER_PERLIN_NOISE_1D
#define LS_THICKNESS_ASYMMETRIC
struct LineStyleThicknessModifier_CreaseAngle LineStyleThicknessModifier_CreaseAngle
struct LineStyleGeometryModifier_Simplification LineStyleGeometryModifier_Simplification
struct LineStyleThicknessModifier_Noise LineStyleThicknessModifier_Noise
struct LineStyleColorModifier_DistanceFromCamera LineStyleColorModifier_DistanceFromCamera
#define LS_MODIFIER_ENABLED
struct LineStyleGeometryModifier_2DOffset LineStyleGeometryModifier_2DOffset
struct LineStyleAlphaModifier_CreaseAngle LineStyleAlphaModifier_CreaseAngle
struct LineStyleAlphaModifier_DistanceFromCamera LineStyleAlphaModifier_DistanceFromCamera
struct LineStyleColorModifier_AlongStroke LineStyleColorModifier_AlongStroke
#define LS_MODIFIER_SPATIAL_NOISE_SMOOTH
struct LineStyleColorModifier_Material LineStyleColorModifier_Material
#define LS_MODIFIER_2D_TRANSFORM_PIVOT_CENTER
struct LineStyleThicknessModifier_DistanceFromCamera LineStyleThicknessModifier_DistanceFromCamera
#define LS_MODIFIER_TIP_REMOVER
struct LineStyleGeometryModifier_2DTransform LineStyleGeometryModifier_2DTransform
struct LineStyleGeometryModifier_PerlinNoise2D LineStyleGeometryModifier_PerlinNoise2D
#define LS_MODIFIER_DISTANCE_FROM_CAMERA
struct LineStyleThicknessModifier_AlongStroke LineStyleThicknessModifier_AlongStroke
struct LineStyleGeometryModifier_GuidingLines LineStyleGeometryModifier_GuidingLines
struct LineStyleGeometryModifier_SpatialNoise LineStyleGeometryModifier_SpatialNoise
#define LS_MODIFIER_SPATIAL_NOISE_PURERANDOM
struct LineStyleThicknessModifier_DistanceFromObject LineStyleThicknessModifier_DistanceFromObject
struct LineStyleThicknessModifier_Material LineStyleThicknessModifier_Material
struct LineStyleColorModifier_Tangent LineStyleColorModifier_Tangent
#define LS_MODIFIER_TANGENT
#define LS_MODIFIER_CREASE_ANGLE
#define LS_MODIFIER_BACKBONE_STRETCHER
struct LineStyleColorModifier_CreaseAngle LineStyleColorModifier_CreaseAngle
#define LS_MODIFIER_MATERIAL_LINE_A
struct LineStyleAlphaModifier_AlongStroke LineStyleAlphaModifier_AlongStroke
struct LineStyleAlphaModifier_Tangent LineStyleAlphaModifier_Tangent
#define LS_MODIFIER_SAMPLING
#define LS_MODIFIER_2D_OFFSET
#define LS_MODIFIER_DISTANCE_FROM_OBJECT
struct LineStyleColorModifier_Noise LineStyleColorModifier_Noise
#define LS_MODIFIER_NOISE
#define LS_MODIFIER_ALONG_STROKE
struct LineStyleGeometryModifier_BackboneStretcher LineStyleGeometryModifier_BackboneStretcher
struct LineStyleGeometryModifier_PerlinNoise1D LineStyleGeometryModifier_PerlinNoise1D
struct LineStyleAlphaModifier_Curvature_3D LineStyleAlphaModifier_Curvature_3D
#define LS_MODIFIER_POLYGONIZATION
#define LS_MODIFIER_CURVATURE_3D
#define LS_MODIFIER_MATERIAL_LINE
#define LS_MODIFIER_CALLIGRAPHY
#define LS_MODIFIER_BLUEPRINT
struct LineStyleColorModifier_DistanceFromObject LineStyleColorModifier_DistanceFromObject
#define LS_MODIFIER_BLUEPRINT_CIRCLES
struct LineStyleThicknessModifier_Tangent LineStyleThicknessModifier_Tangent
struct LineStyleGeometryModifier_Blueprint LineStyleGeometryModifier_Blueprint
#define LS_MODIFIER_2D_TRANSFORM
#define LS_MODIFIER_SPATIAL_NOISE
#define LS_MODIFIER_BEZIER_CURVE
#define LS_MODIFIER_PERLIN_NOISE_2D
#define LS_MODIFIER_SIMPLIFICATION
struct LineStyleAlphaModifier_Noise LineStyleAlphaModifier_Noise
#define LS_MODIFIER_SINUS_DISPLACEMENT
#define LS_MODIFIER_EXPANDED
struct LineStyleAlphaModifier_Material LineStyleAlphaModifier_Material
struct LineStyleAlphaModifier_DistanceFromObject LineStyleAlphaModifier_DistanceFromObject
struct LineStyleGeometryModifier_Sampling LineStyleGeometryModifier_Sampling
struct LineStyleGeometryModifier_Polygonalization LineStyleGeometryModifier_Polygonalization
#define LS_MODIFIER_MATERIAL
struct LineStyleThicknessModifier_Calligraphy LineStyleThicknessModifier_Calligraphy
#define LS_MODIFIER_GUIDING_LINES
struct LineStyleGeometryModifier_TipRemover LineStyleGeometryModifier_TipRemover
struct LineStyleGeometryModifier_BezierCurve LineStyleGeometryModifier_BezierCurve
Object is a sort of wrapper for general info.
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
Read Guarded memory(de)allocation.
static void init_data(ModifierData *md)
Group RGB to Bright Vector Camera Vector Combine Material Light SH_NODE_OUTPUT_LINESTYLE
Group RGB to Bright Vector Camera Vector Combine Material Light Line Style Layer Add Ambient Diffuse Glossy Refraction Transparent Toon Principled Hair Volume Principled Light Particle Volume SH_NODE_TEX_IMAGE
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
FreestyleLineStyle linestyle
static void direct_link_linestyle_alpha_modifier(BlendDataReader *reader, LineStyleModifier *modifier)
static void linestyle_free_data(ID *id)
void BKE_linestyle_default_shader(const bContext *C, FreestyleLineStyle *linestyle)
bool BKE_linestyle_use_textures(FreestyleLineStyle *linestyle, const bool use_shading_nodes)
static void linestyle_init_data(ID *id)
FreestyleLineStyle * BKE_linestyle_active_from_view_layer(ViewLayer *view_layer)
void BKE_linestyle_modifier_list_color_ramps(FreestyleLineStyle *linestyle, ListBase *listbase)
LineStyleModifier * BKE_linestyle_geometry_modifier_add(FreestyleLineStyle *linestyle, const char *name, int type)
static void linestyle_blend_read_lib(BlendLibReader *reader, ID *id)
bool BKE_linestyle_thickness_modifier_move(FreestyleLineStyle *linestyle, LineStyleModifier *modifier, int direction)
static void direct_link_linestyle_color_modifier(BlendDataReader *reader, LineStyleModifier *modifier)
void BKE_linestyle_init(FreestyleLineStyle *linestyle)
static void write_linestyle_geometry_modifiers(BlendWriter *writer, ListBase *modifiers)
int BKE_linestyle_thickness_modifier_remove(FreestyleLineStyle *linestyle, LineStyleModifier *m)
LineStyleModifier * BKE_linestyle_color_modifier_copy(FreestyleLineStyle *linestyle, const LineStyleModifier *m, const int flag)
bool BKE_linestyle_color_modifier_move(FreestyleLineStyle *linestyle, LineStyleModifier *modifier, int direction)
static void direct_link_linestyle_geometry_modifier(BlendDataReader *UNUSED(reader), LineStyleModifier *UNUSED(modifier))
LineStyleModifier * BKE_linestyle_thickness_modifier_add(FreestyleLineStyle *linestyle, const char *name, int type)
static void write_linestyle_alpha_modifiers(BlendWriter *writer, ListBase *modifiers)
static LineStyleModifier * alloc_geometry_modifier(const char *name, int type)
LineStyleModifier * BKE_linestyle_color_modifier_add(FreestyleLineStyle *linestyle, const char *name, int type)
static void direct_link_linestyle_thickness_modifier(BlendDataReader *reader, LineStyleModifier *modifier)
static LineStyleModifier * alloc_thickness_modifier(const char *name, int type)
static void write_linestyle_thickness_modifiers(BlendWriter *writer, ListBase *modifiers)
LineStyleModifier * BKE_linestyle_geometry_modifier_copy(FreestyleLineStyle *linestyle, const LineStyleModifier *m, const int UNUSED(flag))
static LineStyleModifier * alloc_alpha_modifier(const char *name, int type)
static void write_linestyle_color_modifiers(BlendWriter *writer, ListBase *modifiers)
int BKE_linestyle_color_modifier_remove(FreestyleLineStyle *linestyle, LineStyleModifier *m)
static void linestyle_blend_read_data(BlendDataReader *reader, ID *id)
static void linestyle_blend_write(BlendWriter *writer, ID *id, const void *id_address)
LineStyleModifier * BKE_linestyle_alpha_modifier_copy(FreestyleLineStyle *linestyle, const LineStyleModifier *m, const int UNUSED(flag))
bool BKE_linestyle_alpha_modifier_move(FreestyleLineStyle *linestyle, LineStyleModifier *modifier, int direction)
FreestyleLineStyle * BKE_linestyle_new(struct Main *bmain, const char *name)
bool BKE_linestyle_geometry_modifier_move(FreestyleLineStyle *linestyle, LineStyleModifier *modifier, int direction)
LineStyleModifier * BKE_linestyle_thickness_modifier_copy(FreestyleLineStyle *linestyle, const LineStyleModifier *m, const int flag)
static void linestyle_copy_data(Main *bmain, ID *id_dst, const ID *id_src, const int flag)
LineStyleModifier * BKE_linestyle_alpha_modifier_add(FreestyleLineStyle *linestyle, const char *name, int type)
int BKE_linestyle_alpha_modifier_remove(FreestyleLineStyle *linestyle, LineStyleModifier *m)
static LineStyleModifier * alloc_color_modifier(const char *name, int type)
static void linestyle_foreach_id(ID *id, LibraryForeachIDData *data)
static LineStyleModifier * new_modifier(const char *name, int type, size_t size)
static const char * modifier_name[LS_MODIFIER_NUM]
int BKE_linestyle_geometry_modifier_remove(FreestyleLineStyle *linestyle, LineStyleModifier *m)
static void add_to_modifier_list(ListBase *lb, LineStyleModifier *m)
char * BKE_linestyle_path_to_color_ramp(FreestyleLineStyle *linestyle, ColorBand *color_ramp)
static void linestyle_blend_read_expand(BlendExpander *expander, ID *id)
void(* MEM_freeN)(void *vmemh)
void *(* MEM_dupallocN)(const void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
void *(* MEM_mallocN)(size_t len, const char *str)
struct FreestyleLineStyle * linestyle
ListBase geometry_modifiers
struct bNodeTree * nodetree
ListBase thickness_modifiers
struct CurveMapping * curve
struct CurveMapping * curve
struct CurveMapping * curve
struct CurveMapping * curve
struct CurveMapping * curve
struct CurveMapping * curve
struct CurveMapping * curve
struct CurveMapping * curve
struct ColorBand * color_ramp
struct ColorBand * color_ramp
struct ColorBand * color_ramp
struct ColorBand * color_ramp
struct ColorBand * color_ramp
struct ColorBand * color_ramp
struct ColorBand * color_ramp
struct ColorBand * color_ramp
unsigned int random_backbone
unsigned int random_center
unsigned int random_radius
struct LineStyleModifier * next
struct CurveMapping * curve
struct CurveMapping * curve
struct CurveMapping * curve
struct CurveMapping * curve
struct CurveMapping * curve
struct CurveMapping * curve
struct CurveMapping * curve
struct FreestyleConfig freestyle_config