Merge remote-tracking branch 'origin/master' into blender2.8
[blender.git] / source / blender / makesdna / DNA_linestyle_types.h
index 9ffb53e83b6940b6543f93a18d2bd20fe8435ce5..fa9ce358549542ba9ade0873082c4c19cbe09994 100644 (file)
@@ -1,7 +1,4 @@
-/* DNA_linestyle_types.h
- *
- * $Id$
- *
+/*
  * ***** BEGIN GPL LICENSE BLOCK *****
  *
  * This program is free software; you can redistribute it and/or
  * ***** BEGIN GPL LICENSE BLOCK *****
  *
  * This program is free software; you can redistribute it and/or
  * ***** END GPL LICENSE BLOCK *****
  */
 
  * ***** END GPL LICENSE BLOCK *****
  */
 
-#ifndef DNA_LINESTYLE_TYPES_H
-#define DNA_LINESTYLE_TYPES_H
+#ifndef __DNA_LINESTYLE_TYPES_H__
+#define __DNA_LINESTYLE_TYPES_H__
+
+/** \file DNA_linestyle_types.h
+ *  \ingroup DNA
+ */
 
 #include "DNA_listBase.h"
 #include "DNA_ID.h"
 
 
 #include "DNA_listBase.h"
 #include "DNA_ID.h"
 
+#ifndef MAX_MTEX
+#define MAX_MTEX       18
+#endif
+
+/* texco (also in DNA_material_types.h) */
+#define TEXCO_STROKE   16 /* actually it's UV */
+
+struct AnimData;
 struct ColorBand;
 struct CurveMapping;
 struct ColorBand;
 struct CurveMapping;
+struct MTex;
+struct Object;
+struct bNodeTree;
 
 typedef struct LineStyleModifier {
        struct LineStyleModifier *next, *prev;
 
 
 typedef struct LineStyleModifier {
        struct LineStyleModifier *next, *prev;
 
-       char name[32];
+       char name[64]; /* MAX_NAME */
        int type;
        float influence;
        int flags;
        int blend;
        int type;
        float influence;
        int flags;
        int blend;
-
 } LineStyleModifier;
 
 /* LineStyleModifier::type */
 } LineStyleModifier;
 
 /* LineStyleModifier::type */
