1# automatically generated by the FlatBuffers compiler, do not modify
2
3# namespace: Example
4
5import flatbuffers
6from flatbuffers.compat import import_numpy
7np = import_numpy()
8
9class Vec3(object):
10    __slots__ = ['_tab']
11
12    @classmethod
13    def SizeOf(cls):
14        return 32
15
16    # Vec3
17    def Init(self, buf, pos):
18        self._tab = flatbuffers.table.Table(buf, pos)
19
20    # Vec3
21    def X(self): return self._tab.Get(flatbuffers.number_types.Float32Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(0))
22    # Vec3
23    def Y(self): return self._tab.Get(flatbuffers.number_types.Float32Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(4))
24    # Vec3
25    def Z(self): return self._tab.Get(flatbuffers.number_types.Float32Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(8))
26    # Vec3
27    def Test1(self): return self._tab.Get(flatbuffers.number_types.Float64Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(16))
28    # Vec3
29    def Test2(self): return self._tab.Get(flatbuffers.number_types.Uint8Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(24))
30    # Vec3
31    def Test3(self, obj):
32        obj.Init(self._tab.Bytes, self._tab.Pos + 26)
33        return obj
34
35
36def CreateVec3(builder, x, y, z, test1, test2, test3_a, test3_b):
37    builder.Prep(8, 32)
38    builder.Pad(2)
39    builder.Prep(2, 4)
40    builder.Pad(1)
41    builder.PrependInt8(test3_b)
42    builder.PrependInt16(test3_a)
43    builder.Pad(1)
44    builder.PrependUint8(test2)
45    builder.PrependFloat64(test1)
46    builder.Pad(4)
47    builder.PrependFloat32(z)
48    builder.PrependFloat32(y)
49    builder.PrependFloat32(x)
50    return builder.Offset()
51
52import MyGame.Example.Test
53try:
54    from typing import Optional
55except:
56    pass
57
58class Vec3T(object):
59
60    # Vec3T
61    def __init__(self):
62        self.x = 0.0  # type: float
63        self.y = 0.0  # type: float
64        self.z = 0.0  # type: float
65        self.test1 = 0.0  # type: float
66        self.test2 = 0  # type: int
67        self.test3 = None  # type: Optional[MyGame.Example.Test.TestT]
68
69    @classmethod
70    def InitFromBuf(cls, buf, pos):
71        vec3 = Vec3()
72        vec3.Init(buf, pos)
73        return cls.InitFromObj(vec3)
74
75    @classmethod
76    def InitFromObj(cls, vec3):
77        x = Vec3T()
78        x._UnPack(vec3)
79        return x
80
81    # Vec3T
82    def _UnPack(self, vec3):
83        if vec3 is None:
84            return
85        self.x = vec3.X()
86        self.y = vec3.Y()
87        self.z = vec3.Z()
88        self.test1 = vec3.Test1()
89        self.test2 = vec3.Test2()
90        if vec3.Test3(MyGame.Example.Test.Test()) is not None:
91            self.test3 = MyGame.Example.Test.TestT.InitFromObj(vec3.Test3(MyGame.Example.Test.Test()))
92
93    # Vec3T
94    def Pack(self, builder):
95        return CreateVec3(builder, self.x, self.y, self.z, self.test1, self.test2, self.test3.a, self.test3.b)
96