* Changed WKT parent object to read coordinates as lat-long
* Changed WKT unit test to receive coordinates as 'lat,long'
* Styled Custom WKT string entry textbox to align it with the Destination one
* Reordered tags for WKT entry button
* 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
Updated the WebWorldWind npm project's build dependencies to ensure compatibility with the latest version of Node.js, Grunt, Karma, and Jasmine.
While changes like this are always worthwhile, I'm making it now to ensure that the original WebWorldWind source and its accompanying npm project will continue to operate for as long as possible after the [WorldWind project's suspension on April 5, 2019](https://worldwind.arc.nasa.gov/news/2019-03-08-suspension-notice). Secondary goals are eliminating all npm audit warnings from old versions of libraries used to build WebWorldWind (i.e. the devDependencies) and ensuring that unit tests continue to operate.
Summary of changes:
- WebWorldWind now builds with Node.js 10.15.3 LTS and 11.12.0. The README file and the Travis CI configuration file reflect that.
- All npm devDependencies, used for building the WorldWind project, are updated to the latest version available as of this pull request.
- All npm security audit vulnerabilities are addressed.
- Subtle errors in unit tests fixed. WorldWind's geometric unit tests erroneously modified global variables, such as Location.ZERO. These values shouldn't be encoded as global variables, but solving that is out of scope here. Previous versions of Jasmine concealed this problem but these unit tests fail with Jasmine 3.x, likely due to a change in the Jasmine interpreter lifecycle between tests.
* 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
* Add a generic TileMatrix and TileMatrixSet structure
* Add comments and errors
* Add logging messages, refactor functions, synchronize naming with WWA
* Add unit tests and correct errors
* 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
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.
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
- 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
* Modified BoundingBox.setToSector to handle large sectors
- Sectors with a longitude span greater than 180 degrees are correctly represented
- Closes#545
* Repaired BoundingBox unit test
* Add WCS GeoTiff elevation support
* Fix parameter documentation
* Revert addition of read from array method
* Add capability to construct GeoTiffReader from URL or ArrayBuffer
- Modifies ElevationModel data retrieval handling for GeoTiffs
* Revise GeoTiffReader API
- Constructor takes ArrayBuffer and parses
- Provides synchronous image a data retrieval
- Add utility method with asynchronous XML HTTP Request
* Clean up variable naming, formatting, and other conventions
* Update naming and refactor callback to match library convention
* Remove old comments
* Fix one property accessor
* Provide full xhr object on failure and success callbacks
* Add grayscale and rgb retrieval unit tests
* Add logging message
* Corrected comparison operators with type coercion
* Corrected comparison operator with type coercion
* Corrected comparison operator with type coercion
* Corrected comparison operators with type coercion
* First draft of ScreenCreditController composite
* Usage of ScreenText and ScreenImage in controller
- Temporarily modified OSM layer server for testing purposes
* Attempted to render ScreenText and ScreenImage
* Corrected proper check of existence of both stringCredits and imageCredits
* ImageCredit offset test
* ImageCredit offset test (still no proper units implemented)
* Image credits correct offset implemented
* Removed unneeded attributes and methods related to opacity
- Opacity will be handled in the Layer level. No need for the
attribute in the class.
- Due to the aforementioned, the text attributes won't need a
default alpha setting either.
- Removed transform matrices since the class is not handling graphics
rendering anymore.
* First attempt at drawing string credits with proper offset
* Screencreditcontroller added as a layer
* Fix broken unit tests
* Change ScreenCreditController so it will operate as a Layer
- Identified which part of TextRenderer is causing the ScreenText
not to render.
* doRender override in ScreenCreditController so it works as before
- Corrected typo in TextRenderer
* Solved bug for string credits.
- An object was being passed instead of a string
- Bug: Offset calculation is still wrong, but text is rendering now
- Bug: First ScreenText is rendered without transparency, the second one
is half transparent.
- Bug: ScreenTexts are rendering with outlines
* Rendered all image and string credits in their appropriate offsets
- Layer opacity is still not accounted for
- Bug: "WorldWindow.drawOrderedRenderables: Error while rendering
an ordered renderable. Cannot read property 'opacity' of null"
E.g: USGSSlabs is not rendering the slabs.
* Set default layer opacity to fully replicate prior behavior
- Bug regarding other orderedRenderables opacity still present.
* New controller proposal
* Obtainint textures with makeOrderedRenderable(). Still getting bugs.
* Removed layer opacity and unneeded return statement
* Added fixed credit spacing. Reintroduced default layer opacity
* Removed previous offsetting code
* Temporary modification to WorldWindow to work around bug (issue 494)
* Credit display with fixed spacing
* Aligning to right text credits without resorting to texture size
* Added TextAttributes.offset setting for text credits
* Added previously existing exception handling
* Simplified loop indexes
* Changed credit spacing index placement to increase readability
* Added note to document temporary workaround
* Reverted change to comparison operators
- Will submit these changes in a different branch.
* Reverted change to comparison operators
- Will submit these changes in a different branch.
* Removed currently unused modules. Reintroduced license notice.
* Removed now unused property
* Renamed index to a more descriptive name
* Used faster pattern in iterative loop
* First attempt to switch RenderableLayer inheritance to Layer
* Added call to render() to every renderable, removed call to Layer.doRender()
- Removed all unused modules
* Modified whitespace to license as in other modules
* Removed unused parameter
* Corrected another unneeded iterated call to Array.length
- Properly nitialized index in iterator
* Verify previously added credit existence to avoid credit repetition
* Code formatting corrections
* Add deprecation warning to toHexString
* Correct CSS color string generation and rename method
- Switch to `round` operation for float to 16 bit conversion
* Update comments
* Update method name
* Add CSS Color String generation unit test
* Add CSS color string conversion unit test and format files
* Add CSS color string conversion unit test and format files
* Fix Color unit tests
* Add CSS color string conversion test
* Switch to colorFromBytes function and fix precision error
* Modified texture modulation to always modulate to white
- Corrected wrong logger message call in TextRenderer
- Corrected missing semicolon in TextRenderer
- Corrected missing color string in state key of TextAttributes
* Modified documentation to reflect how color is now applied to the text
* Removed parameters from TextRenderer functions that are now unneeded
- Removed getMaxLineHeight function.
- Updated call of textRenderer.wrap in Annotation.
* Returned getMaxLineHeight function for documentation purposes
* Modified TextRenderer unit test to fit new function parameters
* First draft of DrawContext.renderText
- Counterpart to WWA's RenderContext.renderText.
* First propagation of textAttributes to Text through DrawContext
- Bug: ScreenText and Annotations examples show their text in
incorrect colors.
* Modified Annotation to use new DrawContext.renderText
- Annotations example updated to explicitly remove outline from
the annotation's text.
- Temporary outline settings for dc.textRenderer are now unneeded and
are removed as well.
* Corrected Annotation's configuration of fragment program color
* Modified Placemark to use new DrawContext.renderText function
* Corrected wrong assignation of outlineColor
* Updated DrawContext.renderText and TextRenderer documentation
* Disabled Annotation's text outline by default in its constructor
- Removed superfluous change in TextRenderer documentation
- Removed text outline disable in Annotations example
* Changed default TextAttributes to a more appropriate name
* Refactored AnnotationAttributes' default text fields for readability
- Moved LookAtNavigator properties used exclusively for gesture response from LookAtNavigator to BasicWorldWindowController.
- Adjusted unit tests to accommodate LookAtNavigator properties moved to BasicWorldWindowController.
- Relates to #279
* Work in progress
* Further controller refactoring
* Bug fixes
* Added docs and removed test code
* Removed commented out code
* Revert WebStorm config changes
* Formatting tweaks
* Doc fixes
* Navigator state phase 1
* unProject refactor and unit tests
* Fix for incorrect matrix
* Moved convertToViewport
* Moved further NavigatorState methods, added unit tests
* Remove experimental change
* Various property migrations
* Final property moves
* Bug fixes
* Unit test update
* Unit test corrections
* Unit test cleanup
* Unit test fixes
* Unit test fixes
* Formatting fixes
* Documentation tweaks
* Move calls that require access to wwd.drawContext
* Remove wwd.drawContext dependencies
* Remove drawContext dependencies
* Fixes for classes saving direct references to drawcontext properties.
* Formatting fixes
* WIP
* Fix for 2D panning issue
* Removed commented out code