code cleanup: remove editmesh code left hanging around thats already been ported to bmesh, also remove main editmesh header.

This commit is contained in:
Campbell Barton
2012-04-28 12:23:05 +00:00
parent 4dd552fef9
commit c91fd5a0bf
6 changed files with 12 additions and 342 deletions

View File

@@ -1,191 +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) 2001-2002 by NaN Holding BV.
* All rights reserved.
*
* The Original Code is: all of this file.
*
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
*/
#ifndef __BLI_EDITVERT_H__
#define __BLI_EDITVERT_H__
/** \file BLI_editVert.h
* \ingroup bli
* \since March 2001
* \author nzc
* \brief Some editing types needed in the lib (unfortunately) for
* scanfill.c
*/
#include "DNA_customdata_types.h"
#include "DNA_mesh_types.h"
#include "BLO_sys_types.h" // for intptr_t support
struct DerivedMesh;
/* note; changing this also might affect the undo copy in editmesh.c */
typedef struct EditVert
{
struct EditVert *next, *prev;
union {
/* some lean storage for temporary usage
* in editmesh routines
*/
struct EditVert *v;
struct EditEdge *e;
struct EditFace *f;
void *p;
intptr_t l;
float fp;
int t;
} tmp;
float no[3]; /*vertex normal */
float co[3]; /*vertex location */
short xs, ys; /* used to store a screenspace 2d projection of the verts */
/* f stores selection eg. if (eve->f & SELECT) {...
* h for hidden. if (!eve->h) {...
* f1 and f2 can be used for temp data, clear them first*/
unsigned char f, h, f1, f2;
float bweight;
short fast; /* only 0 or 1, for editmesh_fastmalloc, do not store temp data here! */
int hash; /* internal editmesh.c use only, don't touch! */
int keyindex; /* original index #, for restoring key information */
void *data; /* custom vertex data */
} EditVert;
struct EditEdge;
typedef struct HashEdge {
struct EditEdge *eed;
struct HashEdge *next;
} HashEdge;
/* note; changing this also might affect the undo copy in editmesh.c */
typedef struct EditEdge
{
struct EditEdge *next, *prev;
struct EditVert *v1, *v2;
union {
/* some lean storage for temporary usage
* in editmesh routines
*/
struct EditVert *v;
struct EditEdge *e;
struct EditFace *f;
void *p;
intptr_t l;
float fp;
} tmp;
short f1, f2; /* short, f1 is (ab)used in subdiv */
unsigned char f, h, dir, seam, sharp;
float crease;
float bweight;
short fast; /* only 0 or 1, for editmesh_fastmalloc */
short fgoni; /* index for fgon, for search */
HashEdge hash;
void *data; /*custom edge data*/
} EditEdge;
/* note; changing this also might affect the undo copy in editmesh.c */
typedef struct EditFace
{
struct EditFace *next, *prev;
struct EditVert *v1, *v2, *v3, *v4;
struct EditEdge *e1, *e2, *e3, *e4;
union {
/* some lean storage for temporary usage
* in editmesh routines
*/
struct EditVert *v;
struct EditEdge *e;
struct EditFace *f;
void *p;
intptr_t l;
float fp;
} tmp;
float n[3], cent[3];
unsigned char flag;
unsigned char f, f1, h;
unsigned char fast; /* only 0 or 1, for editmesh_fastmalloc */
unsigned char fgonf; /* flag for fgon options */
short mat_nr;
void *data; /* custom face data */
} EditFace;
/*selection types*/
#define EDITVERT 0
#define EDITEDGE 1
#define EDITFACE 2
typedef struct EditSelection
{
struct EditSelection *next, *prev;
short type;
void *data;
} EditSelection;
typedef struct EditMesh
{
ListBase verts, edges, faces;
ListBase selected; /*EditSelections. Used to store the order in which things are selected.*/
HashEdge *hashedgetab;
/* this is for the editmesh_fastmalloc */
EditVert *allverts, *curvert;
EditEdge *alledges, *curedge;
EditFace *allfaces, *curface;
/* DerivedMesh caches... note that derived cage can be equivalent
* to derived final, care should be taken on release.
*/
/* used for keeping track of the last clicked on face - so the space image
* when using the last selected face - (EditSelection) the space image flickered too much
*
* never access this directly, use EM_set_actFace and EM_get_actFace */
EditFace *act_face;
/* copy from scene */
short selectmode;
/* copy from object actcol */
short mat_nr;
/* stats */
int totvert, totedge, totface, totvertsel, totedgesel, totfacesel;
/* shape key being edited */
int shapenr;
struct DerivedMesh *derivedCage, *derivedFinal;
/* the custom data layer mask that was last used to calculate
* derivedCage and derivedFinal
*/
int lastDataMask;
CustomData vdata, edata, fdata;
} EditMesh;
#endif

