[tuhopuu-devel] New Patch
joeedh
joeeagar at prodigy.net
Sun May 8 09:39:07 CEST 2005
joeedh wrote:
> joeedh wrote:
>
>> here. this is the preliminary warnings implicit-declaration fix I did.
>>
>> also includes some fixes I had to do to get tuho to compile after the
>> merge.
>> put the new file in blender/include
>>
>> joeedh
>
>
> oh, and it fixes all but 2 he implicit declartion warnings. so
> another patch with those 2 fixed will be forthcoming.
>
> joeedh
> _
ok, heres a new and better patch. no time to fix the two warnings,
unfortunately.
joeedh
-------------- next part --------------
Index: source/blender/blenkernel/BKE_hemesh.h
===================================================================
RCS file: /cvsroot/tuhopuu/tuhopuu3/source/blender/blenkernel/BKE_hemesh.h,v
retrieving revision 1.5
diff -u -r1.5 BKE_hemesh.h
--- source/blender/blenkernel/BKE_hemesh.h 12 Apr 2005 04:23:56 -0000 1.5
+++ source/blender/blenkernel/BKE_hemesh.h 8 May 2005 07:19:43 -0000
@@ -1,12 +1,13 @@
#include "DNA_hemesh_types.h"
#include "BLI_memarena.h"
-extern void free_hemesh(HE_Mesh *me);
-extern void *add_hemesh(void);
-extern struct Mesh *hemesh_to_mesh(struct HE_Mesh *oldme, int do_libblock, float **face_nors);
-extern struct HE_Mesh *mesh_to_hemesh(struct Mesh *oldme, int do_libblock);
-extern HE_Mesh *duplicate_hemesh(HE_Mesh *oldme, int do_libblock);
-extern void unlink_hemesh(HE_Mesh *me);
-extern HE_Mesh *init_he_deform(HE_Mesh *me);
-
+void free_hemesh(HE_Mesh *me);
+void *add_hemesh(void);
+struct Mesh *hemesh_to_mesh(struct HE_Mesh *oldme, int do_libblock, float **face_nors);
+struct HE_Mesh *mesh_to_hemesh(struct Mesh *oldme, int do_libblock);
+HE_Mesh *duplicate_hemesh(HE_Mesh *oldme, int do_libblock);
+void unlink_hemesh(HE_Mesh *me);
+HE_Mesh *init_he_deform(HE_Mesh *me);
+void set_hemesh(Object *ob, HE_Mesh *me);
+void undo_push_hemesh(char *str);
Index: source/blender/blenkernel/intern/dmesh.c
===================================================================
RCS file: /cvsroot/tuhopuu/tuhopuu3/source/blender/blenkernel/intern/dmesh.c,v
retrieving revision 1.11
diff -u -r1.11 dmesh.c
--- source/blender/blenkernel/intern/dmesh.c 13 Apr 2005 15:03:26 -0000 1.11
+++ source/blender/blenkernel/intern/dmesh.c 8 May 2005 07:19:43 -0000
@@ -7,6 +7,7 @@
#include "BIF_gl.h"
#include "BKE_hemesh.h"
+#include "BKE_library.h"
#include "BKE_mesh.h"
#include "BKE_dmesh.h"
#include "BKE_global.h"
@@ -23,6 +24,7 @@
#include "BLI_parray.h"
#include "BLI_arithb.h"
+#include "BLI_blenlib.h"
#include "math.h"
static void draw_dmesh_solid(DMesh *dm);
Index: source/blender/hemesh/include/he_editmesh.h
===================================================================
RCS file: /cvsroot/tuhopuu/tuhopuu3/source/blender/hemesh/include/he_editmesh.h,v
retrieving revision 1.9
diff -u -r1.9 he_editmesh.h
--- source/blender/hemesh/include/he_editmesh.h 13 Apr 2005 13:51:42 -0000 1.9
+++ source/blender/hemesh/include/he_editmesh.h 8 May 2005 07:19:44 -0000
@@ -16,6 +16,8 @@
struct HE_EditVert;
struct heUndoMesh;
struct ListBase;
+struct MemCache;
+struct HE_UndoEntry;
struct HE_EditEdge **he_getSolidsAroundVert(struct HE_EditMesh *em, struct HE_EditVert *eve);
void he_free_HEEditMesh(struct HE_EditMesh *em);
@@ -221,6 +223,7 @@
struct heUndoHashEdge *hashes;
int tothash;
int index;
+ struct MemCache *cache;
} heUndoMesh;
Index: source/blender/hemesh/include/he_tools.h
===================================================================
RCS file: /cvsroot/tuhopuu/tuhopuu3/source/blender/hemesh/include/he_tools.h,v
retrieving revision 1.7
diff -u -r1.7 he_tools.h
--- source/blender/hemesh/include/he_tools.h 24 Apr 2005 03:31:27 -0000 1.7
+++ source/blender/hemesh/include/he_tools.h 8 May 2005 07:19:44 -0000
@@ -48,6 +48,7 @@
struct HE_EditMesh;
struct ListBase;
+char *HE_LoopCutTool(char *arg_string, struct HE_EditMesh *em);
char *HE_DelVertTool(char *arg_string, struct HE_EditMesh *em);
char *HE_SubdivideTool(char *arg_string, struct HE_EditMesh *em);
char *HE_SubdivSmoothTool(char *arg_string,struct HE_EditMesh *em);
Index: source/blender/hemesh/intern/HE_Event.c
===================================================================
RCS file: /cvsroot/tuhopuu/tuhopuu3/source/blender/hemesh/intern/HE_Event.c,v
retrieving revision 1.12
diff -u -r1.12 HE_Event.c
--- source/blender/hemesh/intern/HE_Event.c 1 May 2005 23:48:48 -0000 1.12
+++ source/blender/hemesh/intern/HE_Event.c 8 May 2005 07:19:44 -0000
@@ -410,7 +410,12 @@
break;
case XKEY:
HET_DelVert();
- break;
+ break;
+ case RKEY:
+ if (G.qual & LR_CTRLKEY) {
+ //HET_LoopCut();
+ }
+ break;
}
}
}
Index: source/blender/hemesh/intern/HE_Lib.c
===================================================================
RCS file: /cvsroot/tuhopuu/tuhopuu3/source/blender/hemesh/intern/HE_Lib.c,v
retrieving revision 1.9
diff -u -r1.9 HE_Lib.c
--- source/blender/hemesh/intern/HE_Lib.c 22 Apr 2005 01:10:20 -0000 1.9
+++ source/blender/hemesh/intern/HE_Lib.c 8 May 2005 07:19:44 -0000
@@ -233,7 +233,7 @@
if (!em) return NULL; // protect;
if (!eve->edge) return NULL; // protect; /*same as NULL*/
- for (eed=em->edges.first; eed; eed=eed->next) eed->f2 = 0;
+ //for (eed=em->edges.first; eed; eed=eed->next) eed->f2 = 0;
/*first we rewind. . .*/
eed = eve->edge;
Index: source/blender/hemesh/intern/HE_Select.c
===================================================================
RCS file: /cvsroot/tuhopuu/tuhopuu3/source/blender/hemesh/intern/HE_Select.c,v
retrieving revision 1.13
diff -u -r1.13 HE_Select.c
--- source/blender/hemesh/intern/HE_Select.c 24 Apr 2005 03:31:27 -0000 1.13
+++ source/blender/hemesh/intern/HE_Select.c 8 May 2005 07:19:44 -0000
@@ -981,12 +981,18 @@
void HE_selectionCB(short selecting, Object *editobj, short *mval, float rad)
{
/*we are out-of-bounds here. . .*/
+ HE_EditMesh *em = G.he_editMesh;
if (mval[0] >= curarea->winx || mval[1] >= curarea->winy) return;
he_clear_all_mover();
areawinset(curarea->win);
- if (G.scene->selectmode & SCE_SELECT_VERTEX) he_circlesel_vert(selecting, mval, rad);
- if (G.scene->selectmode & SCE_SELECT_EDGE) he_circlesel_edge(selecting, mval, rad);
if (G.scene->selectmode & SCE_SELECT_FACE) he_circlesel_face(selecting, mval, rad);
+ else if (G.scene->selectmode & SCE_SELECT_EDGE) he_circlesel_edge(selecting, mval, rad);
+ else if (G.scene->selectmode & SCE_SELECT_VERTEX) he_circlesel_vert(selecting, mval, rad);
+
+ if (G.scene->selectmode & SCE_SELECT_VERTEX) {
+ HE_update_edges(em);
+ HE_update_faces(em);
+ }
force_draw(0);
}
Index: source/blender/hemesh/tools/tool_manager.c
===================================================================
RCS file: /cvsroot/tuhopuu/tuhopuu3/source/blender/hemesh/tools/tool_manager.c,v
retrieving revision 1.8
diff -u -r1.8 tool_manager.c
--- source/blender/hemesh/tools/tool_manager.c 24 Apr 2005 03:31:27 -0000 1.8
+++ source/blender/hemesh/tools/tool_manager.c 8 May 2005 07:19:45 -0000
@@ -51,6 +51,8 @@
{"Select Swap", NULL, NULL, &HE_SelSwapTool, 0, 0, 0},
{"Reveal Sel", NULL, NULL, &HE_RevealSelTool, 0, 0, 0},
{"Hide Sel", NULL, NULL, &HE_HideSelTool, 0, 0, 0},
+ //{"Loop Cut", NULL, NULL, &HE_LoopCutTool, 0, 0, 0},
+// {"Intrude", NULL, NULL, &HE_IntrudeTool, 0, 0, 0},
{0, 0, 0, 0, 0, 0},
};
Index: source/blender/include/BIF_editmode_undo.h
===================================================================
RCS file: /cvsroot/tuhopuu/tuhopuu3/source/blender/include/BIF_editmode_undo.h,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 BIF_editmode_undo.h
--- source/blender/include/BIF_editmode_undo.h 23 Dec 2004 00:39:15 -0000 1.1.1.1
+++ source/blender/include/BIF_editmode_undo.h 8 May 2005 07:19:45 -0000
@@ -50,6 +50,7 @@
extern void undo_editmode_clear(void); // free & clear all data
extern void undo_editmode_menu(void); // history menu
extern struct uiBlock *editmode_undohistorymenu(void *arg_unused);
+extern void *undo_getdata(void);
#endif
Index: source/blender/include/BIF_meshHE.h
===================================================================
RCS file: /cvsroot/tuhopuu/tuhopuu3/source/blender/include/BIF_meshHE.h,v
retrieving revision 1.7
diff -u -r1.7 BIF_meshHE.h
--- source/blender/include/BIF_meshHE.h 13 Apr 2005 13:51:42 -0000 1.7
+++ source/blender/include/BIF_meshHE.h 8 May 2005 07:19:45 -0000
@@ -22,6 +22,7 @@
struct HE_EditEdgeInfo;
struct HE_EditFace;
struct HE_HashEdge;
+struct MDeformWeight;
struct Object;
struct SubSurf;
@@ -45,6 +46,8 @@
maintaining adjacency info like this is not necassary
and very slow!!*/
ListBase hashedges; /*linked list of hash_references*/
+ struct MDeformWeight *dw;
+ int totweight;
} HE_EditVert;
typedef struct HE_Ref
@@ -113,6 +116,7 @@
unsigned int f, f1, f2, h;
unsigned int glname;
char switched, fast, hl; /*mouseover highligt*/
+ struct HE_EditFace *nef; /*new-face pointer*/
int mat;
} HE_EditFace;
@@ -186,6 +190,9 @@
ListBase stack;
} HE_EditToolStack;
+void deselectall_hemesh(void);
+void HE_recalc_facenormals(void);
+void HE_recalcnormals(void);
struct HE_Mesh *HE_EmeshToHEMesh(struct HE_EditMesh *mesh);
struct HE_EditMesh *HE_HEmeshToEMesh(struct HE_Mesh *mesh);
Index: source/blender/include/BIF_meshHE_tools.h
===================================================================
RCS file: /cvsroot/tuhopuu/tuhopuu3/source/blender/include/BIF_meshHE_tools.h,v
retrieving revision 1.3
diff -u -r1.3 BIF_meshHE_tools.h
--- source/blender/include/BIF_meshHE_tools.h 12 Apr 2005 04:23:56 -0000 1.3
+++ source/blender/include/BIF_meshHE_tools.h 8 May 2005 07:19:45 -0000
@@ -1,28 +1,30 @@
-#ifndef _BIF_MESHHE_TOOLS_H
-#define _BIF_MESHHE_TOOLS_H
-
-void HET_SelSwap(void);
-void HET_HideSel(void);
-void HET_RevealSel(void);
-void HET_DelVert(void);
-void HET_Average(void);
-void HET_Bridge(void);
-void HET_DelVert(void);
-void HET_EdgeCrease(void);
-void HET_Extrude(void);
-void HET_Joinfaces(void);
-char *HE_SelectMatTool(char *arg_string, struct HE_EditMesh *em);
-char *HE_AssignMatTool(char *arg_string, struct HE_EditMesh *em);
-void HET_Merge(void);
-void HET_FlipAllNormals(void);
-void HET_SelectLinkedVerts(void);
-void HET_HardEdge(void);
-void HET_SoftEdge(void);
-void HET_SolidShade(void);
-void HET_SmoothShade(void);
-void HET_Subdivide(void);
-void HET_Triangulate(void);
-void HET_SubdivideSmooth(void);
-void HET_select_more(void);
-void HET_select_less(void);
-#endif /* _BIF_MESHHE_TOOLS_H */
+#ifndef _BIF_MESHHE_TOOLS_H
+#define _BIF_MESHHE_TOOLS_H
+
+unsigned int *he_read_bacbbufcircle(short *mval, short rads);
+void HET_SelSwap(void);
+void HET_HideSel(void);
+void HET_RevealSel(void);
+void HET_DelVert(void);
+void HET_Average(void);
+void HET_Bridge(void);
+void HET_DelVert(void);
+void HET_EdgeCrease(void);
+void HET_Extrude(void);
+void HET_Joinfaces(void);
+char *HE_SelectMatTool(char *arg_string, struct HE_EditMesh *em);
+char *HE_AssignMatTool(char *arg_string, struct HE_EditMesh *em);
+void HET_Merge(void);
+void HET_FlipAllNormals(void);
+void HET_SelectLinkedVerts(void);
+void HET_HardEdge(void);
+void HET_SoftEdge(void);
+void HET_SolidShade(void);
+void HET_SmoothShade(void);
+void HET_Subdivide(void);
+void HET_Triangulate(void);
+void HET_SubdivideSmooth(void);
+void HET_select_more(void);
+void HET_select_less(void);
+void HET_SelOrDeselAll(void);
+#endif /* _BIF_MESHHE_TOOLS_H */
Index: source/blender/makesdna/DNA_hemesh_types.h
===================================================================
RCS file: /cvsroot/tuhopuu/tuhopuu3/source/blender/makesdna/DNA_hemesh_types.h,v
retrieving revision 1.4
diff -u -r1.4 DNA_hemesh_types.h
--- source/blender/makesdna/DNA_hemesh_types.h 5 Apr 2005 22:17:14 -0000 1.4
+++ source/blender/makesdna/DNA_hemesh_types.h 8 May 2005 07:19:45 -0000
@@ -1,104 +1,114 @@
-#ifndef _DNA_HEMESH_TYPES_H
-#define _DNA_HEMESH_TYPES_H
-
-#include "DNA_ID.h"
-#include "DNA_listBase.h"
-#include "DNA_object_types.h"
-
-struct Material;
-struct BoundBox;
-struct HyperMesh;
-struct DF_DeformList;
-
-/*we "embedd" morph targets into the mesh
- better this way, much better*/
-/*also, we always do array indice-based linked lists
- for DNA mesh types.*/
-
-/*typedef struct HE_KeyVert {
- float co[3];
- int keynext;
-} HE_KeyVert;
-
-typedef struct HE_MorphKey {
- char name[128];
- int index;
-} HE_MorphKey; NOTE: good project for later*/
-
-typedef struct HE_Vert {
- float co[3];
- float no[3];
- unsigned int f, h;
- int vgroup;
- int edge;
- //int key_vert_list;
-} HE_Vert;
-
-typedef struct HE_EdgeInfo {
- unsigned int f, h;
- float crease;
- int e1, e2;
- int v1, v2;
- char seam, cpad1;
- short spad2;
-} HE_EdgeInfo;
-
-typedef struct HE_Edge {
- int v1;
- int v2;
- int iedge;
- int pair;
- int face;
- int next;
- int prev;
- float no[3];
-} HE_Edge;
-
-typedef struct HE_Face {
- int edge;
- float nor[3];
- float dot[3];
- unsigned int f, h;
- char mat_index, cpad1;
- short spad2;
-} HE_Face;
-
-typedef struct HE_Mesh {
- ID id;
- HE_Face *faces;
- int totfaces;
- int ipad1;
- HE_Edge *half_edges;
- HE_EdgeInfo *iedges;
- HE_Vert *verts;
-
- int totedges;
- int totiedges;
- int totverts;
- int ipadf1;
-
- ListBase dl; /*displist*/
- unsigned int f, f1, subdivLevels;
- unsigned int pad;
- struct Material **mat;
- short totcol, spad2;
- int texflag;
- struct BoundBox *bb;
- struct DMesh *dmesh;
- struct DF_DeformList *deforml;
-} HE_Mesh;
-
-/*mesh->f*/
-#define HEM_SUBSURF 1
-#define HEM_TWOSIDE 2
-
-/*face->f*/
-#define HEM_SMOOTH 2
-
-/*edge info->f*/
-#define HEM_SEAM 2
-#define HEM_HARD 4
-#define HEM_REMAKE_DISPLIST 8
-#define HEM_NODISPLIST 16
-
-#endif /* _DNA_HEMESH_TYPES_H */
+#ifndef _DNA_HEMESH_TYPES_H
+#define _DNA_HEMESH_TYPES_H
+
+#include "DNA_ID.h"
+#include "DNA_listBase.h"
+#include "DNA_object_types.h"
+
+struct Material;
+struct BoundBox;
+struct HyperMesh;
+struct DF_DeformList;
+struct MDeformWeight;
+
+/*we "embedd" morph targets into the mesh
+ better this way, much better*/
+/*also, we always do array indice-based linked lists
+ for DNA mesh types.*/
+/*
+typedef struct HE_KeyVert {
+ float co[3];
+ int keynext;
+} HE_KeyVert;
+
+typedef struct HE_MorphKey {
+ char name[128];
+ int index;
+} HE_MorphKey; NOTE: good project for later*/
+
+/*typedef HE_VGroup {
+ struct HE_VGroup *next, *prev;
+ char name[32];
+ int *verts;
+ int *weights;
+} HE_VGroup;*/
+
+typedef struct HE_Vert {
+ float co[3];
+ float no[3];
+ unsigned int f, h;
+ int vgroup;
+ int edge;
+ //int key_vert_list;
+} HE_Vert;
+
+typedef struct HE_EdgeInfo {
+ unsigned int f, h;
+ float crease;
+ int e1, e2;
+ int v1, v2;
+ char seam, cpad1;
+ short spad2;
+} HE_EdgeInfo;
+
+typedef struct HE_Edge {
+ int v1;
+ int v2;
+ int iedge;
+ int pair;
+ int face;
+ int next;
+ int prev;
+ float no[3];
+} HE_Edge;
+
+typedef struct HE_Face {
+ int edge;
+ float nor[3];
+ float dot[3];
+ unsigned int f, h;
+ char mat_index, cpad1;
+ short spad2;
+ unsigned int sgroup; /*shade-group bitmask*/
+} HE_Face;
+
+typedef struct HE_Mesh {
+ ID id;
+ HE_Face *faces;
+ int totfaces;
+ int ipad1;
+ HE_Edge *half_edges;
+ HE_EdgeInfo *iedges;
+ HE_Vert *verts;
+
+ int totedges;
+ int totiedges;
+ int totverts;
+ int ipadf1;
+
+ ListBase dl; /*displist*/
+ unsigned int f, f1, subdivLevels;
+ unsigned int pad;
+ struct Material **mat;
+ short totcol, spad2;
+ int texflag;
+ struct BoundBox *bb;
+ struct DMesh *dmesh;
+ struct DF_DeformList *deforml;
+ struct MDeformWeight *dw;
+} HE_Mesh;
+
+/*mesh->f*/
+#define HEM_SUBSURF 1
+#define HEM_TWOSIDE 2
+
+/*face->f*/
+#define HEM_SMOOTH 2
+
+/*edge info->f*/
+#define HEM_SEAM 2
+#define HEM_HARD 4
+#define HEM_REMAKE_DISPLIST 8
+#define HEM_NODISPLIST 16
+
+#endif /* _DNA_HEMESH_TYPES_H */
Index: source/blender/src/header_info.c
===================================================================
RCS file: /cvsroot/tuhopuu/tuhopuu3/source/blender/src/header_info.c,v
retrieving revision 1.10
diff -u -r1.10 header_info.c
--- source/blender/src/header_info.c 8 May 2005 01:49:01 -0000 1.10
+++ source/blender/src/header_info.c 8 May 2005 07:19:52 -0000
@@ -112,6 +112,7 @@
/* strubi shamelessly abused the status line as a progress bar...
* feel free to kill him after release */
+extern void addPrimitiveHEMesh(int a);
static int g_progress_bar = 0;
static char *g_progress_info = 0;
@@ -1289,9 +1290,9 @@
add_object_draw(OB_LATTICE);
break;
case 10:
- /* HE Mesh */
- addPrimitiveHEMesh(1);
- break;
+ /* HE Mesh -- temp system*/
+ addPrimitiveHEMesh(1);
+ break;
default:
break;
}
Index: source/blender/src/space.c
===================================================================
RCS file: /cvsroot/tuhopuu/tuhopuu3/source/blender/src/space.c,v
retrieving revision 1.52
diff -u -r1.52 space.c
--- source/blender/src/space.c 8 May 2005 01:49:01 -0000 1.52
+++ source/blender/src/space.c 8 May 2005 07:19:54 -0000
@@ -76,6 +76,7 @@
#include "BKE_main.h"
#include "BKE_scene.h"
#include "BKE_utildefines.h"
+#include "BKE_hemesh.h"
#include "BIF_spacetypes.h" // first, nasty dependency with typedef
@@ -112,6 +113,7 @@
#include "BIF_usiblender.h"
#include "BIF_previewrender.h"
#include "BIF_meshHE_tools.h"
+#include "BIF_HE_Event.h"
#include "BSE_edit.h"
#include "BSE_view.h"
@@ -731,7 +733,7 @@
if ((event==MOUSEX || event==MOUSEY) || (event==RIGHTMOUSE) || (event >= AKEY && event <= ZKEY)) {
/*we don't want to override certain event codes. . .*/
/*scale/shear/normal grah. . .*/
- if (!((event==DKEY & G.qual==0)||event==ZKEY||event==BKEY||event==AKEY||event==SKEY||event==RKEY||event==GKEY||event==WKEY||event==OKEY)) { // && (G.qual==0 || G.qual==(LR_ALTKEY|LR_CTRLKEY)));{
+ if (!((event==DKEY & G.qual==0)||event==ZKEY||event==BKEY||event==AKEY||event==SKEY||(event==RKEY && G.qual==0)||event==GKEY||event==WKEY||event==OKEY)) { // && (G.qual==0 || G.qual==(LR_ALTKEY|LR_CTRLKEY)));{
if (!(event==EKEY && G.qual==LR_SHIFTKEY)) { /*edge crease exception. . .*/
HET_Event(event, val);
if (event != MOUSEX && event != MOUSEY)
Index: source/blender/src/usiblender.c
===================================================================
RCS file: /cvsroot/tuhopuu/tuhopuu3/source/blender/src/usiblender.c,v
retrieving revision 1.11
diff -u -r1.11 usiblender.c
--- source/blender/src/usiblender.c 8 May 2005 01:49:02 -0000 1.11
+++ source/blender/src/usiblender.c 8 May 2005 07:19:54 -0000
@@ -97,6 +97,7 @@
#include "BIF_space.h"
#include "BIF_toolbox.h"
#include "BIF_cursors.h"
+#include "BIF_meshHE.h"
#include "BSE_drawview.h"
#include "BSE_headerbuttons.h"
More information about the tuhopuu-devel
mailing list