-
Notifications
You must be signed in to change notification settings - Fork 3.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Clamping to 3D Tiles #6934
Clamping to 3D Tiles #6934
Changes from 30 commits
ab1ed46
62d6658
5e133ff
318821f
236c850
3e58014
59570f5
55734c7
3001c5b
e111e3f
e6688e8
653fe19
3a1566c
4e079b7
1e26b8b
1c98b5d
d8490eb
7c787c7
7799cd0
9a8f03d
ffc35c6
9abdbb6
a37ad74
9f547b4
7671f71
d4f6dae
6f0b8f9
d57b749
45a77b3
7e54834
9465e34
faafedf
def0ddd
6afb0d0
59df7ed
e253de6
9c8c800
8209e29
1cda2e1
7da184d
e67aaa4
eaab71c
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
[ | ||
{ | ||
"id": "document", | ||
"version": "1.0", | ||
"clock": { | ||
"interval": "2018-07-19T15:18:00Z/2018-07-19T15:18:30Z", | ||
"currentTime": "2018-07-19T15:18:00Z", | ||
"multiplier": 5, | ||
"range": "LOOP_STOP", | ||
"step": "SYSTEM_CLOCK_MULTIPLIER" | ||
} | ||
}, | ||
{ | ||
"id": "CesiumMilkTruck", | ||
"model": { | ||
"gltf": "models/CesiumMilkTruck/CesiumMilkTruck.glb" | ||
}, | ||
"position": { | ||
"interpolationAlgorithm": "LINEAR", | ||
"forwardExtrapolationType": "HOLD", | ||
"cartesian": [ | ||
"2018-07-19T15:18:00Z", | ||
1216348.1632364073, | ||
-4736348.958775471, | ||
4081284.5528982095, | ||
"2018-07-19T15:18:30Z", | ||
1216369.1229444197, | ||
-4736377.467107148, | ||
4081240.888485707 | ||
] | ||
}, | ||
"orientation": { | ||
"unitQuaternion": [ | ||
0.3084011337938999, | ||
0.3210181022701266, | ||
-0.45850421987074924, | ||
0.7686388857813198 | ||
] | ||
} | ||
} | ||
] |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,102 @@ | ||
<!DOCTYPE html> | ||
<html lang="en"> | ||
<head> | ||
<meta charset="utf-8"> | ||
<meta http-equiv="X-UA-Compatible" content="IE=edge"> | ||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no"> | ||
<meta name="description" content="Clamp a point and label to a model using the sampleHeight function."> | ||
<meta name="cesium-sandcastle-labels" content="Showcases"> | ||
<title>Cesium Demo</title> | ||
<script type="text/javascript" src="../Sandcastle-header.js"></script> | ||
<script type="text/javascript" src="../../../ThirdParty/requirejs-2.1.20/require.js"></script> | ||
<script type="text/javascript"> | ||
if(typeof require === 'function') { | ||
require.config({ | ||
baseUrl : '../../../Source', | ||
waitSeconds : 120 | ||
}); | ||
} | ||
</script> | ||
</head> | ||
<body class="sandcastle-loading" data-sandcastle-bucket="bucket-requirejs.html"> | ||
<style> | ||
@import url(../templates/bucket.css); | ||
</style> | ||
<div id="cesiumContainer" class="fullSize"></div> | ||
<div id="loadingOverlay"><h1>Loading...</h1></div> | ||
<div id="toolbar"></div> | ||
<script id="cesium_sandcastle_script"> | ||
function startup(Cesium) { | ||
'use strict'; | ||
//Sandcastle_Begin | ||
var viewer = new Cesium.Viewer('cesiumContainer', { | ||
infoBox : false, | ||
selectionIndicator : false, | ||
shadows : true, | ||
shouldAnimate : true | ||
}); | ||
viewer.scene.globe.depthTestAgainstTerrain = true; | ||
|
||
var longitude = -2.1480545852753163; | ||
var latitude = 0.7688240036937101; | ||
var range = 0.000002; | ||
var duration = 4.0; | ||
|
||
var entity = viewer.entities.add({ | ||
position : Cesium.Cartesian3.fromRadians(longitude, latitude), | ||
model : { | ||
uri : '../../SampleData/models/GroundVehicle/GroundVehicle.glb' | ||
} | ||
}); | ||
|
||
var point = viewer.entities.add({ | ||
position : new Cesium.CallbackProperty(updatePosition, false), | ||
point : { | ||
pixelSize : 10, | ||
color : Cesium.Color.YELLOW, | ||
disableDepthTestDistance : Number.POSITIVE_INFINITY | ||
}, | ||
label : { | ||
show : false, | ||
showBackground : true, | ||
font : '14px monospace', | ||
horizontalOrigin : Cesium.HorizontalOrigin.LEFT, | ||
verticalOrigin : Cesium.VerticalOrigin.BOTTOM, | ||
pixelOffset : new Cesium.Cartesian2(5, 5), | ||
disableDepthTestDistance : Number.POSITIVE_INFINITY | ||
} | ||
}); | ||
|
||
var objectsToExclude = [point]; | ||
var cartographic = new Cesium.Cartographic(); | ||
|
||
function updatePosition(time, result) { | ||
var offset = (time.secondsOfDay % duration) / duration; | ||
cartographic.longitude = longitude - range + offset * range * 2.0; | ||
cartographic.latitude = latitude; | ||
|
||
var height = viewer.scene.sampleHeight(cartographic, objectsToExclude); | ||
|
||
if (Cesium.defined(height)) { | ||
cartographic.height = height; | ||
point.label.text = Math.abs(height).toFixed(2).toString() + ' m'; | ||
point.label.show = true; | ||
} else { | ||
cartographic.height = 0.0; | ||
point.label.show = false; | ||
} | ||
|
||
return Cesium.Cartographic.toCartesian(cartographic, Cesium.Ellipsoid.WGS84, result); | ||
} | ||
viewer.trackedEntity = entity; | ||
//Sandcastle_End | ||
Sandcastle.finishedLoading(); | ||
} | ||
if (typeof Cesium !== 'undefined') { | ||
startup(Cesium); | ||
} else if (typeof require === 'function') { | ||
require(['Cesium'], startup); | ||
} | ||
</script> | ||
</body> | ||
</html> |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
<!DOCTYPE html> | ||
<html lang="en"> | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. For Sandcastle examples:
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Added Renamed |
||
<head> | ||
<meta charset="utf-8"> | ||
<meta http-equiv="X-UA-Compatible" content="IE=edge"> | ||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no"> | ||
<meta name="description" content="Clamp a model to a 3D Tileset using the clampToHeight function."> | ||
<meta name="cesium-sandcastle-labels" content="Showcases, 3D Tiles"> | ||
<title>Cesium Demo</title> | ||
<script type="text/javascript" src="../Sandcastle-header.js"></script> | ||
<script type="text/javascript" src="../../../ThirdParty/requirejs-2.1.20/require.js"></script> | ||
<script type="text/javascript"> | ||
if(typeof require === 'function') { | ||
require.config({ | ||
baseUrl : '../../../Source', | ||
waitSeconds : 120 | ||
}); | ||
} | ||
</script> | ||
</head> | ||
<body class="sandcastle-loading" data-sandcastle-bucket="bucket-requirejs.html"> | ||
<style> | ||
@import url(../templates/bucket.css); | ||
</style> | ||
<div id="cesiumContainer" class="fullSize"></div> | ||
<div id="loadingOverlay"><h1>Loading...</h1></div> | ||
<div id="toolbar"></div> | ||
<script id="cesium_sandcastle_script"> | ||
function startup(Cesium) { | ||
'use strict'; | ||
//Sandcastle_Begin | ||
var viewer = new Cesium.Viewer('cesiumContainer', { | ||
terrainProvider : Cesium.createWorldTerrain() | ||
}); | ||
var scene = viewer.scene; | ||
var clock = viewer.clock; | ||
|
||
if (!scene.clampToHeightSupported) { | ||
console.log('This browser does not support clampToHeight.'); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. To make this example easier to follow, just There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. OK, let's keep it so the example doesn't get stuck. |
||
return; | ||
} | ||
|
||
var entity; | ||
var positionProperty; | ||
var dataSourcePromise = Cesium.CzmlDataSource.load('../../SampleData/ClampToGround.czml'); | ||
viewer.dataSources.add(dataSourcePromise).then(function(dataSource) { | ||
entity = dataSource.entities.getById('CesiumMilkTruck'); | ||
positionProperty = entity.position; | ||
}); | ||
|
||
var tileset = scene.primitives.add( | ||
new Cesium.Cesium3DTileset({ | ||
url: Cesium.IonResource.fromAssetId(6074) | ||
}) | ||
); | ||
|
||
viewer.camera.setView({ | ||
destination: new Cesium.Cartesian3(1216403.8845586285, -4736357.493351395, 4081299.715698949), | ||
orientation: new Cesium.HeadingPitchRoll(4.2892217081808806, -0.4799070147502502, 6.279789177843313), | ||
endTransform : Cesium.Matrix4.IDENTITY | ||
}); | ||
|
||
tileset.initialTilesLoaded.addEventListener(start); | ||
|
||
function start() { | ||
clock.shouldAnimate = true; | ||
var objectsToExclude = [entity]; | ||
scene.postRender.addEventListener(function() { | ||
var position = positionProperty.getValue(clock.currentTime); | ||
entity.position = scene.clampToHeight(position, objectsToExclude); | ||
}); | ||
} | ||
//Sandcastle_End | ||
Sandcastle.finishedLoading(); | ||
} | ||
if (typeof Cesium !== 'undefined') { | ||
startup(Cesium); | ||
} else if (typeof require === 'function') { | ||
require(['Cesium'], startup); | ||
} | ||
</script> | ||
</body> | ||
</html> |
This file was deleted.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is missing the thumbnail? Perhaps
gallery/development/Clamp to Tileset.jpg
is in the wrong location?