2023-08-15 16:20:26 +02:00
|
|
|
/* SPDX-FileCopyrightText: 2010 Blender Authors
|
2023-05-31 16:19:06 +02:00
|
|
|
*
|
|
|
|
* SPDX-License-Identifier: GPL-2.0-or-later */
|
2010-07-20 19:57:33 +02:00
|
|
|
|
2012-12-11 23:00:22 +01:00
|
|
|
#pragma once
|
2010-07-20 19:57:33 +02:00
|
|
|
|
2019-02-17 22:08:12 +01:00
|
|
|
/** \file
|
|
|
|
* \ingroup DNA
|
2013-09-12 05:02:50 +02:00
|
|
|
*/
|
|
|
|
|
2010-07-20 19:57:33 +02:00
|
|
|
#include "DNA_ID.h"
|
2020-03-19 09:33:03 +01:00
|
|
|
#include "DNA_listBase.h"
|
2010-07-20 19:57:33 +02:00
|
|
|
|
2014-05-03 11:51:53 +02:00
|
|
|
#ifndef MAX_MTEX
|
|
|
|
# define MAX_MTEX 18
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/* texco (also in DNA_material_types.h) */
|
|
|
|
#define TEXCO_STROKE 16 /* actually its UV */
|
|
|
|
|
2014-05-22 08:01:08 +02:00
|
|
|
struct AnimData;
|
2010-07-20 19:57:33 +02:00
|
|
|
struct ColorBand;
|
|
|
|
struct CurveMapping;
|
2014-05-03 11:51:53 +02:00
|
|
|
struct MTex;
|
2014-05-22 08:01:08 +02:00
|
|
|
struct Object;
|
|
|
|
struct bNodeTree;
|
2010-07-20 19:57:33 +02:00
|
|
|
|
|
|
|
typedef struct LineStyleModifier {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(LineStyleModifier)
|
|
|
|
|
2010-07-20 19:57:33 +02:00
|
|
|
struct LineStyleModifier *next, *prev;
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2019-01-07 12:19:13 +01:00
|
|
|
/** MAX_NAME. */
|
|
|
|
char name[64];
|
2010-07-20 19:57:33 +02:00
|
|
|
int type;
|
|
|
|
float influence;
|
|
|
|
int flags;
|
2011-08-19 16:05:11 +02:00
|
|
|
int blend;
|
2010-07-20 19:57:33 +02:00
|
|
|
} LineStyleModifier;
|
|
|
|
|
2023-06-26 04:09:49 +02:00
|
|
|
/** #LineStyleModifier::type */
|
|
|
|
enum {
|
|
|
|
LS_MODIFIER_ALONG_STROKE = 1,
|
|
|
|
LS_MODIFIER_DISTANCE_FROM_CAMERA = 2,
|
|
|
|
LS_MODIFIER_DISTANCE_FROM_OBJECT = 3,
|
|
|
|
LS_MODIFIER_MATERIAL = 4,
|
|
|
|
LS_MODIFIER_SAMPLING = 5,
|
|
|
|
LS_MODIFIER_BEZIER_CURVE = 6,
|
|
|
|
LS_MODIFIER_SINUS_DISPLACEMENT = 7,
|
|
|
|
LS_MODIFIER_SPATIAL_NOISE = 8,
|
|
|
|
LS_MODIFIER_PERLIN_NOISE_1D = 9,
|
|
|
|
LS_MODIFIER_PERLIN_NOISE_2D = 10,
|
|
|
|
LS_MODIFIER_BACKBONE_STRETCHER = 11,
|
|
|
|
LS_MODIFIER_TIP_REMOVER = 12,
|
|
|
|
LS_MODIFIER_CALLIGRAPHY = 13,
|
|
|
|
LS_MODIFIER_POLYGONIZATION = 14,
|
|
|
|
LS_MODIFIER_GUIDING_LINES = 15,
|
|
|
|
LS_MODIFIER_BLUEPRINT = 16,
|
|
|
|
LS_MODIFIER_2D_OFFSET = 17,
|
|
|
|
LS_MODIFIER_2D_TRANSFORM = 18,
|
|
|
|
LS_MODIFIER_TANGENT = 19,
|
|
|
|
LS_MODIFIER_NOISE = 20,
|
|
|
|
LS_MODIFIER_CREASE_ANGLE = 21,
|
|
|
|
LS_MODIFIER_SIMPLIFICATION = 22,
|
|
|
|
LS_MODIFIER_CURVATURE_3D = 23,
|
|
|
|
LS_MODIFIER_NUM = 24,
|
|
|
|
};
|
|
|
|
|
|
|
|
/** #LineStyleModifier::flags */
|
|
|
|
enum {
|
|
|
|
LS_MODIFIER_ENABLED = 1,
|
|
|
|
LS_MODIFIER_EXPANDED = 2,
|
|
|
|
};
|
|
|
|
|
|
|
|
/** Flags (for color) */
|
|
|
|
enum {
|
|
|
|
LS_MODIFIER_USE_RAMP = 1,
|
|
|
|
};
|
|
|
|
|
|
|
|
/** Flags (for alpha & thickness) */
|
|
|
|
enum {
|
|
|
|
LS_MODIFIER_USE_CURVE = 1,
|
|
|
|
LS_MODIFIER_INVERT = 2,
|
|
|
|
};
|
|
|
|
|
|
|
|
/** Flags (for asymmetric thickness application). */
|
|
|
|
enum {
|
|
|
|
LS_THICKNESS_ASYMMETRIC = 1,
|
|
|
|
};
|
|
|
|
|
|
|
|
/** Blend (for alpha & thickness). */
|
|
|
|
enum {
|
|
|
|
LS_VALUE_BLEND = 0,
|
|
|
|
LS_VALUE_ADD = 1,
|
|
|
|
LS_VALUE_MULT = 2,
|
|
|
|
LS_VALUE_SUB = 3,
|
|
|
|
LS_VALUE_DIV = 4,
|
|
|
|
LS_VALUE_DIFF = 5,
|
|
|
|
LS_VALUE_MIN = 6,
|
|
|
|
LS_VALUE_MAX = 7,
|
|
|
|
};
|
2010-07-20 19:57:33 +02:00
|
|
|
|
|
|
|
/* Along Stroke modifiers */
|
|
|
|
|
|
|
|
typedef struct LineStyleColorModifier_AlongStroke {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(LineStyleColorModifier_AlongStroke)
|
|
|
|
|
2010-07-20 19:57:33 +02:00
|
|
|
struct LineStyleModifier modifier;
|
|
|
|
|
|
|
|
struct ColorBand *color_ramp;
|
|
|
|
} LineStyleColorModifier_AlongStroke;
|
|
|
|
|
|
|
|
typedef struct LineStyleAlphaModifier_AlongStroke {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(LineStyleAlphaModifier_AlongStroke)
|
|
|
|
|
2010-07-20 19:57:33 +02:00
|
|
|
struct LineStyleModifier modifier;
|
|
|
|
|
|
|
|
struct CurveMapping *curve;
|
|
|
|
int flags;
|
2019-02-27 05:07:50 +01:00
|
|
|
char _pad[4];
|
2010-07-20 19:57:33 +02:00
|
|
|
} LineStyleAlphaModifier_AlongStroke;
|
|
|
|
|
|
|
|
typedef struct LineStyleThicknessModifier_AlongStroke {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(LineStyleThicknessModifier_AlongStroke)
|
|
|
|
|
2010-07-20 19:57:33 +02:00
|
|
|
struct LineStyleModifier modifier;
|
|
|
|
|
|
|
|
struct CurveMapping *curve;
|
|
|
|
int flags;
|
|
|
|
float value_min, value_max;
|
2019-02-27 05:07:50 +01:00
|
|
|
char _pad[4];
|
2010-07-20 19:57:33 +02:00
|
|
|
} LineStyleThicknessModifier_AlongStroke;
|
|
|
|
|
|
|
|
/* Distance from Camera modifiers */
|
|
|
|
|
|
|
|
typedef struct LineStyleColorModifier_DistanceFromCamera {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(LineStyleColorModifier_DistanceFromCamera)
|
|
|
|
|
2010-07-20 19:57:33 +02:00
|
|
|
struct LineStyleModifier modifier;
|
|
|
|
|
|
|
|
struct ColorBand *color_ramp;
|
|
|
|
float range_min, range_max;
|
|
|
|
} LineStyleColorModifier_DistanceFromCamera;
|
|
|
|
|
|
|
|
typedef struct LineStyleAlphaModifier_DistanceFromCamera {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(LineStyleAlphaModifier_DistanceFromCamera)
|
|
|
|
|
2010-07-20 19:57:33 +02:00
|
|
|
struct LineStyleModifier modifier;
|
|
|
|
|
|
|
|
struct CurveMapping *curve;
|
|
|
|
int flags;
|
|
|
|
float range_min, range_max;
|
2019-02-27 05:07:50 +01:00
|
|
|
char _pad[4];
|
2010-07-20 19:57:33 +02:00
|
|
|
} LineStyleAlphaModifier_DistanceFromCamera;
|
|
|
|
|
|
|
|
typedef struct LineStyleThicknessModifier_DistanceFromCamera {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(LineStyleThicknessModifier_DistanceFromCamera)
|
|
|
|
|
2010-07-20 19:57:33 +02:00
|
|
|
struct LineStyleModifier modifier;
|
|
|
|
|
|
|
|
struct CurveMapping *curve;
|
|
|
|
int flags;
|
|
|
|
float range_min, range_max;
|
|
|
|
float value_min, value_max;
|
2019-02-27 05:07:50 +01:00
|
|
|
char _pad[4];
|
2010-07-20 19:57:33 +02:00
|
|
|
} LineStyleThicknessModifier_DistanceFromCamera;
|
|
|
|
|
|
|
|
/* Distance from Object modifiers */
|
|
|
|
|
|
|
|
typedef struct LineStyleColorModifier_DistanceFromObject {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(LineStyleColorModifier_DistanceFromObject)
|
|
|
|
|
2010-07-20 19:57:33 +02:00
|
|
|
struct LineStyleModifier modifier;
|
|
|
|
|
|
|
|
struct Object *target;
|
|
|
|
struct ColorBand *color_ramp;
|
|
|
|
float range_min, range_max;
|
|
|
|
} LineStyleColorModifier_DistanceFromObject;
|
|
|
|
|
|
|
|
typedef struct LineStyleAlphaModifier_DistanceFromObject {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(LineStyleAlphaModifier_DistanceFromObject)
|
|
|
|
|
2010-07-20 19:57:33 +02:00
|
|
|
struct LineStyleModifier modifier;
|
|
|
|
|
|
|
|
struct Object *target;
|
|
|
|
struct CurveMapping *curve;
|
|
|
|
int flags;
|
|
|
|
float range_min, range_max;
|
2019-02-27 05:07:50 +01:00
|
|
|
char _pad[4];
|
2010-07-20 19:57:33 +02:00
|
|
|
} LineStyleAlphaModifier_DistanceFromObject;
|
|
|
|
|
|
|
|
typedef struct LineStyleThicknessModifier_DistanceFromObject {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(LineStyleThicknessModifier_DistanceFromObject)
|
|
|
|
|
2010-07-20 19:57:33 +02:00
|
|
|
struct LineStyleModifier modifier;
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2010-07-20 19:57:33 +02:00
|
|
|
struct Object *target;
|
|
|
|
struct CurveMapping *curve;
|
|
|
|
int flags;
|
|
|
|
float range_min, range_max;
|
|
|
|
float value_min, value_max;
|
2019-02-27 05:07:50 +01:00
|
|
|
char _pad[4];
|
2010-07-20 19:57:33 +02:00
|
|
|
} LineStyleThicknessModifier_DistanceFromObject;
|
|
|
|
|
2015-07-10 14:57:23 +02:00
|
|
|
/* 3D curvature modifiers */
|
|
|
|
|
|
|
|
typedef struct LineStyleColorModifier_Curvature_3D {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(LineStyleColorModifier_Curvature_3D)
|
|
|
|
|
2015-07-10 14:57:23 +02:00
|
|
|
struct LineStyleModifier modifier;
|
|
|
|
|
|
|
|
float min_curvature, max_curvature;
|
|
|
|
struct ColorBand *color_ramp;
|
|
|
|
float range_min, range_max;
|
2015-07-10 15:53:58 +02:00
|
|
|
} LineStyleColorModifier_Curvature_3D;
|
2015-07-10 14:57:23 +02:00
|
|
|
|
|
|
|
typedef struct LineStyleAlphaModifier_Curvature_3D {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(LineStyleAlphaModifier_Curvature_3D)
|
|
|
|
|
2015-07-10 14:57:23 +02:00
|
|
|
struct LineStyleModifier modifier;
|
|
|
|
|
|
|
|
struct CurveMapping *curve;
|
|
|
|
int flags;
|
|
|
|
float min_curvature, max_curvature;
|
2019-02-27 05:07:50 +01:00
|
|
|
char _pad[4];
|
2015-07-10 15:53:58 +02:00
|
|
|
} LineStyleAlphaModifier_Curvature_3D;
|
2015-07-10 14:57:23 +02:00
|
|
|
|
|
|
|
typedef struct LineStyleThicknessModifier_Curvature_3D {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(LineStyleThicknessModifier_Curvature_3D)
|
|
|
|
|
2015-07-10 14:57:23 +02:00
|
|
|
struct LineStyleModifier modifier;
|
|
|
|
|
|
|
|
struct CurveMapping *curve;
|
2019-02-27 05:07:50 +01:00
|
|
|
int flags;
|
|
|
|
char _pad[4];
|
2015-07-10 14:57:23 +02:00
|
|
|
float min_curvature, max_curvature;
|
|
|
|
float min_thickness, max_thickness;
|
2015-07-10 15:53:58 +02:00
|
|
|
} LineStyleThicknessModifier_Curvature_3D;
|
2015-07-10 14:57:23 +02:00
|
|
|
|
|
|
|
/* Noise modifiers (for color, alpha and thickness) */
|
|
|
|
|
|
|
|
typedef struct LineStyleColorModifier_Noise {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(LineStyleColorModifier_Noise)
|
|
|
|
|
2015-07-10 14:57:23 +02:00
|
|
|
struct LineStyleModifier modifier;
|
|
|
|
|
|
|
|
struct ColorBand *color_ramp;
|
|
|
|
float period, amplitude;
|
2019-02-27 05:07:50 +01:00
|
|
|
int seed;
|
|
|
|
char _pad[4];
|
2015-07-10 14:57:23 +02:00
|
|
|
} LineStyleColorModifier_Noise;
|
|
|
|
|
|
|
|
typedef struct LineStyleAlphaModifier_Noise {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(LineStyleAlphaModifier_Noise)
|
|
|
|
|
2015-07-10 14:57:23 +02:00
|
|
|
struct LineStyleModifier modifier;
|
|
|
|
|
|
|
|
struct CurveMapping *curve;
|
|
|
|
int flags;
|
|
|
|
float period, amplitude;
|
|
|
|
int seed;
|
|
|
|
} LineStyleAlphaModifier_Noise;
|
|
|
|
|
|
|
|
typedef struct LineStyleThicknessModifier_Noise {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(LineStyleThicknessModifier_Noise)
|
|
|
|
|
2015-07-10 14:57:23 +02:00
|
|
|
struct LineStyleModifier modifier;
|
|
|
|
|
|
|
|
float period, amplitude;
|
|
|
|
int flags;
|
|
|
|
int seed;
|
|
|
|
} LineStyleThicknessModifier_Noise;
|
|
|
|
|
|
|
|
/* Crease Angle modifiers */
|
|
|
|
|
|
|
|
typedef struct LineStyleColorModifier_CreaseAngle {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(LineStyleColorModifier_CreaseAngle)
|
|
|
|
|
2015-07-10 14:57:23 +02:00
|
|
|
struct LineStyleModifier modifier;
|
|
|
|
|
|
|
|
struct ColorBand *color_ramp;
|
|
|
|
float min_angle, max_angle;
|
|
|
|
} LineStyleColorModifier_CreaseAngle;
|
|
|
|
|
|
|
|
typedef struct LineStyleAlphaModifier_CreaseAngle {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(LineStyleAlphaModifier_CreaseAngle)
|
|
|
|
|
2015-07-10 14:57:23 +02:00
|
|
|
struct LineStyleModifier modifier;
|
|
|
|
|
|
|
|
struct CurveMapping *curve;
|
|
|
|
int flags;
|
|
|
|
float min_angle, max_angle;
|
2019-02-27 05:07:50 +01:00
|
|
|
char _pad[4];
|
2015-07-10 14:57:23 +02:00
|
|
|
} LineStyleAlphaModifier_CreaseAngle;
|
|
|
|
|
|
|
|
typedef struct LineStyleThicknessModifier_CreaseAngle {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(LineStyleThicknessModifier_CreaseAngle)
|
|
|
|
|
2015-07-10 14:57:23 +02:00
|
|
|
struct LineStyleModifier modifier;
|
|
|
|
|
|
|
|
struct CurveMapping *curve;
|
2019-02-27 05:07:50 +01:00
|
|
|
int flags;
|
|
|
|
char _pad[4];
|
2015-07-10 14:57:23 +02:00
|
|
|
float min_angle, max_angle;
|
|
|
|
float min_thickness, max_thickness;
|
|
|
|
} LineStyleThicknessModifier_CreaseAngle;
|
|
|
|
|
|
|
|
/* Tangent modifiers */
|
|
|
|
|
|
|
|
typedef struct LineStyleColorModifier_Tangent {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(LineStyleColorModifier_Tangent)
|
|
|
|
|
2015-07-10 14:57:23 +02:00
|
|
|
struct LineStyleModifier modifier;
|
|
|
|
|
|
|
|
struct ColorBand *color_ramp;
|
|
|
|
} LineStyleColorModifier_Tangent;
|
|
|
|
|
|
|
|
typedef struct LineStyleAlphaModifier_Tangent {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(LineStyleAlphaModifier_Tangent)
|
|
|
|
|
2015-07-10 14:57:23 +02:00
|
|
|
struct LineStyleModifier modifier;
|
|
|
|
|
|
|
|
struct CurveMapping *curve;
|
|
|
|
int flags;
|
2019-02-27 05:07:50 +01:00
|
|
|
char _pad[4];
|
2015-07-10 14:57:23 +02:00
|
|
|
} LineStyleAlphaModifier_Tangent;
|
|
|
|
|
|
|
|
typedef struct LineStyleThicknessModifier_Tangent {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(LineStyleThicknessModifier_Tangent)
|
|
|
|
|
2015-07-10 14:57:23 +02:00
|
|
|
struct LineStyleModifier modifier;
|
|
|
|
|
|
|
|
struct CurveMapping *curve;
|
|
|
|
int flags;
|
|
|
|
float min_thickness, max_thickness;
|
2019-02-27 05:07:50 +01:00
|
|
|
char _pad[4];
|
2015-07-10 14:57:23 +02:00
|
|
|
} LineStyleThicknessModifier_Tangent;
|
|
|
|
|
2011-07-25 01:29:19 +02:00
|
|
|
/* Material modifiers */
|
|
|
|
|
|
|
|
/* mat_attr */
|
2023-06-26 04:09:49 +02:00
|
|
|
enum {
|
|
|
|
LS_MODIFIER_MATERIAL_DIFF = 1,
|
|
|
|
LS_MODIFIER_MATERIAL_DIFF_R = 2,
|
|
|
|
LS_MODIFIER_MATERIAL_DIFF_G = 3,
|
|
|
|
LS_MODIFIER_MATERIAL_DIFF_B = 4,
|
|
|
|
LS_MODIFIER_MATERIAL_SPEC = 5,
|
|
|
|
LS_MODIFIER_MATERIAL_SPEC_R = 6,
|
|
|
|
LS_MODIFIER_MATERIAL_SPEC_G = 7,
|
|
|
|
LS_MODIFIER_MATERIAL_SPEC_B = 8,
|
|
|
|
LS_MODIFIER_MATERIAL_SPEC_HARD = 9,
|
|
|
|
LS_MODIFIER_MATERIAL_ALPHA = 10,
|
|
|
|
LS_MODIFIER_MATERIAL_LINE = 11,
|
|
|
|
LS_MODIFIER_MATERIAL_LINE_R = 12,
|
|
|
|
LS_MODIFIER_MATERIAL_LINE_G = 13,
|
|
|
|
LS_MODIFIER_MATERIAL_LINE_B = 14,
|
|
|
|
LS_MODIFIER_MATERIAL_LINE_A = 15,
|
|
|
|
};
|
2011-07-25 01:29:19 +02:00
|
|
|
|
|
|
|
typedef struct LineStyleColorModifier_Material {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(LineStyleColorModifier_Material)
|
|
|
|
|
2011-07-25 01:29:19 +02:00
|
|
|
struct LineStyleModifier modifier;
|
|
|
|
|
|
|
|
struct ColorBand *color_ramp;
|
|
|
|
int flags;
|
|
|
|
int mat_attr;
|
|
|
|
} LineStyleColorModifier_Material;
|
|
|
|
|
|
|
|
typedef struct LineStyleAlphaModifier_Material {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(LineStyleAlphaModifier_Material)
|
|
|
|
|
2011-07-25 01:29:19 +02:00
|
|
|
struct LineStyleModifier modifier;
|
|
|
|
|
|
|
|
struct CurveMapping *curve;
|
|
|
|
int flags;
|
|
|
|
int mat_attr;
|
|
|
|
} LineStyleAlphaModifier_Material;
|
|
|
|
|
|
|
|
typedef struct LineStyleThicknessModifier_Material {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(LineStyleThicknessModifier_Material)
|
|
|
|
|
2011-07-25 01:29:19 +02:00
|
|
|
struct LineStyleModifier modifier;
|
|
|
|
|
|
|
|
struct CurveMapping *curve;
|
|
|
|
int flags;
|
|
|
|
float value_min, value_max;
|
|
|
|
int mat_attr;
|
|
|
|
} LineStyleThicknessModifier_Material;
|
|
|
|
|
2011-08-19 16:05:11 +02:00
|
|
|
/* Geometry modifiers */
|
|
|
|
|
|
|
|
typedef struct LineStyleGeometryModifier_Sampling {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(LineStyleGeometryModifier_Sampling)
|
|
|
|
|
2011-08-19 16:05:11 +02:00
|
|
|
struct LineStyleModifier modifier;
|
|
|
|
|
|
|
|
float sampling;
|
2019-02-27 05:07:50 +01:00
|
|
|
char _pad[4];
|
2011-08-19 16:05:11 +02:00
|
|
|
} LineStyleGeometryModifier_Sampling;
|
|
|
|
|
|
|
|
typedef struct LineStyleGeometryModifier_BezierCurve {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(LineStyleGeometryModifier_BezierCurve)
|
|
|
|
|
2011-08-19 16:05:11 +02:00
|
|
|
struct LineStyleModifier modifier;
|
|
|
|
|
|
|
|
float error;
|
2019-02-27 05:07:50 +01:00
|
|
|
char _pad[4];
|
2011-08-19 16:05:11 +02:00
|
|
|
} LineStyleGeometryModifier_BezierCurve;
|
|
|
|
|
|
|
|
typedef struct LineStyleGeometryModifier_SinusDisplacement {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(LineStyleGeometryModifier_SinusDisplacement)
|
|
|
|
|
2011-08-19 16:05:11 +02:00
|
|
|
struct LineStyleModifier modifier;
|
|
|
|
|
|
|
|
float wavelength, amplitude, phase;
|
2019-02-27 05:07:50 +01:00
|
|
|
char _pad[4];
|
2011-08-19 16:05:11 +02:00
|
|
|
} LineStyleGeometryModifier_SinusDisplacement;
|
|
|
|
|
2023-06-26 04:09:49 +02:00
|
|
|
/** #LineStyleGeometryModifier_SpatialNoise::flags */
|
|
|
|
enum {
|
|
|
|
LS_MODIFIER_SPATIAL_NOISE_SMOOTH = 1,
|
|
|
|
LS_MODIFIER_SPATIAL_NOISE_PURERANDOM = 2,
|
|
|
|
};
|
2011-08-19 16:05:11 +02:00
|
|
|
|
|
|
|
typedef struct LineStyleGeometryModifier_SpatialNoise {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(LineStyleGeometryModifier_SpatialNoise)
|
|
|
|
|
2011-08-19 16:05:11 +02:00
|
|
|
struct LineStyleModifier modifier;
|
|
|
|
|
|
|
|
float amplitude, scale;
|
|
|
|
unsigned int octaves;
|
|
|
|
int flags;
|
|
|
|
} LineStyleGeometryModifier_SpatialNoise;
|
|
|
|
|
|
|
|
typedef struct LineStyleGeometryModifier_PerlinNoise1D {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(LineStyleGeometryModifier_PerlinNoise1D)
|
|
|
|
|
2011-08-19 16:05:11 +02:00
|
|
|
struct LineStyleModifier modifier;
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2012-12-10 00:19:46 +01:00
|
|
|
float frequency, amplitude;
|
2021-07-27 08:02:22 +02:00
|
|
|
/** In radians. */
|
2019-01-07 12:19:13 +01:00
|
|
|
float angle;
|
2011-08-19 16:05:11 +02:00
|
|
|
unsigned int octaves;
|
|
|
|
int seed;
|
2019-02-27 05:07:50 +01:00
|
|
|
char _pad1[4];
|
2011-08-19 16:05:11 +02:00
|
|
|
} LineStyleGeometryModifier_PerlinNoise1D;
|
|
|
|
|
|
|
|
typedef struct LineStyleGeometryModifier_PerlinNoise2D {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(LineStyleGeometryModifier_PerlinNoise2D)
|
|
|
|
|
2011-08-19 16:05:11 +02:00
|
|
|
struct LineStyleModifier modifier;
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2012-12-10 00:19:46 +01:00
|
|
|
float frequency, amplitude;
|
2021-07-27 08:02:22 +02:00
|
|
|
/** In radians. */
|
2019-01-07 12:19:13 +01:00
|
|
|
float angle;
|
2011-08-19 16:05:11 +02:00
|
|
|
unsigned int octaves;
|
|
|
|
int seed;
|
2019-02-27 05:07:50 +01:00
|
|
|
char _pad1[4];
|
2011-08-19 16:05:11 +02:00
|
|
|
} LineStyleGeometryModifier_PerlinNoise2D;
|
|
|
|
|
|
|
|
typedef struct LineStyleGeometryModifier_BackboneStretcher {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(LineStyleGeometryModifier_BackboneStretcher)
|
|
|
|
|
2011-08-19 16:05:11 +02:00
|
|
|
struct LineStyleModifier modifier;
|
|
|
|
|
2011-11-11 21:35:03 +01:00
|
|
|
float backbone_length;
|
2019-02-27 05:07:50 +01:00
|
|
|
char _pad[4];
|
2011-08-19 16:05:11 +02:00
|
|
|
} LineStyleGeometryModifier_BackboneStretcher;
|
|
|
|
|
|
|
|
typedef struct LineStyleGeometryModifier_TipRemover {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(LineStyleGeometryModifier_TipRemover)
|
|
|
|
|
2011-08-19 16:05:11 +02:00
|
|
|
struct LineStyleModifier modifier;
|
|
|
|
|
|
|
|
float tip_length;
|
2019-02-27 05:07:50 +01:00
|
|
|
char _pad[4];
|
2011-08-19 16:05:11 +02:00
|
|
|
} LineStyleGeometryModifier_TipRemover;
|
|
|
|
|
2011-11-01 10:47:41 +01:00
|
|
|
typedef struct LineStyleGeometryModifier_Polygonalization {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(LineStyleGeometryModifier_Polygonalization)
|
|
|
|
|
2011-11-01 10:47:41 +01:00
|
|
|
struct LineStyleModifier modifier;
|
|
|
|
|
|
|
|
float error;
|
2019-02-27 05:07:50 +01:00
|
|
|
char _pad[4];
|
2011-11-01 10:47:41 +01:00
|
|
|
} LineStyleGeometryModifier_Polygonalization;
|
|
|
|
|
|
|
|
typedef struct LineStyleGeometryModifier_GuidingLines {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(LineStyleGeometryModifier_GuidingLines)
|
|
|
|
|
2011-11-01 10:47:41 +01:00
|
|
|
struct LineStyleModifier modifier;
|
|
|
|
|
|
|
|
float offset;
|
2019-02-27 05:07:50 +01:00
|
|
|
char _pad[4];
|
2011-11-01 10:47:41 +01:00
|
|
|
} LineStyleGeometryModifier_GuidingLines;
|
|
|
|
|
2023-06-26 04:09:49 +02:00
|
|
|
/** #LineStyleGeometryModifier_BluePrintLines::shape */
|
|
|
|
enum {
|
|
|
|
LS_MODIFIER_BLUEPRINT_CIRCLES = 1,
|
|
|
|
LS_MODIFIER_BLUEPRINT_ELLIPSES = 2,
|
|
|
|
LS_MODIFIER_BLUEPRINT_SQUARES = 4,
|
|
|
|
};
|
2011-11-11 21:35:03 +01:00
|
|
|
|
|
|
|
typedef struct LineStyleGeometryModifier_Blueprint {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(LineStyleGeometryModifier_Blueprint)
|
|
|
|
|
2011-11-11 21:35:03 +01:00
|
|
|
struct LineStyleModifier modifier;
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2011-11-11 21:35:03 +01:00
|
|
|
int flags;
|
|
|
|
unsigned int rounds;
|
|
|
|
float backbone_length;
|
|
|
|
unsigned int random_radius;
|
|
|
|
unsigned int random_center;
|
|
|
|
unsigned int random_backbone;
|
|
|
|
} LineStyleGeometryModifier_Blueprint;
|
|
|
|
|
2012-01-04 01:23:34 +01:00
|
|
|
typedef struct LineStyleGeometryModifier_2DOffset {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(LineStyleGeometryModifier_2DOffset)
|
|
|
|
|
2012-01-04 01:23:34 +01:00
|
|
|
struct LineStyleModifier modifier;
|
|
|
|
|
|
|
|
float start, end;
|
|
|
|
float x, y;
|
|
|
|
} LineStyleGeometryModifier_2DOffset;
|
|
|
|
|
2023-06-26 04:09:49 +02:00
|
|
|
/** #LineStyleGeometryModifier_2DTransform::pivot */
|
|
|
|
enum {
|
|
|
|
LS_MODIFIER_2D_TRANSFORM_PIVOT_CENTER = 1,
|
|
|
|
LS_MODIFIER_2D_TRANSFORM_PIVOT_START = 2,
|
|
|
|
LS_MODIFIER_2D_TRANSFORM_PIVOT_END = 3,
|
|
|
|
LS_MODIFIER_2D_TRANSFORM_PIVOT_PARAM = 4,
|
|
|
|
LS_MODIFIER_2D_TRANSFORM_PIVOT_ABSOLUTE = 5,
|
|
|
|
};
|
2012-01-04 01:23:34 +01:00
|
|
|
|
|
|
|
typedef struct LineStyleGeometryModifier_2DTransform {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(LineStyleGeometryModifier_2DTransform)
|
|
|
|
|
2012-01-04 01:23:34 +01:00
|
|
|
struct LineStyleModifier modifier;
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2012-01-04 01:23:34 +01:00
|
|
|
int pivot;
|
|
|
|
float scale_x, scale_y;
|
2021-07-27 08:02:22 +02:00
|
|
|
/** In radians. */
|
2019-01-07 12:19:13 +01:00
|
|
|
float angle;
|
2012-01-04 01:23:34 +01:00
|
|
|
float pivot_u;
|
|
|
|
float pivot_x, pivot_y;
|
2019-02-27 05:07:50 +01:00
|
|
|
char _pad[4];
|
2012-01-04 01:23:34 +01:00
|
|
|
} LineStyleGeometryModifier_2DTransform;
|
|
|
|
|
2015-07-10 14:57:23 +02:00
|
|
|
typedef struct LineStyleGeometryModifier_Simplification {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(LineStyleGeometryModifier_Simplification)
|
|
|
|
|
2015-07-10 14:57:23 +02:00
|
|
|
struct LineStyleModifier modifier;
|
|
|
|
|
|
|
|
float tolerance;
|
2019-02-27 05:07:50 +01:00
|
|
|
char _pad[4];
|
2015-07-10 14:57:23 +02:00
|
|
|
} LineStyleGeometryModifier_Simplification;
|
|
|
|
|
2011-09-11 21:57:38 +02:00
|
|
|
/* Calligraphic thickness modifier */
|
|
|
|
|
|
|
|
typedef struct LineStyleThicknessModifier_Calligraphy {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(LineStyleThicknessModifier_Calligraphy)
|
|
|
|
|
2011-09-11 21:57:38 +02:00
|
|
|
struct LineStyleModifier modifier;
|
|
|
|
|
|
|
|
float min_thickness, max_thickness;
|
2021-07-27 08:02:22 +02:00
|
|
|
/** In radians. */
|
2019-01-07 12:19:13 +01:00
|
|
|
float orientation;
|
2019-02-27 05:07:50 +01:00
|
|
|
char _pad[4];
|
2011-09-11 21:57:38 +02:00
|
|
|
} LineStyleThicknessModifier_Calligraphy;
|
|
|
|
|
2023-06-26 04:09:49 +02:00
|
|
|
/** #FreestyleLineStyle::panel */
|
|
|
|
enum {
|
|
|
|
LS_PANEL_STROKES = 1,
|
|
|
|
LS_PANEL_COLOR = 2,
|
|
|
|
LS_PANEL_ALPHA = 3,
|
|
|
|
LS_PANEL_THICKNESS = 4,
|
|
|
|
LS_PANEL_GEOMETRY = 5,
|
|
|
|
LS_PANEL_TEXTURE = 6,
|
|
|
|
LS_PANEL_MISC = 7,
|
|
|
|
};
|
|
|
|
|
|
|
|
/** #FreestyleLineStyle::flag */
|
|
|
|
enum {
|
|
|
|
LS_DS_EXPAND = 1 << 0, /* for animation editors */
|
|
|
|
LS_SAME_OBJECT = 1 << 1,
|
|
|
|
LS_DASHED_LINE = 1 << 2,
|
|
|
|
LS_MATERIAL_BOUNDARY = 1 << 3,
|
|
|
|
LS_MIN_2D_LENGTH = 1 << 4,
|
|
|
|
LS_MAX_2D_LENGTH = 1 << 5,
|
|
|
|
LS_NO_CHAINING = 1 << 6,
|
|
|
|
LS_MIN_2D_ANGLE = 1 << 7,
|
|
|
|
LS_MAX_2D_ANGLE = 1 << 8,
|
|
|
|
LS_SPLIT_LENGTH = 1 << 9,
|
|
|
|
LS_SPLIT_PATTERN = 1 << 10,
|
|
|
|
LS_NO_SORTING = 1 << 11,
|
|
|
|
LS_REVERSE_ORDER = 1 << 12, /* for sorting */
|
|
|
|
LS_TEXTURE = 1 << 13,
|
|
|
|
LS_CHAIN_COUNT = 1 << 14,
|
|
|
|
};
|
|
|
|
|
|
|
|
/** #FreestyleLineStyle::chaining */
|
|
|
|
enum {
|
|
|
|
LS_CHAINING_PLAIN = 1,
|
|
|
|
LS_CHAINING_SKETCHY = 2,
|
|
|
|
};
|
|
|
|
|
|
|
|
/** #FreestyleLineStyle::caps */
|
|
|
|
enum {
|
|
|
|
LS_CAPS_BUTT = 1,
|
|
|
|
LS_CAPS_ROUND = 2,
|
|
|
|
LS_CAPS_SQUARE = 3,
|
|
|
|
};
|
|
|
|
|
|
|
|
/** #FreestyleLineStyle::thickness_position */
|
|
|
|
enum {
|
|
|
|
LS_THICKNESS_CENTER = 1,
|
|
|
|
LS_THICKNESS_INSIDE = 2,
|
|
|
|
LS_THICKNESS_OUTSIDE = 3,
|
|
|
|
/** Thickness_ratio is used. */
|
|
|
|
LS_THICKNESS_RELATIVE = 4,
|
|
|
|
};
|
|
|
|
|
|
|
|
/** #FreestyleLineStyle::sort_key */
|
|
|
|
enum {
|
|
|
|
LS_SORT_KEY_DISTANCE_FROM_CAMERA = 1,
|
|
|
|
LS_SORT_KEY_2D_LENGTH = 2,
|
|
|
|
LS_SORT_KEY_PROJECTED_X = 3,
|
|
|
|
LS_SORT_KEY_PROJECTED_Y = 4,
|
|
|
|
};
|
|
|
|
|
|
|
|
/** #FreestyleLineStyle::integration_type */
|
|
|
|
enum {
|
|
|
|
LS_INTEGRATION_MEAN = 1,
|
|
|
|
LS_INTEGRATION_MIN = 2,
|
|
|
|
LS_INTEGRATION_MAX = 3,
|
|
|
|
LS_INTEGRATION_FIRST = 4,
|
|
|
|
LS_INTEGRATION_LAST = 5,
|
|
|
|
};
|
2014-04-18 07:59:02 +02:00
|
|
|
|
2010-07-20 19:57:33 +02:00
|
|
|
typedef struct FreestyleLineStyle {
|
2022-04-12 10:56:51 +02:00
|
|
|
DNA_DEFINE_CXX_METHODS(FreestyleLineStyle)
|
|
|
|
|
2010-07-20 19:57:33 +02:00
|
|
|
ID id;
|
2010-09-18 02:31:22 +02:00
|
|
|
struct AnimData *adt;
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2010-07-20 19:57:33 +02:00
|
|
|
float r, g, b, alpha;
|
|
|
|
float thickness;
|
2012-04-07 19:28:09 +02:00
|
|
|
int thickness_position;
|
|
|
|
float thickness_ratio;
|
2010-10-11 00:50:32 +02:00
|
|
|
int flag, caps;
|
2011-09-20 00:40:44 +02:00
|
|
|
int chaining;
|
|
|
|
unsigned int rounds;
|
2011-12-12 00:41:15 +01:00
|
|
|
float split_length;
|
2019-01-07 12:19:13 +01:00
|
|
|
/** In radians, for splitting. */
|
|
|
|
float min_angle, max_angle;
|
2011-09-19 00:59:51 +02:00
|
|
|
float min_length, max_length;
|
2014-10-01 08:42:37 +02:00
|
|
|
unsigned int chain_count;
|
2012-11-05 00:52:26 +01:00
|
|
|
unsigned short split_dash1, split_gap1;
|
|
|
|
unsigned short split_dash2, split_gap2;
|
|
|
|
unsigned short split_dash3, split_gap3;
|
2014-04-18 07:59:02 +02:00
|
|
|
int sort_key, integration_type;
|
2014-08-20 16:10:57 +02:00
|
|
|
float texstep;
|
2014-05-03 11:51:53 +02:00
|
|
|
short texact, pr_texture;
|
2019-02-27 05:07:50 +01:00
|
|
|
short use_nodes;
|
|
|
|
char _pad[6];
|
2010-10-23 22:42:26 +02:00
|
|
|
unsigned short dash1, gap1, dash2, gap2, dash3, gap3;
|
2019-01-07 12:19:13 +01:00
|
|
|
/** For UI. */
|
|
|
|
int panel;
|
|
|
|
/** MAX_MTEX. */
|
|
|
|
struct MTex *mtex[18];
|
2014-05-03 11:51:53 +02:00
|
|
|
/* nodes */
|
|
|
|
struct bNodeTree *nodetree;
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2010-07-20 19:57:33 +02:00
|
|
|
ListBase color_modifiers;
|
|
|
|
ListBase alpha_modifiers;
|
|
|
|
ListBase thickness_modifiers;
|
2011-08-19 16:05:11 +02:00
|
|
|
ListBase geometry_modifiers;
|
2010-07-20 19:57:33 +02:00
|
|
|
} FreestyleLineStyle;
|