Skip to content

Include style fixes, part 0#349

Merged
kring merged 24 commits intomainfrom
include-style-fixes
Sep 30, 2021
Merged

Include style fixes, part 0#349
kring merged 24 commits intomainfrom
include-style-fixes

Conversation

@javagl
Copy link
Contributor

@javagl javagl commented Sep 19, 2021

This is a first pass of addressing #80

This primarily addresses the include style for internal projects and third-party includes. Originally, there have (for example) been classes in CesiumGeospatial that included files from other projects, like CesiumUtility, using "", as in

#include "CesiumUtility/Math.h"

These have been changed to

#include <CesiumUtility/Math.h>

Similarly, for some third-party includes.


Beyond that, there are different guidelines regarding the order of includes, and they vary ... (and the degree to which they vary varies...). One consensus is, of course, that every .cpp file should include its corresponding .h file as the first include. After that, I now usually used an order like this:

// Include for the corresponding header
#include "Cesium3DTilesSelection/Tileset.h"

// Includes from the same project, using ""
#include "Cesium3DTilesSelection/CreditSystem.h"
...
#include "calcQuadtreeMaxGeometricError.h"

// Includes from own projects, using <>
#include <CesiumAsync/AsyncSystem.h>
...
#include <CesiumUtility/Uri.h>

// Includes from third parties
#include <glm/common.hpp>
#include <rapidjson/document.h>

// "Real" system includes
#include <algorithm>
...
#include <unordered_set>

If somebody now says "Nah, all wrong, make it so-and-so", then I'll update that accordingly. But I might ask: "Why didn't you establish that policy one year ago?". Keeping something consistent is often far easier than making something consistent that is not consistent in the first place...


This PR does not cover the CesiumGltf* projects yet, because of their auto-generated files.


An aside: This issue (and therefore, this PR) may appear to have "low priority". But I have done some experiments with clang-tidy and similar tools, related to #203 , and I think that a proper and consistent include style is a crucial precondition for that: The build process should not bail out due to a warning in a third-party header that was included with the wrong include style....

@kring
Copy link
Member

kring commented Sep 20, 2021

Beyond that, there are different guidelines regarding the order of includes, and they vary ...

I'm not too fussed about the include order, and can certainly see the wisdom in the one you've proposed, but the most important thing to my mind is that clang-format be able to sort our includes automatically. I'd rather not manually keep them in groups. If clang-format can do this grouping automatically, great! If not, I think its default behavior is just fine. I believe its default behavior is: corresponding header first, then quoted headers alphabetically, then angle bracketed headers alphabetically, with no blank lines in between. And it's the policy we've been using for quite awhile now.

@javagl
Copy link
Contributor Author

javagl commented Sep 20, 2021

