-
Notifications
You must be signed in to change notification settings - Fork 16
/
sdk.go
34 lines (30 loc) · 920 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
package displays
import (
uuid "github.com/satori/go.uuid"
"github.com/deepvalue-network/software/treedee/domain/worlds/scenes/nodes/cameras"
"github.com/deepvalue-network/software/treedee/domain/worlds/scenes/nodes/models/materials"
"github.com/deepvalue-network/software/treedee/domain/worlds/viewports"
)
// NewBuilder creates a new builder instance
func NewBuilder() Builder {
return createBuilder()
}
// Builder represents a display builder
type Builder interface {
Create() Builder
WithID(id *uuid.UUID) Builder
WithIndex(index uint) Builder
WithViewport(viewport viewports.Viewport) Builder
WithCamera(cam cameras.Camera) Builder
WithMaterial(mat materials.Material) Builder
Now() (Display, error)
}
// Display represents a display
type Display interface {
ID() *uuid.UUID
Index() uint
Viewport() viewports.Viewport
Camera() cameras.Camera
HasMaterial() bool
Material() materials.Material
}