Ejemplo n.º 1
0
int main()
{
	TPPLPoly poly;
	{
		float x = 2.0f;
		float buf[] = { -x, -x, x, -x, x, x, -x, x };
		make_poly(buf, 4, poly);
	}

	TPPLPoly hole;
	{
		float x = 1.0f;
		// float buf[] = { -x, -x, x, -x, x, x, 0, 0, -x, x };
		float buf[] = {-x,-x, -x,x, 0,0, x,x, x,-x};
		make_poly(buf, 5, hole);
	}

	std::list< TPPLPoly > list;
	list.push_back(poly);
	list.push_back(hole);

	std::list< TPPLPoly > triangles;

	TPPLPartition pp;
	if (!pp.Triangulate_EC(&list, &triangles))
	{
		printf("failed\n");
	}

	return 0;
}
Ejemplo n.º 2
0
 virtual void onDrawContent(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
     paint.setStyle(SkPaint::kStroke_Style);
     SkMatrix matrix;
     matrix.setScale(SkIntToScalar(100), SkIntToScalar(100));
     matrix.postTranslate(SkIntToScalar(200), SkIntToScalar(200));
     canvas->concat(matrix);
     for (int n = 3; n < 20; n++) {
         SkPath path;
         make_poly(&path, n);
         SkAutoCanvasRestore acr(canvas, true);
         canvas->rotate(SkIntToScalar(10) * (n - 3));
         canvas->translate(-SK_Scalar1, 0);
         canvas->drawPath(path, paint);
     }
 }
Ejemplo n.º 3
0
static void build_polys(void) {
  poly_buffer_t aux;
  int32_t a[4];
  int32_t x[4];

  init_poly_buffer(&aux);
  a[0] = 0;
  poly[0] = make_poly(&aux, a, NULL, 1);  // 0

  a[0] = 1;
  poly[1] = make_poly(&aux, a, NULL, 1); // 1

  a[0] = -100;
  poly[2] = make_poly(&aux, a, NULL, 1); // -100

  poly[3] = NULL;
  poly[4] = NULL;
  poly[5] = NULL;

  a[0] = 0;
  a[1] = 1;  x[1] = 3;
  a[2] = -1; x[2] = 4;
  poly[6] = make_poly(&aux, a, x, 3); // x3 - x4

  a[0] = 0;
  a[1] = 1;  x[1] = 5;
  a[2] = -1; x[2] = 4;
  poly[7] = make_poly(&aux, a, x, 3); // x5 - x4

  a[0] = 2;
  a[1] = 1; x[1] = 3;
  a[2] = 1; x[2] = 4;
  poly[8] = make_poly(&aux, a, x, 3); // 2 + x3 + x4

  a[0] = 0;
  a[1] = 1; x[1] = 3;
  a[2] = 2; x[2] = 5;
  poly[9] = make_poly(&aux, a, x, 3); // x3 + 2 * x5

  delete_poly_buffer(&aux);
}