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
path: root/source
diff options
context:
space:
mode:
authorChris Want <cwant@ualberta.ca>2004-03-15 00:21:09 +0300
committerChris Want <cwant@ualberta.ca>2004-03-15 00:21:09 +0300
commit6c650c586d22a0dc17f4ae9695b0b956713092d9 (patch)
tree40e817cb37b5c92252f2333ba11727de27e17a93 /source
parent807db2ea4077cb198c696c65b77a6bab23cacd02 (diff)
Fixed issues surrounding the increased vertex limit:
* Created a MESH_MAX_VERTS macro in DNA_mesh_types.h * fixed vert limit for converting displistmesh ==> mesh * fixed vert limit when doing boolean operations
Diffstat (limited to 'source')
-rw-r--r--source/blender/blenkernel/intern/displist.c2
-rw-r--r--source/blender/blenkernel/intern/exotic.c23
-rw-r--r--source/blender/makesdna/DNA_mesh_types.h3
-rw-r--r--source/blender/src/booleanops.c2
-rw-r--r--source/blender/src/editmesh.c2
-rw-r--r--source/blender/src/editobject.c2
6 files changed, 19 insertions, 15 deletions
diff --git a/source/blender/blenkernel/intern/displist.c b/source/blender/blenkernel/intern/displist.c
index beb0ee06671..45fda288ac3 100644
--- a/source/blender/blenkernel/intern/displist.c
+++ b/source/blender/blenkernel/intern/displist.c
@@ -262,7 +262,7 @@ void displistmesh_to_mesh(DispListMesh *dlm, Mesh *me) {
MFace *mfaces;
int i;
- if (dlm->totvert>65000) {
+ if (dlm->totvert>MESH_MAX_VERTS) {
error("Too many vertices");
} else {
me->totface= dlm->totface;
diff --git a/source/blender/blenkernel/intern/exotic.c b/source/blender/blenkernel/intern/exotic.c
index 422be9c78c7..e1858198608 100644
--- a/source/blender/blenkernel/intern/exotic.c
+++ b/source/blender/blenkernel/intern/exotic.c
@@ -158,7 +158,7 @@ static void read_videoscape_mesh(char *str)
return;
}
- if(verts>2000000000L) {
+ if(verts>MESH_MAX_VERTS) {
error("too many vertices");
fclose(fp);
return;
@@ -202,7 +202,7 @@ static void read_videoscape_mesh(char *str)
}
}
- if(totedge+tottria+totquad>2000000000L) {
+ if(totedge+tottria+totquad>MESH_MAX_VERTS) {
printf(" var1: %d, var2: %d, var3: %d \n", totedge, tottria, totquad);
error("too many faces");
MEM_freeN(vertdata);
@@ -375,7 +375,7 @@ static void read_radiogour(char *str)
return;
}
- if(verts>2000000000L) {
+ if(verts>MESH_MAX_VERTS) {
error("too many vertices");
fclose(fp);
return;
@@ -410,7 +410,7 @@ static void read_radiogour(char *str)
}
- if(totedge+tottria+totquad>2000000000L) {
+ if(totedge+tottria+totquad>MESH_MAX_VERTS) {
printf(" var1: %d, var2: %d, var3: %d \n", totedge, tottria, totquad);
error("too many faces");
MEM_freeN(vertdata);
@@ -1673,8 +1673,8 @@ static void displist_to_mesh(DispList *dlfirst)
if(totvert==0) {
return;
}
- if(totvert>=2000000000L || tottria>=2000000000L) {
- if (totvert>=2000000000L) {
+ if(totvert>MESH_MAX_VERTS || tottria>=MESH_MAX_VERTS) {
+ if (totvert>=MESH_MAX_VERTS) {
error("Too many vertices (%d)", totvert);
} else {
error("Too many faces (%d)", tottria);
@@ -3285,7 +3285,8 @@ static void dxf_read_line(int noob) {
/* Check to see if we need to make a new object */
if(!lwasline || strcmp(layname, oldllay)!=0) dxf_close_line();
- if(linemhold != NULL && linemhold->totvert>2000000000L) dxf_close_line();
+ if(linemhold != NULL && linemhold->totvert>MESH_MAX_VERTS)
+ dxf_close_line();
if (linemhold==NULL) {
if (noob) {
@@ -3433,7 +3434,8 @@ static void dxf_read_polyline(int noob) {
if (flag&1) {
if(!lwasp2d || strcmp(layname, oldplay)!=0) dxf_close_2dpoly();
- if(p2dmhold != NULL && p2dmhold->totvert>2000000000L) dxf_close_2dpoly();
+ if(p2dmhold != NULL && p2dmhold->totvert>MESH_MAX_VERTS)
+ dxf_close_2dpoly();
if (p2dmhold==NULL) {
if (noob) {
@@ -3593,7 +3595,7 @@ static void dxf_read_polyline(int noob) {
me->totvert++;
/* If we are nearing the limit scan to the next entry */
- if(me->totvert > 2000000000L)
+ if(me->totvert > MESH_MAX_VERTS)
while(group_isnt(0, "SEQEND")) read_group(id, val);
vtmp= MEM_callocN(me->totvert*sizeof(MVert), "mverts");
@@ -3773,7 +3775,8 @@ static void dxf_read_3dface(int noob)
/* Check to see if we need to make a new object */
if(!lwasf3d || strcmp(layname, oldflay)!=0) dxf_close_3dface();
- if(f3dmhold != NULL && f3dmhold->totvert>2000000000L) dxf_close_3dface();
+ if(f3dmhold != NULL && f3dmhold->totvert>MESH_MAX_VERTS)
+ dxf_close_3dface();
if(nverts<3) {
error("(3DF) Error parsing dxf, not enough vertices near line %d", dxf_line);
diff --git a/source/blender/makesdna/DNA_mesh_types.h b/source/blender/makesdna/DNA_mesh_types.h
index ac52a3a6bbc..74f5d388723 100644
--- a/source/blender/makesdna/DNA_mesh_types.h
+++ b/source/blender/makesdna/DNA_mesh_types.h
@@ -211,5 +211,6 @@ typedef struct Mesh {
#define ME_SPHERETEMP 4
#define ME_HIDE 16
-#endif
+#define MESH_MAX_VERTS 2000000000L
+#endif
diff --git a/source/blender/src/booleanops.c b/source/blender/src/booleanops.c
index f2ab1825c4d..0c9febd31e9 100644
--- a/source/blender/src/booleanops.c
+++ b/source/blender/src/booleanops.c
@@ -637,7 +637,7 @@ ConvertCSGDescriptorsToMeshObject(
if (face_it == NULL || vertex_it == NULL || props == NULL || me == NULL) {
return 0;
}
- if (vertex_it->num_elements > 65000) return 0;
+ if (vertex_it->num_elements > MESH_MAX_VERTS) return 0;
// initialize the face structure for readback
diff --git a/source/blender/src/editmesh.c b/source/blender/src/editmesh.c
index 3406eedadf2..bb0f2a79507 100644
--- a/source/blender/src/editmesh.c
+++ b/source/blender/src/editmesh.c
@@ -7059,7 +7059,7 @@ void join_mesh(void)
/* that way the active object is always selected */
if(ok==0) return;
- if(totvert==0 || totvert>2000000000L) return;
+ if(totvert==0 || totvert>MESH_MAX_VERTS) return;
if(okee("Join selected Meshes")==0) return;
diff --git a/source/blender/src/editobject.c b/source/blender/src/editobject.c
index e60efb6aa1e..f850589fadd 100644
--- a/source/blender/src/editobject.c
+++ b/source/blender/src/editobject.c
@@ -1070,7 +1070,7 @@ void exit_editmode(int freedata) /* freedata==0 at render */
/* temporal */
countall();
- if(G.totvert>2000000000L) {
+ if(G.totvert>MESH_MAX_VERTS) {
error("too many vertices");
return;
}