[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [31429] branches/soc-2010-rohith291991: quadrangulation without stitching.
Rohith B V
rohith291991 at gmail.com
Tue Aug 17 23:10:12 CEST 2010
Revision: 31429
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31429
Author: rohith291991
Date: 2010-08-17 23:10:10 +0200 (Tue, 17 Aug 2010)
Log Message:
-----------
quadrangulation without stitching.
Modified Paths:
--------------
branches/soc-2010-rohith291991/intern/comiso/intern/map_curvature.cpp
branches/soc-2010-rohith291991/intern/comiso/intern/uv.cpp
branches/soc-2010-rohith291991/source/blender/modifiers/intern/MOD_quadrangulate.c
Modified: branches/soc-2010-rohith291991/intern/comiso/intern/map_curvature.cpp
===================================================================
--- branches/soc-2010-rohith291991/intern/comiso/intern/map_curvature.cpp 2010-08-17 20:53:07 UTC (rev 31428)
+++ branches/soc-2010-rohith291991/intern/comiso/intern/map_curvature.cpp 2010-08-17 21:10:10 UTC (rev 31429)
@@ -104,7 +104,7 @@
void MapCurvature::set(HMesh *mesh,CMesh* cmesh,double radius, double threshold, double range, double meanLimit)
{
- anisotropic_ = true ;
+ anisotropic_ = false ;
nb_anisotropic_iters_ = 3 ;
anisotropic_factor_ = 1.5 ;
mesh_= mesh;
Modified: branches/soc-2010-rohith291991/intern/comiso/intern/uv.cpp
===================================================================
--- branches/soc-2010-rohith291991/intern/comiso/intern/uv.cpp 2010-08-17 20:53:07 UTC (rev 31428)
+++ branches/soc-2010-rohith291991/intern/comiso/intern/uv.cpp 2010-08-17 21:10:10 UTC (rev 31429)
@@ -844,7 +844,7 @@
if(vRange<0)
vRange=0;
- printf("%d %d %lf %lf %d %d %lf %lf\n",uStart,uRange+uStart,minu,maxu,vStart,vRange+vStart,minv,maxv);
+ //printf("%d %d %lf %lf %d %d %lf %lf\n",uStart,uRange+uStart,minu,maxu,vStart,vRange+vStart,minv,maxv);
// printf("minu: %lf maxu: %lf minv: %lf maxv: %lf uStart: %d uRange: %d vStart: %d vRange: %d\n",minu,maxu,minv,maxv,uStart,uRange,vStart,vRange);
@@ -1340,7 +1340,7 @@
//add edge
- if((fabs(v1[0]-v1[1]))>1e-7)
+/* if((fabs(v1[0]-v1[1]))>1e-7)
{
if(result->edges==NULL)
result->edges=(CEdge*)MEM_mallocN(sizeof(CEdge)*(ec+1), "edges");
@@ -1352,14 +1352,56 @@
result->edges[ec].v[1]=vc+1;
ec++;
+ }*/
+
+ if(v1[0]>v1[1])
+ {
+ double temp=v1[0];
+ v1[0]=v1[1];
+ v1[1]=temp;
+
}
- for(int k=0;k<2;k++)
+ x=A[0]*u1[0]+B[0]*v1[0]+C[0];
+ y=A[1]*u1[0]+B[1]*v1[0]+C[1];
+ z=A[2]*u1[0]+B[2]*v1[0]+C[2];
+
+ if(result->verts==NULL)
+ {result->verts=(CVert*)MEM_mallocN(sizeof(CVert)*(vc+1), "vertices");}
+ else
+ {
+
+ result->verts=(CVert*)MEM_reallocN(result->verts,(sizeof(CVert)*(vc+1)));}
+
+ result->verts[vc].co[0]=x;
+ result->verts[vc].co[1]=y;
+ result->verts[vc].co[2]=z;
+ result->verts[vc].neighbors=NULL;
+ result->verts[vc].edges=NULL;
+ result->verts[vc].flag=0;
+ // result->verts[vc].flag|=CV_INTEGER;
+ result->verts[vc].numNeighbors=0;
+
+ result->verts[vc].index=vc;
+
+ vc++;
+
+ int prev=vc-1;
+
+ for(int k=ceil(v1[0]);k<v1[0];k++)
{
- x=A[0]*u1[k]+B[0]*v1[k]+C[0];
- y=A[1]*u1[k]+B[1]*v1[k]+C[1];
- z=A[2]*u1[k]+B[2]*v1[k]+C[2];
+ int current=vc;
+ if(!vertices[j-uStart][k-vStart].set)
+ {
+ vertices[j-uStart][k-vStart].set=1;
+ vertices[j-uStart][k-vStart].index=vc;
+
+ int un=j+uStart;
+ x=A[0]*un+B[0]*k+C[0];
+ y=A[1]*un+B[1]*k+C[1];
+ z=A[2]*un+B[2]*k+C[2];
+
if(result->verts==NULL)
{result->verts=(CVert*)MEM_mallocN(sizeof(CVert)*(vc+1), "vertices");}
else
@@ -1373,6 +1415,63 @@
result->verts[vc].neighbors=NULL;
result->verts[vc].edges=NULL;
result->verts[vc].flag=0;
+ result->verts[vc].flag|=CV_INTEGER;
+ result->verts[vc].numNeighbors=0;
+
+ result->verts[vc].index=vc;
+
+ vc++;
+ }
+ else
+ current=vertices[j-uStart][k-vStart].index;
+
+ {
+ if(result->edges==NULL)
+ result->edges=(CEdge*)MEM_mallocN(sizeof(CEdge)*(ec+1), "edges");
+ else
+ result->edges=(CEdge*)MEM_reallocN(result->edges,(sizeof(CEdge)*(ec+1)));
+
+
+ result->edges[ec].v[0]=prev;
+ result->edges[ec].v[1]=current;
+ ec++;
+ }
+ prev=current;
+ //if((fabs(v1[0]-v1[1]))>1e-7)
+
+
+ }
+
+
+ {
+ if(result->edges==NULL)
+ result->edges=(CEdge*)MEM_mallocN(sizeof(CEdge)*(ec+1), "edges");
+ else
+ result->edges=(CEdge*)MEM_reallocN(result->edges,(sizeof(CEdge)*(ec+1)));
+
+
+ result->edges[ec].v[0]=prev;
+ result->edges[ec].v[1]=vc;
+ ec++;
+ }
+
+ x=A[0]*u1[1]+B[0]*v1[1]+C[0];
+ y=A[1]*u1[1]+B[1]*v1[1]+C[1];
+ z=A[2]*u1[1]+B[2]*v1[1]+C[2];
+
+ if(result->verts==NULL)
+ {result->verts=(CVert*)MEM_mallocN(sizeof(CVert)*(vc+1), "vertices");}
+ else
+ {
+
+ result->verts=(CVert*)MEM_reallocN(result->verts,(sizeof(CVert)*(vc+1)));}
+
+ result->verts[vc].co[0]=x;
+ result->verts[vc].co[1]=y;
+ result->verts[vc].co[2]=z;
+ result->verts[vc].neighbors=NULL;
+ result->verts[vc].edges=NULL;
+ result->verts[vc].flag=0;
// result->verts[vc].flag|=CV_INTEGER;
result->verts[vc].numNeighbors=0;
@@ -1380,8 +1479,8 @@
vc++;
+
}
- }
}
@@ -1398,8 +1497,141 @@
v1[1]=verticesv[j].v[1];
+ if(u1[0]>u1[1])
+ {
+ double temp=u1[0];
+ u1[0]=u1[1];
+ u1[1]=temp;
+
+ }
+
+ x=A[0]*u1[0]+B[0]*v1[0]+C[0];
+ y=A[1]*u1[0]+B[1]*v1[0]+C[1];
+ z=A[2]*u1[0]+B[2]*v1[0]+C[2];
+
+ if(result->verts==NULL)
+ {result->verts=(CVert*)MEM_mallocN(sizeof(CVert)*(vc+1), "vertices");}
+ else
+ {
+
+ result->verts=(CVert*)MEM_reallocN(result->verts,(sizeof(CVert)*(vc+1)));}
+
+ result->verts[vc].co[0]=x;
+ result->verts[vc].co[1]=y;
+ result->verts[vc].co[2]=z;
+ result->verts[vc].neighbors=NULL;
+ result->verts[vc].edges=NULL;
+ result->verts[vc].flag=0;
+ // result->verts[vc].flag|=CV_INTEGER;
+ result->verts[vc].numNeighbors=0;
+
+ result->verts[vc].index=vc;
+
+ vc++;
+
+ int prev=vc-1;
+
+ for(int k=ceil(u1[0]);k<u1[0];k++)
+ {
+
+ int current=vc;
+ if(!vertices[k-uStart][j-vStart].set)
+ {
+
+ vertices[k-uStart][j-vStart].set=1;
+ vertices[k-uStart][j-vStart].index=vc;
+
+ int un=j+vStart;
+ x=A[0]*k+B[0]*un+C[0];
+ y=A[1]*k+B[1]*un+C[1];
+ z=A[2]*k+B[2]*un+C[2];
+
+ if(result->verts==NULL)
+ {result->verts=(CVert*)MEM_mallocN(sizeof(CVert)*(vc+1), "vertices");}
+ else
+ {
+
+ result->verts=(CVert*)MEM_reallocN(result->verts,(sizeof(CVert)*(vc+1)));}
+
+ result->verts[vc].co[0]=x;
+ result->verts[vc].co[1]=y;
+ result->verts[vc].co[2]=z;
+ result->verts[vc].neighbors=NULL;
+ result->verts[vc].edges=NULL;
+ result->verts[vc].flag=0;
+ result->verts[vc].flag|=CV_INTEGER;
+ result->verts[vc].numNeighbors=0;
+
+ result->verts[vc].index=vc;
+
+ vc++;
+
+ //if((fabs(v1[0]-v1[1]))>1e-7)
+
+
+ }
+
+
+
+ else
+ current=vertices[k-uStart][j-vStart].index;
+
+ {
+ if(result->edges==NULL)
+ result->edges=(CEdge*)MEM_mallocN(sizeof(CEdge)*(ec+1), "edges");
+ else
+ result->edges=(CEdge*)MEM_reallocN(result->edges,(sizeof(CEdge)*(ec+1)));
+
+
+ result->edges[ec].v[0]=prev;
+ result->edges[ec].v[1]=current;
+ ec++;
+ }
+ prev=current;
+ }
+
+
+ {
+ if(result->edges==NULL)
+ result->edges=(CEdge*)MEM_mallocN(sizeof(CEdge)*(ec+1), "edges");
+ else
+ result->edges=(CEdge*)MEM_reallocN(result->edges,(sizeof(CEdge)*(ec+1)));
+
+
+ result->edges[ec].v[0]=prev;
+ result->edges[ec].v[1]=vc;
+ ec++;
+ }
+
+ x=A[0]*u1[1]+B[0]*v1[1]+C[0];
+ y=A[1]*u1[1]+B[1]*v1[1]+C[1];
+ z=A[2]*u1[1]+B[2]*v1[1]+C[2];
+
+ if(result->verts==NULL)
+ {result->verts=(CVert*)MEM_mallocN(sizeof(CVert)*(vc+1), "vertices");}
+ else
+ {
+
+ result->verts=(CVert*)MEM_reallocN(result->verts,(sizeof(CVert)*(vc+1)));}
+
+ result->verts[vc].co[0]=x;
+ result->verts[vc].co[1]=y;
+ result->verts[vc].co[2]=z;
+ result->verts[vc].neighbors=NULL;
+ result->verts[vc].edges=NULL;
+ result->verts[vc].flag=0;
+ // result->verts[vc].flag|=CV_INTEGER;
+ result->verts[vc].numNeighbors=0;
+
+ result->verts[vc].index=vc;
+
+ vc++;
+
+
+ }
+
//add edge
- if((fabs(u1[0]-u1[1]))>1e-7)
+/* if((fabs(u1[0]-u1[1]))>1e-7)
{
if(result->edges==NULL)
result->edges=(CEdge*)MEM_mallocN(sizeof(CEdge)*(ec+1), "edges");
@@ -1411,8 +1643,8 @@
result->edges[ec].v[1]=vc+1;
ec++;
- }
-
+ }*/
+/*
for(int k=0;k<2;k++)
{
x=A[0]*u1[k]+B[0]*v1[k]+C[0];
@@ -1440,7 +1672,7 @@
vc++;
}
- }
+ }*/
}
/*
@@ -1500,16 +1732,8 @@
}
*/
-
-
-
-
-
//Take care of all internal points
-
-
-
/*
int check=0;
for(int j=uStart-1;j<uStart+uRange+1;j++)
Modified: branches/soc-2010-rohith291991/source/blender/modifiers/intern/MOD_quadrangulate.c
===================================================================
--- branches/soc-2010-rohith291991/source/blender/modifiers/intern/MOD_quadrangulate.c 2010-08-17 20:53:07 UTC (rev 31428)
+++ branches/soc-2010-rohith291991/source/blender/modifiers/intern/MOD_quadrangulate.c 2010-08-17 21:10:10 UTC (rev 31429)
@@ -309,7 +309,7 @@
generateVoronoiCells(&cm,&hm,h,bs,factor);
-
+ h*=factor;
generateDirectionField(&cm);
@@ -336,6 +336,7 @@
copyHC(&hm1,&cm);
//printf("asfsaf\n");
+
mi_quad_param(&hm1,h);
//printf("asafsfsffsaf\n");
More information about the Bf-blender-cvs
mailing list