diff --git a/CMakeLists.txt b/CMakeLists.txt index 938b978..65116de 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,14 +10,18 @@ find_package(Boost REQUIRED) qt_standard_project_setup() add_library(engine STATIC + src/engine/app/gui/Adorn.cpp + src/include/engine/app/gui/Adorn.hpp src/engine/app/humanoid/Humanoid.cpp src/include/engine/app/humanoid/Humanoid.hpp - + src/engine/app/humanoid/Forcefield.cpp + src/include/engine/app/humanoid/Forcefield.hpp src/engine/app/v8/tree/Instance.cpp src/include/engine/app/v8/tree/Instance.hpp - src/engine/app/Name.cpp src/include/engine/app/Name.hpp + src/engine/network/Guid.cpp + src/include/engine/network/Guid.hpp ) qt_add_executable(player diff --git a/src/engine/app/gui/Adorn.cpp b/src/engine/app/gui/Adorn.cpp new file mode 100644 index 0000000..e69de29 diff --git a/src/engine/app/humanoid/Forcefield.cpp b/src/engine/app/humanoid/Forcefield.cpp new file mode 100644 index 0000000..e69de29 diff --git a/src/engine/network/Guid.cpp b/src/engine/network/Guid.cpp new file mode 100644 index 0000000..4801d67 --- /dev/null +++ b/src/engine/network/Guid.cpp @@ -0,0 +1,27 @@ +#include + +RBX::Guid::Guid() +{ + +} + +void RBX::Guid::compare(RBX::Guid* a, RBX::Guid* b) +{ + +} + +void RBX::Guid::generateGUID(std::string* result) +{ +#ifdef _WIN32 + GUID pguid; + wchar_t sz[64]; + char MultiByteStr[64]; + CoCreateGuid(&pguid); + memset(sz, 0, sizeof(sz)); + StringFromGUID2(&pguid) + WideCharToMultiByte(0, 0, sz, 64, MultiByteStr, 64, 0, 0); + result += MultiByteStr; +#else + // TBD: POSIX method +#endif +} \ No newline at end of file diff --git a/src/include/engine/app/gui/Adorn.hpp b/src/include/engine/app/gui/Adorn.hpp new file mode 100644 index 0000000..f627f87 --- /dev/null +++ b/src/include/engine/app/gui/Adorn.hpp @@ -0,0 +1,50 @@ +// TODO: add G3D + +namespace RBX +{ + // 2d rendering api + class Adorn + { + // weird mystery classes + class XAlign + { + + }; + + class YAlign + { + + }; + + class Spacing + { + + }; + + virtual void prepareRenderPass() {}; // NOT IN AdornG3D + virtual void finishRenderPass() {}; // NOT IN AdornG3D + virtual void sparkles() {}; // NOT IN AdornG3D + + virtual void createTextureProxy(G3D::ReferenceCountedPointer *result, std::string *filename) {}; + virtual void getViewport(G3D::Rect2d *result) {]}; + virtual int getWidth() {}; + virtual int getHeight() {}; + virtual void setTexture(int id, G3D::ReferenceCountedPointer texture) {}; + virtual void getTextureSize(G3D::Rect2d *result, G3D::ReferenceCountedPointer texture) {}; + virtual void line2d(G3D::Vector2 *p0, G3D::Vector2 *p1, G3D::Color4 *color) {}; + virtual void outlineRect2d(G3D::Rect2d *rect, float thick, G3D::Color4 *color) {}; + virtual void rect2d(G3D::Rect2d *rect, G3D::Color4 *color) {}; + virtual void get2DStringBounds(G3D::Vector2 *result, std::string *s, long double size, RBX::Adorn::Spacing spacing) {}; + virtual void drawFont2D(G3D::Vector2 *result, std::string *s, G3D::Vector2 *po2d, long double size, G3D::Color4 *color, G3D::color4 *outline, RBX::Adorn::XAlign xalign, RBX::Adorn::YAlign yalign, RBX::Adorn::Spacing spacing) {}; + virtual void setObjectToWorldMatrix(G3D::CoordinateFrame *c) {}; + virtual void setColor(G3D::Color4 *color) {}; + virtual void box(G3D::AABox *box, G3D::Color4 *solidColor, G3D::Color4 *wireColor) {}; + virtual void sphere(G3D::sphere* sphere, G3D::Color4 *solidColor, G3D::Color4 *wireColor) {}; + virtual void explosion(G3D::Sphere* sphere, G3D::Color4 *solidColor, G3D::Color4 *wireColor) {}; + virtual void cylinderAlongX(float radius, float length, G3D::Color4 *solidColor, G3D::Color4 *wireColor) {}; + virtual void ray(G3D::Ray* ray, G3D::Color4 *color, float scale) {}; + virtual void lineSegment(G3D::LineSegment *lineSegment, G3D::Color4 *color, float scale) {}; + virtual void axes(G3D::Color4 *xColor, G3D::Color4 *yColor, G3D::Color4 *zColor, float scale) {}; + virtual void quad(G3D::Vector3 *v0, G3D::Vector3 *v1, G3D::Vector3 *v2, G3D::Vector3 *v3, G3D::Color4 *color) {}; + }; +} \ No newline at end of file diff --git a/src/include/engine/app/humanoid/Forcefield.hpp b/src/include/engine/app/humanoid/Forcefield.hpp new file mode 100644 index 0000000..ff1ff26 --- /dev/null +++ b/src/include/engine/app/humanoid/Forcefield.hpp @@ -0,0 +1,6 @@ +#include + +namespace RBX +{ + void renderForceField(boost::shared_ptr *descendant, RBX::Adorn *adorn, int cycle); +} \ No newline at end of file diff --git a/src/include/engine/network/Guid.hpp b/src/include/engine/network/Guid.hpp new file mode 100644 index 0000000..c08a887 --- /dev/null +++ b/src/include/engine/network/Guid.hpp @@ -0,0 +1,18 @@ +#ifndef __NETWORK_GUID_HPP__ +#define __NETWORK_GUID_HPP__ + +#include + +namespace RBX +{ + class Guid + { + public: + Guid(); + + static void generateGUID(std::string *result); + static void compare(RBX::Guid* a, RBX::Guid* b); + }; +} + +#endif \ No newline at end of file