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

Expose internal KML classes in the WorldWind namespace #759

Merged
merged 5 commits into from Jun 29, 2018

Conversation

balhar-jakub
Copy link
Contributor

@balhar-jakub balhar-jakub commented Jun 22, 2018

Description of the Change

As per #737 I prepared a PR with the exposure of internal KML classes on the WorldWind Object.

Why Should This Be In Core?

To simplify customization of KML for developers.

Benefits

Every user can decide how will the KML Elements look and provide implementations of the elements that can handle more complex behavior.

Potential Drawbacks

To some extent internals become part of the public API.

Applicable Issues

Closes #737

@ghost ghost assigned balhar-jakub Jun 22, 2018
@ghost ghost added the needs review label Jun 22, 2018
@AkeluX
Copy link
Contributor

AkeluX commented Jun 22, 2018

That's going to be a mess, but I believe that all that these classes should all be prefixed with Kml in order to avoid cluttering the namespace with very generic names like Update and Change without any context.

@AkeluX AkeluX changed the title Enhancement/expose internal kml classes Expose internal KML classes in the WorldWind namespace Jun 22, 2018
@balhar-jakub
Copy link
Contributor Author

I prepared a version with renamed classes.

Copy link
Contributor

@AkeluX AkeluX left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've completed the following checks:

  • All classes in KML are now prefixed
  • All classes are listed in the WorldWind namespace
  • The list of classes is ordered alphabetically in WorldWind.js
  • The KML example still works fine

@ghost ghost assigned AkeluX Jun 29, 2018
@AkeluX AkeluX merged commit 971695b into develop Jun 29, 2018
@ghost ghost removed the needs review label Jun 29, 2018
@AkeluX AkeluX deleted the enhancement/expose_internal_kml_classes branch June 29, 2018 13:48
@pdavidc pdavidc added this to the WebWW v0.10.0 milestone Jul 3, 2018
markpet49 added a commit that referenced this pull request Aug 12, 2020
* Solved linear rings bug

* Fixed wrong index

* Move to HrefResolver instead of plain String.

* Exploring the possibility to resolve the URL.

* KmzFile must be its own resource.

* Fix ShapeAttriputes constructor - create a real deep copy

* Update KML parser to support resources embedded in the KMZ File.

* Fix tests.
Update documentation

* Update documentation to valid format.

* Add the clone calls and use the standard constants for colours in the other attribute classes

* Refactored Text's drawing code to improve maintainabililty
- Consolidated unnecessarily repeated WebGL calls
- Grouped related WebGL calls
- Split independent drawing steps into separate functions

