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

Add MAXAR_mesh_variants extension #465

Merged
merged 6 commits into from
Mar 22, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ option(BUILD_SHARED_LIBS "Build shared libraries" OFF)

function(configure_cesium_library targetName)
if (MSVC)
target_compile_options(${targetName} PRIVATE /W4 /WX /wd4201)
target_compile_options(${targetName} PRIVATE /W4 /WX /wd4201 /bigobj)
else()
target_compile_options(${targetName} PRIVATE -Werror -Wall -Wextra -Wconversion -Wpedantic -Wshadow -Wsign-conversion)
endif()
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
// This file was generated by generate-classes.
// DO NOT EDIT THIS FILE!
#pragma once

#include "CesiumGltf/ExtensionModelMaxarMeshVariantsValue.h"
#include "CesiumGltf/Library.h"

#include <CesiumUtility/ExtensibleObject.h>

#include <cstdint>
#include <vector>

namespace CesiumGltf {
/**
* @brief glTF extension that defines mesh variants for nodes
*/
struct CESIUMGLTF_API ExtensionModelMaxarMeshVariants final
: public CesiumUtility::ExtensibleObject {
static inline constexpr const char* TypeName =
"ExtensionModelMaxarMeshVariants";
static inline constexpr const char* ExtensionName = "MAXAR_mesh_variants";

/**
* @brief The index of the variant to load by default. The meshes that are
* mapped to the default variant must represent the set of meshes initially
* selected by the nodes for rendering, as per vanilla glTF behavior.
*/
int32_t defaultProperty = -1;

/**
* @brief variants
*/
std::vector<CesiumGltf::ExtensionModelMaxarMeshVariantsValue> variants;
};
} // namespace CesiumGltf
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
// This file was generated by generate-classes.
// DO NOT EDIT THIS FILE!
#pragma once

#include "CesiumGltf/Library.h"
#include "CesiumGltf/NamedObject.h"

#include <string>

namespace CesiumGltf {
/**
* @brief An object defining a valid mesh variant
*/
struct CESIUMGLTF_API ExtensionModelMaxarMeshVariantsValue final
: public CesiumGltf::NamedObject {
static inline constexpr const char* TypeName =
"ExtensionModelMaxarMeshVariantsValue";

/**
* @brief The name of the mesh variant
*/
std::string name;
};
} // namespace CesiumGltf
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
// This file was generated by generate-classes.
// DO NOT EDIT THIS FILE!
#pragma once

#include "CesiumGltf/ExtensionNodeMaxarMeshVariantsMappingsValue.h"
#include "CesiumGltf/Library.h"

#include <CesiumUtility/ExtensibleObject.h>

#include <vector>

namespace CesiumGltf {
/**
* @brief MAXAR_mesh_variants node extension
*/
struct CESIUMGLTF_API ExtensionNodeMaxarMeshVariants final
: public CesiumUtility::ExtensibleObject {
static inline constexpr const char* TypeName =
"ExtensionNodeMaxarMeshVariants";
static inline constexpr const char* ExtensionName = "MAXAR_mesh_variants";

/**
* @brief A list of mesh to variant mappings
*/
std::vector<CesiumGltf::ExtensionNodeMaxarMeshVariantsMappingsValue> mappings;
};
} // namespace CesiumGltf
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
// This file was generated by generate-classes.
// DO NOT EDIT THIS FILE!
#pragma once

#include "CesiumGltf/Library.h"

#include <CesiumUtility/ExtensibleObject.h>

#include <cstdint>
#include <optional>
#include <string>
#include <vector>

namespace CesiumGltf {
/**
* @brief ExtensionNodeMaxarMeshVariants Mappings Value
*/
struct CESIUMGLTF_API ExtensionNodeMaxarMeshVariantsMappingsValue final
: public CesiumUtility::ExtensibleObject {
static inline constexpr const char* TypeName =
"ExtensionNodeMaxarMeshVariantsMappingsValue";

/**
* @brief An array of variant index values.
*/
std::vector<int32_t> variants;

/**
* @brief The mesh associated with the set of variants.
*/
int32_t mesh = -1;

/**
* @brief The user-defined name of this variant mesh mapping.
*/
std::optional<std::string> name;
};
} // namespace CesiumGltf
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
// This file was generated by generate-classes.
// DO NOT EDIT THIS FILE!
#pragma once

#include "ExtensionModelMaxarMeshVariantsValueJsonHandler.h"

#include <CesiumGltf/ExtensionModelMaxarMeshVariants.h>
#include <CesiumJsonReader/ArrayJsonHandler.h>
#include <CesiumJsonReader/ExtensibleObjectJsonHandler.h>
#include <CesiumJsonReader/IntegerJsonHandler.h>

