Difference between revisions of "Transform"

(Placeholder)
m (0.11.0 -> 11.0)
 
(4 intermediate revisions by one other user not shown)
Line 1: Line 1:
{{newin|[[0.11.0]]|110|type=type}}
+
{{newin|[[11.0]]|110|type=type}}
 +
Object containing a coordinate system transformation.
 +
 
 +
The [[love.graphics]] module has several functions and function variants which accept Transform objects.
  
 
== Constructors ==
 
== Constructors ==
Line 24: Line 27:
 
| ?PrettyRemoved
 
| ?PrettyRemoved
 
}}
 
}}
 
+
== Enums ==
 +
{{#ask: [[Category:Enums]] [[parent::Transform]]
 +
| headers=hide
 +
| format=template
 +
| template=ListingFields
 +
| introtemplate=ListingIntro
 +
| outrotemplate=ListingOutro
 +
| ?Description
 +
| ?PrettySince
 +
| ?PrettyRemoved
 +
}}
 
== Supertypes ==
 
== Supertypes ==
 
* [[parent::Object]]
 
* [[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.
 +
 +
The <code>*</code> operator creates a new Transform object, so it is not recommended to use it heavily in per-frame code.
 
== See Also ==
 
== See Also ==
 
* [[parent::love.math]]
 
* [[parent::love.math]]
 +
* [[love.graphics.applyTransform]]
 +
* [[love.graphics.replaceTransform]]
 +
* [[love.graphics.draw]]
 +
* [[love.graphics.print]]
 +
* [[SpriteBatch:add]]
 +
* [[Text:add]]
 +
* [[Shader:send]]
 
[[Category:Types]]
 
[[Category:Types]]
{{#set:Description=}}
+
{{#set:Description=Object containing a coordinate system transformation.}}
 
== Other Languages ==
 
== Other Languages ==
 
{{i18n|Transform}}
 
{{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