1. Repository Structure#

To contribute to the development of the add-on, first understand its structure. The Python source files are located in a specific directory and have each a distinct purpose.

1.1. Layout#

.
├── docs/
└── src/
    └── pohlke/
        ├── blender_manifest.toml
        ├── __init__.py
        ├── gui.py
        ├── operators.py
        ├── properties.py
        ├── tests/
        └── utils /
            ├── __init__.py
            ├── presets.toml
            ├── data.py
            ├── geometry_math.py
            ├── helpers.py
            └── ui_shared.py

1.2. Description#

1.2.1. docs/#

Directory containing all the tools necessary for creating and maintaining the project Documentation.

1.2.2. src/pohlke/#

Directory containing the entire project source code.

  • blender_manifest.toml : Configuration file that allows the add-on to be recognized and interpreted by Blender.

  • __init__.py : Project initialization file that links together the code and features distributed across the project.

  • gui.py : File containing all the project UI classes, as well as their associated specific functions (c.f. bpy.types.Panel, bpy.types.Menu, etc.).

  • operators.py : File containing all the project operators, along with their associated specific functions (c.f. bpy.types.Operator).

  • properties.py : File containing all the project properties, as well as their associated specific functions (c.f. bpy.types.PropertyGroup).

  • tests/ : Directory containing all the project unit tests.

  • utils/ : Directory containing all generic utility functions/data used throughout the project.

    • __init__.py : Empty initialization file that simply allows Blender to recognize the directory.

    • presets.toml : TOML file containing all the presets provided by the add-on, in the form of alpha and beta angle pairs associated with preset names.

    • data.py : Class responsible for retrieving, processing, and exposing the data contained in presets.toml.

    • geometry_math.py : File containing all the project’s generic mathematical functions.

    • helpers.py : File containing all the project’s generic helper functions.

    • ui_shared.py : File containing all the project’s generic UI functions.