Blender V5.0
linestyle.cc File Reference
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <optional>
#include <fmt/format.h>
#include "MEM_guardedalloc.h"
#include "DNA_defaults.h"
#include "DNA_material_types.h"
#include "DNA_object_types.h"
#include "DNA_sdna_type_ids.hh"
#include "DNA_texture_types.h"
#include "BLI_listbase.h"
#include "BLI_math_rotation.h"
#include "BLI_string.h"
#include "BLI_string_utf8.h"
#include "BLI_string_utils.hh"
#include "BLI_utildefines.h"
#include "BLT_translation.hh"
#include "BKE_colorband.hh"
#include "BKE_colortools.hh"
#include "BKE_context.hh"
#include "BKE_freestyle.h"
#include "BKE_idtype.hh"
#include "BKE_lib_id.hh"
#include "BKE_lib_query.hh"
#include "BKE_linestyle.h"
#include "BKE_node.hh"
#include "BKE_node_legacy_types.hh"
#include "BKE_node_tree_update.hh"
#include "BKE_texture.h"
#include "BLO_read_write.hh"

Go to the source code of this file.

Functions

static void linestyle_init_data (ID *id)
static void linestyle_copy_data (Main *bmain, std::optional< Library * > owner_library, ID *id_dst, const ID *id_src, const int flag)
static void linestyle_free_data (ID *id)
static void linestyle_foreach_id (ID *id, LibraryForeachIDData *data)
static void linestyle_foreach_working_space_color (ID *id, const IDTypeForeachColorFunctionCallback &fn)
static void write_linestyle_color_modifiers (BlendWriter *writer, ListBase *modifiers)
static void write_linestyle_alpha_modifiers (BlendWriter *writer, ListBase *modifiers)
static void write_linestyle_thickness_modifiers (BlendWriter *writer, ListBase *modifiers)
static void write_linestyle_geometry_modifiers (BlendWriter *writer, ListBase *modifiers)
static void linestyle_blend_write (BlendWriter *writer, ID *id, const void *id_address)
static void direct_link_linestyle_color_modifier (BlendDataReader *reader, LineStyleModifier *modifier)
static void direct_link_linestyle_alpha_modifier (BlendDataReader *reader, LineStyleModifier *modifier)
static void direct_link_linestyle_thickness_modifier (BlendDataReader *reader, LineStyleModifier *modifier)
static void direct_link_linestyle_geometry_modifier (BlendDataReader *, LineStyleModifier *)
static void linestyle_blend_read_data (BlendDataReader *reader, ID *id)
void BKE_linestyle_init (FreestyleLineStyle *linestyle)
FreestyleLineStyleBKE_linestyle_new (Main *bmain, const char *name)
FreestyleLineStyleBKE_linestyle_active_from_view_layer (ViewLayer *view_layer)
static LineStyleModifiernew_modifier (const char *name, int type, size_t size)
static void add_to_modifier_list (ListBase *lb, LineStyleModifier *m)
static LineStyleModifieralloc_color_modifier (const char *name, int type)
LineStyleModifierBKE_linestyle_color_modifier_add (FreestyleLineStyle *linestyle, const char *name, int type)
LineStyleModifierBKE_linestyle_color_modifier_copy (FreestyleLineStyle *linestyle, const LineStyleModifier *m, const int flag)
int BKE_linestyle_color_modifier_remove (FreestyleLineStyle *linestyle, LineStyleModifier *m)
static LineStyleModifieralloc_alpha_modifier (const char *name, int type)
LineStyleModifierBKE_linestyle_alpha_modifier_add (FreestyleLineStyle *linestyle, const char *name, int type)
LineStyleModifierBKE_linestyle_alpha_modifier_copy (FreestyleLineStyle *linestyle, const LineStyleModifier *m, const int)
int BKE_linestyle_alpha_modifier_remove (FreestyleLineStyle *linestyle, LineStyleModifier *m)
static LineStyleModifieralloc_thickness_modifier (const char *name, int type)
LineStyleModifierBKE_linestyle_thickness_modifier_add (FreestyleLineStyle *linestyle, const char *name, int type)
LineStyleModifierBKE_linestyle_thickness_modifier_copy (FreestyleLineStyle *linestyle, const LineStyleModifier *m, const int flag)
int BKE_linestyle_thickness_modifier_remove (FreestyleLineStyle *linestyle, LineStyleModifier *m)
static LineStyleModifieralloc_geometry_modifier (const char *name, int type)
LineStyleModifierBKE_linestyle_geometry_modifier_add (FreestyleLineStyle *linestyle, const char *name, int type)
LineStyleModifierBKE_linestyle_geometry_modifier_copy (FreestyleLineStyle *linestyle, const LineStyleModifier *m, const int)
int BKE_linestyle_geometry_modifier_remove (FreestyleLineStyle *linestyle, LineStyleModifier *m)
bool BKE_linestyle_color_modifier_move (FreestyleLineStyle *linestyle, LineStyleModifier *modifier, int direction)
bool BKE_linestyle_alpha_modifier_move (FreestyleLineStyle *linestyle, LineStyleModifier *modifier, int direction)
bool BKE_linestyle_thickness_modifier_move (FreestyleLineStyle *linestyle, LineStyleModifier *modifier, int direction)
bool BKE_linestyle_geometry_modifier_move (FreestyleLineStyle *linestyle, LineStyleModifier *modifier, int direction)
void BKE_linestyle_modifier_list_color_ramps (FreestyleLineStyle *linestyle, ListBase *listbase)
std::optional< std::string > BKE_linestyle_path_to_color_ramp (FreestyleLineStyle *linestyle, const ColorBand *color_ramp)
bool BKE_linestyle_use_textures (FreestyleLineStyle *linestyle, const bool use_shading_nodes)
void BKE_linestyle_default_shader (const bContext *C, FreestyleLineStyle *linestyle)
template<typename T>
int sdna_struct_id_get ()

