Skip to content

Commit 8bdb191

Browse files
committed
Write depth is pick pass
1 parent d5f1337 commit 8bdb191

File tree

2 files changed

+21
-26
lines changed

2 files changed

+21
-26
lines changed

Source/Scene/DerivedCommand.js

+1
Original file line numberDiff line numberDiff line change
@@ -289,6 +289,7 @@ define([
289289
if (!defined(pickState)) {
290290
var rs = RenderState.getState(renderState);
291291
rs.blending.enabled = false;
292+
rs.depthMask = true;
292293

293294
pickState = RenderState.fromCache(rs);
294295
cache[renderState.id] = pickState;

Specs/Scene/PickSpec.js

+20-26
Original file line numberDiff line numberDiff line change
@@ -62,13 +62,14 @@ defineSuite([
6262
primitives.removeAll();
6363
});
6464

65-
function createRectangle() {
65+
function createRectangle(height) {
6666
var e = new Primitive({
6767
geometryInstances: new GeometryInstance({
6868
geometry: new RectangleGeometry({
6969
rectangle: primitiveRectangle,
7070
vertexFormat: EllipsoidSurfaceAppearance.VERTEX_FORMAT,
71-
granularity: CesiumMath.toRadians(20.0)
71+
granularity: CesiumMath.toRadians(20.0),
72+
height: height
7273
})
7374
}),
7475
appearance: new EllipsoidSurfaceAppearance({
@@ -94,7 +95,7 @@ defineSuite([
9495
return;
9596
}
9697

97-
var rectangle = createRectangle();
98+
var rectangle = createRectangle(0.0);
9899
expect(scene).toPickPrimitive(rectangle);
99100
});
100101

@@ -108,7 +109,7 @@ defineSuite([
108109
destination : Rectangle.fromDegrees(-10.0, -10.0, 10.0, 10.0)
109110
});
110111

111-
var rectangle = createRectangle();
112+
var rectangle = createRectangle(0.0);
112113

113114
expect(scene).toPickPrimitive(rectangle, 7, 7, 5);
114115
expect(scene).notToPick(7, 7, 3);
@@ -124,30 +125,29 @@ defineSuite([
124125
destination : Rectangle.fromDegrees(-10.0, -10.0, 10.0, 10.0)
125126
});
126127

127-
var rectangle = createRectangle();
128+
var rectangle = createRectangle(0.0);
128129

129130
expect(scene).toDrillPickPrimitive(rectangle, 7, 7, 5);
130131
expect(scene).notToDrillPick(7, 7, 3);
131132
});
132133

133134
it('does not pick primitives when show is false', function() {
134-
var rectangle = createRectangle();
135+
var rectangle = createRectangle(0.0);
135136
rectangle.show = false;
136137

137138
expect(scene).notToPick();
138139
});
139140

140141
it('does not pick primitives when alpha is zero', function() {
141-
var rectangle = createRectangle();
142+
var rectangle = createRectangle(0.0);
142143
rectangle.appearance.material.uniforms.color.alpha = 0.0;
143144

144145
expect(scene).notToPick();
145146
});
146147

147148
it('picks the top primitive', function() {
148149
createRectangle();
149-
var rectangle2 = createRectangle();
150-
rectangle2.height = 0.01;
150+
var rectangle2 = createRectangle(1.0);
151151

152152
expect(scene).toPickPrimitive(rectangle2);
153153
});
@@ -159,9 +159,8 @@ defineSuite([
159159
});
160160

161161
it('drill picks multiple objects', function() {
162-
var rectangle1 = createRectangle();
163-
var rectangle2 = createRectangle();
164-
rectangle2.height = 0.01;
162+
var rectangle1 = createRectangle(0.0);
163+
var rectangle2 = createRectangle(1.0);
165164

166165
expect(scene).toDrillPickAndCall(function(pickedObjects) {
167166
expect(pickedObjects.length).toEqual(2);
@@ -171,9 +170,8 @@ defineSuite([
171170
});
172171

173172
it('does not drill pick when show is false', function() {
174-
var rectangle1 = createRectangle();
175-
var rectangle2 = createRectangle();
176-
rectangle2.height = 0.01;
173+
var rectangle1 = createRectangle(0.0);
174+
var rectangle2 = createRectangle(1.0);
177175
rectangle2.show = false;
178176

179177
expect(scene).toDrillPickAndCall(function(pickedObjects) {
@@ -183,9 +181,8 @@ defineSuite([
183181
});
184182

185183
it('does not drill pick when alpha is zero', function() {
186-
var rectangle1 = createRectangle();
187-
var rectangle2 = createRectangle();
188-
rectangle2.height = 0.01;
184+
var rectangle1 = createRectangle(0.0);
185+
var rectangle2 = createRectangle(1.0);
189186
rectangle2.appearance.material.uniforms.color.alpha = 0.0;
190187

191188
expect(scene).toDrillPickAndCall(function(pickedObjects) {
@@ -323,12 +320,9 @@ defineSuite([
323320
});
324321

325322
it('stops drill picking when the limit is reached.', function() {
326-
var rectangle2 = createRectangle();
327-
var rectangle3 = createRectangle();
328-
var rectangle4 = createRectangle();
329-
rectangle2.height = 0.01;
330-
rectangle3.height = 0.02;
331-
rectangle4.height = 0.03;
323+
var rectangle2 = createRectangle(1.0);
324+
var rectangle3 = createRectangle(2.0);
325+
var rectangle4 = createRectangle(3.0);
332326

333327
expect(scene).toDrillPickAndCall(function(pickedObjects) {
334328
expect(pickedObjects.length).toEqual(3);
@@ -341,7 +335,7 @@ defineSuite([
341335
it('picks in 2D', function() {
342336
scene.morphTo2D(0.0);
343337
camera.setView({ destination : primitiveRectangle });
344-
var rectangle = createRectangle();
338+
var rectangle = createRectangle(0.0);
345339
scene.initializeFrame();
346340
expect(scene).toPickPrimitive(rectangle);
347341
});
@@ -356,7 +350,7 @@ defineSuite([
356350
expect(frustum.projectionMatrix).toBeDefined();
357351

358352
camera.setView({ destination : primitiveRectangle });
359-
var rectangle = createRectangle();
353+
var rectangle = createRectangle(0.0);
360354
scene.initializeFrame();
361355
expect(scene).toPickPrimitive(rectangle);
362356
});

0 commit comments

Comments
 (0)