Commit Graph

56 Commits

Author SHA1 Message Date
jjspace 943270893a
build sandcastle standalone correctly, gitignore sandcastle v2 files 2025-05-06 13:41:23 -04:00
Gabby Getz 3220f3da29 Updates for 1.117 release 2024-05-01 10:04:34 -04:00
unknown 9a1ece7c60 Retrive all keys from secrets 2024-02-05 10:45:59 -05:00
Gabby Getz 28a9a84fb4 Ignore snapshots 2023-06-14 14:25:50 -04:00
Gabby Getz fc3cb0d3d8 Add e2e tests using playwright 2023-06-12 12:33:47 -04:00
Gabby Getz 2eac9e04e8 ignore .tgz in packages 2022-11-18 16:36:53 -05:00
Sanjeet Suhag aaf6bd8a5c Adds engine and widgets workspaces 2022-11-01 15:39:57 -04:00
Gabby Getz 17babe94e5 Tweak workers, remove pervasive spread operations 2022-07-13 14:18:17 -04:00
Gabby Getz 9905c123f4 Merge branch 'main' into build 2022-06-22 11:34:12 -04:00
Jeshurun Hembd 26532fe676 Fix prism entry in .gitignore 2022-06-16 14:14:01 -04:00
Jeshurun Hembd 36be7b412b Import prism files from npm 2022-06-16 14:13:05 -04:00
Gabby Getz eb60fbf46a cleanup build tasks 2022-05-25 14:20:47 -04:00
Gabby Getz f8c351ddb7 Copy jasmine files 2022-04-14 09:29:00 -04:00
Gabby Getz 31c154a299 Remove when.js and replace with native promises
There were a few areas in Source where a function was assumed to be executed synchronously when a function was resolved. Native Promises however, by spec, will resolve at the end of a frame. There were also some strange handling of promise rejection in imagery providers that I cleaned up a bit in order to make them testable.

- In LabelCollection and EntityCluster, order of execution adjustment where made.
- Added TextureAtlas.addImageSync to support the order of execution fix in LabelCollection
- ArcGisMapServerImageryProvider.readyPromise will not reject if there is a failure unless the request cannot be retried.
- SingleTileImageryProvider.readyPromise will not reject if there is a failure unless the request cannot be retried.

The majority of the changes lie in the Specs, where unresolved promises weren’t being awaited before finishing executions, and where resolved promises are assumed to be synchronous all over the place and needed a good amount of fixes. Another issue which came up was calling Promise.reject in the body of a spec can cause node to halt execution when running via the command line.
2022-03-16 09:38:39 -04:00
Eli Bogomolny 806d86608a Merge remote-tracking branch 'origin/main' into zip-pako 2021-10-06 23:59:25 -04:00
Eli Bogomolny 3a07c02572 pako workers for zip.js 2021-09-29 16:35:11 -04:00
Eli Bogomolny 811584e7ff postinstall to copy files from node_modules 2021-09-28 13:36:57 -04:00
ebogo1 26716a82e1 Merge remote-tracking branch 'origin/main' into draco-prepare 2021-09-01 13:40:40 -04:00
ebogo1 b18233a3f8 Fix gulpfile and gitignore 2021-09-01 11:27:44 -04:00
ebogo1 a1441494f6 First pass with npm prepare 2021-09-01 09:04:06 -04:00
ebogo1 2bed051958 rename to Uri.js 2021-08-29 12:11:22 -04:00
Sean Lilley 44b1fb4c6f Add meshopt to .gitignore 2021-08-27 21:07:19 -04:00
Matthew Amato 974bb42a99 Use protobufjs from npm
Locked to version 6.7.0 since that is the version we are already using and
updating it requires additinal work because of the use of util.lazyResolve
in the GoogleEarthEnterpriceMetadata root parser code.
2021-08-22 15:08:43 -04:00
ebogo1 c8592cb6b5 first pass 2021-07-31 17:34:42 -04:00
Matthew Amato f594b3c99b Start of replacing submitted third party libraries with npm modules
Rather than submit libraries to Source/ThirdParty, which always end up
being modified for our build system and quickly go out of date, this
change starts to use libraries via npm instead. Currently Autolinker,
earcut, when, tween.js, rbush, kdbush, quickselect, and topojson are
ported.

The main hurdle that prevented us from doing this sooner was the fact that
Cesium has a long history of not requiring a build step after every code
change and has a goal of writing valid JS code, unlike many libraries today
 that mandate a bundler to turn invalid JS code into valid code.