Variables

IDTypeInfo IDType_ID_LS
static const char * modifier_name [LS_MODIFIER_NUM]

Function Documentation

◆ add_to_modifier_list()

◆ alloc_alpha_modifier()

◆ alloc_color_modifier()

◆ alloc_geometry_modifier()

◆ alloc_thickness_modifier()

◆ BKE_linestyle_active_from_view_layer()

◆ BKE_linestyle_alpha_modifier_add()

◆ BKE_linestyle_alpha_modifier_copy()

LineStyleModifier * BKE_linestyle_alpha_modifier_copy ( FreestyleLineStyle * linestyle,
const LineStyleModifier * m,
const int flag )

Definition at line 1073 of file linestyle.cc.

References add_to_modifier_list(), alloc_alpha_modifier(), FreestyleLineStyle::alpha_modifiers, LineStyleAlphaModifier_Noise::amplitude, BKE_curvemapping_copy(), LineStyleModifier::blend, LineStyleAlphaModifier_AlongStroke::curve, LineStyleAlphaModifier_CreaseAngle::curve, LineStyleAlphaModifier_Curvature_3D::curve, LineStyleAlphaModifier_DistanceFromCamera::curve, LineStyleAlphaModifier_DistanceFromObject::curve, LineStyleAlphaModifier_Material::curve, LineStyleAlphaModifier_Noise::curve, LineStyleAlphaModifier_Tangent::curve, LineStyleAlphaModifier_AlongStroke::flags, LineStyleAlphaModifier_CreaseAngle::flags, LineStyleAlphaModifier_Curvature_3D::flags, LineStyleAlphaModifier_DistanceFromCamera::flags, LineStyleAlphaModifier_DistanceFromObject::flags, LineStyleAlphaModifier_Material::flags, LineStyleAlphaModifier_Noise::flags, LineStyleAlphaModifier_Tangent::flags, LineStyleModifier::flags, Object::id, id_us_plus(), LineStyleModifier::influence, LS_MODIFIER_ALONG_STROKE, LS_MODIFIER_CREASE_ANGLE, LS_MODIFIER_CURVATURE_3D, LS_MODIFIER_DISTANCE_FROM_CAMERA, LS_MODIFIER_DISTANCE_FROM_OBJECT, LS_MODIFIER_MATERIAL, LS_MODIFIER_NOISE, LS_MODIFIER_TANGENT, LineStyleAlphaModifier_Material::mat_attr, LineStyleAlphaModifier_CreaseAngle::max_angle, LineStyleAlphaModifier_Curvature_3D::max_curvature, LineStyleAlphaModifier_CreaseAngle::min_angle, LineStyleAlphaModifier_Curvature_3D::min_curvature, LineStyleModifier::name, LineStyleAlphaModifier_Noise::period, LineStyleAlphaModifier_DistanceFromCamera::range_max, LineStyleAlphaModifier_DistanceFromObject::range_max, LineStyleAlphaModifier_DistanceFromCamera::range_min, LineStyleAlphaModifier_DistanceFromObject::range_min, LineStyleAlphaModifier_Noise::seed, LineStyleAlphaModifier_DistanceFromObject::target, and LineStyleModifier::type.

