initial vertex weights implementation

This commit is contained in:
SleepKiller
2020-10-16 13:40:27 +13:00
parent b56fa79a19
commit dac3ade7a4
3 changed files with 94 additions and 9 deletions

View File

@@ -27,17 +27,24 @@ class ModelTransform:
translation: Vector = field(default_factory=Vector)
rotation: Quaternion = field(default_factory=Quaternion)
@dataclass
class VertexWeight:
""" Class representing a vertex weight in a .msh file. """
weight: float = 1.0
bone: int = 0
@dataclass
class GeometrySegment:
""" Class representing a 'SEGM' section in a .msh file. """
material_name: str = ""
material_name: str = field(default_factory=str)
positions: List[Vector] = field(default_factory=list)
normals: List[Vector] = field(default_factory=list)
colors: List[List[float]] = None
texcoords: List[Vector] = field(default_factory=list)
# TODO: Skin support.
weights: List[List[VertexWeight]] = None
polygons: List[List[int]] = field(default_factory=list)
triangles: List[List[int]] = field(default_factory=list)
@@ -63,5 +70,7 @@ class Model:
transform: ModelTransform = field(default_factory=ModelTransform)
bone_map: List[str] = None
geometry: List[GeometrySegment] = None
collisionprimitive: CollisionPrimitive = None