zworld/plugins/geometry/gltf/mesh.go
2024-01-14 22:56:06 +08:00

38 lines
1.2 KiB
Go

package gltf
import (
"zworld/engine/renderapi/vertex"
"zworld/plugins/math/vec3"
)
type gltfMesh struct {
key string
elements int
primitive vertex.Primitive
pointers vertex.Pointers
indices []byte
vertices []byte
indexsize int
}
var _ vertex.Mesh = &gltfMesh{}
func (m *gltfMesh) Key() string { return m.key }
func (m *gltfMesh) Version() int { return 1 }
func (m *gltfMesh) IndexCount() int { return m.elements }
func (m *gltfMesh) IndexSize() int { return m.indexsize }
func (m *gltfMesh) IndexData() any { return m.indices }
func (m *gltfMesh) VertexCount() int { return len(m.vertices) / m.VertexSize() }
func (m *gltfMesh) VertexSize() int { return m.pointers.Stride() }
func (m *gltfMesh) VertexData() any { return m.vertices }
func (m *gltfMesh) Positions(func(vec3.T)) { panic("not implemented") }
func (m *gltfMesh) Triangles(func(vertex.Triangle)) { panic("not implemented") }
func (m *gltfMesh) Min() vec3.T { panic("not implemented") }
func (m *gltfMesh) Max() vec3.T { panic("not implemented") }
func (m *gltfMesh) Primitive() vertex.Primitive { return m.primitive }
func (m *gltfMesh) Pointers() vertex.Pointers { return m.pointers }