Skip to main content

Extended Modifiers Tool Kit (library)

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

libemtk-0.1.2.tar.gz (57.4 kB view details)

Uploaded Source

Built Distribution

libemtk-0.1.2-py3-none-any.whl (80.5 kB view details)

Uploaded Python 3

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

Hashes for libemtk-0.1.2.tar.gz
Algorithm Hash digest
SHA256 63f977fd646f282fe27c018cac655e6035641fa7ea77426263a1da976764eaa8
MD5 562fbefd6359e51aa2e9d60c6ca3a882
BLAKE2b-256 b2c9281733a74e5c22c4c110a4b172a349ce27a73be58d3ca46ddd4dfe3f909b

See more details on using hashes here.

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

Hashes for libemtk-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 90c3e44e971aa23ecc0ed27341539a8b9bc84438f85bc8696b8ef59d4fab993e
MD5 62724537fa0a55305914b495265bed3f
BLAKE2b-256 fe38a7017fb3096bf288dcc88f1461f5917a34eec36dca1db087de5c6b215b74

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page