Referenced by linestyle_copy_data().

◆ BKE_linestyle_alpha_modifier_move()

bool BKE_linestyle_alpha_modifier_move ( FreestyleLineStyle * linestyle,
LineStyleModifier * modifier,
int direction )

Definition at line 1814 of file linestyle.cc.

References FreestyleLineStyle::alpha_modifiers, and BLI_listbase_link_move().

◆ BKE_linestyle_alpha_modifier_remove()

◆ BKE_linestyle_color_modifier_add()

◆ BKE_linestyle_color_modifier_copy()

LineStyleModifier * BKE_linestyle_color_modifier_copy ( FreestyleLineStyle * linestyle,
const LineStyleModifier * m,
const int flag )

Definition at line 838 of file linestyle.cc.

References add_to_modifier_list(), alloc_color_modifier(), LineStyleColorModifier_Noise::amplitude, LineStyleModifier::blend, FreestyleLineStyle::color_modifiers, LineStyleColorModifier_AlongStroke::color_ramp, LineStyleColorModifier_CreaseAngle::color_ramp, LineStyleColorModifier_Curvature_3D::color_ramp, LineStyleColorModifier_DistanceFromCamera::color_ramp, LineStyleColorModifier_DistanceFromObject::color_ramp, LineStyleColorModifier_Material::color_ramp, LineStyleColorModifier_Noise::color_ramp, LineStyleColorModifier_Tangent::color_ramp, flag, LineStyleColorModifier_Material::flags, LineStyleModifier::flags, id_us_plus(), LineStyleModifier::influence, LIB_ID_CREATE_NO_USER_REFCOUNT, LS_MODIFIER_ALONG_STROKE, LS_MODIFIER_CREASE_ANGLE, LS_MODIFIER_CURVATURE_3D, LS_MODIFIER_DISTANCE_FROM_CAMERA, LS_MODIFIER_DISTANCE_FROM_OBJECT, LS_MODIFIER_MATERIAL, LS_MODIFIER_NOISE, LS_MODIFIER_TANGENT, LineStyleColorModifier_Material::mat_attr, LineStyleColorModifier_CreaseAngle::max_angle, LineStyleColorModifier_Curvature_3D::max_curvature, MEM_dupallocN(), LineStyleColorModifier_CreaseAngle::min_angle, LineStyleColorModifier_Curvature_3D::min_curvature, LineStyleModifier::name, LineStyleColorModifier_Noise::period, LineStyleColorModifier_DistanceFromCamera::range_max, LineStyleColorModifier_DistanceFromObject::range_max, LineStyleColorModifier_DistanceFromCamera::range_min, LineStyleColorModifier_DistanceFromObject::range_min, LineStyleColorModifier_Noise::seed, LineStyleColorModifier_DistanceFromObject::target, LineStyleModifier::type, and UNLIKELY.

Referenced by linestyle_copy_data().

◆ BKE_linestyle_color_modifier_move()

bool BKE_linestyle_color_modifier_move ( FreestyleLineStyle * linestyle,
LineStyleModifier * modifier,
int direction )

Reinsert modifier in modifier list with an offset of direction.

Returns
if position of modifier has changed.

Definition at line 1808 of file linestyle.cc.

References BLI_listbase_link_move(), and FreestyleLineStyle::color_modifiers.

◆ BKE_linestyle_color_modifier_remove()

◆ BKE_linestyle_default_shader()

◆ BKE_linestyle_geometry_modifier_add()

LineStyleModifier * BKE_linestyle_geometry_modifier_add ( FreestyleLineStyle * linestyle,
const char * name,
int type )

Definition at line 1546 of file linestyle.cc.

References add_to_modifier_list(), alloc_geometry_modifier(), LineStyleGeometryModifier_PerlinNoise1D::amplitude, LineStyleGeometryModifier_PerlinNoise2D::amplitude, LineStyleGeometryModifier_SinusDisplacement::amplitude, LineStyleGeometryModifier_SpatialNoise::amplitude, LineStyleGeometryModifier_2DTransform::angle, LineStyleGeometryModifier_PerlinNoise1D::angle, LineStyleGeometryModifier_PerlinNoise2D::angle, LineStyleGeometryModifier_BackboneStretcher::backbone_length, LineStyleGeometryModifier_Blueprint::backbone_length, DEG2RADF, LineStyleGeometryModifier_2DOffset::end, LineStyleGeometryModifier_BezierCurve::error, LineStyleGeometryModifier_Polygonalization::error, LineStyleGeometryModifier_Blueprint::flags, LineStyleGeometryModifier_SpatialNoise::flags, LineStyleGeometryModifier_PerlinNoise1D::frequency, LineStyleGeometryModifier_PerlinNoise2D::frequency, FreestyleLineStyle::geometry_modifiers, LS_MODIFIER_2D_OFFSET, LS_MODIFIER_2D_TRANSFORM, LS_MODIFIER_2D_TRANSFORM_PIVOT_CENTER, LS_MODIFIER_BACKBONE_STRETCHER, LS_MODIFIER_BEZIER_CURVE, LS_MODIFIER_BLUEPRINT, LS_MODIFIER_BLUEPRINT_CIRCLES, LS_MODIFIER_GUIDING_LINES, LS_MODIFIER_PERLIN_NOISE_1D, LS_MODIFIER_PERLIN_NOISE_2D, LS_MODIFIER_POLYGONIZATION, LS_MODIFIER_SAMPLING, LS_MODIFIER_SIMPLIFICATION, LS_MODIFIER_SINUS_DISPLACEMENT, LS_MODIFIER_SPATIAL_NOISE, LS_MODIFIER_SPATIAL_NOISE_PURERANDOM, LS_MODIFIER_SPATIAL_NOISE_SMOOTH, LS_MODIFIER_TIP_REMOVER, name, LineStyleGeometryModifier_PerlinNoise1D::octaves, LineStyleGeometryModifier_PerlinNoise2D::octaves, LineStyleGeometryModifier_SpatialNoise::octaves, LineStyleGeometryModifier_GuidingLines::offset, LineStyleGeometryModifier_SinusDisplacement::phase, LineStyleGeometryModifier_2DTransform::pivot, LineStyleGeometryModifier_2DTransform::pivot_u, LineStyleGeometryModifier_2DTransform::pivot_x, LineStyleGeometryModifier_2DTransform::pivot_y, LineStyleGeometryModifier_Blueprint::random_backbone, LineStyleGeometryModifier_Blueprint::random_center, LineStyleGeometryModifier_Blueprint::random_radius, LineStyleGeometryModifier_Blueprint::rounds, LineStyleGeometryModifier_Sampling::sampling, LineStyleGeometryModifier_SpatialNoise::scale, LineStyleGeometryModifier_2DTransform::scale_x, LineStyleGeometryModifier_2DTransform::scale_y, LineStyleGeometryModifier_2DOffset::start, LineStyleGeometryModifier_TipRemover::tip_length, LineStyleGeometryModifier_Simplification::tolerance, LineStyleGeometryModifier_SinusDisplacement::wavelength, LineStyleGeometryModifier_2DOffset::x, and LineStyleGeometryModifier_2DOffset::y.

Referenced by linestyle_init_data().

◆ BKE_linestyle_geometry_modifier_copy()

LineStyleModifier * BKE_linestyle_geometry_modifier_copy ( FreestyleLineStyle * linestyle,
const LineStyleModifier * m,
const int flag )

Definition at line 1661 of file linestyle.cc.

