anatools.lib.generator module¶
- class CreateBranchGenerator(children, **kwargs)¶
Bases:
Generator
A generator that connects branches together
- exec(*args, **kwargs)¶
Select a child and execute it
- class Generator(children=None, **kwargs)¶
Bases:
ABC
Base class for generators and modifiers
- clone()¶
Clone a generator. The clone has no children.
- abstract exec(*args, **kwargs)¶
- generators = {}¶
- next_id = 0¶
- select_child()¶
Select a weighted random child
- class ObjectGenerator(object_class, object_type, **kwargs)¶
Bases:
Generator
Object Generator
- exec(*args, **kwargs)¶
Return a new instance of the specified object
- class ObjectModifier(method, children, **kwargs)¶
Bases:
Generator
Object Modifier
- exec(*args, **kwargs)¶
Execute modifier method on object
- class PathList(paths=None)¶
Bases:
list
A list of paths. Each path is a list of generator id’s from root to leaf
- to_tree()¶
Convert a PathList into an executable tree
- create_multi_path(tree, leaf_class=<class 'anatools.lib.generator.ObjectGenerator'>)¶
Create an executable multi path to a weighted random leaf. Path includes all possible routes to the leaf.
- create_single_path(tree, leaf_class=<class 'anatools.lib.generator.ObjectGenerator'>)¶
Create an exectuable single path to a weighted random leaf.
- get_blendfile_generator(package, object_class, object_type)¶
Helper function that creates a generator from an object definition in the package.yml file
- get_file_generator(package, object_class, object_type)¶
Helper function that creates a generator from an object definition in the package.yml file
- get_unique_leaves(tree, leaf_class=<class 'anatools.lib.generator.ObjectGenerator'>)¶
Get list of all unique leaves in the tree.