namespace CesiumJsonReader {
class ExtensionReaderContext;
}

namespace CesiumGltfReader {
class ExtensionModelMaxarMeshVariantsJsonHandler
: public CesiumJsonReader::ExtensibleObjectJsonHandler,
public CesiumJsonReader::IExtensionJsonHandler {
public:
using ValueType = CesiumGltf::ExtensionModelMaxarMeshVariants;

static inline constexpr const char* ExtensionName = "MAXAR_mesh_variants";

ExtensionModelMaxarMeshVariantsJsonHandler(
const CesiumJsonReader::ExtensionReaderContext& context) noexcept;
void reset(
IJsonHandler* pParentHandler,
CesiumGltf::ExtensionModelMaxarMeshVariants* pObject);

virtual IJsonHandler* readObjectKey(const std::string_view& str) override;

virtual void reset(
IJsonHandler* pParentHandler,
CesiumUtility::ExtensibleObject& o,
const std::string_view& extensionName) override;

virtual IJsonHandler* readNull() override {
return CesiumJsonReader::ExtensibleObjectJsonHandler::readNull();
};
virtual IJsonHandler* readBool(bool b) override {
return CesiumJsonReader::ExtensibleObjectJsonHandler::readBool(b);
}
virtual IJsonHandler* readInt32(int32_t i) override {
return CesiumJsonReader::ExtensibleObjectJsonHandler::readInt32(i);
}
virtual IJsonHandler* readUint32(uint32_t i) override {
return CesiumJsonReader::ExtensibleObjectJsonHandler::readUint32(i);
}
virtual IJsonHandler* readInt64(int64_t i) override {
return CesiumJsonReader::ExtensibleObjectJsonHandler::readInt64(i);
}
virtual IJsonHandler* readUint64(uint64_t i) override {
return CesiumJsonReader::ExtensibleObjectJsonHandler::readUint64(i);
}
virtual IJsonHandler* readDouble(double d) override {
return CesiumJsonReader::ExtensibleObjectJsonHandler::readDouble(d);
}
virtual IJsonHandler* readString(const std::string_view& str) override {
return CesiumJsonReader::ExtensibleObjectJsonHandler::readString(str);
}
virtual IJsonHandler* readObjectStart() override {
return CesiumJsonReader::ExtensibleObjectJsonHandler::readObjectStart();
}
virtual IJsonHandler* readObjectEnd() override {
return CesiumJsonReader::ExtensibleObjectJsonHandler::readObjectEnd();
}
virtual IJsonHandler* readArrayStart() override {
return CesiumJsonReader::ExtensibleObjectJsonHandler::readArrayStart();
}
virtual IJsonHandler* readArrayEnd() override {
return CesiumJsonReader::ExtensibleObjectJsonHandler::readArrayEnd();
}
virtual void reportWarning(
const std::string& warning,
std::vector<std::string>&& context =
std::vector<std::string>()) override {
CesiumJsonReader::ExtensibleObjectJsonHandler::reportWarning(
warning,
std::move(context));
}

protected:
IJsonHandler* readObjectKeyExtensionModelMaxarMeshVariants(
const std::string& objectType,
const std::string_view& str,
CesiumGltf::ExtensionModelMaxarMeshVariants& o);

private:
CesiumGltf::ExtensionModelMaxarMeshVariants* _pObject = nullptr;
CesiumJsonReader::IntegerJsonHandler<int32_t> _defaultProperty;
CesiumJsonReader::ArrayJsonHandler<
CesiumGltf::ExtensionModelMaxarMeshVariantsValue,
ExtensionModelMaxarMeshVariantsValueJsonHandler>
_variants;
};
} // namespace CesiumGltfReader
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
// This file was generated by generate-classes.
// DO NOT EDIT THIS FILE!
#pragma once

#include "NamedObjectJsonHandler.h"

#include <CesiumGltf/ExtensionModelMaxarMeshVariantsValue.h>
#include <CesiumJsonReader/StringJsonHandler.h>

namespace CesiumJsonReader {
class ExtensionReaderContext;
}

