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

3d-tiles branch cleanup #3177

Closed
39 tasks done
pjcozzi opened this issue Nov 8, 2015 · 2 comments
Closed
39 tasks done

3d-tiles branch cleanup #3177

pjcozzi opened this issue Nov 8, 2015 · 2 comments
Labels

Comments

@pjcozzi
Copy link
Contributor

pjcozzi commented Nov 8, 2015

Given that the 3d-tile branch is starting to get big and is starting to get pull requests from many different developers, it needs to be brought up to production, and stable parts should be merged into master.

This looks like a lot, but I suspect it is less than a week's work.

  • Cleanup
    • Remove changes to Queue/QueueSpec (and related change to README.md); they are not used anymore.
    • Fix BillboardCollection/Camera.distanceToBoundingSphere changes or remove them. If we fix them, add tests and open a pull request into master.
    • Update GlobeSurfaceTile/GlobeSurfaceTileProvider to use TileBoundingBox. Add tests. Open a pull request into master.
    • Add OrientedBoundingBox.fromCorners and PR into master, e-andersson@e1f8903#commitcomment-15013420 (not needed - using OrientedBoundingBox.fromRectangle instead)
    • Update constructor function declarations, https://github.com/AnalyticalGraphicsInc/cesium/pull/3328/files#r47433128
  • Merges (use git cherry-pick when possible)
    • Merge master into 3d-tiles (there will be conflicts because of glTF 1.0 changes in master).
    • Pull request to merge Texture/TextureSpec (and GlobeSurfaceTile) changes into master.
    • Pull request to merge RectangleGeometry doc fixes into master. 79b22f4
    • Pull request to merge getStringFromTypedArray changes into master.
    • Pull request to merge CullingVolume.computeVisibilityWithPlaneMask/CullingVolumeSpec into master.
    • Pull request to merge ModelAnimationCollection into master. Add test if needed for coverage. 6a29eba
    • Pull request to merge PerspectiveFrustum and QuadtreePrimitive into master. Add tests.
    • Add Cartographic.fromCartesian and open a pull request into master and 3d-tiles (TODO in Cities.html).
    • Pull request to merge Primitive/PrimitiveSpec into master. Add tests.
    • Pull request to merge getBasePath/Model into master. Add tests. Use it anywhere else it is useful.
    • Pull requests to merge most Model changes into master. (See me for how to diff this file between 3d-tiles and master).
      • name/id renames.
      • incrementallyLoadTextures. Add doc and tests.
      • precreatedAttributes / vertexShaderLoaded / fragmentShaderLoaded / uniformMapLoaded / pickVertexShaderLoaded / pickFragmentShaderLoaded / pickUniformMapLoaded / ignoreCommands. Add tests. No doc yet in case we need to change them.
      • cull. Add tests.
    • Pull request to merge PointGeometry/PointAppearance/PointAppearanceFS/PointAppearanceVS/createPointGeometry to master. Document it as @private and write tests.
  • Tests
    • Make all current unit tests pass.
    • Add new tests (and small sample data). Bring the test coverage reasonably close to 100%, then we'll get it to 100% before we merge into master.
      • Make the test data easy to reconvert (e.g., a script) for when the 3D Tiles spec changes during development.
      • Cesium3DTileset
        • Use _statistics and update spys to check culling, tiles rendered, tiles requested, refined/didn't-need-to-refine, etc.
        • tiles.json with one tile
        • tiles.json with tile and children
        • tiles.json with a tile pointing to another tiles.json
        • Replacement and additive refinement
        • Tiles without content defined (e.g., interior tiles in a quadtree)
        • Culling with and without contents.box defined
      • Batched3DModel3DTileContentProvider/BatchedModel
        • tiles.json with one b3dm tile with a batch table.
        • tiles.json with one b3dm tile without a batch table.
      • Instanced3DModel3DTileContentProvider
        • tiles.json with one i3dm tile with a batch table.
        • tiles.json with one i3dm tile without a batch table.
        • Both gltfFormat options.
        • tiles.json with no instances / no model (and any other corner cases).
      • ModelInstanceCollection and ModelInstance - add lower-level explicit tests for these even though the i3dm tests will cover them.
      • Cesium3DTileBatchTableResources - add explicit tests for this too.
      • Points3DTileContentProvider - tiles.json with one pnts tile.
      • Composite3DTileContentProvider
        • tiles.json with composite of all non-composite tile formats: just b3dm and i3dm now.
        • tiles.json with composite of composite.
        • tiles.json with composte with no tiles (and any other corner cases).
        • Uses spys on constructor functions and update for test assertions.
      • Empty3DTileContentProvider (trivial to test)
      • Cesium3DTileContentProvider (trivial to test)
      • Don't worry about JobScheduler yet
      • Don't worry about glTF mesh decompression extension yet
    • Sandcastle example with a dropdown to switch between a tileset with each tile format with better sample data (that we are allowed to redistrubute) for visual testing and simple demos. Or even better - one tileset with all the different tile formats and another tiles.json!

We'll replace the DOC_TBA comments in the 3D Tiles classes with actually reference doc later.

@pjcozzi pjcozzi added the cleanup label Nov 8, 2015
@mramato
Copy link
Contributor

mramato commented Nov 9, 2015

One option for merging the various features is to avoid the hassle of cherry-picking and just open all of of the various PR's as planned (you can make each PR a single commit). Then, before opening a final PR for the 3d-tiles branch itself, we do a git reset origin/head on it and squash all of its history down to a single commit. This will lose some history but will create a single commit/PR per feature. We don't normally curate history like this in Cesium, but for a branch this size with so many changes, its one option we can consider. That being said, it's just an idea so I'm fine doing things as we normally do.

@pjcozzi
Copy link
Contributor Author

pjcozzi commented Jan 26, 2016

Great work @lilleyse!

@pjcozzi pjcozzi closed this as completed Jan 26, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants