Commit Graph

503 Commits

Author SHA1 Message Date
Kevin Ring bf00407f90 Add missing include. 2021-04-15 10:22:56 +10:00
Kevin Ring 0c7c949ce8 Remove unused code. 2021-04-15 09:47:33 +10:00
Kevin Ring 45f44fa034 Reader -> GltfReader. 2021-04-15 00:37:37 +10:00
Kevin Ring e414544b50 Implement glTF reader using JSON reader. 2021-04-14 23:53:26 +10:00
Kevin Ring fc4f25515f JSON reader. 2021-04-14 23:31:40 +10:00
Kevin Ring 15f799429a More renames. 2021-04-14 21:38:36 +10:00
Kevin Ring cb91ccf8a6 JsonReader -> JsonHandler ♻ 2021-04-14 18:31:12 +10:00
Kevin Ring 94ea03847c Move CesiumJsonReader stuff to the right namespace. 2021-04-14 14:22:22 +10:00
Kevin Ring 88795c0045 Move JsonValue to CesiumUtility. 2021-04-13 23:24:53 +10:00
Kevin Ring 222692b590 Separate CesiumJsonReader library. 2021-04-13 22:05:36 +10:00
Jordi Torres 6333b1cb0a First pass of clang tidy
Mainly caching else after return, not using empty() instead of size() == 0, missing const references to avoid copies and removing redundant initializations
2021-04-12 13:22:03 +02:00
Kevin Ring f0b06a826d Make IgnoreValueJsonHandler public. 2021-04-09 12:37:53 +10:00
Kevin Ring 673e9884a1 Renames. 2021-04-09 12:30:27 +10:00
Kevin Ring cfff453f8c Rename protected key methods. 2021-04-08 22:34:12 +10:00
Kevin Ring 2ab38cd0fb Don't qualify reader methods in extensions. 2021-04-08 22:26:22 +10:00
Kevin Ring ebfb30554a Fix linux build. 2021-04-08 22:20:24 +10:00
Kevin Ring 48f2d3b5c2 Remove unused files, other cleanup. 2021-04-08 21:59:42 +10:00
Kevin Ring 7279f4cabf Improve tests. 2021-04-08 17:59:45 +10:00
Kevin Ring e3148aedc6 Reactivate Draco extension. 2021-04-08 14:44:39 +10:00
Kevin Ring f33f7b1dd5 Make CesiumGltf::Reader a proper class, mange its own extensions. 2021-04-07 23:41:37 +10:00
Kevin Ring 3566ba5b29 Clean up JsonReader function signatures. 2021-04-07 14:35:19 +10:00
Samuel Vargas f9e489f67f
Merge remote-tracking branch 'origin/main' into gltf-writer
Accidentally merged with antiquated `master` branch before
2021-04-06 14:16:55 -04:00
Samuel Vargas 6516b2dcb3
Add clarifying comment for std::transform usage 2021-04-06 13:44:34 -04:00
Samuel Vargas b03dac82af
Add trailing newline to misc files [ skip ci ] 2021-04-06 13:07:48 -04:00
Kevin Ring d6d9de643d Rename JsonReader methods. 2021-04-06 22:26:16 +10:00
Kevin Ring 04f4cc12db JsonHandler -> JsonReader. 2021-04-06 21:59:20 +10:00
Kevin Ring c8c9ca0f3a Make IJsonHandler.h and JsonHandler.h public. 2021-04-06 21:55:50 +10:00
Kevin Ring 987ca69614 Support for external glTF extensions. 2021-04-06 21:49:12 +10:00
Kevin Ring 692a3bf16b Merge remote-tracking branch 'origin/main' into support-deserializing-arbitrary-extensions 2021-04-05 11:57:45 +10:00
Marco Hutter 0ba6f38be5 Fixed typo. 2021-04-02 21:43:45 +02:00
Marco Hutter aeeb44e804 Added cast.
Expected that. GCC this time.
2021-04-02 21:42:23 +02:00
Marco Hutter 7425d5a89a Updated and extended error messages 2021-04-02 21:14:43 +02:00
Bao Tran 9c5de37499 add TRACE for Gltf reader 2021-03-25 13:25:03 -04:00
Samuel Vargas 11413ee747
Run clang-format on all changed files 2021-03-11 15:15:59 -05:00
Samuel Vargas 258f1a1993
Add test to verify deserializeExtensionsAsJsonValue is respected 2021-03-11 15:01:01 -05:00
Samuel Vargas f81dd2c218
Use references to avoid extraneous copies. 2021-03-11 14:40:13 -05:00
Samuel Vargas f685ceff51
Propagate `ReadModelOptions` to ALL JsonHandlers
This commit adds conditional support for propagating the
`ReadModelOptions` variable to the root JsonValue class for all of
its children. CesiumGltfReader was designed with the philosophy that
extensions should be well defined and that CesiumGltfReader should
take responsbility for decoding extensions. This is a fine idea, but we've
ran into a usecase where we need CesiumGltfReader to support decoding
new / developing / unknown / WIP extensions.

