zworld/engine/renderapi/vertex/mesh_generated.go

29 lines
553 B
Go
Raw Normal View History

2024-01-14 22:56:06 +08:00
package vertex
type Args interface{}
type GeneratedMesh[A Args, V Vertex, I Index] interface {
Mesh
Update(A)
}
type generated[A Args, V Vertex, I Index] struct {
Mesh
key string
version int
hash int
generator func(A) (V, I)
}
func NewGenerated[A Args, V Vertex, I Index](key string, args A, generator func(A) (V, I)) GeneratedMesh[A, V, I] {
return &generated[A, V, I]{
key: key,
version: 1,
generator: generator,
}
}
func (g *generated[A, V, I]) Update(args A) {
// if args hash has changed, update version
}