from marshmallow import Schema, fields
from nanome.util import enums
from .util_schemas import EnumField, ColorField, Vector3Field
[docs]class AnchorSchema(Schema):
anchor_type = EnumField(enum=enums.ShapeAnchorType)
target = fields.Integer()
local_offset = Vector3Field()
global_offset = Vector3Field()
[docs]class ShapeSchema(Schema):
index = fields.String()
shape_type = EnumField(enum=enums.ShapeType)
color = ColorField()
anchors = fields.List(fields.Nested('AnchorSchema'))
[docs]class LabelSchema(ShapeSchema):
text = fields.String()
font_size = fields.Float()
[docs]class MeshSchema(ShapeSchema):
vertices = fields.List(fields.Float())
normals = fields.List(fields.Float())
colors = fields.List(fields.Float())
triangles = fields.List(fields.Int())
uv = fields.List(fields.Float())
unlit = fields.Boolean()
texture_path = fields.String()
[docs]class SphereSchema(ShapeSchema):
radius = fields.Float()
[docs]class LineSchema(ShapeSchema):
anchors = fields.List(fields.Nested('AnchorSchema'), min=2)
thickness = fields.Float()
dash_length = fields.Float()
dash_distance = fields.Float()