Source code for nanome.api.volumetric.serializers

from nanome._internal.serializer_fields import TypeSerializer, ArrayField, ColorField, StringField


[docs]class UnitCellSerializer(TypeSerializer):
[docs] def version(self): return 0
[docs] def name(self): return "UnitCell"
[docs] def serialize(self, version, value, context): context.write_float(value._A) context.write_float(value._B) context.write_float(value._C) context.write_float(value._Alpha) context.write_float(value._Beta) context.write_float(value._Gamma) context.write_float(value._Origin.x) context.write_float(value._Origin.y) context.write_float(value._Origin.z)
[docs] def deserialize(self, version, context): raise NotImplementedError
[docs]class VolumeDataSerializer(TypeSerializer): __string = StringField() __cell = UnitCellSerializer()
[docs] def version(self): return 0
[docs] def name(self): return "VolumeData"
[docs] def serialize(self, version, value, context): context.write_int(value._width) context.write_int(value._height) context.write_int(value._depth) context.write_float(value._mean) context.write_float(value._rmsd) context.write_int(value._type) context.write_using_serializer( VolumeDataSerializer.__string, value._name) context.write_using_serializer( VolumeDataSerializer.__cell, value._cell) context.write_float_array(value._data)
[docs] def deserialize(self, version, context): raise NotImplementedError
[docs]class VolumeLayerSerializer(TypeSerializer): __color = ColorField()
[docs] def version(self): return 0
[docs] def name(self): return "VolumeLayer"
[docs] def serialize(self, version, value, context): context.write_using_serializer( VolumeLayerSerializer.__color, value._color) context.write_float(value._rmsd)
[docs] def deserialize(self, version, context): raise NotImplementedError
[docs]class VolumePropertiesSerializer(TypeSerializer): def __init__(self): self.__array = ArrayField() self.__array.set_type(VolumeLayerSerializer())
[docs] def version(self): return 0
[docs] def name(self): return "VolumeProperties"
[docs] def serialize(self, version, value, context): context.write_bool(value._visible) context.write_bool(value._boxed) context.write_bool(value._use_map_mover) context.write_int(int(value._style)) context.write_using_serializer(self.__array, value._layers)
[docs] def deserialize(self, version, context): raise NotImplementedError