References add_to_modifier_list(), alloc_geometry_modifier(), LineStyleGeometryModifier_PerlinNoise1D::amplitude, LineStyleGeometryModifier_PerlinNoise2D::amplitude, LineStyleGeometryModifier_SinusDisplacement::amplitude, LineStyleGeometryModifier_SpatialNoise::amplitude, LineStyleGeometryModifier_2DTransform::angle, LineStyleGeometryModifier_PerlinNoise1D::angle, LineStyleGeometryModifier_PerlinNoise2D::angle, LineStyleGeometryModifier_BackboneStretcher::backbone_length, LineStyleGeometryModifier_Blueprint::backbone_length, LineStyleGeometryModifier_2DOffset::end, LineStyleGeometryModifier_BezierCurve::error, LineStyleGeometryModifier_Polygonalization::error, LineStyleGeometryModifier_Blueprint::flags, LineStyleGeometryModifier_SpatialNoise::flags, LineStyleModifier::flags, LineStyleGeometryModifier_PerlinNoise1D::frequency, LineStyleGeometryModifier_PerlinNoise2D::frequency, FreestyleLineStyle::geometry_modifiers, LS_MODIFIER_2D_OFFSET, LS_MODIFIER_2D_TRANSFORM, LS_MODIFIER_BACKBONE_STRETCHER, LS_MODIFIER_BEZIER_CURVE, LS_MODIFIER_BLUEPRINT, LS_MODIFIER_GUIDING_LINES, LS_MODIFIER_PERLIN_NOISE_1D, LS_MODIFIER_PERLIN_NOISE_2D, LS_MODIFIER_POLYGONIZATION, LS_MODIFIER_SAMPLING, LS_MODIFIER_SIMPLIFICATION, LS_MODIFIER_SINUS_DISPLACEMENT, LS_MODIFIER_SPATIAL_NOISE, LS_MODIFIER_TIP_REMOVER, LineStyleModifier::name, LineStyleGeometryModifier_PerlinNoise1D::octaves, LineStyleGeometryModifier_PerlinNoise2D::octaves, LineStyleGeometryModifier_SpatialNoise::octaves, LineStyleGeometryModifier_GuidingLines::offset, LineStyleGeometryModifier_SinusDisplacement::phase, LineStyleGeometryModifier_2DTransform::pivot, LineStyleGeometryModifier_2DTransform::pivot_u, LineStyleGeometryModifier_2DTransform::pivot_x, LineStyleGeometryModifier_2DTransform::pivot_y, LineStyleGeometryModifier_Blueprint::random_backbone, LineStyleGeometryModifier_Blueprint::random_center, LineStyleGeometryModifier_Blueprint::random_radius, LineStyleGeometryModifier_Blueprint::rounds, LineStyleGeometryModifier_Sampling::sampling, LineStyleGeometryModifier_SpatialNoise::scale, LineStyleGeometryModifier_2DTransform::scale_x, LineStyleGeometryModifier_2DTransform::scale_y, LineStyleGeometryModifier_PerlinNoise1D::seed, LineStyleGeometryModifier_PerlinNoise2D::seed, LineStyleGeometryModifier_2DOffset::start, LineStyleGeometryModifier_TipRemover::tip_length, LineStyleGeometryModifier_Simplification::tolerance, LineStyleModifier::type, LineStyleGeometryModifier_SinusDisplacement::wavelength, LineStyleGeometryModifier_2DOffset::x, and LineStyleGeometryModifier_2DOffset::y.

Referenced by linestyle_copy_data().

◆ BKE_linestyle_geometry_modifier_move()

bool BKE_linestyle_geometry_modifier_move ( FreestyleLineStyle * linestyle,
LineStyleModifier * modifier,
int direction )

◆ BKE_linestyle_geometry_modifier_remove()

int BKE_linestyle_geometry_modifier_remove ( FreestyleLineStyle * linestyle,
LineStyleModifier * m )

◆ BKE_linestyle_init()

void BKE_linestyle_init ( FreestyleLineStyle * linestyle)

Definition at line 698 of file linestyle.cc.

References FreestyleLineStyle::id, and linestyle_init_data().

Referenced by BKE_linestyle_new().

◆ BKE_linestyle_modifier_list_color_ramps()

