# Enum gsk4::TransformCategory

source · [−]```
#[non_exhaustive]
pub enum TransformCategory {
Unknown,
Any,
_3d,
_2d,
_2dAffine,
_2dTranslate,
Identity,
// some variants omitted
}
```

## Expand description

The categories of matrices relevant for GSK and GTK.

Note that any category includes matrices of all later categories.
So if you want to for example check if a matrix is a 2D matrix,
`category >= GSK_TRANSFORM_CATEGORY_2D`

is the way to do this.

Also keep in mind that rounding errors may cause matrices to not
conform to their categories. Otherwise, matrix operations done via
multiplication will not worsen categories. So for the matrix
multiplication `C = A * B`

, `category(C) = MIN (category(A), category(B))`

.

## Variants (Non-exhaustive)

## This enum is marked as non-exhaustive

`Unknown`

The category of the matrix has not been determined.

`Any`

Analyzing the matrix concluded that it does not fit in any other category.

`_3d`

The matrix is a 3D matrix. This means that the w column (the last column) has the values (0, 0, 0, 1).

`_2d`

The matrix is a 2D matrix. This is equivalent
to graphene_matrix_is_2d() returning `true`

. In particular, this
means that Cairo can deal with the matrix.

`_2dAffine`

The matrix is a combination of 2D scale and 2D translation operations. In particular, this means that any rectangle can be transformed exactly using this matrix.

`_2dTranslate`

The matrix is a 2D translation.

`Identity`

The matrix is the identity matrix.

## Trait Implementations

source### impl Clone for TransformCategory

### impl Clone for TransformCategory

source#### fn clone(&self) -> TransformCategory

#### fn clone(&self) -> TransformCategory

Returns a copy of the value. Read more

1.0.0 · source#### fn clone_from(&mut self, source: &Self)

#### fn clone_from(&mut self, source: &Self)

Performs copy-assignment from `source`

. Read more

source### impl Debug for TransformCategory

### impl Debug for TransformCategory

source### impl Display for TransformCategory

### impl Display for TransformCategory

source### impl<'a> FromValue<'a> for TransformCategory

### impl<'a> FromValue<'a> for TransformCategory

#### type Checker = GenericValueTypeChecker<TransformCategory>

#### type Checker = GenericValueTypeChecker<TransformCategory>

Value type checker.

source#### unsafe fn from_value(value: &'a Value) -> Self

#### unsafe fn from_value(value: &'a Value) -> Self

Get the contained value from a `Value`

. Read more

source### impl Hash for TransformCategory

### impl Hash for TransformCategory

source### impl Ord for TransformCategory

### impl Ord for TransformCategory

source#### fn cmp(&self, other: &TransformCategory) -> Ordering

#### fn cmp(&self, other: &TransformCategory) -> Ordering

1.21.0 · source#### fn max(self, other: Self) -> Self

#### fn max(self, other: Self) -> Self

Compares and returns the maximum of two values. Read more

1.21.0 · source#### fn min(self, other: Self) -> Self

#### fn min(self, other: Self) -> Self

Compares and returns the minimum of two values. Read more

1.50.0 · source#### fn clamp(self, min: Self, max: Self) -> Self where

Self: PartialOrd<Self>,

#### fn clamp(self, min: Self, max: Self) -> Self where

Self: PartialOrd<Self>,

Restrict a value to a certain interval. Read more

source### impl PartialEq<TransformCategory> for TransformCategory

### impl PartialEq<TransformCategory> for TransformCategory

source#### fn eq(&self, other: &TransformCategory) -> bool

#### fn eq(&self, other: &TransformCategory) -> bool

This method tests for `self`

and `other`

values to be equal, and is used
by `==`

. Read more

source#### fn ne(&self, other: &TransformCategory) -> bool

#### fn ne(&self, other: &TransformCategory) -> bool

This method tests for `!=`

.

source### impl PartialOrd<TransformCategory> for TransformCategory

### impl PartialOrd<TransformCategory> for TransformCategory

source#### fn partial_cmp(&self, other: &TransformCategory) -> Option<Ordering>

#### fn partial_cmp(&self, other: &TransformCategory) -> Option<Ordering>

This method returns an ordering between `self`

and `other`

values if one exists. Read more

1.0.0 · source#### fn lt(&self, other: &Rhs) -> bool

#### fn lt(&self, other: &Rhs) -> bool

This method tests less than (for `self`

and `other`

) and is used by the `<`

operator. Read more

1.0.0 · source#### fn le(&self, other: &Rhs) -> bool

#### fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for `self`

and `other`

) and is used by the `<=`

operator. Read more

source### impl StaticType for TransformCategory

### impl StaticType for TransformCategory

source#### fn static_type() -> Type

#### fn static_type() -> Type

Returns the type identifier of `Self`

.

source### impl ToValue for TransformCategory

### impl ToValue for TransformCategory

source### impl ValueType for TransformCategory

### impl ValueType for TransformCategory

#### type Type = TransformCategory

#### type Type = TransformCategory

Type to get the `Type`

from. Read more

### impl Copy for TransformCategory

### impl Eq for TransformCategory

### impl StructuralEq for TransformCategory

### impl StructuralPartialEq for TransformCategory

## Auto Trait Implementations

### impl RefUnwindSafe for TransformCategory

### impl Send for TransformCategory

### impl Sync for TransformCategory

### impl Unpin for TransformCategory

### impl UnwindSafe for TransformCategory

## Blanket Implementations

source### impl<T> BorrowMut<T> for T where

T: ?Sized,

### impl<T> BorrowMut<T> for T where

T: ?Sized,

const: unstable · source#### fn borrow_mut(&mut self) -> &mut T

#### fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more

source### impl<T> StaticTypeExt for T where

T: StaticType,

### impl<T> StaticTypeExt for T where

T: StaticType,

source#### fn ensure_type()

#### fn ensure_type()

Ensures that the type has been registered with the type system.

source### impl<T> ToClosureReturnValue for T where

T: ToValue,

### impl<T> ToClosureReturnValue for T where

T: ToValue,

#### fn to_closure_return_value(&self) -> Option<Value>

source### impl<T> ToSendValue for T where

T: Send + ToValue + ?Sized,

### impl<T> ToSendValue for T where

T: Send + ToValue + ?Sized,

source#### fn to_send_value(&self) -> SendValue

#### fn to_send_value(&self) -> SendValue

Returns a `SendValue`

clone of `self`

.