Skip to content

Instantly share code, notes, and snippets.

@thebusytypist
Last active August 29, 2015 14:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save thebusytypist/a2f950fc26ee36957cdd to your computer and use it in GitHub Desktop.
Save thebusytypist/a2f950fc26ee36957cdd to your computer and use it in GitHub Desktop.
From 011dec2b84f5c9b61a4b5ef8bddf1ed0b6e891f2 Mon Sep 17 00:00:00 2001
From: thebusytypist <ounanding@gmail.com>
Date: Mon, 3 Aug 2015 12:00:05 +0800
Subject: [PATCH 1/6] Add skeleton code for modifier tetrahedron; add
definition of TetrahedronModifierData; include tetrahedron modifier in build
system.
---
source/blender/makesdna/DNA_modifier_types.h | 5 ++
source/blender/modifiers/CMakeLists.txt | 1 +
source/blender/modifiers/intern/MOD_tetrahedron.c | 81 +++++++++++++++++++++++
3 files changed, 87 insertions(+)
create mode 100644 source/blender/modifiers/intern/MOD_tetrahedron.c
diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h
index 1fc66b9..75ec37e 100644
--- a/source/blender/makesdna/DNA_modifier_types.h
+++ b/source/blender/makesdna/DNA_modifier_types.h
@@ -1241,6 +1241,11 @@ enum {
MOD_SKIN_SMOOTH_SHADING = 1,
};
+/* Tetrahedron modifier */
+typedef struct TetrahedronModifierData {
+ ModifierData modifier;
+} TetrahedronModifierData;
+
/* Triangulate modifier */
typedef struct TriangulateModifierData {
ModifierData modifier;
diff --git a/source/blender/modifiers/CMakeLists.txt b/source/blender/modifiers/CMakeLists.txt
index fde0c77..5b543fd 100644
--- a/source/blender/modifiers/CMakeLists.txt
+++ b/source/blender/modifiers/CMakeLists.txt
@@ -91,6 +91,7 @@ set(SRC
intern/MOD_solidify.c
intern/MOD_subsurf.c
intern/MOD_surface.c
+ intern/MOD_tetrahedron.c
intern/MOD_triangulate.c
intern/MOD_util.c
intern/MOD_uvwarp.c
diff --git a/source/blender/modifiers/intern/MOD_tetrahedron.c b/source/blender/modifiers/intern/MOD_tetrahedron.c
new file mode 100644
index 0000000..76b3768
--- /dev/null
+++ b/source/blender/modifiers/intern/MOD_tetrahedron.c
@@ -0,0 +1,81 @@
+#include "MEM_guardedalloc.h"
+
+#include "BLI_math.h"
+#include "BLI_utildefines.h"
+
+#include "DNA_curve_types.h"
+#include "DNA_meshdata_types.h"
+#include "DNA_object_types.h"
+#include "DNA_scene_types.h"
+
+#include "BKE_cdderivedmesh.h"
+#include "BKE_displist.h"
+#include "BKE_curve.h"
+#include "BKE_modifier.h"
+
+#include "MOD_util.h"
+
+#include "depsgraph_private.h"
+
+static void initData(ModifierData *md)
+{
+}
+
+static void copyData(ModifierData *md, ModifierData *target)
+{
+ modifier_copyData_generic(md, target);
+}
+
+static void foreachObjectLink(
+ ModifierData *md, Object *ob,
+ void (*walk)(void *userData, Object *ob, Object **obpoin),
+ void *userData)
+{
+}
+
+static void updateDepsgraph(ModifierData *md,
+ struct Main *UNUSED(bmain),
+ struct Scene *scene,
+ Object *UNUSED(ob),
+ struct DepsNodeHandle *node)
+{
+}
+
+static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
+ DerivedMesh *dm,
+ ModifierApplyFlag flag)
+{
+ return NULL;
+}
+
+
+ModifierTypeInfo modifierType_Tetrahedron = {
+ /* name */ "Tetrahedron",
+ /* structName */ "TetrahedronModifierData",
+ /* structSize */ sizeof(TetrahedronModifierData),
+ /* type */ eModifierTypeType_Constructive,
+ /* flags */ eModifierTypeFlag_AcceptsMesh |
+ eModifierTypeFlag_SupportsMapping |
+ eModifierTypeFlag_SupportsEditmode |
+ eModifierTypeFlag_EnableInEditmode |
+ eModifierTypeFlag_AcceptsCVs,
+
+ /* copyData */ copyData,
+ /* deformVerts */ NULL,
+ /* deformMatrices */ NULL,
+ /* deformVertsEM */ NULL,
+ /* deformMatricesEM */ NULL,
+ /* applyModifier */ applyModifier,
+ /* applyModifierEM */ NULL,
+ /* initData */ initData,
+ /* requiredDataMask */ NULL,
+ /* freeData */ NULL,
+ /* isDisabled */ NULL,
+ /* updateDepgraph */ NULL,
+ /* updateDepsgraph */ updateDepsgraph,
+ /* dependsOnTime */ NULL,
+ /* dependsOnNormals */ NULL,
+ /* foreachObjectLink */ foreachObjectLink,
+ /* foreachIDLink */ NULL,
+ /* foreachTexLink */ NULL,
+};
--
1.9.5.msysgit.1
From af11b31ecf7e10c1fd543ceb3d562c05fc6c1e4a Mon Sep 17 00:00:00 2001
From: thebusytypist <ounanding@gmail.com>
Date: Mon, 3 Aug 2015 12:07:05 +0800
Subject: [PATCH 2/6] Register the tetrahedron modifier to the system.
---
source/blender/makesdna/DNA_modifier_types.h | 1 +
source/blender/modifiers/MOD_modifiertypes.h | 1 +
source/blender/modifiers/intern/MOD_util.c | 1 +
3 files changed, 3 insertions(+)
diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h
index 75ec37e..252758e 100644
--- a/source/blender/makesdna/DNA_modifier_types.h
+++ b/source/blender/makesdna/DNA_modifier_types.h
@@ -85,6 +85,7 @@ typedef enum ModifierType {
eModifierType_DataTransfer = 49,
eModifierType_NormalEdit = 50,
eModifierType_CorrectiveSmooth = 51,
+ eModifierType_Tetrahedron = 52,
NUM_MODIFIER_TYPES
} ModifierType;
diff --git a/source/blender/modifiers/MOD_modifiertypes.h b/source/blender/modifiers/MOD_modifiertypes.h
index a5d9675..10b6df2 100644
--- a/source/blender/modifiers/MOD_modifiertypes.h
+++ b/source/blender/modifiers/MOD_modifiertypes.h
@@ -76,6 +76,7 @@ extern ModifierTypeInfo modifierType_DynamicPaint;
extern ModifierTypeInfo modifierType_Remesh;
extern ModifierTypeInfo modifierType_Skin;
extern ModifierTypeInfo modifierType_LaplacianSmooth;
+extern ModifierTypeInfo modifierType_Tetrahedron;
extern ModifierTypeInfo modifierType_Triangulate;
extern ModifierTypeInfo modifierType_UVWarp;
extern ModifierTypeInfo modifierType_MeshCache;
diff --git a/source/blender/modifiers/intern/MOD_util.c b/source/blender/modifiers/intern/MOD_util.c
index be6f7af..e4b930e 100644
--- a/source/blender/modifiers/intern/MOD_util.c
+++ b/source/blender/modifiers/intern/MOD_util.c
@@ -307,5 +307,6 @@ void modifier_type_init(ModifierTypeInfo *types[])
INIT_TYPE(DataTransfer);
INIT_TYPE(NormalEdit);
INIT_TYPE(CorrectiveSmooth);
+ INIT_TYPE(Tetrahedron);
#undef INIT_TYPE
}
--
1.9.5.msysgit.1
From 5cce373ea31875c06238e1f47b3fcd752579966e Mon Sep 17 00:00:00 2001
From: thebusytypist <ounanding@gmail.com>
Date: Mon, 3 Aug 2015 15:25:20 +0800
Subject: [PATCH 3/6] Expose tetrahedron modifier to UI through RNA interface.
---
release/scripts/addons | 2 +-
release/scripts/addons_contrib | 2 +-
release/scripts/startup/bl_ui/properties_data_modifier.py | 3 +++
source/blender/editors/space_outliner/outliner_draw.c | 2 ++
source/blender/makesrna/RNA_access.h | 1 +
source/blender/makesrna/intern/rna_modifier.c | 15 +++++++++++++++
6 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/release/scripts/addons b/release/scripts/addons
index 45b1e42..0c5b35f 160000
--- a/release/scripts/addons
+++ b/release/scripts/addons
@@ -1 +1 @@
-Subproject commit 45b1e42fffd550b4250f953a1933892c913b7182
+Subproject commit 0c5b35fda451b6607d348abd0cf199217844004f
diff --git a/release/scripts/addons_contrib b/release/scripts/addons_contrib
index 5b36ccb..a71b3a5 160000
--- a/release/scripts/addons_contrib
+++ b/release/scripts/addons_contrib
@@ -1 +1 @@
-Subproject commit 5b36ccbe7d5f830b541540b7befad3b93af51ee8
+Subproject commit a71b3a51be57cc1f76e217e267d117a25d98147a
diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py b/release/scripts/startup/bl_ui/properties_data_modifier.py
index 381c9ad..16d8409 100644
--- a/release/scripts/startup/bl_ui/properties_data_modifier.py
+++ b/release/scripts/startup/bl_ui/properties_data_modifier.py
@@ -1172,6 +1172,9 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
col.prop(md, "use_y_symmetry")
col.prop(md, "use_z_symmetry")
+ def TETRAHEDRON(self, layout, ob, md):
+ layout.label(text="Comming soon.")
+
def TRIANGULATE(self, layout, ob, md):
row = layout.row()
diff --git a/source/blender/editors/space_outliner/outliner_draw.c b/source/blender/editors/space_outliner/outliner_draw.c
index 420b73c..548899b 100644
--- a/source/blender/editors/space_outliner/outliner_draw.c
+++ b/source/blender/editors/space_outliner/outliner_draw.c
@@ -1160,6 +1160,8 @@ static void tselem_draw_icon(uiBlock *block, int xmax, float x, float y, TreeSto
UI_icon_draw(x, y, ICON_MOD_SKIN); break;
case eModifierType_Triangulate:
UI_icon_draw(x, y, ICON_MOD_TRIANGULATE); break;
+ case eModifierType_Tetrahedron:
+ UI_icon_draw(x, y, ICON_MOD_BUILD); break;
case eModifierType_MeshCache:
UI_icon_draw(x, y, ICON_MOD_MESHDEFORM); break; /* XXX, needs own icon */
case eModifierType_Wireframe:
diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h
index 965d1d9..0d5c6b6 100644
--- a/source/blender/makesrna/RNA_access.h
+++ b/source/blender/makesrna/RNA_access.h
@@ -577,6 +577,7 @@ extern StructRNA RNA_SubsurfModifier;
extern StructRNA RNA_SunLamp;
extern StructRNA RNA_SurfaceCurve;
extern StructRNA RNA_SurfaceModifier;
+extern StructRNA RNA_TetrahedronModifier;
extern StructRNA RNA_TexMapping;
extern StructRNA RNA_Text;
extern StructRNA RNA_TextBox;
diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c
index 087db2b..5df7214 100644
--- a/source/blender/makesrna/intern/rna_modifier.c
+++ b/source/blender/makesrna/intern/rna_modifier.c
@@ -87,6 +87,7 @@ EnumPropertyItem modifier_type_items[] = {
{eModifierType_Skin, "SKIN", ICON_MOD_SKIN, "Skin", ""},
{eModifierType_Solidify, "SOLIDIFY", ICON_MOD_SOLIDIFY, "Solidify", ""},
{eModifierType_Subsurf, "SUBSURF", ICON_MOD_SUBSURF, "Subdivision Surface", ""},
+ {eModifierType_Tetrahedron, "TETRAHEDRON", ICON_MOD_BUILD, "Tetrahedron", ""},
{eModifierType_Triangulate, "TRIANGULATE", ICON_MOD_TRIANGULATE, "Triangulate", ""},
{eModifierType_Wireframe, "WIREFRAME", ICON_MOD_WIREFRAME, "Wireframe", "Generate a wireframe on the edges of a mesh"},
{0, "", 0, N_("Deform"), ""},
@@ -364,6 +365,8 @@ static StructRNA *rna_Modifier_refine(struct PointerRNA *ptr)
return &RNA_SkinModifier;
case eModifierType_LaplacianSmooth:
return &RNA_LaplacianSmoothModifier;
+ case eModifierType_Tetrahedron:
+ return &RNA_TetrahedronModifier;
case eModifierType_Triangulate:
return &RNA_TriangulateModifier;
case eModifierType_UVWarp:
@@ -4560,6 +4563,17 @@ static void rna_def_modifier_normaledit(BlenderRNA *brna)
RNA_def_property_update(prop, 0, "rna_Modifier_update");
}
+static void rna_def_modifier_tetrahedron(BlenderRNA *brna)
+{
+ StructRNA *srna;
+ PropertyRNA *prop;
+
+ srna = RNA_def_struct(brna, "TetrahedronModifier", "Modifier");
+ RNA_def_struct_ui_text(srna, "Tetrahedron Modifier", "Generate Tetrahedron");
+ RNA_def_struct_sdna(srna, "TetrahedronModifierData");
+ RNA_def_struct_ui_icon(srna, ICON_MOD_BUILD);
+}
+
void RNA_def_modifier(BlenderRNA *brna)
{
StructRNA *srna;
@@ -4676,6 +4690,7 @@ void RNA_def_modifier(BlenderRNA *brna)
rna_def_modifier_wireframe(brna);
rna_def_modifier_datatransfer(brna);
rna_def_modifier_normaledit(brna);
+ rna_def_modifier_tetrahedron(brna);
}
#endif
--
1.9.5.msysgit.1
From cd40a0fa30e5a987d5374206494c829de8c804f1 Mon Sep 17 00:00:00 2001
From: thebusytypist <ounanding@gmail.com>
Date: Tue, 4 Aug 2015 10:46:11 +0800
Subject: [PATCH 4/6] Implement basic tetrahedron modifier.
---
source/blender/modifiers/intern/MOD_tetrahedron.c | 39 +++++++++++++++++++++--
1 file changed, 37 insertions(+), 2 deletions(-)
diff --git a/source/blender/modifiers/intern/MOD_tetrahedron.c b/source/blender/modifiers/intern/MOD_tetrahedron.c
index 76b3768..d6b23bc 100644
--- a/source/blender/modifiers/intern/MOD_tetrahedron.c
+++ b/source/blender/modifiers/intern/MOD_tetrahedron.c
@@ -3,7 +3,6 @@
#include "BLI_math.h"
#include "BLI_utildefines.h"
-#include "DNA_curve_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
@@ -19,6 +18,7 @@
static void initData(ModifierData *md)
{
+ TetrahedronModifierData *tmd = (TetrahedronModifierData *)md;
}
static void copyData(ModifierData *md, ModifierData *target)
@@ -45,7 +45,42 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
DerivedMesh *dm,
ModifierApplyFlag flag)
{
- return NULL;
+ DerivedMesh *result = NULL;
+ float rsqrt2 = -1.0f / sqrtf(2.0f);
+ float verts[4][3] = {
+ {1.0f, 0.0f, -rsqrt2},
+ {-1.0f, 0.0f, -rsqrt2},
+ {0.0f, 1.0f, rsqrt2},
+ {0.0f, -1.0f, rsqrt2}
+ };
+
+ result = CDDM_new(4, 6, 0, 0, 0);
+ copy_v3_v3(CDDM_get_verts(result)[0].co, verts[0]);
+ copy_v3_v3(CDDM_get_verts(result)[1].co, verts[1]);
+ copy_v3_v3(CDDM_get_verts(result)[2].co, verts[2]);
+ copy_v3_v3(CDDM_get_verts(result)[3].co, verts[3]);
+
+ CDDM_get_edges(result)[0].v1 = 0;
+ CDDM_get_edges(result)[0].v2 = 1;
+
+ CDDM_get_edges(result)[1].v1 = 1;
+ CDDM_get_edges(result)[1].v2 = 2;
+
+ CDDM_get_edges(result)[2].v1 = 2;
+ CDDM_get_edges(result)[2].v2 = 3;
+
+ CDDM_get_edges(result)[3].v1 = 3;
+ CDDM_get_edges(result)[3].v2 = 0;
+
+ CDDM_get_edges(result)[4].v1 = 3;
+ CDDM_get_edges(result)[4].v2 = 1;
+
+ CDDM_get_edges(result)[5].v1 = 2;
+ CDDM_get_edges(result)[5].v2 = 0;
+
+ CDDM_calc_edges(result);
+
+ return result;
}
--
1.9.5.msysgit.1
From 9d54743f448707a356e777e60ef28b8df5b657e0 Mon Sep 17 00:00:00 2001
From: thebusytypist <ounanding@gmail.com>
Date: Tue, 4 Aug 2015 15:25:19 +0800
Subject: [PATCH 5/6] Support parameter in tetrahedron modifier.
---
release/datafiles/locale | 2 +-
release/scripts/startup/bl_ui/properties_data_modifier.py | 2 +-
source/blender/makesdna/DNA_modifier_types.h | 4 ++++
source/blender/makesrna/intern/rna_modifier.c | 7 +++++++
source/blender/modifiers/intern/MOD_tetrahedron.c | 13 ++++++++-----
5 files changed, 21 insertions(+), 7 deletions(-)
diff --git a/release/datafiles/locale b/release/datafiles/locale
index da05fa0..06bedbb 160000
--- a/release/datafiles/locale
+++ b/release/datafiles/locale
@@ -1 +1 @@
-Subproject commit da05fa08d4e80a634a91a82f211589587f9169bc
+Subproject commit 06bedbb3d37d4369748c6af4a40db549efe92065
diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py b/release/scripts/startup/bl_ui/properties_data_modifier.py
index 16d8409..6efd899 100644
--- a/release/scripts/startup/bl_ui/properties_data_modifier.py
+++ b/release/scripts/startup/bl_ui/properties_data_modifier.py
@@ -1173,7 +1173,7 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
col.prop(md, "use_z_symmetry")
def TETRAHEDRON(self, layout, ob, md):
- layout.label(text="Comming soon.")
+ layout.prop(md, "scale")
def TRIANGULATE(self, layout, ob, md):
row = layout.row()
diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h
index 252758e..4f98f62 100644
--- a/source/blender/makesdna/DNA_modifier_types.h
+++ b/source/blender/makesdna/DNA_modifier_types.h
@@ -1245,6 +1245,10 @@ enum {
/* Tetrahedron modifier */
typedef struct TetrahedronModifierData {
ModifierData modifier;
+
+ float scale;
+
+ int pad;
} TetrahedronModifierData;
/* Triangulate modifier */
diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c
index 5df7214..d828a7b 100644
--- a/source/blender/makesrna/intern/rna_modifier.c
+++ b/source/blender/makesrna/intern/rna_modifier.c
@@ -4572,6 +4572,13 @@ static void rna_def_modifier_tetrahedron(BlenderRNA *brna)
RNA_def_struct_ui_text(srna, "Tetrahedron Modifier", "Generate Tetrahedron");
RNA_def_struct_sdna(srna, "TetrahedronModifierData");
RNA_def_struct_ui_icon(srna, ICON_MOD_BUILD);
+
+ prop = RNA_def_property(srna, "scale", PROP_FLOAT, PROP_FACTOR);
+ RNA_def_property_float_sdna(prop, NULL, "scale");
+ RNA_def_property_range(prop, 0.0f, 100.0f);
+ RNA_def_property_ui_range(prop, 0.0f, 100.0f, 1.0f, 2);
+ RNA_def_property_ui_text(prop, "Scale", "Scale of the tetrahedron");
+ RNA_def_property_update(prop, 0, "rna_Modifier_update");
}
void RNA_def_modifier(BlenderRNA *brna)
diff --git a/source/blender/modifiers/intern/MOD_tetrahedron.c b/source/blender/modifiers/intern/MOD_tetrahedron.c
index d6b23bc..f8d8263 100644
--- a/source/blender/modifiers/intern/MOD_tetrahedron.c
+++ b/source/blender/modifiers/intern/MOD_tetrahedron.c
@@ -19,6 +19,7 @@
static void initData(ModifierData *md)
{
TetrahedronModifierData *tmd = (TetrahedronModifierData *)md;
+ tmd->scale = 1.0f;
}
static void copyData(ModifierData *md, ModifierData *target)
@@ -45,13 +46,15 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
DerivedMesh *dm,
ModifierApplyFlag flag)
{
+ TetrahedronModifierData *tmd = (TetrahedronModifierData *)md;
DerivedMesh *result = NULL;
- float rsqrt2 = -1.0f / sqrtf(2.0f);
+ float scale = tmd->scale;
+ float rsqrt2 = -1.0f / sqrtf(2.0f) * scale;
float verts[4][3] = {
- {1.0f, 0.0f, -rsqrt2},
- {-1.0f, 0.0f, -rsqrt2},
- {0.0f, 1.0f, rsqrt2},
- {0.0f, -1.0f, rsqrt2}
+ {scale, 0.0f, -rsqrt2},
+ {-scale, 0.0f, -rsqrt2},
+ {0.0f, scale, rsqrt2},
+ {0.0f, -scale, rsqrt2}
};
result = CDDM_new(4, 6, 0, 0, 0);
--
1.9.5.msysgit.1
From 56c7bf8844884c88961051736638a22854aaa190 Mon Sep 17 00:00:00 2001
From: thebusytypist <ounanding@gmail.com>
Date: Mon, 10 Aug 2015 09:36:41 +0800
Subject: [PATCH 6/6] Construct polys and loops to make solid tetrahedron.
---
source/blender/modifiers/intern/MOD_tetrahedron.c | 47 ++++++++++++++---------
1 file changed, 29 insertions(+), 18 deletions(-)
diff --git a/source/blender/modifiers/intern/MOD_tetrahedron.c b/source/blender/modifiers/intern/MOD_tetrahedron.c
index f8d8263..f11fd6f 100644
--- a/source/blender/modifiers/intern/MOD_tetrahedron.c
+++ b/source/blender/modifiers/intern/MOD_tetrahedron.c
@@ -56,30 +56,41 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
{0.0f, scale, rsqrt2},
{0.0f, -scale, rsqrt2}
};
+ MLoop *loops = NULL;
+ MPoly *polys = NULL;
- result = CDDM_new(4, 6, 0, 0, 0);
+ result = CDDM_new(4, 0, 0, 3 * 4, 4);
copy_v3_v3(CDDM_get_verts(result)[0].co, verts[0]);
copy_v3_v3(CDDM_get_verts(result)[1].co, verts[1]);
copy_v3_v3(CDDM_get_verts(result)[2].co, verts[2]);
copy_v3_v3(CDDM_get_verts(result)[3].co, verts[3]);
- CDDM_get_edges(result)[0].v1 = 0;
- CDDM_get_edges(result)[0].v2 = 1;
-
- CDDM_get_edges(result)[1].v1 = 1;
- CDDM_get_edges(result)[1].v2 = 2;
-
- CDDM_get_edges(result)[2].v1 = 2;
- CDDM_get_edges(result)[2].v2 = 3;
-
- CDDM_get_edges(result)[3].v1 = 3;
- CDDM_get_edges(result)[3].v2 = 0;
-
- CDDM_get_edges(result)[4].v1 = 3;
- CDDM_get_edges(result)[4].v2 = 1;
-
- CDDM_get_edges(result)[5].v1 = 2;
- CDDM_get_edges(result)[5].v2 = 0;
+ loops = CDDM_get_loops(result);
+ polys = CDDM_get_polys(result);
+
+ polys[0].totloop = 3;
+ polys[0].loopstart = 0;
+ loops[0].v = 0;
+ loops[1].v = 3;
+ loops[2].v = 2;
+
+ polys[1].totloop = 3;
+ polys[1].loopstart = 3;
+ loops[3].v = 1;
+ loops[4].v = 2;
+ loops[5].v = 3;
+
+ polys[2].totloop = 3;
+ polys[2].loopstart = 6;
+ loops[6].v = 2;
+ loops[7].v = 1;
+ loops[8].v = 0;
+
+ polys[3].totloop = 3;
+ polys[3].loopstart = 9;
+ loops[9].v = 0;
+ loops[10].v = 1;
+ loops[11].v = 3;
CDDM_calc_edges(result);
--
1.9.5.msysgit.1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment