12 Commits

Author SHA1 Message Date
Miguel Del Castillo
154b14f594
Unit testing and dependency updates: Replace PhantomJS for Chrome and Firefox in their headless modes (#840)
* Substituted PhantomJS for headless Chromium for unit testing

* Added Firefox headless as a browser for unit testing

* Removed pupeteer dev dependency to rely on local installs of Chrome and Firefox. Temporarily commented out tests that now fail.

* Eliminated superfluous newline from karma.conf.js

* remove whitespace

* Updated npm packages related to tasking and unit testing to latest versions

* Updated grunt-jsdoc to latest version

* Removed unused 'dependencies' bracket from package.json

* Updated npm packages

* Updated es6-promise to 4.2.8 and libtess to 1.2.2

* Updated jszip to 3.2.2 and proj4-src to 2.6.0
2021-06-16 16:03:30 -05:00
Mark Peterson
07db0fcc0a
License update (#830) 2020-08-12 17:28:51 -05:00
Patrick Hogan
09c81f862e Update 2018-06-21 19:03:59 -07:00
Patrick Hogan
44a32a6501 Update 2018-06-21 18:45:33 -07:00
David Collins
c005bc998f
Enhanced geographic to Cartesian arithmetic precision (#714)
* Unit tests for map projection arithmetic
- Unit tests for Globe's ellipsoidal properties and methods against official WGS84 reference values
- In-progress unit tests for ProjectionWGS84's geographic-to-cartesian arithmetic

* Unit tests for map projection arithmetic
- Unit tests for Globe's ellipsoidal properties and methods
- Unit tests for ProjectionWGS84's geographic-to-Cartesian transformations
- Employed official WGS84 reference values for all unit tests

* Unit tests for map projection arithmetic
- Unit tests for Globe's ellipsoidal properties and methods
- Unit tests for ProjectionWGS84's geographic-to-Cartesian transformations
- Employed official WGS84 reference values for all unit tests

* Enhanced geographic to Cartesian arithmetic precision

* Disabled unit tests validating incorrect results
- Several unit tests validated functions based on earlier output from the function itself.
- These functions computed incorrect results, and once repaired the erroneous unit tests failed.
- I've opted to disable these unit tests until an independent validation method can be established.
- In the meantime, I have added unit tests for the problematic low-level functions that are validated against independent results.

* Simplified WorldWind module import for new unit tests

* Clarified property docs for Globe.polarRadius and eccentricitySquared
2018-05-24 15:20:59 -07:00
Mark Peterson
da870bf362 Prioritized elevation coverage selection (#641) 2018-05-04 10:58:03 -07:00
David Collins
a793551329 Modified how ElevationCoverage.elevationsForGrid interprets resolution (#656)
* Modified how ElevationCoverage.elevationsForGrid interprets resolution

The function elevationsForGrid derived from the original ElevationModel, which used targetResolution to select a level in the model's tile pyramid. Since implementing composable elevations (#575), this function appears in both ElevationModel and ElevationCoverage, but serves a different purpose in each. Given that, the argument list need not be the same, and in fact should not be the same. ElevationModel needs targetResolution to let the caller influence which coverage is chosen to fulfil the request. ElevationCoverage does not need targetResolution. Allowing the caller to specify a resolution to ElevationCoverage is unnecessary and potentially dangerous. The grid itself provides an implicit resolution the coverage can use to select a level, and letting the caller override that resolution risks the caller accessing more data than can fit in memory.

Relates to #422

* Adjusted ElevationModel unit tests to reflect ElevationCoverage changes
2018-05-03 14:23:19 -05:00
David Collins
4ee185e952
Removed usage of TiledElevationCoverage's cachePath (#653)
- This change follows #650 to remove the usage of TiledElevationCoverage cachePath.
- Relates to #486
2018-04-30 12:54:43 -07:00
David Collins
c9d8b3d793
Simplify TiledElevationCoverage tile management (#650)
This change simplifies TiledElevationCoverage construction by removing the unnecessary cachePath configuration parameter. We could limit the scope of this change by assigning any string to cachePath and leaving TiledElevationCoverage's implementation unchanged. However, TiledElevationCoverage has significant unnecessary complexity that creates and tracks unique elevation tile keys based on the notion that cachePath is necessary. Elevation tiles and elevation images are are stored in an cache unique to each instance of TiledElevationCoverage (rather than a shared cache). Given that, there is no need to generate globally unique cache keys, which is the only purpose served by cachePath. It is enough to use Tile.tileKey, which can uniquely identify each tile in the coverage's tile cache and image cache.

This iteration removes the unnecessary ElevationTile class and replaces its usages with Tile. Additionally, this iteration removes the imagePath properties that derive from cachePath, replacing them with usage of Tile.tileKey or in-place generation of a tile key string (when a tile instance is not available). Given the size of this change, i have left cachePath intact, with the intent to remove it and its usages in the various TiledElevationCoverage implementations in the next iteration.
2018-04-30 12:29:27 -07:00
David Collins
4783c4ecf6
Refactored TiledElevationCoverage construction to support WCS (#649)
Modified TiledElevationCoverage to enable construction via configuration object. This enables loose coupling between a WebCoverageService specifying the configuration, and the scene component that consumes the configuration (TiledElevationCoverage). This is the first of several changes that streamline TiledElevationCoverage construction.

This change knowingly breaks backward compatibility. The class TiledElevationCoverage is new since 0.9.0. While we could argue that it should be possible to port 0.9.0 ElevationModel construction to TiledElevationCoverage, as the constructors currently appear very similar, they are fundamentally different. Additionally, the opportunity to improve the elevation coverage interface oughtweighs the benefit we might gain by making it easy to port old ElevationModel code to TiledElevationCoverage.

Relates to #486
2018-04-27 13:45:02 -07:00
David Collins
8dc4861dc7 Enhanced the accuracy of ElevationModel's min/max elevations (#638)
- Corrected minElevation and maxElevation to return zero when the model has no coverages, or when all coverages are disabled
- Updated minAndMaxElevationsForSector to consult only the necessary coverages for a given sector
- Updated ElevationModel's unit tests to account for changes in the minAndMaxElevationsForSector interface and behavior
- Relates to epic #575
2018-04-20 14:44:46 -05:00
Mark Peterson
20973fe978 Initial elevation coverage composition (#580)
The first iteration of changes required to move toward fulfilling the requirements of issue #422.
2018-04-05 14:35:44 -07:00