◆ BKE_linestyle_new()

FreestyleLineStyle * BKE_linestyle_new ( Main * bmain,
const char * name )

Definition at line 703 of file linestyle.cc.

References BKE_libblock_alloc(), BKE_linestyle_init(), ID_LS, and name.

Referenced by BKE_freestyle_lineset_add().

◆ BKE_linestyle_path_to_color_ramp()

◆ BKE_linestyle_thickness_modifier_add()

LineStyleModifier * BKE_linestyle_thickness_modifier_add ( FreestyleLineStyle * linestyle,
const char * name,
int type )

Definition at line 1243 of file linestyle.cc.

References add_to_modifier_list(), alloc_thickness_modifier(), LineStyleThicknessModifier_Noise::amplitude, BKE_curvemapping_add(), LineStyleModifier::blend, LineStyleThicknessModifier_AlongStroke::curve, LineStyleThicknessModifier_CreaseAngle::curve, LineStyleThicknessModifier_Curvature_3D::curve, LineStyleThicknessModifier_DistanceFromCamera::curve, LineStyleThicknessModifier_DistanceFromObject::curve, LineStyleThicknessModifier_Material::curve, LineStyleThicknessModifier_Tangent::curve, DEG2RADF, LineStyleThicknessModifier_Noise::flags, LS_MODIFIER_ALONG_STROKE, LS_MODIFIER_CALLIGRAPHY, LS_MODIFIER_CREASE_ANGLE, LS_MODIFIER_CURVATURE_3D, LS_MODIFIER_DISTANCE_FROM_CAMERA, LS_MODIFIER_DISTANCE_FROM_OBJECT, LS_MODIFIER_MATERIAL, LS_MODIFIER_MATERIAL_LINE, LS_MODIFIER_NOISE, LS_MODIFIER_TANGENT, LS_THICKNESS_ASYMMETRIC, LS_VALUE_BLEND, LineStyleThicknessModifier_Material::mat_attr, LineStyleThicknessModifier_CreaseAngle::max_angle, LineStyleThicknessModifier_Curvature_3D::max_curvature, LineStyleThicknessModifier_Calligraphy::max_thickness, LineStyleThicknessModifier_CreaseAngle::max_thickness, LineStyleThicknessModifier_Curvature_3D::max_thickness, LineStyleThicknessModifier_Tangent::max_thickness, LineStyleThicknessModifier_CreaseAngle::min_angle, LineStyleThicknessModifier_Curvature_3D::min_curvature, LineStyleThicknessModifier_Calligraphy::min_thickness, LineStyleThicknessModifier_CreaseAngle::min_thickness, LineStyleThicknessModifier_Curvature_3D::min_thickness, LineStyleThicknessModifier_Tangent::min_thickness, name, LineStyleThicknessModifier_Calligraphy::orientation, LineStyleThicknessModifier_Noise::period, LineStyleThicknessModifier_DistanceFromCamera::range_max, LineStyleThicknessModifier_DistanceFromObject::range_max, LineStyleThicknessModifier_DistanceFromCamera::range_min, LineStyleThicknessModifier_DistanceFromObject::range_min, LineStyleThicknessModifier_Noise::seed, LineStyleThicknessModifier_DistanceFromObject::target, FreestyleLineStyle::thickness_modifiers, LineStyleThicknessModifier_AlongStroke::value_max, LineStyleThicknessModifier_DistanceFromCamera::value_max, LineStyleThicknessModifier_DistanceFromObject::value_max, LineStyleThicknessModifier_Material::value_max, LineStyleThicknessModifier_AlongStroke::value_min, LineStyleThicknessModifier_DistanceFromCamera::value_min, LineStyleThicknessModifier_DistanceFromObject::value_min, and LineStyleThicknessModifier_Material::value_min.

◆ BKE_linestyle_thickness_modifier_copy()

LineStyleModifier * BKE_linestyle_thickness_modifier_copy ( FreestyleLineStyle * linestyle,
const LineStyleModifier * m,
const int flag )

Definition at line 1337 of file linestyle.cc.

