finalise interface & documentation

Signed-off-by: Folling <mail@folling.io>
This commit is contained in:
folling 2023-11-06 13:14:39 +01:00 committed by Folling
parent c5157bd849
commit 52580a4382
Signed by: folling
SSH key fingerprint: SHA256:S9qEx5WCFFLK49tE/LKnKuJYM5sw+++Dn6qJbbyxnCY
56 changed files with 2074 additions and 780 deletions

View file

@ -0,0 +1,8 @@
#pragma once
#include <ikarus/objects/blueprint.h>
/// \private
struct IkarusBlueprint {
IkarusId id;
};

8
src/objects/entity.hpp Normal file
View file

@ -0,0 +1,8 @@
#pragma once
#include <ikarus/objects/entity.h>
/// \private
struct IkarusEntity {
IkarusId id;
};

View file

@ -1,13 +1,11 @@
#include "ikarus/objects/object.h"
#include <initializer_list>
#include <catch2/catch_test_macros.hpp>
#include <ikarus/objects/object_type.h>
#include <objects/object.hpp>
IkarusObjectType ikarus_object_get_type(IkarusObject object) {
return object.type;
IkarusObjectType ikarus_object_get_type(IkarusObject const * object) {
return object->type;
}
TEST_CASE("object_type", "[object]") {
@ -22,6 +20,6 @@ TEST_CASE("object_type", "[object]") {
for (auto type : types) {
auto object = IkarusObject{.type = type};
REQUIRE(ikarus_object_get_type(object) == type);
REQUIRE(ikarus_object_get_type(&object) == type);
}
}

15
src/objects/object.hpp Normal file
View file

@ -0,0 +1,15 @@
#pragma once
#include <variant>
#include <folders/blueprint_folder.hpp>
#include <folders/entity_folder.hpp>
#include <folders/property_folder.hpp>
#include <objects/blueprint.hpp>
#include <objects/entity.hpp>
#include <objects/property.hpp>
struct IkarusObject {
std::variant<IkarusBlueprint, IkarusProperty, IkarusEntity, IkarusBlueprintFolder, IkarusPropertyFolder, IkarusEntityFolder>
data;
};

View file

@ -1,16 +0,0 @@
#include "ikarus/objects/object_type.h"
#include <catch2/catch_test_macros.hpp>
#include <ikarus/folders/folder_type.h>
IkarusObjectType ikarus_folder_type_to_object_type(IkarusFolderType type) {
return static_cast<IkarusObjectType>(type);
}
TEST_CASE("folder_to_object_type_conversion", "[object_type]") {
REQUIRE(ikarus_folder_type_to_object_type(IkarusFolderType_None) == IkarusObjectType_None);
REQUIRE(ikarus_folder_type_to_object_type(IkarusFolderType_BlueprintFolder) == IkarusObjectType_BlueprintFolder);
REQUIRE(ikarus_folder_type_to_object_type(IkarusFolderType_PropertyFolder) == IkarusObjectType_PropertyFolder);
REQUIRE(ikarus_folder_type_to_object_type(IkarusFolderType_EntityFolder) == IkarusObjectType_EntityFolder);
}

8
src/objects/property.hpp Normal file
View file

@ -0,0 +1,8 @@
#pragma once
#include <ikarus/objects/property.h>
/// \private
struct IkarusProperty {
IkarusId id;
};