Skip to content
Draft
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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
*.o
*.obj
CMakePresets.json
build/
Expand Down
2 changes: 2 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ message(STATUS "SCons: ${SCONS_PROGRAM}")

if(WIN32)
set(GODOT_PLATFORM "windows")
elseif(APPLE)
set(GODOT_PLATFORM "macos")
else()
set(GODOT_PLATFORM "linuxbsd")
endif()
Expand Down
13 changes: 13 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,11 @@
* Python >= 3.6
* SCons >= 4.5.2


On MacOS, you will also need two other things
* MoltenVK (follow [Godot instructions](https://docs.godotengine.org/en/stable/contributing/development/compiling/compiling_for_macos.html)
* llvm-ar (I used homebrew's llvm).

#### Test Prerequisites

* Catch2 >= 2.13.8
Expand Down Expand Up @@ -50,6 +55,12 @@ cmake -E make_directory build
cmake -B build -S .
```

On MacOS, you need to direct CMake to use your llvm-ar, perhaps like this:

```
cmake -DCMAKE_AR=/opt/homebrew/opt/llvm/bin/llvm-ar -B build -S .
```

5. Build the project's extended version of Godot >= 4.2 e.g.

```
Expand All @@ -64,6 +75,8 @@ Launch the project's extended version of Godot >= 4.2 e.g.
godot\bin\godot.windows.editor.x86_64.exe
```

(On other platforms, the binary name will be slightly different.)

## Roadmap

## License
Expand Down
2 changes: 1 addition & 1 deletion godot
Submodule godot updated 897 files
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ struct ClassDeclaration : public std::variant<std::monostate, Definition, Declar
ClassDeclaration& operator=(ClassDeclaration const&) = delete;

ClassDeclaration(ClassDeclaration&&) = default;
ClassDeclaration& operator=(ClassDeclaration&&) = default;
ClassDeclaration& operator=(ClassDeclaration&&) = delete;

/// \note An inlined destructor can't delete incomplete types.
~ClassDeclaration();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ class ClassDefinition : public Node {

ClassDefinition& operator=(ClassDefinition const&) = delete;

ClassDefinition& operator=(ClassDefinition&&) = default;
ClassDefinition& operator=(ClassDefinition&&) = delete;

/// \brief Accepts a visitor that can only read this node.
///
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ class Declaration : public Node {

Declaration& operator=(Declaration const&) = delete;

Declaration& operator=(Declaration&&) = default;
Declaration& operator=(Declaration&&) = delete;

/// \brief Accepts a visitor that can only read this node.
///
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ class Definition : public Node {

Definition& operator=(Definition const&) = delete;

Definition& operator=(Definition&&) = default;
Definition& operator=(Definition&&) = delete;

/// \brief Accepts a visitor that can only read this node.
///
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,8 @@ struct DefinitionStatement : public std::variant<std::monostate, Statement, Decl
DefinitionStatement(DefinitionStatement const&) = delete;
DefinitionStatement& operator=(DefinitionStatement const&) = delete;

DefinitionStatement(DefinitionStatement&&) = default;
DefinitionStatement& operator=(DefinitionStatement&&) = default;
DefinitionStatement(DefinitionStatement&&) = delete;
DefinitionStatement& operator=(DefinitionStatement&&) = delete;

/// \note An inlined destructor can't delete incomplete types.
~DefinitionStatement();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ class ExternalReference : public Node {
/// \throws std::invalid_argument
ExternalReference(AMdoc const* const document, AMitem const* const map_object);

ExternalReference(ExternalReference const&) = default;
ExternalReference(ExternalReference const&) = delete;

ExternalReference& operator=(ExternalReference const&) = delete;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ class File : public Node {
/// \throws std::invalid_argument
File(AMdoc const* const document, AMitem const* const map_object = nullptr);

File(File const&) = default;
File(File const&) = delete;

File& operator=(File const&) = delete;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ class Node {

Node(Node&&) = default;

Node& operator=(Node&&) = default;
Node& operator=(Node&&) = delete;

/// \brief Checks that the enum property under a given key matches the given
/// tag value.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ struct Number : public std::variant<double, // AM_VAL_TYPE_F64
Number& operator=(Number const&) = delete;

Number(Number&&) = default;
Number& operator=(Number&&) = default;
Number& operator=(Number&&) = delete;

/// \brief Accepts a visitor that can only read this node.
///
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,11 +76,11 @@ class ObjectDeclaration : public Node {

ObjectDeclaration(ObjectDeclaration const&) = delete;

ObjectDeclaration(ObjectDeclaration&&) = default;
ObjectDeclaration(ObjectDeclaration&&) = delete;

ObjectDeclaration& operator=(ObjectDeclaration const&) = delete;

ObjectDeclaration& operator=(ObjectDeclaration&&) = default;
ObjectDeclaration& operator=(ObjectDeclaration&&) = delete;

/// \brief Accepts a visitor that can only read this node.
///
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ class ObjectDeclarationEntries : public Node {

ObjectDeclarationEntries& operator=(ObjectDeclarationEntries const&) = delete;

ObjectDeclarationEntries& operator=(ObjectDeclarationEntries&&) = default;
ObjectDeclarationEntries& operator=(ObjectDeclarationEntries&&) = delete;

/// \brief Accepts a visitor that can only read this node.
///
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,11 +69,11 @@ class ObjectDeclarationList : public Node {

ObjectDeclarationList(ObjectDeclarationList const&) = delete;

ObjectDeclarationList(ObjectDeclarationList&&) = default;
ObjectDeclarationList(ObjectDeclarationList&&) = delete;

ObjectDeclarationList& operator=(ObjectDeclarationList const&) = delete;

ObjectDeclarationList& operator=(ObjectDeclarationList&&) = default;
ObjectDeclarationList& operator=(ObjectDeclarationList&&) = delete;

/// \brief Accepts a visitor that can only read this node.
///
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,11 +66,11 @@ class ObjectDeclarationListValue : public Node {

ObjectDeclarationListValue(ObjectDeclarationListValue const&) = delete;

ObjectDeclarationListValue(ObjectDeclarationListValue&&) = default;
ObjectDeclarationListValue(ObjectDeclarationListValue&&) = delete;

ObjectDeclarationListValue& operator=(ObjectDeclarationListValue const&) = delete;

ObjectDeclarationListValue& operator=(ObjectDeclarationListValue&&) = default;
ObjectDeclarationListValue& operator=(ObjectDeclarationListValue&&) = delete;

/// \brief Accepts a visitor that can only read this node.
///
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,8 @@ struct ObjectDeclarations : public std::variant<std::monostate, ObjectDeclaratio
ObjectDeclarations(ObjectDeclarations const&) = delete;
ObjectDeclarations& operator=(ObjectDeclarations const&) = delete;

ObjectDeclarations(ObjectDeclarations&&) = default;
ObjectDeclarations& operator=(ObjectDeclarations&&) = default;
ObjectDeclarations(ObjectDeclarations&&) = delete;
ObjectDeclarations& operator=(ObjectDeclarations&&) = delete;

/// \note An inlined destructor can't delete incomplete types.
~ObjectDeclarations();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ class ObjectValue : public Node {
/// \throws std::invalid_argument
ObjectValue(AMdoc const* const document, AMitem const* const map_object);

ObjectValue(ObjectValue const&) = default;
ObjectValue(ObjectValue const&) = delete;

ObjectValue& operator=(ObjectValue const&) = delete;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ class ReferenceFile : public Node {
/// \throws std::invalid_argument
ReferenceFile(AMdoc const* const document, AMitem const* const map_object);

ReferenceFile(ReferenceFile const&) = default;
ReferenceFile(ReferenceFile const&) = delete;

ReferenceFile& operator=(ReferenceFile const&) = delete;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,8 @@ struct Statement : public std::variant<std::monostate, ClassDefinition, Definiti
Statement(Statement const&) = delete;
Statement& operator=(Statement const&) = delete;

Statement(Statement&&) = default;
Statement& operator=(Statement&&) = default;
Statement(Statement&&) = delete;
Statement& operator=(Statement&&) = delete;

/// \note An inlined destructor can't delete incomplete types.
~Statement();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ class Document {
Document& operator=(Document const&) = delete;

Document(Document&&) = default;
Document& operator=(Document&&) = default;
Document& operator=(Document&&) = delete;

operator AMdoc*() const;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,9 @@ class Item {

Item(Item&&) = default;

Item& operator=(Item const&) = default;
Item& operator=(Item const&) = delete;

Item& operator=(Item&&) = default;
Item& operator=(Item&&) = delete;

operator AMitem const*() const;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ class JsonWriter : public Visitor {

Indenter(Indenter&&) = default;

Indenter& operator=(Indenter const&) = default;
Indenter& operator=(Indenter const&) = delete;

Indenter& operator=(Indenter&&) = delete;

Expand Down Expand Up @@ -93,7 +93,7 @@ class JsonWriter : public Visitor {

JsonWriter& operator=(JsonWriter const&) = delete;

JsonWriter& operator=(JsonWriter&&) = default;
JsonWriter& operator=(JsonWriter&&) = delete;

operator std::string() const;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,8 +104,8 @@ struct Value : public std::variant<std::monostate, // undefined
Value(Value const&) = delete;
Value& operator=(Value const&) = delete;

Value(Value&&) = default;
Value& operator=(Value&&) = default;
Value(Value&&) = delete;
Value& operator=(Value&&) = delete;

/// \note An inlined destructor can't delete incomplete types.
~Value();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ class VariantDefinition : public Node {
/// \throws std::invalid_argument
VariantDefinition(AMdoc const* const document, AMitem const* const map_object);

VariantDefinition(VariantDefinition const&) = default;
VariantDefinition(VariantDefinition const&) = delete;

VariantDefinition& operator=(VariantDefinition const&) = delete;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ class VariantSet : public Node {
/// \throws std::invalid_argument
VariantSet(AMdoc const* const document, AMitem const* const map_object);

VariantSet(VariantSet const&) = default;
VariantSet(VariantSet const&) = delete;

VariantSet& operator=(VariantSet const&) = delete;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ class Visitor {

Visitor& operator=(Visitor const&) = delete;

Visitor& operator=(Visitor&&) = default;
Visitor& operator=(Visitor&&) = delete;

virtual ~Visitor() = 0;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ Item operator/(Item const& lhs, std::uint64_t const pos) {

std::ostream& operator<<(std::ostream& os, Item const& in) {
AMbyteSpan key;
std::uint64_t pos;
size_t pos;
// The root of a document is a map object.
AMvalType val_type = AM_VAL_TYPE_OBJ_TYPE;
auto const fmtflags = os.flags();
Expand All @@ -158,7 +158,7 @@ std::ostream& operator<<(std::ostream& os, Item const& in) {
AMitem const* const c_item = AMresultItem(result.get());
if (AMitemKey(c_item, &key)) {
os << "\"" << from_bytes(key) << "\"";
} else if (AMitemPos(c_item, &pos)) {
} else if (AMitemPos(c_item, reinterpret_cast<size_t*>(&pos))) {
os << pos;
}
val_type = AMitemValType(c_item);
Expand Down
4 changes: 2 additions & 2 deletions modules/reality_merge/usdj_body_updater.h
Original file line number Diff line number Diff line change
Expand Up @@ -75,13 +75,13 @@ class UsdjBodyUpdater : public cavi::usdj_am::Visitor {

UsdjBodyUpdater(UsdjBodyUpdater const&) = delete;

UsdjBodyUpdater(UsdjBodyUpdater&&) = default;
UsdjBodyUpdater(UsdjBodyUpdater&&) = delete;

~UsdjBodyUpdater();

UsdjBodyUpdater& operator=(UsdjBodyUpdater const&) = delete;

UsdjBodyUpdater& operator=(UsdjBodyUpdater&&) = default;
UsdjBodyUpdater& operator=(UsdjBodyUpdater&&) = delete;

/// \brief Creates new physics bodies and sorts pre-existing ones into
/// categories of forgotten, kept and removed.
Expand Down
2 changes: 1 addition & 1 deletion modules/reality_merge/usdj_box_size_extractor.h
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ class UsdjBoxSizeExtractor : public cavi::usdj_am::Visitor {

UsdjBoxSizeExtractor& operator=(UsdjBoxSizeExtractor const&) = delete;

UsdjBoxSizeExtractor& operator=(UsdjBoxSizeExtractor&&) = default;
UsdjBoxSizeExtractor& operator=(UsdjBoxSizeExtractor&&) = delete;

std::optional<Vector3> operator()();

Expand Down
2 changes: 1 addition & 1 deletion modules/reality_merge/usdj_color_extractor.h
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ class UsdjColorExtractor : public cavi::usdj_am::Visitor {

UsdjColorExtractor& operator=(UsdjColorExtractor const&) = delete;

UsdjColorExtractor& operator=(UsdjColorExtractor&&) = default;
UsdjColorExtractor& operator=(UsdjColorExtractor&&) = delete;

std::optional<Color> operator()();

Expand Down
2 changes: 1 addition & 1 deletion modules/reality_merge/usdj_geometry_extractor.h
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ class UsdjGeometryExtractor : public cavi::usdj_am::Visitor {

UsdjGeometryExtractor& operator=(UsdjGeometryExtractor const&) = delete;

UsdjGeometryExtractor& operator=(UsdjGeometryExtractor&&) = default;
UsdjGeometryExtractor& operator=(UsdjGeometryExtractor&&) = delete;

std::pair<MeshPtr, Shape3dPtr> operator()();

Expand Down
2 changes: 1 addition & 1 deletion modules/reality_merge/usdj_static_body_3d.h
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ class UsdjStaticBody3D : public PhysicsBody3D {

UsdjStaticBody3D(UsdjStaticBody3D&&) = default;

UsdjStaticBody3D& operator=(UsdjStaticBody3D&&) = default;
UsdjStaticBody3D& operator=(UsdjStaticBody3D&&) = delete;

AMobjId const* get_object_id() const;

Expand Down
2 changes: 1 addition & 1 deletion modules/reality_merge/usdj_transform_3d_extractor.h
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ class UsdjTransform3dExtractor : public cavi::usdj_am::Visitor {

UsdjTransform3dExtractor& operator=(UsdjTransform3dExtractor const&) = delete;

UsdjTransform3dExtractor& operator=(UsdjTransform3dExtractor&&) = default;
UsdjTransform3dExtractor& operator=(UsdjTransform3dExtractor&&) = delete;

std::optional<Transform3D> operator()();

Expand Down
2 changes: 1 addition & 1 deletion modules/reality_merge/usdj_velocity_extractor.h
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ class UsdjVelocityExtractor : public cavi::usdj_am::Visitor {

UsdjVelocityExtractor& operator=(UsdjVelocityExtractor const&) = delete;

UsdjVelocityExtractor& operator=(UsdjVelocityExtractor&&) = default;
UsdjVelocityExtractor& operator=(UsdjVelocityExtractor&&) = delete;

/// \throws std::invalid_argument
std::optional<Vector3> operator()(cavi::usdj_am::usd::physics::TokenType const reference);
Expand Down