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:
authorNicholas Bishop <nicholasbishop@gmail.com>2012-05-22 19:29:01 +0400
committerNicholas Bishop <nicholasbishop@gmail.com>2012-05-22 19:29:01 +0400
commit8801330c18b063e341e8263131c91695cd1b7bdf (patch)
treec20e9b923d0c53a7327632c7290e211cffbb97ce /source/blender/makesdna/DNA_modifier_types.h
parentf7b116e0bdedf68631cbc20eb99e2fb22b4325fa (diff)
Add skin modifier: DNA, RNA, UI, and MOD_skin.c implementation.
Skin modifier documentation: http://wiki.blender.org/index.php/User:Nicholasbishop/SkinModifier Implementation based in part off the paper "B-Mesh: A Fast Modeling System for Base Meshes of 3D Articulated Shapes" (Zhongping Ji, Ligang Liu, Yigang Wang) Note that to avoid confusion with Blender's BMesh data structure, this tool is renamed as the Skin modifier. The B-Mesh paper is current available here: http://www.math.zju.edu.cn/ligangliu/CAGD/Projects/BMesh/ The main missing features in this code compared to the paper are: * No mesh evolution. The paper suggests iteratively subsurfing the skin output and adapting the output to better conform with the spheres of influence surrounding each vertex. * No mesh fairing. The paper suggests re-aligning output edges to follow principal mesh curvatures. * No auxiliary balls. These would serve to influence mesh evolution, which as noted above is not implemented. The code also adds some features not present in the paper: * Loops in the input edge graph. * Concave surfaces around branch nodes. The paper does not discuss how to handle non-convex regions; this code adds a number of cleanup operations to handle many (though not all) of these cases.
Diffstat (limited to 'source/blender/makesdna/DNA_modifier_types.h')
-rw-r--r--source/blender/makesdna/DNA_modifier_types.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h
index 971ce613edc..a5a540ff6b4 100644
--- a/source/blender/makesdna/DNA_modifier_types.h
+++ b/source/blender/makesdna/DNA_modifier_types.h
@@ -77,6 +77,7 @@ typedef enum ModifierType {
eModifierType_Ocean,
eModifierType_DynamicPaint,
eModifierType_Remesh,
+ eModifierType_Skin,
NUM_MODIFIER_TYPES
} ModifierType;
@@ -1065,4 +1066,30 @@ typedef struct RemeshModifierData {
char pad;
} RemeshModifierData;
+/* Skin modifier */
+
+typedef struct SkinModifierData {
+ ModifierData modifier;
+
+ float branch_smoothing;
+
+ char flag;
+
+ char symmetry_axes;
+
+ char pad[2];
+} SkinModifierData;
+
+/* SkinModifierData.symmetry_axes */
+enum {
+ MOD_SKIN_SYMM_X = 1,
+ MOD_SKIN_SYMM_Y = 2,
+ MOD_SKIN_SYMM_Z = 4,
+};
+
+/* SkinModifierData.flag */
+enum {
+ MOD_SKIN_SMOOTH_SHADING = 1
+};
+
#endif