Ejemplo n.º 1
0
 Vec2f Orientation2DF1D::operator()(Interface1D& inter) {
   FEdge * fe = dynamic_cast<FEdge*>(&inter);
   if(fe){
     Vec3r res = fe->orientation2d();
     return Vec2f(res[0], res[1]);
   }
   return integrate(_func, inter.verticesBegin(), inter.verticesEnd(), _integration);
 }
Ejemplo n.º 2
0
 unsigned QuantitativeInvisibilityF1D::operator()(Interface1D& inter) {
   ViewEdge* ve = dynamic_cast<ViewEdge*>(&inter);
   if (ve)
     return ve->qi();
   FEdge *fe = dynamic_cast<FEdge*>(&inter);
   if(fe)
     return ve->qi();
   return integrate(_func, inter.verticesBegin(), inter.verticesEnd(), _integration);
 }
Ejemplo n.º 3
0
 void getShapeF1D(Interface1D& inter, set<ViewShape*>& oShapes){
   ViewEdge* ve = dynamic_cast<ViewEdge*>(&inter);
   if (ve){
     oShapes.insert(ve->viewShape());
   }else{
     Interface0DIterator it=inter.verticesBegin(), itend=inter.verticesEnd();
     for(;it!=itend;++it)
       oShapes.insert(Functions0D::getShapeF0D(it));
   }
 }
Ejemplo n.º 4
0
 vector<ViewShape*> GetShapeF1D::operator()(Interface1D& inter) {
   vector<ViewShape*> shapesVector;
   set<ViewShape*> shapesSet;
   ViewEdge* ve = dynamic_cast<ViewEdge*>(&inter);
   if (ve){
     shapesVector.push_back(ve->viewShape());
   }else{
     Interface0DIterator it=inter.verticesBegin(), itend=inter.verticesEnd();
     for(;it!=itend;++it)
       shapesSet.insert(Functions0D::getShapeF0D(it));
     shapesVector.insert<set<ViewShape*>::iterator>(shapesVector.begin(), shapesSet.begin(), shapesSet.end());
   }
   return shapesVector;
 }
Ejemplo n.º 5
0
 vector<ViewShape*> GetOccludersF1D::operator()(Interface1D& inter) {
   vector<ViewShape*> shapesVector;
   set<ViewShape*> shapesSet;
   ViewEdge* ve = dynamic_cast<ViewEdge*>(&inter);
   if (ve){
     return ve->occluders();
   }else{
     Interface0DIterator it=inter.verticesBegin(), itend=inter.verticesEnd();
     for(;it!=itend;++it){
       Functions0D::getOccludersF0D(it, shapesSet);
     }
     shapesVector.insert(shapesVector.begin(), shapesSet.begin(), shapesSet.end());
   }
   return shapesVector;
 }
Ejemplo n.º 6
0
int QuantitativeInvisibilityF1D::operator()(Interface1D &inter)
{
  ViewEdge *ve = dynamic_cast<ViewEdge *>(&inter);
  if (ve) {
    result = ve->qi();
    return 0;
  }
  FEdge *fe = dynamic_cast<FEdge *>(&inter);
  if (fe) {
    result = fe->qi();
    return 0;
  }
  result = integrate(_func, inter.verticesBegin(), inter.verticesEnd(), _integration);
  return 0;
}
Ejemplo n.º 7
0
 Nature::EdgeNature CurveNatureF1D::operator()(Interface1D& inter) {
   ViewEdge* ve = dynamic_cast<ViewEdge*>(&inter);
   if (ve)
     return ve->getNature();
   else{
     // we return a nature that contains every 
     // natures of the viewedges spanned by the chain.
     Nature::EdgeNature nat = Nature::NO_FEATURE;
     Interface0DIterator it = inter.verticesBegin();
     while(!it.isEnd()){
       nat |= _func(it);
       ++it;
     }
     return nat;
   }
 }
Ejemplo n.º 8
0
 void getOccludeeF1D(Interface1D& inter, set<ViewShape*>& oShapes){
   ViewEdge* ve = dynamic_cast<ViewEdge*>(&inter);
   if (ve){
     ViewShape * aShape = ve->aShape();
     if(aShape == 0){
       oShapes.insert(0);
       return;
     }
     oShapes.insert(aShape);
   }
   else{
     Interface0DIterator it=inter.verticesBegin(), itend=inter.verticesEnd();
     for(;it!=itend;++it)
       oShapes.insert(Functions0D::getOccludeeF0D(it));
   }
 }
Ejemplo n.º 9
0
void getOccludersF1D(Interface1D& inter, set<ViewShape*>& oShapes)
{
	ViewEdge *ve = dynamic_cast<ViewEdge*>(&inter);
	if (ve) {
		vector<ViewShape*>& occluders = ve->occluders();
		oShapes.insert<vector<ViewShape*>::iterator>(occluders.begin(), occluders.end());
	}
	else {
		Interface0DIterator it = inter.verticesBegin(), itend = inter.verticesEnd();
		for (; it != itend; ++it) {
			set<ViewShape*> shapes;
			Functions0D::getOccludersF0D(it, shapes);
			for (set<ViewShape*>::iterator s = shapes.begin(), send = shapes.end(); s != send; ++s)
				oShapes.insert(*s);
		}
	}
}
Ejemplo n.º 10
0
int GetOccludeeF1D::operator()(Interface1D& inter)
{
	vector<ViewShape*> shapesVector;
	set<ViewShape*> shapesSet;
	ViewEdge *ve = dynamic_cast<ViewEdge*>(&inter);
	if (ve) {
		ViewShape *aShape = ve->aShape();
		if (aShape) {
			shapesVector.push_back(aShape);
		}
	}
	else {
		Interface0DIterator it = inter.verticesBegin(), itend = inter.verticesEnd();
		for (; it != itend; ++it) {
			shapesSet.insert(Functions0D::getOccludeeF0D(it));
		}
		shapesVector.insert<set<ViewShape*>::iterator>(shapesVector.begin(), shapesSet.begin(), shapesSet.end());
	}
	result = shapesVector;
	return 0;
}
Ejemplo n.º 11
0
int ZDiscontinuityF1D::operator()(Interface1D& inter)
{
	result = integrate(_func, inter.verticesBegin(), inter.verticesEnd(), _integration);
	return 0;
}
Ejemplo n.º 12
0
int Orientation3DF1D::operator()(Interface1D& inter)
{
	result = integrate(_func, inter.verticesBegin(), inter.verticesEnd(), _integration);
	return 0;
}
Ejemplo n.º 13
0
int GetProjectedZF1D::operator()(Interface1D& inter)
{
	result = integrate(_func, inter.verticesBegin(), inter.verticesEnd(), _integration);
	return 0;
}
Ejemplo n.º 14
0
 real GetProjectedYF1D::operator()(Interface1D& inter) {
   return integrate(_func, inter.verticesBegin(), inter.verticesEnd(), _integration);
 }