This commit adds the `deserializeExtensionsAsJsonValue` bool to ReadModelOptions
and for each ***JsonHandler, forwards it to the root via super() constructor invocations.
This opens the door for other  "while serializing" options to be stored in
ReadModelOptions

The deserializeExtensionsAsJsonValue variable itself instructs CesiumGltfReader
to add any extensions it encounters in the Gltf string as a `JsonValue::Object` inside
the std::vector<std::any>, so that users of the libraries can retrieve it and do their
own casting.
2021-03-11 14:30:11 -05:00
Samuel Vargas eb3cb751bf
Always serialize extensions as a JsonValue::Object for clients to
use directly.

(This will be wrapped in a conditional flag in the next commit)
2021-03-11 09:41:03 -05:00
Kevin Ring c0225f0e7d Flesh out JSON array test. 2021-03-11 10:09:55 +11:00
Kevin Ring d671ae6ee8 Remove unnecessary header. 2021-03-11 10:03:32 +11:00
Kevin Ring 5a3c10a020 Correctly handle elements inside JSON arrays. 2021-03-11 10:02:15 +11:00
Samuel Vargas 94c77dd89e
Merge tag 'post-clang-format' into gltf-writer-clang-format
The commit that ran clang-format on the entire codebase and made no other changes.
2021-03-09 16:36:39 -05:00
Shehzan Mohammed 8a2957d32f Run clang format 2021-03-08 20:39:46 -05:00
Samuel Vargas 30057e9539
Fix casting warning in Reader.cpp 2021-03-05 10:40:12 -05:00
Samuel Vargas 506f76c34b
Use std::byte for image.cesium.pixelData 2021-03-05 10:04:10 -05:00
Samuel Vargas c4f6025420
Add integer support to JsonValue
This also fixes a narrowing conversion bug. Previously if
a type that was larger than 2^53 was stored in a JsonValue
it would be silently casted into a double, causing an unexpected
precision loss. This changes JsonValue to use the largest signed,
unsigned, or floating point value available to support both types
of Numbers.

Also updates GSL version because they added a narrowing cast
function and we use that for safe type casting.
2021-03-05 07:41:15 -05:00
Kevin Ring 589a0098fc
Merge pull request #145 from CesiumGS/install
Add ability to CMake install cesium-native
2021-03-05 16:03:29 +11:00
Kevin Ring 00dde7cd9c
Merge pull request #148 from CesiumGS/use-std-byte
Use bytes for raw data
2021-03-05 14:57:30 +11:00
Shehzan Mohammed b97f03d514 Fix Cmake typos 2021-03-04 16:52:06 -05:00
Marco Hutter f1078aeb4c Use bytes for raw data 2021-03-04 17:22:38 +01:00
Shehzan Mohammed 887744202d Remove other PRIVATE flags from link libraries 2021-03-04 10:50:19 -05:00
Shehzan Mohammed 3faff010d7 Installing thirdparty deps working on linux 2021-03-03 20:47:31 -05:00
Kevin Ring 34bbd2aa31 WIP cmake install. 2021-03-04 09:48:09 +11:00
Marco Hutter 60b6a4651e Initialize member of handlers 2021-03-03 18:08:04 +01:00
Samuel Vargas 5d03477551
Rearchitecture cesium-native's CMake structure
This is necessary to support using cesium-native as submodule in
in asset-pipeline

- `draco` and `sqlite3` are guarded with if target blocks to allow
  asset-pipeline to provide their own version of the targets.
- Tests are now a dedicated target that clients don't have to build
- Test sources / headers are now a target property instead of using the $<BUILD_INTERFACE... hack
- Added common include variables in extern/CMakeLists.txt
- Defined `RAPIDJSON_HAS_CXX11_RVALUE_REFS` for move support for RapidJson
- Private include directories are automatically extracted via CMake magic
  for use in catch tests
- Globbing is now wrapped in a dedicated function that allows one to use
  CONFIGURE_DEPENDS depending on their preferences (defaults to OFF)
  to retain the old behavior.
