# {py:mod}`simvx.core.math.transforms` ```{py:module} simvx.core.math.transforms ``` ```{autodoc2-docstring} simvx.core.math.transforms :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`Transform2D ` - ```{autodoc2-docstring} simvx.core.math.transforms.Transform2D :summary: ``` * - {py:obj}`Basis ` - ```{autodoc2-docstring} simvx.core.math.transforms.Basis :summary: ``` * - {py:obj}`Transform3D ` - ```{autodoc2-docstring} simvx.core.math.transforms.Transform3D :summary: ``` ```` ### API `````{py:class} Transform2D(position=(0, 0), rotation=0.0, scale=(1, 1)) :canonical: simvx.core.math.transforms.Transform2D ```{autodoc2-docstring} simvx.core.math.transforms.Transform2D ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.math.transforms.Transform2D.__init__ ``` ````{py:property} position :canonical: simvx.core.math.transforms.Transform2D.position :type: numpy.ndarray ```{autodoc2-docstring} simvx.core.math.transforms.Transform2D.position ``` ```` ````{py:property} rotation :canonical: simvx.core.math.transforms.Transform2D.rotation :type: float ```{autodoc2-docstring} simvx.core.math.transforms.Transform2D.rotation ``` ```` ````{py:property} scale :canonical: simvx.core.math.transforms.Transform2D.scale :type: numpy.ndarray ```{autodoc2-docstring} simvx.core.math.transforms.Transform2D.scale ``` ```` ````{py:property} matrix :canonical: simvx.core.math.transforms.Transform2D.matrix :type: numpy.ndarray ```{autodoc2-docstring} simvx.core.math.transforms.Transform2D.matrix ``` ```` ````{py:method} translated(offset) -> simvx.core.math.transforms.Transform2D :canonical: simvx.core.math.transforms.Transform2D.translated ```{autodoc2-docstring} simvx.core.math.transforms.Transform2D.translated ``` ```` ````{py:method} rotated(angle: float) -> simvx.core.math.transforms.Transform2D :canonical: simvx.core.math.transforms.Transform2D.rotated ```{autodoc2-docstring} simvx.core.math.transforms.Transform2D.rotated ``` ```` ````{py:method} scaled(factor) -> simvx.core.math.transforms.Transform2D :canonical: simvx.core.math.transforms.Transform2D.scaled ```{autodoc2-docstring} simvx.core.math.transforms.Transform2D.scaled ``` ```` ````{py:method} transform_point(point) -> numpy.ndarray :canonical: simvx.core.math.transforms.Transform2D.transform_point ```{autodoc2-docstring} simvx.core.math.transforms.Transform2D.transform_point ``` ```` ````{py:method} inverse() -> simvx.core.math.transforms.Transform2D :canonical: simvx.core.math.transforms.Transform2D.inverse ```{autodoc2-docstring} simvx.core.math.transforms.Transform2D.inverse ``` ```` ````{py:method} __mul__(other) :canonical: simvx.core.math.transforms.Transform2D.__mul__ ```{autodoc2-docstring} simvx.core.math.transforms.Transform2D.__mul__ ``` ```` ````{py:method} __eq__(other) :canonical: simvx.core.math.transforms.Transform2D.__eq__ ```` ````{py:method} __repr__() :canonical: simvx.core.math.transforms.Transform2D.__repr__ ```` ````` `````{py:class} Basis(matrix: numpy.ndarray | None = None) :canonical: simvx.core.math.transforms.Basis ```{autodoc2-docstring} simvx.core.math.transforms.Basis ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.math.transforms.Basis.__init__ ``` ````{py:attribute} __slots__ :canonical: simvx.core.math.transforms.Basis.__slots__ :value: > ('_m',) ```{autodoc2-docstring} simvx.core.math.transforms.Basis.__slots__ ``` ```` ````{py:property} x :canonical: simvx.core.math.transforms.Basis.x :type: numpy.ndarray ```{autodoc2-docstring} simvx.core.math.transforms.Basis.x ``` ```` ````{py:property} y :canonical: simvx.core.math.transforms.Basis.y :type: numpy.ndarray ```{autodoc2-docstring} simvx.core.math.transforms.Basis.y ``` ```` ````{py:property} z :canonical: simvx.core.math.transforms.Basis.z :type: numpy.ndarray ```{autodoc2-docstring} simvx.core.math.transforms.Basis.z ``` ```` ````{py:method} rotated(axis, angle: float) -> simvx.core.math.transforms.Basis :canonical: simvx.core.math.transforms.Basis.rotated ```{autodoc2-docstring} simvx.core.math.transforms.Basis.rotated ``` ```` ````{py:method} scaled(s) -> simvx.core.math.transforms.Basis :canonical: simvx.core.math.transforms.Basis.scaled ```{autodoc2-docstring} simvx.core.math.transforms.Basis.scaled ``` ```` ````{py:method} transposed() -> simvx.core.math.transforms.Basis :canonical: simvx.core.math.transforms.Basis.transposed ```{autodoc2-docstring} simvx.core.math.transforms.Basis.transposed ``` ```` ````{py:method} inverse() -> simvx.core.math.transforms.Basis :canonical: simvx.core.math.transforms.Basis.inverse ```{autodoc2-docstring} simvx.core.math.transforms.Basis.inverse ``` ```` ````{py:method} get_euler() -> tuple[float, float, float] :canonical: simvx.core.math.transforms.Basis.get_euler ```{autodoc2-docstring} simvx.core.math.transforms.Basis.get_euler ``` ```` ````{py:method} from_euler(euler) -> simvx.core.math.transforms.Basis :canonical: simvx.core.math.transforms.Basis.from_euler :classmethod: ```{autodoc2-docstring} simvx.core.math.transforms.Basis.from_euler ``` ```` ````{py:method} from_axis_angle(axis, angle: float) -> simvx.core.math.transforms.Basis :canonical: simvx.core.math.transforms.Basis.from_axis_angle :classmethod: ```{autodoc2-docstring} simvx.core.math.transforms.Basis.from_axis_angle ``` ```` ````{py:method} __eq__(other) :canonical: simvx.core.math.transforms.Basis.__eq__ ```` ````{py:method} __repr__() :canonical: simvx.core.math.transforms.Basis.__repr__ ```` ````` `````{py:class} Transform3D(position=(0, 0, 0), rotation=None, scale=(1, 1, 1)) :canonical: simvx.core.math.transforms.Transform3D ```{autodoc2-docstring} simvx.core.math.transforms.Transform3D ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.math.transforms.Transform3D.__init__ ``` ````{py:property} position :canonical: simvx.core.math.transforms.Transform3D.position :type: numpy.ndarray ```{autodoc2-docstring} simvx.core.math.transforms.Transform3D.position ``` ```` ````{py:property} rotation :canonical: simvx.core.math.transforms.Transform3D.rotation :type: simvx.core.math.types.Quat ```{autodoc2-docstring} simvx.core.math.transforms.Transform3D.rotation ``` ```` ````{py:property} scale :canonical: simvx.core.math.transforms.Transform3D.scale :type: numpy.ndarray ```{autodoc2-docstring} simvx.core.math.transforms.Transform3D.scale ``` ```` ````{py:property} matrix :canonical: simvx.core.math.transforms.Transform3D.matrix :type: numpy.ndarray ```{autodoc2-docstring} simvx.core.math.transforms.Transform3D.matrix ``` ```` ````{py:method} translated(offset) -> simvx.core.math.transforms.Transform3D :canonical: simvx.core.math.transforms.Transform3D.translated ```{autodoc2-docstring} simvx.core.math.transforms.Transform3D.translated ``` ```` ````{py:method} rotated(axis, angle: float) -> simvx.core.math.transforms.Transform3D :canonical: simvx.core.math.transforms.Transform3D.rotated ```{autodoc2-docstring} simvx.core.math.transforms.Transform3D.rotated ``` ```` ````{py:method} scaled(factor) -> simvx.core.math.transforms.Transform3D :canonical: simvx.core.math.transforms.Transform3D.scaled ```{autodoc2-docstring} simvx.core.math.transforms.Transform3D.scaled ``` ```` ````{py:method} transform_point(point) -> numpy.ndarray :canonical: simvx.core.math.transforms.Transform3D.transform_point ```{autodoc2-docstring} simvx.core.math.transforms.Transform3D.transform_point ``` ```` ````{py:method} looking_at(target, up=(0, 1, 0)) -> simvx.core.math.transforms.Transform3D :canonical: simvx.core.math.transforms.Transform3D.looking_at ```{autodoc2-docstring} simvx.core.math.transforms.Transform3D.looking_at ``` ```` ````{py:method} inverse() -> simvx.core.math.transforms.Transform3D :canonical: simvx.core.math.transforms.Transform3D.inverse ```{autodoc2-docstring} simvx.core.math.transforms.Transform3D.inverse ``` ```` ````{py:property} basis :canonical: simvx.core.math.transforms.Transform3D.basis :type: simvx.core.math.transforms.Basis ```{autodoc2-docstring} simvx.core.math.transforms.Transform3D.basis ``` ```` ````{py:method} __mul__(other) :canonical: simvx.core.math.transforms.Transform3D.__mul__ ```{autodoc2-docstring} simvx.core.math.transforms.Transform3D.__mul__ ``` ```` ````{py:method} __eq__(other) :canonical: simvx.core.math.transforms.Transform3D.__eq__ ```` ````{py:method} __repr__() :canonical: simvx.core.math.transforms.Transform3D.__repr__ ```` `````