Rather than mandate a bundler during development, this initial step adds a
"buildThirdyParty" function to the current "build" step. This function runs
third party libraries (defined in the ThirdParty/npm/ folder) through
RollUp and creates an equivalent file in `Source/ThirdPartyNpm`.

The change to end users will be non-existent, especially since the combined
Cesium.js will still re-export any third party modules as part of the
private API just like it used to.

This doesn't prevent code duplication for users using some of the same
third party libraries as Cesium. This is just an improvement as to how
depend on third party libraries internally.

I think Cesium's days of being "bundler free" are probably limited long
term, performance is the main hurdle and newer tools like esbuild may make
that no longer a problem. But that's outside the scope of this initial
goal.
2021-04-11 15:02:36 -04:00
Daniel Leone c2d0e53de6 * added the intellj shelf to the git ignore list
* fixed the doc for `TerrainData.createMesh` (missing param)
* exposed `_tileAvailability` on ArcGISTiledElevationTerrainProvider as the `availability`; this fixes sampleTerrainMostDetailed which requires that property.
* made `sampleTerrain` call `createMesh` on every tile requested; this fixes ArcGIS terrain which currently requires the mesh to be built
  before interpolating height (because the request buffer is still encoded in LERC and the decoding happens during mesh building)
2020-12-15 11:24:23 +08:00
Matthew Amato 85c78edf31 Generate official TypeScript type definitions
It's been a long requested feature for us to have official TypeScript type
definitions.  While the community has done a yeoman's job of manually
supporting various efforts, the most recent incarnation of which is
`@types/cesium`, the sheer scale and ever-evolving nature of Cesium's code
base makes manual maintenance a Sisyphean task.

Thankfully, our decision to maintain meticulous JSDoc API documentation
continues to pay dividends and is what makes automatically generating
TypeScript definitions possible. Using the excellent
https://github.com/englercj/tsd-jsdoc project we can now automatically
generate and even partially validate official definitions as part of the
build process. (Thanks to @bampakoa who contributed some early PRs to both
CesiumJS and tsd-jsdoc over a year ago and is how I learned about
tsd-jsdoc)

While tsd-jsdoc output is mostly where we need it to be, we do
post-processing on it as well. This lets us clean up the output and also
make sure these definitions work whether users include cesium via module,
i.e. `import { Cartesian3 } from 'cesium'`, or individual files, i.e.
`'import Cartesian3 from 'cesium/Source/Core/Cartesian3'`. There were also
some quirks of tsd-jsdoc output we fixed that may eventually turn into a PR
into that project from us. The post-processing is part typescript compiler
API, part string manipulation. It works and is straightforward but we might
want to go full TS api in the future if we decide we need to do more
complicated tasks. The output of tsd-jsdoc is currently a little noisy
because of some incorrect error reporting, but I'm talking with the
maintainer in https://github.com/englercj/tsd-jsdoc/issues/133 to get them
fixed. No need to hold up this PR for it though.

The definition is generated as a single `Cesium.d.ts` file in Source, so it
lives alongside Cesium.js. It is ignored by git but generated by a separate
`build-ts` task as part of CI and makeZipFile. This task also validates the
file by compiling it with TypeScript, so if a developer does anything too
egregious, the build will fail. Definitions are automatically included in
our npm packages and release zips and will be automatically used by IDEs
thanks to the `types` setting in package.json. This means that IDEs such as
VS Code will prefer these types over the existing `@types/cesium` version
by default.

I didn't want to slow the `build` step down, so I made this a separate
step, but in the future we could consider running it by default and we
could also unignore this file in Git so that PR reviewers can see the
impact, if any, our code changes have on the generated definitions. This
might be a good idea as an additional sanity check and should only actually
change when the public API itself changes. But the issue would be
remembering to run it before submitting the code (or we could use git hooks
I suppose?) I just don't want to slow down devs so I'm hesitant to do
anything like this out of the gate. We can definitely revisit in the
future.

