funcdef void ReciverFunc(any@ value); funcdef void TransferFunc(any@ from, any@ data); enum key { None = 0, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, K0, K1, K2, K3, K4, K5, K6, K7, K8, K9, Tab, Enter, Escape, Backspace, Space, Delete, Insert, Home, End, PageUp, PageDown, Right, Up, Down, Left, RightCtrl, LeftShift, RightShift, LeftAlt, RightAlt, LeftSuper, RightSuper, LeftCtrl, MouseLeft,MouseRight,MouseMiddle }; //This file was generated automatically enum ResourceType { Mesh = 1, Shader = 2 } class string { ~string(); string(); string(const string&in); string& opAssign(const string&in); string& opAddAssign(const string&in); bool opEquals(const string&in) const; int opCmp(const string&in) const; string opAdd(const string&in) const; uint length() const; void resize(uint); bool isEmpty() const; uint8& opIndex(uint); const uint8& opIndex(uint) const; string& opAssign(double); string& opAddAssign(double); string opAdd(double) const; string opAdd_r(double) const; string& opAssign(float); string& opAddAssign(float); string opAdd(float) const; string opAdd_r(float) const; string& opAssign(int64); string& opAddAssign(int64); string opAdd(int64) const; string opAdd_r(int64) const; string& opAssign(uint64); string& opAddAssign(uint64); string opAdd(uint64) const; string opAdd_r(uint64) const; string& opAssign(bool); string& opAddAssign(bool); string opAdd(bool) const; string opAdd_r(bool) const; string substr(uint start = 0, int count = - 1) const; int findFirst(const string&in, uint start = 0) const; int findFirstOf(const string&in, uint start = 0) const; int findFirstNotOf(const string&in, uint start = 0) const; int findLast(const string&in, int start = - 1) const; int findLastOf(const string&in, int start = - 1) const; int findLastNotOf(const string&in, int start = - 1) const; void insert(uint pos, const string&in other); void erase(uint pos, int count = - 1); } class ref { ~ref(); ref(); ref(const ref&in); ref(const ?&in); void opCast(?&out); ref& opHndlAssign(const ref&in); ref& opHndlAssign(const ?&in); bool opEquals(const ref&in) const; bool opEquals(const ?&in) const; } class any { any& opAssign(any&in); any(); any(?&in); void store(?&in); void store(const int64&in); void store(const double&in); bool retrieve(?&out); bool retrieve(int64&out); bool retrieve(double&out); } class Entity { // Gets the entity's name string get_name() const property; // Sets the entity's name void set_name(string&in) property; // Gets the unique entity ID int get_id() const property; // Creates a new child entity with the given name Entity createChild(const string&in); // Returns true if this entity is the root entity bool get_isRoot() const property; // Destroys this entity void destroy(); // Returns true if the entity currently exists bool get_exists() const property; // Gets the parent entity Entity get_parent() property; // Sets the parent entity void set_parent(Entity) property; // Checks if this entity is a descendant of the given entity bool isDescendantOf(Entity); // Compares this entity with another entity for equality bool opEquals(const Entity&in) const; // Gets the collection of child entities EntityChilds get_childs() const property; // Gets the transform component of the entity TransformComponent get_transform() const property; // Mesh component methods MeshComponent getMeshComponent(); MeshComponent createMeshComponent(); bool hasMeshComponent(); void removeMeshComponent(); // Shader component methods ShaderComponent getShaderComponent(); ShaderComponent createShaderComponent(); bool hasShaderComponent(); void removeShaderComponent(); // Camera component methods CameraComponent getCameraComponent(); CameraComponent createCameraComponent(); bool hasCameraComponent(); void removeCameraComponent(); } class EntityChilds { // Gets the number of child entities int get_count() const property; // Access child entity by index Entity opIndex(int) const; } class TransformComponent { // Gets/sets position vector vec3 get_position() const property; void set_position(const vec3) property; // Gets/sets scale vector vec3 get_scale() const property; void set_scale(const vec3) property; // Gets/sets rotation vector (Euler angles) vec3 get_rotation() const property; void set_rotation(const vec3) property; } class MeshComponent { // Is mesh component active? bool get_isActive() const property; void set_isActive(const bool) property; // Does this component have a mesh assigned? bool get_hasMesh() const property; // Clears the mesh data void clear(); // Gets/sets mesh identifier string getMesh(); void setMesh(string&in); } class ShaderComponent { // Does this component have a shader assigned? bool get_hasShader() const property; // Clears the shader data void clear(); // Gets/sets shader identifier string getShader(); void setShader(const string&in); } class CameraComponent { // Gets/sets field of view float get_fov() const property; void set_fov(float) property; // Gets/sets aspect ratio float get_aspectRatio() const property; void set_aspectRatio(float) property; // Gets/sets near clipping plane distance float get_nearZ() const property; void set_nearZ(float) property; // Gets/sets far clipping plane distance float get_farZ() const property; void set_farZ(float) property; } class vec3 { // Default constructor (zero vector) vec3(); // Constructor with components (y,z default to 0) vec3(float, float = 0, float = 0); // Vector addition vec3 opAdd(const vec3&in); // Vector subtraction vec3 opSub(const vec3&in) const; // Negation vec3 opNeg() const; // Multiply by scalar vec3 opMul(float) const; vec3 opMul_r(float) const; float x; float y; float z; } class quat { ~quat(); quat(); quat(const quat&in); quat(float, float, float, float); // Quaternion multiplication quat opMul(const quat&in) const; // Gets/sets Euler angles representation of the quaternion vec3 getEuler() const; void setEuler(vec3); float x; float y; float z; float w; } class Transform { Transform(); vec3 position; vec3 scale; quat rotation; // Returns a vec3 relative to the transform vec3 relative(vec3); } class Camera { ~Camera(); float fov; float aspect; float nearZ; float farZ; } class SceneCamera { ~SceneCamera(); Camera camera; Transform transform; } class FrameBuffer { // Clears the framebuffer with RGBA color void clearRGBA(int, int, int, int); // Gets the height of the framebuffer int get_height() const property; // Resizes the framebuffer void resize(int, int); // Gets the framebuffer's name string get_name() const property; bool isValid(); } class Environment { // Renders the scene with the given camera and framebuffer target void render(FrameBuffer, SceneCamera); // Gets the root entity of the environment Entity getRootEntity(); // Gets an entity by its ID Entity getEntity(int); // Gets the environment's name string get_name() const property; } class DockPanel { // Called to render the dock panel UI void onRender(); void onInit(); void onMenuBar(); } // Format a signed 64-bit integer to string with optional formatting and width string formatInt(int64 val, const string& in options = "", uint width = 0); // Format an unsigned 64-bit integer to string with optional formatting and width string formatUInt(uint64 val, const string& in options = "", uint width = 0); // Format a double-precision float to string with options, width, and precision string formatFloat(double val, const string& in options = "", uint width = 0, uint precision = 0); // Parse a signed 64-bit integer from string with base, returning byte count parsed int64 parseInt(const string& in str, uint base = 10, uint& out byteCount = 0); // Parse an unsigned 64-bit integer from string with base, returning byte count parsed uint64 parseUInt(const string& in str, uint base = 10, uint& out byteCount = 0); // Parse a double-precision float from string, returning byte count parsed double parseFloat(const string& in str, uint& out byteCount = 0); namespace Engine { // Print a message to the engine's console or log void print(const string& in message); // Retrieve the root entity of the scene or hierarchy Entity getRoot(); // Create an RGBA8 framebuffer with a name and size FrameBuffer createRGBA8FrameBuffer(const string& in name, int width, int height); // Retrieve an existing framebuffer by name FrameBuffer getFrameBuffer(const string& in name); // Get the main environment instance Environment getMainEnvironment(); // Create a new environment with the given name Environment createEnvironment(const string& in name); // Retrieve an environment by name Environment getEnvironment(const string& in name); } namespace Resource { // Get the number of resources of a given type and category int getResourceCount(ResourceType type, const string& in category); // Get the name of a resource by type, category, and resource ID string getResourceNameById(ResourceType type, const string& in category, int id); // Get the file path of a resource by type, category, and resource ID string getResourcePathById(ResourceType type, const string& in category, int id); // Get the number of directories of a given resource type and category int getDirCount(ResourceType type, const string& in category); // Get the path of a directory by resource type, category, and directory ID string getDirPathById(ResourceType type, const string& in category, int id); // Get the name of a directory by resource type, category, and directory ID string getDirNameById(ResourceType type, const string& in category, int id); } namespace UI { // Columns // Setup automatic columns with given count void setupAutomaticColumns(int count); // Setup fixed columns count void setupColumns(int count); // End columns layout void endColumns(); // Move to next column void nextColumn(); // Tree nodes // Draw leaf node with label and open state void treeNodeLeaf(const string& in label, bool open); // Draw tree node with label, open state, data, and callback bool treeNode(const string& in label, bool open, any@ data, ReciverFunc@ cb); // Draw component node with label, data, and callback bool componentNode(const string& in label, any@ data, ReciverFunc@ cb); // Draw component node with context menu support bool componentNode_contextMenu(const string& in label, any@ data, ReciverFunc@ cb, ReciverFunc@ ctxMenu); // Popups & Context menus // Show a context menu popup with callback void contextMenuPopup(const string& in label, any@ data, ReciverFunc@ cb); // Popup attached to an item with label, data, and callback void contextItemPopup(const string& in label, any@ data, ReciverFunc@ cb); // Show a modal popup blocking interaction until closed void modalPopup(const string& in label, ReciverFunc@ cb); // Show a simple popup window with callback void simplePopup(const string& in label, ReciverFunc@ cb); // Open a popup with label and associated data void openPopup(const string& in label, any@ data); // Close the currently opened popup void closePopup(); // Drag & Drop // Start a drag-drop source with type, data, and payload string void dragDropSource(const string& in type, any@ data, const string& in payload); // Define a drag-drop target with type, data, and transfer callback void dragDropTarget(const string& in type, any@ data, TransferFunc@ transfer); // Buttons & Controls // Create a clickable button with label bool button(const string& in label); // Create a centered button bool buttonCenter(const string& in label); // Create a button aligned to the end of the line bool buttonEnd(const string& in label); // Checkbox toggle with label and current value bool checkbox(const string& in label, bool val); // Disabled checkbox with label and current value bool checkboxDisabled(const string& in label, bool val); // Drawing // Draw a framebuffer with given width and height void drawFrameBuffer(FrameBuffer fb, int w, int h); // Draw a framebuffer centered with given dimensions void drawFrameBufferCentered(FrameBuffer fb, int w, int h); // Draw an icon with name and size void drawIcon(const string& in icon, int size); // Draw a centered icon with name and size void drawIconCentered(const string& in icon, int size); // Input & Interaction // Text input field with label, initial value, and output string bool inputText(const string& in label, const string& in initial, string& out result); // Check if an item was clicked with specific mouse button bool isItemClicked(int button); // Check if mouse was double-clicked with specific button bool isMouseDoubleClicked(int button); // Sliders // Slider for a float value with step increment float magicSlider(const string& in label, float val, float step); // Slider for a vec3 value with step increment vec3 magicSlider3(const string& in label, vec3 val, float step); // Menu Items // Selectable menu item with label bool menuItem(const string& in label); // Disabled (non-selectable) menu item with label void menuItemDisabled(const string& in label); // Menu space with label, data, and callback void menuSpace(const string& in label, any@ data, ReciverFunc@ cb); // Layout // Place next UI element on the same line void sameline(); // Draw a horizontal separator line void separator(); // Add vertical space void space(); // Add multiple vertical spaces with optional spacing void space(int count, int spacing=10); // Text // Draw normal text void text(const string& in txt); // Draw centered text void textCenter(const string& in txt); // Draw colored text with RGB and string void textColor(float r, float g, float b, const string& in txt); // Draw text aligned to end void textEnd(const string& in txt); // Titles // Draw a title text void title(const string& in txt); // Draw a centered title void titleCenter(const string& in txt); // Draw a vertically offset centered title void titleCenterY(const string& in txt, int yOffset); // Draw a title aligned to the end void titleEnd(const string& in txt); bool isPannelActive(); bool isKeyDown(key); bool isKeyPressed(key); bool isMouseDraggin(key); float getMouseDragDeltaX(); float getMouseDragDeltaY(); float getMouseDeltaX(); float getMouseDeltaY(); int getAvailableSizeX(); int getAvailableSizeY(); void disablePannelPadding(bool); int sliderInt(string&in, int value, int min, int max); float slider(string&in, float value, float min, float max); }