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>2013-06-10 00:28:08 +0400
committerCampbell Barton <ideasman42@gmail.com>2013-06-10 00:28:08 +0400
commiteabb30a2367808c163a90d658c5be586530098ec (patch)
treee3d1a20fad111127c3c20c3450b003553b171db5 /source/blender/blenkernel
parent28add50083204e99121c5290242652ccd3fcca9e (diff)
patch [#35631] Active element for Lattice
by Kevin Mackay (yakca) Was one of our TODO's from the wiki.
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r--source/blender/blenkernel/BKE_lattice.h1
-rw-r--r--source/blender/blenkernel/intern/lattice.c20
2 files changed, 21 insertions, 0 deletions
diff --git a/source/blender/blenkernel/BKE_lattice.h b/source/blender/blenkernel/BKE_lattice.h
index b195af18a8e..b0bf9513814 100644
--- a/source/blender/blenkernel/BKE_lattice.h
+++ b/source/blender/blenkernel/BKE_lattice.h
@@ -75,6 +75,7 @@ void BKE_lattice_vertexcos_apply(struct Object *ob, float (*vertexCos)[3]);
void BKE_lattice_modifiers_calc(struct Scene *scene, struct Object *ob);
struct MDeformVert *BKE_lattice_deform_verts_get(struct Object *lattice);
+struct BPoint *BKE_lattice_active_point_get(struct Lattice *lt);
void BKE_lattice_minmax(struct Lattice *lt, float min[3], float max[3]);
void BKE_lattice_center_median(struct Lattice *lt, float cent[3]);
diff --git a/source/blender/blenkernel/intern/lattice.c b/source/blender/blenkernel/intern/lattice.c
index dac6ba4a0f3..feb82a34708 100644
--- a/source/blender/blenkernel/intern/lattice.c
+++ b/source/blender/blenkernel/intern/lattice.c
@@ -168,6 +168,7 @@ void BKE_lattice_resize(Lattice *lt, int uNew, int vNew, int wNew, Object *ltOb)
lt->pntsv = vNew;
lt->pntsw = wNew;
+ lt->actbp = LT_ACTBP_NONE;
MEM_freeN(lt->def);
lt->def = MEM_callocN(lt->pntsu * lt->pntsv * lt->pntsw * sizeof(BPoint), "lattice bp");
@@ -192,6 +193,7 @@ Lattice *BKE_lattice_add(Main *bmain, const char *name)
lt->def = MEM_callocN(sizeof(BPoint), "lattvert"); /* temporary */
BKE_lattice_resize(lt, 2, 2, 2, NULL); /* creates a uniform lattice */
+ lt->actbp = LT_ACTBP_NONE;
return lt;
}
@@ -1012,6 +1014,24 @@ struct MDeformVert *BKE_lattice_deform_verts_get(struct Object *oblatt)
return lt->dvert;
}
+struct BPoint *BKE_lattice_active_point_get(Lattice *lt)
+{
+ BLI_assert(GS(lt->id.name) == ID_LT);
+
+ if (lt->editlatt) {
+ lt = lt->editlatt->latt;
+ }
+
+ BLI_assert(lt->actbp < lt->pntsu * lt->pntsv * lt->pntsw);
+
+ if ((lt->actbp != LT_ACTBP_NONE) && (lt->actbp < lt->pntsu * lt->pntsv * lt->pntsw)) {
+ return &lt->def[lt->actbp];
+ }
+ else {
+ return NULL;
+ }
+}
+
void BKE_lattice_center_median(struct Lattice *lt, float cent[3])
{
int i, numVerts;