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:
Diffstat (limited to 'source/blender/makesdna/DNA_modifier_types.h')
-rw-r--r--source/blender/makesdna/DNA_modifier_types.h47
1 files changed, 41 insertions, 6 deletions
diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h
index 99df51e9ec4..2c896e4893f 100644
--- a/source/blender/makesdna/DNA_modifier_types.h
+++ b/source/blender/makesdna/DNA_modifier_types.h
@@ -75,6 +75,7 @@ typedef enum ModifierType {
eModifierType_DynamicPaint = 40,
eModifierType_Remesh = 41,
eModifierType_Skin = 42,
+ eModifierType_LaplacianSmooth = 43,
NUM_MODIFIER_TYPES
} ModifierType;
@@ -348,7 +349,7 @@ typedef struct UVProjectModifierData {
int flags;
int num_projectors;
float aspectx, aspecty;
- float scalex, scaley;
+ float scalex, scaley;
char uvlayer_name[64]; /* MAX_CUSTOMDATA_LAYER_NAME */
int uvlayer_tmp, pad;
} UVProjectModifierData;
@@ -361,10 +362,30 @@ typedef struct UVProjectModifierData {
typedef struct DecimateModifierData {
ModifierData modifier;
- float percent;
- int faceCount;
+ float percent; /* (mode == MOD_DECIM_MODE_COLLAPSE) */
+ short iter; /* (mode == MOD_DECIM_MODE_UNSUBDIV) */
+ short pad;
+ float angle; /* (mode == MOD_DECIM_MODE_DISSOLVE) */
+
+ char defgrp_name[64]; /* MAX_VGROUP_NAME */
+ short flag, mode;
+
+ /* runtime only */
+ int face_count, pad2;
} DecimateModifierData;
+enum {
+ MOD_DECIM_FLAG_INVERT_VGROUP = (1 << 0),
+ MOD_DECIM_FLAG_TRIANGULATE = (1 << 1), /* for collapse only. dont convert tri pairs back to quads */
+ MOD_DECIM_FLAG_ALL_BOUNDARY_VERTS = (1 << 2) /* for dissolve only. collapse all verts between 2 faces */
+};
+
+enum {
+ MOD_DECIM_MODE_COLLAPSE,
+ MOD_DECIM_MODE_UNSUBDIV,
+ MOD_DECIM_MODE_DISSOLVE /* called planar in the UI */
+};
+
/* Smooth modifier flags */
#define MOD_SMOOTH_X (1<<1)
#define MOD_SMOOTH_Y (1<<2)
@@ -644,7 +665,8 @@ typedef struct ShrinkwrapModifierData {
float keepDist; /* distance offset to keep from mesh/projection point */
short shrinkType; /* shrink type projection */
short shrinkOpts; /* shrink options */
- char projAxis; /* axis to project over */
+ float projLimit; /* limit the projection ray cast */
+ char projAxis; /* axis to project over */
/*
* if using projection over vertex normal this controls the
@@ -653,7 +675,7 @@ typedef struct ShrinkwrapModifierData {
*/
char subsurfLevels;
- char pad[6];
+ char pad[2];
} ShrinkwrapModifierData;
@@ -683,7 +705,7 @@ typedef struct SimpleDeformModifierData {
struct Object *origin; /* object to control the origin of modifier space coordinates */
char vgroup_name[64]; /* optional vertexgroup name, MAX_VGROUP_NAME */
float factor; /* factors to control simple deforms */
- float limit[2]; /* lower and upper limit */
+ float limit[2]; /* lower and upper limit */
char mode; /* deform function */
char axis; /* lock axis (for taper and strech) */
@@ -1092,4 +1114,17 @@ enum {
MOD_SKIN_SMOOTH_SHADING = 1
};
+/* Smooth modifier flags */
+#define MOD_LAPLACIANSMOOTH_X (1<<1)
+#define MOD_LAPLACIANSMOOTH_Y (1<<2)
+#define MOD_LAPLACIANSMOOTH_Z (1<<3)
+#define MOD_LAPLACIANSMOOTH_VOLUME_PRESERVATION (1<<4)
+
+typedef struct LaplacianSmoothModifierData {
+ ModifierData modifier;
+ float lambda, lambda_border, pad1;
+ char defgrp_name[64]; /* MAX_VGROUP_NAME */
+ short flag, repeat;
+} LaplacianSmoothModifierData;
+
#endif