* layerManager spelling correction, format cleanup for examples (#409)

* Added new attributes for future support of text outline color control (#417)

* Added new attributes to support outline color control in the future

* Corrected default outline width to 4

* Introduce the controller concept to the globe interaction code (#428)

* 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

* Renamed TextSupport class and instances as TextRenderer
  - Corrected typo in TextRenderer documentation

* Ran the code formatting tool on Placemark and TextRenderer

* #310 - The remote style missing is treated as the information for developer and not warning as it is valid in the KML file.

Remove incorrect log from the KmlScreenOverlay

* #311 - Add names to the KML example document so that they are displayed
 instead of the generated IDs.

* Redesigning the KML Example interface to facilitate better the view of the KML Controls.

* Review fixes.

* Updated KML Example to contain KMZ with embedded resources for Etna.

* First draft of TextRenderer unit test

* Added tests for wrap and wrapLine functions

* Added comment to TextRenderer mockup

* Modified mock textSize function to return a realistic value

* Dummy commit to trigger reload of a failed TravisCI job

* Corrected extra parameter in wrapLine call
 - Made width a constant in wrap calls.

* Transferred method arguments as properties for TextRenderer

* Refactored createTexture to use TextRenderer's draw context

* createTexture's arguments font and outline refactored as properties

* Refactored classes that make use of TextRenderer and createTexture
 - Corrected missing reference to Font module in TextRenderer.

* Added exception handling to TextRenderer constructor
 - Modified documentation to reflect changes in the refactor.

* Modified TextRenderer unit test to align it with new constructor
 - Included a mock DrawContext to avoid WebGL context requirements.
 - Added a new test of exception throwing for the constructor.

* Modified mocked DrawContext name to reflect that it's a mockup

* Renamed TextRenderer.createTexture() as TextRenderer.renderText()

* Final split of old createTexture function into renderText and drawText
 - Removed mention of font from the function's documentation.

* Modified RenderText test for empty string input
 - Added unit test regarding the aforementioned.

* Enabled outline by default in TextRenderer
 - Added temporary set and reset statement to Annotation to retain
   behavior in Annotations example (e.g. without text outlines).

* Added missing semicolon in TextRenderer.test.js

* Refactor NavigatorState (#444)

* 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

* Minor LookAtNavigator cleanup (#449)

- 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

* Added textColor and outlineColor properties

* Modified comparison operators to avoid type coercion
 - Removed unused 'x' and 'y' variables.

* Addition of text outline color customization features (#452)

* 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

* Fix WMTS TileMatrixSet selection (#460)

* Refactor compatible tile matrix set test

* Add compatibility checks to the constructor

* Rename subdivision check function and add comments

* Fix comment

* Fix texture reference and remove unnecessary texture retrieval (#461)

* Adressed bug on ScreenCreditController displaying text with outlines (#462)

* Modified ScreenCreditControler to use dc.renderText function
 - Added TextAttributes object to constructor

* Added test for Screen credits

* Modified ScreenCreditController to disable text outline
 - Added a basic screen credits example for testing purposes

* Changed OSM tile server back to Mapquest
 - OSM's server was used for testing purposes only

* Added mistakenly removed 'https://'

* Attached TextAttributes to each ScreenCredit instead of the controller
 - Removed example

* Renamed TextAttribute method to a more fitting name

* Highlight the links better
Refine the description of the list

* Remove technical names

* Repaired PickedObjectList.topPickedObject (#463)

- Syntax errors in this method resulted in potentially incorrect return values with two or more picked objects.
- Fixes #203

* Addressed text texture re-rendering according to cached contents (#465)

* First draft of texture state and caching handling

* Test of Annotation state updating
 - Annotations example successfully changes color now

* Removed Annotation and Text code that handles text texture caching
 - Used appropriate TextAttributes.stateKey property in DrawContext
   to build textureKey.

* Removed ScreenCreditController code that handles text texture caching
 - Modified conditional in DrawContext.renderText as to avoid
   building a new texture if it's already cached

* Removed Placemark code that handles text texture caching

* Modified comment. Class is not checking for text texture existence anymore

* Added check for TextAttributes object before texture caching and rendering

* Removed check for instance of TextAttributes and the related module

* Renamed DrawContext.renderText to DrawContext.createTextTexture

* Added null checking to createTextTexture's arguments

* Added null checking to createTextTexture's arguments

* Added custom state key for texture re-rendering and caching

* Added documentation for new state key computation function

* Added additional argument check, just in case

* Apply layer opacity to surface shapes (#470)

* Add layer opacity tracking to SurfaceTile
- Incorporate layer opacity during renderToTexture

* Implement consistent approach to rgba string creation

* Non-functional adjustments to streamline and improve readability

* Explicitly indicate no alpha for hex color string generation

* Fix the visibility issue in the Tree Controls

* Fix layer opacity application to renderables (#472)

* Apply layer opacity in a consistent manner

* Fix depth mask conditional and missing picking mode tests

* Improved Region example.

* Added example of MultiGeometry

* Align implementation of layer utility methods in WorldWindow (#455)

* add new method indexOfLayer

* Align implementation of layer utility methods in WorldWindow

* Update CSS Color String calculation and use (#474)

* 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

* Add headers
Remove console calls.

* Fix the merge from develop by providing additional info to the Placemark
Update the visibility

* Add option for configuring the resampling mode of surface images (#267)

* Add resampling mode to surface images

* Move the constants into the WorldWind class
Extract methods handling the texture parameters
Complete the documentation

* Enable anisotropic texture filtering only for textures with linear filtering

* Remove broken links in JSDoc

* Load the anisotropic filter extension only once per texture

* Use faster function check for clearing the texture parameters

* Update Open Street Map data source (#476)

* Change OSM data source

* Refactor XMLHttpRequest closure

* Update screen credits and refactor display name assignment

* Fix layer display name

* Document where attribute pattern came from

* Refactor to composite WmtsLayer instead of inherited WmtsLayer

* Update copyright year

* Use surface polygon when the inner or outer boundary is clamped to ground in KML

* Add loading spinner to the GeoTIFF example (#448)

* Change textBaseline to bottom for text rendering (#477)

* Change Canvas2D textBaseline to bottom

* Remove unused variables

* Refine the OpenStreetMap attribution (#480)

* Move copyright symbol on OSM layer (#487)

* Refine attribution

* Reorganize attribution line

* Added the EOX based OpenStreetMapImageLayer to BasicExample (#488)

* Corrected comparison operators that may introduce type coercion (#500)

* Remove leftover code in the GeoTIFF parser (#446)

* obsolete code - clean up

* cleanup unused code

* Add support for the projLinearUnits GeoKey in GeoTIFF (#447)

* Moved call to putResource in DrawContext.createTextTexture. (#505)

- Was always calling putResource, which was abusing the gpuResourceCache with excessive remove/add activity.
- Now only calls putResource for new text textures.
- Re: issue #504

* Refactored ScreenCreditsController to use existing components (#499)

* 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

* Repair Placemark opacity and clarify property documentation (#507)

- Repairs an subtle bug to placemark opacity introduced in #472
- Updates the documentation for targetVisibility and currentVisibility to clarify their purpose
- Closes #134

* Repaired multi-window user input navigation (#496)

- Filtered GestureRecognizer events based on the target WorldWindow
- Fixes #495

* Modified OpenStreetMap layer to redraw WMTS capabilities retrieval
- Layer is configured correctly, but without this change does not display until something else causes a redraw
- Fixes #503

* Allow setting a canvas element instead of the ID of a canvas when creating a WorldWindow (#502)

* Allow setting a canvas element instead of the ID of a canvas when creating a WorldWindow

* Revert change in package-lock.json

*  Rename canvasElm into canvasElem

* Network request throttling (#533)

* Added layerRetrievalQueueSize to the WorldWind.configuration object.
- Default size: 16

* Added retrievalQueueSize to the TiledmageLayer.
- Used by the retrieveTileImage function.
- Controls the number of concurrent tile retrieval requests that are sent to the browser.
- Default size is set to WorldWind.configuration.layerRetrievalQueueSize.

* Added retrievalQueueSize to the WmtsLayer.
- Used by the retrieveTileImage function.
- Controls the number of concurrent tile retrieval requests that are sent to the browser.
- Default size is set to WorldWind.configuration.layerRetrievalQueueSize.

* Improve GPU resource cache management (#532)

* Added setEntryAgingMuliplier to MemeoryCache.
- Provides an interface for advancing or retarding an entry's age when sorting entries for eviction.
- A value of one is normal aging. This is the default for all entries.

* Added setResourceAging to GpuResourceCache.
- Provides an interface for advancing or retarding a resource's age.
- Used to accelerate the age of volatile resources by setting the value to greater than one. E.g., a value of 10 = 10x aging.
- Can be used to retard the aging by setting the value to less than one.
- A value of one is normal aging. This is the default for all resources unless set by this method.

* Set the GPU resource aging of text textures to 100x in DrawContext.
- Text textures are considered volatile with regards to tiles and should be aged faster and evicted sooner.

* Set the GPU resource aging of surface shapes to 10x in SurfaceShapeTile.
- Surface shape textures are considered volatile with regards to downloaded tiles and should be aged faster and evicted sooner.

* Reformatted with WebStorm.

* Updated SurfaceShapeTile's hasTexture function to eliminate a side effect.
- Tests for a texture in the cache without the side effect of updating the cache entry's last used time.
- Prevents redundant processing by the follow on call to updateTexture by SurfaceShapeTileBuilder.

* Updated GpuResourceCache and MemoryCache to use 'agingFactor' term.
 - Rippled changes into DrawContext and SurfaceShapeTile.
 - Removed debug code from MemoryCache.

* Add GeoTiff parsing to ElevationModel and WcsEarthElevationModel (#493)

* 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

* Adjusted the referral link in BingImageryUrlBuilder (#535)

- The new link is https://www.microsoft.com/en-us/maps/create-a-bing-maps-key
- This site is more appropriate for someone needing a key
- Closes #498

* Elevation tile request throttling (#534)

* Elevation tile request throttling

* Updated docs and variable name

* Updated the WmtsLayer tile matrix cache size. (#536)

- Increased the MemorCache size from 500 tiles to 1000 tiles to prevent thrashing in oblique views at the surface.
 - For the OSM WMTS layer, the new size establishes cache reallocation behaviors comparable to the Bing layers in similar viewing scenarios.

* Fix layer reference for ordered rendering (#546)

* Fix ordered rendering layer reference

* Dereference current layer following completion of layer rendering

* Fix layer reference

* Repaired unit tests erroneously modifying Vec3.ZERO (#547)

* Modified BoundingBox.setToSector to handle large sectors (#548)

* 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

* Move WMTS OWS files to OWS directory (#579)

* Add an exporter for WKT (#400)

* Add an exporter for GeoJSON (#298)

* Addition of screen credit hyperlink support (#576)

* Test of hyperlinks as new credit array

* Hyperlinking is now added as a feature of textCredits
 - WorldWindow added to constructor, although it's not being used.
 - Temporary modification to BingTiledImageLayer.

* Click and tap controller plumbing

* Removed previous attempt of imitating ViewControlsLayer

* Added URL user property to image credits
 - Added URL strings to both credits in BingTiledImageLayer

* Enabled picking in layers that request screen credits to be drawn
 - Temporary measure until pick handling is addressed solely in
   ScreenCreditsController.

* Enabled screen credit hyperlinks
 - Bing Layer temporarily modified with hyperlinks for testing purposes

* Added hyperlinking documentation to ScreenCreditController
 - Modified Bing layer text hyperlink to a more meaningful message

* Modified pick test to be done exclusively to the top picked object
 - Removed test hyperlinks from Bing layer.
 - Corrected formatting of ScreenCreditController

* Removed string credit and color module previously used for testing

* Added extra assurance that the url object was added in the object chain

* Corrected check for url object in chain after topPickedObject

* Add WCS GetCapabilities and DescribeCoverage parsers (#581)

* Add initial WCS Capabilities parsing

* Add initial unit test

* Additional unit tests

* Add support for WCS 2.0.1 service metadata

* Add WCS 1.0.0 service parsing

* Add WCS 1.0.0 capability object model

* Convert instance based parsers to class based

* Clean up formatting and documentation

* Add initial WCS Describe Coverage object model and parser

* Add initial WCS Describe Coverage parsing and unit tests

* Fix childNodes property name

* Add WCS 2.0.1 DescribeCoverage domainSet

* Fix DomainSet parsing error

* Add offsetVector element parsing to WCS Describe Coverage domainSet

* Add boundedBy parsing to WCS Describe Coverage

* Add WCS 2.0.1 DescribeCoverage service parameter parsing

* Add reference to rangeType document element

* Add WCS 1.0.0 keywords

* Add WCS 1.0.0 lonLatEnvelope parsing

* Add WCS 1.0.0 DescribeCoverage supported CRSes parsing

* Add WCS 1.0.0 DescribeCoverage supported formats

* Add WCS 1.0.0 DescribeCoverage supported interpolations

* Add WCS 1.0.0 Describe Coverage domainSet

* Add basic WCS 1.0.0 DescribeCoverage RangeSet parsing

* Change all functions to prototype methods

* Move WMTS OWS files to OWS directory

* Remove duplicate OGC OWS files

* Fix profile property name

* Organize unit tests

* Fix formatting

* Organize unit tests and fix formatting

* Change assemby functions to instance methods

* Switch to parseFloat

* Reorganize code and update comments

* Update test formatting

* Add logging message

* Change properties to be representative of the document element names

* Change functions to instance methods

* Refactor element parsing structure

* Add trailing line return

* Move method version indication to the end of the name

* Simplify exception logging statements

* Update documentation

* Register WcsCapabilities and WcsDescribeCoverage with the WorldWind object

* Accept plain JS objects as data source for the GeoJSON parser (#578)

* Initial elevation coverage composition (#580)

The first iteration of changes required to move toward fulfilling the requirements of issue #422.

* Initial WebCoverageService Interface (#629)

* Add initial interface stubs for WCS coverage operations

* Change elevationCoverage from method to property

* Refactor WebCoverageService API

* Refactored WcsCoverage.elevationConfig as a simple property.

* Add coverages array

* Add methods for getting a reference position and moving surface shapes (#456)

* Add WebCoverageService async capabilities negotiation (#630)

* Initial implementation of WCS configuration

* Fix url string builder and modify example

* Refactor url preparation functions

* Remove comments

* Refactor promise chaining to use static methods

* Refactor initialization methods and add example sources

* Clean up initial iteration

* Remove WCS example

* Remove unit test

* Update error logging and propagation and refactor of Promise chain

* Remove unnecessary Promise initializations

* Remove self reference

* Refactor Promise then chaining

* Explicitly test WCS version

* Add references to parsed capabilities and description documents

* Remove unit test

* Refactor property and method names

* Refactor object initialization to factory method vs constructor based

* Update version negotiation process

* Update naming and comments

* Refactor maximum URL length value to constant and change factory name

* Remove recursive call during capabilities negotiation

* Clean up version arguments and order

* Change to POST queries

* Add documentation and clean up formatting

* Refactor element creation and update comments

* 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

* Simplify the moveTo method in SurfaceCircle and SurfaceEllipse (#640)

* Update WcsDescribeCoverage to WcsCoverageDescriptions to match XML structure (#642)

* Change WcsDescribeCoverage to WcsCoverageDescriptions to match XML

* Modify WcsCoverage constructor to simplify interface

* Update WCS tests and fix parsing errors (#643)

* Update WCS test resources to use same service

* Fix OwsKeyword element name check

* Fix DCPType element parsing

* Format WCS test resources

* Add generic WCS Coverage object (#648)

* Update WcsCoverage object and add utility methods to coverage descriptions

* Remove redundant float parsing

* Change naming

* Cleanup formatting

* Remove comment

* Remove coverage name to index map

* Remove unused imports

* Add parse to WcsCoverage object

* Refactor input checks

* Fix WcsCoverage object creation

* Add WebCoverageService unit tests

* Update Sector matcher function name

* Change variable name for WebCoverageService reference

* Refactor Sector unit test for equality

* 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

* 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.

* Removed usage of TiledElevationCoverage's cachePath (#653)

- This change follows #650 to remove the usage of TiledElevationCoverage cachePath.
- Relates to #486

* Automated TiledElevationCoverage LevelSet configuration (#654)

The LevelSet parameters required during TiledElevationCoverage construction are much better as an implementation detail. The caller has already supplied the minimum necessary information needed to configure a LevelSet: sector and resolution. Requiring the caller to specify a level count is unnecessary and potentially dangerous. Level count is trivial to derive from resolution, but its easy for an uniformed caller to specify a level count that does not match the data. Additionally, the level zero delta and tile width/height are carefully chosen to balance operation and performance, and should not be specified by the caller. The level zero delta, tile width, and tile height are set to constant values known to work well with TiledElevationCoverage. The level count is derived from the resolution. The resultant LevelSet has a last level that either matches or exceeds the specified coverage resolution.

Note: The LevelSet defaults are left as inline constants, as TiledElevationCoverage's usage of LevelSet is temporary.

Relates to #486

* Updated the Standalone example elevation coverage (#655)

EarthRestElevationCoverage, the coverage used by Standalone.html, was out of date after recent changes to TiledElevationCoverage. Updated this coverage implementation to correctly retrieve standalone elevation tiles.

* Add elevation config property to WcsCoverage (#652)

* Replacement of Bing logo image credit for a ScreenImage (#661)

* Replaced image credit with ScreenImage of Bing's logo
 - Provided responsive placement in the top left of the screen

* Last attempt at providing the logo with responsive behavior

* Aligned Bing logo to lower right corner

* Aligned Bing logo to the top left corner

* Minor naming correction and code formatting

* Minor documentation formatting change

* Minor documentation formatting change

* Modified documentation for clarity

* Placed logo in lower right corner
 - Removed attempt of logo web service retrieval

* Corrected comments

* Attempt at aligning logo as how ScreenCreditController aligns it

* Replicated ScreenCreditController alignment

* Corrected logo alignment by 1px

* Removed image credits (#662)

- Homogeneized every reference to screen credits in order to dissolve
   the distinction between image credits and text credits. Now they're
   only reffered as "credits".

* 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

* Prioritized elevation coverage selection (#641)

* Added capability to modify Bing logo positioning and alignment (#663)

* Added capability to modify Bing logo placement and alignment

* Added JSDocs documentation for positioning and alignment properties

* Got rid of canvas parent node substitution by computing offsets
 - Window resizing and browser compatibility still has to be reviewed.

* Corrected documentation

* Avoided drawing of multiple Bing logos using static member (#690)

* Made Bing logo a static member of BingTiledImageLayer
 - This shares the ScreenImage between all the subclasses and avoids
   instances of it down the prototype chain.
 - Avoids previous behavior that drew a Bing logo per subclass.

* Refactored Bing layer's logo properties
- Moved Bing layer's logo configuration properties to the global WorldWind configuration object.
- Encapsulated Bing layer logo rendering in a protected method.

* Add TileMatrix/TileMatrixSet (#693)

* 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

* New overlay layout as preparation for screen credits rearrangement (#696)

- ViewControlsLayer now has a 11px margin (instead of 0px) over lower right corner.
- CoordinatesDisplayLayer now is 11px above canvas bottom (instead of 5px) when in 'large' canvas mode.
- Bing logo now has margin of 7px (instead of 5px) in lower right corner.

* Improve the GeoJSON example (#651)

* New layout for screen credits (#697)

* New layout and size of screen credits

* Simplified credit width obtaining

* Appended a period to the final credit

* Adjusted the screen credit horizontal layout implementation
- Added a ScreenCreditController placement property that defines the credit's starting point, in a manner similar to ViewControlsLayer, CoordinatesDisplayLayer, and the Bing logo.
- Modified the screen credit layout logic to clarify its operation.
- Adjusted the screen credit layout logic to avoid a potential state leak bug due to a dependency on DrawContext.ctx2D.
- Corrected the documentation for ScreenCreditController's overridden opacity property.

* Added documentation for new ScreenCreditController properties

* Added punctuation to comments and corrected a typo (#708)

* Added comments to the example (#707)

* Commented boilerplate code for examples (from Paths to WMTS). (#709)

* Commented WorldWindow boilerplate (logger and layer creation and addition).

* Corrected comment in StarField

* Commented boilerplate code for examples (from Annotations to ParseURLArgs). (#710)

* Add issue template for submitting issues

* Add pull request template

* Change "Note:" in pull request template

* Change "Note:" in pull request template

* Add CONTRIBUTING.md

- This CONTRIBUTING.md replaces "HowToContribute.md". The content in "HowToContribute.md" replaced, but merely ported to the new CONTRIBUTING.md.
- This document explains the expectations for contributing to the Web WorldWind repository. It includes information on how to submit a bug report, new feature suggestion, or a pull request.
- It also guides the user on the appropriate way to contact the WorldWind team with questions.

* Move contributing list under correct heading.

The list to contributing to Web WorldWind (reporting a bug, suggesting a new feature, creating a pull request) was under the wrong heading (Asking Questions). It is now under Contributing.

* Fix spacing

* Add bullet points

* Update CONTRIBUTING.md

Add bullet points to table of contents.

* Update CONTRIBUTING.md

- Deleted the opening sentences which offer an invitation to change WorldWind standards.
- Add Resources content about the WorldWind website, forum, and administrative contact.

* Fix spacing in CONTRIBUTING.md

- Fixed spacing in the last lines of CONTRIBUTING.md so that they are double-spaced.

* Fix email link in CONTRIBUTING.md

* Change "World Wind" to "WorldWind"

* Commented boilerplate code

* Correct comments for boilerplate code

* Fix indentation in Collada Example

* Updated Atmosphere example to improve clarity and readability (#706)

* Updated documentation and repositioned code to improve clarity

* Removed ability to control animation to simplify example

* Changed file names to SunSimulation

* Modified documentation to reflect focus on the Sun simulation

* Corrected comment about simulation interval

* Corrected logger level comment to reflect that it logs both warnings and errors (#711)

* 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

* Adds descriptions to examples that were lacking one (#717)

* Add descriptions to examples from Annotations to ParseURL (#718)

* Add issue template for submitting issues

* Add pull request template

* Change "Note:" in pull request template

* Change "Note:" in pull request template

* Add CONTRIBUTING.md

- This CONTRIBUTING.md replaces "HowToContribute.md". The content in "HowToContribute.md" replaced, but merely ported to the new CONTRIBUTING.md.
- This document explains the expectations for contributing to the Web WorldWind repository. It includes information on how to submit a bug report, new feature suggestion, or a pull request.
- It also guides the user on the appropriate way to contact the WorldWind team with questions.

* Move contributing list under correct heading.

The list to contributing to Web WorldWind (reporting a bug, suggesting a new feature, creating a pull request) was under the wrong heading (Asking Questions). It is now under Contributing.

* Fix spacing

* Add bullet points

* Update CONTRIBUTING.md

Add bullet points to table of contents.

* Update CONTRIBUTING.md

- Deleted the opening sentences which offer an invitation to change WorldWind standards.
- Add Resources content about the WorldWind website, forum, and administrative contact.

* Fix spacing in CONTRIBUTING.md

- Fixed spacing in the last lines of CONTRIBUTING.md so that they are double-spaced.

* Fix email link in CONTRIBUTING.md

* Change "World Wind" to "WorldWind"

* Add description to examples from annotations to parseURL

* Fix measurements' description

* Clarify example descriptions

* Clarify example descriptions

* Add atmosphere layer to black background to all examples (#713)

* Changed background color to black in most examples

* Add atmosphere layer to all examples

* Move atmosphere layer to show inner shading on all layers.

* Added comment pointing out importance of adding the atmosphere layer at the end

* Improved documentation for ParsingURLArguments and Custom Placemarks Examples (#715)

* Add issue template for submitting issues

* Add pull request template

* Change "Note:" in pull request template

* Change "Note:" in pull request template

* Add CONTRIBUTING.md

- This CONTRIBUTING.md replaces "HowToContribute.md". The content in "HowToContribute.md" replaced, but merely ported to the new CONTRIBUTING.md.
- This document explains the expectations for contributing to the Web WorldWind repository. It includes information on how to submit a bug report, new feature suggestion, or a pull request.
- It also guides the user on the appropriate way to contact the WorldWind team with questions.

* Move contributing list under correct heading.

The list to contributing to Web WorldWind (reporting a bug, suggesting a new feature, creating a pull request) was under the wrong heading (Asking Questions). It is now under Contributing.

* Fix spacing

* Add bullet points

* Update CONTRIBUTING.md

Add bullet points to table of contents.

* Update CONTRIBUTING.md

- Deleted the opening sentences which offer an invitation to change WorldWind standards.
- Add Resources content about the WorldWind website, forum, and administrative contact.

* Fix spacing in CONTRIBUTING.md

- Fixed spacing in the last lines of CONTRIBUTING.md so that they are double-spaced.

* Fix email link in CONTRIBUTING.md

* Change "World Wind" to "WorldWind"

* Comments for ParseURLArguments example

* Enhanced comments for Custom Placemark example

* Repositioned code to increase clarity and readability.
 - Removed previous multiple PlacemarkAttributes object creation.

* Documentation improvement of four examples (#716)

* Improved documentation on Collada example

* Improved documentation on DeepPicking example.

* Improved documentation on GeographicMeshes example.

* Improved documentation on GeographicText example.
 - Created a separate file to store data array of US peaks.

* Modified comment on GeographicTextPeaks

* Removed US Peaks array, left Colorado peaks only for the sake of brevity

* Added camera zooming feature to showcase decluttering feature.
 - Removed obsolete module reference.
 - Added altitude to the text labels.
 - Removed state from text labels.

* Changed peaks to Oregon State.

* Removed whitespace in peaks array for the sake of brevity

* Move layer manager to the end of examples from Annotations to ParseURL (#727)

* Add issue template for submitting issues

* Add pull request template

* Change "Note:" in pull request template

* Change "Note:" in pull request template

* Add CONTRIBUTING.md

- This CONTRIBUTING.md replaces "HowToContribute.md". The content in "HowToContribute.md" replaced, but merely ported to the new CONTRIBUTING.md.
- This document explains the expectations for contributing to the Web WorldWind repository. It includes information on how to submit a bug report, new feature suggestion, or a pull request.
- It also guides the user on the appropriate way to contact the WorldWind team with questions.

* Move contributing list under correct heading.

The list to contributing to Web WorldWind (reporting a bug, suggesting a new feature, creating a pull request) was under the wrong heading (Asking Questions). It is now under Contributing.

* Fix spacing

* Add bullet points

* Update CONTRIBUTING.md

Add bullet points to table of contents.

* Update CONTRIBUTING.md

- Deleted the opening sentences which offer an invitation to change WorldWind standards.
- Add Resources content about the WorldWind website, forum, and administrative contact.

* Fix spacing in CONTRIBUTING.md

- Fixed spacing in the last lines of CONTRIBUTING.md so that they are double-spaced.

* Fix email link in CONTRIBUTING.md

* Change "World Wind" to "WorldWind"

* Add layer manager to the end of examples

* Move layer manager to the end of examples (from Paths to WMTS) (#728)

* Moved LayerManager creation at the end of each example (From Paths to WMTS)

* Ran code formatting tool and eliminated superfluous whitespace

* Eliminated whitespace at the end

* Simplified placemark position assignment. Corrected comment typo. (#732)

* Simplified placemark position assignment. Corrected comment typo.

* Shortened comment.

* Readability and documentation enhancements in five examples (#731)

* Updated GeoTiffExample with commments and increased readability

* Updated GoToLocation with commments and increased readability
 - The example's picking is not working.

* Updated Paths with commments and increased readability

* Updated RefreshImagery with commments and increased readability

* Updated SurfaceImage with commments and increased readability
 - Removed picking functionality for the sake of brevity and consistence.
 - Picking wasn't working.

* Renamed GeoTiffExample and KmlExample to GeoTiff and KML

* Add a reader for AAIGrid (#660)

* Clarification for ScreenText Example (#752)

* Add issue template for submitting issues

* Add pull request template

* Change "Note:" in pull request template

* Change "Note:" in pull request template

* Add CONTRIBUTING.md

- This CONTRIBUTING.md replaces "HowToContribute.md". The content in "HowToContribute.md" replaced, but merely ported to the new CONTRIBUTING.md.
- This document explains the expectations for contributing to the Web WorldWind repository. It includes information on how to submit a bug report, new feature suggestion, or a pull request.
- It also guides the user on the appropriate way to contact the WorldWind team with questions.

* Move contributing list under correct heading.

The list to contributing to Web WorldWind (reporting a bug, suggesting a new feature, creating a pull request) was under the wrong heading (Asking Questions). It is now under Contributing.

* Fix spacing

* Add bullet points

* Update CONTRIBUTING.md

Add bullet points to table of contents.

* Update CONTRIBUTING.md

- Deleted the opening sentences which offer an invitation to change WorldWind standards.
- Add Resources content about the WorldWind website, forum, and administrative contact.

* Fix spacing in CONTRIBUTING.md

- Fixed spacing in the last lines of CONTRIBUTING.md so that they are double-spaced.

* Fix email link in CONTRIBUTING.md

* Change "World Wind" to "WorldWind"

* Add edits to ScreenText example

- Clarifies ScreenText code
- Shortens ScreenText by giving fewer examples

* Modified comments and removed unneeded offset assignment

* Changed comment

* Improvements to documentation in 3 examples (#750)

* Added documentation to Shapefiles

* Added documentation to TriangleMeshes

* Added documentation to Well-Known Text example

* Changed capitalization of WKT example file name

* Changed highlights colors in order to show light shading more clearly

* Add the notion of measured locations (#691)

* Fix inconsistencies in the documentation of Location (#757)

* Enhanced Cartesian surface normal precision (#758)

Follow on changes for the pull request _Enhanced geographic to Cartesian arithmetic precision_ (#714). Applies precision enhancements for the Cartesian surface normal to Globe.surfaceNormalAtLocation.

@NASAWorldWind/nasa-developers and @NASAWorldWind/esa-developers Please let me know if you have any questions or concerns. I'm confident in the changes made, and I'm proceeding with the changes in order to keep the task at hand moving. I'll gladly address any comments after this pull request is merged.

* Rollback screen credit hyperlink support (#755)

* Rollback screen credit hyperlink support

- The implementation of screen credit hyperlinks causes several bugs in WebWorldWind's examples.
- Adding a ClickRecognizer and TapRecognizer to BasicWorldWindowController prevented recognizers in the examples from detecting clicks and taps.
- Additionally, applications making use of ClickRecognizer or TapRecognizer would be affected by this behavior, so we're rolling back the change until this issue can be addressed.

Fixes #721
Fixes #723

* Reverted unintentional changes pushed to #755

* Improvements on clarity and documentation for 5 examples (#735)

* Improved readability and documentation in SurfaceShapes and GeoJSONExporter

* Ran code formatting

* Improved readability and documentation of Measurements example

* Removed TODO comment

* Improved PickAllShapesInRegion readability and documentation

* Corrected examples names (#754)

Use "WorldWind _______ Example" as naming standard.

* Update

* Update

* Update README.md to clarify the Apache license

* Moved NDVIViewer from 'Examples' to 'Apps' folder (#762)

* Moved NDVIViewer from 'Examples' to 'Apps'

* Ran code formatting tool. Corrected coercive comparison operators.

* StarField example refactored as "Night Sky Animation" (#753)

* Made example to initiate simulation without user interaction
 - Removed code that pertained to UI checkbox.
 - Added BMNGOneImageLayer to avoid seeing the atmosphere without an
   Earth when the application is loading.
 - Removed factor from the time advancement simulation

* Change animation mechanism to the standard requestAnimationFrame

* Changed the animation mechanism to account for different framerates

* Moved requestAnimationFrame to the beginning

* Changed StarField example name to fit its new focus

* Changed example name

* Removed ability to control animation to simplify example

* Changed example name to Night Sky Animation

* Deleted Sun Simulation example
 - Deleted unused configuration files and created a new one to fit the
   new name of the example.

* Adjustments to @Beak-man's new night sky animation example

* Improved some comments

* Repositioned comment that refers to the animation

* Add urn:ogc:def:crs:EPSG::4326 as alias for EPSG:4326 in GeoJSONParser (#763)

* Refactored ScreenText Example (#764)

* Refactored ScreenText example

 - Eliminated offset modification after creation. It exposed the
   mutable nature of the TextAttributes.offset.

 - Changed its focus at the end. Showcased how TextAttributes.offset
   can be used for text alignment.

* Removed common TextAttributes object to use default attributes instead

* Corrected previously missing whitespace

* Expose internal KML classes in the WorldWind namespace (#759)

* Repaired BlueMarbleTimeSeries Examples (#765)

* Repaired the Blue Marble time series example

* Slight modifications to BlueMarbleTimeSeries fix

 - Moved the UI layer creation to the top. This is uncharacteristic
   compared with other examples, but this part broke the flow of the
   narration of the example when it was positioned in the middle. Due
   to technical necessities, the AtmosphereLayer creation is still
   in the same location, though.

 - URL of REST imagery is now in another line to make it inmmediately
   readable.

 - Added a comment regarding the animation interval.

* Convert the embedded JSZip to RequireJS for build compatibility (#770)

* Updated BlueMarble and Landsat layers to capture their full resolution (#773)

- Blue Marble's native resolution is 4.166666667E-03 deg/pixel.
- Landsat's native resolution is 1.38889E-04 deg/pixel.
- Increased BMNGLayer's maximum resolution from 5.5E-0.3 deg/pixel to 1.4E-0.3 deg/pixel.
- Increased BMNGLandsatLayer's maximum resolution from 1.7E-0.4 deg/pixel to 4.3E-0.5 deg/pixel.
- Given the modest increase in resolution, this change has no effect on runtime performance.

Closes #772

* Clarified console messages relating to WebGL support (#775)

Updated console message emitted during WorldWindow construction when a WebGL context cannot be created. These messages appear when the browser does not support WebGL, or when WebGL support has been disabled (either by the user, or by a group policy).

* Clean up WebStorm run configurations (#774)

- Helps WorldWind developers using the WebStorm IDE work from a standard and comprehensive set of run configurations.
- Removed obsolete run configurations for AnalyticalSurface, BingLayers, and LibraryExample.
- Prefixed run configurations to group them by example, app, and performance.
- Added missing run configurations.
- Child of #699

* add meta tag for charset - examples (#777)

* The coordinates in a WKT shape are ordered as “longitude latitude”.

* Set correct coordinates order in WKT tests

* Track WebGL extensions per DrawContext (#769)

* README adjustments (#783)

* Rephrased first paragraph

* Suppress automated API doc deployment (#784)

Temporarily suppress automated API doc deployment to GitHub Pages until the root cause of build errors can be identified and resolved.

* bug/suppress-automated-examples-deploy

Temporarily suppress automated example deployment to Artifactory until the root cause of build errors can be identified and resolved.

* Heatmap Layer (#628)

* Remove ambiguity between sector property in SurfaceShape and SurfaceSector (#782)

* Readme adjustments (#785)

* Rephrased first paragraph

* Removed link

* Adjusted newlines

* Recenter view and add missing metadata for new GeoTIFF example file (#779)

* Improved Collada rendering (#766)

* added frustum culling for collada 3d model

* flatten node tree and merge gpu buffers
added support for large models via the OES_element_index_uint extension

* initialize the OES_element_index_uint extension once per drawContext
rather than once per model

* use the drawContext getExtension method for handling extensions

* Add getReferencePosition and moveTo to SurfaceSector (#776)

* Add moveTo and getReferencePosition methods - used in Shape Editor (#789)

* Change the default path type of surface sector to linear so that it represents a bounding box by default (#795)

* Add an option to set the number of levels in a heatmap (#797)

* Update README.md (#801)

* Disable Travis CI deployment in preparation for project suspension (#802)

* Update the README files's Travis CI badge (#803)

* Update WebWorldWind build dependencies (#804)

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.

* Update Node.js versions listed in README (#805)

* Update README.md

* Notice update (#809)

* Notice update (#812)

* Ran 'npm audit fix' to update dependencies

* Refactored Standalone example as the Offline app (#767)

* Refactored Standalone example as the Offline app

* Updated Standalone data bundle URL

* Updated conf file reflecting new name and location of Offline app

* Delete duplicate Offline configuration file

* Collada fixes (#825)

* Double sided enhancement, node geometry fix

* Fixed a regression on the engine model

* Fix to correctly display KML files with no altitudeMode specified (#826)

* Updated npm packages with 'npm audit fix'

* Added validation for when the KML file doesn't specify altitudeMode
 - Resolves issue of KmlPolygon not creating SurfacePolygon when KML file does not specify altitudeMode.

 - As per KML's 2.2 specification, if altitudeMode is not specified, it should be interpreted as CLAMP_TO_GROUND. This commit ensures this behavior.

 - Added method for validation of altitudeMode existence in KML file, imitating WWJ's KMLPlacemark behavior.

* Temporarily changed data source used in KML example to test a KML file with no altitudeMode specified

* Added KML file with no altitudeMode specified
 - Downloaded from here:
   https://opendata.hayward-ca.gov/datasets/hayward-general-plan-land-use?geometry=-122.322%2C37.590%2C-121.845%2C37.685

* tests for kmlInnerBoundary glitch

* Returned KML example to its previous test file source

* Added TODO comment regarding boundary graphic glitches

* Changed isValidAltitudeMode to use WorldWind constants.
 - Ran code formatter on the file

Co-authored-by: Mark Peterson <markpet@yahoo.com>

* Corrected outdated references for BlueMarbleTimeSeries and WMTS examples (#820)

* Corrected outdated references for BlueMarbleTimeSeries and WMTS examples
 - Time series data now resides in our web server instead of worldwind32
 - WMTS example now petitions from an EOSDIS NASA endpoint. Previous DLR service is denying requests now.
   Note: Attempted to use the service:
   https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/wmts.cgi?SERVICE=WMTS&request=GetCapabilities
   but it produced errors probably due to our TODO items in WmtsLayer.

* Executed code formatting tool

* Collada enhancement for lighting models with incorrect normal data. (#827)

* Pre-alpha collada normal fix

* Cleanup

* Cleanup

* Bug fixes and unit tests

* Fix/release candidate fixes (#829)

* Added charset tag and note on 3rd party libraries to HTML files that lacked them

* Commented out a debugging console.log message that returns the GetCapabilities document

* Updated README for v0.10.0 RC. Updated npm packages.

* 0.10.0

* Corrected typo.

* License update (#830)

* New release notices on Readme (#831)

* Added Readme notice about new releases

* Corrected unnecessary bullet point in Get Started section

Co-authored-by: servetg <giaferservet@gmail.com>
Co-authored-by: Jakub Balhar <jakub@balhar.net>
Co-authored-by: Claudia Ifrim <ifrim.claudia@gmail.com>
Co-authored-by: Yann Voumard <374540+AkeluX@users.noreply.github.com>
Co-authored-by: David Collins <paul@paulcollinssoftware.com>
Co-authored-by: Mark Peterson <markpet@yahoo.com>
Co-authored-by: Zach Glueckert <zachary.r.glueckert@nasa.gov>
Co-authored-by: Bruce Schubert <bruce@emxsys.com>
Co-authored-by: strikerM <strikerM@users.noreply.github.com>
Co-authored-by: Endia Irizarry <endiajanae@mail.fresnostate.edu>
Co-authored-by: Patrick Hogan <Patrick.Hogan@nasa.gov>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging this pull request may close these issues.

None yet

3 participants