54 lines
2.8 KiB
Python
54 lines
2.8 KiB
Python
"""
|
||
constants.py
|
||
------------
|
||
All module-level constants and default playlist configurations.
|
||
|
||
Pure Python — no bpy imports — so this module can be imported and
|
||
inspected without a running Blender instance.
|
||
"""
|
||
import math
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# Default playlist
|
||
# Each entry is a partial KnotConfig dict; missing keys fall back to the
|
||
# defaults defined in KnotItem's PropertyGroup.
|
||
# ---------------------------------------------------------------------------
|
||
KNOT_CONFIGS = [
|
||
# 1. Standard Trefoil – classic glossy blue
|
||
{"name": "Trefoil Knot", "torus_p": 2, "torus_q": 3, "shader_id": "GLOSS_BLUE"},
|
||
# 2. Cinquefoil – polished gold metal
|
||
{"name": "Cinquefoil", "torus_p": 2, "torus_q": 5, "torus_R": 2.5, "torus_r": 0.5, "shader_id": "METALLIC"},
|
||
# 3. Mobius Strip
|
||
{"name": "Mobius Strip", "shape_type": "MOBIUS", "mobius_twists": 1, "mobius_width": 1.5, "shader_id": "IRIDESCENT"},
|
||
# 4. Lissajous Figure
|
||
{"name": "Lissajous 3D", "shape_type": "LISSAJOUS", "liss_kx": 3, "liss_ky": 2, "liss_kz": 4, "liss_amp": 2.5, "shader_id": "NEON_GLOW"},
|
||
# 5. Spherical Spiral
|
||
{"name": "Spherical Spiral", "shape_type": "SPIRAL", "spiral_turns": 15, "spiral_R": 2.5, "shader_id": "GLASS"},
|
||
# 6. Extruded ribbon – glass
|
||
{"name": "Glass Ribbon", "torus_p": 4, "torus_q": 5, "geo_extrude": 0.1, "geo_offset": 0.05, "geo_bDepth": 0.0, "shader_id": "GLASS"},
|
||
# 7. Exterior/Interior mode – lava
|
||
{"name": "Lava Ring", "torus_p": 2, "torus_q": 7, "mode": "EXT_INT", "torus_eR": 3.0, "torus_iR": 1.0, "shader_id": "LAVA"},
|
||
# 8. Height variation – neon glow
|
||
{"name": "Tall Pulse", "torus_p": 3, "torus_q": 7, "torus_h": 2.0, "shader_id": "NEON_GLOW"},
|
||
# 9. Flipped direction – metallic
|
||
{"name": "Flipped Metallic", "torus_p": 4, "torus_q": 7, "flip_p": True, "flip_q": False, "shader_id": "METALLIC"},
|
||
# 10. Complex multiplier & multiple links – iridescent
|
||
{"name": "Complex Multi-Link", "torus_p": 6, "torus_q": 9, "multiple_links": True, "torus_u": 3, "torus_v": 2, "shader_id": "HOLOGRAM"},
|
||
]
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# Scene defaults
|
||
# ---------------------------------------------------------------------------
|
||
CAMERA_LOCATION = (0.0, -8.0, 3.0)
|
||
CAMERA_ROTATION = (math.radians(75), 0.0, 0.0)
|
||
|
||
LIGHT_LOCATION = (4.0, -4.0, 6.0)
|
||
LIGHT_ENERGY = 500.0
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# Well-known object / material name tags
|
||
# ---------------------------------------------------------------------------
|
||
KNOT_OBJ_NAME = "AnimKnot"
|
||
KNOT_MAT_NAME = "KnotMaterial" # legacy name kept for unregister cleanup
|
||
SHADER_BLEND_MAT_NAME = "KnotBlendMaterial" # cross-shader transition blend material
|