-
Notifications
You must be signed in to change notification settings - Fork 16
/
sdk.go
37 lines (32 loc) · 1015 Bytes
/
sdk.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package geometries
import (
uuid "github.com/satori/go.uuid"
"github.com/deepvalue-network/software/treedee/domain/worlds/scenes/nodes/models/geometries/primitives"
"github.com/deepvalue-network/software/treedee/domain/worlds/scenes/nodes/models/geometries/shaders"
"github.com/deepvalue-network/software/treedee/domain/worlds/scenes/nodes/models/geometries/vertices"
)
// NewBuilder creates a new builder instance
func NewBuilder() Builder {
return createBuilder()
}
// Builder represents the geometry builder
type Builder interface {
Create() Builder
WithID(id *uuid.UUID) Builder
WithPrimitive(primitive primitives.Primitive) Builder
WithVertices(vertices []vertices.Vertex) Builder
WithShader(shader shaders.Shader) Builder
IsTriangle() Builder
Now() (Geometry, error)
}
// Geometry represents a geometry
type Geometry interface {
ID() *uuid.UUID
Type() Type
Shader() shaders.Shader
Vertices() []vertices.Vertex
}
// Type represents geometry type
type Type interface {
IsTriangle() bool
}