[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [30095] branches/soc-2010-rohith291991: Additions to parametrization.

Rohith B V rohith291991 at gmail.com
Wed Jul 7 23:57:57 CEST 2010


Revision: 30095
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30095
Author:   rohith291991
Date:     2010-07-07 23:57:57 +0200 (Wed, 07 Jul 2010)

Log Message:
-----------
Additions to parametrization.

Modified Paths:
--------------
    branches/soc-2010-rohith291991/intern/comiso/extern/CMesh.h
    branches/soc-2010-rohith291991/intern/comiso/intern/CMesh.cpp
    branches/soc-2010-rohith291991/intern/comiso/intern/comiso.cpp
    branches/soc-2010-rohith291991/source/blender/modifiers/intern/MOD_quadrangulate.c

Modified: branches/soc-2010-rohith291991/intern/comiso/extern/CMesh.h
===================================================================
--- branches/soc-2010-rohith291991/intern/comiso/extern/CMesh.h	2010-07-07 19:35:39 UTC (rev 30094)
+++ branches/soc-2010-rohith291991/intern/comiso/extern/CMesh.h	2010-07-07 21:57:57 UTC (rev 30095)
@@ -12,6 +12,7 @@
 
 //flags for CVert
 #define CV_MARKED (1)
+#define CV_SINGULARITY (1<<2)
 
 struct CFace;
 struct CEdge;
@@ -25,6 +26,8 @@
 int index; //Index of the vertex
 int flag; //Flag for various purposes (if needed)
 int numNeighbors; //Number of neighboring vertices
+float u; //u Parameter
+float v; //v Parameter
 float co[3]; //Coordinates of the vertex
 
 }CVert;

Modified: branches/soc-2010-rohith291991/intern/comiso/intern/CMesh.cpp
===================================================================
--- branches/soc-2010-rohith291991/intern/comiso/intern/CMesh.cpp	2010-07-07 19:35:39 UTC (rev 30094)
+++ branches/soc-2010-rohith291991/intern/comiso/intern/CMesh.cpp	2010-07-07 21:57:57 UTC (rev 30095)
@@ -98,7 +98,6 @@
 								mesh->edges[l].p=0;	
 
 							}
-					
 				}
 
 					}
@@ -187,7 +186,6 @@
 //TODO makes constraints on face theta's
 //call generateConstraints(CMesh* mesh) 
 
-
 for(int i=0;i<totface;i++)
 	{
     
@@ -208,7 +206,6 @@
 		solver.mdata[t].value=-2;
 		t++;
 
-
 		double x1,x2,y1,y2,z1,z2,x3,y3,z3;
 
 		int v1,v2,v3,v4,v5,v6;
@@ -285,7 +282,6 @@
 
 solver.mnnz=t;
 	
-
 //set period jumps to be rounded
 solver.nr=totedge;
 solver.rdata=(int *)MEM_mallocN(sizeof(int)*totedge, "rdata");
@@ -295,7 +291,6 @@
     solver.rdata[a]=a+totface;	
 	}
 
-
 t=0;
 
 for(int i=0;i<totface;i++)
@@ -397,7 +392,6 @@
 totface=mesh->numFaces;
 std::vector< std::vector <int> > currentFaces; //List of faces to expand for BFS/Dijkstra
 
-
 for(int i=0;i<mesh->numFaces;i++)
 			{
 			mesh->faces[i].flag=0;
@@ -410,8 +404,6 @@
 			//mesh->faces[i].group=mesh->faces[i].index;	
 			}
 
-
-
 mesh->faces[0].flag|=CF_CONSTRAINED|CF_VISITED;
 mesh->faces[0].group=0;
 
@@ -464,6 +456,8 @@
 //
 */
 
+// BFS over Dual Mesh
+
 int terminate=1;
 
 while(terminate)
@@ -584,5 +578,36 @@
 
 }
 
+//BFS from each singularity vertex
+
+for (int i=0;i<totvert;i++)
+	{
+	
+	int psum=0;
+
+	for (int j=0;j<mesh->verts[i].numNeighbors;j++)
+		{
+		
+		int e=mesh->verts[i].edges[j];
+		psum+=mesh->edges[e].p;
+		//if(mesh->edges[e].p!=0)
+		printf("Edge: %d\n",e);	
+
+		}
+
+	if(psum!=0)
+		{
+		
+		mesh->verts[i].flag|=CV_SINGULARITY;
+		printf("Vertex: %d\n",mesh->verts[i].index);
+
+
+		}
+
+
+	}
+
+
+
 return 1;
 }
\ No newline at end of file