View File

@@ -103,7 +103,6 @@ set(SRC
BLI_dynlib.h
BLI_dynstr.h
BLI_edgehash.h
BLI_editVert.h
BLI_fileops.h
BLI_fileops_types.h
BLI_fnmatch.h

View File

@@ -41,7 +41,6 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_utildefines.h"
#include "BLI_editVert.h"
#include "BLI_edgehash.h"
#include "BLI_ghash.h"
#include "BLI_heap.h"
@@ -81,15 +80,23 @@ static ReebGraph *FILTERED_RG = NULL;
#define DEBUG_REEB
#define DEBUG_REEB_NODE
typedef struct VertexData
{
/* place-holders! */
typedef struct EditEdge {
void *fake;
} EditEdge;
typedef struct EditFace {
void *fake;
} EditFace;
/* end place-holders! */
typedef struct VertexData {
float w; /* weight */
int i; /* index */
ReebNode *n;
} VertexData;
typedef struct EdgeIndex
{
typedef struct EdgeIndex {
EditEdge **edges;
int *offset;
} EdgeIndex;

View File

@@ -3640,22 +3640,6 @@ static int vergxco(const void *v1, const void *v2)
return (x2->org_idx < 0) - (x1->org_idx < 0);
}
#if 0 /* Unused */
struct facesort {
uintptr_t x;
struct EditFace *efa;
};
static int vergface(const void *v1, const void *v2)
{
const struct facesort *x1 = v1, *x2 = v2;
if (x1->x > x2->x) return 1;
else if (x1->x < x2->x) return -1;
return 0;
}
#endif
static void xsortvert_flag__doSetX(void *userData, BMVert *UNUSED(eve), int x, int UNUSED(y), int index)
{
xvertsort *sortblock = userData;

View File

@@ -487,66 +487,6 @@ static void do_lasso_select_mesh(ViewContext *vc, int mcords[][2], short moves,
EDBM_selectmode_flush(vc->em);
}
/* BMESH_TODO */
#if 0
/* this is an exception in that its the only lasso that dosnt use the 3d view (uses space image view) */
static void do_lasso_select_mesh_uv(int mcords[][2], short moves, short select)
{
EditFace *efa;
MTFace *tf;
int screenUV[2], nverts, i, ok = 1;
rcti rect;
BLI_lasso_boundbox(&rect, mcords, moves);
if (draw_uvs_face_check()) { /* Face Center Sel */
float cent[2];
ok = 0;
for (efa = em->faces.first; efa; efa = efa->next) {
/* assume not touched */
efa->tmp.l = 0;
tf = CustomData_em_get(&em->fdata, efa->data, CD_MTFACE);
if ((select) != (simaFaceSel_Check(efa, tf))) {
uv_center(tf->uv, cent, (void *)efa->v4);
uvco_to_areaco_noclip(cent, screenUV);
if (BLI_in_rcti(&rect, screenUV[0], screenUV[1]) && BLI_lasso_is_point_inside(mcords, moves, screenUV[0], screenUV[1])) {
efa->tmp.l = ok = 1;
}
}
}
/* (de)selects all tagged faces and deals with sticky modes */
if (ok)
uvface_setsel__internal(select);
}
else { /* Vert Sel*/
for (efa = em->faces.first; efa; efa = efa->next) {
tf = CustomData_em_get(&em->fdata, efa->data, CD_MTFACE);
if (uvedit_face_visible_test(scene, ima, efa, tf)) {
nverts = efa->v4 ? 4 : 3;
for (i = 0; i < nverts; i++) {
if ((select) != (simaUVSel_Check(efa, tf, i))) {
uvco_to_areaco_noclip(tf->uv[i], screenUV);
if (BLI_in_rcti(&rect, screenUV[0], screenUV[1]) && BLI_lasso_is_point_inside(mcords, moves, screenUV[0], screenUV[1])) {
if (select) {
simaUVSel_Set(efa, tf, i);
}
else {
simaUVSel_UnSet(efa, tf, i);
}
}
}
}
}
}
}
if (ok && G.sima->flag & SI_SYNC_UVSEL) {
if (select) EM_select_flush(vc->em);
else EM_deselect_flush(vc->em);
}
}
#endif
static void do_lasso_select_curve__doSelect(void *userData, Nurb *UNUSED(nu), BPoint *bp, BezTriple *bezt, int beztindex, int x, int y)
{
LassoSelectUserData *data = userData;

View File

@@ -187,75 +187,6 @@ void crazyspace_set_quats_editmesh(BMEditMesh *em, float *origcos, float *mapped
em->bm->elem_index_dirty |= BM_VERT;
MEM_freeN(vert_table);
#if 0
BMEditVert *eve, *prev;
BMEditFace *efa;
BMIter iter;
float *v1, *v2, *v3, *v4, *co1, *co2, *co3, *co4;
intptr_t index = 0;
/* two abused locations in vertices */
for (eve = em->verts.first; eve; eve = eve->next, index++) {
eve->tmp.p = NULL;
eve->prev = (EditVert *)index;
}
/* first store two sets of tangent vectors in vertices, we derive it just from the face-edges */
for (efa = em->faces.first; efa; efa = efa->next) {
/* retrieve mapped coordinates */
v1 = mappedcos + 3 * (intptr_t)(efa->v1->prev);
v2 = mappedcos + 3 * (intptr_t)(efa->v2->prev);
v3 = mappedcos + 3 * (intptr_t)(efa->v3->prev);
co1 = (origcos) ? origcos + 3 * (intptr_t)(efa->v1->prev) : efa->v1->co;
co2 = (origcos) ? origcos + 3 * (intptr_t)(efa->v2->prev) : efa->v2->co;
co3 = (origcos) ? origcos + 3 * (intptr_t)(efa->v3->prev) : efa->v3->co;
if (efa->v2->tmp.p == NULL && efa->v2->f1) {
set_crazy_vertex_quat(quats, co2, co3, co1, v2, v3, v1);
efa->v2->tmp.p = (void *)quats;
quats += 4;
}
if (efa->v4) {
v4 = mappedcos + 3 * (intptr_t)(efa->v4->prev);
co4 = (origcos) ? origcos + 3 * (intptr_t)(efa->v4->prev) : efa->v4->co;
if (efa->v1->tmp.p == NULL && efa->v1->f1) {
set_crazy_vertex_quat(quats, co1, co2, co4, v1, v2, v4);
efa->v1->tmp.p = (void *)quats;
quats += 4;
}
if (efa->v3->tmp.p == NULL && efa->v3->f1) {
set_crazy_vertex_quat(quats, co3, co4, co2, v3, v4, v2);
efa->v3->tmp.p = (void *)quats;
quats += 4;
}
if (efa->v4->tmp.p == NULL && efa->v4->f1) {
set_crazy_vertex_quat(quats, co4, co1, co3, v4, v1, v3);
efa->v4->tmp.p = (void *)quats;
quats += 4;
}
}
else {
if (efa->v1->tmp.p == NULL && efa->v1->f1) {
set_crazy_vertex_quat(quats, co1, co2, co3, v1, v2, v3);
efa->v1->tmp.p = (void *)quats;
quats += 4;
}
if (efa->v3->tmp.p == NULL && efa->v3->f1) {
set_crazy_vertex_quat(quats, co3, co1, co2, v3, v1, v2);
efa->v3->tmp.p = (void *)quats;
quats += 4;
}
}
}
/* restore abused prev pointer */
for (prev = NULL, eve = em->verts.first; eve; prev = eve, eve = eve->next)
eve->prev = prev;
#endif
}
/* BMESH_TODO - use MPolys over MFace's */