-
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
Time Dynamic Point Clouds #6721
Changes from 15 commits
2dab089
61065d8
96cd741
a618a7e
4704934
ab37223
d2df499
cd219a8
45382e7
0e44cf8
1c62498
23fb235
45f20bc
59e169a
f505207
bd67113
f30e694
a4f2d21
c4a0620
178003f
b166766
3455dc3
70cac08
9d6552c
e1cf350
52632b3
8f6a975
ed8624c
eacc367
3739e84
eb1ceeb
04a8797
a9d2be7
e1fddc0
f531406
dd7a59c
adf8f4e
cb9ee74
a7baeff
b2b94f5
3294f35
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,77 @@ | ||
<!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="Time Dynamic Point Cloud"> | ||
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. The description shouldn't just repeat the name. |
||
<meta name="cesium-sandcastle-labels" content="Showcases, 3D Tiles"> | ||
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. Totally just semantics but technically, though it uses 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. I was debating this too. I'll move it out of 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', { | ||
shouldAnimate : true | ||
}); | ||
|
||
var basePath = '../../SampleData/test/PointCloudTimeDynamic/'; | ||
var czmlPath = basePath + 'frames.czml'; | ||
var dataSource = viewer.dataSources.add(Cesium.CzmlDataSource.load(czmlPath)); | ||
dataSource.then(function(dataSource) { | ||
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. Should there be a helper for this? What if a CZML has time-dynamic point clouds and other content - looks like it all just works, right? |
||
var entities = dataSource.entities; | ||
var entity = entities.getById('Time Dynamic Point Cloud'); | ||
var properties = entity.properties; | ||
var frames = properties.frames; | ||
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. Should the CZML spec be updated? 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. I didn't actually make any changes to CZML in this PR, I just use CZML to package the data for the demo. CZML conveniently creates a But maybe I should hardcode the time intervals and uris in the demo itself to avoid the confusion here and #6721 (comment) #6721 (comment). 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. Hardcoding sounds OK; if CZML can now point to a .pnts file, we should update the spec for that. 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. No CZML spec updates required. The demo is just using CZML as a storage mechanism and helper. There was some offline discussion that this use case is too niche to be added to core CZML, so I never built that in. But the demo shows that if you had a czml with a custom property you could get a 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, I suppose. We have someone relying on this and we need to provide them guidance on the best practice whether that be a custom CZML property or a completely separate container. They are already a CZML user as you know but that does not imply that the point clouds needs to be part of it. |
||
var intervals = frames.intervals; | ||
|
||
// Update uris to be absolute | ||
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. Is this a hack? |
||
var length = intervals.length; | ||
for (var i = 0; i < length; ++i) { | ||
var data = intervals.get(i).data; | ||
data.uri = basePath + data.uri; | ||
} | ||
|
||
viewer.scene.primitives.add(new Cesium.TimeDynamicPointCloud({ | ||
intervals : intervals, | ||
clock : viewer.clock, | ||
style : new Cesium.Cesium3DTileStyle({ | ||
pointSize : 5 | ||
}) | ||
})); | ||
}); | ||
|
||
viewer.camera.setView({ | ||
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. Could something like 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. Yeah this is a good idea. Will bump when ready. |
||
destination: new Cesium.Cartesian3(1215092.7260503182, -4736533.485206121, 4081535.746782565), | ||
orientation: new Cesium.HeadingPitchRoll(6.207713496216043, -0.6084278199488593, 6.282880789149928), | ||
endTransform : Cesium.Matrix4.IDENTITY | ||
}); | ||
//Sandcastle_End | ||
Sandcastle.finishedLoading(); | ||
} | ||
if (typeof Cesium !== "undefined") { | ||
startup(Cesium); | ||
} else if (typeof require === "function") { | ||
require(["Cesium"], startup); | ||
} | ||
</script> | ||
</body> | ||
</html> |
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.
Trying to run this, I get "Request has failed. Status Code: 404"
Is this because the data is only in the specs?
http://cesium-dev.s3-website-us-east-1.amazonaws.com/cesium/point-cloud-stream-new/Apps/Sandcastle/index.html?src=Time%20Dynamic%20Point%20Cloud.html
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.
Yeah, that will be fixed.