Extended Modifiers Tool Kit (library)
Project description
libEMTK, Extended Modifiers Tool Kit (library).
This thing provides new level of abstraction for Blender modifiers stack.
Library name is not final and probably will be changed on release.
libemtk is designed to be used with EMTK.
Most classes and methods have docstrings.
There are some simple unittests for basic operations.
Installation
Linux:
Symlink ~/.config/blender/3.1/scripts/modules/libemtk
to libemtk
Windows: idk
Mac: idk
Main concepts
Actual modifier is an actual Blender modifier.
Modifier is a cluster or actual Blender modifier.
Cluster is an object that consists of any number of modifiers or clusters. Any subclass of ClusterTrait is a Cluster.
ModifiersCluster is a cluster that only has actual Blender modifiers in it.
ClustersLayer is a cluster that only has other clusters in it. This doesnt mean that it cant contain ModifiersClusters with actual modifiers.
ExtendedModifiersList is an object representing clusters stack. It is similar to ClustersLayer, but doesnt have ClusterTrait attributes. It require all modifiers in it to be on the same Blender object.
SortingRule is an object that represents set of rules that can be used to sort clusters in ExtendedModifiersList.
ModifiersOperator is a mix-in class for Operator class. It has methods for manipulating multiple ExtendedModifiersList instances.
ClustersCommand is implementation of command pattern for some of frequently used operations.
It consists of ClustersAction, basic elements that have minimal information about side effects of command. Examble: ClustersAction('MOVE', 'Bevel.123', {'direction': 'UP'}) This action does not included information about position of 'Bevel.123' and other detail required to interpret action as a part of command.
ClusterCommands use ClustersCommandsSolver to ask clusters for additional commands. Example: (using previous example) ClustersLayer will add ClustersAction('MOVE', 'Bevel.321', {'direction': 'DOWN'}), if 'Bevel.321' will change its index after moving 'Bevel.123'. Then ClustersCommandsSolver will ask 'Bevel.321' if it should do something else after moving it.
Currently supported features
All basic editing, like moving, applying, removing, duplication and switching visibility of clusters.
Serialization and deserialization of clusters state. Full or partial resoring of clusters state.
Serialization and deserialization of clusters types definitions.
Clusters Commands and Actions.
TODO
Buffering for ExtendedModifiersList controller.
Panel type subclass for panels that use ExtendedModifiersList.
Operators for ExtendedModifiersList controller.
More clusters operation types.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file libemtk-0.1.2.tar.gz
.
File metadata
- Download URL: libemtk-0.1.2.tar.gz
- Upload date:
- Size: 57.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 63f977fd646f282fe27c018cac655e6035641fa7ea77426263a1da976764eaa8 |
|
MD5 | 562fbefd6359e51aa2e9d60c6ca3a882 |
|
BLAKE2b-256 | b2c9281733a74e5c22c4c110a4b172a349ce27a73be58d3ca46ddd4dfe3f909b |
File details
Details for the file libemtk-0.1.2-py3-none-any.whl
.
File metadata
- Download URL: libemtk-0.1.2-py3-none-any.whl
- Upload date:
- Size: 80.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 90c3e44e971aa23ecc0ed27341539a8b9bc84438f85bc8696b8ef59d4fab993e |
|
MD5 | 62724537fa0a55305914b495265bed3f |
|
BLAKE2b-256 | fe38a7017fb3096bf288dcc88f1461f5917a34eec36dca1db087de5c6b215b74 |