37 #define TRI_LOCAL_EPSILON 0.000001f
38 #define MIN_EDGE_EDGE_DIS 0.00001f
81 scale_edge0 = -D2/(D0-D2);
82 scale_edge1 = -D1/(D2-D1);
83 edge_index0 = 2;edge_index1 = 1;
88 scale_edge0 = -D0/(D1-D0);
89 scale_edge1 = -D1/(D2-D1);
90 edge_index0 = 0;edge_index1 = 1;
92 else if(D1*D2>0.0f || D0!=0.0f)
95 scale_edge0 = -D0/(D1-D0);
96 scale_edge1 = -D2/(D0-D2);
97 edge_index0 = 0 ;edge_index1 = 2;
120 EDGE_PLANE(tripoints[0],tripoints[1],tri_plane,edgeplane);
123 edgeplane,srcpoints[0],srcpoints[1],srcpoints[2],
temp_points);
125 if(clipped_count == 0)
return 0;
129 EDGE_PLANE(tripoints[1],tripoints[2],tri_plane,edgeplane);
134 if(clipped_count == 0)
return 0;
138 EDGE_PLANE(tripoints[2],tripoints[0],tri_plane,edgeplane);
143 return clipped_count;
217 GREAL tu_scale_e0,tu_scale_e1;
219 du0du1,
du0du2,tu_scale_e0,tu_scale_e1,tu_e0,tu_e1))
return 0;
223 GREAL tv_scale_e0,tv_scale_e1;
226 dv0dv1,
dv0dv2,tv_scale_e0,tv_scale_e1,tv_e0,tv_e1))
return 0;
239 sort_isect(isect_u[0],isect_u[1],tu_e0,tu_e1,up_e0,up_e1);
240 sort_isect(isect_v[0],isect_v[1],tv_e0,tv_e1,vp_e0,vp_e1);
242 const GREAL midpoint_u = 0.5f*(isect_u[0]+isect_u[1]);
243 const GREAL midpoint_v = 0.5f*(isect_v[0]+isect_v[1]);
245 if(midpoint_u<midpoint_v)
247 if(isect_u[1]>=isect_v[1])
251 else if(isect_v[0]<=isect_u[0])
281 if(isect_v[1]>=isect_u[1])
285 else if(isect_u[0]<=isect_v[0])
329 margin = margin_u + margin_v;
475 if(point_count == 0)
return false;
481 if(point_count == 0)
return false;