Blender  V3.3
Macros | Functions
BKE_linestyle.h File Reference

Blender kernel freestyle line style functionality. More...

#include "DNA_linestyle_types.h"

Go to the source code of this file.

Macros

#define LS_MODIFIER_TYPE_COLOR   1
 
#define LS_MODIFIER_TYPE_ALPHA   2
 
#define LS_MODIFIER_TYPE_THICKNESS   3
 
#define LS_MODIFIER_TYPE_GEOMETRY   4
 

Functions

void BKE_linestyle_init (struct FreestyleLineStyle *linestyle)
 
FreestyleLineStyleBKE_linestyle_new (struct Main *bmain, const char *name)
 
FreestyleLineStyleBKE_linestyle_active_from_view_layer (struct ViewLayer *view_layer)
 
LineStyleModifierBKE_linestyle_color_modifier_add (FreestyleLineStyle *linestyle, const char *name, int type)
 
LineStyleModifierBKE_linestyle_alpha_modifier_add (FreestyleLineStyle *linestyle, const char *name, int type)
 
LineStyleModifierBKE_linestyle_thickness_modifier_add (FreestyleLineStyle *linestyle, const char *name, int type)
 
LineStyleModifierBKE_linestyle_geometry_modifier_add (FreestyleLineStyle *linestyle, const char *name, int type)
 
LineStyleModifierBKE_linestyle_color_modifier_copy (FreestyleLineStyle *linestyle, const LineStyleModifier *m, int flag)
 
LineStyleModifierBKE_linestyle_alpha_modifier_copy (FreestyleLineStyle *linestyle, const LineStyleModifier *m, int flag)
 
LineStyleModifierBKE_linestyle_thickness_modifier_copy (FreestyleLineStyle *linestyle, const LineStyleModifier *m, int flag)
 
LineStyleModifierBKE_linestyle_geometry_modifier_copy (FreestyleLineStyle *linestyle, const LineStyleModifier *m, int flag)
 
int BKE_linestyle_color_modifier_remove (FreestyleLineStyle *linestyle, LineStyleModifier *modifier)
 
int BKE_linestyle_alpha_modifier_remove (FreestyleLineStyle *linestyle, LineStyleModifier *modifier)
 
int BKE_linestyle_thickness_modifier_remove (FreestyleLineStyle *linestyle, LineStyleModifier *modifier)
 
int BKE_linestyle_geometry_modifier_remove (FreestyleLineStyle *linestyle, LineStyleModifier *modifier)
 
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)
 
char * BKE_linestyle_path_to_color_ramp (FreestyleLineStyle *linestyle, struct ColorBand *color_ramp)
 
bool BKE_linestyle_use_textures (FreestyleLineStyle *linestyle, bool use_shading_nodes)
 
void BKE_linestyle_default_shader (const struct bContext *C, FreestyleLineStyle *linestyle)
 

Detailed Description

Blender kernel freestyle line style functionality.

Definition in file BKE_linestyle.h.

Macro Definition Documentation

◆ LS_MODIFIER_TYPE_ALPHA

#define LS_MODIFIER_TYPE_ALPHA   2

Definition at line 18 of file BKE_linestyle.h.

◆ LS_MODIFIER_TYPE_COLOR

#define LS_MODIFIER_TYPE_COLOR   1

Definition at line 17 of file BKE_linestyle.h.

◆ LS_MODIFIER_TYPE_GEOMETRY

#define LS_MODIFIER_TYPE_GEOMETRY   4

Definition at line 20 of file BKE_linestyle.h.

◆ LS_MODIFIER_TYPE_THICKNESS

#define LS_MODIFIER_TYPE_THICKNESS   3

Definition at line 19 of file BKE_linestyle.h.

Function Documentation

◆ BKE_linestyle_active_from_view_layer()

FreestyleLineStyle* BKE_linestyle_active_from_view_layer ( struct ViewLayer view_layer)

◆ BKE_linestyle_alpha_modifier_add()

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