Modified: branches/soc-2010-rohith291991/intern/comiso/intern/comiso.cpp
===================================================================
--- branches/soc-2010-rohith291991/intern/comiso/intern/comiso.cpp	2010-07-07 19:35:39 UTC (rev 30094)
+++ branches/soc-2010-rohith291991/intern/comiso/intern/comiso.cpp	2010-07-07 21:57:57 UTC (rev 30095)
@@ -44,9 +44,7 @@
 	b.resize( dimm);
 	b=_B.col(dimn-1);
 	_b.resize(dimm);
-
 	
-
 	for(i=0;i<dimm;i++)
 		{
 		_b[i]=b[i]; 

Modified: branches/soc-2010-rohith291991/source/blender/modifiers/intern/MOD_quadrangulate.c
===================================================================
--- branches/soc-2010-rohith291991/source/blender/modifiers/intern/MOD_quadrangulate.c	2010-07-07 19:35:39 UTC (rev 30094)
+++ branches/soc-2010-rohith291991/source/blender/modifiers/intern/MOD_quadrangulate.c	2010-07-07 21:57:57 UTC (rev 30095)
@@ -123,6 +123,7 @@
 		cm.verts[a].index = a;
 		cm.verts[a].flag = 0;
 		cm.verts[a].neighbors = NULL;
+		cm.verts[a].edges=NULL;
 		cm.verts[a].numNeighbors = 0;
 		
 		}
@@ -227,10 +228,47 @@
 
 			}
 
+			for (i=0;i<totedge;i++)
+{
+
+int v1,v2;
+
+v1=cm.edges[i].v[0];
+v2=cm.edges[i].v[1];
+
+                   if(cm.verts[v1].neighbors==NULL)
+					   {
+					   cm.verts[v1].neighbors=MEM_mallocN((sizeof(int)*(++cm.verts[v1].numNeighbors)),"neighbors");
+					   cm.verts[v1].edges=MEM_mallocN((sizeof(int)*(cm.verts[v1].numNeighbors)),"edges");
+					   }
+				   else
+					   {
+					   cm.verts[v1].neighbors=MEM_reallocN(cm.verts[v1].neighbors,(sizeof(int)*(++cm.verts[v1].numNeighbors)));
+					   cm.verts[v1].edges=MEM_reallocN(cm.verts[v1].edges,(sizeof(int)*(cm.verts[v1].numNeighbors)));
+					   }
+
+				   cm.verts[v1].neighbors[cm.verts[v1].numNeighbors-1]=cm.verts[v2].index;
+				   cm.verts[v1].edges[cm.verts[v1].numNeighbors-1]=cm.edges[i].index;
+
+				   if(cm.verts[v2].neighbors==NULL)
+					   {
+					   cm.verts[v2].neighbors=MEM_mallocN((sizeof(int)*(++cm.verts[v2].numNeighbors)),"neighbors");
+					   cm.verts[v2].edges=MEM_mallocN((sizeof(int)*(cm.verts[v2].numNeighbors)),"edges");
+					   }
+				   else
+					   {
+					   cm.verts[v2].neighbors=MEM_reallocN(cm.verts[v2].neighbors,(sizeof(int)*(++cm.verts[v2].numNeighbors)));
+					   cm.verts[v2].edges=MEM_reallocN(cm.verts[v2].edges,(sizeof(int)*(cm.verts[v2].numNeighbors)));
+					   }
+
+				   cm.verts[v2].neighbors[cm.verts[v2].numNeighbors-1]=cm.verts[v1].index;
+				   cm.verts[v2].edges[cm.verts[v2].numNeighbors-1]=cm.edges[i].index;
+
+}
 			cm.faces[3].flag |= CF_CONSTRAINED;
 			cm.faces[3].theta=1.3;
 			cm.faces[10].flag |= CF_CONSTRAINED;
-			cm.faces[10].theta=2.35;	
+			cm.faces[10].theta=2.35;
 			cm.faces[25].flag |= CF_CONSTRAINED;
  			cm.faces[25].theta=6.3;
 			cm.faces[50].flag |= CF_CONSTRAINED;
@@ -258,12 +296,12 @@
 			generateDirectionField(&cm);
 			generateParametrization(&cm,0.5);
 
-				for(a=0;a<totedge;a++)
+/*				for(a=0;a<totedge;a++)
 				if(!(cm.edges[a].flag &	CE_MARKED))
 					{
 					printf("Edge not marked: %d\n",cm.edges[a].index);
 					medge[a].flag |=ME_SHARP;
-					}
+					}*/
 
 			
 	// Extract face angles, period jumps and other relevant data from the mesh





More information about the Bf-blender-cvs mailing list