Source code for scfile.structures.models.scene
"""
Data structures for scenes.
"""
from dataclasses import dataclass, field
from .animation import ModelAnimation
from .mesh import ModelMesh
from .skeleton import ModelSkeleton
[docs]
@dataclass
class SceneScales:
"""Scale multipliers for scene data."""
position: float = 1.0
uv: float = 1.0
uv2: float = 1.0
filtering: float = 0.1
[docs]
@dataclass
class ModelScene:
"""Container for meshes, skeleton, and animation."""
scale: SceneScales = field(default_factory=SceneScales)
meshes: list[ModelMesh] = field(default_factory=list)
skeleton: ModelSkeleton = field(default_factory=ModelSkeleton)
animation: ModelAnimation = field(default_factory=ModelAnimation)
@property
def total_vertices(self):
return sum(len(mesh.vertices) for mesh in self.meshes)
@property
def total_polygons(self):
return sum(len(mesh.polygons) for mesh in self.meshes)