29 lines
553 B
Go
29 lines
553 B
Go
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
|
|
}
|