/
backgroundrenderer.go
77 lines (62 loc) · 2.19 KB
/
backgroundrenderer.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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
package g3nrender
import (
"log"
"github.com/g3n/engine/core"
"github.com/g3n/engine/math32"
"github.com/trimble-oss/tierceron-nute/g3nd/g3nmash"
"github.com/trimble-oss/tierceron-nute/g3nd/g3nworld"
g3ndpalette "github.com/trimble-oss/tierceron-nute/g3nd/palette"
"github.com/trimble-oss/tierceron-nute/mashupsdk"
)
type BackgroundRenderer struct {
GenericRenderer
CollaboratingRenderer IG3nRenderer
ActiveColor *math32.Color
}
func (br *BackgroundRenderer) NewSolidAtPosition(g3n *g3nmash.G3nDetailedElement, vpos *math32.Vector3) core.INode {
return nil
}
func (br *BackgroundRenderer) NewInternalMeshAtPosition(g3n *g3nmash.G3nDetailedElement, vpos *math32.Vector3) core.INode {
return nil
}
func (br *BackgroundRenderer) NewRelatedMeshAtPosition(g3n *g3nmash.G3nDetailedElement, vpos *math32.Vector3, vprevpos *math32.Vector3) core.INode {
return nil
}
func (br *BackgroundRenderer) NextCoordinate(g3n *g3nmash.G3nDetailedElement, totalElements int) (*g3nmash.G3nDetailedElement, *math32.Vector3) {
return nil, nil
}
func (br *BackgroundRenderer) Layout(worldApp *g3nworld.WorldApp,
g3nRenderableElements []*g3nmash.G3nDetailedElement) {
return
}
func (br *BackgroundRenderer) GetRenderer(rendererName string) IG3nRenderer {
if br.CollaboratingRenderer != nil {
return br.CollaboratingRenderer
}
return nil
}
func (br *BackgroundRenderer) InitRenderLoop(worldApp *g3nworld.WorldApp) bool {
// TODO: noop
return true
}
func (br *BackgroundRenderer) RenderElement(worldApp *g3nworld.WorldApp, g3nDetailedElement *g3nmash.G3nDetailedElement) bool {
var g3nColor *math32.Color
if br.ActiveColor == nil {
br.ActiveColor = g3ndpalette.DARK_RED
}
if g3nDetailedElement.IsStateSet(mashupsdk.Clicked) {
g3nColor = g3ndpalette.DARK_RED
if br.ActiveColor == g3ndpalette.DARK_RED {
br.ActiveColor = g3ndpalette.DARK_GREEN
} else {
br.ActiveColor = g3ndpalette.DARK_RED
}
log.Printf("Active color: %v\n", br.ActiveColor)
} else {
g3nColor = g3ndpalette.GREY
}
return g3nDetailedElement.SetColor(g3nColor, 1.0)
}
func (br *BackgroundRenderer) Collaborate(worldApp *g3nworld.WorldApp, collaboratingRenderer IG3nRenderer) {
br.CollaboratingRenderer.Collaborate(worldApp, br)
}