Our style is based on the LLVM style, and it basically suggests the order that I mentioned for the different "categories" of includes. The handling of these categories is then further configured with the IncludeBlocks option (as documented on https://clang.llvm.org/docs/ClangFormatStyleOptions.html ). For our style, this is Preserve, which means that the categories/blocks will be preserved, but each block is sorted alphabetically.

The result can actually be seen in the formatting commit, where I only did the usual, final clang-format pass: The blocks are preserved, but only the order within these blocks changed.

@lilleyse
Copy link
Contributor

tilers follows a similar structure but only has one project instead of several projects like cesium native.

The includes for "Projection.cpp" might look like

#include "tilers/core/Projection.h"

#include "tilers/core/Logger.h"
#include "tilers/core/Tracer.h"

#include <gdal.h>
#include <glm/trigonometric.hpp>

#include <cmath>
#include <filesystem>

The rules are:

  • corresponding header should go first
  • project headers should use quotation marks and be descendants of the include directory
  • third party libraries should use angle brackets
  • std headers should always use the C++ include style instead of the C include style (e.g. <cmath> instead of <math.h>)

We can get most of the way there with these clang-format rules:

IncludeBlocks: Regroup
IncludeCategories:
  # tilers includes
  - Regex: '"tilers\/[A-Za-z0-9\/\-_\+]+\.h"'
    Priority: 1
  # third party includes
  - Regex: '<[A-Za-z0-9\/\-_\+]+\.(h|hpp)>'
    Priority: 2
  # std library includes
  - Regex: '<[A-Za-z0-9_]+>'
    Priority: 3

@lilleyse
Copy link
Contributor

The Regroup + regex approach seems to be the best way to sort includes automatically. You can give it really messy input and it will just work.

Before

#include <glm/trigonometric.hpp>

#include "tilers/core/Logger.h"


#include <gdal.h>
#include "tilers/core/Tracer.h"

#include <cmath>
#include "tilers/core/Projection.h"
#include <filesystem>

After

#include "tilers/core/Projection.h"

#include "tilers/core/Logger.h"
#include "tilers/core/Tracer.h"

#include <gdal.h>
#include <glm/trigonometric.hpp>

#include <cmath>
#include <filesystem>

@javagl
Copy link
Contributor Author

javagl commented Sep 20, 2021

I don't have a strong preference of whether it should be Preserve or Regroup, Kevin or Bao can decide that. (If we use Regroup, I'd check the "third party" category regex whether it also catches #include <gsl/span> (without .h), but that's a detail for now).

@kring
Copy link
Member

kring commented Sep 24, 2021

Ok let's try regroup. If we can get that working well, it sounds great! If we can't do that, then (like I said before) I'd rather use an order that can be created automatically than maintain groups manually.

@javagl
Copy link
Contributor Author

javagl commented Sep 26, 2021

I have enabled the Regroup of clang-format, with this .clang-format entry :

# Disregard any exising include order, and re-order the headers
# to use the following order based on the include path regexes:
IncludeBlocks: Regroup
IncludeCategories:
  # Local includes, enclosed in quotation marks, ending in `.h`
  - Regex: '"[A-Za-z0-9+_\/\-]+\.h"'
    Priority: 1
  # Cesium project includes, starting with `<Cesium`, and ending with `.h>`
  - Regex: '<Cesium[A-Za-z0-9+_\/\-\]+\.h>'
    Priority: 2
  # Third party includes, of the form `<something/something>`
  - Regex: '<[A-Za-z0-9_\/\-]+\/[A-Za-z0-9_\/\-\.]+>'
    Priority: 3
  # Standard library includes, of the form `<something>
  - Regex: '<[A-Za-z0-9_]+>'
    Priority: 4

As expected, this required a few minor updates compared to what @lilleyse posted, for example, to seapare between local- and "internal project" includes, or to cover <gsl/span> (without extension). And apparently, a + does not have to be escaped when it is enclosed in [..]? At least, the original RegExes seemed to choke on the + in CesiumAsync/Impl/cesium-async++.h, but... there are some subtle differences in "dialects" of RegEx (as compared to what is suggested in https://xkcd.com/208/ ), and it seems to work fine now. At least, here is an example of the result, run on a completely messsed up order in Tileset.cpp:

#include "Cesium3DTilesSelection/Tileset.h"

#include "Cesium3DTilesSelection/CreditSystem.h"
#include "Cesium3DTilesSelection/ExternalTilesetContent.h"
#include "Cesium3DTilesSelection/ITileExcluder.h"
#include "Cesium3DTilesSelection/RasterOverlayTile.h"
#include "Cesium3DTilesSelection/RasterizedPolygonsOverlay.h"
#include "Cesium3DTilesSelection/TileID.h"
#include "Cesium3DTilesSelection/spdlog-cesium.h"
#include "TileUtilities.h"
#include "calcQuadtreeMaxGeometricError.h"

#include <CesiumAsync/AsyncSystem.h>
#include <CesiumAsync/IAssetAccessor.h>
#include <CesiumAsync/IAssetResponse.h>
#include <CesiumAsync/ITaskProcessor.h>
#include <CesiumGeometry/Axis.h>
#include <CesiumGeometry/QuadtreeTileAvailability.h>
#include <CesiumGeospatial/Cartographic.h>
#include <CesiumGeospatial/GeographicProjection.h>
#include <CesiumGeospatial/GlobeRectangle.h>
#include <CesiumUtility/JsonHelpers.h>
#include <CesiumUtility/Math.h>
#include <CesiumUtility/Tracing.h>
#include <CesiumUtility/Uri.h>

#include <glm/common.hpp>
#include <gsl/span>
#include <rapidjson/document.h>

#include <algorithm>
#include <cstddef>
#include <limits>
#include <optional>
#include <unordered_set>

(The gsl/span was only included for testing). But that LGTM...

@kring
Copy link
Member

kring commented Sep 27, 2021

Thanks @javagl, this is looking great. I submitted a tweak to .clang-format to treat <something.h> as third-party, too, not just <something/something[.h]> because there were a couple of third-party headers missed. Let me know if you see a problem with this.

Some (small) problems remaining:

  • The files in the CesiumAsync/Impl directory aren't using relative paths correctly. For example in TaskScheduler.h:
#include "CesiumAsync/ITaskProcessor.h"
#include "CesiumAsync/Impl/ImmediateScheduler.h"

I think it should be:

#include "../ITaskProcessor.h"
#include "ImmediateScheduler.h"
  • All of the .cpp files don't really use relative paths correctly either, but I'm not sure this one is worth fixing. For example, AsyncSystem.cpp has:
#include "CesiumAsync/AsyncSystem.h"

#include "CesiumAsync/ITaskProcessor.h"

The actual relative paths are:

#include "../include/CesiumAsync/AsyncSystem.h"

#include "../include/CesiumAsync/ITaskProcessor.h"

But that's pretty ugly. And maybe it doesn't matter because those paths only need to be resolveable by the cesium-native build process itself (since CPP files won't be included in third-party projects directly). So is this our policy in C++ files? Same-library headers should use quotes and a "library-like" path? It's not obvious to me what would be better.

@javagl
Copy link
Contributor Author

javagl commented Sep 27, 2021

I submitted a tweak to .clang-format to treat <something.h> as third-party, too

I had seen some of these cases, but particularly for sqlite3.h, I wasn't entirely sure how to treat that (there was some back and forth of ~"Which sqlite is used"). But the change looks fine.

For the point of using "relative paths correctly" (be it in headers or implementation files): You linked to https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#sf12-prefer-the-quoted-form-of-include-for-files-relative-to-the-including-file-and-the-angle-bracket-form-everywhere-else in an earlier comment elsewhere. Our paths are currently not really relative to the file but relative to the "project root", and that works, but that may only be an artifact of the black magic that the compiler uses when searching for these files.

In that regard, considering the options of

#include "CesiumAsync/AsyncSystem.h"
vs.
#include "../include/CesiumAsync/AsyncSystem.h"

the first one could cause trouble (as indicated by the "Note" in the Guidelines). I just checked this by creating an empty

cesium-native\CesiumAsync\include\CesiumAsync\Impl\CesiumAsync\ITaskProcessor.h

The #include "CesiumAsync/ITaskProcessor.h" from TaskScheduler.h that you mentioned then causes this empty file to be picked up, because ... well, that's the actual "relative path" then. Of course, this is a bit contrived, and very unlikely to happen "accidentally" in this exact form. But it shows that using a #include "../ITaskProcessor.h" or the clumsy ones with "../include/..." would resolve such ambiguities, and I think that it would be "cleaner and safer" to use the actual relative paths...

@kring
Copy link
Member

kring commented Sep 28, 2021

I think the #include "../ITaskProcessor.h" from the header in the CesiumAsync/Impl directory is acceptable/necessary because it's a public header file. It's an implementation detail (hence the Impl) but it the headers still need to be included from user code because of the requirements of C++ templates.

But I think #include "../include/CesiumAsync/AsyncSystem.h" from AsyncSystem.cpp is a step too far. Yes it's possible that #include "CesiumAsync/AsyncSystem.h" will end up including the wrong file if we add a file with such a relative path, but that would only impact our library's build system. Users of our library will never have to worry about it. And therefore the pain of that super-awkward relative path exceeds the benefit of avoiding this unlikely scenario within our own code.

So let's the fix my first bullet in #349 (comment) but not the second one.

@kring
Copy link
Member

kring commented Sep 28, 2021

Also @javagl can I bug you to merge in main since you're probably best placed to fix the conflicts?

@javagl
Copy link
Contributor Author

javagl commented Sep 28, 2021

I think there are not other libraries with Impl-like subdirectories, but generally: Is it valid to assume that your first bullet point only refers to the CesiumAsync/Impl files? (I haven't thoroughly reviewed all other includes for this pattern, and wondered whether there was a nice trick or tool to detect "ambiguous relative includes" in general, but if it referred only to this directory, I'd do it manually).

And of course, I'd prepare everything for the merge then. This would mainly be to "ignore everything from this branch and just re-run format on the state of main", except for minor things like the tinyxml2 wrapper and the relative path fixes.

@javagl
Copy link
Contributor Author

javagl commented Sep 28, 2021

I think there are not other libraries with Impl-like subdirectories, but generally: Is it valid to assume that your first bullet point only refers to the CesiumAsync/Impl files? (I haven't thoroughly reviewed all other includes for this pattern, and wondered whether there was a nice trick or tool to detect "ambiguous relative includes" in general, but if it referred only to this directory, I'd do it manually).

And of course, I'd prepare everything for the merge then. This would mainly be to "ignore everything from this branch and just re-run format on the state of main", except for minor things like the tinyxml2 wrapper and the relative path fixes.

@kring
Copy link
Member

kring commented Sep 28, 2021

Is it valid to assume that your first bullet point only refers to the CesiumAsync/Impl files?

I can't think of any other cases like this.

# Conflicts:
#	Cesium3DTilesSelection/include/Cesium3DTilesSelection/GltfContent.h
#	Cesium3DTilesSelection/src/Batched3DModelContent.cpp
#	Cesium3DTilesSelection/src/CompositeContent.cpp
#	Cesium3DTilesSelection/src/ExternalTilesetContent.cpp
#	Cesium3DTilesSelection/src/GltfContent.cpp
#	Cesium3DTilesSelection/src/QuantizedMeshContent.cpp
#	Cesium3DTilesSelection/src/Tile.cpp
#	Cesium3DTilesSelection/src/TileContentFactory.cpp
#	Cesium3DTilesSelection/src/calcQuadtreeMaxGeometricError.h
Noticed a wrong include order, to be fixed with next commits.
@javagl
Copy link
Contributor Author

javagl commented Sep 28, 2021

I can't think of any other cases like this.

I wondered whether the include paths in public headers should also be relative. As such, for the files

Tile.h 
BoundingVolume.h

with Tile.h containing

#include "Cesium3DTilesSelection/BoundingVolume.h"

which could just be

#include "BoundingVolume.h"

I mean, this would prevent the aforementioned problem (if somebody added a Cesium3DTilesSelection/BoundingVolume.h in the existing Cesium3DTilesSelection directory), and would not involve the "ugly" relative "../include/" part. Any thoughts on that?

@kring
Copy link
Member

kring commented Sep 28, 2021

Ah yep, sorry, for some reason I thought that was already addressed.

To summarize it, all .h files in a subdirectory of the include directory, should use actual, valid relative paths. .cpp files and .h files in src or a subdirectory of src may use not-strictly-relative paths in order to avoid ugly ../include/ stuff.

@javagl
Copy link
Contributor Author

javagl commented Sep 28, 2021

I have updated the public headers to always use the proper relative include paths.

The manual part was straightforward, with one subtle detail: GltfReader.h, contained, for example

#include "CesiumGltf/ReaderLibrary.h"
#include "CesiumGltf/Model.h"

and now it contains the apparently inconsistent

#include "ReaderLibrary.h"
#include <CesiumGltf/Model.h>

because Model.h is in a different project (despite the same directory- and namespace name). But that's the way it is.


I also updated the generate-gltf-classes to generate the headers with the proper relative includes. This brought up the issue of some unexpected .cpp files floating around in the generated directory, as already mentioned at the bottom of #350 (comment) , but I hope that Git will sort out the fact that the unnecessary files have been removed in both branches now.

@javagl
Copy link
Contributor Author

javagl commented Sep 28, 2021

(A totally unrelated aside: I wonder whether all this will have a noticable effect (be it positive or negative) on the average build times...)

Edit:

Quickly comparing two of the latest main builds to this one...

CesiumUnreal native build times

... and not having a clear idea about the variance of the build times, it appears to be not noticably faster or slower than before. OK...

@kring
Copy link
Member

kring commented Sep 30, 2021

Thanks @javagl!

@kring kring merged commit 9695bf4 into main Sep 30, 2021
@kring kring deleted the include-style-fixes branch September 30, 2021 12:46
lilleyse added a commit that referenced this pull request Oct 26, 2021
commit 313cd58
Merge: 1fc378e 8027c71
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Mon Oct 25 20:36:45 2021 -0400

    Merge branch '3d-tiles-extensions' into gltf-writer

commit 8027c71
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Sun Oct 24 13:02:17 2021 -0400

    Add test for deserializing custom extensions

commit 02f4f96
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Sun Oct 24 12:20:32 2021 -0400

    Add support for 3DTILES_content_gltf

commit 3b52b62
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Mon Oct 25 12:15:06 2021 -0400

    Add newline

commit c4e4d7a
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Mon Oct 25 12:12:35 2021 -0400

    Rename Primitive back to MeshPrimitive

commit 1fc378e
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Sun Oct 24 19:19:58 2021 -0400

    Write custom extensions

commit 94b133b
Merge: 00f9750 8bb13fc
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Sun Oct 24 13:03:58 2021 -0400

    Merge branch '3d-tiles-extensions' into gltf-writer

commit 00f9750
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Sun Oct 24 13:03:26 2021 -0400

    Add 3DTILES_content_gltf to TilesetWriter

commit 8bb13fc
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Sun Oct 24 13:02:17 2021 -0400

    Add test for deserializing custom extensions

commit 404db06
Merge: 99fdb4b 4745672
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Sun Oct 24 12:27:54 2021 -0400

    Merge branch '3d-tiles-extensions' into gltf-writer

commit 4745672
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Sun Oct 24 12:20:32 2021 -0400

    Add support for 3DTILES_content_gltf

commit 99fdb4b
Merge: 17ec473 2a3dc0b
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Sun Oct 24 11:39:24 2021 -0400

    Merge branch 'extension-class-rename' into gltf-writer

commit 2a3dc0b
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Sun Oct 24 11:37:51 2021 -0400

    Use different naming convention for extension classes

commit 17ec473
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Sun Oct 24 11:22:43 2021 -0400

    Revert unordered_map change

commit 27939f9
Merge: 373c962 325e968
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Sun Oct 24 11:19:06 2021 -0400

    Merge branch 'ordered-map' into gltf-writer

commit 325e968
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Sun Oct 24 11:16:50 2021 -0400

    Use map instead of unordered_map so that order of dictionary elements is preserved during the read/write roundtrip and unit tests pass consistently on Linux and Windows

commit 373c962
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Sun Oct 24 11:04:13 2021 -0400

    Udpate launch.json

commit 56f1e64
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Sun Oct 24 09:19:12 2021 -0400

    Rename JsonExtensionsWriter to writeJsonExtensions

commit fb501a1
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Fri Oct 22 22:25:47 2021 -0400

    Use map instead of unordered_map because want to write glTF/tileset in the same order that its read

commit 30f5a13
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Wed Oct 20 22:03:54 2021 -0400

    Add test for extras

commit 6633b37
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Wed Oct 20 21:40:41 2021 -0400

    Fix test

commit 02c03ac
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Tue Oct 19 20:52:19 2021 -0400

    Add launch.json [temp]

commit adcd1c7
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Tue Oct 19 20:51:59 2021 -0400

    Regenerate files

commit f84c6ba
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Tue Oct 19 20:51:20 2021 -0400

    Add writer to generate-classes

commit 3322b0d
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Tue Oct 19 20:49:27 2021 -0400

    Format existing writer so it matches output better

commit 4f5f4f6
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Mon Oct 18 19:30:56 2021 -0400

    Remove unneeded code in TilesetWriter.h

commit b0b55c1
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Mon Oct 18 19:16:51 2021 -0400

    Revert generate-classes changes

commit 5800ddd
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Sun Oct 17 21:33:58 2021 -0400

    Start generator

commit 4eb6d57
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Sun Oct 17 21:33:51 2021 -0400

    Remove unneeded code

commit fbc0c40
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Sun Oct 17 12:33:11 2021 -0400

    Add tests

commit f88086f
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Sat Oct 16 19:24:47 2021 -0400

    3D Tiles writer compiling

commit 5ccbc7e
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Sat Oct 16 18:59:50 2021 -0400

    Cesium3DTilesWriter

commit 0ccd11c
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Sat Oct 16 18:29:38 2021 -0400

    Remove CesiumJsonWriter test files

commit 4a6fe3f
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Sat Oct 16 18:29:24 2021 -0400

    Remove Cesium3DTilesWriter generated files

commit 861fe91
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Sat Oct 16 18:20:51 2021 -0400

    Restore CesiumGltfWriter

commit 1913c31
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Sat Oct 16 18:18:40 2021 -0400

    Temp

commit 99edd55
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Sat Oct 16 14:28:55 2021 -0400

    Revert CesiumJsonWriter changes

commit e692b52
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Tue Oct 12 15:36:04 2021 -0400

    Naive first pass for 3D Tiles Writer

commit 34807e9
Merge: abbc03b 664f083
Author: Kevin Ring <kevin@kotachrome.com>
Date:   Fri Oct 22 09:36:33 2021 +1100

    Merge pull request #370 from CesiumGS/test-fix

    Fix CacheAssetAccessor test

commit 664f083
Author: Nithin Pranesh <nithinpra7@gmail.com>
Date:   Thu Oct 21 13:39:40 2021 -0400

    Move forward arbitrary future time to fix test

commit abbc03b
Merge: 046cb6a 711114a
Author: Kevin Ring <kevin@kotachrome.com>
Date:   Tue Oct 19 21:22:48 2021 +1100

    Merge pull request #369 from CesiumGS/update-metadata-schema

    Regenerate classes for EXT_feature_metadata

commit 711114a
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Mon Oct 18 19:04:57 2021 -0400

    Fix formatting

commit 066b3df
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Mon Oct 18 18:30:44 2021 -0400

    Use strict types

commit f9b48fb
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Mon Oct 18 18:13:51 2021 -0400

    Renegerate glTF classes

commit 046cb6a
Merge: 28be767 8453d76
Author: Kevin Ring <kevin@kotachrome.com>
Date:   Wed Oct 13 07:59:55 2021 +1100

    Merge pull request #368 from CesiumGS/rename-generate-classes

    Rename generate-gltf-classes to generate-classes

commit 8453d76
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Tue Oct 12 12:51:55 2021 -0400

    Rename generate-gltf-classes to generate-classes

commit 28be767
Merge: 1f23b7e 163334d
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Tue Oct 12 12:22:59 2021 -0400

    Merge pull request #363 from CesiumGS/add-cesium3dtilesreader

    Add Cesium3DTilesReader project

commit 163334d
Merge: 0169625 1f23b7e
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Tue Oct 12 12:10:48 2021 -0400

    Merge branch 'main' into add-cesium3dtilesreader

commit 1f23b7e
Merge: 1a31661 78224b1
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Tue Oct 12 12:09:22 2021 -0400

    Merge pull request #366 from CesiumGS/fix-includes

    Include style fixes, part 1

commit 78224b1
Merge: 76ab578 1a31661
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Tue Oct 12 11:59:32 2021 -0400

    Merge branch 'main' into fix-includes

commit 1a31661
Merge: 07adee3 179ef66
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Tue Oct 12 11:57:09 2021 -0400

    Merge pull request #362 from CesiumGS/add-cesium3dtiles

    Add Cesium3DTiles project

commit 0169625
Author: Kevin Ring <kevin@kotachrome.com>
Date:   Tue Oct 12 23:37:07 2021 +1100

    Add empty source file to Cesium3DTiles library.

    Otherwise there's no .lib on a clean build, which breaks the build of
    the tests. We could fix that by declaring the library an INTERFACE
    library, but that would require further changes to our cmake config. No
    source files in Cesium3DTiles is probably only temporary, so we'll just
    work around it for now.

commit 07adee3
Merge: f5c2caf 715eebc
Author: Kevin Ring <kevin@kotachrome.com>
Date:   Tue Oct 12 23:33:27 2021 +1100

    Merge pull request #367 from CesiumGS/fix-undefined-description

    Fix `@brief` when schema is missing description

commit 1acc903
Author: Kevin Ring <kevin@kotachrome.com>
Date:   Tue Oct 12 22:38:09 2021 +1100

    Re-add CesiumAsync and CesiumGeometry tests.

commit d7a1972
Author: Kevin Ring <kevin@kotachrome.com>
Date:   Tue Oct 12 22:29:46 2021 +1100

    Re-run 3D Tiles generator.

commit fd1fabd
Merge: 112dd98 76ab578
Author: Kevin Ring <kevin@kotachrome.com>
Date:   Tue Oct 12 22:28:36 2021 +1100

    Merge remote-tracking branch 'origin/fix-includes' into add-cesium3dtilesreader

commit 76ab578
Merge: 439e37a 179ef66
Author: Kevin Ring <kevin@kotachrome.com>
Date:   Tue Oct 12 22:28:12 2021 +1100

    Merge remote-tracking branch 'origin/add-cesium3dtiles' into fix-includes

commit 179ef66
Author: Kevin Ring <kevin@kotachrome.com>
Date:   Tue Oct 12 22:25:58 2021 +1100

    Forward declare ExtensionReaderContext in the right namespace.

commit 112dd98
Author: Kevin Ring <kevin@kotachrome.com>
Date:   Tue Oct 12 22:20:28 2021 +1100

    Remove redundant code.

commit d726c76
Author: Kevin Ring <kevin@kotachrome.com>
Date:   Tue Oct 12 22:08:39 2021 +1100

    Regenerate 3D Tiles JSON handlers.

commit 58cd5d8
Merge: e42108e 439e37a
Author: Kevin Ring <kevin@kotachrome.com>
Date:   Tue Oct 12 22:04:03 2021 +1100

    Merge remote-tracking branch 'origin/fix-includes' into add-cesium3dtilesreader

commit 439e37a
Merge: 52283f3 0c4c7fc
Author: Kevin Ring <kevin@kotachrome.com>
Date:   Tue Oct 12 21:45:12 2021 +1100

    Merge remote-tracking branch 'origin/add-cesium3dtiles' into fix-includes

commit 0c4c7fc
Author: Kevin Ring <kevin@kotachrome.com>
Date:   Tue Oct 12 18:26:26 2021 +1100

    ExtensibleObject is in CesiumUtility namespace.

commit a2d8f3e
Author: Kevin Ring <kevin@kotachrome.com>
Date:   Tue Oct 12 18:06:47 2021 +1100

    Regenerate Cesium3DTiles types.

commit 3443bbf
Author: Kevin Ring <kevin@kotachrome.com>
Date:   Tue Oct 12 17:47:35 2021 +1100

    Remove using in header, remove redundant code.

commit e42108e
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Mon Oct 11 19:15:01 2021 -0400

    Fix include formatting

commit 715eebc
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Mon Oct 11 19:02:36 2021 -0400

    Fix class description when schema is missing description

commit 254d3bf
Merge: 97c37c6 52283f3
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Mon Oct 11 17:51:50 2021 -0400

    Merge branch 'fix-includes' into add-cesium3dtilesreader

commit 52283f3
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Mon Oct 11 17:28:44 2021 -0400

    Fix includes

commit ba737fd
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Mon Oct 11 17:11:29 2021 -0400

    Remove Cesium3DTiles from CesiumNativeTests since there are no source files anymore

commit 7dad700
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Mon Oct 11 16:03:21 2021 -0400

    One ExtensibleObject

commit f6052fd
Merge: 4dbe872 f5c2caf
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Mon Oct 11 14:05:35 2021 -0400

    Merge branch 'main' into add-cesium3dtiles

commit f5c2caf
Merge: 2e17e2b ef9d5c8
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Mon Oct 11 12:45:17 2021 -0400

    Merge pull request #365 from CesiumGS/gltf-no-defaults-for-optional

    Do not initialize optional enum-typed properties

commit ef9d5c8
Merge: 293095c 2e17e2b
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Mon Oct 11 12:33:08 2021 -0400

    Merge branch 'main' into gltf-no-defaults-for-optional

commit 293095c
Author: Marco Hutter <javagl@javagl.de>
Date:   Mon Oct 11 17:16:30 2021 +0200

    Do not initialize optional enum-typed properties

commit 97c37c6
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Sun Oct 10 22:29:25 2021 -0400

    Remove TODOs

commit 471bc06
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Sun Oct 10 19:36:26 2021 -0400

    Add Cesium3DTilesReader

commit 2e17e2b
Merge: 3bf84a7 47a4733
Author: Kevin Ring <kevin@kotachrome.com>
Date:   Mon Oct 11 13:08:33 2021 +1100

    Merge pull request #361 from CesiumGS/generate-3d-tiles

    Update generate-gltf-classes to support 3D Tiles

commit 3bf84a7
Merge: ee5c9f0 a57b438
Author: Kevin Ring <kevin@kotachrome.com>
Date:   Mon Oct 11 13:01:55 2021 +1100

    Merge pull request #360 from CesiumGS/generate-gltf-prettier

    Format generate-gltf-classes with prettier

commit 4dbe872
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Sun Oct 10 18:14:37 2021 -0400

    Add Cesium3DTiles project

commit 47a4733
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Sun Oct 10 17:33:45 2021 -0400

    Update generate-gltf-classes to support 3D Tiles

commit a57b438
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Sun Oct 10 16:55:53 2021 -0400

    Format generate-gltf-classes with prettier

commit ee5c9f0
Merge: c1ddb0f 525f8e1
Author: Kevin Ring <kevin@kotachrome.com>
Date:   Wed Oct 6 12:41:10 2021 +1100

    Merge pull request #351 from CesiumGS/gltf-schema-updates

    Update generated files with newer glTF schema

commit c1ddb0f
Merge: a8232ad 99dbe1e
Author: Kevin Ring <kevin@kotachrome.com>
Date:   Wed Oct 6 12:11:37 2021 +1100

    Merge pull request #354 from CesiumGS/image-error-fixes

    Improved error handling for unhandled image types like WebP

commit 99dbe1e
Author: Kevin Ring <kevin@kotachrome.com>
Date:   Wed Oct 6 11:55:51 2021 +1100

    Update CHANGES.md.

commit 525f8e1
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Sun Oct 3 14:19:14 2021 -0400

    Support const property in anyOf elements

commit 4f2bad8
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Sun Oct 3 12:06:13 2021 -0400

    Fix accidental copy-paste

commit 5d626c7
Author: Marco Hutter <javagl@javagl.de>
Date:   Fri Oct 1 20:33:02 2021 +0200

    Add test case for WebP images

commit 3c62216
Author: Marco Hutter <javagl@javagl.de>
Date:   Fri Oct 1 20:32:26 2021 +0200

    Forward warnings and errors from images to model

commit 1eb4caa
Author: Marco Hutter <javagl@javagl.de>
Date:   Fri Oct 1 20:31:53 2021 +0200

    Allow this special status code of 0.

    This one took several hours of debugging.

commit a8232ad
Author: Kevin Ring <kevin@kotachrome.com>
Date:   Sat Oct 2 01:23:07 2021 +1000

    Bump to v0.8.0, update CHANGES.md.

commit c1b9096
Merge: c81b55b 9695bf4
Author: Kevin Ring <kevin@kotachrome.com>
Date:   Sat Oct 2 01:10:06 2021 +1000

    Merge remote-tracking branch 'origin/main' into gltf-generator-enum-fixes

commit c81b55b
Merge: 2f10a90 ae7d9e7
Author: Marco Hutter <javagl@javagl.de>
Date:   Thu Sep 30 17:35:10 2021 +0200

    Merge branch 'gltf-generator-enum-fixes' of https://github.com/CesiumGS/cesium-native into gltf-generator-enum-fixes

commit 2f10a90
Author: Marco Hutter <javagl@javagl.de>
Date:   Thu Sep 30 17:34:24 2021 +0200

    Added basic (but not sufficient) unit test

commit 9695bf4
Merge: 523adf1 e42e3ca
Author: Kevin Ring <kevin@kotachrome.com>
Date:   Thu Sep 30 22:46:25 2021 +1000

    Merge pull request #349 from CesiumGS/include-style-fixes

    Include style fixes, part 0

commit 523adf1
Merge: 8d92cec 90a7369
Author: Alex Gallegos <39537389+argallegos@users.noreply.github.com>
Date:   Wed Sep 29 09:25:18 2021 -0400

    Merge pull request #352 from CesiumGS/rtc-center-not-double

    Don't ignore RTC_CENTER when it has an integer coordinate value.

commit e42e3ca
Author: Marco Hutter <javagl@javagl.de>
Date:   Tue Sep 28 17:43:20 2021 +0200

    Use relative paths in auto-generated classes

commit 9855400
Author: Marco Hutter <javagl@javagl.de>
Date:   Tue Sep 28 17:23:07 2021 +0200

    Use proper relative paths in all public headers

commit d840015
Author: Marco Hutter <javagl@javagl.de>
Date:   Tue Sep 28 14:49:53 2021 +0200

    Formatting, applied proper order for relative paths

commit 8c7a125
Author: Marco Hutter <javagl@javagl.de>
Date:   Tue Sep 28 14:49:34 2021 +0200

    Update .clang-format for relative paths

commit 50a52ed
Author: Marco Hutter <javagl@javagl.de>
Date:   Tue Sep 28 14:47:55 2021 +0200

    Formatting - WIP

    Noticed a wrong include order, to be fixed with next commits.

commit b0a2b59
Author: Marco Hutter <javagl@javagl.de>
Date:   Tue Sep 28 14:44:47 2021 +0200

    Use proper relative paths in CesiumAsync/Impl

commit 27fdd26
Merge: 62ff744 8d92cec
Author: Marco Hutter <javagl@javagl.de>
Date:   Tue Sep 28 14:38:33 2021 +0200

    Merge remote-tracking branch 'origin/main' into include-style-fixes

    # Conflicts:
    #	Cesium3DTilesSelection/include/Cesium3DTilesSelection/GltfContent.h
    #	Cesium3DTilesSelection/src/Batched3DModelContent.cpp
    #	Cesium3DTilesSelection/src/CompositeContent.cpp
    #	Cesium3DTilesSelection/src/ExternalTilesetContent.cpp
    #	Cesium3DTilesSelection/src/GltfContent.cpp
    #	Cesium3DTilesSelection/src/QuantizedMeshContent.cpp
    #	Cesium3DTilesSelection/src/Tile.cpp
    #	Cesium3DTilesSelection/src/TileContentFactory.cpp
    #	Cesium3DTilesSelection/src/calcQuadtreeMaxGeometricError.h

commit 90a7369
Author: Kevin Ring <kevin@kotachrome.com>
Date:   Tue Sep 28 16:26:43 2021 +1000

    Don't ignore RTC_CENTER when it has an integer coordinate value.

commit 62ff744
Author: Kevin Ring <kevin@kotachrome.com>
Date:   Mon Sep 27 10:46:26 2021 +1000

    Treat `<something.h>` as third-party include.

commit cf5f3b2
Merge: 8dfa62a ae7d9e7
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Sun Sep 26 13:32:30 2021 -0400

    Merge branch 'gltf-generator-enum-fixes' into gltf-schema-updates

commit ae7d9e7
Merge: 0f6645f 8d92cec
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Sun Sep 26 13:24:10 2021 -0400

    Merge branch 'main' into gltf-generator-enum-fixes

commit 175b7ee
Author: Marco Hutter <javagl@javagl.de>
Date:   Sun Sep 26 17:57:48 2021 +0200

    Also format the auto-generated code

    This will sort itself out at some point...

commit 0e827f7
Author: Marco Hutter <javagl@javagl.de>
Date:   Sun Sep 26 17:46:27 2021 +0200

    Updated includes based on clang-format with Regroup

    This MAINLY inserted some blank lines between
    the blocks.

commit d6376b3
Author: Marco Hutter <javagl@javagl.de>
Date:   Sun Sep 26 17:43:03 2021 +0200

    Change clang-format include order to Regroup

commit 8dfa62a
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Sun Sep 26 11:39:10 2021 -0400

    Changes to generated files

commit f917c9e
Author: Sean Lilley <lilleyse@gmail.com>
Date:   Sun Sep 26 11:38:44 2021 -0400

    Update glTF schema links

commit 0f6645f
Author: Marco Hutter <javagl@javagl.de>
Date:   Sun Sep 26 16:53:51 2021 +0200

    Removed the classes from GeneratedJsonHandlers.

    Apparently, all implementations are in one file. Not
    sure where the individual files came from...

commit 5519532
Author: Marco Hutter <javagl@javagl.de>
Date:   Sun Sep 26 16:52:54 2021 +0200

    Initialize members to proper (non-default) values.

commit c2684cb
Author: Marco Hutter <javagl@javagl.de>
Date:   Sun Sep 26 16:52:04 2021 +0200

    Initialize the members with the proper defaults.

    The tests assumed that the enum members are initialized
    with "the first" enum value, if no explicit default value
    was given. In the schema, the "type" is only specified in
    every element of "anyOf" when the type is "integer" (but
    not when it is "string"). Not sure who to blame here...

commit 421bfa2
Author: Marco Hutter <javagl@javagl.de>
Date:   Sun Sep 26 15:16:08 2021 +0200

    Removed magic_enum

commit c73ec55
Author: Marco Hutter <javagl@javagl.de>
Date:   Sun Sep 26 15:11:57 2021 +0200

    Removed magic_enum dependency

    It was only used in CesiumGltfWriter, and is no longer
    required after the glTF enum updates

commit 486eb57
Author: Marco Hutter <javagl@javagl.de>
Date:   Sun Sep 26 15:06:10 2021 +0200

    Update for glTF enums in other classes - WIP

    This updates the non-auto-generated classes based on
    the changes of the auto-generated ones.

commit f63c0e5
Author: Marco Hutter <javagl@javagl.de>
Date:   Sun Sep 26 14:44:29 2021 +0200

    Update of auto-generated classes - WIP

    This does not compile. It is only the update of the
    auto-generated classes, without the corresponding
    updates in the non-auto-generated classes.

commit 8966e91
Author: Marco Hutter <javagl@javagl.de>
Date:   Sun Sep 26 14:41:25 2021 +0200

    Use struct and constexpr, as per review comment

commit 8d92cec
Merge: 20a536a 270a709
Author: Kevin Ring <kevin@kotachrome.com>
Date:   Fri Sep 24 17:50:39 2021 +1000

    Merge pull request #347 from CesiumGS/fix-vs-warnings

    Fix warnings detected by Visual Studio, Part 0

commit 270a709
Merge: 8abb314 20a536a
Author: Kevin Ring <kevin@kotachrome.com>
Date:   Fri Sep 24 17:35:10 2021 +1000

    Merge remote-tracking branch 'origin/main' into fix-vs-warnings

commit 20a536a
Merge: 0ffa662 521fe41
Author: Kevin Ring <kevin@kotachrome.com>
Date:   Fri Sep 24 17:31:16 2021 +1000

    Merge pull request #338 from CesiumGS/async-tile-load

    Make tile content loading asynchronous

commit 521fe41
Author: Kevin Ring <kevin@kotachrome.com>
Date:   Fri Sep 24 17:10:45 2021 +1000

    Update CHANGES.md.

commit acb2294
Merge: 4e13dfa 0ffa662
Author: Kevin Ring <kevin@kotachrome.com>
Date:   Fri Sep 24 17:09:25 2021 +1000

    Merge remote-tracking branch 'origin/main' into async-tile-load

commit 4e13dfa
Author: Kevin Ring <kevin@kotachrome.com>
Date:   Fri Sep 24 17:09:09 2021 +1000

    Doc tweak, remove unused headers.

commit a96ca64
Author: Marco Hutter <javagl@javagl.de>
Date:   Thu Sep 23 01:31:32 2021 +0200

    An attempt to fix the enum typing

commit 8abb314
Author: Marco Hutter <javagl@javagl.de>
Date:   Wed Sep 22 15:47:43 2021 +0200

    Remove const from another rvalue reference parameter

commit 1a46a22
Author: Nithin Pranesh <nithinpra7@gmail.com>
Date:   Wed Sep 22 00:24:53 2021 -0400

    format

commit 73b0945
Author: Nithin Pranesh <nithinpra7@gmail.com>
Date:   Wed Sep 22 00:14:03 2021 -0400

    move loadInput into lambda capture

commit 4042d0b
Author: Nithin Pranesh <nithinpra7@gmail.com>
Date:   Tue Sep 21 13:00:06 2021 -0400

    address review comments

commit 82e1845
Author: Marco Hutter <javagl@javagl.de>
Date:   Tue Sep 21 00:06:44 2021 +0200

    Remove const from rvalue reference parameters

commit fa7f1fd
Author: Marco Hutter <javagl@javagl.de>
Date:   Mon Sep 20 23:51:29 2021 +0200

    Fixed include path based on review comment

commit 8e1637c
Author: Marco Hutter <javagl@javagl.de>
Date:   Sun Sep 19 15:58:41 2021 +0200

    Added include wrapper for tinyxml2

    Similar to the existing spdlog one

commit 01cf105
Author: Marco Hutter <javagl@javagl.de>
Date:   Sun Sep 19 15:43:55 2021 +0200

    Formatting

commit 11048ca
Author: Marco Hutter <javagl@javagl.de>
Date:   Sun Sep 19 15:37:50 2021 +0200

    Include fix for rapidjson

    Accidentally used forwards in implementation

commit 44388cb
Author: Marco Hutter <javagl@javagl.de>
Date:   Sun Sep 19 15:31:57 2021 +0200

    Include style fixes for CesiumUtility

commit d6aca1c
Author: Marco Hutter <javagl@javagl.de>
Date:   Sun Sep 19 15:29:51 2021 +0200

    Include style fixes for CesiumJsonWriter

commit 9cee470
Author: Marco Hutter <javagl@javagl.de>
Date:   Sun Sep 19 15:28:09 2021 +0200

    Include style fixes for CesiumJsonReader

commit 00847ed
Author: Marco Hutter <javagl@javagl.de>
Date:   Sun Sep 19 15:24:32 2021 +0200

    Include style fixes for CesiumIonClient

commit 0f946ac
Author: Marco Hutter <javagl@javagl.de>
Date:   Sun Sep 19 15:22:58 2021 +0200

    Include style fixes for CesiumGeospatial

commit 49781e9
Author: Marco Hutter <javagl@javagl.de>
Date:   Sun Sep 19 15:18:58 2021 +0200

    Include style fixes for CesiumGeometry

commit 6a6b3b6
Author: Marco Hutter <javagl@javagl.de>
Date:   Sun Sep 19 15:15:13 2021 +0200

    Include style fixes for CesiumAsync

commit 281e527
Author: Marco Hutter <javagl@javagl.de>
Date:   Sun Sep 19 15:12:26 2021 +0200

    Include style fixes for Cesium3DTilesSelection, part 2

commit fa09b16
Author: Marco Hutter <javagl@javagl.de>
Date:   Sun Sep 19 15:05:40 2021 +0200

    Include style fixes for Cesium3DTilesSelection

commit 27de1cc
Author: Marco Hutter <javagl@javagl.de>
Date:   Fri Sep 17 21:26:17 2021 +0200

    Update for resolved merge conflict

commit bb48dd1
Merge: 7586c10 0ffa662
Author: Marco Hutter <javagl@javagl.de>
Date:   Fri Sep 17 21:25:48 2021 +0200

    Merge remote-tracking branch 'origin/main' into fix-vs-warnings

    # Conflicts:
    #	Cesium3DTilesSelection/src/Tileset.cpp

commit 7586c10
Author: Marco Hutter <github@marco-hutter.de>
Date:   Fri Sep 17 21:19:29 2021 +0200

    Use helper for underlying_type, from review suggestion

    Co-authored-by: Kevin Ring <kevin@kotachrome.com>

commit 3bd8805
Author: Marco Hutter <github@marco-hutter.de>
Date:   Fri Sep 17 21:17:53 2021 +0200

    Use rvalue, based on review comment

    Co-authored-by: Kevin Ring <kevin@kotachrome.com>

commit 3f6d0ab
Author: Nithin Pranesh <nithinpra7@gmail.com>
Date:   Thu Sep 16 10:58:13 2021 -0400

    format

commit 2898882
Author: Nithin Pranesh <nithinpra7@gmail.com>
Date:   Thu Sep 16 10:42:17 2021 -0400

    address review comments, simplify TileContentLoadInput

commit db0392d
Author: Nithin Pranesh <nithinpra7@gmail.com>
Date:   Wed Sep 15 21:30:22 2021 -0400

    remove two lines that had no effect

commit dbcbce9
Author: Nithin Pranesh <nithinpra7@gmail.com>
Date:   Wed Sep 15 21:24:20 2021 -0400

    remove this from lambda capture

commit 9c8ae58
Author: Marco Hutter <javagl@javagl.de>
Date:   Wed Sep 15 17:44:12 2021 +0200

    Formatting after const parameters

commit 6a5e0d3
Author: Marco Hutter <javagl@javagl.de>
Date:   Wed Sep 15 17:43:42 2021 +0200

    Added missing const for reference parameters

    C26460: The reference argument ... for function ... can be marked as const

commit cdae0aa
Author: Nithin Pranesh <nithinpra7@gmail.com>
Date:   Wed Sep 15 11:04:51 2021 -0400

    fix test, removed lambda workaround in Tile.cpp

commit 106c306
Author: Marco Hutter <javagl@javagl.de>
Date:   Wed Sep 15 17:03:56 2021 +0200

    Formatting after adding noexcept specifiers

commit 3e75d1f
Author: Marco Hutter <javagl@javagl.de>
Date:   Wed Sep 15 17:03:15 2021 +0200

    Added further missing noexcept specifiers

    C26440: Function ... can be declared noexcept

commit 2b46219
Author: Marco Hutter <javagl@javagl.de>
Date:   Wed Sep 15 16:53:38 2021 +0200

    Convert enum class to underlying type

commit e998f1f
Author: Marco Hutter <javagl@javagl.de>
Date:   Wed Sep 15 16:27:39 2021 +0200

    Fixed wrong parameter type

    C6330: 'char' passed as _Param_(1) when 'unsigned char'
    is required in call to 'isspace'.

commit ea8acbc
Author: Marco Hutter <javagl@javagl.de>
Date:   Wed Sep 15 16:24:58 2021 +0200

    Formatting after avoiding unnecessary copy

commit 7d535b5
Author: Marco Hutter <javagl@javagl.de>
Date:   Wed Sep 15 16:24:33 2021 +0200

    Avoided unnecessary copy

    C26817: Potentially expensive copy of variable ... in
    range-for loop. Consider making it a const reference.

commit 3a10d40
Author: Marco Hutter <javagl@javagl.de>
Date:   Wed Sep 15 16:22:03 2021 +0200

    Made Axis an enum class

    C26812: The enum type ... is unscoped. Prefer 'enum class' over 'enum'

commit 47d49ec
Author: Marco Hutter <javagl@javagl.de>
Date:   Wed Sep 15 16:20:35 2021 +0200

    Changed const to constexpr

    C26814: The const variable ... can be computed at compile-time.
    Consider using constexpr

commit 17abaee
Author: Marco Hutter <javagl@javagl.de>
Date:   Wed Sep 15 16:14:15 2021 +0200

    Formatting after initializing member variables

commit 0e1e2f3
Author: Marco Hutter <javagl@javagl.de>
Date:   Wed Sep 15 16:13:48 2021 +0200

    Initialized member variables

commit e15d172
Author: Kevin Ring <kevin@kotachrome.com>
Date:   Wed Sep 15 23:55:37 2021 +1000

    Formatting.

commit 3298756
Author: Kevin Ring <kevin@kotachrome.com>
Date:   Wed Sep 15 23:54:09 2021 +1000

    Allow unwrapped Future continuations to be mutable.

commit 46c9c7e
Author: Marco Hutter <javagl@javagl.de>
Date:   Wed Sep 15 15:38:06 2021 +0200

    Formatting after adding const

commit de8145a
Author: Marco Hutter <javagl@javagl.de>
Date:   Wed Sep 15 15:37:29 2021 +0200

    Added missing const keyword

    C26496: The variable ... is assigned only once, mark it as const

commit 84a6e70
Author: Nithin Pranesh <nithinpra7@gmail.com>
Date:   Wed Sep 15 09:12:05 2021 -0400

    make inner tiles merging happen on worker thread

commit a84b09c
Author: Marco Hutter <javagl@javagl.de>
Date:   Wed Sep 15 02:35:40 2021 +0200

    Added further noexcept specifiers

commit 588c5a1
Author: Marco Hutter <javagl@javagl.de>
Date:   Wed Sep 15 01:35:34 2021 +0200

    Add noexcept for default constructors

    C26455: Default constructor may not throw.

commit 5949134
Author: Marco Hutter <javagl@javagl.de>
Date:   Wed Sep 15 00:54:54 2021 +0200

    Fixed noexcept specifiers

    It's hard to make them consisten for the JSON part...

commit f37a1db
Author: Nithin Pranesh <nithinpra7@gmail.com>
Date:   Tue Sep 14 12:05:15 2021 -0400

    TileContentLoadInput is now the only argument for content loading

commit 97a2757
Author: Marco Hutter <javagl@javagl.de>
Date:   Tue Sep 14 16:12:50 2021 +0200

    Added missing noexcept specifiers

    Reported as "C26440 Function ... can be declared noexcept"

commit 0ffa662
Author: Kevin Ring <kevin@kotachrome.com>
Date:   Tue Sep 14 20:39:16 2021 +1000

    Bump version and update CHANGES.md.

commit e97ac52
Merge: 6f441f2 56fb8ac
Author: Kevin Ring <kevin@kotachrome.com>
Date:   Tue Sep 14 20:37:24 2021 +1000

    Merge pull request #336 from CesiumGS/fix-forbid-holes

    Fix for "Forbid Holes" not working

commit 56fb8ac
Merge: 3d90117 6f441f2
Author: Kevin Ring <kevin@kotachrome.com>
Date:   Tue Sep 14 20:36:28 2021 +1000

    Merge branch 'main' into fix-forbid-holes

commit 6f441f2
Author: Kevin Ring <kevin@kotachrome.com>
Date:   Tue Sep 14 16:00:48 2021 +1000

    Bump version, tweak CHANGES.md.

commit be1d76c
Author: Nithin Pranesh <nithinpra7@gmail.com>
Date:   Tue Sep 14 01:32:36 2021 -0400

    wip, some cleanup/workarounds in Tile.cpp async code

commit 835de62
Author: Nithin Pranesh <nithinpra7@gmail.com>
Date:   Mon Sep 13 14:12:39 2021 -0400

    improve async logic in Tile.cpp

commit d3e90d0
Merge: 51e4b17 388ed45
Author: Kevin Ring <kevin@kotachrome.com>
Date:   Mon Sep 13 22:49:07 2021 +1000

    Merge pull request #335 from CesiumGS/unconditional-refine

    Fixed external tilesets not loading when frustum culling was disabled

commit e46184a
Author: Nithin Pranesh <nithinpra7@gmail.com>
Date:   Thu Sep 9 08:31:18 2021 -0400

    changes + remove extraneous newline

commit 3d90117
Author: Nithin Pranesh <nithinpra7@gmail.com>
Date:   Thu Sep 9 08:26:10 2021 -0400

    changes correction

commit b7b6175
Author: Nithin Pranesh <nithinpra7@gmail.com>
Date:   Thu Sep 9 08:23:28 2021 -0400

    changes.md

commit e5b7323
Author: Nithin Pranesh <nithinpra7@gmail.com>
Date:   Thu Sep 9 07:54:22 2021 -0400

    fix forbid holes for external tilesets

commit 8f5291e
Author: Nithin Pranesh <nithinpra7@gmail.com>
Date:   Thu Sep 9 07:31:28 2021 -0400

    update test to expect LoadState::Failed without a failcallback

commit 388ed45
Author: Nithin Pranesh <nithinpra7@gmail.com>
Date:   Thu Sep 9 07:02:00 2021 -0400

    let geometric error of infinity signal unconditional refinement

commit 2a9538d
Author: Nithin Pranesh <nithinpra7@gmail.com>
Date:   Wed Sep 8 13:44:48 2021 -0400

    fix pessimizing-moves

commit b762be0
Author: Nithin Pranesh <nithinpra7@gmail.com>
Date:   Wed Sep 8 13:29:26 2021 -0400

    pass asset accessor and request headers to tile content loading

commit b68440a
Author: Nithin Pranesh <nithinpra7@gmail.com>
Date:   Wed Sep 8 12:14:57 2021 -0400

    don't pass functions as references in lambda capture

commit 98b65c0
Author: Nithin Pranesh <nithinpra7@gmail.com>
Date:   Tue Sep 7 14:52:11 2021 -0400

    fix cherry-pick, format

commit 2851783
Author: Nithin Pranesh <nithinpra7@gmail.com>
Date:   Fri Jun 4 15:18:08 2021 -0400

    _attempt_ to use futures for the tile content loader interface

    lots of difficulties popping up in this refactor

commit c8a2f1a
Author: Nithin Pranesh <nithinpra7@gmail.com>
Date:   Fri Sep 3 18:32:06 2021 -0400

    don't call Tile::update before tile's content is loaded

commit 64c287e
Author: Nithin Pranesh <nithinpra7@gmail.com>
Date:   Fri Sep 3 16:54:05 2021 -0400

    remove extraneous change

commit f8bfc54
Author: Nithin Pranesh <nithinpra7@gmail.com>
Date:   Fri Sep 3 16:53:18 2021 -0400

    better solution?

commit cbb6e28
Author: Nithin Pranesh <nithinpra7@gmail.com>
Date:   Fri Sep 3 15:05:23 2021 -0400

    fix gcc/clang issue

commit 1b394b9
Author: Nithin Pranesh <nithinpra7@gmail.com>
Date:   Fri Sep 3 14:29:48 2021 -0400

    work-around "Forbid Holes" not working

    Children were not considered "renderable" even though their content and rasters were
    loaded. This happened since the loaded rasters hadn't yet had a chance to be marked
    ready. Forbid Holes was keeping the children from being visited and so
    Tile::update -> RasterMappedTo3DTile::update were not being called, and so even when
    rasters were loaded they couldn't be marked ready. Since the children were not being
    considered renderable, Forbid Holes forced the parents to wait indefinitely for the
    children before refining.

commit b5f8784
Author: Nithin Pranesh <nithinpra7@gmail.com>
Date:   Fri Sep 3 11:40:34 2021 -0400

    fix comment and tests

commit 0f222d6
Author: Nithin Pranesh <nithinpra7@gmail.com>
Date:   Fri Sep 3 11:14:35 2021 -0400

    Fixed external tilesets not loading when frustum culling was disabled
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants