# {py:mod}`simvx.core.gizmo` ```{py:module} simvx.core.gizmo ``` ```{autodoc2-docstring} simvx.core.gizmo :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`GizmoMode ` - ```{autodoc2-docstring} simvx.core.gizmo.GizmoMode :summary: ``` * - {py:obj}`GizmoAxis ` - ```{autodoc2-docstring} simvx.core.gizmo.GizmoAxis :summary: ``` * - {py:obj}`Gizmo ` - ```{autodoc2-docstring} simvx.core.gizmo.Gizmo :summary: ``` ```` ### Data ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`__all__ ` - ```{autodoc2-docstring} simvx.core.gizmo.__all__ :summary: ``` ```` ### API ````{py:data} __all__ :canonical: simvx.core.gizmo.__all__ :value: > ['GizmoMode', 'GizmoAxis', 'Gizmo'] ```{autodoc2-docstring} simvx.core.gizmo.__all__ ``` ```` `````{py:class} GizmoMode :canonical: simvx.core.gizmo.GizmoMode Bases: {py:obj}`enum.Enum` ```{autodoc2-docstring} simvx.core.gizmo.GizmoMode ``` ````{py:attribute} TRANSLATE :canonical: simvx.core.gizmo.GizmoMode.TRANSLATE :value: > 'auto(...)' ```{autodoc2-docstring} simvx.core.gizmo.GizmoMode.TRANSLATE ``` ```` ````{py:attribute} ROTATE :canonical: simvx.core.gizmo.GizmoMode.ROTATE :value: > 'auto(...)' ```{autodoc2-docstring} simvx.core.gizmo.GizmoMode.ROTATE ``` ```` ````{py:attribute} SCALE :canonical: simvx.core.gizmo.GizmoMode.SCALE :value: > 'auto(...)' ```{autodoc2-docstring} simvx.core.gizmo.GizmoMode.SCALE ``` ```` ````{py:method} __new__(value) :canonical: simvx.core.gizmo.GizmoMode.__new__ ```` ````{py:method} __repr__() :canonical: simvx.core.gizmo.GizmoMode.__repr__ ```` ````{py:method} __str__() :canonical: simvx.core.gizmo.GizmoMode.__str__ ```` ````{py:method} __dir__() :canonical: simvx.core.gizmo.GizmoMode.__dir__ ```` ````{py:method} __format__(format_spec) :canonical: simvx.core.gizmo.GizmoMode.__format__ ```` ````{py:method} __hash__() :canonical: simvx.core.gizmo.GizmoMode.__hash__ ```` ````{py:method} __reduce_ex__(proto) :canonical: simvx.core.gizmo.GizmoMode.__reduce_ex__ ```` ````{py:method} __deepcopy__(memo) :canonical: simvx.core.gizmo.GizmoMode.__deepcopy__ ```` ````{py:method} __copy__() :canonical: simvx.core.gizmo.GizmoMode.__copy__ ```` ````{py:method} name() :canonical: simvx.core.gizmo.GizmoMode.name ```` ````{py:method} value() :canonical: simvx.core.gizmo.GizmoMode.value ```` ````` `````{py:class} GizmoAxis :canonical: simvx.core.gizmo.GizmoAxis Bases: {py:obj}`enum.Enum` ```{autodoc2-docstring} simvx.core.gizmo.GizmoAxis ``` ````{py:attribute} X :canonical: simvx.core.gizmo.GizmoAxis.X :value: > 'auto(...)' ```{autodoc2-docstring} simvx.core.gizmo.GizmoAxis.X ``` ```` ````{py:attribute} Y :canonical: simvx.core.gizmo.GizmoAxis.Y :value: > 'auto(...)' ```{autodoc2-docstring} simvx.core.gizmo.GizmoAxis.Y ``` ```` ````{py:attribute} Z :canonical: simvx.core.gizmo.GizmoAxis.Z :value: > 'auto(...)' ```{autodoc2-docstring} simvx.core.gizmo.GizmoAxis.Z ``` ```` ````{py:attribute} XY :canonical: simvx.core.gizmo.GizmoAxis.XY :value: > 'auto(...)' ```{autodoc2-docstring} simvx.core.gizmo.GizmoAxis.XY ``` ```` ````{py:attribute} XZ :canonical: simvx.core.gizmo.GizmoAxis.XZ :value: > 'auto(...)' ```{autodoc2-docstring} simvx.core.gizmo.GizmoAxis.XZ ``` ```` ````{py:attribute} YZ :canonical: simvx.core.gizmo.GizmoAxis.YZ :value: > 'auto(...)' ```{autodoc2-docstring} simvx.core.gizmo.GizmoAxis.YZ ``` ```` ````{py:attribute} ALL :canonical: simvx.core.gizmo.GizmoAxis.ALL :value: > 'auto(...)' ```{autodoc2-docstring} simvx.core.gizmo.GizmoAxis.ALL ``` ```` ````{py:method} __new__(value) :canonical: simvx.core.gizmo.GizmoAxis.__new__ ```` ````{py:method} __repr__() :canonical: simvx.core.gizmo.GizmoAxis.__repr__ ```` ````{py:method} __str__() :canonical: simvx.core.gizmo.GizmoAxis.__str__ ```` ````{py:method} __dir__() :canonical: simvx.core.gizmo.GizmoAxis.__dir__ ```` ````{py:method} __format__(format_spec) :canonical: simvx.core.gizmo.GizmoAxis.__format__ ```` ````{py:method} __hash__() :canonical: simvx.core.gizmo.GizmoAxis.__hash__ ```` ````{py:method} __reduce_ex__(proto) :canonical: simvx.core.gizmo.GizmoAxis.__reduce_ex__ ```` ````{py:method} __deepcopy__(memo) :canonical: simvx.core.gizmo.GizmoAxis.__deepcopy__ ```` ````{py:method} __copy__() :canonical: simvx.core.gizmo.GizmoAxis.__copy__ ```` ````{py:method} name() :canonical: simvx.core.gizmo.GizmoAxis.name ```` ````{py:method} value() :canonical: simvx.core.gizmo.GizmoAxis.value ```` ````` `````{py:class} Gizmo() :canonical: simvx.core.gizmo.Gizmo ```{autodoc2-docstring} simvx.core.gizmo.Gizmo ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.gizmo.Gizmo.__init__ ``` ````{py:property} mode :canonical: simvx.core.gizmo.Gizmo.mode :type: simvx.core.gizmo.GizmoMode ```{autodoc2-docstring} simvx.core.gizmo.Gizmo.mode ``` ```` ````{py:method} pick_axis(ray_origin: simvx.core.math.types.Vec3, ray_dir: simvx.core.math.types.Vec3) -> simvx.core.gizmo.GizmoAxis | None :canonical: simvx.core.gizmo.Gizmo.pick_axis ```{autodoc2-docstring} simvx.core.gizmo.Gizmo.pick_axis ``` ```` ````{py:method} begin_drag(axis: simvx.core.gizmo.GizmoAxis, ray_origin: simvx.core.math.types.Vec3, ray_dir: simvx.core.math.types.Vec3) -> None :canonical: simvx.core.gizmo.Gizmo.begin_drag ```{autodoc2-docstring} simvx.core.gizmo.Gizmo.begin_drag ``` ```` ````{py:method} update_drag(ray_origin: simvx.core.math.types.Vec3, ray_dir: simvx.core.math.types.Vec3) -> simvx.core.math.types.Vec3 :canonical: simvx.core.gizmo.Gizmo.update_drag ```{autodoc2-docstring} simvx.core.gizmo.Gizmo.update_drag ``` ```` ````{py:method} end_drag() -> None :canonical: simvx.core.gizmo.Gizmo.end_drag ```{autodoc2-docstring} simvx.core.gizmo.Gizmo.end_drag ``` ```` ````{py:method} cycle_mode() -> None :canonical: simvx.core.gizmo.Gizmo.cycle_mode ```{autodoc2-docstring} simvx.core.gizmo.Gizmo.cycle_mode ``` ```` `````