示例#1
0
 Material MaterialF0D::operator()(Interface0DIterator& iter) {
   FEdge *fe1, *fe2;
   getFEdges(iter,fe1,fe2);
   
   if(fe1 == 0)
     getFEdges(iter, fe1, fe2);
   Material mat;
   if(fe1->isSmooth())
     mat = ((FEdgeSmooth*)fe1)->material();
   else
     mat = ((FEdgeSharp*)fe1)->bMaterial();
   //    const SShape * sshape = getShapeF0D(iter);
   //    return sshape->material();
   return mat;
 }
示例#2
0
 real ZDiscontinuityF0D::operator()(Interface0DIterator& iter) {
   FEdge *fe1, *fe2;
   getFEdges(iter, fe1, fe2);
   real result ;
   result = fe1->z_discontinuity();
   if(fe2!=0){
     result += fe2->z_discontinuity();
     result /= 2.f;
   }
   return result;
 }
int ZDiscontinuityF0D::operator()(Interface0DIterator& iter)
{
	FEdge *fe1, *fe2;
	getFEdges(iter, fe1, fe2);
	result = fe1->z_discontinuity();
	if (fe2 != NULL) {
		result += fe2->z_discontinuity();
		result /= 2.0f;
	}
	return 0;
}
void getViewEdges(Interface0DIterator &it, ViewEdge *&ve1, ViewEdge *&ve2)
{
	FEdge *fe1, *fe2;
	getFEdges(it, fe1, fe2);
	ve1 = fe1->viewedge();
	if (fe2 != NULL) {
		ve2 = fe2->viewedge();
		if (ve2 == ve1)
			ve2 = NULL;
	}
	else {
		ve2 = NULL;
	}
}
int MaterialF0D::operator()(Interface0DIterator& iter)
{
	FEdge *fe1, *fe2;
	getFEdges(iter, fe1, fe2);
	if (fe1 == NULL)
		return -1;
	if (fe1->isSmooth())
		result = ((FEdgeSmooth *)fe1)->frs_material();
	else
		result = ((FEdgeSharp *)fe1)->bFrsMaterial();
#if 0
	const SShape *sshape = getShapeF0D(iter);
	return sshape->material();
#endif
	return 0;
}
int Normal2DF0D::operator()(Interface0DIterator& iter)
{
	FEdge *fe1, *fe2;
	getFEdges(iter, fe1, fe2);
	Vec3f e1(fe1->orientation2d());
	Vec2f n1(e1[1], -e1[0]);
	Vec2f n(n1);
	if (fe2 != NULL) {
		Vec3f e2(fe2->orientation2d());
		Vec2f n2(e2[1], -e2[0]);
		n += n2;
	}
	n.normalize();
	result = n;
	return 0;
}
示例#7
0
  Vec2f Normal2DF0D::operator()(Interface0DIterator& iter) {
    printf("Normal2DF0D::operator() 1\n");


    FEdge *fe1, *fe2;
    getFEdges(iter,fe1,fe2);
    Vec3f e1(fe1->orientation2d());
    Vec2f n1(e1[1], -e1[0]);
    Vec2f n(n1);
    if(fe2 != 0)
      {
	Vec3f e2(fe2->orientation2d());
	Vec2f n2(e2[1], -e2[0]);
	n += n2;
      }
    n.normalize();
    return n;
  }