adc47f32c9cdb9248551f9ba8ad0097546b29298
[blender.git] / source / blender / modifiers / intern / MOD_skin.c
1 /*
2 * $Id$
3 *
4 * ***** BEGIN GPL LICENSE BLOCK *****
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version 2
9 * of the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software  Foundation,
18 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19 *
20 * ***** END GPL LICENSE BLOCK *****
21 *
22 */
23
24 /** \file blender/modifiers/intern/MOD_skin.c
25  *  \ingroup modifiers
26  */
27
28
29 #include <stddef.h>
30
31 #include "BKE_cdderivedmesh.h"
32 #include "BKE_modifier.h"
33
34 #include "DNA_mesh_types.h"
35 #include "DNA_object_types.h"
36
37 #include "MOD_util.h"
38
39 static void initData(ModifierData *md)
40 {
41         SkinModifierData *smd = (SkinModifierData*)md;
42
43         smd->threshold = 0;
44         smd->subdiv = 1;
45         smd->flag = MOD_SKIN_DRAW_NODES;
46 }
47
48 static void copyData(ModifierData *md, ModifierData *target)
49 {
50         SkinModifierData *smd = (SkinModifierData*) md;
51         SkinModifierData *tsmd = (SkinModifierData*) target;
52
53         tsmd->threshold = smd->threshold;
54         tsmd->subdiv = smd->subdiv;
55         tsmd->flag = smd->flag;
56 }
57
58 static DerivedMesh *applyModifier(ModifierData *md, Object *ob, DerivedMesh *dm,
59                                                    int useRenderParams, int isFinalCalc)
60 {
61         return dm;
62 }
63
64
65 ModifierTypeInfo modifierType_Skin = {
66         /* name */              "Skin",
67         /* structName */        "SkinModifierData",
68         /* structSize */        sizeof(SkinModifierData),
69         /* type */              eModifierTypeType_Constructive,
70         /* flags */             eModifierTypeFlag_AcceptsMesh,
71
72         /* copyData */          copyData,
73         /* deformVerts */       NULL,
74         /* deformMatrices */    NULL,
75         /* deformVertsEM */     NULL,
76         /* deformMatricesEM */  NULL,
77         /* applyModifier */     applyModifier,
78         /* applyModifierEM */   NULL,
79         /* initData */          initData,
80         /* requiredDataMask */  NULL,
81         /* freeData */          NULL,
82         /* isDisabled */        NULL,
83         /* updateDepgraph */    NULL,
84         /* dependsOnTime */     NULL,
85         /* dependsOnNormals */  NULL,
86         /* foreachObjectLink */ NULL,
87         /* foreachIDLink */     NULL,
88 };