Subversion Repositories gelsvn

Rev

Rev 170 | Rev 182 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 170 Rev 172
Line 141... Line 141...
141
 
141
 
142
			double delta_energy(HalfEdgeIter he) const
142
			double delta_energy(HalfEdgeIter he) const
143
			{
143
			{
144
				FaceIter f = he->face;
144
				FaceIter f = he->face;
145
				FaceIter f2 = he->opp->face;
145
				FaceIter f2 = he->opp->face;
-
 
146
 
-
 
147
				Vec3d v0(he->vert->pos);
-
 
148
				Vec3d v1(he->next->vert->pos);
-
 
149
				Vec3d v2(he->opp->vert->pos);
-
 
150
				Vec3d v3(he->opp->next->vert->pos);
-
 
151
 
-
 
152
				Vec3d n1a = normalize(cross(v1-v0,v3-v0));
146
				double t = dot(normal(f), normal(f2));
153
				Vec3d n2a = normalize(cross(v3-v2,v1-v2));
147
				if(t> thresh)
154
				if(dot(n1a,n2a)> thresh)
148
					{
155
					{
149
						Vec3d v0(he->vert->pos);
-
 
150
						Vec3d v1(he->next->vert->pos);
-
 
151
						Vec3d v2(he->opp->vert->pos);
-
 
152
						Vec3d v3(he->opp->next->vert->pos);
-
 
153
					
156
					
154
						double before = min(min_angle(v0,v1,v2), min_angle(v0,v2,v3));
157
						double before = min(min_angle(v0,v1,v2), min_angle(v0,v2,v3));
155
						double after = min(min_angle(v0,v1,v3), min_angle(v1,v2,v3));
158
						double after = min(min_angle(v0,v1,v3), min_angle(v1,v2,v3));
156
						return -(after-before);
159
						return -(after-before);
157
					}
160
					}