40 lines
652 B
Go
40 lines
652 B
Go
package globject
|
|
|
|
import (
|
|
"github.com/go-gl/mathgl/mgl32"
|
|
)
|
|
|
|
const VertexSize int32 = 8
|
|
|
|
type Vertex struct {
|
|
Position mgl32.Vec3
|
|
Normal mgl32.Vec3
|
|
Texture mgl32.Vec2
|
|
}
|
|
|
|
func NewVertex(px, py, pz, nx, ny, nz, tx, ty float32) *Vertex {
|
|
vertex := Vertex{
|
|
Position: mgl32.Vec3{px, py, pz},
|
|
Normal: mgl32.Vec3{nx, ny, nz},
|
|
Texture: mgl32.Vec2{tx, ty},
|
|
}
|
|
return &vertex
|
|
}
|
|
|
|
func (v *Vertex) GetVertexArray() []float32 {
|
|
a := make([]float32, VertexSize)
|
|
|
|
a[0] = v.Position[0]
|
|
a[1] = v.Position[1]
|
|
a[2] = v.Position[2]
|
|
|
|
a[3] = v.Normal[0]
|
|
a[4] = v.Normal[1]
|
|
a[5] = v.Normal[2]
|
|
|
|
a[6] = v.Texture[0]
|
|
a[7] = v.Texture[1]
|
|
|
|
return a
|
|
}
|