[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