Difference between revisions of "Transform"

m (0.11.0 -> 11.0)
 
(19 intermediate revisions by 3 users not shown)
Line 1: Line 1:
Transform is a Lua library designed to make it easier handling local/world coordinates, along with a customizable rotation.
+
{{newin|[[11.0]]|110|type=type}}
 +
Object containing a coordinate system transformation.
  
It's been highly inspired on (Unity's Transform library)[https://docs.unity3d.com/ScriptReference/Transform.html]
+
The [[love.graphics]] module has several functions and function variants which accept Transform objects.
  
Link to the GitHub repository:
+
== Constructors ==
 +
{{#ask: [[Category:Functions]] [[Constructs::Transform]]
 +
| headers=hide
 +
| default=None.
 +
| format=template
 +
| template=ListingFields
 +
| introtemplate=ListingIntro
 +
| outrotemplate=ListingOutro
 +
| ?Description
 +
| ?PrettySince
 +
| ?PrettyRemoved
 +
}}
 +
== Functions ==
 +
{{#ask: [[Category:Functions]] [[parent::Transform||Object]]
 +
| headers=hide
 +
| format=template
 +
| template=ListingFields
 +
| introtemplate=ListingIntro
 +
| outrotemplate=ListingOutro
 +
| ?Description
 +
| ?PrettySince
 +
| ?PrettyRemoved
 +
}}
 +
== Enums ==
 +
{{#ask: [[Category:Enums]] [[parent::Transform]]
 +
| headers=hide
 +
| format=template
 +
| template=ListingFields
 +
| introtemplate=ListingIntro
 +
| outrotemplate=ListingOutro
 +
| ?Description
 +
| ?PrettySince
 +
| ?PrettyRemoved
 +
}}
 +
== Supertypes ==
 +
* [[parent::Object]]
 +
== Notes ==
 +
Transform objects have a custom <code>*</code> (multiplication) operator. <code>result = tA * tB</code> is equivalent to <code>result = tA:clone():apply(tB)</code>. It maps to the matrix multiplication operation that [[Transform:apply]] performs.
  
https://github.com/matiasah/lua-transform
+
The <code>*</code> operator creates a new Transform object, so it is not recommended to use it heavily in per-frame code.
 
+
== See Also ==
{{#set:Description=A library designed to ease the handling of coordinate/angle transformations in world}}
+
* [[parent::love.math]]
{{#set:LOVE Version=Any}}
+
* [[love.graphics.applyTransform]]
 
+
* [[love.graphics.replaceTransform]]
[[Category:Libraries]]
+
* [[love.graphics.draw]]
 +
* [[love.graphics.print]]
 +
* [[SpriteBatch:add]]
 +
* [[Text:add]]
 +
* [[Shader:send]]
 +
[[Category:Types]]
 +
{{#set:Description=Object containing a coordinate system transformation.}}
 +
== Other Languages ==
 +
{{i18n|Transform}}

Latest revision as of 08:05, 12 January 2019

Available since LÖVE 11.0
This type is not supported in earlier versions.

Object containing a coordinate system transformation.

The love.graphics module has several functions and function variants which accept Transform objects.

Constructors

love.math.newTransform Creates a new Transform object. Added since 11.0

Functions

Object:release Immediately destroys the object's Lua reference. Added since 11.0
Object:type Gets the type of the object as a string.
Object:typeOf Checks whether an object is of a certain type.
Transform:apply Applies the given other Transform object to this one. Added since 11.0
Transform:clone Creates a new copy of this Transform. Added since 11.0
Transform:getMatrix Gets the internal transformation matrix stored by this Transform. Added since 11.0
Transform:inverse Creates a new Transform containing the inverse of this Transform. Added since 11.0
Transform:inverseTransformPoint Applies the reverse of the Transform object's transformation to the given 2D position. Added since 11.0
Transform:isAffine2DTransform Checks whether the Transform is an affine transformation. Added since 11.0
Transform:reset Resets the Transform to an identity state. Added since 11.0
Transform:rotate Applies a rotation to the Transform's coordinate system. Added since 11.0
Transform:scale Scales the Transform's coordinate system. Added since 11.0
Transform:setMatrix Directly sets the Transform's internal transformation matrix. Added since 11.0
Transform:setTransformation Resets the Transform to the specified transformation parameters. Added since 11.0
Transform:shear Applies a shear factor (skew) to the Transform's coordinate system. Added since 11.0
Transform:transformPoint Applies the Transform object's transformation to the given 2D position. Added since 11.0
Transform:translate Applies a translation to the Transform's coordinate system. Added since 11.0

Enums

MatrixLayout The layout of matrix elements (row-major or column-major). Added since 11.0

Supertypes

Notes

Transform objects have a custom * (multiplication) operator. result = tA * tB is equivalent to result = tA:clone():apply(tB). It maps to the matrix multiplication operation that Transform:apply performs.

The * operator creates a new Transform object, so it is not recommended to use it heavily in per-frame code.

See Also

Other Languages