Working set mesh
This commit is contained in:
parent
5581dfa8ad
commit
930a17d730
@ -18,12 +18,10 @@ namespace Deer {
|
|||||||
MeshComponent(const MeshComponent&) = default;
|
MeshComponent(const MeshComponent&) = default;
|
||||||
|
|
||||||
inline void setMesh(uint16_t _meshId) {
|
inline void setMesh(uint16_t _meshId) {
|
||||||
active = true;
|
|
||||||
meshId = _meshId;
|
meshId = _meshId;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void clear() {
|
inline void clear() {
|
||||||
active = false;
|
|
||||||
meshId = 0;
|
meshId = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -42,9 +40,13 @@ namespace Deer {
|
|||||||
inline bool isActive() {
|
inline bool isActive() {
|
||||||
return active;
|
return active;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline bool setActive(bool value) {
|
||||||
|
return active = value;
|
||||||
|
}
|
||||||
private:
|
private:
|
||||||
uint16_t meshId;
|
uint16_t meshId;
|
||||||
bool active;
|
bool active = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ShaderComponent {
|
struct ShaderComponent {
|
||||||
|
@ -36,8 +36,10 @@ namespace Deer {
|
|||||||
for (const auto& entry : std::filesystem::directory_iterator(searchPath)) {
|
for (const auto& entry : std::filesystem::directory_iterator(searchPath)) {
|
||||||
if (entry.is_directory())
|
if (entry.is_directory())
|
||||||
dirData.dirs.push_back(entry.path().lexically_relative(idPath));
|
dirData.dirs.push_back(entry.path().lexically_relative(idPath));
|
||||||
else if (entry.path().extension() == extension)
|
else if (entry.path().extension() == extension) {
|
||||||
dirData.elements.push_back(entry.path().lexically_relative(idPath));
|
Path ent = entry.path().lexically_relative(idPath);
|
||||||
|
dirData.elements.push_back(ent.parent_path() / ent.stem());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return dirData;
|
return dirData;
|
||||||
|
@ -8,7 +8,7 @@ namespace Deer {
|
|||||||
VertexArray* mesh_data = nullptr;
|
VertexArray* mesh_data = nullptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
size_t minModelId = 0;
|
size_t minModelId = 1;
|
||||||
MeshManagerContainer meshes[SCENE_MAX_MESH_COUNT]{};
|
MeshManagerContainer meshes[SCENE_MAX_MESH_COUNT]{};
|
||||||
std::unordered_map<Path, size_t> mesh_name_id;
|
std::unordered_map<Path, size_t> mesh_name_id;
|
||||||
|
|
||||||
|
@ -51,6 +51,9 @@ namespace Deer {
|
|||||||
bool hasMeshComponent();
|
bool hasMeshComponent();
|
||||||
void removeMeshComponent();
|
void removeMeshComponent();
|
||||||
|
|
||||||
|
// This is an internal function to avoid undefined behaviour from angelscript and avoid problems
|
||||||
|
bool assertEntity(const char* funcName);
|
||||||
|
|
||||||
// This function can be adapted to get a specific transform since the data is the same
|
// This function can be adapted to get a specific transform since the data is the same
|
||||||
EntityStruct getSelf();
|
EntityStruct getSelf();
|
||||||
};
|
};
|
||||||
@ -71,14 +74,18 @@ namespace Deer {
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct MeshComponentStruct : EntityStruct {
|
struct MeshComponentStruct : EntityStruct {
|
||||||
bool check_self();
|
bool assertMeshComponent();
|
||||||
|
|
||||||
bool isActive();
|
bool isActive();
|
||||||
|
void setActive(bool);
|
||||||
|
|
||||||
bool hasMesh();
|
bool hasMesh();
|
||||||
void clear();
|
void clear();
|
||||||
|
|
||||||
std::string getMesh();
|
std::string getMesh();
|
||||||
void setMesh(std::string&);
|
void setMesh(std::string&);
|
||||||
|
|
||||||
|
bool assertMeshComponent(const char* funcName);
|
||||||
};
|
};
|
||||||
|
|
||||||
EntityStruct getRoot();
|
EntityStruct getRoot();
|
||||||
|
@ -12,7 +12,7 @@ namespace Deer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Renders the ui elements in the same line
|
// Renders the ui elements in the same line
|
||||||
void sameLine();
|
void sameline();
|
||||||
// Renders a line separator
|
// Renders a line separator
|
||||||
void separator();
|
void separator();
|
||||||
|
|
||||||
@ -39,6 +39,9 @@ namespace Deer {
|
|||||||
// Renders a big text
|
// Renders a big text
|
||||||
void titleEnd(std::string&);
|
void titleEnd(std::string&);
|
||||||
|
|
||||||
|
// Renders a big text in the center of a specified height
|
||||||
|
void titleCenterY(std::string&, int);
|
||||||
|
|
||||||
// Renders a icon in the specified size in pixels
|
// Renders a icon in the specified size in pixels
|
||||||
void drawIcon(std::string& iconId, int size);
|
void drawIcon(std::string& iconId, int size);
|
||||||
// Renders a icon in the specified size in pixels at the center
|
// Renders a icon in the specified size in pixels at the center
|
||||||
@ -57,9 +60,18 @@ namespace Deer {
|
|||||||
// Prepares the function to accept payload with the id and calls the function with the data
|
// Prepares the function to accept payload with the id and calls the function with the data
|
||||||
void dragDropTarget(std::string&, CScriptAny*, asIScriptFunction*);
|
void dragDropTarget(std::string&, CScriptAny*, asIScriptFunction*);
|
||||||
|
|
||||||
bool inputText(std::string& label, std::string&, std::string&);
|
|
||||||
|
|
||||||
|
// Draws a simple input with a label, input and output string
|
||||||
|
bool inputText(std::string& label, std::string&, std::string&);
|
||||||
|
// Draws a simple checkbox
|
||||||
|
bool checkbox(std::string& label, bool);
|
||||||
|
// Draws a simple checkbox
|
||||||
|
bool checkboxDisabled(std::string& label, bool);
|
||||||
|
// Draws a complex slider that with double click you can set a specific value
|
||||||
float magicSlider(std::string&, float, float);
|
float magicSlider(std::string&, float, float);
|
||||||
|
// Draws a complex slider that with double click you can set a specific value in vec3
|
||||||
glm::vec3 magicSlider3(std::string&, glm::vec3, float);
|
glm::vec3 magicSlider3(std::string&, glm::vec3, float);
|
||||||
|
|
||||||
|
void registerUIFunctions();
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -5,6 +5,7 @@
|
|||||||
#include "Deer/Scene.h"
|
#include "Deer/Scene.h"
|
||||||
|
|
||||||
#define GET_ENTITY(id) Scene::environment.getEntity(id)
|
#define GET_ENTITY(id) Scene::environment.getEntity(id)
|
||||||
|
#define ASSERT_ENTITY(func, ret) if (!assertEntity(func)) ret;
|
||||||
|
|
||||||
namespace Deer {
|
namespace Deer {
|
||||||
namespace EditorEngine {
|
namespace EditorEngine {
|
||||||
@ -22,7 +23,19 @@ namespace Deer {
|
|||||||
return entityId;
|
return entityId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool EntityStruct::assertEntity(const char* funcName) {
|
||||||
|
if (!Scene::environment.entityExists(entityId)) {
|
||||||
|
DEER_UI_ENGINE_ERROR("Error, invalid entity calling {0}, entityId : {1}", funcName, entityId);
|
||||||
|
if (currentDockPanelExecution)
|
||||||
|
currentDockPanelExecution->invalidate();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
std::string EntityStruct::getName() {
|
std::string EntityStruct::getName() {
|
||||||
|
ASSERT_ENTITY("getName()", return "NULL");
|
||||||
|
|
||||||
return GET_ENTITY(entityId)
|
return GET_ENTITY(entityId)
|
||||||
.getComponent<TagComponent>()
|
.getComponent<TagComponent>()
|
||||||
.tag;
|
.tag;
|
||||||
@ -30,26 +43,36 @@ namespace Deer {
|
|||||||
|
|
||||||
|
|
||||||
void EntityStruct::setName(std::string& name) {
|
void EntityStruct::setName(std::string& name) {
|
||||||
|
ASSERT_ENTITY("setName()", return);
|
||||||
|
|
||||||
GET_ENTITY(entityId)
|
GET_ENTITY(entityId)
|
||||||
.getComponent<TagComponent>()
|
.getComponent<TagComponent>()
|
||||||
.tag = name;
|
.tag = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
void EntityStruct::destroy() {
|
void EntityStruct::destroy() {
|
||||||
|
ASSERT_ENTITY("destroy()", return);
|
||||||
|
|
||||||
GET_ENTITY(entityId)
|
GET_ENTITY(entityId)
|
||||||
.destroy();
|
.destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool EntityStruct::isRoot() {
|
bool EntityStruct::isRoot() {
|
||||||
|
ASSERT_ENTITY("isRoot()", return false);
|
||||||
|
|
||||||
return entityId == 0;
|
return entityId == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool EntityStruct::exists() {
|
bool EntityStruct::exists() {
|
||||||
|
ASSERT_ENTITY("exists()", return false);
|
||||||
|
|
||||||
return Scene::environment
|
return Scene::environment
|
||||||
.entityExists(entityId);
|
.entityExists(entityId);
|
||||||
}
|
}
|
||||||
|
|
||||||
void EntityStruct::setParent(EntityStruct parent_struct) {
|
void EntityStruct::setParent(EntityStruct parent_struct) {
|
||||||
|
ASSERT_ENTITY("setParent()", return);
|
||||||
|
|
||||||
Entity& parent = GET_ENTITY(parent_struct.entityId);
|
Entity& parent = GET_ENTITY(parent_struct.entityId);
|
||||||
|
|
||||||
GET_ENTITY(entityId)
|
GET_ENTITY(entityId)
|
||||||
@ -57,6 +80,8 @@ namespace Deer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
EntityStruct EntityStruct::getParent() {
|
EntityStruct EntityStruct::getParent() {
|
||||||
|
ASSERT_ENTITY("getParent()", return *this);
|
||||||
|
|
||||||
Entity& self = GET_ENTITY(entityId);
|
Entity& self = GET_ENTITY(entityId);
|
||||||
if (self.isRoot())
|
if (self.isRoot())
|
||||||
return *this;
|
return *this;
|
||||||
@ -64,9 +89,9 @@ namespace Deer {
|
|||||||
return EntityStruct(self.getParentId());
|
return EntityStruct(self.getParentId());
|
||||||
}
|
}
|
||||||
|
|
||||||
EntityStruct getParent();
|
|
||||||
|
|
||||||
bool EntityStruct::isDescendantOf(EntityStruct parent_struct) {
|
bool EntityStruct::isDescendantOf(EntityStruct parent_struct) {
|
||||||
|
ASSERT_ENTITY("isDescendantOf()", return false);
|
||||||
|
|
||||||
Entity& parent = GET_ENTITY(parent_struct.entityId);
|
Entity& parent = GET_ENTITY(parent_struct.entityId);
|
||||||
|
|
||||||
return GET_ENTITY(entityId)
|
return GET_ENTITY(entityId)
|
||||||
@ -74,44 +99,64 @@ namespace Deer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool EntityStruct::opEquals(const EntityStruct& other) {
|
bool EntityStruct::opEquals(const EntityStruct& other) {
|
||||||
|
ASSERT_ENTITY("opEquals()", return false);
|
||||||
|
|
||||||
return entityId == other.entityId;
|
return entityId == other.entityId;
|
||||||
}
|
}
|
||||||
|
|
||||||
EntityStruct EntityStruct::getSelf() {
|
EntityStruct EntityStruct::getSelf() {
|
||||||
|
ASSERT_ENTITY("getSelf()", return *this);
|
||||||
|
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
glm::vec3 TransformComponentStruct::getPosition() {
|
glm::vec3 TransformComponentStruct::getPosition() {
|
||||||
|
ASSERT_ENTITY("getPosition()", return glm::vec3());
|
||||||
|
|
||||||
return GET_ENTITY(entityId).getComponent<TransformComponent>().position;
|
return GET_ENTITY(entityId).getComponent<TransformComponent>().position;
|
||||||
}
|
}
|
||||||
|
|
||||||
glm::vec3 TransformComponentStruct::getScale() {
|
glm::vec3 TransformComponentStruct::getScale() {
|
||||||
|
ASSERT_ENTITY("getScale()", return glm::vec3());
|
||||||
|
|
||||||
return GET_ENTITY(entityId).getComponent<TransformComponent>().scale;
|
return GET_ENTITY(entityId).getComponent<TransformComponent>().scale;
|
||||||
}
|
}
|
||||||
|
|
||||||
glm::vec3 TransformComponentStruct::getRotation() {
|
glm::vec3 TransformComponentStruct::getRotation() {
|
||||||
|
ASSERT_ENTITY("getRotation()", return glm::vec3());
|
||||||
|
|
||||||
return GET_ENTITY(entityId).getComponent<TransformComponent>().getEulerAngles();
|
return GET_ENTITY(entityId).getComponent<TransformComponent>().getEulerAngles();
|
||||||
}
|
}
|
||||||
|
|
||||||
void TransformComponentStruct::setPosition(glm::vec3 value) {
|
void TransformComponentStruct::setPosition(glm::vec3 value) {
|
||||||
|
ASSERT_ENTITY("setPosition()", return);
|
||||||
|
|
||||||
GET_ENTITY(entityId).getComponent<TransformComponent>().position = value;
|
GET_ENTITY(entityId).getComponent<TransformComponent>().position = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TransformComponentStruct::setScale(glm::vec3 value) {
|
void TransformComponentStruct::setScale(glm::vec3 value) {
|
||||||
|
ASSERT_ENTITY("setScale()", return);
|
||||||
|
|
||||||
GET_ENTITY(entityId).getComponent<TransformComponent>().scale = value;
|
GET_ENTITY(entityId).getComponent<TransformComponent>().scale = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TransformComponentStruct::setRotation(glm::vec3 value) {
|
void TransformComponentStruct::setRotation(glm::vec3 value) {
|
||||||
|
ASSERT_ENTITY("setRotation()", return);
|
||||||
|
|
||||||
GET_ENTITY(entityId).getComponent<TransformComponent>().setEulerAngles(value);
|
GET_ENTITY(entityId).getComponent<TransformComponent>().setEulerAngles(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
int EntityChildArrayStruct::getChildCount() {
|
int EntityChildArrayStruct::getChildCount() {
|
||||||
|
ASSERT_ENTITY("getChildCount()", return 0);
|
||||||
|
|
||||||
return GET_ENTITY(entityId)
|
return GET_ENTITY(entityId)
|
||||||
.getComponent<RelationshipComponent>()
|
.getComponent<RelationshipComponent>()
|
||||||
.childCount;
|
.childCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
EntityStruct EntityChildArrayStruct::getChild(int i) {
|
EntityStruct EntityChildArrayStruct::getChild(int i) {
|
||||||
|
ASSERT_ENTITY("getChild()", return *this);
|
||||||
|
|
||||||
RelationshipComponent& rc = GET_ENTITY(entityId)
|
RelationshipComponent& rc = GET_ENTITY(entityId)
|
||||||
.getComponent<RelationshipComponent>();
|
.getComponent<RelationshipComponent>();
|
||||||
|
|
||||||
@ -127,6 +172,8 @@ namespace Deer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
EntityStruct EntityStruct::createChild(std::string& name) {
|
EntityStruct EntityStruct::createChild(std::string& name) {
|
||||||
|
ASSERT_ENTITY("createChild()", return *this);
|
||||||
|
|
||||||
Entity& me = GET_ENTITY(entityId);
|
Entity& me = GET_ENTITY(entityId);
|
||||||
|
|
||||||
Entity& newEnt = Scene::environment
|
Entity& newEnt = Scene::environment
|
||||||
@ -138,6 +185,8 @@ namespace Deer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
EntityStruct EntityStruct::getMeshComponent() {
|
EntityStruct EntityStruct::getMeshComponent() {
|
||||||
|
ASSERT_ENTITY("getMeshComponent()", return *this);
|
||||||
|
|
||||||
Entity& self = GET_ENTITY(entityId);
|
Entity& self = GET_ENTITY(entityId);
|
||||||
|
|
||||||
if (!self.hasComponent<MeshComponent>()) {
|
if (!self.hasComponent<MeshComponent>()) {
|
||||||
@ -148,12 +197,16 @@ namespace Deer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool EntityStruct::hasMeshComponent() {
|
bool EntityStruct::hasMeshComponent() {
|
||||||
|
ASSERT_ENTITY("hasMeshComponent()", return false);
|
||||||
|
|
||||||
Entity& self = GET_ENTITY(entityId);
|
Entity& self = GET_ENTITY(entityId);
|
||||||
|
|
||||||
return self.hasComponent<MeshComponent>();
|
return self.hasComponent<MeshComponent>();
|
||||||
}
|
}
|
||||||
|
|
||||||
void EntityStruct::removeMeshComponent() {
|
void EntityStruct::removeMeshComponent() {
|
||||||
|
ASSERT_ENTITY("removeMeshComponent()", return);
|
||||||
|
|
||||||
Entity& self = GET_ENTITY(entityId);
|
Entity& self = GET_ENTITY(entityId);
|
||||||
|
|
||||||
if (self.hasComponent<MeshComponent>()) {
|
if (self.hasComponent<MeshComponent>()) {
|
||||||
@ -162,6 +215,7 @@ namespace Deer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool MeshComponentStruct::isActive() {
|
bool MeshComponentStruct::isActive() {
|
||||||
|
ASSERT_ENTITY("isActive()", return false);
|
||||||
Entity& self = GET_ENTITY(entityId);
|
Entity& self = GET_ENTITY(entityId);
|
||||||
|
|
||||||
if (!self.hasComponent<MeshComponent>()) {
|
if (!self.hasComponent<MeshComponent>()) {
|
||||||
@ -175,7 +229,24 @@ namespace Deer {
|
|||||||
return self.getComponent<MeshComponent>().isActive();
|
return self.getComponent<MeshComponent>().isActive();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MeshComponentStruct::setActive(bool value) {
|
||||||
|
ASSERT_ENTITY("setActive(bool)", return);
|
||||||
|
Entity& self = GET_ENTITY(entityId);
|
||||||
|
|
||||||
|
if (!self.hasComponent<MeshComponent>()) {
|
||||||
|
DEER_UI_ENGINE_ERROR("Entity {0} has no component Mesh Component", entityId);
|
||||||
|
|
||||||
|
if (currentDockPanelExecution)
|
||||||
|
currentDockPanelExecution->invalidate();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
self.getComponent<MeshComponent>().setActive(value);
|
||||||
|
}
|
||||||
|
|
||||||
bool MeshComponentStruct::hasMesh() {
|
bool MeshComponentStruct::hasMesh() {
|
||||||
|
ASSERT_ENTITY("hasMesh()", return false);
|
||||||
|
|
||||||
Entity& self = GET_ENTITY(entityId);
|
Entity& self = GET_ENTITY(entityId);
|
||||||
|
|
||||||
if (!self.hasComponent<MeshComponent>()) {
|
if (!self.hasComponent<MeshComponent>()) {
|
||||||
@ -190,6 +261,8 @@ namespace Deer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void MeshComponentStruct::clear() {
|
void MeshComponentStruct::clear() {
|
||||||
|
ASSERT_ENTITY("clear()", return);
|
||||||
|
|
||||||
Entity& self = GET_ENTITY(entityId);
|
Entity& self = GET_ENTITY(entityId);
|
||||||
|
|
||||||
if (!self.hasComponent<MeshComponent>()) {
|
if (!self.hasComponent<MeshComponent>()) {
|
||||||
@ -204,6 +277,8 @@ namespace Deer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::string MeshComponentStruct::getMesh() {
|
std::string MeshComponentStruct::getMesh() {
|
||||||
|
ASSERT_ENTITY("getMesh()", return "NULL");
|
||||||
|
|
||||||
Entity& self = GET_ENTITY(entityId);
|
Entity& self = GET_ENTITY(entityId);
|
||||||
|
|
||||||
if (!self.hasComponent<MeshComponent>()) {
|
if (!self.hasComponent<MeshComponent>()) {
|
||||||
@ -218,6 +293,8 @@ namespace Deer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void MeshComponentStruct::setMesh(std::string& name) {
|
void MeshComponentStruct::setMesh(std::string& name) {
|
||||||
|
ASSERT_ENTITY("setMesh()", return);
|
||||||
|
|
||||||
Entity& self = GET_ENTITY(entityId);
|
Entity& self = GET_ENTITY(entityId);
|
||||||
|
|
||||||
if (!self.hasComponent<MeshComponent>()) {
|
if (!self.hasComponent<MeshComponent>()) {
|
||||||
|
@ -243,6 +243,13 @@ namespace Deer {
|
|||||||
asMETHOD(MeshComponentStruct, setMesh),
|
asMETHOD(MeshComponentStruct, setMesh),
|
||||||
asCALL_THISCALL
|
asCALL_THISCALL
|
||||||
));
|
));
|
||||||
|
|
||||||
|
AS_CHECK(scriptEngine->RegisterObjectMethod(
|
||||||
|
"MeshComponent",
|
||||||
|
"void set_isActive(const bool) property",
|
||||||
|
asMETHOD(MeshComponentStruct, setActive),
|
||||||
|
asCALL_THISCALL
|
||||||
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
void registerTransformComponent() {
|
void registerTransformComponent() {
|
||||||
|
@ -39,7 +39,18 @@ namespace Deer {
|
|||||||
ImGui::PopFont();
|
ImGui::PopFont();
|
||||||
}
|
}
|
||||||
|
|
||||||
void sameLine() {
|
void titleCenterY(std::string& txt, int) {
|
||||||
|
ImGui::PushFont(titleText);
|
||||||
|
|
||||||
|
float textHeight = ImGui::GetFontSize();
|
||||||
|
float yOffset = (64.0f - textHeight) * 0.5f;
|
||||||
|
ImGui::SetCursorPosY(ImGui::GetCursorPosY() + yOffset);
|
||||||
|
|
||||||
|
ImGui::Text("%s", txt.c_str());
|
||||||
|
ImGui::PopFont();
|
||||||
|
}
|
||||||
|
|
||||||
|
void sameline() {
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -180,7 +191,7 @@ namespace Deer {
|
|||||||
|
|
||||||
data->AddRef();
|
data->AddRef();
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(10, 10));
|
ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(10, 10));
|
||||||
if (ImGui::BeginDragDropSource()) {
|
if (ImGui::BeginDragDropSource(ImGuiDragDropFlags_SourceAllowNullID)) {
|
||||||
if (DragDropPayload::payload)
|
if (DragDropPayload::payload)
|
||||||
DragDropPayload::payload->Release();
|
DragDropPayload::payload->Release();
|
||||||
|
|
||||||
@ -231,7 +242,19 @@ namespace Deer {
|
|||||||
return edited;
|
return edited;
|
||||||
}
|
}
|
||||||
|
|
||||||
#include "imgui.h"
|
bool checkbox(std::string& label, bool value) {
|
||||||
|
ImGui::Checkbox(label.c_str(), &value);
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool checkboxDisabled(std::string& label, bool value) {
|
||||||
|
ImGui::BeginDisabled();
|
||||||
|
ImGui::Checkbox(label.c_str(), &value);
|
||||||
|
ImGui::EndDisabled();
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
float magicSlider(std::string& txt, float value, float speed) {
|
float magicSlider(std::string& txt, float value, float speed) {
|
||||||
|
|
||||||
|
@ -0,0 +1,159 @@
|
|||||||
|
#include "DeerStudio/EditorEngine.h"
|
||||||
|
#include "DeerStudio/EditorEngine/ErrorHandle.h"
|
||||||
|
#include "DeerStudio/EditorEngine/API.h"
|
||||||
|
|
||||||
|
#include "scripthandle.h"
|
||||||
|
#include "scriptany.h"
|
||||||
|
#include "angelscript.h"
|
||||||
|
|
||||||
|
namespace Deer {
|
||||||
|
void EditorEngine::registerUIFunctions() {
|
||||||
|
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
||||||
|
"void textColor(float, float, float, const string& in)",
|
||||||
|
asFUNCTION(textColor),
|
||||||
|
asCALL_CDECL
|
||||||
|
));
|
||||||
|
|
||||||
|
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
||||||
|
"void text(const string& in)",
|
||||||
|
asFUNCTION(text),
|
||||||
|
asCALL_CDECL
|
||||||
|
));
|
||||||
|
|
||||||
|
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
||||||
|
"void textCenter(const string& in)",
|
||||||
|
asFUNCTION(textCenter),
|
||||||
|
asCALL_CDECL
|
||||||
|
));
|
||||||
|
|
||||||
|
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
||||||
|
"void textEnd(const string& in)",
|
||||||
|
asFUNCTION(textEnd),
|
||||||
|
asCALL_CDECL
|
||||||
|
));
|
||||||
|
|
||||||
|
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
||||||
|
"void drawIcon(const string& in, int)",
|
||||||
|
asFUNCTION(drawIcon),
|
||||||
|
asCALL_CDECL
|
||||||
|
));
|
||||||
|
|
||||||
|
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
||||||
|
"bool isItemClicked(int)",
|
||||||
|
asFUNCTION(
|
||||||
|
isItemClicked
|
||||||
|
),
|
||||||
|
asCALL_CDECL
|
||||||
|
));
|
||||||
|
|
||||||
|
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
||||||
|
"bool isMouseDoubleClicked(int)",
|
||||||
|
asFUNCTION(
|
||||||
|
isMouseDoubleClicked
|
||||||
|
),
|
||||||
|
asCALL_CDECL
|
||||||
|
));
|
||||||
|
|
||||||
|
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
||||||
|
"void drawIconCentered(const string& in, int)",
|
||||||
|
asFUNCTION(drawIconCentered),
|
||||||
|
asCALL_CDECL
|
||||||
|
));
|
||||||
|
|
||||||
|
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
||||||
|
"void space()",
|
||||||
|
asFUNCTION(space),
|
||||||
|
asCALL_CDECL
|
||||||
|
));
|
||||||
|
|
||||||
|
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
||||||
|
"bool menuItem(const string& in)",
|
||||||
|
asFUNCTION(menuItem),
|
||||||
|
asCALL_CDECL
|
||||||
|
));
|
||||||
|
|
||||||
|
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
||||||
|
"bool button(const string& in)",
|
||||||
|
asFUNCTION(button),
|
||||||
|
asCALL_CDECL
|
||||||
|
));
|
||||||
|
|
||||||
|
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
||||||
|
"bool buttonCenter(const string&in)",
|
||||||
|
asFUNCTION(buttonCenter),
|
||||||
|
asCALL_CDECL
|
||||||
|
));
|
||||||
|
|
||||||
|
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
||||||
|
"bool buttonEnd(const string&in)",
|
||||||
|
asFUNCTION(buttonEnd),
|
||||||
|
asCALL_CDECL
|
||||||
|
));
|
||||||
|
|
||||||
|
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
||||||
|
"bool inputText(const string& in, const string& in, string& out)",
|
||||||
|
asFUNCTION(inputText),
|
||||||
|
asCALL_CDECL
|
||||||
|
));
|
||||||
|
|
||||||
|
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
||||||
|
"bool checkbox(const string& in, bool)",
|
||||||
|
asFUNCTION(checkbox),
|
||||||
|
asCALL_CDECL
|
||||||
|
));
|
||||||
|
|
||||||
|
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
||||||
|
"bool checkboxDisabled(const string& in, bool)",
|
||||||
|
asFUNCTION(checkboxDisabled),
|
||||||
|
asCALL_CDECL
|
||||||
|
));
|
||||||
|
|
||||||
|
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
||||||
|
"float magicSlider(const string& in, float, float)",
|
||||||
|
asFUNCTION(magicSlider),
|
||||||
|
asCALL_CDECL
|
||||||
|
));
|
||||||
|
|
||||||
|
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
||||||
|
"vec3 magicSlider3(const string& in, vec3, float)",
|
||||||
|
asFUNCTION(magicSlider3),
|
||||||
|
asCALL_CDECL
|
||||||
|
));
|
||||||
|
|
||||||
|
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
||||||
|
"void sameline()",
|
||||||
|
asFUNCTION(sameline),
|
||||||
|
asCALL_CDECL
|
||||||
|
));
|
||||||
|
|
||||||
|
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
||||||
|
"void separator()",
|
||||||
|
asFUNCTION(separator),
|
||||||
|
asCALL_CDECL
|
||||||
|
));
|
||||||
|
|
||||||
|
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
||||||
|
"void title(const string&in)",
|
||||||
|
asFUNCTION(title),
|
||||||
|
asCALL_CDECL
|
||||||
|
));
|
||||||
|
|
||||||
|
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
||||||
|
"void titleEnd(const string&in)",
|
||||||
|
asFUNCTION(titleEnd),
|
||||||
|
asCALL_CDECL
|
||||||
|
));
|
||||||
|
|
||||||
|
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
||||||
|
"void titleCenter(const string&in)",
|
||||||
|
asFUNCTION(titleCenter),
|
||||||
|
asCALL_CDECL
|
||||||
|
));
|
||||||
|
|
||||||
|
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
||||||
|
"void titleCenterY(const string&in, int)",
|
||||||
|
asFUNCTION(titleCenterY),
|
||||||
|
asCALL_CDECL
|
||||||
|
));
|
||||||
|
}
|
||||||
|
}
|
@ -8,52 +8,7 @@ namespace Deer {
|
|||||||
void EditorEngine::registerEditorEngineFunctions() {
|
void EditorEngine::registerEditorEngineFunctions() {
|
||||||
registerEntityFunctions();
|
registerEntityFunctions();
|
||||||
registerMathFunctions();
|
registerMathFunctions();
|
||||||
|
registerUIFunctions();
|
||||||
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
|
||||||
"void textColor(float, float, float, const string& in)",
|
|
||||||
asFUNCTION(textColor),
|
|
||||||
asCALL_CDECL
|
|
||||||
));
|
|
||||||
|
|
||||||
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
|
||||||
"void text(const string& in)",
|
|
||||||
asFUNCTION(text),
|
|
||||||
asCALL_CDECL
|
|
||||||
));
|
|
||||||
|
|
||||||
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
|
||||||
"void textCenter(const string& in)",
|
|
||||||
asFUNCTION(textCenter),
|
|
||||||
asCALL_CDECL
|
|
||||||
));
|
|
||||||
|
|
||||||
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
|
||||||
"void textEnd(const string& in)",
|
|
||||||
asFUNCTION(textEnd),
|
|
||||||
asCALL_CDECL
|
|
||||||
));
|
|
||||||
|
|
||||||
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
|
||||||
"void drawIcon(const string& in, int)",
|
|
||||||
asFUNCTION(drawIcon),
|
|
||||||
asCALL_CDECL
|
|
||||||
));
|
|
||||||
|
|
||||||
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
|
||||||
"bool isItemClicked(int)",
|
|
||||||
asFUNCTION(
|
|
||||||
isItemClicked
|
|
||||||
),
|
|
||||||
asCALL_CDECL
|
|
||||||
));
|
|
||||||
|
|
||||||
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
|
||||||
"bool isMouseDoubleClicked(int)",
|
|
||||||
asFUNCTION(
|
|
||||||
isMouseDoubleClicked
|
|
||||||
),
|
|
||||||
asCALL_CDECL
|
|
||||||
));
|
|
||||||
|
|
||||||
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
||||||
"void setupAutomaticColumns(int)",
|
"void setupAutomaticColumns(int)",
|
||||||
@ -89,12 +44,6 @@ namespace Deer {
|
|||||||
asCALL_CDECL
|
asCALL_CDECL
|
||||||
));
|
));
|
||||||
|
|
||||||
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
|
||||||
"void drawIconCentered(const string& in, int)",
|
|
||||||
asFUNCTION(drawIconCentered),
|
|
||||||
asCALL_CDECL
|
|
||||||
));
|
|
||||||
|
|
||||||
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
||||||
"int getResourceCount(ResourceType, const string& in)",
|
"int getResourceCount(ResourceType, const string& in)",
|
||||||
asFUNCTION(getResourceCount),
|
asFUNCTION(getResourceCount),
|
||||||
@ -149,12 +98,6 @@ namespace Deer {
|
|||||||
asCALL_CDECL
|
asCALL_CDECL
|
||||||
));
|
));
|
||||||
|
|
||||||
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
|
||||||
"void space()",
|
|
||||||
asFUNCTION(space),
|
|
||||||
asCALL_CDECL
|
|
||||||
));
|
|
||||||
|
|
||||||
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
||||||
"void contextItemPopup(const string& in, any@+, ReciverFunc@+)",
|
"void contextItemPopup(const string& in, any@+, ReciverFunc@+)",
|
||||||
asFUNCTION(contextItemPopup),
|
asFUNCTION(contextItemPopup),
|
||||||
@ -191,12 +134,6 @@ namespace Deer {
|
|||||||
asCALL_CDECL
|
asCALL_CDECL
|
||||||
));
|
));
|
||||||
|
|
||||||
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
|
||||||
"bool menuItem(const string& in)",
|
|
||||||
asFUNCTION(menuItem),
|
|
||||||
asCALL_CDECL
|
|
||||||
));
|
|
||||||
|
|
||||||
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
||||||
"void dragDropSource(const string& in, any@, const string& in)",
|
"void dragDropSource(const string& in, any@, const string& in)",
|
||||||
asFUNCTION(dragDropSource),
|
asFUNCTION(dragDropSource),
|
||||||
@ -209,71 +146,6 @@ namespace Deer {
|
|||||||
asCALL_CDECL
|
asCALL_CDECL
|
||||||
));
|
));
|
||||||
|
|
||||||
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
|
||||||
"bool button(const string& in)",
|
|
||||||
asFUNCTION(button),
|
|
||||||
asCALL_CDECL
|
|
||||||
));
|
|
||||||
|
|
||||||
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
|
||||||
"bool buttonCenter(const string&in)",
|
|
||||||
asFUNCTION(buttonCenter),
|
|
||||||
asCALL_CDECL
|
|
||||||
));
|
|
||||||
|
|
||||||
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
|
||||||
"bool buttonEnd(const string&in)",
|
|
||||||
asFUNCTION(buttonEnd),
|
|
||||||
asCALL_CDECL
|
|
||||||
));
|
|
||||||
|
|
||||||
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
|
||||||
"bool inputText(const string& in, const string& in, string& out)",
|
|
||||||
asFUNCTION(inputText),
|
|
||||||
asCALL_CDECL
|
|
||||||
));
|
|
||||||
|
|
||||||
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
|
||||||
"float magicSlider(const string& in, float, float)",
|
|
||||||
asFUNCTION(magicSlider),
|
|
||||||
asCALL_CDECL
|
|
||||||
));
|
|
||||||
|
|
||||||
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
|
||||||
"vec3 magicSlider3(const string& in, vec3, float)",
|
|
||||||
asFUNCTION(magicSlider3),
|
|
||||||
asCALL_CDECL
|
|
||||||
));
|
|
||||||
|
|
||||||
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
|
||||||
"void sameLine()",
|
|
||||||
asFUNCTION(sameLine),
|
|
||||||
asCALL_CDECL
|
|
||||||
));
|
|
||||||
|
|
||||||
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
|
||||||
"void separator()",
|
|
||||||
asFUNCTION(separator),
|
|
||||||
asCALL_CDECL
|
|
||||||
));
|
|
||||||
|
|
||||||
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
|
||||||
"void title(const string&in)",
|
|
||||||
asFUNCTION(title),
|
|
||||||
asCALL_CDECL
|
|
||||||
));
|
|
||||||
|
|
||||||
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
|
||||||
"void titleEnd(const string&in)",
|
|
||||||
asFUNCTION(titleEnd),
|
|
||||||
asCALL_CDECL
|
|
||||||
));
|
|
||||||
|
|
||||||
AS_CHECK(scriptEngine->RegisterGlobalFunction(
|
|
||||||
"void titleCenter(const string&in)",
|
|
||||||
asFUNCTION(titleCenter),
|
|
||||||
asCALL_CDECL
|
|
||||||
));
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
BIN
roe/editor/icons/object3d.png
Normal file
BIN
roe/editor/icons/object3d.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 309 B |
@ -33,6 +33,9 @@ class MeshExplorer : DockPanel {
|
|||||||
int meshCount = getResourceCount(ResourceType::Mesh, cache_currentPath);
|
int meshCount = getResourceCount(ResourceType::Mesh, cache_currentPath);
|
||||||
for (int i = 0; i < meshCount; i++) {
|
for (int i = 0; i < meshCount; i++) {
|
||||||
drawIconCentered("file", 64);
|
drawIconCentered("file", 64);
|
||||||
|
dragDropSource("MESH",
|
||||||
|
any(getResourcePathById(ResourceType::Mesh, cache_currentPath, i)),
|
||||||
|
getResourcePathById(ResourceType::Mesh, cache_currentPath, i));
|
||||||
|
|
||||||
textCenter(getResourceNameById(ResourceType::Mesh, cache_currentPath, i));
|
textCenter(getResourceNameById(ResourceType::Mesh, cache_currentPath, i));
|
||||||
nextColumn();
|
nextColumn();
|
||||||
|
@ -18,5 +18,32 @@ void renderMeshComponent(any@ data) {
|
|||||||
|
|
||||||
MeshComponent meshComponent = entity.getMeshComponent();
|
MeshComponent meshComponent = entity.getMeshComponent();
|
||||||
|
|
||||||
text(meshComponent.getMesh());
|
if (meshComponent.hasMesh) {
|
||||||
|
meshComponent.isActive = checkbox("Active", meshComponent.isActive);
|
||||||
|
} else {
|
||||||
|
checkboxDisabled("Active", meshComponent.isActive);
|
||||||
|
}
|
||||||
|
|
||||||
|
space();
|
||||||
|
|
||||||
|
drawIcon("object3d", 64);
|
||||||
|
|
||||||
|
dragDropTarget("MESH", any(meshComponent), setMeshComponentMesh);
|
||||||
|
|
||||||
|
sameline();
|
||||||
|
titleCenterY("Mesh Name", 64);
|
||||||
|
dragDropTarget("MESH", any(meshComponent), setMeshComponentMesh);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void setMeshComponentMesh(any@ meshComponent_data, any@ mesh_data){
|
||||||
|
string mesh;
|
||||||
|
mesh_data.retrieve(mesh);
|
||||||
|
|
||||||
|
MeshComponent meshComponent;
|
||||||
|
meshComponent_data.retrieve(meshComponent);
|
||||||
|
|
||||||
|
print(mesh);
|
||||||
|
meshComponent.setMesh(mesh);
|
||||||
}
|
}
|
@ -20,7 +20,7 @@ class PropertiesPannel : DockPanel {
|
|||||||
if (entity.isRoot)
|
if (entity.isRoot)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
sameLine();
|
sameline();
|
||||||
if (buttonEnd("Add Component")) {
|
if (buttonEnd("Add Component")) {
|
||||||
openPopup("ADD_COMPONENT", any(entity));
|
openPopup("ADD_COMPONENT", any(entity));
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,7 @@ void renameEntity(any@ data) {
|
|||||||
if (inputText("##RENAME", name, name)) {
|
if (inputText("##RENAME", name, name)) {
|
||||||
entity.name = name;
|
entity.name = name;
|
||||||
}
|
}
|
||||||
sameLine();
|
sameline();
|
||||||
if (button("Accept")) {
|
if (button("Accept")) {
|
||||||
closePopup();
|
closePopup();
|
||||||
}
|
}
|
||||||
|
@ -30,7 +30,7 @@ DockId=0x00000001,0
|
|||||||
Pos=880,24
|
Pos=880,24
|
||||||
Size=400,474
|
Size=400,474
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000004,1
|
DockId=0x00000004,0
|
||||||
|
|
||||||
[Window][Viewport]
|
[Window][Viewport]
|
||||||
Pos=258,24
|
Pos=258,24
|
||||||
@ -82,7 +82,7 @@ Collapsed=0
|
|||||||
Pos=880,24
|
Pos=880,24
|
||||||
Size=400,474
|
Size=400,474
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000004,0
|
DockId=0x00000004,1
|
||||||
|
|
||||||
[Window][PropertiesP]
|
[Window][PropertiesP]
|
||||||
Pos=942,24
|
Pos=942,24
|
||||||
@ -103,7 +103,7 @@ DockSpace ID=0xA1672E74 Window=0x4647B76E Pos=0,24 Size=1280,696 Split=Y
|
|||||||
DockNode ID=0x00000003 Parent=0x00000001 SizeRef=878,338 Split=X Selected=0x13926F0B
|
DockNode ID=0x00000003 Parent=0x00000001 SizeRef=878,338 Split=X Selected=0x13926F0B
|
||||||
DockNode ID=0x00000005 Parent=0x00000003 SizeRef=256,446 Selected=0xE45B9F93
|
DockNode ID=0x00000005 Parent=0x00000003 SizeRef=256,446 Selected=0xE45B9F93
|
||||||
DockNode ID=0x00000006 Parent=0x00000003 SizeRef=620,446 CentralNode=1 Selected=0x13926F0B
|
DockNode ID=0x00000006 Parent=0x00000003 SizeRef=620,446 CentralNode=1 Selected=0x13926F0B
|
||||||
DockNode ID=0x00000004 Parent=0x00000001 SizeRef=400,338 Selected=0xA35A27E3
|
DockNode ID=0x00000004 Parent=0x00000001 SizeRef=400,338 Selected=0x2A2C795E
|
||||||
DockNode ID=0x00000002 Parent=0x00000007 SizeRef=2560,331 Selected=0xCF339702
|
DockNode ID=0x00000002 Parent=0x00000007 SizeRef=2560,331 Selected=0xCF339702
|
||||||
DockNode ID=0x00000008 Parent=0xA1672E74 SizeRef=1280,220 Selected=0xD962995A
|
DockNode ID=0x00000008 Parent=0xA1672E74 SizeRef=1280,220 Selected=0xD962995A
|
||||||
|
|
||||||
|
@ -1,466 +0,0 @@
|
|||||||
{
|
|
||||||
"mesh": {
|
|
||||||
"hasNormalData": true,
|
|
||||||
"vertexPositions": [
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 128,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 128,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 128,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 128,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 128,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 128,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 128,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 128,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 128,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 128,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 128,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 128,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"vertexNormals": [
|
|
||||||
{
|
|
||||||
"x": -64,
|
|
||||||
"y": 0,
|
|
||||||
"z": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": -64,
|
|
||||||
"y": 0,
|
|
||||||
"z": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": -64,
|
|
||||||
"y": 0,
|
|
||||||
"z": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": -64,
|
|
||||||
"y": 0,
|
|
||||||
"z": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 64,
|
|
||||||
"y": 0,
|
|
||||||
"z": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 64,
|
|
||||||
"y": 0,
|
|
||||||
"z": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 64,
|
|
||||||
"y": 0,
|
|
||||||
"z": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 64,
|
|
||||||
"y": 0,
|
|
||||||
"z": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 0,
|
|
||||||
"y": -64,
|
|
||||||
"z": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 0,
|
|
||||||
"y": -64,
|
|
||||||
"z": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 0,
|
|
||||||
"y": -64,
|
|
||||||
"z": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 0,
|
|
||||||
"y": -64,
|
|
||||||
"z": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 0,
|
|
||||||
"y": 64,
|
|
||||||
"z": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 0,
|
|
||||||
"y": 64,
|
|
||||||
"z": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 0,
|
|
||||||
"y": 64,
|
|
||||||
"z": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 0,
|
|
||||||
"y": 64,
|
|
||||||
"z": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"z": -64
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"z": -64
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"z": -64
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"z": -64
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"z": 64
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"z": 64
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"z": 64
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"z": 64
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"indices": [0, 2, 1, 0, 3, 2, 4, 6, 5, 4, 7, 6, 8, 10, 9, 8, 11, 10, 12, 14, 13, 12, 15, 14, 16, 18, 17, 16, 19, 18, 20, 22, 21, 20, 23, 22]
|
|
||||||
}
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@ -1,71 +0,0 @@
|
|||||||
{
|
|
||||||
"mesh": {
|
|
||||||
"hasNormalData": true,
|
|
||||||
"vertexPositions": [
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 128,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 128,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 128,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 128,
|
|
||||||
"dec": 64
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 128,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 129,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 129,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 128,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 128,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"vertexNormals": [
|
|
||||||
{
|
|
||||||
"x": 0,
|
|
||||||
"y": 64,
|
|
||||||
"z": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 0,
|
|
||||||
"y": 64,
|
|
||||||
"z": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 0,
|
|
||||||
"y": 64,
|
|
||||||
"z": 0
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"indices": [
|
|
||||||
0,
|
|
||||||
1,
|
|
||||||
2
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
2459
roe/meshes/experiments/meca.dmesh
Normal file
2459
roe/meshes/experiments/meca.dmesh
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,466 +0,0 @@
|
|||||||
{
|
|
||||||
"mesh": {
|
|
||||||
"hasNormalData": true,
|
|
||||||
"vertexPositions": [
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 128,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 128,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 128,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 128,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 128,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 128,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 128,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 128,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 128,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 128,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 128,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 136,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"int": 128,
|
|
||||||
"dec": 0
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"int": 120,
|
|
||||||
"dec": 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"vertexNormals": [
|
|
||||||
{
|
|
||||||
"x": -64,
|
|
||||||
"y": 0,
|
|
||||||
"z": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": -64,
|
|
||||||
"y": 0,
|
|
||||||
"z": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": -64,
|
|
||||||
"y": 0,
|
|
||||||
"z": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": -64,
|
|
||||||
"y": 0,
|
|
||||||
"z": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 64,
|
|
||||||
"y": 0,
|
|
||||||
"z": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 64,
|
|
||||||
"y": 0,
|
|
||||||
"z": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 64,
|
|
||||||
"y": 0,
|
|
||||||
"z": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 64,
|
|
||||||
"y": 0,
|
|
||||||
"z": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 0,
|
|
||||||
"y": -64,
|
|
||||||
"z": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 0,
|
|
||||||
"y": -64,
|
|
||||||
"z": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 0,
|
|
||||||
"y": -64,
|
|
||||||
"z": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 0,
|
|
||||||
"y": -64,
|
|
||||||
"z": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 0,
|
|
||||||
"y": 64,
|
|
||||||
"z": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 0,
|
|
||||||
"y": 64,
|
|
||||||
"z": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 0,
|
|
||||||
"y": 64,
|
|
||||||
"z": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 0,
|
|
||||||
"y": 64,
|
|
||||||
"z": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"z": -64
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"z": -64
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"z": -64
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"z": -64
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"z": 64
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"z": 64
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"z": 64
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"z": 64
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"indices": [0, 2, 1, 0, 3, 2, 4, 6, 5, 4, 7, 6, 8, 10, 9, 8, 11, 10, 12, 14, 13, 12, 15, 14, 16, 18, 17, 16, 19, 18, 20, 22, 21, 20, 23, 22]
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,18 +0,0 @@
|
|||||||
{
|
|
||||||
"voxelAspect": {
|
|
||||||
"name": "",
|
|
||||||
"textureFaces": {
|
|
||||||
"left": "",
|
|
||||||
"right": "",
|
|
||||||
"down": "",
|
|
||||||
"up": "",
|
|
||||||
"front": "",
|
|
||||||
"back": ""
|
|
||||||
},
|
|
||||||
"emission": {
|
|
||||||
"red": 0,
|
|
||||||
"green": 0,
|
|
||||||
"blue": 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"voxel": {
|
|
||||||
"name": "",
|
|
||||||
"type": "air"
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user