Skip to content
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

Entity & Data Sources roadmap #1045

Open
28 of 70 tasks
mramato opened this issue Aug 20, 2013 · 4 comments
Open
28 of 70 tasks

Entity & Data Sources roadmap #1045

mramato opened this issue Aug 20, 2013 · 4 comments

Comments

@mramato
Copy link
Contributor

mramato commented Aug 20, 2013

This roadmap hopes to capture a high-level view of the current work planned for the DataSource layer.

Near-ish term

  • Entity-specific picking API (returns entity and the graphics object that was picked)
  • Add support for entity highlighting (i.e. on pick/hover/etc...)
  • Direct support for Material instances via new CustomMaterialProperty
  • Refactor viewFrom and EntityView
  • Make InfoBox zooming consistent for all entities. (Add ability to either track or fly to).
  • Implement a caching policy for Property objects so we don't redo work
  • Use the refactored property system to optimize all existing visualizers. This involves minimizing the amount of duplicate work that is currently done every frame as well as providing alternative rendering paths for static data which uses Geometry & Appearances.
  • Dynamic geometry updates should compare current values with last frames and only make updates if something changes.
  • viewer entity camera controls need to expose ability to cancel pending flight or zooms (also support canceling a home flight while we're at it).
  • Detect and automatically use EllipsoidSurfaceAppearance
  • Port Materials Sandcastle example and add entity features needed to do so.
  • Support for per-segment or per-vertex polyline color.
  • Availability improvements (as discussed in this post)
  • Look into scene.primitives.removeAll crash.
  • Entity.addProperty should take an optional initial value.
  • Unique id for each DataSource and ability to remove from DataSourceCollection by id.

Entities and Properties

  • Support for positions whose reference frame is another entity.
  • Support for orientations whose reference frame another entity or INERTIAL.
  • Interpolate Color over HSL instead of rgb.
  • Sandcastle: Billboards/Labels: Define entity position in another reference frame.
  • Better access to SampledProperty samples and ability to get closest sample for a given time.
  • Shadow support for non-model entities Shadows for Primitive entities #3928

Data Sources

  • Implement GPX Data Source
  • Define a base class for all file-based DataSources so that we can support auto-detection/loading without the user knowing what the data is.
  • Develop a system for easy streaming of dynamic data through polling, EventSource, and WebSockets available to all data sources.
  • Implement previousTime/nextTime from CZML spec. This may involve adding the ability for sampled properties to inform the developer as to whether they are "complete" or still receiving additional sampled.
  • Time-dynamic formatted strings in CZML
  • Ability for data sources to define imagery and terrain servers.
  • Review/Refactor CZML specs and improve code and branch coverage.
  • Make it trivial to support custom CZML properties client-side.
  • Replace CZML examples (models, vehicles, geometry, etc...)
  • Write a website tutorial on using data sources.
  • Write a website tutorial on writing a custom data source.
  • Improved KML support KML Support #873

Visualizers

Misc

  • Ability to specify height reference for all position data so that it can be relative to the ground.
  • Allow flat property to be set on all geometry objects and have that data passed on to the Appearance
  • Better CZML validation
  • Normalized values need to be re-normalized, either in GetValue or at CZML processing time.

Completed

Completed with #1444

  • Leverage Geometry & Appearance in the visualizer system
  • Refactor DynamicVertexPositionsProperty (Possibly into a generic positions array property)
  • Refactor DynamicDirectionsProperty (Possibly into a generic array property for any type)

Completed with #1419

  • It would be incredibly convenient to have a way to highlight a "selected" object.
  • Balloon browser-like functionality for viewing information about an object.

Completed with #1132

  • Make all DynamicXXX objects use ES5 properties and introduce a propertyChanged event that fires when a property is assigned.

Completed with #1080

  • Define and document a base Property interface for all properties.
  • Define and document a base PositionProperty interface for all properties, which builds on Property
  • Refactor DynamicProperty and split it into separate properties, such as ConstantProperty, TimeIntervalProperty, SampledProperty, and CompositeProperty.
  • Refactor DynamicPositionProperty and split it into separate properties, such as ConstantPositionProperty, TimeIntervalPositionProperty, SampledPositionProperty, and CompositePositionProperty.
  • Refactor DynamicScene Material handling so that all Context or Scene dependent code is in the visualizers and not the data representation.
  • Refactor CZML processing so that code is isolated to CzmlDataSource. No other code should have to know anything about CZML.
@kring
Copy link
Member

kring commented May 26, 2014

To facilitate using a DataSource within QuadtreePrimitive tiles, it would be very helpful to have a way to get a data source's bounding sphere and to determine (via polling is fine) whether the DataSource is fully loaded/computed/etc and ready to render.

@mramato mramato changed the title DynamicScene & DataSource roadmap DataSources roadmap Jul 10, 2014
@pjcozzi pjcozzi assigned mramato and unassigned mramato Oct 6, 2014
@mramato mramato changed the title DataSources roadmap Entity & Data Sources roadmap Jan 28, 2015
@speigg
Copy link
Contributor

speigg commented Mar 7, 2015

How far are we from:

  • Support for positions whose reference frame is another entity.
  • Support for orientations whose reference frame another entity or INERTIAL.

?

EDIT: I found https://github.com/AnalyticalGraphicsInc/cesium/tree/referenceFrames
Will see if this works for me... would love to see this functionality merged into the master branch if it works.

@mramato
Copy link
Contributor Author

mramato commented Mar 16, 2015

It's not a high priority right now because of everything else that needs to be done. That branch has some prototyping, but I'm not sure how far it will get you.

The overall use case involved being able to get any position in any reference frame, but if all you need to do is offset one entity from another, that's actually pretty easy to do this with existing functionality by using CallbackProperty, but I don't have an example handy.

@speigg
Copy link
Contributor

speigg commented Apr 11, 2015

Is there anything that can be done to help implement these features? I have what was in the referefenceFrame branch working, but it's missing some things, like being able to process referenceFrames from czml (would probably require adding a ReferenceEntity class, similar to ReferenceProperty, and modifying CzmlDataSource to use it). Also, adding a referenceFrame property to orientation properties should be straightforward I think.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants