Beispiel #1
0
// Add plot point
void PlotAgent::add_point(const string& v, int dim)
{
    values[values.size() - 1] = v;
    dims[dims.size() - 1] = dim;

    add_v(atof(v.chars()));
}
void compute_midpoint_butterfly_crease(const struct ring_info *rings, 
                                       const int center,  
				       const int v1, 
                                       const struct model *raw_model, 
				       float (*sph_h_func)(const float),
				       vertex_t *vout) 
{
  int n = rings[center].size;
  struct ring_info ring = rings[center];
  int center2 = ring.ord_vert[v1];
  struct ring_info ring_op = rings[center2]; /* center of opp ring */
  int m = ring_op.size;
  int v2 = 0; /* index of center vertex_t in opp. ring */
  int v3 = -1, v4 = -1;
  vertex_t p, q, np, r;

  p = raw_model->vertices[center];
  q = raw_model->vertices[center2];
  
  while (ring_op.ord_vert[v2] != center)
    v2++;


  if (ring.type == 1 && ring_op.type == 1) {
    
    __add_v(p, q, np);
    
    if (ring.ord_vert[0] == center2)
      v3 = ring.ord_vert[n - 1];
    else if (ring.ord_vert[n - 1] == center2)
      v3 = ring.ord_vert[0];
    else { /* we have a non-boundary -> midpoint */
      prod_v(0.5, &np, vout);
      return;
    }

    if (ring_op.ord_vert[0] == center)
      v4 = ring_op.ord_vert[m-1];
    else if (ring_op.ord_vert[m-1] == center)
      v4 = ring_op.ord_vert[0];
    else {
      prod_v(0.5, &np, vout);
      return;
    }

    /* If we are here, we found a true boundary */
    __prod_v(0.5625, np, np);
    __add_v(raw_model->vertices[v3], raw_model->vertices[v4], r);
    __prod_v(-0.0625, r, r);
    add_v(&np, &r, vout);
  } else if (ring.type == 1) 
    compute_midpoint_butterfly(rings, center2, v2, 
                               raw_model, sph_h_func, vout);
  else
    compute_midpoint_butterfly(rings, center, v1, 
                               raw_model, sph_h_func, vout);
}
Beispiel #3
0
void PlotAgent::add_point(double x, double y, const string& v)
{
    assert(ndim == 3);

    plot_os << x << '\t' << y << '\t' << v << '\n';
    add_x(x);
    add_y(y);
    add_v(atof(v.chars()));
}
Beispiel #4
0
void PlotAgent::add_point(double x, const string& v)
{
    if (ndim > 2)
	add_point(x, 0.0, v);
    else
    {
	plot_os << x << '\t' << v << '\n';
	add_x(x);
	add_v(atof(v.chars()));
    }
}
Beispiel #5
0
int main(){
    int x=0,y=0,z=0;
    
    x=10;y=20;
    z = add_v(x,y);
    printf("callbyvalue:\nx= %d\ty= %d\tz= %d\n",x,y,z);
    
    x=10;y=20;
    add_a(&x,&y,&z);
    printf("callbyadress:\nx= %d\ty= %d\tz= %d\n",x,y,z);

    printf("\n\n");
    system("pause");
    return 0;
}
int main( int argc, char* argv[] )
{

	Seiseki		seito1, seito2;
	Seiseki		seito3;

	seito1.a = 40;
	seito2.a = 80;

	// show data
	printf("seito3.a=%d\n", seito3.a);
	printf("seito3=%p(%%p) seito3=%p(&)",
				seito3, &seito3);

	// add_v
	printf("\n[add_v]\n");
	seito3 = add_v(seito1, seito2);
	printf("seito3.a=%d\n", seito3.a);
	printf("seito3=%p(%%p) seito3=%p(&)",
				seito3, &seito3);

	return 0;
}