static PyObject *
pycairo_get_matrix (PycairoContext *o)
{
    cairo_matrix_t matrix;
    cairo_get_matrix (o->ctx, &matrix);
    return PycairoMatrix_FromMatrix (&matrix);
}
Esempio n. 2
0
static PyObject *
wrap_calculate_correction_matrix_masked(PyObject *self, PyObject *args)
{
	PyObject *result;
	PycairoSurface *py_surface;
	PycairoSurface *py_mask;
	PycairoMatrix *py_matrix;
	cairo_matrix_t *correction_matrix;
	float mm_x, mm_y;
	gdouble covered;

	if (!PyArg_ParseTuple(args, "O!O!O!ff",
	                      &PycairoImageSurface_Type, &py_surface,
	                      &PycairoImageSurface_Type, &py_mask,
	                      &PycairoMatrix_Type, &py_matrix,
	                      &mm_x, &mm_y))
		return NULL;

	correction_matrix = calculate_correction_matrix_masked(py_surface->surface, py_mask->surface, &py_matrix->matrix, mm_x, mm_y, &covered);

	if (correction_matrix) {
		result = PycairoMatrix_FromMatrix(correction_matrix);
		g_free(correction_matrix);
		return Py_BuildValue("Nd", result, covered);
	} else {
		PyErr_SetString(PyExc_AssertionError, "Could not calculate the corrected matrix!");
		return NULL;
	}
}
Esempio n. 3
0
static PyObject *
scaled_font_get_scale_matrix (PycairoScaledFont *o)
{
    cairo_matrix_t matrix;
    cairo_scaled_font_get_scale_matrix (o->scaled_font, &matrix);
    return PycairoMatrix_FromMatrix (&matrix);
}
Esempio n. 4
0
static PyObject *
wrap_calculate_matrix(PyObject *self, PyObject *args)
{
	PyObject *result;
	PycairoSurface *py_surface;
	PycairoMatrix *py_matrix;
	cairo_matrix_t *matrix;
	float mm_x, mm_y, mm_width, mm_height;

	if (!PyArg_ParseTuple(args, "O!O!ffff",
	                      &PycairoImageSurface_Type, &py_surface,
	                      &PycairoMatrix_Type, &py_matrix,
	                      &mm_x, &mm_y, &mm_width, &mm_height))
		return NULL;

	matrix = calculate_matrix(py_surface->surface, &py_matrix->matrix, mm_x, mm_y, mm_width, mm_height);

	if (matrix) {
		result = PycairoMatrix_FromMatrix(matrix);
		g_free(matrix);
		return result;
	} else {
		PyErr_SetString(PyExc_AssertionError, "Could not calculate the matrix!");
		return NULL;
	}
}
static PyObject *
matrix_multiply (PycairoMatrix *o, PycairoMatrix *o2)
{
    cairo_matrix_t result;
    cairo_matrix_multiply (&result, &o->matrix, &o2->matrix);
    return PycairoMatrix_FromMatrix (&result);
}
Esempio n. 6
0
static PyObject *
pattern_get_matrix (PycairoPattern *o)
{
    cairo_matrix_t matrix;
    cairo_pattern_get_matrix (o->pattern, &matrix);
    return PycairoMatrix_FromMatrix (&matrix);
}
Esempio n. 7
0
static PyObject *
matrix_init_rotate (PyTypeObject *type, PyObject *args) {
  cairo_matrix_t matrix;
  double radians;

  if (!PyArg_ParseTuple(args, "d:Matrix.init_rotate", &radians))
    return NULL;

  cairo_matrix_init_rotate (&matrix, radians);
  return PycairoMatrix_FromMatrix (&matrix);
}
Esempio n. 8
0
/* cairo_matrix_multiply */
static PyObject *
matrix_multiply (PycairoMatrix *o, PyObject *args) {
  PycairoMatrix *mx2;

  if (!PyArg_ParseTuple(args, "O!:Matrix.multiply",
			&PycairoMatrix_Type, &mx2))
    return NULL;

  cairo_matrix_t result;
  cairo_matrix_multiply (&result, &o->matrix, &mx2->matrix);
  return PycairoMatrix_FromMatrix (&result);
}
Esempio n. 9
0
static PyObject *
matrix_new (PyTypeObject *type, PyObject *args, PyObject *kwds) {
  static char *kwlist[] = { "xx", "yx", "xy", "yy", "x0", "y0", NULL };
  double xx = 1.0, yx = 0.0, xy = 0.0, yy = 1.0, x0 = 0.0, y0 = 0.0;

  if (!PyArg_ParseTupleAndKeywords(args, kwds,
				   "|dddddd:Matrix.__init__", kwlist,
				   &xx, &yx, &xy, &yy, &x0, &y0))
    return NULL;

  cairo_matrix_t mx;
  cairo_matrix_init (&mx, xx, yx, xy, yy, x0, y0);
  return PycairoMatrix_FromMatrix (&mx);
}
static PyObject *
_cairo_matrix_from_gvalue(const GValue *value)
{
    return PycairoMatrix_FromMatrix((cairo_matrix_t *) g_value_get_boxed(value));
}