[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