Copyright | Will Thompson Iñaki García Etxebarria and Jonas Platte |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria |
Safe Haskell | None |
Language | Haskell2010 |
The GskTransform
structure contains only private data.
Synopsis
- newtype Transform = Transform (ManagedPtr Transform)
- transformEqual :: (HasCallStack, MonadIO m) => Transform -> Transform -> m Bool
- transformGetCategory :: (HasCallStack, MonadIO m) => Transform -> m TransformCategory
- transformInvert :: (HasCallStack, MonadIO m) => Transform -> m Transform
- transformMatrix :: (HasCallStack, MonadIO m) => Transform -> Matrix -> m Transform
- transformNew :: (HasCallStack, MonadIO m) => m Transform
- transformParse :: (HasCallStack, MonadIO m) => Text -> m (Bool, Transform)
- transformPerspective :: (HasCallStack, MonadIO m) => Transform -> Float -> m Transform
- transformPrint :: (HasCallStack, MonadIO m) => Transform -> String -> m ()
- transformRef :: (HasCallStack, MonadIO m) => Transform -> m Transform
- transformRotate :: (HasCallStack, MonadIO m) => Transform -> Float -> m Transform
- transformRotate3d :: (HasCallStack, MonadIO m) => Transform -> Float -> Vec3 -> m Transform
- transformScale :: (HasCallStack, MonadIO m) => Transform -> Float -> Float -> m Transform
- transformScale3d :: (HasCallStack, MonadIO m) => Transform -> Float -> Float -> Float -> m Transform
- transformTo2d :: (HasCallStack, MonadIO m) => Transform -> m (Float, Float, Float, Float, Float, Float)
- transformToAffine :: (HasCallStack, MonadIO m) => Transform -> m (Float, Float, Float, Float)
- transformToMatrix :: (HasCallStack, MonadIO m) => Transform -> m Matrix
- transformToString :: (HasCallStack, MonadIO m) => Transform -> m Text
- transformToTranslate :: (HasCallStack, MonadIO m) => Transform -> m (Float, Float)
- transformTransform :: (HasCallStack, MonadIO m) => Transform -> Maybe Transform -> m Transform
- transformTransformBounds :: (HasCallStack, MonadIO m) => Transform -> Rect -> m Rect
- transformTransformPoint :: (HasCallStack, MonadIO m) => Transform -> Point -> m Point
- transformTranslate :: (HasCallStack, MonadIO m) => Transform -> Point -> m Transform
- transformTranslate3d :: (HasCallStack, MonadIO m) => Transform -> Point3D -> m Transform
- transformUnref :: (HasCallStack, MonadIO m) => Transform -> m ()
Exported types
Memory-managed wrapper type.
Instances
Eq Transform Source # | |
IsGValue Transform Source # | Convert |
ManagedPtrNewtype Transform Source # | |
Defined in GI.Gsk.Structs.Transform | |
TypedObject Transform Source # | |
Defined in GI.Gsk.Structs.Transform | |
GBoxed Transform Source # | |
Defined in GI.Gsk.Structs.Transform | |
HasParentTypes Transform Source # | |
Defined in GI.Gsk.Structs.Transform | |
type ParentTypes Transform Source # | |
Defined in GI.Gsk.Structs.Transform |
Methods
Overloaded methods
equal
:: (HasCallStack, MonadIO m) | |
=> Transform |
|
-> Transform |
|
-> m Bool | Returns: |
Checks two matrices for equality. Note that matrices need to be literally
identical in their operations, it is not enough that they return the
same result in transformToMatrix
.
getCategory
:: (HasCallStack, MonadIO m) | |
=> Transform |
|
-> m TransformCategory | Returns: The category of the transform |
Returns the category this transform belongs to.
invert
:: (HasCallStack, MonadIO m) | |
=> Transform |
|
-> m Transform | Returns: The inverted transform or |
matrix
:: (HasCallStack, MonadIO m) | |
=> Transform |
|
-> Matrix |
|
-> m Transform | Returns: The new matrix |
Multiplies next
with the given matrix
.
new
transformNew :: (HasCallStack, MonadIO m) => m Transform Source #
No description available in the introspection data.
parse
:: (HasCallStack, MonadIO m) | |
=> Text |
|
-> m (Bool, Transform) | Returns: |
Parses the given string
into a transform and puts it in
outTransform
. Strings printed via transformToString
can be read in again successfully using this function.
If string
does not describe a valid transform, False
is
returned and Nothing
is put in outTransform
.
perspective
:: (HasCallStack, MonadIO m) | |
=> Transform |
|
-> Float |
|
-> m Transform | Returns: The new matrix |
Applies a perspective projection transform. This transform scales points in X and Y based on their Z value, scaling points with positive Z values away from the origin, and those with negative Z values towards the origin. Points on the z=0 plane are unchanged.
:: (HasCallStack, MonadIO m) | |
=> Transform |
|
-> String |
|
-> m () |
Converts self
into a human-readable string representation suitable
for printing that can later be parsed with transformParse
.
ref
:: (HasCallStack, MonadIO m) | |
=> Transform |
|
-> m Transform | Returns: the |
Acquires a reference on the given Transform
.
rotate
:: (HasCallStack, MonadIO m) | |
=> Transform |
|
-> Float |
|
-> m Transform | Returns: The new matrix |
Rotates next
angle
degrees in 2D - or in 3Dspeak, around the z axis.
rotate3d
:: (HasCallStack, MonadIO m) | |
=> Transform |
|
-> Float |
|
-> Vec3 |
|
-> m Transform | Returns: The new matrix |
Rotates next
angle
degrees around axis
.
For a rotation in 2D space, use transformRotate
.
scale
:: (HasCallStack, MonadIO m) | |
=> Transform |
|
-> Float |
|
-> Float |
|
-> m Transform | Returns: The new matrix |
Scales next
in 2-dimensional space by the given factors.
Use transformScale3d
to scale in all 3 dimensions.
scale3d
:: (HasCallStack, MonadIO m) | |
=> Transform |
|
-> Float |
|
-> Float |
|
-> Float |
|
-> m Transform | Returns: The new matrix |
Scales next
by the given factors.
to2d
:: (HasCallStack, MonadIO m) | |
=> Transform |
|
-> m (Float, Float, Float, Float, Float, Float) |
Converts a Transform
to a 2D transformation
matrix.
self
must be a 2D transformation. If you are not
sure, use transformGetCategory
>=
TransformCategory2d
to check.
The returned values have the following layout:
plain code
| xx yx | | a b 0 | | xy yy | = | c d 0 | | dx dy | | tx ty 1 |
This function can be used to convert between a Transform
and a matrix type from other 2D drawing libraries, in particular
Cairo.
toAffine
Converts a Transform
to 2D affine transformation
factors.
self
must be a 2D transformation. If you are not
sure, use transformGetCategory
>=
TransformCategory2dAffine
to check.
toMatrix
:: (HasCallStack, MonadIO m) | |
=> Transform |
|
-> m Matrix |
Computes the actual value of self
and stores it in outMatrix
.
The previous value of outMatrix
will be ignored.
toString
:: (HasCallStack, MonadIO m) | |
=> Transform |
|
-> m Text | Returns: A new string for |
Converts a matrix into a string that is suitable for
printing and can later be parsed with transformParse
.
This is a wrapper around transformPrint
, see that function
for details.
toTranslate
Converts a Transform
to a translation operation.
self
must be a 2D transformation. If you are not
sure, use transformGetCategory
>=
TransformCategory2dTranslate
to check.
transform
:: (HasCallStack, MonadIO m) | |
=> Transform |
|
-> Maybe Transform |
|
-> m Transform | Returns: The new matrix |
Applies all the operations from other
to next
.
transformBounds
transformTransformBounds Source #
:: (HasCallStack, MonadIO m) | |
=> Transform |
|
-> Rect |
|
-> m Rect |
Transforms a Rect
using the given transform self
.
The result is the bounding box containing the coplanar quad.
transformPoint
transformTransformPoint Source #
:: (HasCallStack, MonadIO m) | |
=> Transform |
|
-> Point |
|
-> m Point |
Transforms a Point
using the given transform self
.
translate
:: (HasCallStack, MonadIO m) | |
=> Transform |
|
-> Point |
|
-> m Transform | Returns: The new matrix |
Translates next
in 2dimensional space by point
.
translate3d
:: (HasCallStack, MonadIO m) | |
=> Transform |
|
-> Point3D |
|
-> m Transform | Returns: The new matrix |
Translates next
by point
.
unref
:: (HasCallStack, MonadIO m) | |
=> Transform |
|
-> m () |
Releases a reference on the given Transform
.
If the reference was the last, the resources associated to the self
are
freed.