namespace CesiumGltfReader {
class ExtensionModelMaxarMeshVariantsValueJsonHandler
: public CesiumGltfReader::NamedObjectJsonHandler {
public:
using ValueType = CesiumGltf::ExtensionModelMaxarMeshVariantsValue;

ExtensionModelMaxarMeshVariantsValueJsonHandler(
const CesiumJsonReader::ExtensionReaderContext& context) noexcept;
void reset(
IJsonHandler* pParentHandler,
CesiumGltf::ExtensionModelMaxarMeshVariantsValue* pObject);

virtual IJsonHandler* readObjectKey(const std::string_view& str) override;

protected:
IJsonHandler* readObjectKeyExtensionModelMaxarMeshVariantsValue(
const std::string& objectType,
const std::string_view& str,
CesiumGltf::ExtensionModelMaxarMeshVariantsValue& o);

private:
CesiumGltf::ExtensionModelMaxarMeshVariantsValue* _pObject = nullptr;
CesiumJsonReader::StringJsonHandler _name;
};
} // namespace CesiumGltfReader
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
// This file was generated by generate-classes.
// DO NOT EDIT THIS FILE!
#pragma once

#include "ExtensionNodeMaxarMeshVariantsMappingsValueJsonHandler.h"

#include <CesiumGltf/ExtensionNodeMaxarMeshVariants.h>
#include <CesiumJsonReader/ArrayJsonHandler.h>
#include <CesiumJsonReader/ExtensibleObjectJsonHandler.h>

namespace CesiumJsonReader {
class ExtensionReaderContext;
}

namespace CesiumGltfReader {
class ExtensionNodeMaxarMeshVariantsJsonHandler
: public CesiumJsonReader::ExtensibleObjectJsonHandler,
public CesiumJsonReader::IExtensionJsonHandler {
public:
using ValueType = CesiumGltf::ExtensionNodeMaxarMeshVariants;

static inline constexpr const char* ExtensionName = "MAXAR_mesh_variants";

ExtensionNodeMaxarMeshVariantsJsonHandler(
const CesiumJsonReader::ExtensionReaderContext& context) noexcept;
void reset(
IJsonHandler* pParentHandler,
CesiumGltf::ExtensionNodeMaxarMeshVariants* pObject);

virtual IJsonHandler* readObjectKey(const std::string_view& str) override;

virtual void reset(
IJsonHandler* pParentHandler,
CesiumUtility::ExtensibleObject& o,
const std::string_view& extensionName) override;

virtual IJsonHandler* readNull() override {
return CesiumJsonReader::ExtensibleObjectJsonHandler::readNull();
};
virtual IJsonHandler* readBool(bool b) override {
return CesiumJsonReader::ExtensibleObjectJsonHandler::readBool(b);
}
virtual IJsonHandler* readInt32(int32_t i) override {
return CesiumJsonReader::ExtensibleObjectJsonHandler::readInt32(i);
}
virtual IJsonHandler* readUint32(uint32_t i) override {
return CesiumJsonReader::ExtensibleObjectJsonHandler::readUint32(i);
}
virtual IJsonHandler* readInt64(int64_t i) override {
return CesiumJsonReader::ExtensibleObjectJsonHandler::readInt64(i);
}
virtual IJsonHandler* readUint64(uint64_t i) override {
return CesiumJsonReader::ExtensibleObjectJsonHandler::readUint64(i);
}
virtual IJsonHandler* readDouble(double d) override {
return CesiumJsonReader::ExtensibleObjectJsonHandler::readDouble(d);
}
virtual IJsonHandler* readString(const std::string_view& str) override {
return CesiumJsonReader::ExtensibleObjectJsonHandler::readString(str);
}
virtual IJsonHandler* readObjectStart() override {
return CesiumJsonReader::ExtensibleObjectJsonHandler::readObjectStart();
}
virtual IJsonHandler* readObjectEnd() override {
return CesiumJsonReader::ExtensibleObjectJsonHandler::readObjectEnd();
}
virtual IJsonHandler* readArrayStart() override {
return CesiumJsonReader::ExtensibleObjectJsonHandler::readArrayStart();
}
virtual IJsonHandler* readArrayEnd() override {
return CesiumJsonReader::ExtensibleObjectJsonHandler::readArrayEnd();
}
virtual void reportWarning(
const std::string& warning,
std::vector<std::string>&& context =
std::vector<std::string>()) override {
CesiumJsonReader::ExtensibleObjectJsonHandler::reportWarning(
warning,
std::move(context));
}

protected:
IJsonHandler* readObjectKeyExtensionNodeMaxarMeshVariants(
const std::string& objectType,
const std::string_view& str,
CesiumGltf::ExtensionNodeMaxarMeshVariants& o);

private:
CesiumGltf::ExtensionNodeMaxarMeshVariants* _pObject = nullptr;
CesiumJsonReader::ArrayJsonHandler<
CesiumGltf::ExtensionNodeMaxarMeshVariantsMappingsValue,
ExtensionNodeMaxarMeshVariantsMappingsValueJsonHandler>
_mappings;
};
} // namespace CesiumGltfReader
Loading