A particular exciting thing about this approach is that it exposed a ton of
badness in our current JSDoc markup, which is now fixed. Previously, our
only concern was "does the doc look right" and we didn't pay attention to
whether the meta information generated by JSDoc correctly captured type
information (because up until it didn't matter). We leaned particular hard
on `@exports` which acted as a catch-all but has now been completely
removed from the codebase. All this means is that our documentation as a
whole has now improved greatly and will continue to be maintained at this
new higher level thanks to incorporating TS definition creation into our
pipeline!

One minor caveat here is that obviously we changed our JSDoc usage to both
make it correct and also accommodate TypeScript. The main drawback to these
fixes is that enums are now generated as globals in the doc, rather than
modules. This means they no longer have their own dedicated page and are
instead on the globals page, but I changed the code to ensure they are
still in the table of contents that we generate. I think this trade-off is
perfectly fine, but I wanted to mention it since it does change the doc
some. We can certainly look into whether we can generate enums on their own
page if we think that makes sense. (I actually like this approach a little
better personally).

Last major piece, the actual code. 99% of the changes in this PR only
affect the JSDoc. There are two exceptions:

A few of our enums also have private functions tacked onto them. I had to
move these functions to be outside the initializer but otherwise they are
unchanged.  This ensures that a valid TS enum is generated from our code, since you can't have functions globbed onto enums in the TS world. If we were writing TS code by hand, we could use  declaration merging with a namespace, but the toolchain we are using doesn't have a way to express that right now.  There were two cases where these extra functions weren't private, `ComponentDataType` and `IndexDataType`. That means that as far as the TS definitions goes, the helper methods don't exist.  I consder this an edge case and we can write up issues to investigate later.  I'm actually not even sure if these functions are public on purposes, @lilleyse can you confirm?

We had a few places where we had method signatures with optional parameters
that came _before_ required parameters, which is silly. This is invalid
TypeScript (and not good API design no matter the language). In 99% of
cases this was `equalsEpsilon` style functions where the lhs/rhs were
optional but the epsilon was not. I remember the discussion around this
when we first did it because we were paranoid about defaulting to 0, but
it's an edge case and it's silly so I just changed the epsilon functions
to default to zero now, problem solved.

Here's a high level summary of the JS changes:

* Use proper `@enum` notation instead of `@exports` for enums.

* Use proper `@namespace` instead of `@exports` for static classes.

* Use proper `@function` instead of `@exports` for standalone functions.

* Fix `Promise` markup to actually include the type in all cases, i.e.
`Promise` => `Promise<void>` or `Promise<Cartesian3[]>`.

* Fix bad markup that referenced types that do not exist (or no longer
exist) at the spec level, `Image` => `HTMLImageElement`,
`Canvas` => `HTMLCanvasElement`, etc.. `TypedArray` in particular does not
exist and much be expressed as a lsit of all applicable types,
`Int8Array|Uint8Array|Int16Array|Uint16Array...`.

* Use dot notation instead of tilde in callbacks, to better support
TypeScript, i.e. `EasingFunction~Callback` becomes
`EasingFunction.Callback`. The only exception is when we had a callback
type that was i.e. `exportKml~ModelCallback` becomes
`exportKmlModelCallback` (a module global type rather than a type on
exportKml). This is because it's not possible to have exportKml be both a
function and a namespace in this current toolchain.  Not a big deal either
way since these are meta-types used for defining callbacks but I wanted to
mention it.

* There were some edge cases where private types that were referenced in
the public API but don't exist in the JSDoc. These were trivial to fix by
either tweaking the JSDoc to avoid leaking the type or in some cases, just
as `PixelDataType`, simply exposing the private type as public.  I also
found a few cases where things were accidentally public, I marked these as
private (these were extreme edge cases so I'm not concerned about breaking
changes). Appearances took an optional `RenderState` in their options, I
just changed the type to `Object` which we can clean up further later if
we need to.

* Lots of other little misc JSDoc issues that became obvious once we
started to generate definitions (duplicate parameters for example).

Thanks again to the community for helping generate ideas and discussions
around TS definitions over the last few years and a big thanks to @javagl
for helping behind the scenes on this specific effort by evaluating a few
different approaches and workaround before we settled on this one (I'm
working on a blog with all of the gory details for those interested).

Finally, while I'm thrilled with how this turned out (all ~41000 lines
and 1.9MB of it), I can guarantee we will uncover some issues with the
type definitions as more people use it. The good news is that improving it
is now just a matter of fixing the JSDoc, which will benefit the community
as a whole and not just TS users.


