Files
2026-06-04 06:04:45 -04:00

54 lines
2.8 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""
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