Metadata-Version: 2.1
Name: tentacletk
Version: 0.9.26
Home-page: https://github.com/m3trik/tentacle
Author: Ryan Simpson
Author-email: m3trik@outlook.com
License: LGPLv3
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
License-File: COPYING.LESSER
Requires-Dist: numpy
Requires-Dist: Pillow
Requires-Dist: PySide2
Requires-Dist: shiboken2
Requires-Dist: pymel
Requires-Dist: pythontk ==0.7.19
Requires-Dist: uitk ==1.0.19
Requires-Dist: mayatk ==0.9.22

[![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0.en.html)
[![Version](https://img.shields.io/badge/Version-0.9.26-blue.svg)](https://pypi.org/project/tentacletk/)

# Tentacle: A Python3/PySide2 Marking Menu and DCC Toolkit

Tentacle is a Python3/PySide2 marking menu implemented using Qt's QStackedWidget. It is designed for use with Maya, 3ds Max, Blender, and any other DCC app that supports the PySide2 framework, but in it's current implementation, it only has slots set up for Maya.  

## Design

Tentacle runs on top of [uitk](https://github.com/m3trik/uitk.git), a PySide2 dynamic UI loader and management package, which allows for the creation of fully-featured UI with less time and code.

## Example

The following example demonstrates re-opening the last scene, renaming a material, and selecting geometry by that material.

![Example](https://raw.githubusercontent.com/m3trik/tentacle/master/docs/toolkit_demo.gif)

## Structure

The structure of the project is as follows:

![Structure](https://raw.githubusercontent.com/m3trik/tentacle/master/docs/UML_diagram.jpg)

| Module        | Description   |
| ------------- | ------------- |
| [tcl](https://github.com/m3trik/uitk/blob/main/tentacle/tcl.py)         | Handles main GUI construction for the marking menu. |
| [overlay](https://github.com/m3trik/uitk/blob/main/tentacle/overlay.py) | Tracks cursor position and UI hierarchy to generate paint events that overlay its parent widget. |
| [ui](https://github.com/m3trik/uitk/blob/main/tentacle/events.py)       | Location of the dynamic UI files. |
| [slots](https://github.com/m3trik/uitk/blob/main/tentacle/slots)        | Location of the various slot modules. |

## Installation

Tentacle can be installed either using pip directly in the command line or by downloading and running mayapy package manager in Windows.

### Installation via pip

Install via pip in a command line window using:

```bash
path/to/mayapy.exe -m pip install tentacletk
```

### Installation Using Mayapy Package Manager

Alternatively, you can use the mayapy package manager for a streamlined installation process. 
Download the mayapy package manager from [here](https://github.com/m3trik/windows-shell-scripting/blob/master/mayapy-package-manager.bat). (Give your Maya version. Hit 1 to install package. The package name is `tentacletk`)

## Usage

To launch the marking menu:

For Maya, add a macro to a hotkey similar to the following:

```python
from tentacle import tcl_maya
tcl_maya.show(key_show='Z')  # Change to match your chosen hotkey.
```