Fixes #2730
Fixes #5717
2020-05-26 22:40:05 -04:00
Matthew Amato 00850726bb Support for loading 3D Tiles via CZML and Entity API
This change enabled CZML and the Entity API to load 3D Tiles tilesets.
Since `Cesium3DTileset` has dozens of options, I only exposed
uri/show/maximumScreenSpaceError to start.  We also use the entity
position/orientation (if specified) to compute the tileset.modelMatrix
allowing for moving tilesets that can be tracked with the camera.

Details:

1. New Sandcastle example, `CZML 3D Tiles.html`
2. New class, `Cesium3DTilesetGraphics` for representing a tileset via
the Entity API.
3. New class, `Cesium3DTilesetVisualizer` for creating/managing the
primitives.
4. Add `Entity.tileset` which is an instance of `Cesium3DTilesetGraphics`
5. Specs for everything
2020-01-29 22:13:22 -05:00
Dmitriy Pushkov 4dcbb1e408 Ignore yarn.lock. 2019-12-05 20:21:15 +03:00
Matthew Amato aabd27a760 Migrate Cesium to ES6 Modules
See https://github.com/AnalyticalGraphicsInc/cesium/pull/8224 for details.

eslint
There are a handful of new .eslintrc.json files, mostly to identify the files that are still AMD modules (Sandcastle/Workers). These are needed because you can't change the parser type with a comment directive (since the parser is the thing reading the file). We can finally detect unusued modules! So those have all been cleaned up as well.

requirejs -> rollup & clean-css
requirejs, almond, and karma-requirejs have all been removed. We now use rollup for building and minifying (via uglify) JS code and clean-css for css. These changes are fairly straight-forward and just involve calling rollup instead of requirejs in the build process.

Overall build time is significantly faster. CI is ~11 minutes compared to ~17 in master. Running makeZipFile on my machine takes 69 seconds compared to 112 seconds in master. There's probably plenty of room for additional optimization here too.

We wrote an published a small npm module, rollup-plugin-strip-pragma, for stripping the requirejs pragmas we use out of the release builds. This is maintained in the Tools/rollup-plugin-strip-pragma directory.

As for what we produce. The built version of Cesium is now a UMD module. So it should work anywhere that hasn't made the jump to ES6 yet. For users that were already using the "legacy" combined/minified approach, nothing changes.

One awesome thing about roll-up is that it compiles all of the workers at once and automatically detects shared codes and generates separate bundles under the hood. This means the size of our worker modules shrink dramatically and Cesium itself will load them much faster. The total minified/gzipped size of all workers in master is 2.6 MB compared to 225 KB in this branch! This should be most noticeable on demos like Geometry & Appearances which load lots of workers for the various geometry typs.

roll-up is also used to build Cesium Viewer, which is now an ES6 app.

We use clean-css via gulp and it is also a straightforward change from requirejs that requires no special mention.

Workers
While the spec allows for ES6 Web Workers, no browser actually supports them yet. That means we needed a way to get our workers into non-ES6 form. Thankfully, roll-up can generate AMD modules, which means we now have a build step to compile our Worker source code back into AMD and use the existing TaskProcessor to load and execute them. This build step is part of the standard build task and is called createWorkers. During development, these "built" workers are un-optimized so you can still debug them and read the code.

Since there is a build step, that means if you are changing code that affects a worker, you need to re-run build, or you can use the build-watch task to do it automatically.

The ES6 versions of Worker code has moved into Source/WorkersES6 and we build the workers into their "old home" of Source/Workers. cesiumWorkerBootstrapper and transferTypedArrayTest which were already non-AMD ES5 scripts remain living in the Workers directory.

Surprisingly little was changed about TaskProcessor or the worker system in general, especially considering that I thought this would be one of the major hurdles.

ThirdParty
A lot of our ThirdParty either already had a hand-written wrapper for AMD (which I updated to ES6) or had UMD which created problems when importing the same code in both Node and the browser. I basically had to update the wrapper of every third-party library to fix these problems. In some cases I updated the library version itself (Autolinker, topojson). Nothing to be too concerned about, but future clean-up would be using npm versions of these libraries and auto-generating the wrappers as needed so we don't hand-edit things.

Sandcastle
Sandcastle is eternal and manages to live another day in it's ancient requirejs/dojo 1.x form. Sandcastle now automatically uses the ES6 version of Cesium if it is available and fallsback to the ES5 unminified version if it is now. The built version of Sandcastle always uses CesiumUnminified, just like master. This means Sandcastle still works in IE11 if you run the combine step first (or use the relase zip)