References add_to_modifier_list(), alloc_thickness_modifier(), LineStyleThicknessModifier_Noise::amplitude, BKE_curvemapping_copy(), LineStyleModifier::blend, LineStyleThicknessModifier_AlongStroke::curve, LineStyleThicknessModifier_CreaseAngle::curve, LineStyleThicknessModifier_Curvature_3D::curve, LineStyleThicknessModifier_DistanceFromCamera::curve, LineStyleThicknessModifier_DistanceFromObject::curve, LineStyleThicknessModifier_Material::curve, LineStyleThicknessModifier_Tangent::curve, flag, LineStyleModifier::flags, LineStyleThicknessModifier_AlongStroke::flags, LineStyleThicknessModifier_CreaseAngle::flags, LineStyleThicknessModifier_Curvature_3D::flags, LineStyleThicknessModifier_DistanceFromCamera::flags, LineStyleThicknessModifier_DistanceFromObject::flags, LineStyleThicknessModifier_Material::flags, LineStyleThicknessModifier_Noise::flags, LineStyleThicknessModifier_Tangent::flags, id_us_plus(), LineStyleModifier::influence, LIB_ID_CREATE_NO_USER_REFCOUNT, LS_MODIFIER_ALONG_STROKE, LS_MODIFIER_CALLIGRAPHY, LS_MODIFIER_CREASE_ANGLE, LS_MODIFIER_CURVATURE_3D, LS_MODIFIER_DISTANCE_FROM_CAMERA, LS_MODIFIER_DISTANCE_FROM_OBJECT, LS_MODIFIER_MATERIAL, LS_MODIFIER_NOISE, LS_MODIFIER_TANGENT, LineStyleThicknessModifier_Material::mat_attr, LineStyleThicknessModifier_CreaseAngle::max_angle, LineStyleThicknessModifier_Curvature_3D::max_curvature, LineStyleThicknessModifier_Calligraphy::max_thickness, LineStyleThicknessModifier_CreaseAngle::max_thickness, LineStyleThicknessModifier_Curvature_3D::max_thickness, LineStyleThicknessModifier_Tangent::max_thickness, LineStyleThicknessModifier_CreaseAngle::min_angle, LineStyleThicknessModifier_Curvature_3D::min_curvature, LineStyleThicknessModifier_Calligraphy::min_thickness, LineStyleThicknessModifier_CreaseAngle::min_thickness, LineStyleThicknessModifier_Curvature_3D::min_thickness, LineStyleThicknessModifier_Tangent::min_thickness, LineStyleModifier::name, LineStyleThicknessModifier_Calligraphy::orientation, LineStyleThicknessModifier_Noise::period, LineStyleThicknessModifier_DistanceFromCamera::range_max, LineStyleThicknessModifier_DistanceFromObject::range_max, LineStyleThicknessModifier_DistanceFromCamera::range_min, LineStyleThicknessModifier_DistanceFromObject::range_min, LineStyleThicknessModifier_Noise::seed, LineStyleThicknessModifier_DistanceFromObject::target, FreestyleLineStyle::thickness_modifiers, LineStyleModifier::type, LineStyleThicknessModifier_AlongStroke::value_max, LineStyleThicknessModifier_DistanceFromCamera::value_max, LineStyleThicknessModifier_DistanceFromObject::value_max, LineStyleThicknessModifier_Material::value_max, LineStyleThicknessModifier_AlongStroke::value_min, LineStyleThicknessModifier_DistanceFromCamera::value_min, LineStyleThicknessModifier_DistanceFromObject::value_min, and LineStyleThicknessModifier_Material::value_min.

Referenced by linestyle_copy_data().

◆ BKE_linestyle_thickness_modifier_move()

bool BKE_linestyle_thickness_modifier_move ( FreestyleLineStyle * linestyle,
LineStyleModifier * modifier,
int direction )

◆ BKE_linestyle_thickness_modifier_remove()

◆ BKE_linestyle_use_textures()

bool BKE_linestyle_use_textures ( FreestyleLineStyle * linestyle,
const bool use_shading_nodes )

◆ direct_link_linestyle_alpha_modifier()

◆ direct_link_linestyle_color_modifier()

◆ direct_link_linestyle_geometry_modifier()

void direct_link_linestyle_geometry_modifier ( BlendDataReader * ,
LineStyleModifier *  )
static

