# Examples from pyvista.Transform.apply
# =====================================

# Apply a transformation to a point.
import numpy as np
import pyvista as pv
point = (1.0, 2.0, 3.0)
transform = pv.Transform().scale(2).translate((0.0, 0.0, 1.0))
transformed = transform.apply(point)
transformed

# Apply a transformation to a points array.
array = np.array([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
transformed = transform.apply(array)
transformed

# Apply a transformation to a vector array. Use the same array as before but
# use the `'vectors'` mode. Note how the translation component is not applied
# to vectors.
transformed = transform.apply(array, 'vectors')
transformed

# Apply a transformation to a dataset.
dataset = pv.PolyData(array)
transformed = transform.apply(dataset)
transformed.points

# Apply the inverse.
transformed = transform.apply(dataset, inverse=True)
transformed.points

# Apply a transformation to an actor.
actor = pv.Actor()
transformed_actor = transform.apply(actor)
transformed_actor.user_matrix

# ----------------------------------------------------------------------
# Generated by sphinx-examples-as-code https://github.com/pyvista/sphinx-examples-as-code