Removed Cesium usage from Sandcastle proper, since it wasn't really needed
Generate a VERSION propertyin the gallery index since Cesium is no longer being included.
Remove requirejs from Sandcastle bucket
Update bucket to use the built version of Cesium if it is available by fallbackto the ES6 version during development.
Standalone.html was also updated
There's a bit of room for further clean-up here, but I think this gets us into master. I did not rename bucket-requirejs.html because I'm pretty sure it would break previously shared demos. We can put in some backwards compatible code later on if we want. (But I'd rather just see a full Sandcastle rewrite).

Specs
Specs are now all ES6, except for TestWorkers, which remain standard JS worker modules. This means you can no longer run the unbuilt unit tests in IE11. No changes for Chrome and Firefox.

Since the specs use ES6 modules and built Cesium is an ES5 UMD, I added a build-specs build step which generates a combined ES5 version of the specs which rely on Cesium as a global variable. We then inject these files into jasmine instead of the standard specs and everything works exactly as it did before. SpecRunner.html has been updated to inject the correct version of the script depending on the build/release query parameters.

The Specs must always use Cesium by importing Source/Cesium.js, this is so we can replace it with the built Cesium as describe above.

There's a bunch of room for clean-up here, such as unifying our two copies of jasmine into a single helper file, but I didn't want to start doing that clean-up as part of this already overly big PR. The important thing is that we can still test the built version and still test on IE/Edge as needed.

I also found and fixed two bugs that were causing failing unit tests, one in BingMapsImageryProviderSpec.js (which was overwriting createImage andnot setting it back) and ShadowVolumeAppearance.js (which had a module level caching bug). I think these may have been the cause of random CI failures in master as well, but only time will tell.

For coverage, we had to switch to karma-coverage-istanbul-instrumenter for native ES6 support, but that's it.

Finally, I updated appveryor to build Cesium and run the built tests under IE. We still don't fail the build for IE, but we should probably fix that if we want to keep it going.

NodeJS
When NODE_ENV is production, we now require in the minified CesiumJS directly, which works great because it's now a UMD module. Otherwise, we use the excellant esmpackage to load individual modules, it was a fairly straightforward swap from our old requirejs usage. We could probably drop esm too if we don't care about debugging or if we provie source maps at some point.
2019-10-03 11:51:23 -04:00
Matthew Amato c243d4202b Coverage changes after review.
1. Auto-generate a index.html with a list of browsers with coverage results
2. Remove `Instrumented` from everywhere since it doesnt exist.
3. Add Coverage to npmignore.
2019-08-29 20:25:24 -04:00
Omar Shehata f90f1c7472 Compile bucket.css for Sandcastle 2018-12-14 12:17:08 -05:00
Matthew Amato 650c93893a Changes for Node 8
1. Start building on travis with Node 8 since it will be LTS soon (it
should slightly speed up builds as well)
2. Add package-lock.json to .gitignore, this is a new npm-generated file
that we won't be submitting to GitHub (it changes almost every time you run
`npm install`).
3. Add package.json to .gitattributes to fix line endings caused by this
npm bug: https://github.com/npm/npm/issues/17161
2017-10-03 10:38:38 -04:00
Matthew Amato be225337ce Use cmd version of eslint and enable caching
1. Caching makes eslint only take ~3 seconds plus any files that have
changed since the last time you ran it. Since it's unlikely devs are
touching every tile between runs, this makes eslint much incredibly faster
in the average case.  Also added the genereated `.eslintcache` to git
ignore.

2. Switched to the pure cli version of eslint and remove `eslint-watch`,
which I'm pretty sure no one uses anyway. This simplified our usage and
means we lint all js and html files by default except for the globs
specifically listed in `.eslintignore`  This also shaves 2-4 seconds off
startup time because we're not loading gulpfile.js anymore.

3. Fixed an issue in `index.release.html`, which was previously not linted.
2017-06-19 10:55:56 -04:00
Hüseyin ATEŞ 4a2bb450a8 gitignore update 2017-06-01 11:11:33 +03:00
Dan Bagnell 2b3636150e Add shaders in the Source/ThirdParty/Shaders to the build. 2017-04-13 16:50:34 -04:00
Matthew Amato 328bfd3d8f Initial changes required to publish Cesium to NPM
1. Clean up code so `Source/Cesium.js` loads cleanly in a Node app.
Not all functionality is supported or tested.
2. Remove some unecessary jsHint global configurations
3. Add `.npmignore` so we include the minimum needed to use Cesium in a browser or from within Node.
4. Update NPM modules to latest version.
5. `requirejs` is now a non-dev dependancy for publishing to NPM.
6. Add `index.js` for requiring Cesium as an NPM module.
7. Update package.json with info needed for NPM publishing.
2015-11-24 17:35:57 -05:00
Matthew Amato 25a7591337 Fix Eclipse jsHint integration
Because jshint-eclipse does not support multiple `.jshintrc` files, I've
updated the root .jshintrc to include jasmine.  This is then set to
false in lower-down `.jshintrc files using the extends capability.

This has the added benefit of meaning we no longer write out .jshintrc
files as part of the build step.

The only downside here is that jsHint in Eclipse thinks Jasmine globals
are okay in all of our Source files. However, that's not a big deal
and travis and our own jshint build step will detect the problem if
someone tries to call jasmine outside of the Specs directory.
2015-11-16 10:42:41 -05:00
Matthew Amato 86b7a49568 Fix Travis, update .jshintrc, remove a ton of junk.
So it turns out that jsHint no longer works on Node 0.10.x, which is
ancient anyway.  So I updated Travis to use 0.12.x.  I then decided to
update our .jshintrc to take advantage of the latest JSHint features and
that produced a TON of new (perfectly valid) errors about unused variables,
empty code blocks, and unused defined globals, which I have now cleaned up.
This also uncovered a bunch of other stuff that I also fixed.

In summary:

1. Update travis to use Node 0.12.x
2. Update .jshintrc to take advantage of new features
3. Fix bad code pointed out by said features
4. Remove all uneeded `jasmine` globals in spec files
5. Generate a `Specs` specific .jshintrc as part of the build which enables jasmine mode in jshint
6. Move `QuadtreePrimitive` to Development Sandcastle gallery.
7. Update NPM modules to latest versions.
8. Lock NPM modules to specific versions to avoid untested updates in the future.
9. Ran `sortRequires`
2015-11-13 01:11:20 -05:00
Matthew Amato 40a21b0799 Add npm-debug.log to .gitignore 2015-10-23 13:16:21 -04:00
Matthew Amato 7e08a7b2a7 Initial port of build process to gulp
1. Move all build related code to gulpfile.js
2. Add `npm` scripts for all gulp tasks so no one needs to install gulp globally.
3. Added new `jshint-watch` task for continually running jsHint on changed files and writing the results to the console.
2015-10-16 17:30:14 -04:00
Matthew Amato 629dd79c8e Add Webstorm tasks.xml to ignore file. 2015-10-14 15:07:52 -04:00
Matthew Amato f92e2fafb1 Initial WebStorm project
This adds a basic WebStorm project for devs that want to use WebStorm.
It's not as robust as the Eclipse set up yet, but I'll remedy that in a
future PR.  For now:

1. Configure code formatters to mimic Eclipse formatting.  It's not 100%
but it's close

2. Add a File Watch that triggers `ant build` whenever a glsl file is
modified.

3. Mark `Build` directory as ignored, the root directory as resource root,
and the `Specs` directory as test root.
2015-09-21 14:25:49 -04:00
Matthew Amato fd670561b9 Add default web.config file for easier IIS deployment
We package the web.config at the root of the release zip as well as the build CesiumViewer app.
2014-09-30 13:23:38 -04:00
Scott Hunter 4782dc7a18 JSDoc upgrade work in progress 2014-05-23 16:25:54 -04:00
Ed Mackey 22c4bb92eb Preemptively add a potential future file to .gitignore 2013-09-06 13:55:56 -04:00
Patrick Cozzi 2fb48033c2 Changed way GLSL source is generated to workaround uniforms not being optimized out 2013-08-21 14:48:46 -04:00
Scott Hunter 17c057c15a Consolidate .gitignore files in the root.
This makes it easier to copy various source folders for use in other projects without accidentally ignoring items.
2013-07-30 15:00:03 -04:00
Scott Hunter 1fe5dfc257 Move gitignore for Thumbs.db to the root to get rid of two other gitignore files. 2013-01-07 10:22:32 -05:00
Ed Mackey c7e57b3ba1 Ignore web.config needed for CZML MIME types on IIS.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <staticContent>
            <mimeMap fileExtension=".czml" mimeType="application/json" />
        </staticContent>
    </system.webServer>
</configuration>
2012-07-20 17:20:49 -04:00