1// Code generated by the FlatBuffers compiler. DO NOT EDIT.
2
3package Example
4
5import (
6	flatbuffers "github.com/google/flatbuffers/go"
7)
8
9type Vec3T struct {
10	X float32
11	Y float32
12	Z float32
13	Test1 float64
14	Test2 Color
15	Test3 *TestT
16}
17
18func (t *Vec3T) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT {
19	if t == nil { return 0 }
20	return CreateVec3(builder, t.X, t.Y, t.Z, t.Test1, t.Test2, t.Test3.A, t.Test3.B)
21}
22func (rcv *Vec3) UnPackTo(t *Vec3T) {
23	t.X = rcv.X()
24	t.Y = rcv.Y()
25	t.Z = rcv.Z()
26	t.Test1 = rcv.Test1()
27	t.Test2 = rcv.Test2()
28	t.Test3 = rcv.Test3(nil).UnPack()
29}
30
31func (rcv *Vec3) UnPack() *Vec3T {
32	if rcv == nil { return nil }
33	t := &Vec3T{}
34	rcv.UnPackTo(t)
35	return t
36}
37
38type Vec3 struct {
39	_tab flatbuffers.Struct
40}
41
42func (rcv *Vec3) Init(buf []byte, i flatbuffers.UOffsetT) {
43	rcv._tab.Bytes = buf
44	rcv._tab.Pos = i
45}
46
47func (rcv *Vec3) Table() flatbuffers.Table {
48	return rcv._tab.Table
49}
50
51func (rcv *Vec3) X() float32 {
52	return rcv._tab.GetFloat32(rcv._tab.Pos + flatbuffers.UOffsetT(0))
53}
54func (rcv *Vec3) MutateX(n float32) bool {
55	return rcv._tab.MutateFloat32(rcv._tab.Pos+flatbuffers.UOffsetT(0), n)
56}
57
58func (rcv *Vec3) Y() float32 {
59	return rcv._tab.GetFloat32(rcv._tab.Pos + flatbuffers.UOffsetT(4))
60}
61func (rcv *Vec3) MutateY(n float32) bool {
62	return rcv._tab.MutateFloat32(rcv._tab.Pos+flatbuffers.UOffsetT(4), n)
63}
64
65func (rcv *Vec3) Z() float32 {
66	return rcv._tab.GetFloat32(rcv._tab.Pos + flatbuffers.UOffsetT(8))
67}
68func (rcv *Vec3) MutateZ(n float32) bool {
69	return rcv._tab.MutateFloat32(rcv._tab.Pos+flatbuffers.UOffsetT(8), n)
70}
71
72func (rcv *Vec3) Test1() float64 {
73	return rcv._tab.GetFloat64(rcv._tab.Pos + flatbuffers.UOffsetT(16))
74}
75func (rcv *Vec3) MutateTest1(n float64) bool {
76	return rcv._tab.MutateFloat64(rcv._tab.Pos+flatbuffers.UOffsetT(16), n)
77}
78
79func (rcv *Vec3) Test2() Color {
80	return Color(rcv._tab.GetByte(rcv._tab.Pos + flatbuffers.UOffsetT(24)))
81}
82func (rcv *Vec3) MutateTest2(n Color) bool {
83	return rcv._tab.MutateByte(rcv._tab.Pos+flatbuffers.UOffsetT(24), byte(n))
84}
85
86func (rcv *Vec3) Test3(obj *Test) *Test {
87	if obj == nil {
88		obj = new(Test)
89	}
90	obj.Init(rcv._tab.Bytes, rcv._tab.Pos+26)
91	return obj
92}
93
94func CreateVec3(builder *flatbuffers.Builder, x float32, y float32, z float32, test1 float64, test2 Color, test3_a int16, test3_b int8) flatbuffers.UOffsetT {
95	builder.Prep(8, 32)
96	builder.Pad(2)
97	builder.Prep(2, 4)
98	builder.Pad(1)
99	builder.PrependInt8(test3_b)
100	builder.PrependInt16(test3_a)
101	builder.Pad(1)
102	builder.PrependByte(byte(test2))
103	builder.PrependFloat64(test1)
104	builder.Pad(4)
105	builder.PrependFloat32(z)
106	builder.PrependFloat32(y)
107	builder.PrependFloat32(x)
108	return builder.Offset()
109}
110