{"action":"created","issue":{"url":"https://api.github.com/repos/AnalyticalGraphicsInc/3d-tiles/issues/2","repository_url":"https://api.github.com/repos/AnalyticalGraphicsInc/3d-tiles","labels_url":"https://api.github.com/repos/AnalyticalGraphicsInc/3d-tiles/issues/2/labels{/name}","comments_url":"https://api.github.com/repos/AnalyticalGraphicsInc/3d-tiles/issues/2/comments","events_url":"https://api.github.com/repos/AnalyticalGraphicsInc/3d-tiles/issues/2/events","html_url":"https://github.com/AnalyticalGraphicsInc/3d-tiles/issues/2","id":88423282,"number":2,"title":"Declarative styling","user":{"login":"pjcozzi","id":782098,"avatar_url":"https://avatars.githubusercontent.com/u/782098?v=3","gravatar_id":"","url":"https://api.github.com/users/pjcozzi","html_url":"https://github.com/pjcozzi","followers_url":"https://api.github.com/users/pjcozzi/followers","following_url":"https://api.github.com/users/pjcozzi/following{/other_user}","gists_url":"https://api.github.com/users/pjcozzi/gists{/gist_id}","starred_url":"https://api.github.com/users/pjcozzi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pjcozzi/subscriptions","organizations_url":"https://api.github.com/users/pjcozzi/orgs","repos_url":"https://api.github.com/users/pjcozzi/repos","events_url":"https://api.github.com/users/pjcozzi/events{/privacy}","received_events_url":"https://api.github.com/users/pjcozzi/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/AnalyticalGraphicsInc/3d-tiles/labels/styling","name":"styling","color":"eb6420"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":77,"created_at":"2015-06-15T13:11:01Z","updated_at":"2016-09-27T16:16:41Z","closed_at":null,"body":"# Short-Term\r\n\r\n## Spec\r\n\r\n**@ggetz**\r\n\r\n* [ ] Better name than \"3D Tiles Style\"\r\n* [ ] Hackathon to experiment with current version\r\n\r\n**@pjcozzi**\r\n\r\n* [x] TODOs in spec\r\n* [x] Finish spec and schema\r\n\r\n## Cesium Implementation\r\n\r\n**@ggetz**\r\n\r\n* [x] Latest schema for color map and color ramp\r\n   * Remove `BooleanExpression`, `NumberExpression`, and friends\r\n   * Unit tests: `Cesium3DTileStyle` (and implicitly for `Cesium3DTileStyleEngine`)\r\n* [x] Load style from uri, not just JSON string.\r\n* [x] Pass `styleEngine` last to constructors (and make it optional?)\r\n* [x] Example evaluating a style/expression on pick\r\n* [x] Remove chroma - 18d80354be225a116d0a711bb79b190871a82534 and e7aebcddacdcdcc00bb5120215d7f248a5acb29a (and `ColorRampExpression.computeEvenlySpacedIntervals`)\r\n\r\n**@pjcozzi**\r\n\r\n* [x] Reference doc\r\n* [x] Update CHANGES.md\r\n* [x] Run coverage and see if we are missing any tests for 3D Tiles styles\r\n\r\n---\r\n\r\n# Later\r\n\r\n## Spec\r\n\r\n* [ ] Add `JulianDate` datatype to support styling with date/time metadata\r\n* [ ] Introduce translucency property to assign to without having to set RGB?\r\n   * [ ] And/or built-in variables to get the feature's current color and show?\r\n* [x] Operator overloads for regular expressions (we already overload for `Color` so why not here?), see https://github.com/AnalyticalGraphicsInc/3d-tiles/issues/2#issuecomment-184332713\r\n* [ ] Allow variable names inside member expressions, eg. `${foo[${memberName}]}`\r\n* [x] Non-visual properties, e.g., for infobox display, e.g.\r\n```json\r\n{\r\n    \"show\" : true,\r\n    \"color\" : [255, 255, 255],\r\n    \"meta\" : {\r\n        \"description\" : \"Hello, ${FeatureName}\"\r\n    }\r\n}\r\nvar str = style.meta.description.evaluate(feature);\r\n```\r\n   * [ ] Escape variables in strings.\r\n   * [ ] In general, is the ability to assign to feature properties in the style (as part of the JSON or maybe expression) useful?\r\n* [ ] Improved \"standard library\"\r\n   * [ ] Typical math functions, e.g., `log`\r\n   * [ ] Cesium built-in math functions, e.g., `distance`\r\n   * [ ] Check out [GLSL](https://www.khronos.org/files/webgl/webgl-reference-card-1_0.pdf)\r\n* [ ] Built-ins like GLSL, e.g., `czm_time`, `czm_inShadow`, etc.\r\n* [ ] Include GLSL in a style?\r\n* [ ] Cascading multiple styles on one tileset?\r\n* [ ] Add explicit `interval` to optimize `conditional` when used for intervals\r\n* [ ] Referencing other features in a style\r\n```\r\ncolor : ramp(palette, distance(${thisFeature.location}, ${anotherFeature.location}))\r\n```\r\n```\r\nshow : (${thisFeature.height} > ${anotherBuilding.height})\r\n```\r\n* [ ] Multiple expressions in conditions, https://github.com/AnalyticalGraphicsInc/3d-tiles/issues/2#issuecomment-191754803\r\n* [ ] Generate reference doc from JSON schema\r\n* [ ] Core styling schema + extensions for buildings, vector data, point clouds, etc.?\r\n* [ ] Influence from CZML, i.e., time-dynamic styles\r\n   * [ ] Integration with Cesium `Property` system, e.g., evaluate expressions as `Property` or vice-versa.\r\n* [ ] Other style languages, e.g., more like CSS selectors\r\n* [ ] Support vector and matrix properties since this is supported in the batch table binary.\r\n\r\n## Cesium Implementation\r\n\r\n* [ ] Interfaces for `Cesium3DTileStyle` and friends for users writing their own styles.\r\n* [ ] Fix jsep to allow for single backslash characters to be parsed correctly. Workaround is to replace before jsep for now.\r\n* [ ] Column numbers for syntax errors\r\n* [ ] Use regex and replace function for `replaceVariables` in `Expression.js`?\r\n* [ ] GPU implementation for tile formats that would really benefit, e.g., point clouds\r\n* [ ] Line width (can we make this as simple as a uniform/batch-value and not recreate geometry?)\r\n* [ ] Expose AST?\r\n* [ ] Expose Conditional properties?\r\n* [ ] Apply to GeoJSON?\r\n* [ ] Optimizations if needed: constant folding and dead code elimination\r\n* [ ] Schema validation - how much do we do at runtime?  Tool for offline validation?\r\n* [ ] Style features in parallel"},"comment":{"url":"https://api.github.com/repos/AnalyticalGraphicsInc/3d-tiles/issues/comments/249915743","html_url":"https://github.com/AnalyticalGraphicsInc/3d-tiles/issues/2#issuecomment-249915743","issue_url":"https://api.github.com/repos/AnalyticalGraphicsInc/3d-tiles/issues/2","id":249915743,"user":{"login":"pjcozzi","id":782098,"avatar_url":"https://avatars.githubusercontent.com/u/782098?v=3","gravatar_id":"","url":"https://api.github.com/users/pjcozzi","html_url":"https://github.com/pjcozzi","followers_url":"https://api.github.com/users/pjcozzi/followers","following_url":"https://api.github.com/users/pjcozzi/following{/other_user}","gists_url":"https://api.github.com/users/pjcozzi/gists{/gist_id}","starred_url":"https://api.github.com/users/pjcozzi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pjcozzi/subscriptions","organizations_url":"https://api.github.com/users/pjcozzi/orgs","repos_url":"https://api.github.com/users/pjcozzi/repos","events_url":"https://api.github.com/users/pjcozzi/events{/privacy}","received_events_url":"https://api.github.com/users/pjcozzi/received_events","type":"User","site_admin":false},"created_at":"2016-09-27T16:16:41Z","updated_at":"2016-09-27T16:16:41Z","body":"Good eye, @twpayne!  I'm surprised we haven't ran into this issue in practice already.\r\n\r\n> replace the conditions object with an ordered Array of [condition, value] pairs (uglier, but well defined).\r\n\r\n+1 for this.\r\n\r\n@lilleyse is it reasonable for you to make this change (code and spec) as part of your current point cloud declarative styling work?"}}
{"actor":{"display_login":"pjcozzi"}}