Commit: c82ae1a5d8cb24f9ad9b334fd43f799b8e87804f
Author: Lukas Tönne
Date:   Fri Nov 28 14:21:11 2014 +0100
Branches: hair_immediate_fixes
https://developer.blender.org/rBc82ae1a5d8cb24f9ad9b334fd43f799b8e87804f

Removed deprecated code.

===================================================================

M       source/blender/blenkernel/CMakeLists.txt
M       source/blender/blenkernel/intern/edithair.c
D       source/blender/blenkernel/intern/edithair_inline.h
D       source/blender/blenkernel/intern/edithair_particles.c

===================================================================

diff --git a/source/blender/blenkernel/CMakeLists.txt 
b/source/blender/blenkernel/CMakeLists.txt
index 2bdb1c6..2cf6f49 100644
--- a/source/blender/blenkernel/CMakeLists.txt
+++ b/source/blender/blenkernel/CMakeLists.txt
@@ -91,9 +91,7 @@ set(SRC
        intern/displist.c
        intern/dynamicpaint.c
        intern/editderivedmesh.c
-       intern/edithair_inline.h
        intern/edithair.c
-       intern/edithair_particles.c
        intern/editmesh.c
        intern/editmesh_bvh.c
        intern/effect.c
diff --git a/source/blender/blenkernel/intern/edithair.c 
b/source/blender/blenkernel/intern/edithair.c
index 30d1a11..67a8fc0 100644
--- a/source/blender/blenkernel/intern/edithair.c
+++ b/source/blender/blenkernel/intern/edithair.c
@@ -35,9 +35,17 @@
 #include "BLI_mempool.h"
 
 #include "DNA_customdata_types.h"
+#include "DNA_modifier_types.h"
+#include "DNA_object_types.h"
+#include "DNA_particle_types.h"
 
+#include "BKE_bvhutils.h"
 #include "BKE_customdata.h"
 #include "BKE_edithair.h"
+#include "BKE_DerivedMesh.h"
+#include "BKE_particle.h"
+
+#include "intern/bmesh_strands_conv.h"
 
 BMEditStrands *BKE_editstrands_create(BMesh *bm)
 {
@@ -73,221 +81,42 @@ void BKE_editstrands_free(BMEditStrands *em)
                BM_mesh_free(em->bm);
 }
 
-#if 0
-static const int chunksize_default_totcurve = 512;
-static const int allocsize_default_totcurve = 512;
-
-static const int chunksize_default_totvert = 1024;
-static const int allocsize_default_totvert = 1024;
-
-static void edithair_mempool_init(HairEditData *hedit)
-{
-       hedit->cpool = BLI_mempool_create(sizeof(HairEditCurve), 
allocsize_default_totcurve,
-                                         chunksize_default_totcurve, 
BLI_MEMPOOL_ALLOW_ITER);
-       hedit->vpool = BLI_mempool_create(sizeof(HairEditVertex), 
allocsize_default_totvert,
-                                         chunksize_default_totvert, 
BLI_MEMPOOL_ALLOW_ITER);
-}
+/* === particle conversion === */
 
-HairEditData *BKE_edithair_create(void)
+BMesh *BKE_particles_to_bmesh(Object *ob, ParticleSystem *psys)
 {
-       HairEditData *hedit = MEM_callocN(sizeof(HairEditData), "hair edit 
data");
-       
-       edithair_mempool_init(hedit);
+       ParticleSystemModifierData *psmd = psys_get_modifier(ob, psys);
        
-       CustomData_reset(&hedit->cdata);
-       CustomData_reset(&hedit->vdata);
-       
-       return hedit;
-}
-
-void BKE_edithair_data_free(HairEditData *hedit)
-{
-       if (CustomData_bmesh_has_free(&(hedit->cdata))) {
-               HairEditCurve *curve;
-               HairEditIter iter;
-               HAIREDIT_ITER(curve, &iter, hedit, HAIREDIT_CURVES_OF_MESH) {
-                       CustomData_bmesh_free_block(&hedit->cdata, 
&curve->data);
-               }
-       }
-       
-       if (CustomData_bmesh_has_free(&(hedit->vdata))) {
-               HairEditVertex *vert;
-               HairEditIter iter;
-               HAIREDIT_ITER(vert, &iter, hedit, HAIREDIT_VERTS_OF_MESH) {
-                       CustomData_bmesh_free_block(&hedit->vdata, &vert->data);
-               }
-       }
-       
-       /* Free custom data pools, This should probably go in CustomData_free? 
*/
-       if (hedit->cdata.totlayer) BLI_mempool_destroy(hedit->cdata.pool);
-       if (hedit->vdata.totlayer) BLI_mempool_destroy(hedit->vdata.pool);
-       
-       /* free custom data */
-       CustomData_free(&hedit->cdata, 0);
-       CustomData_free(&hedit->vdata, 0);
-
-       /* destroy element pools */
-       BLI_mempool_destroy(hedit->cpool);
-       BLI_mempool_destroy(hedit->vpool);
-}
-
-void BKE_edithair_clear(HairEditData *hedit)
-{
-       /* free old data */
-       BKE_edithair_data_free(hedit);
-       memset(hedit, 0, sizeof(HairEditData));
+       const BMAllocTemplate allocsize = BMALLOC_TEMPLATE_FROM_PSYS(psys);
+       BMesh *bm;
 
-       /* allocate the memory pools for the hair elements */
-       edithair_mempool_init(hedit);
+       bm = BM_mesh_create(&allocsize);
 
-       CustomData_reset(&hedit->cdata);
-       CustomData_reset(&hedit->vdata);
-}
-
-void BKE_edithair_free(HairEditData *hedit)
-{
-       BKE_edithair_data_free(hedit);
-       
-       MEM_freeN(hedit);
-}
-
-void BKE_edithair_get_min_max(HairEditData *hedit, float r_min[3], float 
r_max[3])
-{
-       if (hedit->totverts) {
-               HairEditVertex *vert;
-               HairEditIter iter;
-               
-               INIT_MINMAX(r_min, r_max);
+       if (psmd && psmd->dm) {
+               DM_ensure_tessface(psmd->dm);
                
-               HAIREDIT_ITER(vert, &iter, hedit, HAIREDIT_VERTS_OF_MESH) {
-                       minmax_v3v3_v3(r_min, r_max, vert->co);
-               }
-       }
-       else {
-               zero_v3(r_min);
-               zero_v3(r_max);
-       }
-}
-
-HairEditCurve *BKE_edithair_curve_create(HairEditData *hedit, HairEditCurve 
*example)
-{
-       HairEditCurve *c = NULL;
-
-       c = BLI_mempool_alloc(hedit->cpool);
-
-       /* --- assign all members --- */
-       c->data = NULL;
-
-       c->v = NULL;
-       /* --- done --- */
-
-       hedit->totcurves++;
-
-       if (example) {
-               CustomData_bmesh_copy_data(&hedit->cdata, &hedit->cdata, 
example->data, &c->data);
-       }
-       else {
-               CustomData_bmesh_set_default(&hedit->cdata, &c->data);
-       }
-
-       return c;
-}
-
-int BKE_edithair_curve_vertex_count(HairEditData *UNUSED(hedit), HairEditCurve 
*c)
-{
-       const HairEditVertex *v;
-       int count = 0;
-       for (v = c->v; v; v = v->next) {
-               ++count;
+               BM_strands_bm_from_psys(bm, psys, psmd->dm, true, 
psys->shapenr);
        }
-       return count;
-}
-
-static HairEditVertex *edithair_vertex_create(HairEditData *hedit, 
HairEditVertex *example)
-{
-       HairEditVertex *v = NULL;
-
-       v = BLI_mempool_alloc(hedit->vpool);
-
-       /* --- assign all members --- */
-       v->data = NULL;
-
-       v->next = v->prev = NULL;
-       /* --- done --- */
-
-       hedit->totverts++;
 
-       if (example) {
-               CustomData_bmesh_copy_data(&hedit->vdata, &hedit->vdata, 
example->data, &v->data);
-       }
-       else {
-               CustomData_bmesh_set_default(&hedit->vdata, &v->data);
-       }
-
-       return v;
+       return bm;
 }
 
-HairEditVertex *BKE_edithair_curve_extend(HairEditData *hedit, HairEditCurve 
*c, HairEditVertex *example, int num)
+void BKE_particles_from_bmesh(Object *ob, ParticleSystem *psys)
 {
-       HairEditVertex *v_first = NULL;
-       int i;
-       
-       for (i = 0; i < num; ++i) {
-               HairEditVertex *v = edithair_vertex_create(hedit, example);
-               if (i == 0)
-                       v_first = v;
-               
-               v->prev = c->v;
-               if (c->v)
-                       c->v->next = v;
-               c->v = v;
-       }
+       ParticleSystemModifierData *psmd = psys_get_modifier(ob, psys);
+       BMesh *bm = psys->hairedit ? psys->hairedit->bm : NULL;
        
-       return v_first;
-}
-
-/* ==== Iterators ==== */
-
-/*
- * CURVE OF MESH CALLBACKS
- */
-
-void hairedit_iter__elem_of_mesh_begin(struct HairEditIter__elem_of_mesh *iter)
-{
-       BLI_mempool_iternew(iter->pooliter.pool, &iter->pooliter);
-}
-
-void *hairedit_iter__elem_of_mesh_step(struct HairEditIter__elem_of_mesh *iter)
-{
-       return BLI_mempool_iterstep(&iter->pooliter);
-}
-
-/*
- * VERT OF CURVE CALLBACKS
- */
-
-void  hairedit_iter__vert_of_curve_begin(struct HairEditIter__vert_of_curve 
*iter)
-{
-       if (iter->cdata->v) {
-               iter->v_first = iter->cdata->v;
-               iter->v_next = iter->cdata->v;
-       }
-       else {
-               iter->v_first = NULL;
-               iter->v_next = NULL;
-       }
-}
-
-void  *hairedit_iter__vert_of_curve_step(struct HairEditIter__vert_of_curve 
*iter)
-{
-       HairEditVertex *v_curr = iter->v_next;
-
-       if (iter->v_next) {
-               iter->v_next = iter->v_next->next;
+       if (bm) {
+               if (psmd && psmd->dm) {
+                       BVHTreeFromMesh bvhtree = {NULL};
+                       
+                       DM_ensure_tessface(psmd->dm);
+                       
+                       bvhtree_from_mesh_faces(&bvhtree, psmd->dm, 0.0, 2, 6);
+                       
+                       BM_strands_bm_to_psys(bm, psys, psmd->dm, &bvhtree);
+                       
+                       free_bvhtree_from_mesh(&bvhtree);
+               }
        }
-
-       return v_curr;
 }
-
-/* =================== */
-#endif
diff --git a/source/blender/blenkernel/intern/edithair_inline.h 
b/source/blender/blenkernel/intern/edithair_inline.h
deleted file mode 100644
index a95162c..0000000
--- a/source/blender/blenkernel/intern/edithair_inline.h
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) Blender Foundation
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): Lukas Toenne
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-#ifndef __EDITHAIR_INLINE_H__
-#define __EDITHAIR_INLINE_H__
-
-/** \file blender/editors/hair/edithair_inline.h
- *  \ingroup bke
- */
-
-#include "BLI_mempool.h"
-#include "BLI_utildefines.h"
-
-#include "BKE_edithair.h"
-
-/* iterator type structs */
-struct HairEditIter__elem_of_mesh {
-       BLI_mempool_iter pooliter;
-};
-struct HairEditIter__vert_of_curve {
-       HairEditCurve *cdata;
-       HairEditVertex *v_first, *v_next;
-};
-
-typedef void  (*HairEditIter__begin_cb) (void *);
-typedef void *(*HairEditIter__step_cb) (void *);
-
-typedef struct HairEditIter {
-       /* keep union first */
-       union {
-               struct HairEditIter__elem_of_mesh elem_of_mesh;
-               struct HairEditIter__vert_of_curve vert_of_curve;
-       } data;
-
-       HairEditIter__begin_cb begin;
-       HairEditIter__step_cb step;
-
-       int count;  /* note, only some iterators set this, don't rely on it */
-       char itype;
-} HairEditIter;
-
-#define HAIREDIT_ITER_CB_DEF(name) \
-       struct HairEditIter__##name; \
-       void  hairedit_iter__##name##_begin(struct HairEditIter__##name *iter); 
\
-       void *hairedit_iter__##name##_step(struct HairEditIter__##name *iter)
-
-HAIREDIT_ITER_CB_DEF(elem_of_mesh);
-HAIREDIT_ITER_CB_DEF(vert_of_curve);
-
-#undef HAIREDIT_ITER_CB_DEF
-
-/* inline here optimizes out the switch statement when called with
- * constant values (which is very common), nicer for loop-in-loop situations */
-
-/**
- * \brief Iterator Step
- *
- * Calls an iterators step function to return the next element.
- */
-BLI_INLINE void *HairEdit_iter_step(HairEditIter *iter)
-{
-       return iter->step(iter);
-}
-
-/**
- * \brief Iterator Init
- *
- * Takes a hair iterator structure and fills
- * it with the appropriate function pointers based
- * upon its type.
- */
-BLI_INLINE bool HairEdit_iter_init(HairEditIter *iter, HairEditData *hed

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to