Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2019-04-17 07:17:24 +0300
committerCampbell Barton <ideasman42@gmail.com>2019-04-17 07:21:24 +0300
commite12c08e8d170b7ca40f204a5b0423c23a9fbc2c1 (patch)
tree8cf3453d12edb177a218ef8009357518ec6cab6a /source/blender/makesdna/DNA_modifier_types.h
parentb3dabc200a4b0399ec6b81f2ff2730d07b44fcaa (diff)
ClangFormat: apply to source, most of intern
Apply clang format as proposed in T53211. For details on usage and instructions for migrating branches without conflicts, see: https://wiki.blender.org/wiki/Tools/ClangFormat
Diffstat (limited to 'source/blender/makesdna/DNA_modifier_types.h')
-rw-r--r--source/blender/makesdna/DNA_modifier_types.h2614
1 files changed, 1306 insertions, 1308 deletions
diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h
index 0ee58b5397b..1b85fb26c0e 100644
--- a/source/blender/makesdna/DNA_modifier_types.h
+++ b/source/blender/makesdna/DNA_modifier_types.h
@@ -33,1896 +33,1894 @@ struct Scene;
struct Subdiv;
typedef enum ModifierType {
- eModifierType_None = 0,
- eModifierType_Subsurf = 1,
- eModifierType_Lattice = 2,
- eModifierType_Curve = 3,
- eModifierType_Build = 4,
- eModifierType_Mirror = 5,
- eModifierType_Decimate = 6,
- eModifierType_Wave = 7,
- eModifierType_Armature = 8,
- eModifierType_Hook = 9,
- eModifierType_Softbody = 10,
- eModifierType_Boolean = 11,
- eModifierType_Array = 12,
- eModifierType_EdgeSplit = 13,
- eModifierType_Displace = 14,
- eModifierType_UVProject = 15,
- eModifierType_Smooth = 16,
- eModifierType_Cast = 17,
- eModifierType_MeshDeform = 18,
- eModifierType_ParticleSystem = 19,
- eModifierType_ParticleInstance = 20,
- eModifierType_Explode = 21,
- eModifierType_Cloth = 22,
- eModifierType_Collision = 23,
- eModifierType_Bevel = 24,
- eModifierType_Shrinkwrap = 25,
- eModifierType_Fluidsim = 26,
- eModifierType_Mask = 27,
- eModifierType_SimpleDeform = 28,
- eModifierType_Multires = 29,
- eModifierType_Surface = 30,
- eModifierType_Smoke = 31,
- eModifierType_ShapeKey = 32,
- eModifierType_Solidify = 33,
- eModifierType_Screw = 34,
- eModifierType_Warp = 35,
- eModifierType_WeightVGEdit = 36,
- eModifierType_WeightVGMix = 37,
- eModifierType_WeightVGProximity = 38,
- eModifierType_Ocean = 39,
- eModifierType_DynamicPaint = 40,
- eModifierType_Remesh = 41,
- eModifierType_Skin = 42,
- eModifierType_LaplacianSmooth = 43,
- eModifierType_Triangulate = 44,
- eModifierType_UVWarp = 45,
- eModifierType_MeshCache = 46,
- eModifierType_LaplacianDeform = 47,
- eModifierType_Wireframe = 48,
- eModifierType_DataTransfer = 49,
- eModifierType_NormalEdit = 50,
- eModifierType_CorrectiveSmooth = 51,
- eModifierType_MeshSequenceCache = 52,
- eModifierType_SurfaceDeform = 53,
- eModifierType_WeightedNormal = 54,
- NUM_MODIFIER_TYPES,
+ eModifierType_None = 0,
+ eModifierType_Subsurf = 1,
+ eModifierType_Lattice = 2,
+ eModifierType_Curve = 3,
+ eModifierType_Build = 4,
+ eModifierType_Mirror = 5,
+ eModifierType_Decimate = 6,
+ eModifierType_Wave = 7,
+ eModifierType_Armature = 8,
+ eModifierType_Hook = 9,
+ eModifierType_Softbody = 10,
+ eModifierType_Boolean = 11,
+ eModifierType_Array = 12,
+ eModifierType_EdgeSplit = 13,
+ eModifierType_Displace = 14,
+ eModifierType_UVProject = 15,
+ eModifierType_Smooth = 16,
+ eModifierType_Cast = 17,
+ eModifierType_MeshDeform = 18,
+ eModifierType_ParticleSystem = 19,
+ eModifierType_ParticleInstance = 20,
+ eModifierType_Explode = 21,
+ eModifierType_Cloth = 22,
+ eModifierType_Collision = 23,
+ eModifierType_Bevel = 24,
+ eModifierType_Shrinkwrap = 25,
+ eModifierType_Fluidsim = 26,
+ eModifierType_Mask = 27,
+ eModifierType_SimpleDeform = 28,
+ eModifierType_Multires = 29,
+ eModifierType_Surface = 30,
+ eModifierType_Smoke = 31,
+ eModifierType_ShapeKey = 32,
+ eModifierType_Solidify = 33,
+ eModifierType_Screw = 34,
+ eModifierType_Warp = 35,
+ eModifierType_WeightVGEdit = 36,
+ eModifierType_WeightVGMix = 37,
+ eModifierType_WeightVGProximity = 38,
+ eModifierType_Ocean = 39,
+ eModifierType_DynamicPaint = 40,
+ eModifierType_Remesh = 41,
+ eModifierType_Skin = 42,
+ eModifierType_LaplacianSmooth = 43,
+ eModifierType_Triangulate = 44,
+ eModifierType_UVWarp = 45,
+ eModifierType_MeshCache = 46,
+ eModifierType_LaplacianDeform = 47,
+ eModifierType_Wireframe = 48,
+ eModifierType_DataTransfer = 49,
+ eModifierType_NormalEdit = 50,
+ eModifierType_CorrectiveSmooth = 51,
+ eModifierType_MeshSequenceCache = 52,
+ eModifierType_SurfaceDeform = 53,
+ eModifierType_WeightedNormal = 54,
+ NUM_MODIFIER_TYPES,
} ModifierType;
typedef enum ModifierMode {
- eModifierMode_Realtime = (1 << 0),
- eModifierMode_Render = (1 << 1),
- eModifierMode_Editmode = (1 << 2),
- eModifierMode_OnCage = (1 << 3),
- eModifierMode_Expanded = (1 << 4),
- eModifierMode_Virtual = (1 << 5),
- eModifierMode_ApplyOnSpline = (1 << 6),
- eModifierMode_DisableTemporary = (1u << 31),
+ eModifierMode_Realtime = (1 << 0),
+ eModifierMode_Render = (1 << 1),
+ eModifierMode_Editmode = (1 << 2),
+ eModifierMode_OnCage = (1 << 3),
+ eModifierMode_Expanded = (1 << 4),
+ eModifierMode_Virtual = (1 << 5),
+ eModifierMode_ApplyOnSpline = (1 << 6),
+ eModifierMode_DisableTemporary = (1u << 31),
} ModifierMode;
typedef struct ModifierData {
- struct ModifierData *next, *prev;
+ struct ModifierData *next, *prev;
- int type, mode;
- int stackindex;
- short flag;
- char _pad[2];
- /** MAX_NAME. */
- char name[64];
+ int type, mode;
+ int stackindex;
+ short flag;
+ char _pad[2];
+ /** MAX_NAME. */
+ char name[64];
- char *error;
+ char *error;
- /* Pointer to a ModifierData in the original domain. */
- struct ModifierData *orig_modifier_data;
- void *runtime;
+ /* Pointer to a ModifierData in the original domain. */
+ struct ModifierData *orig_modifier_data;
+ void *runtime;
} ModifierData;
typedef enum {
- /* This modifier has been inserted in local override, and hence can be fully edited. */
- eModifierFlag_StaticOverride_Local = (1 << 0),
- /* This modifier does not own its caches, but instead shares them with another modifier. */
- eModifierFlag_SharedCaches = (1 << 1),
+ /* This modifier has been inserted in local override, and hence can be fully edited. */
+ eModifierFlag_StaticOverride_Local = (1 << 0),
+ /* This modifier does not own its caches, but instead shares them with another modifier. */
+ eModifierFlag_SharedCaches = (1 << 1),
} ModifierFlag;
/* not a real modifier */
typedef struct MappingInfoModifierData {
- ModifierData modifier;
-
- struct Tex *texture;
- struct Object *map_object;
- /** MAX_CUSTOMDATA_LAYER_NAME. */
- char uvlayer_name[64];
- int uvlayer_tmp;
- int texmapping;
+ ModifierData modifier;
+
+ struct Tex *texture;
+ struct Object *map_object;
+ /** MAX_CUSTOMDATA_LAYER_NAME. */
+ char uvlayer_name[64];
+ int uvlayer_tmp;
+ int texmapping;
} MappingInfoModifierData;
typedef enum {
- eSubsurfModifierFlag_Incremental = (1 << 0),
- eSubsurfModifierFlag_DebugIncr = (1 << 1),
- eSubsurfModifierFlag_ControlEdges = (1 << 2),
- /* DEPRECATED, ONLY USED FOR DO-VERSIONS */
- eSubsurfModifierFlag_SubsurfUv_DEPRECATED = (1 << 3),
- eSubsurfModifierFlag_UseCrease = (1 << 4),
+ eSubsurfModifierFlag_Incremental = (1 << 0),
+ eSubsurfModifierFlag_DebugIncr = (1 << 1),
+ eSubsurfModifierFlag_ControlEdges = (1 << 2),
+ /* DEPRECATED, ONLY USED FOR DO-VERSIONS */
+ eSubsurfModifierFlag_SubsurfUv_DEPRECATED = (1 << 3),
+ eSubsurfModifierFlag_UseCrease = (1 << 4),
} SubsurfModifierFlag;
typedef enum {
- SUBSURF_TYPE_CATMULL_CLARK = 0,
- SUBSURF_TYPE_SIMPLE = 1,
+ SUBSURF_TYPE_CATMULL_CLARK = 0,
+ SUBSURF_TYPE_SIMPLE = 1,
} eSubsurfModifierType;
typedef enum {
- SUBSURF_UV_SMOOTH_NONE = 0,
- SUBSURF_UV_SMOOTH_PRESERVE_CORNERS = 1,
- SUBSURF_UV_SMOOTH_PRESERVE_CORNERS_AND_JUNCTIONS = 2,
- SUBSURF_UV_SMOOTH_PRESERVE_CORNERS_JUNCTIONS_AND_CONCAVE = 3,
- SUBSURF_UV_SMOOTH_PRESERVE_BOUNDARIES = 4,
- SUBSURF_UV_SMOOTH_ALL = 5,
+ SUBSURF_UV_SMOOTH_NONE = 0,
+ SUBSURF_UV_SMOOTH_PRESERVE_CORNERS = 1,
+ SUBSURF_UV_SMOOTH_PRESERVE_CORNERS_AND_JUNCTIONS = 2,
+ SUBSURF_UV_SMOOTH_PRESERVE_CORNERS_JUNCTIONS_AND_CONCAVE = 3,
+ SUBSURF_UV_SMOOTH_PRESERVE_BOUNDARIES = 4,
+ SUBSURF_UV_SMOOTH_ALL = 5,
} eSubsurfUVSmooth;
typedef struct SubsurfModifierData {
- ModifierData modifier;
+ ModifierData modifier;
- short subdivType, levels, renderLevels, flags;
- short uv_smooth;
- short quality;
- char _pad[4];
+ short subdivType, levels, renderLevels, flags;
+ short uv_smooth;
+ short quality;
+ char _pad[4];
- /* TODO(sergey): Get rid of those with the old CCG subdivision code. */
- void *emCache, *mCache;
+ /* TODO(sergey): Get rid of those with the old CCG subdivision code. */
+ void *emCache, *mCache;
} SubsurfModifierData;
typedef struct LatticeModifierData {
- ModifierData modifier;
+ ModifierData modifier;
- struct Object *object;
- /** Optional vertexgroup name, MAX_VGROUP_NAME. */
- char name[64];
- float strength;
- char _pad[4];
+ struct Object *object;
+ /** Optional vertexgroup name, MAX_VGROUP_NAME. */
+ char name[64];
+ float strength;
+ char _pad[4];
} LatticeModifierData;
typedef struct CurveModifierData {
- ModifierData modifier;
-
- struct Object *object;
- /** Optional vertexgroup name, MAX_VGROUP_NAME. */
- char name[64];
- /** Axis along which curve deforms. */
- short defaxis;
- char _pad[6];
+ ModifierData modifier;
+
+ struct Object *object;
+ /** Optional vertexgroup name, MAX_VGROUP_NAME. */
+ char name[64];
+ /** Axis along which curve deforms. */
+ short defaxis;
+ char _pad[6];
} CurveModifierData;
/* CurveModifierData->defaxis */
enum {
- MOD_CURVE_POSX = 1,
- MOD_CURVE_POSY = 2,
- MOD_CURVE_POSZ = 3,
- MOD_CURVE_NEGX = 4,
- MOD_CURVE_NEGY = 5,
- MOD_CURVE_NEGZ = 6,
+ MOD_CURVE_POSX = 1,
+ MOD_CURVE_POSY = 2,
+ MOD_CURVE_POSZ = 3,
+ MOD_CURVE_NEGX = 4,
+ MOD_CURVE_NEGY = 5,
+ MOD_CURVE_NEGZ = 6,
};
typedef struct BuildModifierData {
- ModifierData modifier;
+ ModifierData modifier;
- float start, length;
- short flag;
+ float start, length;
+ short flag;
- /** (bool) whether order of vertices is randomized - legacy files (for readfile conversion). */
- short randomize;
- /** (int) random seed. */
- int seed;
+ /** (bool) whether order of vertices is randomized - legacy files (for readfile conversion). */
+ short randomize;
+ /** (int) random seed. */
+ int seed;
} BuildModifierData;
/* Build Modifier -> flag */
enum {
- /** order of vertices is randomized */
- MOD_BUILD_FLAG_RANDOMIZE = (1 << 0),
- /** frame range is reversed, resulting in a deconstruction effect */
- MOD_BUILD_FLAG_REVERSE = (1 << 1),
+ /** order of vertices is randomized */
+ MOD_BUILD_FLAG_RANDOMIZE = (1 << 0),
+ /** frame range is reversed, resulting in a deconstruction effect */
+ MOD_BUILD_FLAG_REVERSE = (1 << 1),
};
/* Mask Modifier */
typedef struct MaskModifierData {
- ModifierData modifier;
-
- /** Armature to use to in place of hardcoded vgroup. */
- struct Object *ob_arm;
- /** Name of vertex group to use to mask, MAX_VGROUP_NAME. */
- char vgroup[64];
-
- /** Using armature or hardcoded vgroup. */
- short mode;
- /** Flags for various things. */
- short flag;
- float threshold;
+ ModifierData modifier;
+
+ /** Armature to use to in place of hardcoded vgroup. */
+ struct Object *ob_arm;
+ /** Name of vertex group to use to mask, MAX_VGROUP_NAME. */
+ char vgroup[64];
+
+ /** Using armature or hardcoded vgroup. */
+ short mode;
+ /** Flags for various things. */
+ short flag;
+ float threshold;
} MaskModifierData;
/* Mask Modifier -> mode */
enum {
- MOD_MASK_MODE_VGROUP = 0,
- MOD_MASK_MODE_ARM = 1,
+ MOD_MASK_MODE_VGROUP = 0,
+ MOD_MASK_MODE_ARM = 1,
};
/* Mask Modifier -> flag */
enum {
- MOD_MASK_INV = (1 << 0),
+ MOD_MASK_INV = (1 << 0),
};
typedef struct ArrayModifierData {
- ModifierData modifier;
-
- /* the object with which to cap the start of the array */
- struct Object *start_cap;
- /* the object with which to cap the end of the array */
- struct Object *end_cap;
- /* the curve object to use for MOD_ARR_FITCURVE */
- struct Object *curve_ob;
- /* the object to use for object offset */
- struct Object *offset_ob;
- /* a constant duplicate offset;
- * 1 means the duplicates are 1 unit apart
- */
- float offset[3];
- /* a scaled factor for duplicate offsets;
- * 1 means the duplicates are 1 object-width apart
- */
- float scale[3];
- /* the length over which to distribute the duplicates */
- float length;
- /* the limit below which to merge vertices in adjacent duplicates */
- float merge_dist;
- /* determines how duplicate count is calculated; one of:
- * - MOD_ARR_FIXEDCOUNT -> fixed
- * - MOD_ARR_FITLENGTH -> calculated to fit a set length
- * - MOD_ARR_FITCURVE -> calculated to fit the length of a Curve object
- */
- int fit_type;
- /* flags specifying how total offset is calculated; binary OR of:
- * - MOD_ARR_OFF_CONST -> total offset += offset
- * - MOD_ARR_OFF_RELATIVE -> total offset += relative * object width
- * - MOD_ARR_OFF_OBJ -> total offset += offset_ob's matrix
- * total offset is the sum of the individual enabled offsets
- */
- int offset_type;
- /* general flags:
- * MOD_ARR_MERGE -> merge vertices in adjacent duplicates
- */
- int flags;
- /* the number of duplicates to generate for MOD_ARR_FIXEDCOUNT */
- int count;
- float uv_offset[2];
+ ModifierData modifier;
+
+ /* the object with which to cap the start of the array */
+ struct Object *start_cap;
+ /* the object with which to cap the end of the array */
+ struct Object *end_cap;
+ /* the curve object to use for MOD_ARR_FITCURVE */
+ struct Object *curve_ob;
+ /* the object to use for object offset */
+ struct Object *offset_ob;
+ /* a constant duplicate offset;
+ * 1 means the duplicates are 1 unit apart
+ */
+ float offset[3];
+ /* a scaled factor for duplicate offsets;
+ * 1 means the duplicates are 1 object-width apart
+ */
+ float scale[3];
+ /* the length over which to distribute the duplicates */
+ float length;
+ /* the limit below which to merge vertices in adjacent duplicates */
+ float merge_dist;
+ /* determines how duplicate count is calculated; one of:
+ * - MOD_ARR_FIXEDCOUNT -> fixed
+ * - MOD_ARR_FITLENGTH -> calculated to fit a set length
+ * - MOD_ARR_FITCURVE -> calculated to fit the length of a Curve object
+ */
+ int fit_type;
+ /* flags specifying how total offset is calculated; binary OR of:
+ * - MOD_ARR_OFF_CONST -> total offset += offset
+ * - MOD_ARR_OFF_RELATIVE -> total offset += relative * object width
+ * - MOD_ARR_OFF_OBJ -> total offset += offset_ob's matrix
+ * total offset is the sum of the individual enabled offsets
+ */
+ int offset_type;
+ /* general flags:
+ * MOD_ARR_MERGE -> merge vertices in adjacent duplicates
+ */
+ int flags;
+ /* the number of duplicates to generate for MOD_ARR_FIXEDCOUNT */
+ int count;
+ float uv_offset[2];
} ArrayModifierData;
/* ArrayModifierData->fit_type */
enum {
- MOD_ARR_FIXEDCOUNT = 0,
- MOD_ARR_FITLENGTH = 1,
- MOD_ARR_FITCURVE = 2,
+ MOD_ARR_FIXEDCOUNT = 0,
+ MOD_ARR_FITLENGTH = 1,
+ MOD_ARR_FITCURVE = 2,
};
/* ArrayModifierData->offset_type */
enum {
- MOD_ARR_OFF_CONST = (1 << 0),
- MOD_ARR_OFF_RELATIVE = (1 << 1),
- MOD_ARR_OFF_OBJ = (1 << 2),
+ MOD_ARR_OFF_CONST = (1 << 0),
+ MOD_ARR_OFF_RELATIVE = (1 << 1),
+ MOD_ARR_OFF_OBJ = (1 << 2),
};
/* ArrayModifierData->flags */
enum {
- MOD_ARR_MERGE = (1 << 0),
- MOD_ARR_MERGEFINAL = (1 << 1),
+ MOD_ARR_MERGE = (1 << 0),
+ MOD_ARR_MERGEFINAL = (1 << 1),
};
typedef struct MirrorModifierData {
- ModifierData modifier;
-
- /** Deprecated, use flag instead. */
- short axis DNA_DEPRECATED;
- short flag;
- float tolerance;
- float uv_offset[2];
- float uv_offset_copy[2];
- struct Object *mirror_ob;
+ ModifierData modifier;
+
+ /** Deprecated, use flag instead. */
+ short axis DNA_DEPRECATED;
+ short flag;
+ float tolerance;
+ float uv_offset[2];
+ float uv_offset_copy[2];
+ struct Object *mirror_ob;
} MirrorModifierData;
/* MirrorModifierData->flag */
enum {
- MOD_MIR_CLIPPING = (1 << 0),
- MOD_MIR_MIRROR_U = (1 << 1),
- MOD_MIR_MIRROR_V = (1 << 2),
- MOD_MIR_AXIS_X = (1 << 3),
- MOD_MIR_AXIS_Y = (1 << 4),
- MOD_MIR_AXIS_Z = (1 << 5),
- MOD_MIR_VGROUP = (1 << 6),
- MOD_MIR_NO_MERGE = (1 << 7),
- MOD_MIR_BISECT_AXIS_X = (1 << 8),
- MOD_MIR_BISECT_AXIS_Y = (1 << 9),
- MOD_MIR_BISECT_AXIS_Z = (1 << 10),
- MOD_MIR_BISECT_FLIP_AXIS_X = (1 << 11),
- MOD_MIR_BISECT_FLIP_AXIS_Y = (1 << 12),
- MOD_MIR_BISECT_FLIP_AXIS_Z = (1 << 13),
+ MOD_MIR_CLIPPING = (1 << 0),
+ MOD_MIR_MIRROR_U = (1 << 1),
+ MOD_MIR_MIRROR_V = (1 << 2),
+ MOD_MIR_AXIS_X = (1 << 3),
+ MOD_MIR_AXIS_Y = (1 << 4),
+ MOD_MIR_AXIS_Z = (1 << 5),
+ MOD_MIR_VGROUP = (1 << 6),
+ MOD_MIR_NO_MERGE = (1 << 7),
+ MOD_MIR_BISECT_AXIS_X = (1 << 8),
+ MOD_MIR_BISECT_AXIS_Y = (1 << 9),
+ MOD_MIR_BISECT_AXIS_Z = (1 << 10),
+ MOD_MIR_BISECT_FLIP_AXIS_X = (1 << 11),
+ MOD_MIR_BISECT_FLIP_AXIS_Y = (1 << 12),
+ MOD_MIR_BISECT_FLIP_AXIS_Z = (1 << 13),
};
typedef struct EdgeSplitModifierData {
- ModifierData modifier;
+ ModifierData modifier;
- /** Angle above which edges should be split. */
- float split_angle;
- int flags;
+ /** Angle above which edges should be split. */
+ float split_angle;
+ int flags;
} EdgeSplitModifierData;
/* EdgeSplitModifierData->flags */
enum {
- MOD_EDGESPLIT_FROMANGLE = (1 << 1),
- MOD_EDGESPLIT_FROMFLAG = (1 << 2),
+ MOD_EDGESPLIT_FROMANGLE = (1 << 1),
+ MOD_EDGESPLIT_FROMFLAG = (1 << 2),
};
typedef struct BevelModifierData {
- ModifierData modifier;
-
- /** The "raw" bevel value (distance/amount to bevel). */
- float value;
- /** The resolution (as originally coded, it is the number of recursive bevels). */
- int res;
- /** General option flags. */
- short flags;
- /** Used to interpret the bevel value. */
- short val_flags;
- /** Flags to tell the tool how to limit the bevel. */
- short lim_flags;
- /** Flags to direct how edge weights are applied to verts. */
- short e_flags;
- /** Material index if >= 0, else material inherited from surrounding faces. */
- short mat;
- short edge_flags;
- short face_str_mode;
- /* patterns to use for mitering non-reflex and reflex miter edges */
- short miter_inner;
- short miter_outer;
- char _pad0[2];
- /** Controls profile shape (0->1, .5 is round). */
- float profile;
- /** if the MOD_BEVEL_ANGLE is set,
- * this will be how "sharp" an edge must be before it gets beveled */
- float bevel_angle;
- float spread;
- /** if the MOD_BEVEL_VWEIGHT option is set,
- * this will be the name of the vert group, MAX_VGROUP_NAME */
- char defgrp_name[64];
+ ModifierData modifier;
+
+ /** The "raw" bevel value (distance/amount to bevel). */
+ float value;
+ /** The resolution (as originally coded, it is the number of recursive bevels). */
+ int res;
+ /** General option flags. */
+ short flags;
+ /** Used to interpret the bevel value. */
+ short val_flags;
+ /** Flags to tell the tool how to limit the bevel. */
+ short lim_flags;
+ /** Flags to direct how edge weights are applied to verts. */
+ short e_flags;
+ /** Material index if >= 0, else material inherited from surrounding faces. */
+ short mat;
+ short edge_flags;
+ short face_str_mode;
+ /* patterns to use for mitering non-reflex and reflex miter edges */
+ short miter_inner;
+ short miter_outer;
+ char _pad0[2];
+ /** Controls profile shape (0->1, .5 is round). */
+ float profile;
+ /** if the MOD_BEVEL_ANGLE is set,
+ * this will be how "sharp" an edge must be before it gets beveled */
+ float bevel_angle;
+ float spread;
+ /** if the MOD_BEVEL_VWEIGHT option is set,
+ * this will be the name of the vert group, MAX_VGROUP_NAME */
+ char defgrp_name[64];
} BevelModifierData;
/* BevelModifierData->flags and BevelModifierData->lim_flags */
enum {
- MOD_BEVEL_VERT = (1 << 1),
-/* unused = (1 << 2), */
- MOD_BEVEL_ANGLE = (1 << 3),
- MOD_BEVEL_WEIGHT = (1 << 4),
- MOD_BEVEL_VGROUP = (1 << 5),
-/* unused = (1 << 7), */
-/* unused = (1 << 8), */
-/* unused = (1 << 9), */
-/* unused = (1 << 10), */
-/* unused = (1 << 11), */
-/* unused = (1 << 12), */
- MOD_BEVEL_OVERLAP_OK = (1 << 13),
- MOD_BEVEL_EVEN_WIDTHS = (1 << 14),
- MOD_BEVEL_HARDEN_NORMALS = (1 << 15),
+ MOD_BEVEL_VERT = (1 << 1),
+ /* unused = (1 << 2), */
+ MOD_BEVEL_ANGLE = (1 << 3),
+ MOD_BEVEL_WEIGHT = (1 << 4),
+ MOD_BEVEL_VGROUP = (1 << 5),
+ /* unused = (1 << 7), */
+ /* unused = (1 << 8), */
+ /* unused = (1 << 9), */
+ /* unused = (1 << 10), */
+ /* unused = (1 << 11), */
+ /* unused = (1 << 12), */
+ MOD_BEVEL_OVERLAP_OK = (1 << 13),
+ MOD_BEVEL_EVEN_WIDTHS = (1 << 14),
+ MOD_BEVEL_HARDEN_NORMALS = (1 << 15),
};
/* BevelModifierData->val_flags (not used as flags any more) */
enum {
- MOD_BEVEL_AMT_OFFSET = 0,
- MOD_BEVEL_AMT_WIDTH = 1,
- MOD_BEVEL_AMT_DEPTH = 2,
- MOD_BEVEL_AMT_PERCENT = 3,
+ MOD_BEVEL_AMT_OFFSET = 0,
+ MOD_BEVEL_AMT_WIDTH = 1,
+ MOD_BEVEL_AMT_DEPTH = 2,
+ MOD_BEVEL_AMT_PERCENT = 3,
};
/* BevelModifierData->edge_flags */
enum {
- MOD_BEVEL_MARK_SEAM = (1 << 0),
- MOD_BEVEL_MARK_SHARP = (1 << 1),
+ MOD_BEVEL_MARK_SEAM = (1 << 0),
+ MOD_BEVEL_MARK_SHARP = (1 << 1),
};
/* BevelModifierData->face_str_mode */
enum {
- MOD_BEVEL_FACE_STRENGTH_NONE,
- MOD_BEVEL_FACE_STRENGTH_NEW,
- MOD_BEVEL_FACE_STRENGTH_AFFECTED,
- MOD_BEVEL_FACE_STRENGTH_ALL,
+ MOD_BEVEL_FACE_STRENGTH_NONE,
+ MOD_BEVEL_FACE_STRENGTH_NEW,
+ MOD_BEVEL_FACE_STRENGTH_AFFECTED,
+ MOD_BEVEL_FACE_STRENGTH_ALL,
};
/* BevelModifier->miter_inner and ->miter_outer */
enum {
- MOD_BEVEL_MITER_SHARP,
- MOD_BEVEL_MITER_PATCH,
- MOD_BEVEL_MITER_ARC,
+ MOD_BEVEL_MITER_SHARP,
+ MOD_BEVEL_MITER_PATCH,
+ MOD_BEVEL_MITER_ARC,
};
typedef struct SmokeModifierData {
- ModifierData modifier;
-
- struct SmokeDomainSettings *domain;
- /** Inflow, outflow, smoke objects. */
- struct SmokeFlowSettings *flow;
- /** Collision objects. */
- struct SmokeCollSettings *coll;
- float time;
- /** Domain, inflow, outflow, .... */
- int type;
+ ModifierData modifier;
+
+ struct SmokeDomainSettings *domain;
+ /** Inflow, outflow, smoke objects. */
+ struct SmokeFlowSettings *flow;
+ /** Collision objects. */
+ struct SmokeCollSettings *coll;
+ float time;
+ /** Domain, inflow, outflow, .... */
+ int type;
} SmokeModifierData;
/* Smoke modifier flags */
enum {
- MOD_SMOKE_TYPE_DOMAIN = (1 << 0),
- MOD_SMOKE_TYPE_FLOW = (1 << 1),
- MOD_SMOKE_TYPE_COLL = (1 << 2),
+ MOD_SMOKE_TYPE_DOMAIN = (1 << 0),
+ MOD_SMOKE_TYPE_FLOW = (1 << 1),
+ MOD_SMOKE_TYPE_COLL = (1 << 2),
};
typedef struct DisplaceModifierData {
- ModifierData modifier;
-
- /* keep in sync with MappingInfoModifierData */
- struct Tex *texture;
- struct Object *map_object;
- /** MAX_CUSTOMDATA_LAYER_NAME. */
- char uvlayer_name[64];
- int uvlayer_tmp;
- int texmapping;
- /* end MappingInfoModifierData */
-
- float strength;
- int direction;
- /** MAX_VGROUP_NAME. */
- char defgrp_name[64];
- float midlevel;
- int space;
+ ModifierData modifier;
+
+ /* keep in sync with MappingInfoModifierData */
+ struct Tex *texture;
+ struct Object *map_object;
+ /** MAX_CUSTOMDATA_LAYER_NAME. */
+ char uvlayer_name[64];
+ int uvlayer_tmp;
+ int texmapping;
+ /* end MappingInfoModifierData */
+
+ float strength;
+ int direction;
+ /** MAX_VGROUP_NAME. */
+ char defgrp_name[64];
+ float midlevel;
+ int space;
} DisplaceModifierData;
/* DisplaceModifierData->direction */
enum {
- MOD_DISP_DIR_X = 0,
- MOD_DISP_DIR_Y = 1,
- MOD_DISP_DIR_Z = 2,
- MOD_DISP_DIR_NOR = 3,
- MOD_DISP_DIR_RGB_XYZ = 4,
- MOD_DISP_DIR_CLNOR = 5,
+ MOD_DISP_DIR_X = 0,
+ MOD_DISP_DIR_Y = 1,
+ MOD_DISP_DIR_Z = 2,
+ MOD_DISP_DIR_NOR = 3,
+ MOD_DISP_DIR_RGB_XYZ = 4,
+ MOD_DISP_DIR_CLNOR = 5,
};
/* DisplaceModifierData->texmapping */
enum {
- MOD_DISP_MAP_LOCAL = 0,
- MOD_DISP_MAP_GLOBAL = 1,
- MOD_DISP_MAP_OBJECT = 2,
- MOD_DISP_MAP_UV = 3,
+ MOD_DISP_MAP_LOCAL = 0,
+ MOD_DISP_MAP_GLOBAL = 1,
+ MOD_DISP_MAP_OBJECT = 2,
+ MOD_DISP_MAP_UV = 3,
};
/* DisplaceModifierData->space */
enum {
- MOD_DISP_SPACE_LOCAL = 0,
- MOD_DISP_SPACE_GLOBAL = 1,
+ MOD_DISP_SPACE_LOCAL = 0,
+ MOD_DISP_SPACE_GLOBAL = 1,
};
typedef struct UVProjectModifierData {
- ModifierData modifier;
-
- /* the objects which do the projecting */
- /** MOD_UVPROJECT_MAXPROJECTORS. */
- struct Object *projectors[10];
- char _pad2[4];
- int num_projectors;
- float aspectx, aspecty;
- float scalex, scaley;
- /** MAX_CUSTOMDATA_LAYER_NAME. */
- char uvlayer_name[64];
- int uvlayer_tmp;
- char _pad[4];
+ ModifierData modifier;
+
+ /* the objects which do the projecting */
+ /** MOD_UVPROJECT_MAXPROJECTORS. */
+ struct Object *projectors[10];
+ char _pad2[4];
+ int num_projectors;
+ float aspectx, aspecty;
+ float scalex, scaley;
+ /** MAX_CUSTOMDATA_LAYER_NAME. */
+ char uvlayer_name[64];
+ int uvlayer_tmp;
+ char _pad[4];
} UVProjectModifierData;
#define MOD_UVPROJECT_MAXPROJECTORS 10
/* UVProjectModifierData->flags */
enum {
- MOD_UVPROJECT_OVERRIDEIMAGE = (1 << 0),
+ MOD_UVPROJECT_OVERRIDEIMAGE = (1 << 0),
};
typedef struct DecimateModifierData {
- ModifierData modifier;
-
- /** (mode == MOD_DECIM_MODE_COLLAPSE). */
- float percent;
- /** (mode == MOD_DECIM_MODE_UNSUBDIV). */
- short iter;
- /** (mode == MOD_DECIM_MODE_DISSOLVE). */
- char delimit;
- /** (mode == MOD_DECIM_MODE_COLLAPSE). */
- char symmetry_axis;
- /** (mode == MOD_DECIM_MODE_DISSOLVE). */
- float angle;
-
- /** MAX_VGROUP_NAME. */
- char defgrp_name[64];
- float defgrp_factor;
- short flag, mode;
-
- /* runtime only */
- int face_count;
+ ModifierData modifier;
+
+ /** (mode == MOD_DECIM_MODE_COLLAPSE). */
+ float percent;
+ /** (mode == MOD_DECIM_MODE_UNSUBDIV). */
+ short iter;
+ /** (mode == MOD_DECIM_MODE_DISSOLVE). */
+ char delimit;
+ /** (mode == MOD_DECIM_MODE_COLLAPSE). */
+ char symmetry_axis;
+ /** (mode == MOD_DECIM_MODE_DISSOLVE). */
+ float angle;
+
+ /** MAX_VGROUP_NAME. */
+ char defgrp_name[64];
+ float defgrp_factor;
+ short flag, mode;
+
+ /* runtime only */
+ int face_count;
} DecimateModifierData;
enum {
- MOD_DECIM_FLAG_INVERT_VGROUP = (1 << 0),
- /** for collapse only. dont convert tri pairs back to quads */
- MOD_DECIM_FLAG_TRIANGULATE = (1 << 1),
- /** for dissolve only. collapse all verts between 2 faces */
- MOD_DECIM_FLAG_ALL_BOUNDARY_VERTS = (1 << 2),
- MOD_DECIM_FLAG_SYMMETRY = (1 << 3),
+ MOD_DECIM_FLAG_INVERT_VGROUP = (1 << 0),
+ /** for collapse only. dont convert tri pairs back to quads */
+ MOD_DECIM_FLAG_TRIANGULATE = (1 << 1),
+ /** for dissolve only. collapse all verts between 2 faces */
+ MOD_DECIM_FLAG_ALL_BOUNDARY_VERTS = (1 << 2),
+ MOD_DECIM_FLAG_SYMMETRY = (1 << 3),
};
enum {
- MOD_DECIM_MODE_COLLAPSE,
- MOD_DECIM_MODE_UNSUBDIV,
- /** called planar in the UI */
- MOD_DECIM_MODE_DISSOLVE,
+ MOD_DECIM_MODE_COLLAPSE,
+ MOD_DECIM_MODE_UNSUBDIV,
+ /** called planar in the UI */
+ MOD_DECIM_MODE_DISSOLVE,
};
typedef struct SmoothModifierData {
- ModifierData modifier;
- float fac;
- /** MAX_VGROUP_NAME. */
- char defgrp_name[64];
- short flag, repeat;
+ ModifierData modifier;
+ float fac;
+ /** MAX_VGROUP_NAME. */
+ char defgrp_name[64];
+ short flag, repeat;
} SmoothModifierData;
/* Smooth modifier flags */
enum {
- MOD_SMOOTH_X = (1 << 1),
- MOD_SMOOTH_Y = (1 << 2),
- MOD_SMOOTH_Z = (1 << 3),
+ MOD_SMOOTH_X = (1 << 1),
+ MOD_SMOOTH_Y = (1 << 2),
+ MOD_SMOOTH_Z = (1 << 3),
};
typedef struct CastModifierData {
- ModifierData modifier;
-
- struct Object *object;
- float fac;
- float radius;
- float size;
- /** MAX_VGROUP_NAME. */
- char defgrp_name[64];
- short flag, type;
+ ModifierData modifier;
+
+ struct Object *object;
+ float fac;
+ float radius;
+ float size;
+ /** MAX_VGROUP_NAME. */
+ char defgrp_name[64];
+ short flag, type;
} CastModifierData;
/* Cast modifier flags */
enum {
- /* And what bout (1 << 0) flag? ;) */
- MOD_CAST_X = (1 << 1),
- MOD_CAST_Y = (1 << 2),
- MOD_CAST_Z = (1 << 3),
- MOD_CAST_USE_OB_TRANSFORM = (1 << 4),
- MOD_CAST_SIZE_FROM_RADIUS = (1 << 5),
+ /* And what bout (1 << 0) flag? ;) */
+ MOD_CAST_X = (1 << 1),
+ MOD_CAST_Y = (1 << 2),
+ MOD_CAST_Z = (1 << 3),
+ MOD_CAST_USE_OB_TRANSFORM = (1 << 4),
+ MOD_CAST_SIZE_FROM_RADIUS = (1 << 5),
};
/* Cast modifier projection types */
enum {
- MOD_CAST_TYPE_SPHERE = 0,
- MOD_CAST_TYPE_CYLINDER = 1,
- MOD_CAST_TYPE_CUBOID = 2,
+ MOD_CAST_TYPE_SPHERE = 0,
+ MOD_CAST_TYPE_CYLINDER = 1,
+ MOD_CAST_TYPE_CUBOID = 2,
};
typedef struct WaveModifierData {
- ModifierData modifier;
+ ModifierData modifier;
- /* keep in sync with MappingInfoModifierData */
- struct Tex *texture;
- struct Object *map_object;
- /** MAX_CUSTOMDATA_LAYER_NAME. */
- char uvlayer_name[64];
- int uvlayer_tmp;
- int texmapping;
- /* end MappingInfoModifierData */
+ /* keep in sync with MappingInfoModifierData */
+ struct Tex *texture;
+ struct Object *map_object;
+ /** MAX_CUSTOMDATA_LAYER_NAME. */
+ char uvlayer_name[64];
+ int uvlayer_tmp;
+ int texmapping;
+ /* end MappingInfoModifierData */
- struct Object *objectcenter;
- /** MAX_VGROUP_NAME. */
- char defgrp_name[64];
+ struct Object *objectcenter;
+ /** MAX_VGROUP_NAME. */
+ char defgrp_name[64];
- short flag;
- char _pad[2];
+ short flag;
+ char _pad[2];
- float startx, starty, height, width;
- float narrow, speed, damp, falloff;
+ float startx, starty, height, width;
+ float narrow, speed, damp, falloff;
- float timeoffs, lifetime;
- char _pad1[4];
+ float timeoffs, lifetime;
+ char _pad1[4];
} WaveModifierData;
/* WaveModifierData.flag */
enum {
- /* And what bout (1 << 0) flag? ;) */
- MOD_WAVE_X = (1 << 1),
- MOD_WAVE_Y = (1 << 2),
- MOD_WAVE_CYCL = (1 << 3),
- MOD_WAVE_NORM = (1 << 4),
- MOD_WAVE_NORM_X = (1 << 5),
- MOD_WAVE_NORM_Y = (1 << 6),
- MOD_WAVE_NORM_Z = (1 << 7),
+ /* And what bout (1 << 0) flag? ;) */
+ MOD_WAVE_X = (1 << 1),
+ MOD_WAVE_Y = (1 << 2),
+ MOD_WAVE_CYCL = (1 << 3),
+ MOD_WAVE_NORM = (1 << 4),
+ MOD_WAVE_NORM_X = (1 << 5),
+ MOD_WAVE_NORM_Y = (1 << 6),
+ MOD_WAVE_NORM_Z = (1 << 7),
};
typedef struct ArmatureModifierData {
- ModifierData modifier;
-
- /** Deformflag replaces armature->deformflag. */
- short deformflag, multi;
- char _pad2[4];
- struct Object *object;
- /** Stored input of previous modifier, for vertexgroup blending. */
- float *prevCos;
- /** MAX_VGROUP_NAME. */
- char defgrp_name[64];
+ ModifierData modifier;
+
+ /** Deformflag replaces armature->deformflag. */
+ short deformflag, multi;
+ char _pad2[4];
+ struct Object *object;
+ /** Stored input of previous modifier, for vertexgroup blending. */
+ float *prevCos;
+ /** MAX_VGROUP_NAME. */
+ char defgrp_name[64];
} ArmatureModifierData;
enum {
- MOD_HOOK_UNIFORM_SPACE = (1 << 0),
+ MOD_HOOK_UNIFORM_SPACE = (1 << 0),
};
/* same as WarpModifierFalloff */
typedef enum {
- eHook_Falloff_None = 0,
- eHook_Falloff_Curve = 1,
- eHook_Falloff_Sharp = 2, /* PROP_SHARP */
- eHook_Falloff_Smooth = 3, /* PROP_SMOOTH */
- eHook_Falloff_Root = 4, /* PROP_ROOT */
- eHook_Falloff_Linear = 5, /* PROP_LIN */
- eHook_Falloff_Const = 6, /* PROP_CONST */
- eHook_Falloff_Sphere = 7, /* PROP_SPHERE */
- eHook_Falloff_InvSquare = 8, /* PROP_INVSQUARE */
- /* PROP_RANDOM not used */
+ eHook_Falloff_None = 0,
+ eHook_Falloff_Curve = 1,
+ eHook_Falloff_Sharp = 2, /* PROP_SHARP */
+ eHook_Falloff_Smooth = 3, /* PROP_SMOOTH */
+ eHook_Falloff_Root = 4, /* PROP_ROOT */
+ eHook_Falloff_Linear = 5, /* PROP_LIN */
+ eHook_Falloff_Const = 6, /* PROP_CONST */
+ eHook_Falloff_Sphere = 7, /* PROP_SPHERE */
+ eHook_Falloff_InvSquare = 8, /* PROP_INVSQUARE */
+ /* PROP_RANDOM not used */
} HookModifierFalloff;
typedef struct HookModifierData {
- ModifierData modifier;
-
- struct Object *object;
- /** Optional name of bone target, MAX_ID_NAME-2. */
- char subtarget[64];
-
- char flag;
- /** Use enums from WarpModifier (exact same functionality). */
- char falloff_type;
- char _pad[6];
- /** Matrix making current transform unmodified. */
- float parentinv[4][4];
- /** Visualization of hook. */
- float cent[3];
- /** If not zero, falloff is distance where influence zero. */
- float falloff;
-
- struct CurveMapping *curfalloff;
-
- /** If NULL, it's using vertexgroup. */
- int *indexar;
- int totindex;
- float force;
- /** Optional vertexgroup name, MAX_VGROUP_NAME. */
- char name[64];
+ ModifierData modifier;
+
+ struct Object *object;
+ /** Optional name of bone target, MAX_ID_NAME-2. */
+ char subtarget[64];
+
+ char flag;
+ /** Use enums from WarpModifier (exact same functionality). */
+ char falloff_type;
+ char _pad[6];
+ /** Matrix making current transform unmodified. */
+ float parentinv[4][4];
+ /** Visualization of hook. */
+ float cent[3];
+ /** If not zero, falloff is distance where influence zero. */
+ float falloff;
+
+ struct CurveMapping *curfalloff;
+
+ /** If NULL, it's using vertexgroup. */
+ int *indexar;
+ int totindex;
+ float force;
+ /** Optional vertexgroup name, MAX_VGROUP_NAME. */
+ char name[64];
} HookModifierData;
typedef struct SoftbodyModifierData {
- ModifierData modifier;
+ ModifierData modifier;
} SoftbodyModifierData;
typedef struct ClothModifierData {
- ModifierData modifier;
-
- /** The internal data structure for cloth. */
- struct Cloth *clothObject;
- /** Definition is in DNA_cloth_types.h. */
- struct ClothSimSettings *sim_parms;
- /** Definition is in DNA_cloth_types.h. */
- struct ClothCollSettings *coll_parms;
-
- /* PointCache can be shared with other instances of ClothModifierData.
- * Inspect (modifier.flag & eModifierFlag_SharedCaches) to find out. */
- /** Definition is in DNA_object_force_types.h. */
- struct PointCache *point_cache;
- struct ListBase ptcaches;
-
- /* XXX nasty hack, remove once hair can be separated from cloth modifier data */
- struct ClothHairData *hairdata;
- /* grid geometry values of hair continuum */
- float hair_grid_min[3];
- float hair_grid_max[3];
- int hair_grid_res[3];
- float hair_grid_cellsize;
-
- struct ClothSolverResult *solver_result;
+ ModifierData modifier;
+
+ /** The internal data structure for cloth. */
+ struct Cloth *clothObject;
+ /** Definition is in DNA_cloth_types.h. */
+ struct ClothSimSettings *sim_parms;
+ /** Definition is in DNA_cloth_types.h. */
+ struct ClothCollSettings *coll_parms;
+
+ /* PointCache can be shared with other instances of ClothModifierData.
+ * Inspect (modifier.flag & eModifierFlag_SharedCaches) to find out. */
+ /** Definition is in DNA_object_force_types.h. */
+ struct PointCache *point_cache;
+ struct ListBase ptcaches;
+
+ /* XXX nasty hack, remove once hair can be separated from cloth modifier data */
+ struct ClothHairData *hairdata;
+ /* grid geometry values of hair continuum */
+ float hair_grid_min[3];
+ float hair_grid_max[3];
+ int hair_grid_res[3];
+ float hair_grid_cellsize;
+
+ struct ClothSolverResult *solver_result;
} ClothModifierData;
typedef struct CollisionModifierData {
- ModifierData modifier;
-
- /** Position at the beginning of the frame. */
- struct MVert *x;
- /** Position at the end of the frame. */
- struct MVert *xnew;
- /** Unused atm, but was discussed during sprint. */
- struct MVert *xold;
- /** New position at the actual inter-frame step. */
- struct MVert *current_xnew;
- /** Position at the actual inter-frame step. */
- struct MVert *current_x;
- /** (xnew - x) at the actual inter-frame step. */
- struct MVert *current_v;
-
- struct MVertTri *tri;
-
- unsigned int mvert_num;
- unsigned int tri_num;
- /** Cfra time of modifier. */
- float time_x, time_xnew;
- /** Collider doesn't move this frame, i.e. x[].co==xnew[].co. */
- char is_static;
- char _pad[7];
-
- /** Bounding volume hierarchy for this cloth object. */
- struct BVHTree *bvhtree;
+ ModifierData modifier;
+
+ /** Position at the beginning of the frame. */
+ struct MVert *x;
+ /** Position at the end of the frame. */
+ struct MVert *xnew;
+ /** Unused atm, but was discussed during sprint. */
+ struct MVert *xold;
+ /** New position at the actual inter-frame step. */
+ struct MVert *current_xnew;
+ /** Position at the actual inter-frame step. */
+ struct MVert *current_x;
+ /** (xnew - x) at the actual inter-frame step. */
+ struct MVert *current_v;
+
+ struct MVertTri *tri;
+
+ unsigned int mvert_num;
+ unsigned int tri_num;
+ /** Cfra time of modifier. */
+ float time_x, time_xnew;
+ /** Collider doesn't move this frame, i.e. x[].co==xnew[].co. */
+ char is_static;
+ char _pad[7];
+
+ /** Bounding volume hierarchy for this cloth object. */
+ struct BVHTree *bvhtree;
} CollisionModifierData;
typedef struct SurfaceModifierData {
- ModifierData modifier;
+ ModifierData modifier;
- /** Old position. */
- struct MVert *x;
- /** Velocity. */
- struct MVert *v;
+ /** Old position. */
+ struct MVert *x;
+ /** Velocity. */
+ struct MVert *v;
- struct Mesh *mesh;
+ struct Mesh *mesh;
- /** Bounding volume hierarchy of the mesh faces. */
- struct BVHTreeFromMesh *bvhtree;
+ /** Bounding volume hierarchy of the mesh faces. */
+ struct BVHTreeFromMesh *bvhtree;
- int cfra, numverts;
+ int cfra, numverts;
} SurfaceModifierData;
typedef struct BooleanModifierData {
- ModifierData modifier;
+ ModifierData modifier;
- struct Object *object;
- char operation;
- char _pad[2];
- char bm_flag;
- float double_threshold;
+ struct Object *object;
+ char operation;
+ char _pad[2];
+ char bm_flag;
+ float double_threshold;
} BooleanModifierData;
typedef enum {
- eBooleanModifierOp_Intersect = 0,
- eBooleanModifierOp_Union = 1,
- eBooleanModifierOp_Difference = 2,
+ eBooleanModifierOp_Intersect = 0,
+ eBooleanModifierOp_Union = 1,
+ eBooleanModifierOp_Difference = 2,
} BooleanModifierOp;
/* bm_flag (only used when G_DEBUG) */
enum {
- eBooleanModifierBMeshFlag_BMesh_Separate = (1 << 0),
- eBooleanModifierBMeshFlag_BMesh_NoDissolve = (1 << 1),
- eBooleanModifierBMeshFlag_BMesh_NoConnectRegions = (1 << 2),
+ eBooleanModifierBMeshFlag_BMesh_Separate = (1 << 0),
+ eBooleanModifierBMeshFlag_BMesh_NoDissolve = (1 << 1),
+ eBooleanModifierBMeshFlag_BMesh_NoConnectRegions = (1 << 2),
};
typedef struct MDefInfluence {
- int vertex;
- float weight;
+ int vertex;
+ float weight;
} MDefInfluence;
typedef struct MDefCell {
- int offset;
- int totinfluence;
+ int offset;
+ int totinfluence;
} MDefCell;
typedef struct MeshDeformModifierData {
- ModifierData modifier;
-
- /** Mesh object. */
- struct Object *object;
- /** Optional vertexgroup name, MAX_VGROUP_NAME. */
- char defgrp_name[64];
-
- short gridsize, flag;
- char _pad[4];
-
- /* result of static binding */
- /** Influences. */
- MDefInfluence *bindinfluences;
- /** Offsets into influences array. */
- int *bindoffsets;
- /** Coordinates that cage was bound with. */
- float *bindcagecos;
- /** Total vertices in mesh and cage. */
- int totvert, totcagevert;
-
- /* result of dynamic binding */
- /** Grid with dynamic binding cell points. */
- MDefCell *dyngrid;
- /** Dynamic binding vertex influences. */
- MDefInfluence *dyninfluences;
- /** Is this vertex bound or not?. */
- int *dynverts;
- /** Size of the dynamic bind grid. */
- int dyngridsize;
- /** Total number of vertex influences. */
- int totinfluence;
- /** Offset of the dynamic bind grid. */
- float dyncellmin[3];
- /** Width of dynamic bind cell. */
- float dyncellwidth;
- /** Matrix of cage at binding time. */
- float bindmat[4][4];
-
- /* deprecated storage */
- /** Deprecated inefficient storage. */
- float *bindweights;
- /** Deprecated storage of cage coords. */
- float *bindcos;
-
- /* runtime */
- void (*bindfunc)(struct MeshDeformModifierData *mmd, struct Mesh *cagemesh,
- float *vertexcos, int totvert, float cagemat[4][4]);
+ ModifierData modifier;
+
+ /** Mesh object. */
+ struct Object *object;
+ /** Optional vertexgroup name, MAX_VGROUP_NAME. */
+ char defgrp_name[64];
+
+ short gridsize, flag;
+ char _pad[4];
+
+ /* result of static binding */
+ /** Influences. */
+ MDefInfluence *bindinfluences;
+ /** Offsets into influences array. */
+ int *bindoffsets;
+ /** Coordinates that cage was bound with. */
+ float *bindcagecos;
+ /** Total vertices in mesh and cage. */
+ int totvert, totcagevert;
+
+ /* result of dynamic binding */
+ /** Grid with dynamic binding cell points. */
+ MDefCell *dyngrid;
+ /** Dynamic binding vertex influences. */
+ MDefInfluence *dyninfluences;
+ /** Is this vertex bound or not?. */
+ int *dynverts;
+ /** Size of the dynamic bind grid. */
+ int dyngridsize;
+ /** Total number of vertex influences. */
+ int totinfluence;
+ /** Offset of the dynamic bind grid. */
+ float dyncellmin[3];
+ /** Width of dynamic bind cell. */
+ float dyncellwidth;
+ /** Matrix of cage at binding time. */
+ float bindmat[4][4];
+
+ /* deprecated storage */
+ /** Deprecated inefficient storage. */
+ float *bindweights;
+ /** Deprecated storage of cage coords. */
+ float *bindcos;
+
+ /* runtime */
+ void (*bindfunc)(struct MeshDeformModifierData *mmd,
+ struct Mesh *cagemesh,
+ float *vertexcos,
+ int totvert,
+ float cagemat[4][4]);
} MeshDeformModifierData;
enum {
- MOD_MDEF_INVERT_VGROUP = (1 << 0),
- MOD_MDEF_DYNAMIC_BIND = (1 << 1),
+ MOD_MDEF_INVERT_VGROUP = (1 << 0),
+ MOD_MDEF_DYNAMIC_BIND = (1 << 1),
};
enum {
- MOD_MDEF_VOLUME = 0,
- MOD_MDEF_SURFACE = 1,
+ MOD_MDEF_VOLUME = 0,
+ MOD_MDEF_SURFACE = 1,
};
typedef struct ParticleSystemModifierData {
- ModifierData modifier;
-
- struct ParticleSystem *psys;
- /** Final Mesh - its topology may differ from orig mesh. */
- struct Mesh *mesh_final;
- /** Original mesh that particles are attached to. */
- struct Mesh *mesh_original;
- int totdmvert, totdmedge, totdmface;
- short flag;
- char _pad[2];
+ ModifierData modifier;
+
+ struct ParticleSystem *psys;
+ /** Final Mesh - its topology may differ from orig mesh. */
+ struct Mesh *mesh_final;
+ /** Original mesh that particles are attached to. */
+ struct Mesh *mesh_original;
+ int totdmvert, totdmedge, totdmface;
+ short flag;
+ char _pad[2];
} ParticleSystemModifierData;
typedef enum {
- eParticleSystemFlag_Pars = (1 << 0),
- eParticleSystemFlag_psys_updated = (1 << 1),
- eParticleSystemFlag_file_loaded = (1 << 2),
+ eParticleSystemFlag_Pars = (1 << 0),
+ eParticleSystemFlag_psys_updated = (1 << 1),
+ eParticleSystemFlag_file_loaded = (1 << 2),
} ParticleSystemModifierFlag;
typedef enum {
- eParticleInstanceFlag_Parents = (1 << 0),
- eParticleInstanceFlag_Children = (1 << 1),
- eParticleInstanceFlag_Path = (1 << 2),
- eParticleInstanceFlag_Unborn = (1 << 3),
- eParticleInstanceFlag_Alive = (1 << 4),
- eParticleInstanceFlag_Dead = (1 << 5),
- eParticleInstanceFlag_KeepShape = (1 << 6),
- eParticleInstanceFlag_UseSize = (1 << 7),
+ eParticleInstanceFlag_Parents = (1 << 0),
+ eParticleInstanceFlag_Children = (1 << 1),
+ eParticleInstanceFlag_Path = (1 << 2),
+ eParticleInstanceFlag_Unborn = (1 << 3),
+ eParticleInstanceFlag_Alive = (1 << 4),
+ eParticleInstanceFlag_Dead = (1 << 5),
+ eParticleInstanceFlag_KeepShape = (1 << 6),
+ eParticleInstanceFlag_UseSize = (1 << 7),
} ParticleInstanceModifierFlag;
typedef enum {
- eParticleInstanceSpace_World = 0,
- eParticleInstanceSpace_Local = 1,
+ eParticleInstanceSpace_World = 0,
+ eParticleInstanceSpace_Local = 1,
} ParticleInstanceModifierSpace;
typedef struct ParticleInstanceModifierData {
- ModifierData modifier;
-
- struct Object *ob;
- short psys, flag, axis, space;
- float position, random_position;
- float rotation, random_rotation;
- float particle_amount, particle_offset;
- /** MAX_CUSTOMDATA_LAYER_NAME. */
- char index_layer_name[64];
- /** MAX_CUSTOMDATA_LAYER_NAME. */
- char value_layer_name[64];
+ ModifierData modifier;
+
+ struct Object *ob;
+ short psys, flag, axis, space;
+ float position, random_position;
+ float rotation, random_rotation;
+ float particle_amount, particle_offset;
+ /** MAX_CUSTOMDATA_LAYER_NAME. */
+ char index_layer_name[64];
+ /** MAX_CUSTOMDATA_LAYER_NAME. */
+ char value_layer_name[64];
} ParticleInstanceModifierData;
typedef enum {
- eExplodeFlag_CalcFaces = (1 << 0),
- eExplodeFlag_PaSize = (1 << 1),
- eExplodeFlag_EdgeCut = (1 << 2),
- eExplodeFlag_Unborn = (1 << 3),
- eExplodeFlag_Alive = (1 << 4),
- eExplodeFlag_Dead = (1 << 5),
+ eExplodeFlag_CalcFaces = (1 << 0),
+ eExplodeFlag_PaSize = (1 << 1),
+ eExplodeFlag_EdgeCut = (1 << 2),
+ eExplodeFlag_Unborn = (1 << 3),
+ eExplodeFlag_Alive = (1 << 4),
+ eExplodeFlag_Dead = (1 << 5),
} ExplodeModifierFlag;
typedef struct ExplodeModifierData {
- ModifierData modifier;
+ ModifierData modifier;
- int *facepa;
- short flag, vgroup;
- float protect;
- /** MAX_CUSTOMDATA_LAYER_NAME. */
- char uvname[64];
+ int *facepa;
+ short flag, vgroup;
+ float protect;
+ /** MAX_CUSTOMDATA_LAYER_NAME. */
+ char uvname[64];
} ExplodeModifierData;
typedef struct MultiresModifierData {
- ModifierData modifier;
+ ModifierData modifier;
- char lvl, sculptlvl, renderlvl, totlvl;
- char simple, flags, _pad[2];
- short quality;
- short uv_smooth;
- char _pad2[4];
+ char lvl, sculptlvl, renderlvl, totlvl;
+ char simple, flags, _pad[2];
+ short quality;
+ short uv_smooth;
+ char _pad2[4];
} MultiresModifierData;
typedef enum {
- eMultiresModifierFlag_ControlEdges = (1 << 0),
- /* DEPRECATED, only used for versioning. */
- eMultiresModifierFlag_PlainUv_DEPRECATED = (1 << 1),
- eMultiresModifierFlag_UseCrease = (1 << 2),
+ eMultiresModifierFlag_ControlEdges = (1 << 0),
+ /* DEPRECATED, only used for versioning. */
+ eMultiresModifierFlag_PlainUv_DEPRECATED = (1 << 1),
+ eMultiresModifierFlag_UseCrease = (1 << 2),
} MultiresModifierFlag;
typedef struct FluidsimModifierData {
- ModifierData modifier;
+ ModifierData modifier;
- /** Definition is in DNA_object_fluidsim_types.h. */
- struct FluidsimSettings *fss;
+ /** Definition is in DNA_object_fluidsim_types.h. */
+ struct FluidsimSettings *fss;
} FluidsimModifierData;
typedef struct ShrinkwrapModifierData {
- ModifierData modifier;
-
- /** Shrink target. */
- struct Object *target;
- /** Additional shrink target. */
- struct Object *auxTarget;
- /** Optional vertexgroup name, MAX_VGROUP_NAME. */
- char vgroup_name[64];
- /** Distance offset to keep from mesh/projection point. */
- float keepDist;
- /** Shrink type projection. */
- short shrinkType;
- /** Shrink options. */
- char shrinkOpts;
- /** Shrink to surface mode. */
- char shrinkMode;
- /** Limit the projection ray cast. */
- float projLimit;
- /** Axis to project over. */
- char projAxis;
-
- /** If using projection over vertex normal this controls the level of subsurface that must be
- * done before getting the vertex coordinates and normal
- */
- char subsurfLevels;
-
- char _pad[2];
+ ModifierData modifier;
+
+ /** Shrink target. */
+ struct Object *target;
+ /** Additional shrink target. */
+ struct Object *auxTarget;
+ /** Optional vertexgroup name, MAX_VGROUP_NAME. */
+ char vgroup_name[64];
+ /** Distance offset to keep from mesh/projection point. */
+ float keepDist;
+ /** Shrink type projection. */
+ short shrinkType;
+ /** Shrink options. */
+ char shrinkOpts;
+ /** Shrink to surface mode. */
+ char shrinkMode;
+ /** Limit the projection ray cast. */
+ float projLimit;
+ /** Axis to project over. */
+ char projAxis;
+
+ /** If using projection over vertex normal this controls the level of subsurface that must be
+ * done before getting the vertex coordinates and normal
+ */
+ char subsurfLevels;
+
+ char _pad[2];
} ShrinkwrapModifierData;
/* Shrinkwrap->shrinkType */
enum {
- MOD_SHRINKWRAP_NEAREST_SURFACE = 0,
- MOD_SHRINKWRAP_PROJECT = 1,
- MOD_SHRINKWRAP_NEAREST_VERTEX = 2,
- MOD_SHRINKWRAP_TARGET_PROJECT = 3,
+ MOD_SHRINKWRAP_NEAREST_SURFACE = 0,
+ MOD_SHRINKWRAP_PROJECT = 1,
+ MOD_SHRINKWRAP_NEAREST_VERTEX = 2,
+ MOD_SHRINKWRAP_TARGET_PROJECT = 3,
};
/* Shrinkwrap->shrinkMode */
enum {
- /** Move vertex to the surface of the target object (keepDist towards original position) */
- MOD_SHRINKWRAP_ON_SURFACE = 0,
- /** Move the vertex inside the target object; don't change if already inside */
- MOD_SHRINKWRAP_INSIDE = 1,
- /** Move the vertex outside the target object; don't change if already outside */
- MOD_SHRINKWRAP_OUTSIDE = 2,
- /** Move vertex to the surface of the target object, with keepDist towards the outside */
- MOD_SHRINKWRAP_OUTSIDE_SURFACE = 3,
- /** Move vertex to the surface of the target object, with keepDist along the normal */
- MOD_SHRINKWRAP_ABOVE_SURFACE = 4,
+ /** Move vertex to the surface of the target object (keepDist towards original position) */
+ MOD_SHRINKWRAP_ON_SURFACE = 0,
+ /** Move the vertex inside the target object; don't change if already inside */
+ MOD_SHRINKWRAP_INSIDE = 1,
+ /** Move the vertex outside the target object; don't change if already outside */
+ MOD_SHRINKWRAP_OUTSIDE = 2,
+ /** Move vertex to the surface of the target object, with keepDist towards the outside */
+ MOD_SHRINKWRAP_OUTSIDE_SURFACE = 3,
+ /** Move vertex to the surface of the target object, with keepDist along the normal */
+ MOD_SHRINKWRAP_ABOVE_SURFACE = 4,
};
/* Shrinkwrap->shrinkOpts */
enum {
- /** allow shrinkwrap to move the vertex in the positive direction of axis */
- MOD_SHRINKWRAP_PROJECT_ALLOW_POS_DIR = (1 << 0),
- /** allow shrinkwrap to move the vertex in the negative direction of axis */
- MOD_SHRINKWRAP_PROJECT_ALLOW_NEG_DIR = (1 << 1),
+ /** allow shrinkwrap to move the vertex in the positive direction of axis */
+ MOD_SHRINKWRAP_PROJECT_ALLOW_POS_DIR = (1 << 0),
+ /** allow shrinkwrap to move the vertex in the negative direction of axis */
+ MOD_SHRINKWRAP_PROJECT_ALLOW_NEG_DIR = (1 << 1),
- /** ignore vertex moves if a vertex ends projected on a front face of the target */
- MOD_SHRINKWRAP_CULL_TARGET_FRONTFACE = (1 << 3),
- /** ignore vertex moves if a vertex ends projected on a back face of the target */
- MOD_SHRINKWRAP_CULL_TARGET_BACKFACE = (1 << 4),
+ /** ignore vertex moves if a vertex ends projected on a front face of the target */
+ MOD_SHRINKWRAP_CULL_TARGET_FRONTFACE = (1 << 3),
+ /** ignore vertex moves if a vertex ends projected on a back face of the target */
+ MOD_SHRINKWRAP_CULL_TARGET_BACKFACE = (1 << 4),
#ifdef DNA_DEPRECATED_ALLOW
- /** distance is measure to the front face of the target */
- MOD_SHRINKWRAP_KEEP_ABOVE_SURFACE = (1 << 5),
+ /** distance is measure to the front face of the target */
+ MOD_SHRINKWRAP_KEEP_ABOVE_SURFACE = (1 << 5),
#endif
- MOD_SHRINKWRAP_INVERT_VGROUP = (1 << 6),
- MOD_SHRINKWRAP_INVERT_CULL_TARGET = (1 << 7),
+ MOD_SHRINKWRAP_INVERT_VGROUP = (1 << 6),
+ MOD_SHRINKWRAP_INVERT_CULL_TARGET = (1 << 7),
};
-#define MOD_SHRINKWRAP_CULL_TARGET_MASK (MOD_SHRINKWRAP_CULL_TARGET_FRONTFACE | MOD_SHRINKWRAP_CULL_TARGET_BACKFACE)
+#define MOD_SHRINKWRAP_CULL_TARGET_MASK \
+ (MOD_SHRINKWRAP_CULL_TARGET_FRONTFACE | MOD_SHRINKWRAP_CULL_TARGET_BACKFACE)
/* Shrinkwrap->projAxis */
enum {
- /** projection over normal is used if no axis is selected */
- MOD_SHRINKWRAP_PROJECT_OVER_NORMAL = 0,
- MOD_SHRINKWRAP_PROJECT_OVER_X_AXIS = (1 << 0),
- MOD_SHRINKWRAP_PROJECT_OVER_Y_AXIS = (1 << 1),
- MOD_SHRINKWRAP_PROJECT_OVER_Z_AXIS = (1 << 2),
+ /** projection over normal is used if no axis is selected */
+ MOD_SHRINKWRAP_PROJECT_OVER_NORMAL = 0,
+ MOD_SHRINKWRAP_PROJECT_OVER_X_AXIS = (1 << 0),
+ MOD_SHRINKWRAP_PROJECT_OVER_Y_AXIS = (1 << 1),
+ MOD_SHRINKWRAP_PROJECT_OVER_Z_AXIS = (1 << 2),
};
-
typedef struct SimpleDeformModifierData {
- ModifierData modifier;
-
- /** Object to control the origin of modifier space coordinates. */
- struct Object *origin;
- /** Optional vertexgroup name, MAX_VGROUP_NAME. */
- char vgroup_name[64];
- /** Factors to control simple deforms. */
- float factor;
- /** Lower and upper limit. */
- float limit[2];
-
- /** Deform function. */
- char mode;
- /** Lock axis (for taper and stretch). */
- char axis;
- /** Axis to perform the deform on (default is X, but can be overridden by origin. */
- char deform_axis;
- char flag;
+ ModifierData modifier;
+
+ /** Object to control the origin of modifier space coordinates. */
+ struct Object *origin;
+ /** Optional vertexgroup name, MAX_VGROUP_NAME. */
+ char vgroup_name[64];
+ /** Factors to control simple deforms. */
+ float factor;
+ /** Lower and upper limit. */
+ float limit[2];
+
+ /** Deform function. */
+ char mode;
+ /** Lock axis (for taper and stretch). */
+ char axis;
+ /** Axis to perform the deform on (default is X, but can be overridden by origin. */
+ char deform_axis;
+ char flag;
} SimpleDeformModifierData;
/* SimpleDeform->flag */
enum {
- MOD_SIMPLEDEFORM_FLAG_INVERT_VGROUP = (1 << 0),
+ MOD_SIMPLEDEFORM_FLAG_INVERT_VGROUP = (1 << 0),
};
-
enum {
- MOD_SIMPLEDEFORM_MODE_TWIST = 1,
- MOD_SIMPLEDEFORM_MODE_BEND = 2,
- MOD_SIMPLEDEFORM_MODE_TAPER = 3,
- MOD_SIMPLEDEFORM_MODE_STRETCH = 4,
+ MOD_SIMPLEDEFORM_MODE_TWIST = 1,
+ MOD_SIMPLEDEFORM_MODE_BEND = 2,
+ MOD_SIMPLEDEFORM_MODE_TAPER = 3,
+ MOD_SIMPLEDEFORM_MODE_STRETCH = 4,
};
enum {
- MOD_SIMPLEDEFORM_LOCK_AXIS_X = (1 << 0),
- MOD_SIMPLEDEFORM_LOCK_AXIS_Y = (1 << 1),
- MOD_SIMPLEDEFORM_LOCK_AXIS_Z = (1 << 2),
+ MOD_SIMPLEDEFORM_LOCK_AXIS_X = (1 << 0),
+ MOD_SIMPLEDEFORM_LOCK_AXIS_Y = (1 << 1),
+ MOD_SIMPLEDEFORM_LOCK_AXIS_Z = (1 << 2),
};
typedef struct ShapeKeyModifierData {
- ModifierData modifier;
+ ModifierData modifier;
} ShapeKeyModifierData;
typedef struct SolidifyModifierData {
- ModifierData modifier;
-
- /** Name of vertex group to use, MAX_VGROUP_NAME. */
- char defgrp_name[64];
- /** New surface offset leve.l*/
- float offset;
- /** Midpoint of the offset . */
- float offset_fac;
- /** factor for the minimum weight to use when vgroups are used,
- * avoids 0.0 weights giving duplicate geometry */
- float offset_fac_vg;
- /** Clamp offset based on surrounding geometry. */
- float offset_clamp;
- char _pad[4];
- float crease_inner;
- float crease_outer;
- float crease_rim;
- int flag;
- short mat_ofs;
- short mat_ofs_rim;
+ ModifierData modifier;
+
+ /** Name of vertex group to use, MAX_VGROUP_NAME. */
+ char defgrp_name[64];
+ /** New surface offset leve.l*/
+ float offset;
+ /** Midpoint of the offset . */
+ float offset_fac;
+ /** factor for the minimum weight to use when vgroups are used,
+ * avoids 0.0 weights giving duplicate geometry */
+ float offset_fac_vg;
+ /** Clamp offset based on surrounding geometry. */
+ float offset_clamp;
+ char _pad[4];
+ float crease_inner;
+ float crease_outer;
+ float crease_rim;
+ int flag;
+ short mat_ofs;
+ short mat_ofs_rim;
} SolidifyModifierData;
enum {
- MOD_SOLIDIFY_RIM = (1 << 0),
- MOD_SOLIDIFY_EVEN = (1 << 1),
- MOD_SOLIDIFY_NORMAL_CALC = (1 << 2),
- MOD_SOLIDIFY_VGROUP_INV = (1 << 3),
+ MOD_SOLIDIFY_RIM = (1 << 0),
+ MOD_SOLIDIFY_EVEN = (1 << 1),
+ MOD_SOLIDIFY_NORMAL_CALC = (1 << 2),
+ MOD_SOLIDIFY_VGROUP_INV = (1 << 3),
#ifdef DNA_DEPRECATED
- MOD_SOLIDIFY_RIM_MATERIAL = (1 << 4), /* deprecated, used in do_versions */
+ MOD_SOLIDIFY_RIM_MATERIAL = (1 << 4), /* deprecated, used in do_versions */
#endif
- MOD_SOLIDIFY_FLIP = (1 << 5),
- MOD_SOLIDIFY_NOSHELL = (1 << 6),
+ MOD_SOLIDIFY_FLIP = (1 << 5),
+ MOD_SOLIDIFY_NOSHELL = (1 << 6),
};
typedef struct ScrewModifierData {
- ModifierData modifier;
-
- struct Object *ob_axis;
- unsigned int steps;
- unsigned int render_steps;
- unsigned int iter;
- float screw_ofs;
- float angle;
- float merge_dist;
- short flag;
- char axis;
- char _pad[5];
+ ModifierData modifier;
+
+ struct Object *ob_axis;
+ unsigned int steps;
+ unsigned int render_steps;
+ unsigned int iter;
+ float screw_ofs;
+ float angle;
+ float merge_dist;
+ short flag;
+ char axis;
+ char _pad[5];
} ScrewModifierData;
enum {
- MOD_SCREW_NORMAL_FLIP = (1 << 0),
- MOD_SCREW_NORMAL_CALC = (1 << 1),
- MOD_SCREW_OBJECT_OFFSET = (1 << 2),
-/* MOD_SCREW_OBJECT_ANGLE = (1 << 4), */
- MOD_SCREW_SMOOTH_SHADING = (1 << 5),
- MOD_SCREW_UV_STRETCH_U = (1 << 6),
- MOD_SCREW_UV_STRETCH_V = (1 << 7),
- MOD_SCREW_MERGE = (1 << 8),
+ MOD_SCREW_NORMAL_FLIP = (1 << 0),
+ MOD_SCREW_NORMAL_CALC = (1 << 1),
+ MOD_SCREW_OBJECT_OFFSET = (1 << 2),
+ /* MOD_SCREW_OBJECT_ANGLE = (1 << 4), */
+ MOD_SCREW_SMOOTH_SHADING = (1 << 5),
+ MOD_SCREW_UV_STRETCH_U = (1 << 6),
+ MOD_SCREW_UV_STRETCH_V = (1 << 7),
+ MOD_SCREW_MERGE = (1 << 8),
};
typedef struct OceanModifierData {
- ModifierData modifier;
+ ModifierData modifier;
- struct Ocean *ocean;
- struct OceanCache *oceancache;
+ struct Ocean *ocean;
+ struct OceanCache *oceancache;
- int resolution;
- int spatial_size;
+ int resolution;
+ int spatial_size;
- float wind_velocity;
+ float wind_velocity;
- float damp;
- float smallest_wave;
- float depth;
+ float damp;
+ float smallest_wave;
+ float depth;
- float wave_alignment;
- float wave_direction;
- float wave_scale;
+ float wave_alignment;
+ float wave_direction;
+ float wave_scale;
- float chop_amount;
- float foam_coverage;
- float time;
+ float chop_amount;
+ float foam_coverage;
+ float time;
- int bakestart;
- int bakeend;
+ int bakestart;
+ int bakeend;
- /** FILE_MAX. */
- char cachepath[1024];
- /** MAX_CUSTOMDATA_LAYER_NAME. */
- char foamlayername[64];
- char cached;
- char geometry_mode;
+ /** FILE_MAX. */
+ char cachepath[1024];
+ /** MAX_CUSTOMDATA_LAYER_NAME. */
+ char foamlayername[64];
+ char cached;
+ char geometry_mode;
- char flag;
- char _pad2;
+ char flag;
+ char _pad2;
- short repeat_x;
- short repeat_y;
+ short repeat_x;
+ short repeat_y;
- int seed;
+ int seed;
- float size;
+ float size;
- float foam_fade;
+ float foam_fade;
- char _pad[4];
+ char _pad[4];
} OceanModifierData;
enum {
- MOD_OCEAN_GEOM_GENERATE = 0,
- MOD_OCEAN_GEOM_DISPLACE = 1,
- MOD_OCEAN_GEOM_SIM_ONLY = 2,
+ MOD_OCEAN_GEOM_GENERATE = 0,
+ MOD_OCEAN_GEOM_DISPLACE = 1,
+ MOD_OCEAN_GEOM_SIM_ONLY = 2,
};
-
enum {
- MOD_OCEAN_GENERATE_FOAM = (1 << 0),
- MOD_OCEAN_GENERATE_NORMALS = (1 << 1),
+ MOD_OCEAN_GENERATE_FOAM = (1 << 0),
+ MOD_OCEAN_GENERATE_NORMALS = (1 << 1),
};
typedef struct WarpModifierData {
- ModifierData modifier;
- /* keep in sync with MappingInfoModifierData */
- struct Tex *texture;
- struct Object *map_object;
- /** MAX_CUSTOMDATA_LAYER_NAME. */
- char uvlayer_name[64];
- int uvlayer_tmp;
- int texmapping;
- /* end MappingInfoModifierData */
-
- struct Object *object_from;
- struct Object *object_to;
- struct CurveMapping *curfalloff;
- /** Optional vertexgroup name, MAX_VGROUP_NAME. */
- char defgrp_name[64];
- float strength;
- float falloff_radius;
- /** Not used yet. */
- char flag;
- char falloff_type;
- char _pad[6];
+ ModifierData modifier;
+ /* keep in sync with MappingInfoModifierData */
+ struct Tex *texture;
+ struct Object *map_object;
+ /** MAX_CUSTOMDATA_LAYER_NAME. */
+ char uvlayer_name[64];
+ int uvlayer_tmp;
+ int texmapping;
+ /* end MappingInfoModifierData */
+
+ struct Object *object_from;
+ struct Object *object_to;
+ struct CurveMapping *curfalloff;
+ /** Optional vertexgroup name, MAX_VGROUP_NAME. */
+ char defgrp_name[64];
+ float strength;
+ float falloff_radius;
+ /** Not used yet. */
+ char flag;
+ char falloff_type;
+ char _pad[6];
} WarpModifierData;
#define MOD_WARP_VOLUME_PRESERVE 1
typedef enum {
- eWarp_Falloff_None = 0,
- eWarp_Falloff_Curve = 1,
- eWarp_Falloff_Sharp = 2, /* PROP_SHARP */
- eWarp_Falloff_Smooth = 3, /* PROP_SMOOTH */
- eWarp_Falloff_Root = 4, /* PROP_ROOT */
- eWarp_Falloff_Linear = 5, /* PROP_LIN */
- eWarp_Falloff_Const = 6, /* PROP_CONST */
- eWarp_Falloff_Sphere = 7, /* PROP_SPHERE */
- eWarp_Falloff_InvSquare = 8, /* PROP_INVSQUARE */
- /* PROP_RANDOM not used */
+ eWarp_Falloff_None = 0,
+ eWarp_Falloff_Curve = 1,
+ eWarp_Falloff_Sharp = 2, /* PROP_SHARP */
+ eWarp_Falloff_Smooth = 3, /* PROP_SMOOTH */
+ eWarp_Falloff_Root = 4, /* PROP_ROOT */
+ eWarp_Falloff_Linear = 5, /* PROP_LIN */
+ eWarp_Falloff_Const = 6, /* PROP_CONST */
+ eWarp_Falloff_Sphere = 7, /* PROP_SPHERE */
+ eWarp_Falloff_InvSquare = 8, /* PROP_INVSQUARE */
+ /* PROP_RANDOM not used */
} WarpModifierFalloff;
typedef struct WeightVGEditModifierData {
- ModifierData modifier;
-
- /** Name of vertex group to edit. MAX_VGROUP_NAME. */
- char defgrp_name[64];
-
- /** Using MOD_WVG_EDIT_* flags. */
- short edit_flags;
- /** Using MOD_WVG_MAPPING_* defines. */
- short falloff_type;
- /** Weight for vertices not in vgroup. */
- float default_weight;
-
- /* Mapping stuff. */
- /** The custom mapping curve!. */
- struct CurveMapping *cmap_curve;
-
- /* The add/remove vertices weight thresholds. */
- float add_threshold, rem_threshold;
-
- /* Masking options. */
- /** The global "influence", if no vgroup nor tex is used as mask. */
- float mask_constant;
- /** Name of mask vertex group from which to get weight factors. MAX_VGROUP_NAME. */
- char mask_defgrp_name[64];
-
- /* Texture masking. */
- /** Which channel to use as weightf. */
- int mask_tex_use_channel;
- /** The texture. */
- struct Tex *mask_texture;
- /** Name of the map object. */
- struct Object *mask_tex_map_obj;
- /** How to map the texture (using MOD_DISP_MAP_* enums). */
- int mask_tex_mapping;
- /** Name of the UV map. MAX_CUSTOMDATA_LAYER_NAME. */
- char mask_tex_uvlayer_name[64];
-
- /* Padding... */
- char _pad0[4];
+ ModifierData modifier;
+
+ /** Name of vertex group to edit. MAX_VGROUP_NAME. */
+ char defgrp_name[64];
+
+ /** Using MOD_WVG_EDIT_* flags. */
+ short edit_flags;
+ /** Using MOD_WVG_MAPPING_* defines. */
+ short falloff_type;
+ /** Weight for vertices not in vgroup. */
+ float default_weight;
+
+ /* Mapping stuff. */
+ /** The custom mapping curve!. */
+ struct CurveMapping *cmap_curve;
+
+ /* The add/remove vertices weight thresholds. */
+ float add_threshold, rem_threshold;
+
+ /* Masking options. */
+ /** The global "influence", if no vgroup nor tex is used as mask. */
+ float mask_constant;
+ /** Name of mask vertex group from which to get weight factors. MAX_VGROUP_NAME. */
+ char mask_defgrp_name[64];
+
+ /* Texture masking. */
+ /** Which channel to use as weightf. */
+ int mask_tex_use_channel;
+ /** The texture. */
+ struct Tex *mask_texture;
+ /** Name of the map object. */
+ struct Object *mask_tex_map_obj;
+ /** How to map the texture (using MOD_DISP_MAP_* enums). */
+ int mask_tex_mapping;
+ /** Name of the UV map. MAX_CUSTOMDATA_LAYER_NAME. */
+ char mask_tex_uvlayer_name[64];
+
+ /* Padding... */
+ char _pad0[4];
} WeightVGEditModifierData;
/* WeightVGEdit flags. */
enum {
- /* (1 << 0), (1 << 1) and (1 << 2) are free for future use! */
- /** Add vertices with higher weight than threshold to vgroup. */
- MOD_WVG_EDIT_ADD2VG = (1 << 3),
- /** Remove vertices with lower weight than threshold from vgroup. */
- MOD_WVG_EDIT_REMFVG = (1 << 4),
+ /* (1 << 0), (1 << 1) and (1 << 2) are free for future use! */
+ /** Add vertices with higher weight than threshold to vgroup. */
+ MOD_WVG_EDIT_ADD2VG = (1 << 3),
+ /** Remove vertices with lower weight than threshold from vgroup. */
+ MOD_WVG_EDIT_REMFVG = (1 << 4),
};
typedef struct WeightVGMixModifierData {
- ModifierData modifier;
-
- /** Name of vertex group to modify/weight. MAX_VGROUP_NAME. */
- char defgrp_name_a[64];
- /** Name of other vertex group to mix in. MAX_VGROUP_NAME. */
- char defgrp_name_b[64];
- /** Default weight value for first vgroup. */
- float default_weight_a;
- /** Default weight value to mix in. */
- float default_weight_b;
- /** How second vgroups weights affect first ones. */
- char mix_mode;
- /** What vertices to affect. */
- char mix_set;
-
- char _pad0[6];
-
- /* Masking options. */
- /** The global "influence", if no vgroup nor tex is used as mask. */
- float mask_constant;
- /** Name of mask vertex group from which to get weight factors. MAX_VGROUP_NAME. */
- char mask_defgrp_name[64];
-
- /* Texture masking. */
- /** Which channel to use as weightf. */
- int mask_tex_use_channel;
- /** The texture. */
- struct Tex *mask_texture;
- /** Name of the map object. */
- struct Object *mask_tex_map_obj;
- /** How to map the texture!. */
- int mask_tex_mapping;
- /** Name of the UV map. MAX_CUSTOMDATA_LAYER_NAME. */
- char mask_tex_uvlayer_name[64];
-
- /* Padding... */
- char _pad1[4];
+ ModifierData modifier;
+
+ /** Name of vertex group to modify/weight. MAX_VGROUP_NAME. */
+ char defgrp_name_a[64];
+ /** Name of other vertex group to mix in. MAX_VGROUP_NAME. */
+ char defgrp_name_b[64];
+ /** Default weight value for first vgroup. */
+ float default_weight_a;
+ /** Default weight value to mix in. */
+ float default_weight_b;
+ /** How second vgroups weights affect first ones. */
+ char mix_mode;
+ /** What vertices to affect. */
+ char mix_set;
+
+ char _pad0[6];
+
+ /* Masking options. */
+ /** The global "influence", if no vgroup nor tex is used as mask. */
+ float mask_constant;
+ /** Name of mask vertex group from which to get weight factors. MAX_VGROUP_NAME. */
+ char mask_defgrp_name[64];
+
+ /* Texture masking. */
+ /** Which channel to use as weightf. */
+ int mask_tex_use_channel;
+ /** The texture. */
+ struct Tex *mask_texture;
+ /** Name of the map object. */
+ struct Object *mask_tex_map_obj;
+ /** How to map the texture!. */
+ int mask_tex_mapping;
+ /** Name of the UV map. MAX_CUSTOMDATA_LAYER_NAME. */
+ char mask_tex_uvlayer_name[64];
+
+ /* Padding... */
+ char _pad1[4];
} WeightVGMixModifierData;
/* How second vgroup's weights affect first ones. */
enum {
- /** Second weights replace weights. */
- MOD_WVG_MIX_SET = 1,
- /** Second weights are added to weights. */
- MOD_WVG_MIX_ADD = 2,
- /** Second weights are subtracted from weights. */
- MOD_WVG_MIX_SUB = 3,
- /** Second weights are multiplied with weights. */
- MOD_WVG_MIX_MUL = 4,
- /** Second weights divide weights. */
- MOD_WVG_MIX_DIV = 5,
- /** Difference between second weights and weights. */
- MOD_WVG_MIX_DIF = 6,
- /** Average of both weights. */
- MOD_WVG_MIX_AVG = 7,
+ /** Second weights replace weights. */
+ MOD_WVG_MIX_SET = 1,
+ /** Second weights are added to weights. */
+ MOD_WVG_MIX_ADD = 2,
+ /** Second weights are subtracted from weights. */
+ MOD_WVG_MIX_SUB = 3,
+ /** Second weights are multiplied with weights. */
+ MOD_WVG_MIX_MUL = 4,
+ /** Second weights divide weights. */
+ MOD_WVG_MIX_DIV = 5,
+ /** Difference between second weights and weights. */
+ MOD_WVG_MIX_DIF = 6,
+ /** Average of both weights. */
+ MOD_WVG_MIX_AVG = 7,
};
/* What vertices to affect. */
enum {
- /** Affect all vertices. */
- MOD_WVG_SET_ALL = 1,
- /** Affect only vertices in first vgroup. */
- MOD_WVG_SET_A = 2,
- /** Affect only vertices in second vgroup. */
- MOD_WVG_SET_B = 3,
- /** Affect only vertices in one vgroup or the other. */
- MOD_WVG_SET_OR = 4,
- /** Affect only vertices in both vgroups. */
- MOD_WVG_SET_AND = 5,
+ /** Affect all vertices. */
+ MOD_WVG_SET_ALL = 1,
+ /** Affect only vertices in first vgroup. */
+ MOD_WVG_SET_A = 2,
+ /** Affect only vertices in second vgroup. */
+ MOD_WVG_SET_B = 3,
+ /** Affect only vertices in one vgroup or the other. */
+ MOD_WVG_SET_OR = 4,
+ /** Affect only vertices in both vgroups. */
+ MOD_WVG_SET_AND = 5,
};
typedef struct WeightVGProximityModifierData {
- ModifierData modifier;
-
- /** Name of vertex group to modify/weight. MAX_VGROUP_NAME. */
- char defgrp_name[64];
-
- /* Proximity modes. */
- int proximity_mode;
- int proximity_flags;
-
- /* Target object from which to calculate vertices distances. */
- struct Object *proximity_ob_target;
-
- /* Masking options. */
- /** The global "influence", if no vgroup nor tex is used as mask. */
- float mask_constant;
- /** Name of mask vertex group from which to get weight factors. MAX_VGROUP_NAME. */
- char mask_defgrp_name[64];
-
- /* Texture masking. */
- /** Which channel to use as weightf. */
- int mask_tex_use_channel;
- /** The texture. */
- struct Tex *mask_texture;
- /** Name of the map object. */
- struct Object *mask_tex_map_obj;
- /** How to map the texture!. */
- int mask_tex_mapping;
- /** Name of the UV Map. MAX_CUSTOMDATA_LAYER_NAME. */
- char mask_tex_uvlayer_name[64];
-
- /** Distances mapping to 0.0/1.0 weights. */
- float min_dist, max_dist;
-
- /* Put here to avoid breaking existing struct... */
- /** Using MOD_WVG_MAPPING_* enums. */
- short falloff_type;
-
- /* Padding... */
- char _pad0[2];
+ ModifierData modifier;
+
+ /** Name of vertex group to modify/weight. MAX_VGROUP_NAME. */
+ char defgrp_name[64];
+
+ /* Proximity modes. */
+ int proximity_mode;
+ int proximity_flags;
+
+ /* Target object from which to calculate vertices distances. */
+ struct Object *proximity_ob_target;
+
+ /* Masking options. */
+ /** The global "influence", if no vgroup nor tex is used as mask. */
+ float mask_constant;
+ /** Name of mask vertex group from which to get weight factors. MAX_VGROUP_NAME. */
+ char mask_defgrp_name[64];
+
+ /* Texture masking. */
+ /** Which channel to use as weightf. */
+ int mask_tex_use_channel;
+ /** The texture. */
+ struct Tex *mask_texture;
+ /** Name of the map object. */
+ struct Object *mask_tex_map_obj;
+ /** How to map the texture!. */
+ int mask_tex_mapping;
+ /** Name of the UV Map. MAX_CUSTOMDATA_LAYER_NAME. */
+ char mask_tex_uvlayer_name[64];
+
+ /** Distances mapping to 0.0/1.0 weights. */
+ float min_dist, max_dist;
+
+ /* Put here to avoid breaking existing struct... */
+ /** Using MOD_WVG_MAPPING_* enums. */
+ short falloff_type;
+
+ /* Padding... */
+ char _pad0[2];
} WeightVGProximityModifierData;
/* Modes of proximity weighting. */
enum {
- MOD_WVG_PROXIMITY_OBJECT = 1, /* source vertex to other location */
- MOD_WVG_PROXIMITY_GEOMETRY = 2, /* source vertex to other geometry */
+ MOD_WVG_PROXIMITY_OBJECT = 1, /* source vertex to other location */
+ MOD_WVG_PROXIMITY_GEOMETRY = 2, /* source vertex to other geometry */
};
/* Flags options for proximity weighting. */
enum {
- /* Use nearest vertices of target obj, in MOD_WVG_PROXIMITY_GEOMETRY mode. */
- MOD_WVG_PROXIMITY_GEOM_VERTS = (1 << 0),
- /* Use nearest edges of target obj, in MOD_WVG_PROXIMITY_GEOMETRY mode. */
- MOD_WVG_PROXIMITY_GEOM_EDGES = (1 << 1),
- /* Use nearest faces of target obj, in MOD_WVG_PROXIMITY_GEOMETRY mode. */
- MOD_WVG_PROXIMITY_GEOM_FACES = (1 << 2),
+ /* Use nearest vertices of target obj, in MOD_WVG_PROXIMITY_GEOMETRY mode. */
+ MOD_WVG_PROXIMITY_GEOM_VERTS = (1 << 0),
+ /* Use nearest edges of target obj, in MOD_WVG_PROXIMITY_GEOMETRY mode. */
+ MOD_WVG_PROXIMITY_GEOM_EDGES = (1 << 1),
+ /* Use nearest faces of target obj, in MOD_WVG_PROXIMITY_GEOMETRY mode. */
+ MOD_WVG_PROXIMITY_GEOM_FACES = (1 << 2),
};
/* Defines common to all WeightVG modifiers. */
/* Mapping modes. */
enum {
- MOD_WVG_MAPPING_NONE = 0,
- MOD_WVG_MAPPING_CURVE = 1,
- MOD_WVG_MAPPING_SHARP = 2, /* PROP_SHARP */
- MOD_WVG_MAPPING_SMOOTH = 3, /* PROP_SMOOTH */
- MOD_WVG_MAPPING_ROOT = 4, /* PROP_ROOT */
- /* PROP_LIN not used (same as NONE, here...). */
- /* PROP_CONST not used. */
- MOD_WVG_MAPPING_SPHERE = 7, /* PROP_SPHERE */
- MOD_WVG_MAPPING_RANDOM = 8, /* PROP_RANDOM */
- MOD_WVG_MAPPING_STEP = 9, /* Median Step. */
+ MOD_WVG_MAPPING_NONE = 0,
+ MOD_WVG_MAPPING_CURVE = 1,
+ MOD_WVG_MAPPING_SHARP = 2, /* PROP_SHARP */
+ MOD_WVG_MAPPING_SMOOTH = 3, /* PROP_SMOOTH */
+ MOD_WVG_MAPPING_ROOT = 4, /* PROP_ROOT */
+ /* PROP_LIN not used (same as NONE, here...). */
+ /* PROP_CONST not used. */
+ MOD_WVG_MAPPING_SPHERE = 7, /* PROP_SPHERE */
+ MOD_WVG_MAPPING_RANDOM = 8, /* PROP_RANDOM */
+ MOD_WVG_MAPPING_STEP = 9, /* Median Step. */
};
/* Tex channel to be used as mask. */
enum {
- MOD_WVG_MASK_TEX_USE_INT = 1,
- MOD_WVG_MASK_TEX_USE_RED = 2,
- MOD_WVG_MASK_TEX_USE_GREEN = 3,
- MOD_WVG_MASK_TEX_USE_BLUE = 4,
- MOD_WVG_MASK_TEX_USE_HUE = 5,
- MOD_WVG_MASK_TEX_USE_SAT = 6,
- MOD_WVG_MASK_TEX_USE_VAL = 7,
- MOD_WVG_MASK_TEX_USE_ALPHA = 8,
+ MOD_WVG_MASK_TEX_USE_INT = 1,
+ MOD_WVG_MASK_TEX_USE_RED = 2,
+ MOD_WVG_MASK_TEX_USE_GREEN = 3,
+ MOD_WVG_MASK_TEX_USE_BLUE = 4,
+ MOD_WVG_MASK_TEX_USE_HUE = 5,
+ MOD_WVG_MASK_TEX_USE_SAT = 6,
+ MOD_WVG_MASK_TEX_USE_VAL = 7,
+ MOD_WVG_MASK_TEX_USE_ALPHA = 8,
};
typedef struct DynamicPaintModifierData {
- ModifierData modifier;
+ ModifierData modifier;
- struct DynamicPaintCanvasSettings *canvas;
- struct DynamicPaintBrushSettings *brush;
- /** UI display: canvas / brush. */
- int type;
- char _pad[4];
+ struct DynamicPaintCanvasSettings *canvas;
+ struct DynamicPaintBrushSettings *brush;
+ /** UI display: canvas / brush. */
+ int type;
+ char _pad[4];
} DynamicPaintModifierData;
/* Dynamic paint modifier flags */
enum {
- MOD_DYNAMICPAINT_TYPE_CANVAS = (1 << 0),
- MOD_DYNAMICPAINT_TYPE_BRUSH = (1 << 1),
+ MOD_DYNAMICPAINT_TYPE_CANVAS = (1 << 0),
+ MOD_DYNAMICPAINT_TYPE_BRUSH = (1 << 1),
};
/* Remesh modifier */
typedef enum eRemeshModifierFlags {
- MOD_REMESH_FLOOD_FILL = (1 << 0),
- MOD_REMESH_SMOOTH_SHADING = (1 << 1),
+ MOD_REMESH_FLOOD_FILL = (1 << 0),
+ MOD_REMESH_SMOOTH_SHADING = (1 << 1),
} RemeshModifierFlags;
typedef enum eRemeshModifierMode {
- /* blocky */
- MOD_REMESH_CENTROID = 0,
- /* smooth */
- MOD_REMESH_MASS_POINT = 1,
- /* keeps sharp edges */
- MOD_REMESH_SHARP_FEATURES = 2,
+ /* blocky */
+ MOD_REMESH_CENTROID = 0,
+ /* smooth */
+ MOD_REMESH_MASS_POINT = 1,
+ /* keeps sharp edges */
+ MOD_REMESH_SHARP_FEATURES = 2,
} eRemeshModifierMode;
typedef struct RemeshModifierData {
- ModifierData modifier;
+ ModifierData modifier;
- /* floodfill option, controls how small components can be before they are removed */
- float threshold;
+ /* floodfill option, controls how small components can be before they are removed */
+ float threshold;
- /* ratio between size of model and grid */
- float scale;
+ /* ratio between size of model and grid */
+ float scale;
- float hermite_num;
+ float hermite_num;
- /* octree depth */
- char depth;
+ /* octree depth */
+ char depth;
- char flag;
- char mode;
- char _pad;
+ char flag;
+ char mode;
+ char _pad;
} RemeshModifierData;
/* Skin modifier */
typedef struct SkinModifierData {
- ModifierData modifier;
+ ModifierData modifier;
- float branch_smoothing;
+ float branch_smoothing;
- char flag;
+ char flag;
- char symmetry_axes;
+ char symmetry_axes;
- char _pad[2];
+ char _pad[2];
} SkinModifierData;
/* SkinModifierData.symmetry_axes */
enum {
- MOD_SKIN_SYMM_X = (1 << 0),
- MOD_SKIN_SYMM_Y = (1 << 1),
- MOD_SKIN_SYMM_Z = (1 << 2),
+ MOD_SKIN_SYMM_X = (1 << 0),
+ MOD_SKIN_SYMM_Y = (1 << 1),
+ MOD_SKIN_SYMM_Z = (1 << 2),
};
/* SkinModifierData.flag */
enum {
- MOD_SKIN_SMOOTH_SHADING = 1,
+ MOD_SKIN_SMOOTH_SHADING = 1,
};
/* Triangulate modifier */
typedef struct TriangulateModifierData {
- ModifierData modifier;
+ ModifierData modifier;
- int flag;
- int quad_method;
- int ngon_method;
- int min_vertices;
+ int flag;
+ int quad_method;
+ int ngon_method;
+ int min_vertices;
} TriangulateModifierData;
/* TriangulateModifierData.flag */
enum {
#ifdef DNA_DEPRECATED
- MOD_TRIANGULATE_BEAUTY = (1 << 0), /* deprecated */
+ MOD_TRIANGULATE_BEAUTY = (1 << 0), /* deprecated */
#endif
- MOD_TRIANGULATE_KEEP_CUSTOMLOOP_NORMALS = 1 << 1,
+ MOD_TRIANGULATE_KEEP_CUSTOMLOOP_NORMALS = 1 << 1,
};
/* Triangulate methods - NGons */
enum {
- MOD_TRIANGULATE_NGON_BEAUTY = 0,
- MOD_TRIANGULATE_NGON_EARCLIP,
+ MOD_TRIANGULATE_NGON_BEAUTY = 0,
+ MOD_TRIANGULATE_NGON_EARCLIP,
};
/* Triangulate methods - Quads */
enum {
- MOD_TRIANGULATE_QUAD_BEAUTY = 0,
- MOD_TRIANGULATE_QUAD_FIXED,
- MOD_TRIANGULATE_QUAD_ALTERNATE,
- MOD_TRIANGULATE_QUAD_SHORTEDGE,
+ MOD_TRIANGULATE_QUAD_BEAUTY = 0,
+ MOD_TRIANGULATE_QUAD_FIXED,
+ MOD_TRIANGULATE_QUAD_ALTERNATE,
+ MOD_TRIANGULATE_QUAD_SHORTEDGE,
};
typedef struct LaplacianSmoothModifierData {
- ModifierData modifier;
+ ModifierData modifier;
- float lambda, lambda_border;
- char _pad1[4];
- /** MAX_VGROUP_NAME. */
- char defgrp_name[64];
- short flag, repeat;
+ float lambda, lambda_border;
+ char _pad1[4];
+ /** MAX_VGROUP_NAME. */
+ char defgrp_name[64];
+ short flag, repeat;
} LaplacianSmoothModifierData;
/* Smooth modifier flags */
enum {
- MOD_LAPLACIANSMOOTH_X = (1 << 1),
- MOD_LAPLACIANSMOOTH_Y = (1 << 2),
- MOD_LAPLACIANSMOOTH_Z = (1 << 3),
- MOD_LAPLACIANSMOOTH_PRESERVE_VOLUME = (1 << 4),
- MOD_LAPLACIANSMOOTH_NORMALIZED = (1 << 5),
+ MOD_LAPLACIANSMOOTH_X = (1 << 1),
+ MOD_LAPLACIANSMOOTH_Y = (1 << 2),
+ MOD_LAPLACIANSMOOTH_Z = (1 << 3),
+ MOD_LAPLACIANSMOOTH_PRESERVE_VOLUME = (1 << 4),
+ MOD_LAPLACIANSMOOTH_NORMALIZED = (1 << 5),
};
-
typedef struct CorrectiveSmoothModifierData {
- ModifierData modifier;
+ ModifierData modifier;
- /* positions set during 'bind' operator
- * use for MOD_CORRECTIVESMOOTH_RESTSOURCE_BIND */
- float (*bind_coords)[3];
+ /* positions set during 'bind' operator
+ * use for MOD_CORRECTIVESMOOTH_RESTSOURCE_BIND */
+ float (*bind_coords)[3];
- /* note: -1 is used to bind */
- unsigned int bind_coords_num;
+ /* note: -1 is used to bind */
+ unsigned int bind_coords_num;
- float lambda;
- short repeat, flag;
- char smooth_type, rest_source;
- char _pad[2];
+ float lambda;
+ short repeat, flag;
+ char smooth_type, rest_source;
+ char _pad[2];
- /** MAX_VGROUP_NAME. */
- char defgrp_name[64];
+ /** MAX_VGROUP_NAME. */
+ char defgrp_name[64];
- /* runtime-only cache (delta's between),
- * delta's between the original positions and the smoothed positions */
- float (*delta_cache)[3];
- unsigned int delta_cache_num;
- char _pad2[4];
+ /* runtime-only cache (delta's between),
+ * delta's between the original positions and the smoothed positions */
+ float (*delta_cache)[3];
+ unsigned int delta_cache_num;
+ char _pad2[4];
} CorrectiveSmoothModifierData;
enum {
- MOD_CORRECTIVESMOOTH_SMOOTH_SIMPLE = 0,
- MOD_CORRECTIVESMOOTH_SMOOTH_LENGTH_WEIGHT = 1,
+ MOD_CORRECTIVESMOOTH_SMOOTH_SIMPLE = 0,
+ MOD_CORRECTIVESMOOTH_SMOOTH_LENGTH_WEIGHT = 1,
};
enum {
- MOD_CORRECTIVESMOOTH_RESTSOURCE_ORCO = 0,
- MOD_CORRECTIVESMOOTH_RESTSOURCE_BIND = 1,
+ MOD_CORRECTIVESMOOTH_RESTSOURCE_ORCO = 0,
+ MOD_CORRECTIVESMOOTH_RESTSOURCE_BIND = 1,
};
/* Corrective Smooth modifier flags */
enum {
- MOD_CORRECTIVESMOOTH_INVERT_VGROUP = (1 << 0),
- MOD_CORRECTIVESMOOTH_ONLY_SMOOTH = (1 << 1),
- MOD_CORRECTIVESMOOTH_PIN_BOUNDARY = (1 << 2),
+ MOD_CORRECTIVESMOOTH_INVERT_VGROUP = (1 << 0),
+ MOD_CORRECTIVESMOOTH_ONLY_SMOOTH = (1 << 1),
+ MOD_CORRECTIVESMOOTH_PIN_BOUNDARY = (1 << 2),
};
typedef struct UVWarpModifierData {
- ModifierData modifier;
-
- char axis_u, axis_v;
- char _pad[6];
- /** Used for rotate/scale. */
- float center[2];
-
- /** Source. */
- struct Object *object_src;
- /** Optional name of bone target, MAX_ID_NAME-2. */
- char bone_src[64];
- /** Target. */
- struct Object *object_dst;
- /** Optional name of bone target, MAX_ID_NAME-2. */
- char bone_dst[64];
-
- /** Optional vertexgroup name, MAX_VGROUP_NAME. */
- char vgroup_name[64];
- /** MAX_CUSTOMDATA_LAYER_NAME. */
- char uvlayer_name[64];
+ ModifierData modifier;
+
+ char axis_u, axis_v;
+ char _pad[6];
+ /** Used for rotate/scale. */
+ float center[2];
+
+ /** Source. */
+ struct Object *object_src;
+ /** Optional name of bone target, MAX_ID_NAME-2. */
+ char bone_src[64];
+ /** Target. */
+ struct Object *object_dst;
+ /** Optional name of bone target, MAX_ID_NAME-2. */
+ char bone_dst[64];
+
+ /** Optional vertexgroup name, MAX_VGROUP_NAME. */
+ char vgroup_name[64];
+ /** MAX_CUSTOMDATA_LAYER_NAME. */
+ char uvlayer_name[64];
} UVWarpModifierData;
/* cache modifier */
typedef struct MeshCacheModifierData {
- ModifierData modifier;
+ ModifierData modifier;
- char flag;
- /** File format. */
- char type;
- char time_mode;
- char play_mode;
+ char flag;
+ /** File format. */
+ char type;
+ char time_mode;
+ char play_mode;
- /* axis conversion */
- char forward_axis;
- char up_axis;
- char flip_axis;
+ /* axis conversion */
+ char forward_axis;
+ char up_axis;
+ char flip_axis;
- char interp;
+ char interp;
- float factor;
- char deform_mode;
- char _pad[7];
+ float factor;
+ char deform_mode;
+ char _pad[7];
- /* play_mode == MOD_MESHCACHE_PLAY_CFEA */
- float frame_start;
- float frame_scale;
+ /* play_mode == MOD_MESHCACHE_PLAY_CFEA */
+ float frame_start;
+ float frame_scale;
- /* play_mode == MOD_MESHCACHE_PLAY_EVAL */
- /* we could use one float for all these but their purpose is very different */
- float eval_frame;
- float eval_time;
- float eval_factor;
+ /* play_mode == MOD_MESHCACHE_PLAY_EVAL */
+ /* we could use one float for all these but their purpose is very different */
+ float eval_frame;
+ float eval_time;
+ float eval_factor;
- /** FILE_MAX. */
- char filepath[1024];
+ /** FILE_MAX. */
+ char filepath[1024];
} MeshCacheModifierData;
enum {
- MOD_MESHCACHE_TYPE_MDD = 1,
- MOD_MESHCACHE_TYPE_PC2 = 2,
+ MOD_MESHCACHE_TYPE_MDD = 1,
+ MOD_MESHCACHE_TYPE_PC2 = 2,
};
enum {
- MOD_MESHCACHE_DEFORM_OVERWRITE = 0,
- MOD_MESHCACHE_DEFORM_INTEGRATE = 1,
+ MOD_MESHCACHE_DEFORM_OVERWRITE = 0,
+ MOD_MESHCACHE_DEFORM_INTEGRATE = 1,
};
enum {
- MOD_MESHCACHE_INTERP_NONE = 0,
- MOD_MESHCACHE_INTERP_LINEAR = 1,
-/* MOD_MESHCACHE_INTERP_CARDINAL = 2, */
+ MOD_MESHCACHE_INTERP_NONE = 0,
+ MOD_MESHCACHE_INTERP_LINEAR = 1,
+ /* MOD_MESHCACHE_INTERP_CARDINAL = 2, */
};
enum {
- MOD_MESHCACHE_TIME_FRAME = 0,
- MOD_MESHCACHE_TIME_SECONDS = 1,
- MOD_MESHCACHE_TIME_FACTOR = 2,
+ MOD_MESHCACHE_TIME_FRAME = 0,
+ MOD_MESHCACHE_TIME_SECONDS = 1,
+ MOD_MESHCACHE_TIME_FACTOR = 2,
};
enum {
- MOD_MESHCACHE_PLAY_CFEA = 0,
- MOD_MESHCACHE_PLAY_EVAL = 1,
+ MOD_MESHCACHE_PLAY_CFEA = 0,
+ MOD_MESHCACHE_PLAY_EVAL = 1,
};
-
typedef struct LaplacianDeformModifierData {
- ModifierData modifier;
- /** MAX_VGROUP_NAME. */
- char anchor_grp_name[64];
- int total_verts, repeat;
- float *vertexco;
- /** Runtime only. */
- void *cache_system;
- short flag;
- char _pad[6];
+ ModifierData modifier;
+ /** MAX_VGROUP_NAME. */
+ char anchor_grp_name[64];
+ int total_verts, repeat;
+ float *vertexco;
+ /** Runtime only. */
+ void *cache_system;
+ short flag;
+ char _pad[6];
} LaplacianDeformModifierData;
/* Laplacian Deform modifier flags */
enum {
- MOD_LAPLACIANDEFORM_BIND = 1 << 0,
+ MOD_LAPLACIANDEFORM_BIND = 1 << 0,
};
/* many of these options match 'solidify' */
typedef struct WireframeModifierData {
- ModifierData modifier;
- /** MAX_VGROUP_NAME. */
- char defgrp_name[64];
- float offset;
- float offset_fac;
- float offset_fac_vg;
- float crease_weight;
- short flag, mat_ofs;
- char _pad[4];
+ ModifierData modifier;
+ /** MAX_VGROUP_NAME. */
+ char defgrp_name[64];
+ float offset;
+ float offset_fac;
+ float offset_fac_vg;
+ float crease_weight;
+ short flag, mat_ofs;
+ char _pad[4];
} WireframeModifierData;
enum {
- MOD_WIREFRAME_INVERT_VGROUP = (1 << 0),
- MOD_WIREFRAME_REPLACE = (1 << 1),
- MOD_WIREFRAME_BOUNDARY = (1 << 2),
- MOD_WIREFRAME_OFS_EVEN = (1 << 3),
- MOD_WIREFRAME_OFS_RELATIVE = (1 << 4),
- MOD_WIREFRAME_CREASE = (1 << 5),
+ MOD_WIREFRAME_INVERT_VGROUP = (1 << 0),
+ MOD_WIREFRAME_REPLACE = (1 << 1),
+ MOD_WIREFRAME_BOUNDARY = (1 << 2),
+ MOD_WIREFRAME_OFS_EVEN = (1 << 3),
+ MOD_WIREFRAME_OFS_RELATIVE = (1 << 4),
+ MOD_WIREFRAME_CREASE = (1 << 5),
};
-
typedef struct DataTransferModifierData {
- ModifierData modifier;
+ ModifierData modifier;
- struct Object *ob_source;
+ struct Object *ob_source;
- /** See DT_TYPE_ enum in ED_object.h. */
- int data_types;
+ /** See DT_TYPE_ enum in ED_object.h. */
+ int data_types;
- /* See MREMAP_MODE_ enum in BKE_mesh_mapping.h */
- int vmap_mode;
- int emap_mode;
- int lmap_mode;
- int pmap_mode;
+ /* See MREMAP_MODE_ enum in BKE_mesh_mapping.h */
+ int vmap_mode;
+ int emap_mode;
+ int lmap_mode;
+ int pmap_mode;
- float map_max_distance;
- float map_ray_radius;
- float islands_precision;
+ float map_max_distance;
+ float map_ray_radius;
+ float islands_precision;
- char _pad1[4];
+ char _pad1[4];
- /** DT_MULTILAYER_INDEX_MAX; See DT_FROMLAYERS_ enum in ED_object.h. */
- int layers_select_src[4];
- /** DT_MULTILAYER_INDEX_MAX; See DT_TOLAYERS_ enum in ED_object.h. */
- int layers_select_dst[4];
+ /** DT_MULTILAYER_INDEX_MAX; See DT_FROMLAYERS_ enum in ED_object.h. */
+ int layers_select_src[4];
+ /** DT_MULTILAYER_INDEX_MAX; See DT_TOLAYERS_ enum in ED_object.h. */
+ int layers_select_dst[4];
- /** See CDT_MIX_ enum in BKE_customdata.h. */
- int mix_mode;
- float mix_factor;
- /** MAX_VGROUP_NAME. */
- char defgrp_name[64];
+ /** See CDT_MIX_ enum in BKE_customdata.h. */
+ int mix_mode;
+ float mix_factor;
+ /** MAX_VGROUP_NAME. */
+ char defgrp_name[64];
- int flags;
+ int flags;
} DataTransferModifierData;
/* DataTransferModifierData.flags */
enum {
- MOD_DATATRANSFER_OBSRC_TRANSFORM = 1 << 0,
- MOD_DATATRANSFER_MAP_MAXDIST = 1 << 1,
- MOD_DATATRANSFER_INVERT_VGROUP = 1 << 2,
+ MOD_DATATRANSFER_OBSRC_TRANSFORM = 1 << 0,
+ MOD_DATATRANSFER_MAP_MAXDIST = 1 << 1,
+ MOD_DATATRANSFER_INVERT_VGROUP = 1 << 2,
- /* Only for UI really. */
- MOD_DATATRANSFER_USE_VERT = 1 << 28,
- MOD_DATATRANSFER_USE_EDGE = 1 << 29,
- MOD_DATATRANSFER_USE_LOOP = 1 << 30,
- MOD_DATATRANSFER_USE_POLY = 1u << 31,
+ /* Only for UI really. */
+ MOD_DATATRANSFER_USE_VERT = 1 << 28,
+ MOD_DATATRANSFER_USE_EDGE = 1 << 29,
+ MOD_DATATRANSFER_USE_LOOP = 1 << 30,
+ MOD_DATATRANSFER_USE_POLY = 1u << 31,
};
/* Set Split Normals modifier */
typedef struct NormalEditModifierData {
- ModifierData modifier;
- /** MAX_VGROUP_NAME. */
- char defgrp_name[64];
- /** Source of normals, or center of ellipsoid. */
- struct Object *target;
- short mode;
- short flag;
- short mix_mode;
- char _pad[2];
- float mix_factor;
- float mix_limit;
- float offset[3];
- char _pad0[4];
+ ModifierData modifier;
+ /** MAX_VGROUP_NAME. */
+ char defgrp_name[64];
+ /** Source of normals, or center of ellipsoid. */
+ struct Object *target;
+ short mode;
+ short flag;
+ short mix_mode;
+ char _pad[2];
+ float mix_factor;
+ float mix_limit;
+ float offset[3];
+ char _pad0[4];
} NormalEditModifierData;
/* NormalEditModifierData.mode */
enum {
- MOD_NORMALEDIT_MODE_RADIAL = 0,
- MOD_NORMALEDIT_MODE_DIRECTIONAL = 1,
+ MOD_NORMALEDIT_MODE_RADIAL = 0,
+ MOD_NORMALEDIT_MODE_DIRECTIONAL = 1,
};
/* NormalEditModifierData.flags */
enum {
- MOD_NORMALEDIT_INVERT_VGROUP = (1 << 0),
- MOD_NORMALEDIT_USE_DIRECTION_PARALLEL = (1 << 1),
- MOD_NORMALEDIT_NO_POLYNORS_FIX = (1 << 2),
+ MOD_NORMALEDIT_INVERT_VGROUP = (1 << 0),
+ MOD_NORMALEDIT_USE_DIRECTION_PARALLEL = (1 << 1),
+ MOD_NORMALEDIT_NO_POLYNORS_FIX = (1 << 2),
};
/* NormalEditModifierData.mix_mode */
enum {
- MOD_NORMALEDIT_MIX_COPY = 0,
- MOD_NORMALEDIT_MIX_ADD = 1,
- MOD_NORMALEDIT_MIX_SUB = 2,
- MOD_NORMALEDIT_MIX_MUL = 3,
+ MOD_NORMALEDIT_MIX_COPY = 0,
+ MOD_NORMALEDIT_MIX_ADD = 1,
+ MOD_NORMALEDIT_MIX_SUB = 2,
+ MOD_NORMALEDIT_MIX_MUL = 3,
};
typedef struct MeshSeqCacheModifierData {
- ModifierData modifier;
+ ModifierData modifier;
- struct CacheFile *cache_file;
- struct CacheReader *reader;
- /** 1024 = FILE_MAX. */
- char object_path[1024];
+ struct CacheFile *cache_file;
+ struct CacheReader *reader;
+ /** 1024 = FILE_MAX. */
+ char object_path[1024];
- char read_flag;
- char _pad[7];
+ char read_flag;
+ char _pad[7];
} MeshSeqCacheModifierData;
/* MeshSeqCacheModifierData.read_flag */
enum {
- MOD_MESHSEQ_READ_VERT = (1 << 0),
- MOD_MESHSEQ_READ_POLY = (1 << 1),
- MOD_MESHSEQ_READ_UV = (1 << 2),
- MOD_MESHSEQ_READ_COLOR = (1 << 3),
+ MOD_MESHSEQ_READ_VERT = (1 << 0),
+ MOD_MESHSEQ_READ_POLY = (1 << 1),
+ MOD_MESHSEQ_READ_UV = (1 << 2),
+ MOD_MESHSEQ_READ_COLOR = (1 << 3),
};
typedef struct SDefBind {
- unsigned int *vert_inds;
- unsigned int numverts;
- int mode;
- float *vert_weights;
- float normal_dist;
- float influence;
+ unsigned int *vert_inds;
+ unsigned int numverts;
+ int mode;
+ float *vert_weights;
+ float normal_dist;
+ float influence;
} SDefBind;
typedef struct SDefVert {
- SDefBind *binds;
- unsigned int numbinds;
- char _pad[4];
+ SDefBind *binds;
+ unsigned int numbinds;
+ char _pad[4];
} SDefVert;
typedef struct SurfaceDeformModifierData {
- ModifierData modifier;
-
- struct Depsgraph *depsgraph;
- /** Bind target object. */
- struct Object *target;
- /** Vertex bind data. */
- SDefVert *verts;
- float falloff;
- unsigned int numverts, numpoly;
- int flags;
- float mat[4][4];
+ ModifierData modifier;
+
+ struct Depsgraph *depsgraph;
+ /** Bind target object. */
+ struct Object *target;
+ /** Vertex bind data. */
+ SDefVert *verts;
+ float falloff;
+ unsigned int numverts, numpoly;
+ int flags;
+ float mat[4][4];
} SurfaceDeformModifierData;
/* Surface Deform modifier flags */
enum {
- /* This indicates "do bind on next modifier evaluation" as well as "is bound". */
- MOD_SDEF_BIND = (1 << 0),
+ /* This indicates "do bind on next modifier evaluation" as well as "is bound". */
+ MOD_SDEF_BIND = (1 << 0),
- MOD_SDEF_USES_LOOPTRI = (1 << 1),
- MOD_SDEF_HAS_CONCAVE = (1 << 2),
+ MOD_SDEF_USES_LOOPTRI = (1 << 1),
+ MOD_SDEF_HAS_CONCAVE = (1 << 2),
};
/* Surface Deform vertex bind modes */
enum {
- MOD_SDEF_MODE_LOOPTRI = 0,
- MOD_SDEF_MODE_NGON = 1,
- MOD_SDEF_MODE_CENTROID = 2,
+ MOD_SDEF_MODE_LOOPTRI = 0,
+ MOD_SDEF_MODE_NGON = 1,
+ MOD_SDEF_MODE_CENTROID = 2,
};
typedef struct WeightedNormalModifierData {
- ModifierData modifier;
+ ModifierData modifier;
- /** MAX_VGROUP_NAME. */
- char defgrp_name[64];
- char mode, flag;
- short weight;
- float thresh;
+ /** MAX_VGROUP_NAME. */
+ char defgrp_name[64];
+ char mode, flag;
+ short weight;
+ float thresh;
} WeightedNormalModifierData;
/* Name/id of the generic PROP_INT cdlayer storing face weights. */
@@ -1930,19 +1928,19 @@ typedef struct WeightedNormalModifierData {
/* WeightedNormalModifierData.mode */
enum {
- MOD_WEIGHTEDNORMAL_MODE_FACE = 0,
- MOD_WEIGHTEDNORMAL_MODE_ANGLE = 1,
- MOD_WEIGHTEDNORMAL_MODE_FACE_ANGLE = 2,
+ MOD_WEIGHTEDNORMAL_MODE_FACE = 0,
+ MOD_WEIGHTEDNORMAL_MODE_ANGLE = 1,
+ MOD_WEIGHTEDNORMAL_MODE_FACE_ANGLE = 2,
};
/* WeightedNormalModifierData.flag */
enum {
- MOD_WEIGHTEDNORMAL_KEEP_SHARP = (1 << 0),
- MOD_WEIGHTEDNORMAL_INVERT_VGROUP = (1 << 1),
- MOD_WEIGHTEDNORMAL_FACE_INFLUENCE = (1 << 2),
+ MOD_WEIGHTEDNORMAL_KEEP_SHARP = (1 << 0),
+ MOD_WEIGHTEDNORMAL_INVERT_VGROUP = (1 << 1),
+ MOD_WEIGHTEDNORMAL_FACE_INFLUENCE = (1 << 2),
};
#define MOD_MESHSEQ_READ_ALL \
- (MOD_MESHSEQ_READ_VERT | MOD_MESHSEQ_READ_POLY | MOD_MESHSEQ_READ_UV | MOD_MESHSEQ_READ_COLOR)
+ (MOD_MESHSEQ_READ_VERT | MOD_MESHSEQ_READ_POLY | MOD_MESHSEQ_READ_UV | MOD_MESHSEQ_READ_COLOR)
-#endif /* __DNA_MODIFIER_TYPES_H__ */
+#endif /* __DNA_MODIFIER_TYPES_H__ */