2021-03-02 14:28:04 -05:00
Kevin Ring 4d31c3ef62
Merge pull request #139 from CesiumGS/ion-ui-oauth2
Add CesiumIonClient library
2021-03-02 17:55:44 +11:00
unknown a32ae4b9c6 Merge branch 'master' into selection-test 2021-03-01 09:53:06 -05:00
Kevin Ring 92eb8ae1de Include `state` in OAuth2 handshake. 2021-02-28 22:12:56 +11:00
Kevin Ring a69628b785 Merge remote-tracking branch 'origin/master' into ion-ui 2021-02-24 12:59:44 +11:00
Kevin Ring 405efb7069 Line endings. 2021-02-17 16:38:09 +11:00
Marco Hutter 67dce23a30 Doxygen fixes 2021-02-15 17:14:49 +01:00
Kevin Ring dea63a13e1 Make CesiumGltfReader depend on CesiumUtility. 2021-02-12 11:48:58 +11:00
unknown f139ca92a6 auto generating test data macro 2021-02-09 17:09:57 -05:00
Kevin Ring d10bd2a16d Move JsonHelps to CesiumUtility, at ion "me" service. 2021-02-09 22:50:18 +11:00
Kevin Ring 5a374707b0 Merge remote-tracking branch 'origin/gltf' into cmpt 2021-01-29 16:34:47 +11:00
Kevin Ring e692908f28 Fix gcc warning. 2021-01-28 17:14:21 +11:00
Kevin Ring 92af1b4b67 Fix gcc/clang warning. 2021-01-28 16:37:34 +11:00
Kevin Ring 2932b5652b Add test for decoding data urls. 2021-01-28 16:25:52 +11:00
Kevin Ring 53804f921b Merge remote-tracking branch 'origin/gltf' into cmpt 2021-01-28 10:22:18 +11:00
Kevin Ring 243f48680b Add base64 decoding.
Mostly untested at the moment.
2021-01-27 23:52:43 +11:00
unknown fab67810d6 use unsigned int if num of draco vertices over max uint16_t 2021-01-26 17:41:30 -05:00
unknown 1087f4fc6c initialize draco accessor index to be unsigned byte 2021-01-26 17:38:02 -05:00
unknown b8a22346b4 only use unsigned type for draco indices 2021-01-26 17:20:17 -05:00
unknown 19bec58b3d Merge branch 'cmpt' into draco-index-upgrade 2021-01-25 12:37:12 -05:00
unknown 549ed2979c upgrade draco index 2021-01-25 11:31:30 -05:00
Kevin Ring eee83c9e77 Remove extraneous namespace qualification. 2021-01-25 15:37:04 +11:00
Kevin Ring 7ef8d428d3 WIP decoding of data URIs. 2021-01-25 15:24:11 +11:00
Kevin Ring 28b64347b7 Incorporate changes from review and from the cmpt branch. 2021-01-25 12:17:13 +11:00
Kevin Ring 7a2b097525 Support multiple b3dms in a cmpt. 2021-01-21 18:45:09 +11:00
Kevin Ring 8d0b1f9210 Move and rename test. 2021-01-20 19:55:34 +11:00
Kevin Ring 56feb198df List of errors and warnings instead of a single string for each. 2021-01-20 19:32:14 +11:00
Kevin Ring 3fe36a7c7b Fix GCC build problems. 2021-01-20 17:30:01 +11:00
Kevin Ring 8fdc7518b9 Fix Clang problems. 2021-01-20 17:25:00 +11:00
Kevin Ring 6147e0bf11 Clear arrays in StartArray. 2021-01-20 14:27:06 +11:00
Kevin Ring 3bd988f0e4 Remove Helpers entirely. 2021-01-18 23:22:12 +11:00
Kevin Ring 11ea3103b0 Optional properties, thorough initialization. 2021-01-17 00:18:00 +11:00
Kevin Ring edb8fe209b Add extras, reactivate support for RTC_CENTER. 2021-01-14 17:44:19 +11:00
Kevin Ring cc973071ad Cleanup. 2021-01-13 15:55:46 +11:00
Kevin Ring e28f181d6c Remove unnecessary map. 2021-01-13 15:50:48 +11:00
Kevin Ring c999c7628b Load embedded images. 2021-01-12 21:57:42 +11:00
Kevin Ring 6a6d2d94de Draco loading. 2021-01-12 21:40:35 +11:00
Kevin Ring 2b2c4a8b16 Add support for extensions, especially Draco. 2021-01-11 18:05:02 +11:00
Kevin Ring 32f0c371ea Raster image loading. 2021-01-08 23:10:27 +11:00
Kevin Ring 7f914afd4d Improve error handling for arrays. 2021-01-08 17:47:39 +11:00
Kevin Ring 08d173d573 Use CesiumGltf instead of tinygltf. 2021-01-08 14:09:08 +11:00
Kevin Ring 3f6e301acf GLB support. 2021-01-07 22:17:55 +11:00
Kevin Ring 32dca3f5d8 Improved error reporting. 2021-01-06 20:56:53 +11:00
Kevin Ring 068df1c3ef Improve error handling. 2021-01-06 13:00:54 +11:00
Kevin Ring 87a030abe3 Generated classes now compiling. 2021-01-06 11:57:32 +11:00
Kevin Ring e49e6552a9 Deserialize materials. 2021-01-04 23:26:47 +11:00
Kevin Ring a67ed6a6ca Add support for primitive targets. 2021-01-04 22:32:35 +11:00
Kevin Ring e4a69c6559 Support attributes, names. 2021-01-04 22:21:54 +11:00
Kevin Ring ae16a4888f Separate files for glTF reader PoC. 2021-01-04 17:41:37 +11:00