[]Struct pango::Matrix

pub struct Matrix(_);

A structure specifying a transformation between user-space coordinates and device coordinates. The transformation is given by

<programlisting> x_device = x_user * matrix->xx + y_user * matrix->xy + matrix->x0; y_device = x_user * matrix->yx + y_user * matrix->yy + matrix->y0; </programlisting>

Implementations

impl Matrix[src]

pub fn concat(&mut self, new_matrix: &Matrix)[src]

Changes the transformation represented by self to be the transformation given by first applying transformation given by new_matrix then applying the original transformation.

new_matrix

a Matrix

pub fn get_font_scale_factor(&self) -> f64[src]

Returns the scale factor of a matrix on the height of the font. That is, the scale factor in the direction perpendicular to the vector that the X coordinate is mapped to. If the scale in the X coordinate is needed as well, use Matrix::get_font_scale_factors.

Returns

the scale factor of self on the height of the font, or 1.0 if self is None.

pub fn get_font_scale_factors(&self) -> (f64, f64)[src]

Calculates the scale factor of a matrix on the width and height of the font. That is, xscale is the scale factor in the direction of the X coordinate, and yscale is the scale factor in the direction perpendicular to the vector that the X coordinate is mapped to.

Note that output numbers will always be non-negative.

Feature: v1_38

xscale

output scale factor in the x direction, or None

yscale

output scale factor perpendicular to the x direction, or None

pub fn rotate(&mut self, degrees: f64)[src]

Changes the transformation represented by self to be the transformation given by first rotating by degrees degrees counter-clockwise then applying the original transformation.

degrees

degrees to rotate counter-clockwise

pub fn scale(&mut self, scale_x: f64, scale_y: f64)[src]

Changes the transformation represented by self to be the transformation given by first scaling by sx in the X direction and sy in the Y direction then applying the original transformation.

scale_x

amount to scale by in X direction

scale_y

amount to scale by in Y direction

pub fn transform_distance(&self, dx: &mut f64, dy: &mut f64)[src]

Transforms the distance vector (dx,dy) by self. This is similar to Matrix::transform_point except that the translation components of the transformation are ignored. The calculation of the returned vector is as follows:

<programlisting> dx2 = dx1 * xx + dy1 * xy; dy2 = dx1 * yx + dy1 * yy; </programlisting>

Affine transformations are position invariant, so the same vector always transforms to the same vector. If (x1,y1) transforms to (x2,y2) then (x1+dx1,y1+dy1) will transform to (x1+dx2,y1+dy2) for all values of x1 and x2.

dx

in/out X component of a distance vector

dy

in/out Y component of a distance vector

pub fn transform_point(&self, x: &mut f64, y: &mut f64)[src]

Transforms the point (x, y) by self.

x

in/out X position

y

in/out Y position

pub fn translate(&mut self, tx: f64, ty: f64)[src]

Changes the transformation represented by self to be the transformation given by first translating by (tx, ty) then applying the original transformation.

tx

amount to translate in the X direction

ty

amount to translate in the Y direction

Trait Implementations

impl Clone for Matrix

impl Debug for Matrix[src]

impl Eq for Matrix[src]

impl Hash for Matrix[src]

impl Ord for Matrix[src]

impl PartialEq<Matrix> for Matrix[src]

impl PartialOrd<Matrix> for Matrix[src]

impl StaticType for Matrix

impl StructuralEq for Matrix[src]

impl StructuralPartialEq for Matrix[src]

Auto Trait Implementations

impl RefUnwindSafe for Matrix

impl !Send for Matrix

impl !Sync for Matrix

impl Unpin for Matrix

impl UnwindSafe for Matrix

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToSendValue for T where
    T: ToValue + SetValue + Send + ?Sized

impl<T> ToValue for T where
    T: SetValue + ?Sized

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.