Definition at line 628 of file linestyle.cc.

Referenced by linestyle_blend_read_data().

◆ direct_link_linestyle_thickness_modifier()

◆ linestyle_blend_read_data()

◆ linestyle_blend_write()

◆ linestyle_copy_data()

◆ linestyle_foreach_id()

◆ linestyle_foreach_working_space_color()

void linestyle_foreach_working_space_color ( ID * id,
const IDTypeForeachColorFunctionCallback & fn )
static

◆ linestyle_free_data()

◆ linestyle_init_data()

void linestyle_init_data ( ID * id)
static

◆ new_modifier()

◆ sdna_struct_id_get()

template<typename T>
int blender::dna::sdna_struct_id_get ( )

Each DNA struct has an integer identifier which is unique within a specific Blender build, but not necessarily across different builds. The identifier can be used to index into SDNA.structs.

Referenced by write_linestyle_alpha_modifiers(), write_linestyle_color_modifiers(), write_linestyle_geometry_modifiers(), and write_linestyle_thickness_modifiers().

◆ write_linestyle_alpha_modifiers()

◆ write_linestyle_color_modifiers()

◆ write_linestyle_geometry_modifiers()

◆ write_linestyle_thickness_modifiers()

Variable Documentation

◆ IDType_ID_LS

IDTypeInfo IDType_ID_LS
Initial value:
= {
FreestyleLineStyle::id_type,
"FreestyleLineStyle",
N_("linestyles"),
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
}
@ IDTYPE_FLAGS_APPEND_IS_REUSABLE
Definition BKE_idtype.hh:47
#define BLT_I18NCONTEXT_ID_FREESTYLELINESTYLE
#define FILTER_ID_OB
Definition DNA_ID.h:1214
#define FILTER_ID_TE
Definition DNA_ID.h:1220
#define FILTER_ID_LS
Definition DNA_ID.h:1206
@ INDEX_ID_LS
Definition DNA_ID.h:1313
static void linestyle_free_data(ID *id)
Definition linestyle.cc:112
static void linestyle_init_data(ID *id)
Definition linestyle.cc:50
static void linestyle_blend_read_data(BlendDataReader *reader, ID *id)
Definition linestyle.cc:633
static void linestyle_foreach_working_space_color(ID *id, const IDTypeForeachColorFunctionCallback &fn)
Definition linestyle.cc:181
static void linestyle_blend_write(BlendWriter *writer, ID *id, const void *id_address)
Definition linestyle.cc:443
static void linestyle_foreach_id(ID *id, LibraryForeachIDData *data)
Definition linestyle.cc:142
static void linestyle_copy_data(Main *bmain, std::optional< Library * > owner_library, ID *id_dst, const ID *id_src, const int flag)
Definition linestyle.cc:61
#define N_(msgid)

Definition at line 658 of file linestyle.cc.

◆ modifier_name

const char* modifier_name[LS_MODIFIER_NUM]
static
Initial value:
= {
nullptr, "Along Stroke", "Distance from Camera", "Distance from Object",
"Material", "Sampling", "Bézier Curve", "Sinus Displacement",
"Spatial Noise", "Perlin Noise 1D", "Perlin Noise 2D", "Backbone Stretcher",
"Tip Remover", "Calligraphy", "Polygonalization", "Guiding Lines",
"Blueprint", "2D Offset", "2D Transform", "Tangent",
"Noise", "Crease Angle", "Simplification", "Curvature 3D",
}

Definition at line 689 of file linestyle.cc.

Referenced by add_to_modifier_list(), blender::ed::object::bake_simulation::bake_single_node_gather_bake_request(), blender::ed::object::bake_simulation::delete_single_bake_exec(), blender::ed::object::edit_modifier_property_get(), blender::ed::object::geometry_nodes_input_attribute_toggle_exec(), blender::bke::greasepencil::convert::legacy_object_modifier_opacity(), blender::bke::greasepencil::convert::legacy_object_thickness_modifier_thickness_anim(), new_modifier(), blender::ed::object::bake_simulation::pack_single_bake_exec(), and blender::ed::object::bake_simulation::unpack_single_bake_exec().