# STransform PTΒΆ

- PT: SPointCategory

Domains for transform from SPoint to SPoint STransform transform domain can by used to represent linear transforms for instance when working with SCartesian where its Representation is a matrix of DoubleFloat Other transform domains may not necessarily be linear and will have different representations

- coerce: % -> OutputForm
`coerce(tr)`

output

- compound: (%, %) -> %
`compound(tr, inpt)`

combine two transforms

- identity: () -> %
`identity()`

returns the identity element which is do nothing transform

- stransform: Complex DoubleFloat -> Complex DoubleFloat -> %
`stransform(cpx)`

construct transform as function of complex variable can only be used when`PT`

is SArgand so this can be converted to`PT`

`->`

`PT`

- stransform: List DoubleFloat -> %
`stransform(m)`

construct transform using a multivector

- stransform: List List DoubleFloat -> %
`stransform(m)`

constructs transform with given matrix elements

- stransform: PT -> PT -> %
`stransform(gen)`

construct transform in general form as a mapping from`PT`

to`PT`

- stranslate: (DoubleFloat, DoubleFloat, DoubleFloat, DoubleFloat, DoubleFloat, DoubleFloat) -> %
`stranslate(offsetx, offsety, offsetz, scalex, scaley, scalez)`

constructs a transform which represents pure translation we can also combine with scale which, for instance, is useful when writing to`SVG`

file because the`y`

dimension is inverted

- xform: (%, PT) -> PT
`xform(tr, inpt)`

apply transform to a point producing another point