◆ BKE_linestyle_alpha_modifier_copy()

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

◆ BKE_linestyle_alpha_modifier_move()

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

◆ BKE_linestyle_alpha_modifier_remove()

int BKE_linestyle_alpha_modifier_remove ( FreestyleLineStyle linestyle,
LineStyleModifier modifier 
)

◆ BKE_linestyle_color_modifier_add()

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

◆ BKE_linestyle_color_modifier_copy()

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

Definition at line 930 of file linestyle.c.

References add_to_modifier_list(), alloc_color_modifier(), LineStyleColorModifier_Noise::amplitude, LineStyleModifier::blend, FreestyleLineStyle::color_modifiers, LineStyleColorModifier_AlongStroke::color_ramp, LineStyleColorModifier_DistanceFromCamera::color_ramp, LineStyleColorModifier_DistanceFromObject::color_ramp, LineStyleColorModifier_Curvature_3D::color_ramp, LineStyleColorModifier_Noise::color_ramp, LineStyleColorModifier_CreaseAngle::color_ramp, LineStyleColorModifier_Tangent::color_ramp, LineStyleColorModifier_Material::color_ramp, LineStyleModifier::flags, LineStyleColorModifier_Material::flags, id_us_plus(), LineStyleModifier::influence, LIB_ID_CREATE_NO_USER_REFCOUNT, linestyle, 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, NULL, 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 1900 of file linestyle.c.

References BLI_listbase_link_move(), FreestyleLineStyle::color_modifiers, and linestyle.

◆ BKE_linestyle_color_modifier_remove()

int BKE_linestyle_color_modifier_remove ( FreestyleLineStyle linestyle,
LineStyleModifier modifier 
)

◆ BKE_linestyle_default_shader()

void BKE_linestyle_default_shader ( const struct bContext C,
FreestyleLineStyle linestyle 
)

◆ BKE_linestyle_geometry_modifier_add()

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

Definition at line 1638 of file linestyle.c.

References add_to_modifier_list(), alloc_geometry_modifier(), LineStyleGeometryModifier_SinusDisplacement::amplitude, LineStyleGeometryModifier_SpatialNoise::amplitude, LineStyleGeometryModifier_PerlinNoise1D::amplitude, LineStyleGeometryModifier_PerlinNoise2D::amplitude, LineStyleGeometryModifier_PerlinNoise1D::angle, LineStyleGeometryModifier_PerlinNoise2D::angle, LineStyleGeometryModifier_2DTransform::angle, LineStyleGeometryModifier_BackboneStretcher::backbone_length, LineStyleGeometryModifier_Blueprint::backbone_length, DEG2RADF, LineStyleGeometryModifier_2DOffset::end, LineStyleGeometryModifier_BezierCurve::error, LineStyleGeometryModifier_Polygonalization::error, LineStyleGeometryModifier_SpatialNoise::flags, LineStyleGeometryModifier_Blueprint::flags, LineStyleGeometryModifier_PerlinNoise1D::frequency, LineStyleGeometryModifier_PerlinNoise2D::frequency, FreestyleLineStyle::geometry_modifiers, linestyle, 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, NULL, LineStyleGeometryModifier_SpatialNoise::octaves, LineStyleGeometryModifier_PerlinNoise1D::octaves, LineStyleGeometryModifier_PerlinNoise2D::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, type, 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,
int  flag 
)

◆ 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 modifier 
)

◆ BKE_linestyle_init()

void BKE_linestyle_init ( struct FreestyleLineStyle linestyle)

Definition at line 790 of file linestyle.c.

References FreestyleLineStyle::id, linestyle, and linestyle_init_data().

Referenced by BKE_linestyle_new().

◆ BKE_linestyle_modifier_list_color_ramps()

void BKE_linestyle_modifier_list_color_ramps ( FreestyleLineStyle linestyle,
ListBase listbase 
)

◆ BKE_linestyle_new()

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

Definition at line 795 of file linestyle.c.

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

