Blender V4.3
DNA_linestyle_types.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2010 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
5#pragma once
6
11#include "DNA_ID.h"
12#include "DNA_listBase.h"
13
14#ifndef MAX_MTEX
15# define MAX_MTEX 18
16#endif
17
18/* texco (also in DNA_material_types.h) */
19#define TEXCO_STROKE 16 /* actually its UV */
20
21struct AnimData;
22struct ColorBand;
23struct CurveMapping;
24struct MTex;
25struct Object;
26struct bNodeTree;
27
40
42enum {
67};
68
70enum {
73};
74
76enum {
78};
79
81enum {
84};
85
87enum {
89};
90
92enum {
101};
102
103/* Along Stroke modifiers */
104
112
122
133
134/* Distance from Camera modifiers */
135
144
155
158
159 struct LineStyleModifier modifier;
160
161 struct CurveMapping *curve;
162 int flags;
163 float range_min, range_max;
164 float value_min, value_max;
165 char _pad[4];
167
168/* Distance from Object modifiers */
169
179
191
194
195 struct LineStyleModifier modifier;
196
197 struct Object *target;
198 struct CurveMapping *curve;
199 int flags;
200 float range_min, range_max;
201 float value_min, value_max;
202 char _pad[4];
204
205/* 3D curvature modifiers */
206
209
210 struct LineStyleModifier modifier;
211
212 float min_curvature, max_curvature;
213 struct ColorBand *color_ramp;
214 float range_min, range_max;
216
219
220 struct LineStyleModifier modifier;
221
222 struct CurveMapping *curve;
223 int flags;
224 float min_curvature, max_curvature;
225 char _pad[4];
227
230
231 struct LineStyleModifier modifier;
232
233 struct CurveMapping *curve;
234 int flags;
235 char _pad[4];
236 float min_curvature, max_curvature;
237 float min_thickness, max_thickness;
239
240/* Noise modifiers (for color, alpha and thickness) */
241
244
245 struct LineStyleModifier modifier;
246
247 struct ColorBand *color_ramp;
248 float period, amplitude;
249 int seed;
250 char _pad[4];
252
255
256 struct LineStyleModifier modifier;
257
258 struct CurveMapping *curve;
259 int flags;
260 float period, amplitude;
261 int seed;
263
273
274/* Crease Angle modifiers */
275
284
287
288 struct LineStyleModifier modifier;
289
290 struct CurveMapping *curve;
291 int flags;
292 float min_angle, max_angle;
293 char _pad[4];
295
298
299 struct LineStyleModifier modifier;
300
301 struct CurveMapping *curve;
302 int flags;
303 char _pad[4];
304 float min_angle, max_angle;
305 float min_thickness, max_thickness;
307
308/* Tangent modifiers */
309
317
327
330
331 struct LineStyleModifier modifier;
332
333 struct CurveMapping *curve;
334 int flags;
335 float min_thickness, max_thickness;
336 char _pad[4];
338
339/* Material modifiers */
340
341/* mat_attr */
342enum {
358};
359
369
379
382
383 struct LineStyleModifier modifier;
384
385 struct CurveMapping *curve;
386 int flags;
387 float value_min, value_max;
388 int mat_attr;
390
391/* Geometry modifiers */
392
401
410
419
421enum {
424};
425
435
438
439 struct LineStyleModifier modifier;
440
441 float frequency, amplitude;
443 float angle;
444 unsigned int octaves;
445 int seed;
446 char _pad1[4];
448
451
452 struct LineStyleModifier modifier;
453
454 float frequency, amplitude;
456 float angle;
457 unsigned int octaves;
458 int seed;
459 char _pad1[4];
461
470
479
488
497
499enum {
503};
504
507
508 struct LineStyleModifier modifier;
509
510 int flags;
511 unsigned int rounds;
512 float backbone_length;
513 unsigned int random_radius;
514 unsigned int random_center;
515 unsigned int random_backbone;
517
526
528enum {
534};
535
538
539 struct LineStyleModifier modifier;
540
541 int pivot;
542 float scale_x, scale_y;
544 float angle;
545 float pivot_u;
546 float pivot_x, pivot_y;
547 char _pad[4];
549
558
559/* Calligraphic thickness modifier */
560
563
564 struct LineStyleModifier modifier;
565
566 float min_thickness, max_thickness;
568 float orientation;
569 char _pad[4];
571
573enum {
581};
582
584enum {
585 LS_DS_EXPAND = 1 << 0, /* for animation editors */
596 LS_NO_SORTING = 1 << 11,
597 LS_REVERSE_ORDER = 1 << 12, /* for sorting */
598 LS_TEXTURE = 1 << 13,
599 LS_CHAIN_COUNT = 1 << 14,
600};
601
603enum {
606};
607
609enum {
613};
614
616enum {
622};
623
625enum {
630};
631
633enum {
639};
640
641typedef struct FreestyleLineStyle {
643
644 ID id;
645 struct AnimData *adt;
646
647 float r, g, b, alpha;
648 float thickness;
649 int thickness_position;
650 float thickness_ratio;
651 int flag, caps;
652 int chaining;
653 unsigned int rounds;
654 float split_length;
656 float min_angle, max_angle;
657 float min_length, max_length;
658 unsigned int chain_count;
659 unsigned short split_dash1, split_gap1;
660 unsigned short split_dash2, split_gap2;
661 unsigned short split_dash3, split_gap3;
662 int sort_key, integration_type;
663 float texstep;
664 short texact, pr_texture;
665 short use_nodes;
666 char _pad[6];
667 unsigned short dash1, gap1, dash2, gap2, dash3, gap3;
669 int panel;
671 struct MTex *mtex[18];
672 /* nodes */
673 struct bNodeTree *nodetree;
674
675 ListBase color_modifiers;
676 ListBase alpha_modifiers;
677 ListBase thickness_modifiers;
678 ListBase geometry_modifiers;
ID and Library types, which are fundamental for SDNA.
#define DNA_DEFINE_CXX_METHODS(class_name)
Definition DNA_defs.h:66
@ LS_MIN_2D_LENGTH
@ LS_SAME_OBJECT
@ LS_DASHED_LINE
@ LS_MIN_2D_ANGLE
@ LS_CHAIN_COUNT
@ LS_NO_SORTING
@ LS_SPLIT_LENGTH
@ LS_SPLIT_PATTERN
@ LS_MAX_2D_ANGLE
@ LS_REVERSE_ORDER
@ LS_MAX_2D_LENGTH
@ LS_NO_CHAINING
@ LS_MATERIAL_BOUNDARY
@ LS_DS_EXPAND
@ LS_MODIFIER_USE_RAMP
@ LS_SORT_KEY_PROJECTED_X
@ LS_SORT_KEY_2D_LENGTH
@ LS_SORT_KEY_DISTANCE_FROM_CAMERA
@ LS_SORT_KEY_PROJECTED_Y
@ LS_THICKNESS_ASYMMETRIC
@ LS_CHAINING_SKETCHY
@ LS_CHAINING_PLAIN
@ LS_MODIFIER_MATERIAL_SPEC_B
@ LS_MODIFIER_MATERIAL_SPEC_G
@ LS_MODIFIER_MATERIAL_DIFF_G
@ LS_MODIFIER_MATERIAL_DIFF_B
@ LS_MODIFIER_MATERIAL_SPEC_R
@ LS_MODIFIER_MATERIAL_LINE_G
@ LS_MODIFIER_MATERIAL_LINE_R
@ LS_MODIFIER_MATERIAL_LINE_B
@ LS_MODIFIER_MATERIAL_LINE
@ LS_MODIFIER_MATERIAL_ALPHA
@ LS_MODIFIER_MATERIAL_SPEC
@ LS_MODIFIER_MATERIAL_DIFF_R
@ LS_MODIFIER_MATERIAL_LINE_A
@ LS_MODIFIER_MATERIAL_DIFF
@ LS_MODIFIER_MATERIAL_SPEC_HARD
@ LS_MODIFIER_SAMPLING
@ LS_MODIFIER_BEZIER_CURVE
@ LS_MODIFIER_NOISE
@ LS_MODIFIER_BACKBONE_STRETCHER
@ LS_MODIFIER_SPATIAL_NOISE
@ LS_MODIFIER_PERLIN_NOISE_2D
@ LS_MODIFIER_POLYGONIZATION
@ LS_MODIFIER_GUIDING_LINES
@ LS_MODIFIER_SIMPLIFICATION
@ LS_MODIFIER_TANGENT
@ LS_MODIFIER_CREASE_ANGLE
@ LS_MODIFIER_NUM
@ LS_MODIFIER_2D_TRANSFORM
@ LS_MODIFIER_DISTANCE_FROM_OBJECT
@ LS_MODIFIER_BLUEPRINT
@ LS_MODIFIER_CALLIGRAPHY
@ LS_MODIFIER_CURVATURE_3D
@ LS_MODIFIER_SINUS_DISPLACEMENT
@ LS_MODIFIER_ALONG_STROKE
@ LS_MODIFIER_MATERIAL
@ LS_MODIFIER_DISTANCE_FROM_CAMERA
@ LS_MODIFIER_PERLIN_NOISE_1D
@ LS_MODIFIER_2D_OFFSET
@ LS_MODIFIER_TIP_REMOVER
@ LS_MODIFIER_INVERT
@ LS_MODIFIER_USE_CURVE
@ LS_VALUE_MULT
@ LS_VALUE_SUB
@ LS_VALUE_BLEND
@ LS_VALUE_DIFF
@ LS_VALUE_ADD
@ LS_VALUE_MIN
@ LS_VALUE_DIV
@ LS_VALUE_MAX
@ LS_MODIFIER_BLUEPRINT_SQUARES
@ LS_MODIFIER_BLUEPRINT_CIRCLES
@ LS_MODIFIER_BLUEPRINT_ELLIPSES
@ LS_THICKNESS_RELATIVE
@ LS_THICKNESS_CENTER
@ LS_THICKNESS_INSIDE
@ LS_THICKNESS_OUTSIDE
@ LS_MODIFIER_2D_TRANSFORM_PIVOT_PARAM
@ LS_MODIFIER_2D_TRANSFORM_PIVOT_START
@ LS_MODIFIER_2D_TRANSFORM_PIVOT_CENTER
@ LS_MODIFIER_2D_TRANSFORM_PIVOT_ABSOLUTE
@ LS_MODIFIER_2D_TRANSFORM_PIVOT_END
@ LS_MODIFIER_SPATIAL_NOISE_PURERANDOM
@ LS_MODIFIER_SPATIAL_NOISE_SMOOTH
@ LS_INTEGRATION_MEAN
@ LS_INTEGRATION_FIRST
@ LS_INTEGRATION_MAX
@ LS_INTEGRATION_LAST
@ LS_INTEGRATION_MIN
@ LS_CAPS_SQUARE
@ LS_CAPS_BUTT
@ LS_CAPS_ROUND
@ LS_PANEL_GEOMETRY
@ LS_PANEL_STROKES
@ LS_PANEL_ALPHA
@ LS_PANEL_TEXTURE
@ LS_PANEL_MISC
@ LS_PANEL_COLOR
@ LS_PANEL_THICKNESS
@ LS_MODIFIER_EXPANDED
@ LS_MODIFIER_ENABLED
These structs are the foundation for all linked lists in the library system.
static unsigned long seed
Definition btSoftBody.h:39
local_group_size(16, 16) .push_constant(Type b
static void error(const char *str)
Definition DNA_ID.h:413
struct LineStyleModifier * next
struct LineStyleModifier * prev
uint8_t flag
Definition wm_window.cc:138