Skip to main content

Python package

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.

Release files for libemtk 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for libemtk 0.1.2
File Size Uploaded
libemtk-0.1.2.tar.gz 57.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for libemtk 0.1.2
File Interpreter ABI Platform
libemtk-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 137.9 kB

Release files / libemtk-0.1.2.tar.gz

Download URL libemtk-0.1.2.tar.gz
Size 57.4 kB
Tags Source
SHA-256 checksum
How to use checksums
63f977fd646f282fe27c018cac655e6035641fa7ea77426263a1da976764eaa8
BLAKE2b-256 checksum
How to use checksums
b2c9281733a74e5c22c4c110a4b172a349ce27a73be58d3ca46ddd4dfe3f909b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.5

Release files / libemtk-0.1.2-py3-none-any.whl

Download URL libemtk-0.1.2-py3-none-any.whl
Size 80.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
90c3e44e971aa23ecc0ed27341539a8b9bc84438f85bc8696b8ef59d4fab993e
BLAKE2b-256 checksum
How to use checksums
fe38a7017fb3096bf288dcc88f1461f5917a34eec36dca1db087de5c6b215b74
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.5

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page