Referenced by BKE_freestyle_lineset_add().

◆ BKE_linestyle_path_to_color_ramp()

char* BKE_linestyle_path_to_color_ramp ( FreestyleLineStyle linestyle,
struct ColorBand color_ramp 
)

◆ BKE_linestyle_thickness_modifier_add()

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

Definition at line 1335 of file linestyle.c.

References add_to_modifier_list(), alloc_thickness_modifier(), LineStyleThicknessModifier_Noise::amplitude, BKE_curvemapping_add(), LineStyleModifier::blend, LineStyleThicknessModifier_AlongStroke::curve, LineStyleThicknessModifier_DistanceFromCamera::curve, LineStyleThicknessModifier_DistanceFromObject::curve, LineStyleThicknessModifier_Curvature_3D::curve, LineStyleThicknessModifier_CreaseAngle::curve, LineStyleThicknessModifier_Tangent::curve, LineStyleThicknessModifier_Material::curve, DEG2RADF, LineStyleThicknessModifier_Noise::flags, linestyle, 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_Curvature_3D::max_thickness, LineStyleThicknessModifier_CreaseAngle::max_thickness, LineStyleThicknessModifier_Tangent::max_thickness, LineStyleThicknessModifier_Calligraphy::max_thickness, LineStyleThicknessModifier_CreaseAngle::min_angle, LineStyleThicknessModifier_Curvature_3D::min_curvature, LineStyleThicknessModifier_Curvature_3D::min_thickness, LineStyleThicknessModifier_CreaseAngle::min_thickness, LineStyleThicknessModifier_Tangent::min_thickness, LineStyleThicknessModifier_Calligraphy::min_thickness, NULL, 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, 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.

◆ BKE_linestyle_thickness_modifier_copy()

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

Definition at line 1429 of file linestyle.c.

References add_to_modifier_list(), alloc_thickness_modifier(), LineStyleThicknessModifier_Noise::amplitude, BKE_curvemapping_copy(), LineStyleModifier::blend, LineStyleThicknessModifier_AlongStroke::curve, LineStyleThicknessModifier_DistanceFromCamera::curve, LineStyleThicknessModifier_DistanceFromObject::curve, LineStyleThicknessModifier_Curvature_3D::curve, LineStyleThicknessModifier_CreaseAngle::curve, LineStyleThicknessModifier_Tangent::curve, LineStyleThicknessModifier_Material::curve, LineStyleModifier::flags, LineStyleThicknessModifier_AlongStroke::flags, LineStyleThicknessModifier_DistanceFromCamera::flags, LineStyleThicknessModifier_DistanceFromObject::flags, LineStyleThicknessModifier_Curvature_3D::flags, LineStyleThicknessModifier_Noise::flags, LineStyleThicknessModifier_CreaseAngle::flags, LineStyleThicknessModifier_Tangent::flags, LineStyleThicknessModifier_Material::flags, id_us_plus(), LineStyleModifier::influence, LIB_ID_CREATE_NO_USER_REFCOUNT, linestyle, 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_Curvature_3D::max_thickness, LineStyleThicknessModifier_CreaseAngle::max_thickness, LineStyleThicknessModifier_Tangent::max_thickness, LineStyleThicknessModifier_Calligraphy::max_thickness, LineStyleThicknessModifier_CreaseAngle::min_angle, LineStyleThicknessModifier_Curvature_3D::min_curvature, LineStyleThicknessModifier_Curvature_3D::min_thickness, LineStyleThicknessModifier_CreaseAngle::min_thickness, LineStyleThicknessModifier_Tangent::min_thickness, LineStyleThicknessModifier_Calligraphy::min_thickness, LineStyleModifier::name, NULL, 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()

int BKE_linestyle_thickness_modifier_remove ( FreestyleLineStyle linestyle,
LineStyleModifier modifier 
)

◆ BKE_linestyle_use_textures()

bool BKE_linestyle_use_textures ( FreestyleLineStyle linestyle,
bool  use_shading_nodes 
)