Skip to content

Commit f3c38a5

Browse files
committed
Make background color for renderer work
1 parent 56edeb2 commit f3c38a5

File tree

3 files changed

+19
-5
lines changed

3 files changed

+19
-5
lines changed

js/src/_base/Preview.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ var RenderableView = Renderable.RenderableView;
99
var RenderableModel = Renderable.RenderableModel;
1010

1111

12+
var BLACK = new THREE.Color('black');
13+
14+
1215
var PreviewView = RenderableView.extend({
1316

1417
render: function() {
@@ -138,6 +141,9 @@ var PreviewView = RenderableView.extend({
138141
// cameras need to be added to scene
139142
this.scene.add(this.camera);
140143

144+
// Overrides clear color on renderer:
145+
this.scene.background = BLACK;
146+
141147
// Lights
142148
this.pointLight = new THREE.PointLight('#ffffff', 1, 0);
143149
this.pointLight.position.set(-100, 100, 100);

js/src/core/Renderer.js

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ var widgets = require('@jupyter-widgets/base');
88

99
var RenderableModel = require('../_base/Renderable').RenderableModel;
1010
var RenderableView = require('../_base/Renderable').RenderableView;
11-
11+
var ThreeModel = require('../_base/Three').ThreeModel;
1212

1313
var RendererModel = RenderableModel.extend({
1414

@@ -17,14 +17,12 @@ var RendererModel = RenderableModel.extend({
1717
_view_name: 'RendererView',
1818
_model_name: 'RendererModel',
1919

20-
width: "600",
21-
height: "400",
2220
scene: null,
2321
camera: null,
2422
controls: [],
2523
effect: null,
2624
background: "black",
27-
background_opacity: 0,
25+
background_opacity: 1.0,
2826

2927
}),
3028

@@ -39,11 +37,13 @@ var RendererModel = RenderableModel.extend({
3937
setupListeners: function() {
4038

4139
var scene = this.get('scene');
40+
this.on('change', this.onChange.bind(this));
4241
this.listenTo(scene, 'change', this.onChange.bind(this));
4342
this.listenTo(scene, 'childchange', this.onChange.bind(this));
4443

4544
},
4645

46+
4747
onChange: function(model, options) {
4848
this.trigger('rerender', this, {});
4949
},
@@ -75,6 +75,14 @@ var RendererView = RenderableView.extend({
7575
this.renderScene();
7676
},
7777

78+
acquireRenderer: function() {
79+
RenderableView.prototype.acquireRenderer.call(this);
80+
81+
var background = ThreeModel.prototype.convertColorModelToThree( this.model.get('background') );
82+
var background_opacity = ThreeModel.prototype.convertFloatModelToThree( this.model.get('background_opacity') );
83+
this.renderer.setClearColor( background, background_opacity );
84+
}
85+
7886
});
7987

8088
module.exports = {

pythreejs/core/Renderer.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ class Renderer(RenderableWidget):
3333
controls = List(Instance(Controls)).tag(sync=True, **widget_serialization)
3434
#effect = Instance(Effect, allow_none=True).tag(sync=True, **widget_serialization)
3535
background = Color('black', allow_none=True).tag(sync=True)
36-
background_opacity = Float(min=0.0, max=1.0).tag(sync=True)
36+
background_opacity = Float(1.0, min=0.0, max=1.0).tag(sync=True)
3737

3838
def __init__(self, scene, camera, controls=None, **kwargs):
3939
super(Renderer, self).__init__(

0 commit comments

Comments
 (0)