@@ -67,7 +78,12 @@ typedef struct LineStyleModifier {
 #define LS_MODIFIER_BLUEPRINT              16
 #define LS_MODIFIER_2D_OFFSET              17
 #define LS_MODIFIER_2D_TRANSFORM           18
 #define LS_MODIFIER_BLUEPRINT              16
 #define LS_MODIFIER_2D_OFFSET              17
 #define LS_MODIFIER_2D_TRANSFORM           18
-#define LS_MODIFIER_NUM                    19
+#define LS_MODIFIER_TANGENT                19
+#define LS_MODIFIER_NOISE                  20
+#define LS_MODIFIER_CREASE_ANGLE           21
+#define LS_MODIFIER_SIMPLIFICATION         22
+#define LS_MODIFIER_CURVATURE_3D           23
+#define LS_MODIFIER_NUM                    24
 
 /* LineStyleModifier::flags */
 #define LS_MODIFIER_ENABLED     1
 
 /* LineStyleModifier::flags */
 #define LS_MODIFIER_ENABLED     1
@@ -80,6 +96,9 @@ typedef struct LineStyleModifier {
 #define LS_MODIFIER_USE_CURVE    1
 #define LS_MODIFIER_INVERT       2
 
 #define LS_MODIFIER_USE_CURVE    1
 #define LS_MODIFIER_INVERT       2
 
+/* flags (for asymmetric thickness application) */
+#define LS_THICKNESS_ASYMMETRIC   1
+
 /* blend (for alpha & thickness) */
 #define LS_VALUE_BLEND  0
 #define LS_VALUE_ADD    1
 /* blend (for alpha & thickness) */
 #define LS_VALUE_BLEND  0
 #define LS_VALUE_ADD    1
@@ -96,7 +115,6 @@ typedef struct LineStyleColorModifier_AlongStroke {
        struct LineStyleModifier modifier;
 
        struct ColorBand *color_ramp;
        struct LineStyleModifier modifier;
 
        struct ColorBand *color_ramp;
-
 } LineStyleColorModifier_AlongStroke;
 
 typedef struct LineStyleAlphaModifier_AlongStroke {
 } LineStyleColorModifier_AlongStroke;
 
 typedef struct LineStyleAlphaModifier_AlongStroke {
@@ -105,7 +123,6 @@ typedef struct LineStyleAlphaModifier_AlongStroke {
        struct CurveMapping     *curve;
        int flags;
        int pad;
        struct CurveMapping     *curve;
        int flags;
        int pad;
-
 } LineStyleAlphaModifier_AlongStroke;
 
 typedef struct LineStyleThicknessModifier_AlongStroke {
 } LineStyleAlphaModifier_AlongStroke;
 
 typedef struct LineStyleThicknessModifier_AlongStroke {
@@ -115,7 +132,6 @@ typedef struct LineStyleThicknessModifier_AlongStroke {
        int flags;
        float value_min, value_max;
        int pad;
        int flags;
        float value_min, value_max;
        int pad;
-
 } LineStyleThicknessModifier_AlongStroke;
 
 /* Distance from Camera modifiers */
 } LineStyleThicknessModifier_AlongStroke;
 
 /* Distance from Camera modifiers */
@@ -125,7 +141,6 @@ typedef struct LineStyleColorModifier_DistanceFromCamera {
 
        struct ColorBand *color_ramp;
        float range_min, range_max;
 
        struct ColorBand *color_ramp;
        float range_min, range_max;
-
 } LineStyleColorModifier_DistanceFromCamera;
 
 typedef struct LineStyleAlphaModifier_DistanceFromCamera {
 } LineStyleColorModifier_DistanceFromCamera;
 
 typedef struct LineStyleAlphaModifier_DistanceFromCamera {
@@ -135,7 +150,6 @@ typedef struct LineStyleAlphaModifier_DistanceFromCamera {
        int flags;
        float range_min, range_max;
        int pad;
        int flags;
        float range_min, range_max;
        int pad;
-
 } LineStyleAlphaModifier_DistanceFromCamera;
 
 typedef struct LineStyleThicknessModifier_DistanceFromCamera {
 } LineStyleAlphaModifier_DistanceFromCamera;
 
 typedef struct LineStyleThicknessModifier_DistanceFromCamera {
@@ -146,7 +160,6 @@ typedef struct LineStyleThicknessModifier_DistanceFromCamera {
        float range_min, range_max;
        float value_min, value_max;
        int pad;
        float range_min, range_max;
        float value_min, value_max;
        int pad;
-
 } LineStyleThicknessModifier_DistanceFromCamera;
 
 /* Distance from Object modifiers */
 } LineStyleThicknessModifier_DistanceFromCamera;
 
 /* Distance from Object modifiers */
@@ -157,7 +170,6 @@ typedef struct LineStyleColorModifier_DistanceFromObject {
        struct Object *target;
        struct ColorBand *color_ramp;
        float range_min, range_max;
        struct Object *target;
        struct ColorBand *color_ramp;
        float range_min, range_max;
-
 } LineStyleColorModifier_DistanceFromObject;
 
 typedef struct LineStyleAlphaModifier_DistanceFromObject {
 } LineStyleColorModifier_DistanceFromObject;
 
 typedef struct LineStyleAlphaModifier_DistanceFromObject {
@@ -168,7 +180,6 @@ typedef struct LineStyleAlphaModifier_DistanceFromObject {
        int flags;
        float range_min, range_max;
        int pad;
        int flags;
        float range_min, range_max;
        int pad;
-
 } LineStyleAlphaModifier_DistanceFromObject;
 
 typedef struct LineStyleThicknessModifier_DistanceFromObject {
 } LineStyleAlphaModifier_DistanceFromObject;
 
 typedef struct LineStyleThicknessModifier_DistanceFromObject {
@@ -180,22 +191,133 @@ typedef struct LineStyleThicknessModifier_DistanceFromObject {
        float range_min, range_max;
        float value_min, value_max;
        int pad;
        float range_min, range_max;
        float value_min, value_max;
        int pad;
-
 } LineStyleThicknessModifier_DistanceFromObject;
 
 } LineStyleThicknessModifier_DistanceFromObject;
 
+/* 3D curvature modifiers */
+
+typedef struct LineStyleColorModifier_Curvature_3D {
+       struct LineStyleModifier modifier;
+
+       float min_curvature, max_curvature;
+       struct ColorBand *color_ramp;
+       float range_min, range_max;
+} LineStyleColorModifier_Curvature_3D;
+
+typedef struct LineStyleAlphaModifier_Curvature_3D {
+       struct LineStyleModifier modifier;
+
+       struct CurveMapping     *curve;
+       int flags;
+       float min_curvature, max_curvature;
+       int pad;
+} LineStyleAlphaModifier_Curvature_3D;
+
+typedef struct LineStyleThicknessModifier_Curvature_3D {
+       struct LineStyleModifier modifier;
+
+       struct CurveMapping *curve;
+       int flags, pad;
+       float min_curvature, max_curvature;
+       float min_thickness, max_thickness;
+} LineStyleThicknessModifier_Curvature_3D;
+
+/* Noise modifiers (for color, alpha and thickness) */
+
+typedef struct LineStyleColorModifier_Noise {
+       struct LineStyleModifier modifier;
+
+       struct ColorBand *color_ramp;
+       float period, amplitude;
+       int seed, pad;
+} LineStyleColorModifier_Noise;
+
+typedef struct LineStyleAlphaModifier_Noise {
+       struct LineStyleModifier modifier;
+
+       struct CurveMapping     *curve;
+       int flags;
+       float period, amplitude;
+       int seed;
+} LineStyleAlphaModifier_Noise;
+
+typedef struct LineStyleThicknessModifier_Noise {
+       struct LineStyleModifier modifier;
+
+       float period, amplitude;
+       int flags;
+       int seed;
+} LineStyleThicknessModifier_Noise;
+
+/* Crease Angle modifiers */
+
+typedef struct LineStyleColorModifier_CreaseAngle {
+       struct LineStyleModifier modifier;
+
+       struct ColorBand *color_ramp;
+       float min_angle, max_angle;
+} LineStyleColorModifier_CreaseAngle;
+
+typedef struct LineStyleAlphaModifier_CreaseAngle {
+       struct LineStyleModifier modifier;
+
+       struct CurveMapping     *curve;
+       int flags;
+       float min_angle, max_angle;
+       int pad;
+} LineStyleAlphaModifier_CreaseAngle;
+
+typedef struct LineStyleThicknessModifier_CreaseAngle {
+       struct LineStyleModifier modifier;
+
+       struct CurveMapping *curve;
+       int flags, pad;
+       float min_angle, max_angle;
+       float min_thickness, max_thickness;
+} LineStyleThicknessModifier_CreaseAngle;
+
+/* Tangent modifiers */
+
+typedef struct LineStyleColorModifier_Tangent {
+       struct LineStyleModifier modifier;
+
+       struct ColorBand *color_ramp;
+} LineStyleColorModifier_Tangent;
+
+typedef struct LineStyleAlphaModifier_Tangent {
+       struct LineStyleModifier modifier;
+
+       struct CurveMapping     *curve;
+       int flags;
+       int pad;
+} LineStyleAlphaModifier_Tangent;
+
+typedef struct LineStyleThicknessModifier_Tangent {
+       struct LineStyleModifier modifier;
+
+       struct CurveMapping     *curve;
+       int flags;
+       float min_thickness, max_thickness;
+       int pad;
+} LineStyleThicknessModifier_Tangent;
+
 /* Material modifiers */
 
 /* mat_attr */
 /* Material modifiers */
 
 /* mat_attr */
-#define LS_MODIFIER_MATERIAL_DIFF       1
-#define LS_MODIFIER_MATERIAL_DIFF_R     2
-#define LS_MODIFIER_MATERIAL_DIFF_G     3
-#define LS_MODIFIER_MATERIAL_DIFF_B     4
-#define LS_MODIFIER_MATERIAL_SPEC       5
-#define LS_MODIFIER_MATERIAL_SPEC_R     6
-#define LS_MODIFIER_MATERIAL_SPEC_G     7
-#define LS_MODIFIER_MATERIAL_SPEC_B     8
-#define LS_MODIFIER_MATERIAL_SPEC_HARD  9
+#define LS_MODIFIER_MATERIAL_DIFF        1
+#define LS_MODIFIER_MATERIAL_DIFF_R      2
+#define LS_MODIFIER_MATERIAL_DIFF_G      3
+#define LS_MODIFIER_MATERIAL_DIFF_B      4
+#define LS_MODIFIER_MATERIAL_SPEC        5
+#define LS_MODIFIER_MATERIAL_SPEC_R      6
+#define LS_MODIFIER_MATERIAL_SPEC_G      7
+#define LS_MODIFIER_MATERIAL_SPEC_B      8
+#define LS_MODIFIER_MATERIAL_SPEC_HARD   9
 #define LS_MODIFIER_MATERIAL_ALPHA      10
 #define LS_MODIFIER_MATERIAL_ALPHA      10
+#define LS_MODIFIER_MATERIAL_LINE       11
+#define LS_MODIFIER_MATERIAL_LINE_R     12
+#define LS_MODIFIER_MATERIAL_LINE_G     13
+#define LS_MODIFIER_MATERIAL_LINE_B     14
+#define LS_MODIFIER_MATERIAL_LINE_A     15
 
 typedef struct LineStyleColorModifier_Material {
        struct LineStyleModifier modifier;
 
 typedef struct LineStyleColorModifier_Material {
        struct LineStyleModifier modifier;
@@ -203,7 +325,6 @@ typedef struct LineStyleColorModifier_Material {
        struct ColorBand *color_ramp;
        int flags;
        int mat_attr;
        struct ColorBand *color_ramp;
        int flags;
        int mat_attr;
-
 } LineStyleColorModifier_Material;
 
 typedef struct LineStyleAlphaModifier_Material {
 } LineStyleColorModifier_Material;
 
 typedef struct LineStyleAlphaModifier_Material {
@@ -212,7 +333,6 @@ typedef struct LineStyleAlphaModifier_Material {
        struct CurveMapping     *curve;
        int flags;
        int mat_attr;
        struct CurveMapping     *curve;
        int flags;
        int mat_attr;
-
 } LineStyleAlphaModifier_Material;
 
 typedef struct LineStyleThicknessModifier_Material {
 } LineStyleAlphaModifier_Material;
 
 typedef struct LineStyleThicknessModifier_Material {
@@ -222,7 +342,6 @@ typedef struct LineStyleThicknessModifier_Material {
        int flags;
        float value_min, value_max;
        int mat_attr;
        int flags;
        float value_min, value_max;
        int mat_attr;
-
 } LineStyleThicknessModifier_Material;
 
 /* Geometry modifiers */
 } LineStyleThicknessModifier_Material;
 
 /* Geometry modifiers */
@@ -232,7 +351,6 @@ typedef struct LineStyleGeometryModifier_Sampling {
 
        float sampling;
        int pad;
 
        float sampling;
        int pad;
-
 } LineStyleGeometryModifier_Sampling;
 
 typedef struct LineStyleGeometryModifier_BezierCurve {
 } LineStyleGeometryModifier_Sampling;
 
 typedef struct LineStyleGeometryModifier_BezierCurve {
@@ -240,7 +358,6 @@ typedef struct LineStyleGeometryModifier_BezierCurve {
 
        float error;
        int pad;
 
        float error;
        int pad;
-
 } LineStyleGeometryModifier_BezierCurve;
 
 typedef struct LineStyleGeometryModifier_SinusDisplacement {
 } LineStyleGeometryModifier_BezierCurve;
 
 typedef struct LineStyleGeometryModifier_SinusDisplacement {
@@ -248,7 +365,6 @@ typedef struct LineStyleGeometryModifier_SinusDisplacement {
 
        float wavelength, amplitude, phase;
        int pad;
 
        float wavelength, amplitude, phase;
        int pad;
-
 } LineStyleGeometryModifier_SinusDisplacement;
 
 /* LineStyleGeometryModifier_SpatialNoise::flags */
 } LineStyleGeometryModifier_SinusDisplacement;
 
 /* LineStyleGeometryModifier_SpatialNoise::flags */
@@ -261,27 +377,26 @@ typedef struct LineStyleGeometryModifier_SpatialNoise {
        float amplitude, scale;
        unsigned int octaves;
        int flags;
        float amplitude, scale;
        unsigned int octaves;
        int flags;
-
 } LineStyleGeometryModifier_SpatialNoise;
 
 typedef struct LineStyleGeometryModifier_PerlinNoise1D {
        struct LineStyleModifier modifier;
 
 } LineStyleGeometryModifier_SpatialNoise;
 
 typedef struct LineStyleGeometryModifier_PerlinNoise1D {
        struct LineStyleModifier modifier;
 
-       float frequency, amplitude, angle;
+       float frequency, amplitude;
+       float angle; /* in radians! */
        unsigned int octaves;
        int seed;
        int pad1;
        unsigned int octaves;
        int seed;
        int pad1;
-
 } LineStyleGeometryModifier_PerlinNoise1D;
 
 typedef struct LineStyleGeometryModifier_PerlinNoise2D {
        struct LineStyleModifier modifier;
 
 } LineStyleGeometryModifier_PerlinNoise1D;
 
 typedef struct LineStyleGeometryModifier_PerlinNoise2D {
        struct LineStyleModifier modifier;
 
-       float frequency, amplitude, angle;
+       float frequency, amplitude;
+       float angle; /* in radians! */
        unsigned int octaves;
        int seed;
        int pad1;
        unsigned int octaves;
        int seed;
        int pad1;
-
 } LineStyleGeometryModifier_PerlinNoise2D;
 
 typedef struct LineStyleGeometryModifier_BackboneStretcher {
 } LineStyleGeometryModifier_PerlinNoise2D;
 
 typedef struct LineStyleGeometryModifier_BackboneStretcher {
@@ -289,7 +404,6 @@ typedef struct LineStyleGeometryModifier_BackboneStretcher {
 
        float backbone_length;
        int pad;
 
        float backbone_length;
        int pad;
-
 } LineStyleGeometryModifier_BackboneStretcher;
 
 typedef struct LineStyleGeometryModifier_TipRemover {
 } LineStyleGeometryModifier_BackboneStretcher;
 
 typedef struct LineStyleGeometryModifier_TipRemover {
@@ -297,7 +411,6 @@ typedef struct LineStyleGeometryModifier_TipRemover {
 
        float tip_length;
        int pad;
 
        float tip_length;
        int pad;
-
 } LineStyleGeometryModifier_TipRemover;
 
 typedef struct LineStyleGeometryModifier_Polygonalization {
 } LineStyleGeometryModifier_TipRemover;
 
 typedef struct LineStyleGeometryModifier_Polygonalization {
@@ -305,7 +418,6 @@ typedef struct LineStyleGeometryModifier_Polygonalization {
 
        float error;
        int pad;
 
        float error;
        int pad;
-
 } LineStyleGeometryModifier_Polygonalization;
 
 typedef struct LineStyleGeometryModifier_GuidingLines {
 } LineStyleGeometryModifier_Polygonalization;
 
 typedef struct LineStyleGeometryModifier_GuidingLines {
@@ -313,7 +425,6 @@ typedef struct LineStyleGeometryModifier_GuidingLines {
 
        float offset;
        int pad;
 
        float offset;
        int pad;
-
 } LineStyleGeometryModifier_GuidingLines;
 
 /* LineStyleGeometryModifier_BluePrintLines::shape */
 } LineStyleGeometryModifier_GuidingLines;
 
 /* LineStyleGeometryModifier_BluePrintLines::shape */
@@ -330,7 +441,6 @@ typedef struct LineStyleGeometryModifier_Blueprint {
        unsigned int random_radius;
        unsigned int random_center;
        unsigned int random_backbone;
        unsigned int random_radius;
        unsigned int random_center;
        unsigned int random_backbone;
-
 } LineStyleGeometryModifier_Blueprint;
 
 typedef struct LineStyleGeometryModifier_2DOffset {
 } LineStyleGeometryModifier_Blueprint;
 
 typedef struct LineStyleGeometryModifier_2DOffset {
@@ -338,7 +448,6 @@ typedef struct LineStyleGeometryModifier_2DOffset {
 
        float start, end;
        float x, y;
 
        float start, end;
        float x, y;
-
 } LineStyleGeometryModifier_2DOffset;
 
 /* LineStyleGeometryModifier_2DTransform::pivot */
 } LineStyleGeometryModifier_2DOffset;
 
 /* LineStyleGeometryModifier_2DTransform::pivot */
@@ -353,22 +462,27 @@ typedef struct LineStyleGeometryModifier_2DTransform {
 
        int pivot;
        float scale_x, scale_y;
 
        int pivot;
        float scale_x, scale_y;
-       float angle;
+       float angle; /* in radians! */
        float pivot_u;
        float pivot_x, pivot_y;
        int pad;
        float pivot_u;
        float pivot_x, pivot_y;
        int pad;
-
 } LineStyleGeometryModifier_2DTransform;
 
 } LineStyleGeometryModifier_2DTransform;
 
+typedef struct LineStyleGeometryModifier_Simplification {
+       struct LineStyleModifier modifier;
+
+       float tolerance;
+       int pad;
+}LineStyleGeometryModifier_Simplification;
+
 /* Calligraphic thickness modifier */
 
 typedef struct LineStyleThicknessModifier_Calligraphy {
        struct LineStyleModifier modifier;
 
        float min_thickness, max_thickness;
 /* Calligraphic thickness modifier */
 
 typedef struct LineStyleThicknessModifier_Calligraphy {
        struct LineStyleModifier modifier;
 
        float min_thickness, max_thickness;
-       float orientation;
+       float orientation; /* in radians! */
        int pad;
        int pad;
-
 } LineStyleThicknessModifier_Calligraphy;
 
 /* FreestyleLineStyle::panel */
 } LineStyleThicknessModifier_Calligraphy;
 
 /* FreestyleLineStyle::panel */
@@ -377,19 +491,25 @@ typedef struct LineStyleThicknessModifier_Calligraphy {
 #define LS_PANEL_ALPHA        3
 #define LS_PANEL_THICKNESS    4
 #define LS_PANEL_GEOMETRY     5
 #define LS_PANEL_ALPHA        3
 #define LS_PANEL_THICKNESS    4
 #define LS_PANEL_GEOMETRY     5
-#define LS_PANEL_MISC         6
+#define LS_PANEL_TEXTURE      6
+#define LS_PANEL_MISC         7
 
 /* FreestyleLineStyle::flag */
 
 /* FreestyleLineStyle::flag */
-#define LS_DS_EXPAND          1  /* for animation editors */
-#define LS_SAME_OBJECT        2
-#define LS_DASHED_LINE        4
-#define LS_MATERIAL_BOUNDARY  8
-#define LS_MIN_2D_LENGTH      16
-#define LS_MAX_2D_LENGTH      32
-#define LS_NO_CHAINING        64
-#define LS_MIN_2D_ANGLE       128
-#define LS_MAX_2D_ANGLE       256
-#define LS_SPLIT_LENGTH       512
+#define LS_DS_EXPAND          (1 <<  0)  /* for animation editors */
+#define LS_SAME_OBJECT        (1 <<  1)
+#define LS_DASHED_LINE        (1 <<  2)
+#define LS_MATERIAL_BOUNDARY  (1 <<  3)
+#define LS_MIN_2D_LENGTH      (1 <<  4)
+#define LS_MAX_2D_LENGTH      (1 <<  5)
+#define LS_NO_CHAINING        (1 <<  6)
+#define LS_MIN_2D_ANGLE       (1 <<  7)
+#define LS_MAX_2D_ANGLE       (1 <<  8)
+#define LS_SPLIT_LENGTH       (1 <<  9)
+#define LS_SPLIT_PATTERN      (1 << 10)
+#define LS_NO_SORTING         (1 << 11)
+#define LS_REVERSE_ORDER      (1 << 12)  /* for sorting */
+#define LS_TEXTURE            (1 << 13)
+#define LS_CHAIN_COUNT        (1 << 14)
 
 /* FreestyleLineStyle::chaining */
 #define LS_CHAINING_PLAIN    1
 
 /* FreestyleLineStyle::chaining */
 #define LS_CHAINING_PLAIN    1
@@ -406,6 +526,19 @@ typedef struct LineStyleThicknessModifier_Calligraphy {
 #define LS_THICKNESS_OUTSIDE   3
 #define LS_THICKNESS_RELATIVE  4 /* thickness_ratio is used */
 
 #define LS_THICKNESS_OUTSIDE   3
 #define LS_THICKNESS_RELATIVE  4 /* thickness_ratio is used */
 
+/* FreestyleLineStyle::sort_key */
+#define LS_SORT_KEY_DISTANCE_FROM_CAMERA  1
+#define LS_SORT_KEY_2D_LENGTH             2
+#define LS_SORT_KEY_PROJECTED_X           3
+#define LS_SORT_KEY_PROJECTED_Y           4
+
+/* FreestyleLineStyle::integration_type */
+#define LS_INTEGRATION_MEAN   1
+#define LS_INTEGRATION_MIN    2
+#define LS_INTEGRATION_MAX    3
+#define LS_INTEGRATION_FIRST  4
+#define LS_INTEGRATION_LAST   5
+
 typedef struct FreestyleLineStyle {
        ID id;
        struct AnimData *adt;
 typedef struct FreestyleLineStyle {
        ID id;
        struct AnimData *adt;
@@ -418,16 +551,26 @@ typedef struct FreestyleLineStyle {
        int chaining;
        unsigned int rounds;
        float split_length;
        int chaining;
        unsigned int rounds;
        float split_length;
-       float min_angle, max_angle; /* for splitting */
+       float min_angle, max_angle; /* in radians, for splitting */
        float min_length, max_length;
        float min_length, max_length;
+       unsigned int chain_count;
+       unsigned short split_dash1, split_gap1;
+       unsigned short split_dash2, split_gap2;
+       unsigned short split_dash3, split_gap3;
+       int sort_key, integration_type;
+       float texstep;
+       short texact, pr_texture;
+       short use_nodes, pad[3];
        unsigned short dash1, gap1, dash2, gap2, dash3, gap3;
        int panel; /* for UI */
        unsigned short dash1, gap1, dash2, gap2, dash3, gap3;
        int panel; /* for UI */
+       struct MTex *mtex[18]; /* MAX_MTEX */
+       /* nodes */
+       struct bNodeTree *nodetree;
 
        ListBase color_modifiers;
        ListBase alpha_modifiers;
        ListBase thickness_modifiers;
        ListBase geometry_modifiers;
 
        ListBase color_modifiers;
        ListBase alpha_modifiers;
        ListBase thickness_modifiers;
        ListBase geometry_modifiers;
-
 } FreestyleLineStyle;
 
 #endif
 } FreestyleLineStyle;
 
 #endif