diff --git a/.gitignore b/.gitignore index 37c9fe57..92b856ed 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,5 @@ Debug/ packages/ +**/out/** +SampleGame/out/ \ No newline at end of file diff --git a/RedEngine/CMakeLists.txt b/RedEngine/CMakeLists.txt new file mode 100644 index 00000000..6c9f8a4e --- /dev/null +++ b/RedEngine/CMakeLists.txt @@ -0,0 +1,55 @@ +cmake_minimum_required(VERSION 3.11) # FetchContent is available in 3.11+ +project(RedEngine) + +# raylib +find_package(raylib QUIET) +if (NOT raylib_FOUND) + include(FetchContent) + FetchContent_Declare( + raylib + GIT_REPOSITORY https://github.com/raysan5/raylib.git + GIT_TAG b6c8d343dca2ef19c23c50975328a028124cf3cb + ) + FetchContent_GetProperties(raylib) + if (NOT raylib_POPULATED) # Have we downloaded raylib yet? + set(FETCHCONTENT_QUIET NO) + FetchContent_Populate(raylib) + set(BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) + set(BUILD_GAMES OFF CACHE BOOL "" FORCE) + set(BUILD_TESTING OFF CACHE BOOL "" FORCE) + add_subdirectory(${raylib_SOURCE_DIR} ${raylib_BINARY_DIR}) + endif() +endif() + +# raylib-cpp +find_package(raylib-cpp QUIET) +if (NOT raylib-cpp_FOUND) + include(FetchContent) + FetchContent_Declare( + raylib-cpp + URL https://github.com/RobLoach/raylib-cpp/archive/master.tar.gz + ) + FetchContent_GetProperties(raylib-cpp) + if (NOT raylib-cpp_POPULATED) # Have we downloaded raylib yet? + set(FETCHCONTENT_QUIET NO) + FetchContent_Populate(raylib-cpp) + set(BUILD_RAYLIB_CPP_EXAMPLES OFF CACHE BOOL "" FORCE) + set(BUILD_TESTING OFF CACHE BOOL "" FORCE) + add_subdirectory(${raylib-cpp_SOURCE_DIR} ${raylib-cpp_BINARY_DIR}) + endif() +endif() + +# RedLib +find_library(RedLib RedLib) +add_subdirectory(../RedLib ../RedLib-build) + +include_directories("Header Files" "../RedLib/Header Files") + +# This is the main part: +set(PROJECT_NAME RedEngine) +set(PROJECT_SOURCES "Source Files/Animation.cpp" "Source Files/AnimationData.cpp" "Source Files/AnimationManager.cpp" "Source Files/Color.cpp" "Source Files/Event.cpp" "Source Files/EventListener.cpp" "Source Files/EventSystem.cpp" "Source Files/KeyboardEvent.cpp" "Source Files/MouseEvent.cpp" "Source Files/GraphicsBuffer.cpp" "Source Files/GraphicsBufferManager.cpp" "Source Files/GraphicsSystem.cpp" "Source Files/InputSystem.cpp" "Source Files/Sprite.cpp" "Source Files/Camera2D.cpp") +add_library(${PROJECT_NAME} ${PROJECT_SOURCES}) +set(raylib_VERBOSE 1) +target_include_directories(RedEngine PUBLIC ../RedLib ../RedLib-build) +target_link_libraries(${PROJECT_NAME} PUBLIC raylib RedLib) +# That's it! You should have an example executable that you can run. Have fun! diff --git a/RedEngine/Header Files/Animation.h b/RedEngine/Header Files/Animation.h new file mode 100644 index 00000000..4ccefce8 --- /dev/null +++ b/RedEngine/Header Files/Animation.h @@ -0,0 +1,31 @@ +#pragma once +#include "Trackable.h" +#include + +class Sprite; +class GraphicsBuffer; +class AnimationData; + +class Animation : public Trackable +{ + +public: + friend class AnimationManager; + + void update(double deltaTime); + + Sprite* getCurrentSprite(); + +private: + Animation() = delete; + Animation(AnimationData* data, int fps); + ~Animation(); + + AnimationData* mAnimData; + int mCurrentFrame; + + int mFPS; + double mTimePerFrame; + double mTimer; + +}; diff --git a/RedEngine/Header Files/AnimationData.h b/RedEngine/Header Files/AnimationData.h new file mode 100644 index 00000000..7c15225b --- /dev/null +++ b/RedEngine/Header Files/AnimationData.h @@ -0,0 +1,25 @@ +#include "Trackable.h" +#include + +class Sprite; +class GraphicsBuffer; + +class AnimationData : public Trackable +{ + +public: + friend class AnimationManager; + + Sprite* getSprite(int index); + int getFrameCount() { return mSprites.size(); } + +private: + AnimationData() = delete; + AnimationData(Sprite* frames, int numOfFrames); + AnimationData(GraphicsBuffer* gb, int rows, int columns, float scale = 1.0f); + ~AnimationData(); + + std::vector mSprites; + bool mOwnsSprites; + +}; \ No newline at end of file diff --git a/RedEngine/Header Files/AnimationManager.h b/RedEngine/Header Files/AnimationManager.h new file mode 100644 index 00000000..0c8ba968 --- /dev/null +++ b/RedEngine/Header Files/AnimationManager.h @@ -0,0 +1,52 @@ +#include "Trackable.h" +#include +#include +#include + +class Animation; +class AnimationData; +class Sprite; +class GraphicsBuffer; + +class AnimationManager : public Trackable +{ + +public: + AnimationManager(); + ~AnimationManager(); + + int getNumOfAnimations() { return mAnimations.size(); } + int getNumOfAnimData() { return mAnimData.size(); } + + Animation* createAnimation(AnimationData* data, int fps); + Animation* createAndManageAnimation(AnimationData* data, int fps); + + AnimationData* createAnimationData(Sprite* frames, int numOfFrames); + AnimationData* createAnimationData(GraphicsBuffer* gb, int rows, int columns, float scale = 1.0f); + AnimationData* createAndManageAnimationData(std::string key, Sprite* frames, int numOfFrames); + AnimationData* createAndManageAnimationData(std::string key, GraphicsBuffer* gb, int rows, int columns, float scale = 1.0f); + + void addAnimation(Animation* anim); + void removeAnimation(Animation* anim); + void removeAndDeleteAnimation(Animation* anim); + void deleteAnimation(Animation* anim); + + void addAnimationData(std::string key, AnimationData* data); + void removeAnimationData(std::string key); + void removeAndDeleteAnimationData(std::string key); + void deleteAnimationData(AnimationData* data); + + int findAnimation(Animation* anim); + Animation* getAnimationAt(int index); + + std::string findAnimationDataKey(AnimationData* data); + AnimationData* getAnimationData(std::string key); + + void update(float deltaTime); + + void clear(); + +private: + std::vector mAnimations; + std::unordered_map mAnimData; +}; \ No newline at end of file diff --git a/RedEngine/Header Files/Camera2D.h b/RedEngine/Header Files/Camera2D.h new file mode 100644 index 00000000..74f6fba4 --- /dev/null +++ b/RedEngine/Header Files/Camera2D.h @@ -0,0 +1,21 @@ +#pragma once + +#include "Trackable.h" +#include "Vector2D.h" + +class RCamera2D : public Trackable +{ + +public: + RCamera2D(); + RCamera2D(Vector2D location); + ~RCamera2D(); + + void setLoc(Vector2D location) { mLoc = location; } + + Vector2D getLoc() { return mLoc; } + +private: + Vector2D mLoc; + +}; \ No newline at end of file diff --git a/RedEngine/Header Files/Color.h b/RedEngine/Header Files/Color.h new file mode 100644 index 00000000..c102777e --- /dev/null +++ b/RedEngine/Header Files/Color.h @@ -0,0 +1,24 @@ +#pragma once + +#include "LibraryIncludes.h" +#include "Trackable.h" + +const int MAX_COLOR_VALUE = 255; + +class RColor : public Trackable +{ + +public: + friend class GraphicsSystem; + + RColor(); + ~RColor(); + RColor(int, int, int, int); + RColor(float, float, float, float); + +private: + int mR, mG, mB, mA; + + raylib::Color getRayColor(); + +}; diff --git a/RedEngine/Header Files/Event.h b/RedEngine/Header Files/Event.h new file mode 100644 index 00000000..252b5ea5 --- /dev/null +++ b/RedEngine/Header Files/Event.h @@ -0,0 +1,28 @@ +#pragma once + +#include "Trackable.h" + +enum EventType +{ + INVALID_EVENT_TYPE = -1, + KEYBOARD_EVENT, + MOUSE_ACTION_EVENT, + PLAYER_MOVE_EVENT, + NUM_EVENT_TYPES +}; + +class Event : public Trackable +{ + +public: + Event(EventType); + virtual ~Event(); + + EventType getType() const { return mType; } + +private: + Event() = delete; + + EventType mType; + +}; \ No newline at end of file diff --git a/RedEngine/Header Files/EventListener.h b/RedEngine/Header Files/EventListener.h new file mode 100644 index 00000000..8aaca5eb --- /dev/null +++ b/RedEngine/Header Files/EventListener.h @@ -0,0 +1,16 @@ +#pragma once + +#include "Trackable.h" + +class Event; + +class EventListener : public Trackable +{ + +public: + EventListener(); + virtual ~EventListener(); + + virtual void handleEvent(const Event&) = 0; + +}; \ No newline at end of file diff --git a/RedEngine/Header Files/EventSystem.h b/RedEngine/Header Files/EventSystem.h new file mode 100644 index 00000000..4f8de4cc --- /dev/null +++ b/RedEngine/Header Files/EventSystem.h @@ -0,0 +1,28 @@ +#pragma once + +#include "Trackable.h" +#include "Event.h" +#include + +class EventListener; + +class EventSystem : public Trackable +{ + +public: + static void cleanupInstance(); + static EventSystem* getInstance(); + + void addListener(EventType, EventListener*); + bool removeListener(EventType, EventListener*); + void removeListenerFromAllEvents(EventListener*); + void fireEvent(const Event&); + +private: + EventSystem(); + ~EventSystem(); + + static EventSystem* mspInstance; + std::multimap mListenerMap; + +}; \ No newline at end of file diff --git a/RedEngine/Header Files/GraphicsBuffer.h b/RedEngine/Header Files/GraphicsBuffer.h new file mode 100644 index 00000000..2efe8e7d --- /dev/null +++ b/RedEngine/Header Files/GraphicsBuffer.h @@ -0,0 +1,27 @@ +#pragma once +#include "LibraryIncludes.h" +#include "Trackable.h" +#include "Vector2D.h" + +class GraphicsBuffer : public Trackable +{ +public: + friend class GraphicsSystem; + friend class GraphicsBufferManager; + + void loadFromFile(std::string filename); + + void unload(); + + int getWidth() { return mWidth; } + int getHeight() { return mHeight; } + +private: + GraphicsBuffer() = delete; + GraphicsBuffer(std::string filename); + ~GraphicsBuffer(); + + raylib::Texture* mTexture; + int mWidth, mHeight; + +}; \ No newline at end of file diff --git a/RedEngine/Header Files/GraphicsBufferManager.h b/RedEngine/Header Files/GraphicsBufferManager.h new file mode 100644 index 00000000..9f00b955 --- /dev/null +++ b/RedEngine/Header Files/GraphicsBufferManager.h @@ -0,0 +1,31 @@ +#include "Trackable.h" +#include + +class GraphicsBuffer; + +class GraphicsBufferManager : public Trackable +{ + +public: + GraphicsBufferManager(); + ~GraphicsBufferManager(); + + int getNumOfGraphicsBuffers() { return mGraphicsBuffers.size(); } + + GraphicsBuffer* createGraphicsBuffer(std::string filename); + GraphicsBuffer* createAndManageGraphicsBuffer(std::string key, std::string filename); + + void addGraphicsBuffer(std::string key, GraphicsBuffer* gb); + void removeGraphicsBuffer(std::string key); + void removeAndDeleteGraphicsBuffer(std::string key); + void deleteGraphicsBuffer(GraphicsBuffer* gb); + + std::string findGraphicsBufferKey(GraphicsBuffer* gb); + GraphicsBuffer* getGraphicsBuffer(std::string key); + + void clear(); + +private: + std::unordered_map mGraphicsBuffers; + +}; \ No newline at end of file diff --git a/RedEngine/Header Files/GraphicsSystem.h b/RedEngine/Header Files/GraphicsSystem.h new file mode 100644 index 00000000..10bb45f7 --- /dev/null +++ b/RedEngine/Header Files/GraphicsSystem.h @@ -0,0 +1,50 @@ +#pragma once + +#include "LibraryIncludes.h" +#include "Vector2D.h" +#include "Trackable.h" + + +class RColor; +class GraphicsBuffer; +class Sprite; +class RCamera2D; + +class GraphicsSystem : public Trackable +{ + +public: + GraphicsSystem(); + ~GraphicsSystem(); + + void init(); + void init(int width, int height, std::string title = "InfraRED"); + + void cleanup(); + + void clearScreenToColor(RColor); + void drawText(std::string text, Vector2D loc, RColor col, int fontSize = 12); + void draw(GraphicsBuffer* gb, Vector2D loc, float scale = 1.0f); //draw GraphicsBuffer to given location + void draw(Sprite* sprite, Vector2D loc); //draw Sprite to given location + + int getScreenWidth() { return mWidth; } + int getScreenHeight() { return mHeight; } + + void setCameraLocation(Vector2D location); + Vector2D getCameraLocation(); + + void flip(); + + bool isRunning(); + +private: + raylib::Window* mWindow; + int mWidth, mHeight; + + RCamera2D* mCamera; + + bool mIsInit; + + raylib::Vector2 convertVector(Vector2D vec); + +}; diff --git a/RedEngine/Header Files/InputSystem.h b/RedEngine/Header Files/InputSystem.h new file mode 100644 index 00000000..38ad49d9 --- /dev/null +++ b/RedEngine/Header Files/InputSystem.h @@ -0,0 +1,90 @@ +#pragma once +#include "Trackable.h" +#include "Vector2D.h" + +enum KeyCode +{ + Key_A = 65, + Key_B, + Key_C, + Key_D, + Key_E, + Key_F, + Key_G, + Key_H, + Key_I, + Key_J, + Key_K, + Key_L, + Key_M, + Key_N, + Key_O, + Key_P, + Key_Q, + Key_R, + Key_S, + Key_T, + Key_U, + Key_V, + Key_W, + Key_X, + Key_Y, + Key_Z, + + Key_Enter = 257, + Key_Space = 32, + Key_Escape = 256, + Key_Tab = 258, + + Key_Right = 262, + Key_Left, + Key_Down, + Key_Up, + + Key_Max +}; + +enum ButtonState +{ + BUTTON_DOWN, + BUTTON_HELD, + BUTTON_UP +}; + +const int MOUSE_BUTTON_MAX = 2; + +class InputSystem : public Trackable +{ + +public: + static InputSystem* getInstance(); + static void cleanupInstance(); + + void inputUpdate(float currentTime); + + int getMouseX(); + int getMouseY(); + Vector2D getMousePosition(); + + void setHorizonalMovementAxis(float); + void setVerticalMovementAxis(float); + void setMovementAxis(Vector2D); + + Vector2D getMovementAxis() const { return mMovementAxis; } + +private: + InputSystem(); + ~InputSystem(); + + bool getKeyDown(KeyCode key); + bool getKeyUp(KeyCode key); + bool getKey(KeyCode key); + + bool getMouseButtonDown(int button); + bool getMouseButtonUp(int button); + bool getMouseButton(int button); + + Vector2D mMovementAxis; + + static InputSystem* mspInstance; +}; diff --git a/RedEngine/Header Files/KeyboardEvent.h b/RedEngine/Header Files/KeyboardEvent.h new file mode 100644 index 00000000..a965ad1c --- /dev/null +++ b/RedEngine/Header Files/KeyboardEvent.h @@ -0,0 +1,22 @@ +#pragma once + +#include "Event.h" +#include "InputSystem.h" + +class KeyboardEvent : public Event +{ + +public: + KeyboardEvent(KeyCode, ButtonState); + ~KeyboardEvent(); + + KeyCode getKey() const { return mKey; } + ButtonState getButtonState() const { return mState; } + +private: + KeyboardEvent() = delete; + + KeyCode mKey; + ButtonState mState; + +}; \ No newline at end of file diff --git a/RedEngine/Header Files/LibraryIncludes.h b/RedEngine/Header Files/LibraryIncludes.h new file mode 100644 index 00000000..70eaae06 --- /dev/null +++ b/RedEngine/Header Files/LibraryIncludes.h @@ -0,0 +1,2 @@ +#pragma once +#include <../raylib-cpp/include/raylib-cpp.hpp> \ No newline at end of file diff --git a/RedEngine/Header Files/MouseEvent.h b/RedEngine/Header Files/MouseEvent.h new file mode 100644 index 00000000..69fbae56 --- /dev/null +++ b/RedEngine/Header Files/MouseEvent.h @@ -0,0 +1,25 @@ +#pragma once + +#include "Event.h" + +enum ButtonState; + +class MouseEvent : public Event +{ + +public: + MouseEvent(int button, ButtonState, float); + ~MouseEvent(); + + int getMouseButton() const { return mButton; } + int getButtonState() const { return mState; } + float getTime() const { return time; } + +private: + MouseEvent() = delete; + + int mButton; + ButtonState mState; + float time; + +}; \ No newline at end of file diff --git a/RedEngine/Header Files/Sprite.h b/RedEngine/Header Files/Sprite.h new file mode 100644 index 00000000..4c8edbc0 --- /dev/null +++ b/RedEngine/Header Files/Sprite.h @@ -0,0 +1,25 @@ +#pragma once +#include "Trackable.h" +#include "Vector2D.h" + +class GraphicsBuffer; + +class Sprite : public Trackable +{ +public: + friend class GraphicsSystem; + + Sprite(GraphicsBuffer* gb, Vector2D loc, Vector2D size, float scale = 1.0f); + ~Sprite(); + + Vector2D getSize() { return mSize; } + Vector2D getLocation() { return mLoc; } + float getScale() { return mScale; } + +private: + Sprite() = delete; + + GraphicsBuffer* mpGraphicsBuffer; + Vector2D mLoc, mSize; + float mScale; +}; diff --git a/RedEngine/Source Files/Animation.cpp b/RedEngine/Source Files/Animation.cpp new file mode 100644 index 00000000..3f8e3476 --- /dev/null +++ b/RedEngine/Source Files/Animation.cpp @@ -0,0 +1,40 @@ +#include "Animation.h" +#include "Sprite.h" +#include "GraphicsBuffer.h" +#include "AnimationData.h" + +Animation::Animation(AnimationData* data, int fps) +{ + mAnimData = data; + + mCurrentFrame = 0; + + mFPS = fps; + mTimePerFrame = 1.0 / fps; + mTimer = 0.0; +} + +Animation::~Animation() +{ + +} + +void Animation::update(double deltaTime) +{ + mTimer += deltaTime; + while (mTimer >= mTimePerFrame) + { + mTimer -= mTimePerFrame; + + mCurrentFrame++; + if (mCurrentFrame >= mAnimData->getFrameCount()) + { + mCurrentFrame = 0; + } + } +} + +Sprite* Animation::getCurrentSprite() +{ + return mAnimData->getSprite(mCurrentFrame); +} \ No newline at end of file diff --git a/RedEngine/Source Files/AnimationData.cpp b/RedEngine/Source Files/AnimationData.cpp new file mode 100644 index 00000000..416c48e5 --- /dev/null +++ b/RedEngine/Source Files/AnimationData.cpp @@ -0,0 +1,52 @@ +#include "AnimationData.h" +#include "Sprite.h" +#include "GraphicsBuffer.h" + +AnimationData::AnimationData(Sprite* frames, int numOfFrames) +{ + mSprites.resize(numOfFrames); + + for(int i = 0; i < numOfFrames; i++) + { + mSprites.push_back(frames + i); //Pointer math + } + + mOwnsSprites = false; +} + +AnimationData::AnimationData(GraphicsBuffer* gb, int rows, int columns, float scale) +{ + mOwnsSprites = true; + + int spriteWidth = gb->getWidth() / columns; + int spriteHeight = gb->getHeight() / rows; + + + for(int j = 0; j < rows; j++) + { + for(int i = 0; i < columns; i++) + { + Sprite* spr = new Sprite(gb, Vector2D(i * spriteWidth, j * spriteHeight), Vector2D(spriteWidth, spriteHeight), scale); + mSprites.push_back(spr); + } + } +} + +AnimationData::~AnimationData() +{ + if (mOwnsSprites) + { + while(mSprites.size() > 0) + { + Sprite* spr = mSprites.back(); + delete spr; + mSprites.pop_back(); + } + + } +} + +Sprite* AnimationData::getSprite(int index) +{ + return mSprites.at(index); +} \ No newline at end of file diff --git a/RedEngine/Source Files/AnimationManager.cpp b/RedEngine/Source Files/AnimationManager.cpp new file mode 100644 index 00000000..1995f68f --- /dev/null +++ b/RedEngine/Source Files/AnimationManager.cpp @@ -0,0 +1,185 @@ +#include "AnimationManager.h" +#include "AnimationData.h" +#include "Animation.h" + +using namespace std; + +AnimationManager::AnimationManager() +{ + +} + +AnimationManager::~AnimationManager() +{ + if(!mAnimations.empty()) + { + clear(); + } +} + +Animation* AnimationManager::createAnimation(AnimationData* data, int fps) +{ + return new Animation(data, fps); +} + +Animation* AnimationManager::createAndManageAnimation(AnimationData* data, int fps) +{ + Animation* anim = new Animation(data, fps); + mAnimations.push_back(anim); + return anim; +} + +void AnimationManager::addAnimation(Animation* anim) +{ + mAnimations.push_back(anim); +} + +void AnimationManager::removeAnimation(Animation* anim) +{ + for(vector::iterator i = mAnimations.begin(); i != mAnimations.end(); i++) + { + if(*i == anim) + { + mAnimations.erase(i); + return; + } + } +} + +void AnimationManager::removeAndDeleteAnimation(Animation* anim) +{ + for(vector::iterator i = mAnimations.begin(); i != mAnimations.end(); i++) + { + if(*i == anim) + { + delete *i; + mAnimations.erase(i); + return; + } + } +} + +void AnimationManager::deleteAnimation(Animation* anim) +{ + delete anim; +} + +int AnimationManager::findAnimation(Animation* anim) +{ + int index = 0; + for(vector::iterator i = mAnimations.begin(); i != mAnimations.end(); i++) + { + if(*i == anim) + { + return index; + } + index++; + } + return -1; +} + +Animation* AnimationManager::getAnimationAt(int index) +{ + int ind = 0; + for(vector::iterator i = mAnimations.begin(); i != mAnimations.end(); i++) + { + if(ind != index) + { + ind++; + continue; + } + + return *i; + } + return nullptr; +} + +void AnimationManager::update(float deltaTime) +{ + for(vector::iterator i = mAnimations.begin(); i != mAnimations.end(); i++) + { + (*i)->update(deltaTime); + } +} + +void AnimationManager::clear() +{ + if(mAnimations.size() > 0) + { + for(vector::iterator i = mAnimations.begin(); i != mAnimations.end(); i++) + { + delete (*i); + } + } + + if(mAnimData.size() > 0) + { + for(unordered_map::iterator i = mAnimData.begin(); i != mAnimData.end(); i++) + { + delete (*i).second; + } + } + + mAnimations.clear(); + mAnimData.clear(); +} + +AnimationData* AnimationManager::createAnimationData(Sprite* frames, int numOfFrames) +{ + return new AnimationData(frames, numOfFrames); +} + +AnimationData* AnimationManager::createAnimationData(GraphicsBuffer* gb, int rows, int columns, float scale) +{ + return new AnimationData(gb, rows, columns, scale); +} + +AnimationData* AnimationManager::createAndManageAnimationData(string key, Sprite* frames, int numOfFrames) +{ + AnimationData* data = new AnimationData(frames, numOfFrames); + mAnimData.emplace(key, data); + return data; +} + +AnimationData* AnimationManager::createAndManageAnimationData(string key, GraphicsBuffer* gb, int rows, int columns, float scale) +{ + AnimationData* data = new AnimationData(gb, rows, columns, scale); + mAnimData.emplace(key, data); + return data; +} + +void AnimationManager::addAnimationData(string key, AnimationData* data) +{ + mAnimData.emplace(key, data); +} + +void AnimationManager::removeAnimationData(string key) +{ + mAnimData.erase(key); +} + +void AnimationManager::removeAndDeleteAnimationData(string key) +{ + delete mAnimData.at(key); + mAnimData.erase(key); +} + +void AnimationManager::deleteAnimationData(AnimationData* data) +{ + delete data; +} + +string AnimationManager::findAnimationDataKey(AnimationData* data) +{ + for(unordered_map::iterator i = mAnimData.begin(); i != mAnimData.end(); i++) + { + if(data == (*i).second) + return (*i).first; + } + return ""; +} + +AnimationData* AnimationManager::getAnimationData(string key) +{ + return mAnimData.at(key); +} \ No newline at end of file diff --git a/RedEngine/Source Files/Camera2D.cpp b/RedEngine/Source Files/Camera2D.cpp new file mode 100644 index 00000000..e9e098de --- /dev/null +++ b/RedEngine/Source Files/Camera2D.cpp @@ -0,0 +1,16 @@ +#include "Camera2D.h" + +RCamera2D::RCamera2D() +{ + mLoc = Vector2D::Zero(); +} + +RCamera2D::RCamera2D(Vector2D location) +{ + mLoc = location; +} + +RCamera2D::~RCamera2D() +{ + +} \ No newline at end of file diff --git a/RedEngine/Source Files/Color.cpp b/RedEngine/Source Files/Color.cpp new file mode 100644 index 00000000..27bd62d0 --- /dev/null +++ b/RedEngine/Source Files/Color.cpp @@ -0,0 +1,35 @@ +#include "Color.h" + +RColor::RColor() +{ + mR = 0; + mG = 0; + mB = 0; + mA = 255; +} + +RColor::~RColor() +{ + +} + +RColor::RColor(int red, int green, int blue, int alpha) +{ + mR = red; + mG = green; + mB = blue; + mA = alpha; +} + +RColor::RColor(float red, float green, float blue, float alpha) +{ + mR = (int)(red * MAX_COLOR_VALUE); + mG = (int)(green * MAX_COLOR_VALUE); + mB = (int)(blue * MAX_COLOR_VALUE); + mA = (int)(alpha * MAX_COLOR_VALUE); +} + +raylib::Color RColor::getRayColor() +{ + return raylib::Color(mR, mG, mB, mA); +} \ No newline at end of file diff --git a/RedEngine/Source Files/Event.cpp b/RedEngine/Source Files/Event.cpp new file mode 100644 index 00000000..238f2111 --- /dev/null +++ b/RedEngine/Source Files/Event.cpp @@ -0,0 +1,11 @@ +#include "Event.h" + +Event::Event(EventType type) +{ + mType = type; +} + +Event::~Event() +{ + +} \ No newline at end of file diff --git a/RedEngine/Source Files/EventListener.cpp b/RedEngine/Source Files/EventListener.cpp new file mode 100644 index 00000000..ec38b1ca --- /dev/null +++ b/RedEngine/Source Files/EventListener.cpp @@ -0,0 +1,11 @@ +#include "EventListener.h" + +EventListener::EventListener() +{ + +} + +EventListener::~EventListener() +{ + +} \ No newline at end of file diff --git a/RedEngine/Source Files/EventSystem.cpp b/RedEngine/Source Files/EventSystem.cpp new file mode 100644 index 00000000..00b9d95b --- /dev/null +++ b/RedEngine/Source Files/EventSystem.cpp @@ -0,0 +1,84 @@ +#include "Event.h" +#include "EventListener.h" +#include "EventSystem.h" + +using namespace std; + +EventSystem* EventSystem::mspInstance = nullptr; + +EventSystem* EventSystem::getInstance() +{ + if(!mspInstance) + mspInstance = new EventSystem(); + + return mspInstance; +} + +void EventSystem::cleanupInstance() +{ + if(mspInstance) + delete mspInstance; +} + +void EventSystem::addListener(EventType type, EventListener* listener) +{ + mListenerMap.insert(pair(type, listener)); +} + +bool EventSystem::removeListener(EventType type, EventListener* listener) +{ + pair::iterator, multimap::iterator> range; + range = mListenerMap.equal_range(type); + + for(multimap::iterator i = range.first; i!= range.second; ++i) + { + if(i->second == listener) + { + mListenerMap.erase(i); + return true; + } + } + return false; +} + +void EventSystem::removeListenerFromAllEvents(EventListener* listener) +{ + + bool allTheWayThrough = false; + + while(!allTheWayThrough) + { + allTheWayThrough = true; + for(multimap::iterator i = mListenerMap.begin(); i != mListenerMap.end(); ++i) + { + if(i->second == listener) + { + mListenerMap.erase(i); + allTheWayThrough = false; + break; + } + } + } + +} + +void EventSystem::fireEvent(const Event& event) +{ + pair::iterator, multimap::iterator> range; + range = mListenerMap.equal_range(event.getType()); + + for(multimap::iterator i = range.first; i != range.second; ++i) + { + i->second->handleEvent(event); + } +} + +EventSystem::EventSystem() +{ + +} + +EventSystem::~EventSystem() +{ + +} \ No newline at end of file diff --git a/RedEngine/Source Files/GraphicsBuffer.cpp b/RedEngine/Source Files/GraphicsBuffer.cpp new file mode 100644 index 00000000..ac2adc15 --- /dev/null +++ b/RedEngine/Source Files/GraphicsBuffer.cpp @@ -0,0 +1,32 @@ +#include "GraphicsBuffer.h" + +using namespace std; + +GraphicsBuffer::GraphicsBuffer(string filename) +{ + mTexture = new raylib::Texture(filename); + mWidth = mTexture->GetWidth(); + mHeight = mTexture->GetHeight(); +} + +GraphicsBuffer::~GraphicsBuffer() +{ + unload(); + delete mTexture; + mTexture = nullptr; +} + +void GraphicsBuffer::loadFromFile(string filename) +{ + unload(); + mTexture->Load(filename); + mWidth = mTexture->GetWidth(); + mHeight = mTexture->GetHeight(); +} + +void GraphicsBuffer::unload() +{ + mTexture->Unload(); + mWidth = 0; + mHeight = 0; +} \ No newline at end of file diff --git a/RedEngine/Source Files/GraphicsBufferManager.cpp b/RedEngine/Source Files/GraphicsBufferManager.cpp new file mode 100644 index 00000000..a45f2703 --- /dev/null +++ b/RedEngine/Source Files/GraphicsBufferManager.cpp @@ -0,0 +1,72 @@ +#include "GraphicsBufferManager.h" +#include "GraphicsBuffer.h" + +using namespace std; + +GraphicsBufferManager::GraphicsBufferManager() +{ + +} + +GraphicsBufferManager::~GraphicsBufferManager() +{ + if(mGraphicsBuffers.size() > 0) + clear(); +} + +GraphicsBuffer* GraphicsBufferManager::createGraphicsBuffer(string filename) +{ + return new GraphicsBuffer(filename); +} + +GraphicsBuffer* GraphicsBufferManager::createAndManageGraphicsBuffer(string key, string filename) +{ + GraphicsBuffer* gb = new GraphicsBuffer(filename); + mGraphicsBuffers.emplace(key, gb); + return gb; +} + +void GraphicsBufferManager::addGraphicsBuffer(string key, GraphicsBuffer* gb) +{ + mGraphicsBuffers.emplace(key, gb); +} + +void GraphicsBufferManager::removeGraphicsBuffer(string key) +{ + mGraphicsBuffers.erase(key); +} + +void GraphicsBufferManager::removeAndDeleteGraphicsBuffer(string key) +{ + delete mGraphicsBuffers.at(key); + mGraphicsBuffers.erase(key); +} + +void GraphicsBufferManager::deleteGraphicsBuffer(GraphicsBuffer* gb) +{ + delete gb; +} + +string GraphicsBufferManager::findGraphicsBufferKey(GraphicsBuffer* gb) +{ + for(unordered_map::iterator i = mGraphicsBuffers.begin(); i != mGraphicsBuffers.end(); i++) + { + if((*i).second == gb) + return (*i).first; + } + return ""; +} + +GraphicsBuffer* GraphicsBufferManager::getGraphicsBuffer(string key) +{ + return mGraphicsBuffers.at(key); +} + +void GraphicsBufferManager::clear() +{ + for(unordered_map::iterator i = mGraphicsBuffers.begin(); i != mGraphicsBuffers.end(); i++) + { + delete (*i).second; + } + mGraphicsBuffers.clear(); +} \ No newline at end of file diff --git a/RedEngine/Source Files/GraphicsSystem.cpp b/RedEngine/Source Files/GraphicsSystem.cpp new file mode 100644 index 00000000..5030353d --- /dev/null +++ b/RedEngine/Source Files/GraphicsSystem.cpp @@ -0,0 +1,132 @@ +#include "GraphicsSystem.h" +#include "Color.h" +#include "GraphicsBuffer.h" +#include "Sprite.h" +#include "Camera2D.h" + +using namespace raylib; +using namespace std; + +GraphicsSystem::GraphicsSystem() +{ + mWidth = 0; + mHeight = 0; + mWindow = nullptr; + mCamera = nullptr; + mIsInit = false; +} + +GraphicsSystem::~GraphicsSystem() +{ + cleanup(); +} + +bool GraphicsSystem::isRunning() +{ + return !mWindow->ShouldClose(); +} + +void GraphicsSystem::init(int width, int height, std::string title) +{ + if (!mIsInit) + { + mWidth = width; + mHeight = height; + mWindow = new Window(width, height, title); + + mIsInit = true; + + mCamera = new RCamera2D(); + + SetTargetFPS(60); + + BeginDrawing(); + } + +} + +void GraphicsSystem::init() +{ + if (!mIsInit) + { + mWidth = 800; + mHeight = 450; + mWindow = new Window(); + + mIsInit = true; + + mCamera = new RCamera2D(); + + SetTargetFPS(60); + + BeginDrawing(); + } + +} + +void GraphicsSystem::cleanup() +{ + + if (mIsInit) + { + EndDrawing(); + + delete mCamera; + mCamera = nullptr; + + delete mWindow; + mWindow = nullptr; + + mIsInit = false; + } + +} + +void GraphicsSystem::flip() +{ + EndDrawing(); + BeginDrawing(); +} + +void GraphicsSystem::clearScreenToColor(RColor col) +{ + mWindow->ClearBackground(col.getRayColor()); +} + +void GraphicsSystem::drawText(string text, Vector2D loc, RColor col, int fontSize) +{ + loc -= mCamera->getLoc(); //Camera Adjustment + + col.getRayColor().DrawText(text, loc.getX(), loc.getY(), fontSize); +} + +void GraphicsSystem::draw(GraphicsBuffer* gb, Vector2D loc, float scale) +{ + loc -= mCamera->getLoc(); //Camera Adjustment + + gb->mTexture->Draw(convertVector(loc), 0.0f, scale); +} + +void GraphicsSystem::draw(Sprite* sprite, Vector2D loc) +{ + loc -= mCamera->getLoc(); //Camera Adjustment + + sprite->mpGraphicsBuffer->mTexture->Draw( + raylib::Rectangle(sprite->mLoc.getX(), sprite->mLoc.getY(), sprite->mSize.getX(), sprite->mSize.getY()), //Dimentions of the sprite on the Texture + raylib::Rectangle(loc.getX(), loc.getY(), sprite->mSize.getX() * sprite->mScale, sprite->mSize.getY() * sprite->mScale)); //convertVector(loc)); //Location to draw on screen +} + +raylib::Vector2 GraphicsSystem::convertVector(Vector2D vec) +{ + return raylib::Vector2(vec.getX(), vec.getY()); +} + +void GraphicsSystem::setCameraLocation(Vector2D location) +{ + mCamera->setLoc(location); +} + +Vector2D GraphicsSystem::getCameraLocation() +{ + return mCamera->getLoc(); +} \ No newline at end of file diff --git a/RedEngine/Source Files/InputSystem.cpp b/RedEngine/Source Files/InputSystem.cpp new file mode 100644 index 00000000..3db8f5fa --- /dev/null +++ b/RedEngine/Source Files/InputSystem.cpp @@ -0,0 +1,150 @@ +#include "InputSystem.h" +#include "LibraryIncludes.h" +#include +#include "EventSystem.h" +#include "KeyboardEvent.h" +#include "MouseEvent.h" + +InputSystem* InputSystem::mspInstance = nullptr; + +InputSystem::InputSystem() +{ + +} + +InputSystem::~InputSystem() +{ + +} + +InputSystem* InputSystem::getInstance() +{ + if(!mspInstance) + mspInstance = new InputSystem; + + return mspInstance; +} + +void InputSystem::cleanupInstance() +{ + if(mspInstance) + delete mspInstance; +} + +bool InputSystem::getKey(KeyCode key) +{ + return IsKeyDown(key); +} + +bool InputSystem::getKeyDown(KeyCode key) +{ + return IsKeyPressed(key); +} + +bool InputSystem::getKeyUp(KeyCode key) +{ + return IsKeyReleased(key); +} + +bool InputSystem::getMouseButtonDown(int button) +{ + return IsMouseButtonPressed(button); +} + +bool InputSystem::getMouseButtonUp(int button) +{ + return IsMouseButtonReleased(button); +} + +bool InputSystem::getMouseButton(int button) +{ + return IsMouseButtonDown(button); +} + +int InputSystem::getMouseX() +{ + return GetMouseX(); +} + +int InputSystem::getMouseY() +{ + return GetMouseY(); +} + +Vector2D InputSystem::getMousePosition() +{ + return Vector2D(GetMouseX(), getMouseY()); +} + +void InputSystem::inputUpdate(float currentTime) +{ + for(int i = Key_A; i != Key_Max; i++) + { + if(getKeyDown((KeyCode)i)) + { + EventSystem::getInstance()->fireEvent(KeyboardEvent((KeyCode)i, BUTTON_DOWN)); + } + else if(getKey((KeyCode)i)) + { + EventSystem::getInstance()->fireEvent(KeyboardEvent((KeyCode)i, BUTTON_HELD)); + } + else if(getKeyUp((KeyCode)i)) + { + EventSystem::getInstance()->fireEvent(KeyboardEvent((KeyCode)i, BUTTON_UP)); + } + } + + for(int i = 0; i <= MOUSE_BUTTON_MAX; i++) + { + if(getMouseButtonDown(i)) + { + EventSystem::getInstance()->fireEvent(MouseEvent(i, BUTTON_DOWN, currentTime)); + } + else if(getMouseButton(i)) + { + EventSystem::getInstance()->fireEvent(MouseEvent(i, BUTTON_HELD, currentTime)); + } + else if(getMouseButtonUp(i)) + { + EventSystem::getInstance()->fireEvent(MouseEvent(i, BUTTON_UP, currentTime)); + } + } +} + +void InputSystem::setHorizonalMovementAxis(float val) +{ + if(val > 1.0f) + val = 1.0f; + else if(val < -1.0f) + val = -1.0f; + + mMovementAxis = Vector2D(val, mMovementAxis.getY()); +} + +void InputSystem::setVerticalMovementAxis(float val) +{ + if(val > 1.0f) + val = 1.0f; + else if(val < -1.0f) + val = -1.0f; + + mMovementAxis = Vector2D(mMovementAxis.getX(), val); +} + +void InputSystem::setMovementAxis(Vector2D axis) +{ + float x = axis.getX(); + float y = axis.getY(); + + if(x > 1.0f) + x = 1.0f; + else if(x < -1.0f) + x = -1.0f; + + if(y > 1.0f) + y = 1.0f; + else if(y < -1.0f) + y = -1.0f; + + mMovementAxis = Vector2D(x, y); +} \ No newline at end of file diff --git a/RedEngine/Source Files/KeyboardEvent.cpp b/RedEngine/Source Files/KeyboardEvent.cpp new file mode 100644 index 00000000..4786ffd1 --- /dev/null +++ b/RedEngine/Source Files/KeyboardEvent.cpp @@ -0,0 +1,14 @@ +#include "InputSystem.h" +#include "KeyboardEvent.h" + +KeyboardEvent::KeyboardEvent(KeyCode key, ButtonState state) + : Event(KEYBOARD_EVENT) +{ + mKey = key; + mState = state; +} + +KeyboardEvent::~KeyboardEvent() +{ + +} \ No newline at end of file diff --git a/RedEngine/Source Files/MouseEvent.cpp b/RedEngine/Source Files/MouseEvent.cpp new file mode 100644 index 00000000..266f06c8 --- /dev/null +++ b/RedEngine/Source Files/MouseEvent.cpp @@ -0,0 +1,15 @@ +#include "InputSystem.h" +#include "MouseEvent.h" + +MouseEvent::MouseEvent(int button, ButtonState state, float time) + : Event(MOUSE_ACTION_EVENT) +{ + mButton = button; + mState = state; + this->time = time; +} + +MouseEvent::~MouseEvent() +{ + +} \ No newline at end of file diff --git a/RedEngine/Source Files/Sprite.cpp b/RedEngine/Source Files/Sprite.cpp new file mode 100644 index 00000000..29597026 --- /dev/null +++ b/RedEngine/Source Files/Sprite.cpp @@ -0,0 +1,15 @@ +#include "Sprite.h" +#include "GraphicsBuffer.h" + +Sprite::Sprite(GraphicsBuffer* gb, Vector2D loc, Vector2D size, float scale) +{ + mpGraphicsBuffer = gb; + mLoc = loc; + mSize = size; + mScale = scale; +} + +Sprite::~Sprite() +{ + mpGraphicsBuffer = nullptr; +} \ No newline at end of file diff --git a/RedEnginePhysics/PhysicsData2D.cpp b/RedEnginePhysics/PhysicsData2D.cpp new file mode 100644 index 00000000..270c6a83 --- /dev/null +++ b/RedEnginePhysics/PhysicsData2D.cpp @@ -0,0 +1,28 @@ +#include "PhysicsData2D.h" + +PhysicsData2D::PhysicsData2D() +{ + mPos = Vector2D::Zero(); + mVel = Vector2D::Zero(); + mAcc = Vector2D::Zero(); + + mMass = 1.0f; + mFacing = 0.0f; + mRotVel = 0.0f; + mRotAcc = 0.0f; + mDampingConstant = 1.0f; +} + +PhysicsData2D::PhysicsData2D(Vector2D pos, Vector2D vel, Vector2D acc, + float mass, float facing, float rotVel, float rotAcc, float dampingConstant) +{ + mPos = pos; + mVel = vel; + mAcc = acc; + + mMass = mass; + mFacing = facing; + mRotVel = rotVel; + mRotAcc = rotAcc; + mDampingConstant = dampingConstant; +} \ No newline at end of file diff --git a/RedEnginePhysics/PhysicsData2D.h b/RedEnginePhysics/PhysicsData2D.h new file mode 100644 index 00000000..154b10be --- /dev/null +++ b/RedEnginePhysics/PhysicsData2D.h @@ -0,0 +1,41 @@ +#pragma once + +#include "Trackable.h" +#include "Vector2D.h" + +class PhysicsData2D : public Trackable +{ + +public: + Vector2D getPos() { return mPos; } + Vector2D getVel() { return mVel; } + Vector2D getAcc() { return mAcc; } + float getMass() { return mMass; } + float getFacing() { return mFacing; } + float getRotVel() { return mRotVel; } + float getRotAcc() { return mRotAcc; } + float getDampingConstnat() { return mDampingConstant; } + + void setPos(Vector2D pos) { mPos = pos; } + void setVel(Vector2D vel) { mVel = vel; } + void setAcc(Vector2D acc) { mAcc = acc; } + void setMass(float mass) { mMass = mass; } + void setFacing(float angle) { mFacing = angle; } + void setRotVel(float rotVel) { mRotVel = rotVel; } + void setRotAcc(float rotAcc) { mRotAcc = rotAcc; } + void setDampingConstant(float dampingConstant) { mDampingConstant = dampingConstant; } + +private: + PhysicsData2D(); + PhysicsData2D(Vector2D, Vector2D, Vector2D, float, float, float, float, float); + + Vector2D mPos; + Vector2D mVel; + Vector2D mAcc; + float mMass; + float mFacing; + float mRotVel; + float mRotAcc; + float mDampingConstant; + +}; \ No newline at end of file diff --git a/RedEnginePhysics/lllCMakeLists.txt b/RedEnginePhysics/lllCMakeLists.txt new file mode 100644 index 00000000..dc656c81 --- /dev/null +++ b/RedEnginePhysics/lllCMakeLists.txt @@ -0,0 +1,53 @@ +cmake_minimum_required(VERSION 3.11) # FetchContent is available in 3.11+ +project(RedEngine) + +# raylib +find_package(raylib QUIET) +if (NOT raylib_FOUND) + include(FetchContent) + FetchContent_Declare( + raylib + GIT_REPOSITORY https://github.com/raysan5/raylib.git + GIT_TAG b6c8d343dca2ef19c23c50975328a028124cf3cb + ) + FetchContent_GetProperties(raylib) + if (NOT raylib_POPULATED) # Have we downloaded raylib yet? + set(FETCHCONTENT_QUIET NO) + FetchContent_Populate(raylib) + set(BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) + set(BUILD_GAMES OFF CACHE BOOL "" FORCE) + set(BUILD_TESTING OFF CACHE BOOL "" FORCE) + add_subdirectory(${raylib_SOURCE_DIR} ${raylib_BINARY_DIR}) + endif() +endif() + +# raylib-cpp +find_package(raylib-cpp QUIET) +if (NOT raylib-cpp_FOUND) + include(FetchContent) + FetchContent_Declare( + raylib-cpp + URL https://github.com/RobLoach/raylib-cpp/archive/master.tar.gz + ) + FetchContent_GetProperties(raylib-cpp) + if (NOT raylib-cpp_POPULATED) # Have we downloaded raylib yet? + set(FETCHCONTENT_QUIET NO) + FetchContent_Populate(raylib-cpp) + set(BUILD_RAYLIB_CPP_EXAMPLES OFF CACHE BOOL "" FORCE) + set(BUILD_TESTING OFF CACHE BOOL "" FORCE) + add_subdirectory(${raylib-cpp_SOURCE_DIR} ${raylib-cpp_BINARY_DIR}) + endif() +endif() + +# RedLib +find_library(RedLib RedLib) +add_subdirectory(../RedLib ../RedLib-build) + +# This is the main part: +set(PROJECT_NAME RedEngine) +set(PROJECT_SOURCES Animation.cpp AnimationData.cpp AnimationManager.cpp Color.cpp Event.cpp EventListener.cpp EventSystem.cpp KeyboardEvent.cpp MouseEvent.cpp GraphicsBuffer.cpp GraphicsBufferManager.cpp GraphicsSystem.cpp InputSystem.cpp Sprite.cpp Camera2D.cpp) +add_library(${PROJECT_NAME} ${PROJECT_SOURCES}) +set(raylib_VERBOSE 1) +target_include_directories(RedEngine PUBLIC ../RedLib ../RedLib-build) +target_link_libraries(${PROJECT_NAME} PUBLIC raylib RedLib) +# That's it! You should have an example executable that you can run. Have fun! diff --git a/RedLib/CMakeLists.txt b/RedLib/CMakeLists.txt new file mode 100644 index 00000000..b78365d3 --- /dev/null +++ b/RedLib/CMakeLists.txt @@ -0,0 +1,4 @@ +cmake_minimum_required(VERSION 3.11) # FetchContent is available in 3.11+ +project(RedLib) +include_directories("Header Files" "Source Files") +add_library(RedLib "Source Files/MemoryTracker.cpp" "Source Files/Trackable.cpp" "Source Files/Timer.cpp" "Source Files/Vector2D.cpp") diff --git a/RedLib/Header Files/MemoryTracker.h b/RedLib/Header Files/MemoryTracker.h new file mode 100644 index 00000000..e61eb15d --- /dev/null +++ b/RedLib/Header Files/MemoryTracker.h @@ -0,0 +1,32 @@ +//Inspired by Dean Lawson, Champlain College + +#pragma once +#include + +class MemoryTracker +{ +public: + static MemoryTracker* getInstance(); + static void cleanupInstance(); + + void addAllocation(void* ptr, size_t size); + void removeAllocation(void* ptr); + + void reportAllocations(std::ostream& stream); + +private: + struct AllocationRecord + { + AllocationRecord(int n, size_t s) : num(n), size(s) {}; + int num; + size_t size; + }; + + MemoryTracker() {}; + ~MemoryTracker() {}; + + std::unordered_map mAllocaitons; + + static int msAllocationNum; + static MemoryTracker* mspInstance; +}; diff --git a/RedLib/Header Files/Timer.h b/RedLib/Header Files/Timer.h new file mode 100644 index 00000000..e161b369 --- /dev/null +++ b/RedLib/Header Files/Timer.h @@ -0,0 +1,29 @@ +//Inspired by Dean Lawson, Champlain College + +#pragma once +#include "Trackable.h" +#include + +const double NANO_TO_SEC = 1000000000.0; +//const double MILLI_TO_SEC = 1000.0; +const double NANO_TO_MILLI = 1000000.0; + +class Timer : public Trackable +{ +public: + Timer(); + ~Timer(); + + void start(); + void stop(); + double getElapsedTime() const; + void sleepUntilElapsed(double ms); + void togglePause(); + +private: + std::chrono::steady_clock::time_point mStartTime; + std::chrono::steady_clock::time_point mEndTime; + double mElapsedTime; + bool mPaused; + +}; \ No newline at end of file diff --git a/RedLib/Header Files/Trackable.h b/RedLib/Header Files/Trackable.h new file mode 100644 index 00000000..a9d38f9d --- /dev/null +++ b/RedLib/Header Files/Trackable.h @@ -0,0 +1,15 @@ +//Inspired by Dean Lawson, Champlain College + +#pragma once +#include + +class Trackable +{ +public: + Trackable() {} + + void* operator new(std::size_t size); + void operator delete(void* ptr); + void* operator new[](std::size_t size); + void operator delete[](void* ptr); +}; diff --git a/RedLib/Header Files/Vector2D.h b/RedLib/Header Files/Vector2D.h new file mode 100644 index 00000000..b5816b3b --- /dev/null +++ b/RedLib/Header Files/Vector2D.h @@ -0,0 +1,56 @@ +#pragma once +#include "Trackable.h" +#include + +class Vector2D : public Trackable +{ + +public: + Vector2D(); + Vector2D(float x, float y); + Vector2D(int x, int y); + Vector2D(double x, double y); + ~Vector2D(); + + Vector2D operator=(const Vector2D& other); + + Vector2D operator+(const Vector2D& other); + Vector2D operator-(const Vector2D& other); + Vector2D operator*(const float scalar) const; + Vector2D operator/(const float scalar) const; + Vector2D operator*(const int scalar) const; + Vector2D operator/(const int scalar) const; + Vector2D operator*(const double scalar) const; + Vector2D operator/(const double scalar) const; + + Vector2D operator+=(const Vector2D& other); + Vector2D operator-=(const Vector2D& other); + Vector2D operator*=(const float scalar); + Vector2D operator/=(const float scalar); + + bool operator==(const Vector2D& other) const; + bool operator!=(const Vector2D& other) const; + + std::ostream& write(std::ostream& out) const; + + float length(); + void normalize(); + + Vector2D normalized(); + + float getX() const { return mX; } + float getY() const { return mY; } + + static const Vector2D Zero() { return Vector2D(0, 0); } + static const Vector2D Left() { return Vector2D(-1, 0); } + static const Vector2D Right() { return Vector2D(1, 0); } + static const Vector2D Up() { return Vector2D(0, -1); } + static const Vector2D Down() { return Vector2D(0, 1); } + +private: + float mX, mY; + +}; + +//global operator overloads (to get better implementation with ostream) +std::ostream& operator<<(std::ostream& out, Vector2D const &vec); diff --git a/RedLib/Header Files/WinTimer.h b/RedLib/Header Files/WinTimer.h new file mode 100644 index 00000000..9aad0783 --- /dev/null +++ b/RedLib/Header Files/WinTimer.h @@ -0,0 +1,30 @@ +//Inspired by Dean Lawson, Champlain College + +#pragma once +#include "Trackable.h" + +union _LARGE_INTEGER; //In Windows.h, LARGE_INTEGER and _LARGE_INTEGER are synonymous + +class Timer :public Trackable +{ +public: + Timer(); + ~Timer(); + + void start(); + void stop(); + double getElapsedTime() const; + void sleepUntilElapsed(double ms); + void togglePause(); + +private: + _LARGE_INTEGER* mStartTime; + _LARGE_INTEGER* mEndTime; + _LARGE_INTEGER* mTimerFrequency; + double mElapsedTime; + bool mPaused; + + //takes into account timer frequency + double calcDifferenceInMS(_LARGE_INTEGER* from, _LARGE_INTEGER* to) const; + +}; \ No newline at end of file diff --git a/RedLib/Source Files/MemoryTracker.cpp b/RedLib/Source Files/MemoryTracker.cpp new file mode 100644 index 00000000..3f0ae2ed --- /dev/null +++ b/RedLib/Source Files/MemoryTracker.cpp @@ -0,0 +1,53 @@ +#include "MemoryTracker.h" +#include + +using namespace std; + +int MemoryTracker::msAllocationNum = 0; +MemoryTracker* MemoryTracker::mspInstance = nullptr; + +MemoryTracker* MemoryTracker::getInstance() +{ + if (!mspInstance) + { + mspInstance = new MemoryTracker(); + } + return mspInstance; +} + +void MemoryTracker::cleanupInstance() +{ + if (mspInstance) + { + mspInstance->reportAllocations(cout); + + delete mspInstance; + mspInstance = nullptr; + } +} + +void MemoryTracker::addAllocation(void* ptr, size_t size) +{ + AllocationRecord rec(msAllocationNum, size); + pair pair(ptr, rec); + mAllocaitons.insert(pair); + msAllocationNum++; +} + +void MemoryTracker::removeAllocation(void* ptr) +{ + unordered_map::iterator iter = mAllocaitons.find(ptr); + if (iter != mAllocaitons.end()) + mAllocaitons.erase(iter); +} + +void MemoryTracker::reportAllocations(ostream& stream) +{ + stream << endl << "Current Memory Allocations:" << endl; + + unordered_map::iterator iter; + for (iter = mAllocaitons.begin(); iter != mAllocaitons.end(); ++iter) + { + stream << "Address:" << iter->first << " Size:" << iter->second.size << " Num:" << iter->second.num << endl; + } +} \ No newline at end of file diff --git a/RedLib/Source Files/Timer.cpp b/RedLib/Source Files/Timer.cpp new file mode 100644 index 00000000..2c8124f8 --- /dev/null +++ b/RedLib/Source Files/Timer.cpp @@ -0,0 +1,120 @@ +#include "Timer.h" + +#ifdef _WIN32 +#include "Windows.h" +#elif __linux__ +#include "unistd.h" +#endif + +using namespace std; + +Timer::Timer() + :mElapsedTime(0.0) + , mPaused(true) +{ + +} + +Timer::~Timer() +{ + +} + +void Timer::start() +{ + mElapsedTime = 0.0; + + mPaused = false; + mStartTime = chrono::steady_clock::now(); +} + +void Timer::stop() +{ + if(!mPaused) + { + mPaused = true; + mEndTime = chrono::steady_clock::now(); + chrono::nanoseconds diff = (mEndTime - mStartTime); + //chrono::milliseconds floor = chrono::duration_cast(diff); + mElapsedTime += diff.count() / NANO_TO_SEC; + } + +} + +void Timer::togglePause() +{ + if (!mPaused) + { + mPaused = true; + mEndTime = chrono::steady_clock::now(); + chrono::nanoseconds diff = (mEndTime - mStartTime); + //chrono::milliseconds floor = chrono::duration_cast(diff); + mElapsedTime += diff.count() / NANO_TO_SEC; + } + else + { + mPaused = false; + mStartTime = chrono::steady_clock::now(); + } +} + +double Timer::getElapsedTime() const +{ + if (mPaused) + { + return mElapsedTime; + } + else + { + std::chrono::steady_clock::time_point currentTime; + currentTime = chrono::steady_clock::now(); + chrono::nanoseconds diff = (currentTime - mStartTime); + //chrono::milliseconds floor = chrono::duration_cast(diff); + return diff.count() / NANO_TO_SEC; + } +} + +#ifdef _WIN32 +void Timer::sleepUntilElapsed(double ms) +{ + std::chrono::steady_clock::time_point currentTime, lastTime; + currentTime = std::chrono::steady_clock::now(); + chrono::nanoseconds diff = (currentTime - mStartTime); + double timeToSleep = (ms * NANO_TO_MILLI) - diff.count(); + + while (timeToSleep > 0.0) + { + lastTime = currentTime; + currentTime = std::chrono::steady_clock::now(); + diff = (currentTime - lastTime); + double timeElapsed = diff.count(); + timeToSleep -= timeElapsed; + if (timeToSleep > (10.0 * NANO_TO_MILLI)) + { + Sleep(10); + } + } +} +//UPDATE LINUX VERSION +#elif __linux__ +void Timer::sleepUntilElapsed(double ms) +{ + std::chrono::steady_clock::time_point currentTime, lastTime; + currentTime = std::chrono::steady_clock::now(); + chrono::nanoseconds diff = (currentTime - mStartTime); + double timeToSleep = ms - chrono::duration_cast(diff).count(); + + while (timeToSleep > 0.0) + { + lastTime = currentTime; + currentTime = std::chrono::steady_clock::now(); + diff = (currentTime - lastTime); + double timeElapsed = chrono::duration_cast(diff).count(); + timeToSleep -= timeElapsed; + if (timeToSleep > 10.0) + { + sleep(10); + } + } +} +#endif \ No newline at end of file diff --git a/RedLib/Source Files/Trackable.cpp b/RedLib/Source Files/Trackable.cpp new file mode 100644 index 00000000..3736ce12 --- /dev/null +++ b/RedLib/Source Files/Trackable.cpp @@ -0,0 +1,28 @@ +#include "Trackable.h" +#include "MemoryTracker.h" + +void* Trackable::operator new(size_t size) +{ + void* ptr = malloc(size); + MemoryTracker::getInstance()->addAllocation(ptr, size); + return ptr; +} + +void Trackable::operator delete(void* ptr) +{ + MemoryTracker::getInstance()->removeAllocation(ptr); + free(ptr); +} + +void* Trackable::operator new[](size_t size) +{ + void* ptr = malloc(size); + MemoryTracker::getInstance()->addAllocation(ptr, size); + return ptr; +} + +void Trackable::operator delete[](void* ptr) +{ + MemoryTracker::getInstance()->removeAllocation(ptr); + free(ptr); +} \ No newline at end of file diff --git a/RedLib/Source Files/Vector2D.cpp b/RedLib/Source Files/Vector2D.cpp new file mode 100644 index 00000000..a7d89b40 --- /dev/null +++ b/RedLib/Source Files/Vector2D.cpp @@ -0,0 +1,164 @@ +#include "Vector2D.h" +#include + +using namespace std; + +Vector2D::Vector2D() +{ + mX = 0.0f; + mY = 0.0f; +} + +Vector2D::~Vector2D() +{ + +} + +Vector2D::Vector2D(float x, float y) +{ + mX = x; + mY = y; +} + +Vector2D::Vector2D(int x, int y) +{ + mX = (float)x; + mY = (float)y; +} + +Vector2D::Vector2D(double x, double y) //NOTE: loss of precision, used to remove ambiguity +{ + mX = (float)x; + mY = (float)y; +} + +Vector2D Vector2D::operator=(const Vector2D& other) +{ + mX = other.mX; + mY = other.mY; + return *this; +} + +Vector2D Vector2D::operator+(const Vector2D& other) +{ + return Vector2D(mX + other.mX, mY + other.mY); +} + +Vector2D Vector2D::operator-(const Vector2D& other) +{ + return Vector2D(mX - other.mX, mY - other.mY); +} + +Vector2D Vector2D::operator*(const float scalar) const +{ + return Vector2D(scalar * mX, scalar * mY); +} + +Vector2D Vector2D::operator/(const float scalar) const +{ + return Vector2D(mX / scalar, mY / scalar); +} + +Vector2D Vector2D::operator*(const int scalar) const +{ + return Vector2D(scalar * mX, scalar * mY); +} + +Vector2D Vector2D::operator/(const int scalar) const +{ + return Vector2D(mX / scalar, mY / scalar); +} + +Vector2D Vector2D::operator*(const double scalar) const +{ + return Vector2D(scalar * mX, scalar * mY); +} + +Vector2D Vector2D::operator/(const double scalar) const +{ + return Vector2D(mX / scalar, mY / scalar); +} + +Vector2D Vector2D::operator+=(const Vector2D& other) +{ + mX += other.mX; + mY += other.mY; + return *this; +} + +Vector2D Vector2D::operator-=(const Vector2D& other) +{ + mX -= other.mX; + mY -= other.mY; + return *this; +} + +Vector2D Vector2D::operator*=(const float scalar) +{ + mX *= scalar; + mY *= scalar; + return *this; +} + +Vector2D Vector2D::operator/=(const float scalar) +{ + mX /= scalar; + mY /= scalar; + return *this; +} + +float Vector2D::length() +{ + if(!mX && !mY) + return 0.0f; + + float x2 = mX * mX; + float y2 = mY * mY; + return sqrt(x2 + y2); +} + +void Vector2D::normalize() +{ + float len = length(); + + if(len == 0.0f || len == 1.0f) + return; + + mX /= len; + mY /= len; +} + +Vector2D Vector2D::normalized() +{ + float len = length(); + + if(len == 0.0f) + return Zero(); + else if(len == 1.0f) + return Vector2D(mX, mY); + + return Vector2D(mX / len, mY / len); +} + +ostream& Vector2D::write(ostream& out) const +{ + out << "(" << mX << ", " << mY << ")"; + + return out; +} + +std::ostream& operator<<(std::ostream& out, Vector2D const &vec) +{ + vec.write(out); + return out; +} + +bool Vector2D::operator==(const Vector2D& other) const +{ + return (mX == other.getX() && mY == other.getY()); +} + +bool Vector2D::operator!=(const Vector2D& other) const +{ + return !(mX == other.getX() && mY == other.getY()); +} \ No newline at end of file diff --git a/RedLib/Source Files/WinTimer.cpp b/RedLib/Source Files/WinTimer.cpp new file mode 100644 index 00000000..caa1b3c3 --- /dev/null +++ b/RedLib/Source Files/WinTimer.cpp @@ -0,0 +1,95 @@ +#include "WinTimer.h" +#include "Windows.h" + +Timer::Timer() + :mElapsedTime(0.0) + , mPaused(true) +{ + mStartTime = new LARGE_INTEGER(); + mEndTime = new LARGE_INTEGER(); + mTimerFrequency = new LARGE_INTEGER(); + + QueryPerformanceFrequency(mTimerFrequency); + mStartTime->QuadPart = 0; + mEndTime->QuadPart = 0; +} + +Timer::~Timer() +{ + delete mStartTime; + delete mEndTime; + delete mTimerFrequency; + mStartTime = nullptr; + mEndTime = nullptr; + mTimerFrequency = nullptr; +} + +void Timer::start() +{ + QueryPerformanceCounter(mStartTime); + + mEndTime->QuadPart = 0; + mElapsedTime = 0.0; + + togglePause(); +} + +void Timer::stop() +{ + QueryPerformanceCounter(mEndTime); + mElapsedTime = calcDifferenceInMS(mStartTime, mEndTime); +} + +void Timer::togglePause() +{ + if (!mPaused) + { + mPaused = true; + QueryPerformanceCounter(mEndTime); + mElapsedTime += calcDifferenceInMS(mStartTime, mEndTime); + } + else + { + mPaused = false; + QueryPerformanceCounter(mStartTime); + } +} + +double Timer::getElapsedTime() const +{ + if (mEndTime->QuadPart != 0) + { + return mElapsedTime; + } + else + { + LARGE_INTEGER currentTime; + QueryPerformanceCounter(¤tTime); + return calcDifferenceInMS(mStartTime, ¤tTime); + } +} + +void Timer::sleepUntilElapsed(double ms) +{ + LARGE_INTEGER currentTime, lastTime; + QueryPerformanceCounter(¤tTime); + double timeToSleep = ms - calcDifferenceInMS(mStartTime, ¤tTime); + + while (timeToSleep > 0.0) + { + lastTime = currentTime; + QueryPerformanceCounter(¤tTime); + double timeElapsed = calcDifferenceInMS(&lastTime, ¤tTime); + timeToSleep -= timeElapsed; + if (timeToSleep > 10.0) + { + Sleep(10); + } + } +} + +double Timer::calcDifferenceInMS(LARGE_INTEGER* from, LARGE_INTEGER* to) const +{ + double difference = (double)(to->QuadPart - from->QuadPart) / (double)mTimerFrequency->QuadPart; + return difference * 1000; +} diff --git a/RedNet/CMakeLists.txt b/RedNet/CMakeLists.txt new file mode 100644 index 00000000..51249585 --- /dev/null +++ b/RedNet/CMakeLists.txt @@ -0,0 +1,8 @@ +cmake_minimum_required(VERSION 3.11) # FetchContent is available in 3.11+ +project(RedNet) + +find_library(ws Ws2_32.lib) + +include_directories("Header Files" "Source Files" "../RoboCat/Inc") +add_library(RedNet "Source Files/TCPNetworkManager.cpp" "../RoboCat/Src/TCPSocket.cpp" "../RoboCat/Src/SocketUtil.cpp" "../RoboCat/Src/SocketAddress.cpp" "../RoboCat/Src/UDPSocket.cpp" "../RoboCat/Src/SocketAddressFactory.cpp" "../RoboCat/Src/StringUtils.cpp") +target_link_libraries(RedNet PUBLIC ${ws}) diff --git a/RedNet/Header Files/TCPNetworkManager.h b/RedNet/Header Files/TCPNetworkManager.h new file mode 100644 index 00000000..97ab086d --- /dev/null +++ b/RedNet/Header Files/TCPNetworkManager.h @@ -0,0 +1,71 @@ +#pragma once +#include "..\..\RoboCat\Inc\RoboCatShared.h" +#include +#include + + +enum Packet_Header +{ + INVALID_PACKET_TYPE = -1, + PLAYER_MOVE, + FIRE_PROJECTILE, + OBJECT_MOVE, + OBJECT_DELETE, + CAMERA_MOVE, + ACKNOLEDGEMENT, + MAX_PACKET_TYPES +}; + +struct Packet_Info +{ + Packet_Header header; + char data[4096]; + int length; + int id; + bool ensured; +}; + +class TCPNetworkManager +{ + +public: + TCPNetworkManager(); + ~TCPNetworkManager(); + + void init(string address, int port, int reliabilityPercentage); + void cleanup(); + + static TCPNetworkManager* getInstance(); + static void cleanupInstance(); + + void connectTo(std::string address, int port); + void listenAndAccept(); + + void update(float deltaTime, float currentTime); + + void sendPacket(Packet_Header, char* data, int length, bool ensured = false, int overridePacketNum = 0); + + void receivePackets(void (*handleFunction)(Packet_Header header, char* data, int length)); + +private: + void establishTCPSocket(std::string address, int port); + + void sendMessage(char* data, int length); + void sendMessage(string message); + string receiveMessage(); + + static TCPNetworkManager* mspInstance; + + static int nextPacketID; + static int lastProcessedID; + + TCPSocketPtr mSocket; + TCPSocketPtr mConnection; + + int mReliabilityPercentage; + + queue delayedPackets; + + vector ensuredPacketsWaiting; + float resendTimer; +}; diff --git a/RedNet/Source Files/TCPNetworkManager.cpp b/RedNet/Source Files/TCPNetworkManager.cpp new file mode 100644 index 00000000..12023858 --- /dev/null +++ b/RedNet/Source Files/TCPNetworkManager.cpp @@ -0,0 +1,334 @@ +#include "TCPNetworkManager.h" +#include + +TCPNetworkManager* TCPNetworkManager::mspInstance = nullptr; +int TCPNetworkManager::nextPacketID = 1; +int TCPNetworkManager::lastProcessedID = 0; + +TCPNetworkManager::TCPNetworkManager() +{ + mSocket = nullptr; + mConnection = nullptr; +} + +TCPNetworkManager::~TCPNetworkManager() +{ + +} + +TCPNetworkManager* TCPNetworkManager::getInstance() +{ + if (!mspInstance) + mspInstance = new TCPNetworkManager(); + + return mspInstance; +} + +void TCPNetworkManager::cleanupInstance() +{ + if (mspInstance) + { + delete mspInstance; + mspInstance = nullptr; + } +} + +void TCPNetworkManager::init(string address, int port, int reliabilityPercentage) +{ + + SocketUtil::StaticInit(); + + establishTCPSocket(address, port); + + srand(time(NULL)); + + mReliabilityPercentage = reliabilityPercentage; + + delayedPackets = queue(); + ensuredPacketsWaiting = vector(); + + resendTimer = 0.0f; + +} + +void TCPNetworkManager::cleanup() +{ + SocketUtil::CleanUp(); +} + +void TCPNetworkManager::establishTCPSocket(string address, int port) +{ + mSocket = SocketUtil::CreateTCPSocket(SocketAddressFamily::INET); + if (mSocket == nullptr) + { + SocketUtil::ReportError("Creating socket failed!"); + //ExitProcess(1); + } + + string myAddress = address + ":" + std::to_string(port); + + SocketAddressPtr addressPtr = SocketAddressFactory::CreateIPv4FromString(myAddress); + if (addressPtr == nullptr) + { + SocketUtil::ReportError("Creating address for socket failed!"); + //ExitProcess(1); + } + + if (mSocket->Bind(*addressPtr) != NO_ERROR) + { + SocketUtil::ReportError("Binding socket failed!"); + //ExitProcess(1); + } +} + +void TCPNetworkManager::connectTo(string address, int port) +{ + string connAddress = address + ":" + std::to_string(port); + SocketAddressPtr addressPtr = SocketAddressFactory::CreateIPv4FromString(connAddress); + if (addressPtr == nullptr) + { + SocketUtil::ReportError("Creating address for connection failed!"); + //ExitProcess(1); + } + + if (mSocket->Connect(*addressPtr) != NO_ERROR) + { + SocketUtil::ReportError("Connecting to server failed!"); + //ExitProcess(1); + } + + mConnection = mSocket; +} + +void TCPNetworkManager::listenAndAccept() +{ + if (mSocket->Listen() != NO_ERROR) + { + SocketUtil::ReportError("Listening failed!"); + //ExitProcess(1); + } + + SocketAddress connAddress; + mConnection = mSocket->Accept(connAddress); + +} + +void TCPNetworkManager::sendMessage(string message) +{ + int r = rand() % 100; + + if (r < mReliabilityPercentage) + mConnection->Send(message.c_str(), message.length()); +} + +void TCPNetworkManager::sendMessage(char* message, int length) +{ + int r = rand() % 100; + + if (r < mReliabilityPercentage) + mConnection->Send(message, length); +} + +void TCPNetworkManager::sendPacket(Packet_Header header, char* data, int length, bool ensured, int overridePacketNum) +{ + mConnection->SetNonBlockingMode(false); + + int packetSize = sizeof(ensured) + sizeof(int) + sizeof(Packet_Header) + length; + + char buffer[4096]; + + memcpy(buffer, (char*)&packetSize, sizeof(int)); + + memcpy(buffer + sizeof(int), (char*)&header, sizeof(Packet_Header)); + + memcpy(buffer + sizeof(int) + sizeof(Packet_Header), (char*)&ensured, sizeof(bool)); + + if(overridePacketNum) + memcpy(buffer + sizeof(int) + sizeof(Packet_Header) + sizeof(bool), &overridePacketNum, sizeof(int)); + else + memcpy(buffer + sizeof(int) + sizeof(Packet_Header) + sizeof(bool), &nextPacketID, sizeof(int)); + + memcpy(buffer + sizeof(int) + sizeof(int) + sizeof(Packet_Header) + sizeof(bool), data, length); + + if (ensured) + { + Packet_Info pck; + pck.header = header; + memcpy(pck.data, data, length); + pck.length = length; + pck.ensured = ensured; //always true because of inside if(ensured) + + if(overridePacketNum) + pck.id = overridePacketNum; + else + pck.id = nextPacketID; + + bool match = false; + + for (auto i = ensuredPacketsWaiting.begin(); i != ensuredPacketsWaiting.end(); i++) + { + if (i->id == pck.id) + { + match = true; + break; + } + } + + if(!match) + ensuredPacketsWaiting.push_back(pck); + } + + int r = rand() % 100; + + if (r < mReliabilityPercentage) + sendMessage(buffer, sizeof(int) + sizeof(int) + sizeof(Packet_Header) + length + sizeof(bool)); + else + { + r = false;// rand() % 2; + if(r) + { + Packet_Info temp; + if (delayedPackets.size() >= 3) + { + temp = delayedPackets.front(); + delayedPackets.pop(); + sendPacket(temp.header, temp.data, temp.length, temp.ensured, temp.id); + } + + temp.header = header; + memcpy(temp.data, data, length); + temp.length = length; + temp.ensured = ensured; + + if (overridePacketNum) + temp.id = overridePacketNum; + else + temp.id = nextPacketID; + + delayedPackets.emplace(temp); + + //std::cout << "Packet Stored! Hehe" << std::endl; + } + } + + if(!overridePacketNum) + nextPacketID++; +} + +string TCPNetworkManager::receiveMessage() +{ + char buffer[4096]; + int32_t bytesRead = mConnection->Receive(buffer, 4096); + + string msgReceived(buffer, bytesRead); + return msgReceived; +} + + +void TCPNetworkManager::receivePackets(void(*handleFunction)(Packet_Header header, char* data, int length)) +{ + mConnection->SetNonBlockingMode(true); + + char buffer[4096]; + char data[4096]; + int32_t bytesRead = mConnection->Receive(buffer, 4096); + + int bytesProcessed = 0; + + while (bytesProcessed < bytesRead) + { + + int packetSize; + bool ensured; + int id; + + memcpy(&packetSize, buffer + bytesProcessed, sizeof(int)); + bytesProcessed += sizeof(int); + + Packet_Header header; + int32_t length = packetSize - sizeof(Packet_Header) - sizeof(bool) - sizeof(int); + + memcpy(&header, buffer + bytesProcessed, sizeof(Packet_Header)); + bytesProcessed += sizeof(Packet_Header); + + memcpy(&ensured, buffer + bytesProcessed, sizeof(bool)); + bytesProcessed += sizeof(bool); + + memcpy(&id, buffer + bytesProcessed, sizeof(int)); + bytesProcessed += sizeof(int); + + std::cout << "Received ID: " << id << std::endl; + + memcpy(data, buffer + bytesProcessed, length); + bytesProcessed += length; + + if (ensured) //If this packet I received is ensured, send an acknoledgement. + { + sendPacket(ACKNOLEDGEMENT, data, length, false, id); + } + else + { + if (header == ACKNOLEDGEMENT) + { + //Avoids the continue below to process the ACKNOLEDGEMENT + } + else if (id > lastProcessedID) + { + lastProcessedID = id; + } + else + { + std::cout << "Network Manager Dropped Packet!!" << std::endl; + continue; + } + } + + if (header == ACKNOLEDGEMENT) //If this packet is an acknoledgement, mark it as received. + { + for (auto i = ensuredPacketsWaiting.begin(); i != ensuredPacketsWaiting.end(); i++) + { + if (i->id == id) + { + ensuredPacketsWaiting.erase(i); + break; + } + } + } + else + handleFunction(header, data, length); + + //std::cout << "Length: " << length << ", Packet Header: " << header << ", Data Length: " << length << std::endl; + } + +} + +void TCPNetworkManager::update(float deltaTime, float currentTime) +{ + + if (ensuredPacketsWaiting.size() > 0) + { + if (resendTimer == 0.0f) + { + resendTimer = 1.0f; + return; + } + else if (resendTimer > 0.0f) + { + resendTimer -= deltaTime; + } + else + { + int size = ensuredPacketsWaiting.size(); + for (int j = 0; j < size; j++) + { + Packet_Info i = ensuredPacketsWaiting.at(j); + sendPacket(i.header, i.data, i.length, true, i.id); + } + + resendTimer = 1.0f; + } + } + else + resendTimer = 0.0f; + +} diff --git a/RoboCat/Inc/MemoryBitStream.h b/RoboCat/Inc/MemoryBitStream.h index c2138925..27e5ffc2 100644 --- a/RoboCat/Inc/MemoryBitStream.h +++ b/RoboCat/Inc/MemoryBitStream.h @@ -61,8 +61,8 @@ class OutputMemoryBitStream void Write( bool inData ) { WriteBits( &inData, 1 ); } - void Write( const Vector3& inVector ); - void Write( const Quaternion& inQuat ); + //void Write( const Vector3& inVector ); + //void Write( const Quaternion& inQuat ); void Write( const std::string& inString ) { @@ -133,7 +133,7 @@ class InputMemoryBitStream void Read( uint8_t& outData, uint32_t inBitCount = 8 ) { ReadBits( &outData, inBitCount ); } void Read( bool& outData ) { ReadBits( &outData, 1 ); } - void Read( Quaternion& outQuat ); + //void Read( Quaternion& outQuat ); void ResetToCapacity( uint32_t inByteCapacity ) { mBitCapacity = inByteCapacity << 3; mBitHead = 0; } @@ -149,7 +149,7 @@ class InputMemoryBitStream } } - void Read( Vector3& inVector ); + //void Read( Vector3& inVector ); private: char* mBuffer; diff --git a/RoboCat/Inc/RoboCatShared.h b/RoboCat/Inc/RoboCatShared.h index d7eac1bc..ebc21c51 100644 --- a/RoboCat/Inc/RoboCatShared.h +++ b/RoboCat/Inc/RoboCatShared.h @@ -2,6 +2,8 @@ #define WIN32_LEAN_AND_MEAN #define NOMINMAX + #define NOUSER + #include "Windows.h" #include "WinSock2.h" #include "Ws2tcpip.h" @@ -49,7 +51,7 @@ using std::unordered_set; class RoboCat; class GameObject; -#include "RoboMath.h" +//#include "RoboMath.h" #include "TransmissionData.h" #include "InFlightPacket.h" diff --git a/RoboCat/Src/TCPSocket.cpp b/RoboCat/Src/TCPSocket.cpp index 494f776c..e2ea0942 100644 --- a/RoboCat/Src/TCPSocket.cpp +++ b/RoboCat/Src/TCPSocket.cpp @@ -44,7 +44,7 @@ int32_t TCPSocket::Send( const void* inData, size_t inLen ) int bytesSentCount = send( mSocket, static_cast< const char* >( inData ), inLen, 0 ); if( bytesSentCount < 0 ) { - SocketUtil::ReportError( "TCPSocket::Send" ); + //SocketUtil::ReportError( "TCPSocket::Send" ); return -SocketUtil::GetLastError(); } return bytesSentCount; @@ -55,7 +55,7 @@ int32_t TCPSocket::Receive( void* inData, size_t inLen ) int bytesReceivedCount = recv( mSocket, static_cast< char* >( inData ), inLen, 0 ); if( bytesReceivedCount < 0 ) { - SocketUtil::ReportError( "TCPSocket::Receive" ); + //SocketUtil::ReportError( "TCPSocket::Receive" ); return -SocketUtil::GetLastError(); } return bytesReceivedCount; diff --git a/RunClient.bat b/RunClient.bat new file mode 100644 index 00000000..7a1aeab4 --- /dev/null +++ b/RunClient.bat @@ -0,0 +1,2 @@ +SampleGame\out\build\x64-Debug\SampleGame.exe +pause \ No newline at end of file diff --git a/RunServer.bat b/RunServer.bat new file mode 100644 index 00000000..a2b59ce1 --- /dev/null +++ b/RunServer.bat @@ -0,0 +1,2 @@ +SampleGame\out\build\x64-Debug\SampleGame.exe server +pause \ No newline at end of file diff --git a/SampleGame/Assets/Sphere_Glow.bmp b/SampleGame/Assets/Sphere_Glow.bmp new file mode 100644 index 00000000..5dd714c2 Binary files /dev/null and b/SampleGame/Assets/Sphere_Glow.bmp differ diff --git a/SampleGame/Assets/Sphere_Glow.png b/SampleGame/Assets/Sphere_Glow.png new file mode 100644 index 00000000..38cdf348 Binary files /dev/null and b/SampleGame/Assets/Sphere_Glow.png differ diff --git a/SampleGame/Assets/room/room0000.png b/SampleGame/Assets/room/room0000.png new file mode 100644 index 00000000..9ed22879 Binary files /dev/null and b/SampleGame/Assets/room/room0000.png differ diff --git a/SampleGame/Assets/room/room0001.png b/SampleGame/Assets/room/room0001.png new file mode 100644 index 00000000..f5d103c6 Binary files /dev/null and b/SampleGame/Assets/room/room0001.png differ diff --git a/SampleGame/Assets/room/room0002.png b/SampleGame/Assets/room/room0002.png new file mode 100644 index 00000000..37660dbf Binary files /dev/null and b/SampleGame/Assets/room/room0002.png differ diff --git a/SampleGame/Assets/room/room0003.png b/SampleGame/Assets/room/room0003.png new file mode 100644 index 00000000..3c40b1b8 Binary files /dev/null and b/SampleGame/Assets/room/room0003.png differ diff --git a/SampleGame/Assets/room/room0004.png b/SampleGame/Assets/room/room0004.png new file mode 100644 index 00000000..83a4af6b Binary files /dev/null and b/SampleGame/Assets/room/room0004.png differ diff --git a/SampleGame/Assets/room/room0005.png b/SampleGame/Assets/room/room0005.png new file mode 100644 index 00000000..34dacd84 Binary files /dev/null and b/SampleGame/Assets/room/room0005.png differ diff --git a/SampleGame/Assets/room/room0006.png b/SampleGame/Assets/room/room0006.png new file mode 100644 index 00000000..690b2223 Binary files /dev/null and b/SampleGame/Assets/room/room0006.png differ diff --git a/SampleGame/Assets/room/room0007.png b/SampleGame/Assets/room/room0007.png new file mode 100644 index 00000000..0d855673 Binary files /dev/null and b/SampleGame/Assets/room/room0007.png differ diff --git a/SampleGame/Assets/room/room0008.png b/SampleGame/Assets/room/room0008.png new file mode 100644 index 00000000..97ff6551 Binary files /dev/null and b/SampleGame/Assets/room/room0008.png differ diff --git a/SampleGame/Assets/room/room0009.png b/SampleGame/Assets/room/room0009.png new file mode 100644 index 00000000..e7c06153 Binary files /dev/null and b/SampleGame/Assets/room/room0009.png differ diff --git a/SampleGame/Assets/room/room0010.png b/SampleGame/Assets/room/room0010.png new file mode 100644 index 00000000..83a86fc2 Binary files /dev/null and b/SampleGame/Assets/room/room0010.png differ diff --git a/SampleGame/Assets/room/room0011.png b/SampleGame/Assets/room/room0011.png new file mode 100644 index 00000000..fe28c8c2 Binary files /dev/null and b/SampleGame/Assets/room/room0011.png differ diff --git a/SampleGame/Assets/room/room0012.png b/SampleGame/Assets/room/room0012.png new file mode 100644 index 00000000..4970857a Binary files /dev/null and b/SampleGame/Assets/room/room0012.png differ diff --git a/SampleGame/Assets/room/room0013.png b/SampleGame/Assets/room/room0013.png new file mode 100644 index 00000000..ff4fbaae Binary files /dev/null and b/SampleGame/Assets/room/room0013.png differ diff --git a/SampleGame/Assets/room/room0014.png b/SampleGame/Assets/room/room0014.png new file mode 100644 index 00000000..aec66f0a Binary files /dev/null and b/SampleGame/Assets/room/room0014.png differ diff --git a/SampleGame/Assets/room/room0015.png b/SampleGame/Assets/room/room0015.png new file mode 100644 index 00000000..f5e253da Binary files /dev/null and b/SampleGame/Assets/room/room0015.png differ diff --git a/SampleGame/Assets/smurf_sprites.png b/SampleGame/Assets/smurf_sprites.png new file mode 100644 index 00000000..ba64e4c7 Binary files /dev/null and b/SampleGame/Assets/smurf_sprites.png differ diff --git a/SampleGame/CMakeLists.txt b/SampleGame/CMakeLists.txt new file mode 100644 index 00000000..80990c80 --- /dev/null +++ b/SampleGame/CMakeLists.txt @@ -0,0 +1,65 @@ +cmake_minimum_required(VERSION 3.11) # FetchContent is available in 3.11+ +project(SampleGame) + +# raylib +find_package(raylib QUIET) +if (NOT raylib_FOUND) + include(FetchContent) + FetchContent_Declare( + raylib + GIT_REPOSITORY https://github.com/raysan5/raylib.git + GIT_TAG b6c8d343dca2ef19c23c50975328a028124cf3cb + ) + FetchContent_GetProperties(raylib) + if (NOT raylib_POPULATED) # Have we downloaded raylib yet? + set(FETCHCONTENT_QUIET NO) + FetchContent_Populate(raylib) + set(BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) + set(BUILD_GAMES OFF CACHE BOOL "" FORCE) + set(BUILD_TESTING OFF CACHE BOOL "" FORCE) + add_subdirectory(${raylib_SOURCE_DIR} ${raylib_BINARY_DIR}) + endif() +endif() + + +# raylib-cpp +find_package(raylib-cpp QUIET) +if (NOT raylib-cpp_FOUND) + include(FetchContent) + FetchContent_Declare( + raylib-cpp + URL https://github.com/RobLoach/raylib-cpp/archive/master.tar.gz + ) + FetchContent_GetProperties(raylib-cpp) + if (NOT raylib-cpp_POPULATED) # Have we downloaded raylib yet? + set(FETCHCONTENT_QUIET NO) + FetchContent_Populate(raylib-cpp) + set(BUILD_RAYLIB_CPP_EXAMPLES OFF CACHE BOOL "" FORCE) + set(BUILD_TESTING OFF CACHE BOOL "" FORCE) + add_subdirectory(${raylib-cpp_SOURCE_DIR} ${raylib-cpp_BINARY_DIR}) + endif() +endif() + +# RedLib +# find_library(RedLib RedLib) +# add_subdirectory(../RedLib ../RedLib-build) + +# RedEngine +find_library(RedEngine RedEngine) +add_subdirectory(../RedEngine ../RedEngine-build) + +# RedNet +find_library(RedNet RedNet) +add_subdirectory(../RedNet ../RedNet-build) + +include_directories("Header Files" "../RedEngine/Header Files" "../RedLib/Header Files" "../RedNet/Header Files") + +add_definitions(-DGAMEASSETS="${CMAKE_SOURCE_DIR}/Assets/") + +set(PROJECT_NAME SampleGame) +set(PROJECT_SOURCES "Source Files/Unit.cpp" "Source Files/Game.cpp" "Source Files/main.cpp" "Source Files/Player.cpp" "Source Files/UnitManager.cpp" "Source Files/PlayerMoveEvent.cpp" "Source Files/GameListener.cpp") +add_executable(${PROJECT_NAME} ${PROJECT_SOURCES}) +set(raylib_VERBOSE 1) +target_include_directories(RedEngine PUBLIC ../RedLib ../RedLib-build ../RedEngine ../RedEngine-build ../RedNet ../RedNet-build) +target_link_libraries(${PROJECT_NAME} PUBLIC raylib RedLib RedEngine RedNet) +# That's it! You should have an example executable that you can run. Have fun! diff --git a/SampleGame/CMakeSettings.json b/SampleGame/CMakeSettings.json new file mode 100644 index 00000000..fbee4150 --- /dev/null +++ b/SampleGame/CMakeSettings.json @@ -0,0 +1,25 @@ +{ + "configurations": [ + { + "name": "x64-Debug", + "generator": "Ninja", + "configurationType": "Debug", + "inheritEnvironments": [ "msvc_x64_x64" ], + "buildRoot": "${projectDir}\\out\\build\\${name}", + "installRoot": "${projectDir}\\out\\install\\${name}", + "cmakeCommandArgs": "", + "buildCommandArgs": "", + "ctestCommandArgs": "" + }, + { + "name": "x64-Debug-Server", + "generator": "Ninja", + "configurationType": "Debug", + "buildRoot": "${projectDir}\\out\\build\\${name}", + "installRoot": "${projectDir}\\out\\install\\${name}", + "buildCommandArgs": "", + "ctestCommandArgs": "server", + "inheritEnvironments": [ "msvc_x64_x64" ] + } + ] +} \ No newline at end of file diff --git a/SampleGame/Header Files/Game.h b/SampleGame/Header Files/Game.h new file mode 100644 index 00000000..a38dcf5f --- /dev/null +++ b/SampleGame/Header Files/Game.h @@ -0,0 +1,85 @@ +#pragma once +#include "Trackable.h" +#include "InputSystem.h" +#include + +class GraphicsSystem; +class InputSystem; +class Player; +class Timer; +class UnitManager; +class AnimationManager; +class GraphicsBufferManager; +class GameListener; +class EventSystem; +class Vector2D; +class TCPNetworkManager; +class Unit; + +enum Packet_Header; + +const std::string ASSET_PATH = GAMEASSETS; +const std::string SMURF_FILENAME = "smurf_sprites.png"; +const std::string PROJECTILE_FILENAME = "Sphere_Glow.png"; +const std::string BACKGROUND_FILEPATH = "room\\room0000.png"; + +const float PROJECTILE_SPEED = 100.0f; + +class Game : public Trackable +{ +public: + friend class GameListener; + + static Game* getInstance(); + static void cleanupInstance(); + + void init(int screenWidth, int screenHeight, int fps = 60, bool isServer = false, bool debugMode = false); + void cleanup(); + + void startGame(); + +private: + Game(); + ~Game(); + + void getInput(); + void update(); + void render(); + + void debug(); //Just a bunch of stuff to do in Debug Mode + + void DPlayerMove(Vector2D loc); //Functions that begin with the prefix D are debug functions + void DKeyPress(KeyCode); + void DMousePress(int); + void DKeyRelease(KeyCode); + void DMouseRelease(int); + + int fireProj(); + void fireOppProj(int id, Vector2D loc); + + void quitGame(); + + static void handleNetworkPacket(Packet_Header, char* data, int length); + + static Game* mspInstance; + + GraphicsSystem* mpGraphicsSystem; + + UnitManager* mpUnitManager; + AnimationManager* mpAnimationManager; + GraphicsBufferManager* mpGraphicsBufferManager; + + GameListener* mpGameListener; + + Player* mpPlayerUnit; + Unit* mpOpponent; + + Timer* mpFrameTimer; + Timer* mpGameTimer; + + double deltaTime; + bool mDebugMode, mIsPlaying, mIsServer; + + float mTimePerFrame; + +}; diff --git a/SampleGame/Header Files/GameListener.h b/SampleGame/Header Files/GameListener.h new file mode 100644 index 00000000..30ea6be1 --- /dev/null +++ b/SampleGame/Header Files/GameListener.h @@ -0,0 +1,24 @@ +#pragma once + +#include "EventListener.h" +#include "InputSystem.h" + + +class GameListener : public EventListener +{ + +public: + GameListener(); + ~GameListener(); + + void handleEvent(const Event&); + + void processKeyUp(KeyCode key); + void processKey(KeyCode key); + void processKeyDown(KeyCode key); + + void processMouseButtonUp(int button); + void processMouseButton(int button); + void processMouseButtonDown(int button); + +}; \ No newline at end of file diff --git a/SampleGame/Header Files/Player.h b/SampleGame/Header Files/Player.h new file mode 100644 index 00000000..62c0ddd4 --- /dev/null +++ b/SampleGame/Header Files/Player.h @@ -0,0 +1,14 @@ +#include "Unit.h" +#include "Vector2D.h" + +class Player : public Unit +{ +public: + Player(); + Player(Animation* anim, float moveSpeed, Vector2D loc = Vector2D::Zero()); + ~Player(); + + void update(double deltaTime, float gameTime); + void setMoveDirection(Vector2D dir); + +}; \ No newline at end of file diff --git a/SampleGame/Header Files/PlayerMoveEvent.h b/SampleGame/Header Files/PlayerMoveEvent.h new file mode 100644 index 00000000..fe5c2a97 --- /dev/null +++ b/SampleGame/Header Files/PlayerMoveEvent.h @@ -0,0 +1,22 @@ +#pragma once + +#include "Event.h" +#include "Vector2D.h" + +class PlayerMoveEvent : public Event +{ + +public: + PlayerMoveEvent(Vector2D loc, float time); + ~PlayerMoveEvent(); + + Vector2D getMoveLoc() const { return moveLoc; } + float getTime() const { return time; } + +private: + PlayerMoveEvent() = delete; + + Vector2D moveLoc; + float time; + +}; \ No newline at end of file diff --git a/SampleGame/Header Files/Unit.h b/SampleGame/Header Files/Unit.h new file mode 100644 index 00000000..6100723f --- /dev/null +++ b/SampleGame/Header Files/Unit.h @@ -0,0 +1,39 @@ +#pragma once +#include + +#include "Trackable.h" +#include "Vector2D.h" + +class GraphicsSystem; +class Animation; + +class Unit : public Trackable +{ +public: + friend class UnitManager; + + void draw(GraphicsSystem* gs); + + void setLocation(Vector2D loc) + { + mLoc = loc; + if (loc.getX() < 0.0f) + { + loc = Vector2D(); + } + } + + void update(float deltaTime); + + Vector2D getLocation() { return mLoc; } + +protected: + Unit(); + Unit(Animation* anim, Vector2D loc = Vector2D::Zero(), Vector2D moveDir = Vector2D::Zero(), float speed = 1.0f); + ~Unit(); + + Animation* mAnimation; + Vector2D mLoc, mMoveDir; + float mSpeed; + +}; diff --git a/SampleGame/Header Files/UnitManager.h b/SampleGame/Header Files/UnitManager.h new file mode 100644 index 00000000..08e3bfb9 --- /dev/null +++ b/SampleGame/Header Files/UnitManager.h @@ -0,0 +1,44 @@ +#include "Trackable.h" +#include "Vector2D.h" +#include + +class Unit; +class Animation; +class GraphicsSystem; + +class UnitManager : public Trackable +{ + +public: + UnitManager(); + ~UnitManager(); + + int getNumOfUnits() { return mUnits.size(); } + + Unit* createUnit(Animation* anim, Vector2D loc = Vector2D::Zero(), Vector2D moveDir = Vector2D::Zero(), float speed = 1.0f); + Unit* createAndManageUnit(Animation* anim, int ID = 0, Vector2D loc = Vector2D::Zero(), Vector2D moveDir = Vector2D::Zero(), float speed = 1.0f); + + void addUnit(Unit* unit); + void removeUnit(Unit* unit); + void removeAndDeleteUnit(Unit* unit); + void deleteUnit(Unit* unit); + + int find(Unit* unit); + bool findID(int ID); + Unit* getUnitAt(int index); + int getIDAt(int index); + Unit* getUnitAtID(int ID); + + Unit* getUnitAtLoc(Vector2D loc); + + void draw(GraphicsSystem* gs); + + void update(float deltaTime); + + void clear(); + +private: + std::vector mUnits; + std::vector mIDs; + +}; \ No newline at end of file diff --git a/SampleGame/Source Files/Game.cpp b/SampleGame/Source Files/Game.cpp new file mode 100644 index 00000000..2bff6615 --- /dev/null +++ b/SampleGame/Source Files/Game.cpp @@ -0,0 +1,366 @@ +#include "Game.h" +#include "GraphicsSystem.h" +#include "Color.h" +#include "Animation.h" +#include "AnimationData.h" +#include "Player.h" +#include "Timer.h" +#include "UnitManager.h" +#include "AnimationManager.h" +#include "GraphicsBufferManager.h" +#include "EventSystem.h" +#include "GameListener.h" +#include "../RedNet/Header Files/TCPNetworkManager.h" +#include "Unit.h" +#include "TCPNetworkManager.h" + +#include + +using namespace std; + +Game* Game::mspInstance = nullptr; + +Game* Game::getInstance() +{ + if (!mspInstance) + mspInstance = new Game(); + + return mspInstance; +} + +void Game::cleanupInstance() +{ + if (mspInstance) + { + delete mspInstance; + mspInstance = nullptr; + } +} + +void Game::startGame() +{ + mIsPlaying = true; + mpFrameTimer->start(); + mpGameTimer->start(); + while (mIsPlaying) // Detect window close button or ESC key + { + deltaTime = mpFrameTimer->getElapsedTime(); + mpFrameTimer->start(); + + getInput(); + update(); + render(); + + debug(); + + while(mpFrameTimer->getElapsedTime() < mTimePerFrame) + mpFrameTimer->sleepUntilElapsed(mTimePerFrame); + + } +} + +Game::Game() +{ + mpGraphicsSystem = nullptr; + mpPlayerUnit = nullptr; + mpFrameTimer = nullptr; + mpGameTimer = nullptr; + + mpUnitManager = nullptr; + mpGraphicsBufferManager = nullptr; + mpAnimationManager = nullptr; + + mpGameListener = nullptr; + + mDebugMode = false; + mIsPlaying = false; + mTimePerFrame = 0.0f; + +} + +Game::~Game() +{ + +} + +void Game::init(int screenWidth, int screenHeight, int fps, bool isServer, bool debugMode) +{ + SetExitKey(-1); + SetTargetFPS(999); + + mpGraphicsSystem = new GraphicsSystem(); + + mpGraphicsSystem->init(screenWidth, screenHeight); + + mpUnitManager = new UnitManager(); + + mpGraphicsBufferManager = new GraphicsBufferManager(); + GraphicsBuffer* smurfBuffer = mpGraphicsBufferManager->createAndManageGraphicsBuffer("smurf", GAMEASSETS + SMURF_FILENAME); + GraphicsBuffer* projBuffer = mpGraphicsBufferManager->createAndManageGraphicsBuffer("proj", GAMEASSETS + PROJECTILE_FILENAME); + mpGraphicsBufferManager->createAndManageGraphicsBuffer("background", GAMEASSETS + BACKGROUND_FILEPATH); + + mpAnimationManager = new AnimationManager(); + + AnimationData* playerAnimData = mpAnimationManager->createAndManageAnimationData("smurf", smurfBuffer, 4, 4); + mpAnimationManager->createAndManageAnimationData("proj", projBuffer, 1, 13, 0.25f); + + Animation* playerAnim = mpAnimationManager->createAndManageAnimation(playerAnimData, 16); + + if (isServer) + { + mpPlayerUnit = new Player(playerAnim, 200.0f, Vector2D(300, 300)); + mpOpponent = mpUnitManager->createAndManageUnit(playerAnim, -1, Vector2D(700, 200)); //-1 for an ID represents a non-replicated unit + } + else + { + mpPlayerUnit = new Player(playerAnim, 200.0f, Vector2D(700, 200)); + mpOpponent = mpUnitManager->createAndManageUnit(playerAnim, -1, Vector2D(300, 300)); + } + + mpGameListener = new GameListener(); + EventSystem::getInstance()->addListener(PLAYER_MOVE_EVENT, mpGameListener); + EventSystem::getInstance()->addListener(KEYBOARD_EVENT, mpGameListener); + EventSystem::getInstance()->addListener(MOUSE_ACTION_EVENT, mpGameListener); + + mpFrameTimer = new Timer(); + mpGameTimer = new Timer(); + + mTimePerFrame = 1.0f / fps; + mDebugMode = debugMode; + mIsServer = isServer; + + if (isServer) + { + TCPNetworkManager::getInstance()->init("127.0.0.1", 8011, 70); //30% chance of packet drop + //TCPNetworkManager::getInstance()->init("127.0.0.1", 8011, 100); //No Dropepped Packets + TCPNetworkManager::getInstance()->listenAndAccept(); + } + else + { + TCPNetworkManager::getInstance()->init("127.0.0.1", 8012, 70); //30% chance of packet drop + //TCPNetworkManager::getInstance()->init("127.0.0.1", 8012, 100); //No Dropepped Packets + TCPNetworkManager::getInstance()->connectTo("127.0.0.1", 8011); + } + + srand(time(NULL)); +} + +void Game::cleanup() +{ + EventSystem::getInstance()->removeListenerFromAllEvents(mpGameListener); + delete mpGameListener; + mpGameListener = nullptr; + + delete mpPlayerUnit; + mpPlayerUnit = nullptr; + + delete mpUnitManager; + mpUnitManager = nullptr; + + delete mpAnimationManager; + mpAnimationManager = nullptr; + + delete mpGraphicsBufferManager; + mpGraphicsBufferManager = nullptr; + + EventSystem::cleanupInstance(); + + InputSystem::cleanupInstance(); + + mpGraphicsSystem->cleanup(); + + delete mpGraphicsSystem; + mpGraphicsSystem = nullptr; + + delete mpFrameTimer; + mpFrameTimer = nullptr; + + delete mpGameTimer; + mpGameTimer = nullptr; +} + +void Game::getInput() +{ + InputSystem::getInstance()->inputUpdate(mpGameTimer->getElapsedTime()); +} + +void Game::update() +{ + if (mIsServer) + { + mpUnitManager->update(deltaTime); + + for (int i = mpUnitManager->getNumOfUnits()-1; i > 0; i--) + { + int id = mpUnitManager->getIDAt(i); + //cout << id << " "; + if (id < 0) + continue; + + Unit* u = mpUnitManager->getUnitAt(i); + Vector2D pos = u->getLocation(); + + int dataLength = sizeof(id) + sizeof(pos); + char* data = new char[dataLength](); + + memcpy(data, (char*)&id, sizeof(id)); + memcpy(data + sizeof(id), (char*)&pos, sizeof(pos)); + + TCPNetworkManager::getInstance()->sendPacket(Packet_Header::OBJECT_MOVE, data, dataLength); + + delete[] data; + } + } + + mpAnimationManager->update(deltaTime); + + mpPlayerUnit->setMoveDirection(InputSystem::getInstance()->getMovementAxis().normalized()); + mpPlayerUnit->update(deltaTime, mpGameTimer->getElapsedTime()); + + TCPNetworkManager::getInstance()->update(deltaTime, mpGameTimer->getElapsedTime()); + TCPNetworkManager::getInstance()->receivePackets(handleNetworkPacket); +} + +void Game::render() +{ + RColor lightGrey = RColor(150, 150, 150, 255); + RColor white = RColor(255, 255, 255, 255); + + mpGraphicsSystem->clearScreenToColor(white); + + mpGraphicsSystem->draw(mpGraphicsBufferManager->getGraphicsBuffer("background"), Vector2D::Zero()); + + mpPlayerUnit->draw(mpGraphicsSystem); + + mpUnitManager->draw(mpGraphicsSystem); + + mpGraphicsSystem->flip(); +} + +void Game::debug() +{ + if(mDebugMode) + { + //cout << "Frame Length: " << deltaTime << ", which is equal to " << 1 / deltaTime << " FPS." << endl; + } +} + +void Game::DPlayerMove(Vector2D loc) +{ + if(mDebugMode) + cout << "Player move to: " << loc << endl; +} + +void Game::DKeyPress(KeyCode key) +{ + if(mDebugMode) + cout << "Key pressed with ID: " << key << endl; +} + +void Game::DMousePress(int button) +{ + if (mDebugMode) + cout << "Mouse Button pressed with ID: " << button << endl; +} + +void Game::DKeyRelease(KeyCode key) +{ + if (mDebugMode) + cout << "Key released with ID: " << key << endl; +} + +void Game::DMouseRelease(int button) +{ + if (mDebugMode) + cout << "Mouse Button released with ID: " << button << endl; +} + +void Game::quitGame() +{ + mIsPlaying = false; + cout << "QUIT" << endl; +} + +void Game::handleNetworkPacket(Packet_Header header, char* data, int length) +{ + Game* gameInstance = getInstance(); + + //cout << "I gotta packet boys!" << endl; + int id; + Vector2D pos; + Unit* u; + + switch (header) + { + case PLAYER_MOVE: + //cout << "WE MOVING!!" << endl; + memcpy((char*)&pos, data, sizeof(pos)); + + gameInstance->mpOpponent->setLocation(pos); + + + break; + + case FIRE_PROJECTILE: + //cout << "FIRE IN THE HOLE!" << endl; + memcpy((char*)&id, data, sizeof(id)); + memcpy((char*)&pos, data + sizeof(id), sizeof(pos)); + + gameInstance->fireOppProj(id, pos); + + break; + + case OBJECT_MOVE: + memcpy((char*)&id, data, sizeof(id)); + memcpy((char*)&pos, data + sizeof(id), sizeof(pos)); + + u = gameInstance->mpUnitManager->getUnitAtID(id); + + if (u) + { + u->setLocation(pos); + } + //cout << "MOVE OBJECT: " << id << endl; + break; + + case OBJECT_DELETE: + memcpy((char*)&id, data, sizeof(id)); + + gameInstance->mpUnitManager->removeAndDeleteUnit(gameInstance->mpUnitManager->getUnitAtID(id)); + break; + + case CAMERA_MOVE: + memcpy((char*)&pos, data, sizeof(pos)); + + gameInstance->mpGraphicsSystem->setCameraLocation(pos); + } + +} + +int Game::fireProj() +{ + Vector2D dir = Vector2D( + InputSystem::getInstance()->getMousePosition().getX() - mpPlayerUnit->getLocation().getX() + mpGraphicsSystem->getCameraLocation().getX(), + InputSystem::getInstance()->getMousePosition().getY() - mpPlayerUnit->getLocation().getY() + mpGraphicsSystem->getCameraLocation().getY()); + dir.normalize(); + + AnimationData* projAnimData = mpAnimationManager->getAnimationData("proj"); + Animation* projAnim = mpAnimationManager->createAndManageAnimation(projAnimData, 13); + + Unit* u = mpUnitManager->createAndManageUnit(projAnim, 0, mpPlayerUnit->getLocation(), dir, PROJECTILE_SPEED); + + return mpUnitManager->getIDAt(mpUnitManager->find(u)); +} + +void Game::fireOppProj(int id, Vector2D loc) +{ + Vector2D dir = Vector2D( + loc.getX() - mpOpponent->getLocation().getX() + mpGraphicsSystem->getCameraLocation().getX(), + loc.getY() - mpOpponent->getLocation().getY() + mpGraphicsSystem->getCameraLocation().getY()); + dir.normalize(); + + AnimationData* projAnimData = mpAnimationManager->getAnimationData("proj"); + Animation* projAnim = mpAnimationManager->createAndManageAnimation(projAnimData, 13); + + mpUnitManager->createAndManageUnit(projAnim, id, mpOpponent->getLocation(), dir, PROJECTILE_SPEED); +} \ No newline at end of file diff --git a/SampleGame/Source Files/GameListener.cpp b/SampleGame/Source Files/GameListener.cpp new file mode 100644 index 00000000..20fed70a --- /dev/null +++ b/SampleGame/Source Files/GameListener.cpp @@ -0,0 +1,181 @@ +#include "GameListener.h" +#include "PlayerMoveEvent.h" +#include "KeyboardEvent.h" +#include "MouseEvent.h" +#include "Game.h" +#include "GraphicsSystem.h" +#include "TCPNetworkManager.h" +#include "UnitManager.h" + +GameListener::GameListener() +{ + +} + +GameListener::~GameListener() +{ + +} + +void GameListener::handleEvent(const Event& event) +{ + if(event.getType() == PLAYER_MOVE_EVENT) + { + const PlayerMoveEvent& moveEvent = (const PlayerMoveEvent&)event; + + Game::getInstance()->DPlayerMove(moveEvent.getMoveLoc()); + + TCPNetworkManager::getInstance()->sendPacket(Packet_Header::PLAYER_MOVE, (char*)&(moveEvent.getMoveLoc()), sizeof(moveEvent.getMoveLoc())); + } + else if(event.getType() == KEYBOARD_EVENT) + { + const KeyboardEvent& keyboardEvent = (const KeyboardEvent&)event; + + if(keyboardEvent.getButtonState() == BUTTON_DOWN) + { + processKeyDown(keyboardEvent.getKey()); + } + else if(keyboardEvent.getButtonState() == BUTTON_HELD) + { + processKey(keyboardEvent.getKey()); + } + else if(keyboardEvent.getButtonState() == BUTTON_UP) + { + if(keyboardEvent.getKey() == Key_A || keyboardEvent.getKey() == Key_D) + { + InputSystem::getInstance()->setHorizonalMovementAxis(0.0f); + } + if(keyboardEvent.getKey() == Key_S || keyboardEvent.getKey() == Key_W) + { + InputSystem::getInstance()->setVerticalMovementAxis(0.0f); + } + + //Game::getInstance()->DKeyRelease(keyboardEvent.getKey()); + } + } + else if(event.getType() == MOUSE_ACTION_EVENT) + { + const MouseEvent& mouseEvent = (const MouseEvent&)event; + + if(mouseEvent.getButtonState() == BUTTON_DOWN) + { + + if(mouseEvent.getMouseButton() == 0) + { + int id = Game::getInstance()->fireProj(); + + Vector2D mouse = Vector2D( + InputSystem::getInstance()->getMousePosition().getX(), + InputSystem::getInstance()->getMousePosition().getY()); + + char* data = new char[sizeof(id) + sizeof(mouse)](); + + memcpy(data, (char*)&id, sizeof(id)); + memcpy(data + sizeof(id), (char*)&mouse, sizeof(mouse)); + + TCPNetworkManager::getInstance()->sendPacket(Packet_Header::FIRE_PROJECTILE, data, sizeof(id) + sizeof(mouse), true); + + delete[] data; + } + + if (mouseEvent.getMouseButton() == 1) + { + Vector2D mouse = Vector2D( + InputSystem::getInstance()->getMousePosition().getX(), + InputSystem::getInstance()->getMousePosition().getY()); + + UnitManager* um = Game::getInstance()->mpUnitManager; + Unit* u = um->getUnitAtLoc(mouse); + + if (u) + { + int id = um->getIDAt(um->find(u)); + + if (id >= 0) //Only Replicated Items + { + TCPNetworkManager::getInstance()->sendPacket(Packet_Header::OBJECT_DELETE, (char*)&id, sizeof(int), true); + + um->removeAndDeleteUnit(u); + } + + } + } + + //Game::getInstance()->DMousePress(mouseEvent.getMouseButton()); + } + else if(mouseEvent.getButtonState() == BUTTON_UP) + { + //Game::getInstance()->DMouseRelease(mouseEvent.getMouseButton()); + } + } +} + +void GameListener::processKeyDown(KeyCode key) +{ + + switch(key) + { + case Key_Escape: + Game::getInstance()->quitGame(); + break; + } + + //Game::getInstance()->DKeyPress(keyboardEvent.getKey()); +} + +void GameListener::processKey(KeyCode key) +{ + + Vector2D loc; + switch(key) + { + case Key_Right: + loc = Game::getInstance()->mpGraphicsSystem->getCameraLocation(); + Game::getInstance()->mpGraphicsSystem->setCameraLocation(loc + Vector2D(20, 0)); + loc = Game::getInstance()->mpGraphicsSystem->getCameraLocation(); + + TCPNetworkManager::getInstance()->sendPacket(Packet_Header::CAMERA_MOVE, (char*)&loc, sizeof(loc)); + break; + + case Key_Left: + loc = Game::getInstance()->mpGraphicsSystem->getCameraLocation(); + Game::getInstance()->mpGraphicsSystem->setCameraLocation(loc + Vector2D(-20, 0)); + loc = Game::getInstance()->mpGraphicsSystem->getCameraLocation(); + + TCPNetworkManager::getInstance()->sendPacket(Packet_Header::CAMERA_MOVE, (char*)&loc, sizeof(loc)); + break; + + case Key_Down: + loc = Game::getInstance()->mpGraphicsSystem->getCameraLocation(); + Game::getInstance()->mpGraphicsSystem->setCameraLocation(loc + Vector2D(0, 20)); + loc = Game::getInstance()->mpGraphicsSystem->getCameraLocation(); + + TCPNetworkManager::getInstance()->sendPacket(Packet_Header::CAMERA_MOVE, (char*)&loc, sizeof(loc)); + break; + + case Key_Up: + loc = Game::getInstance()->mpGraphicsSystem->getCameraLocation(); + Game::getInstance()->mpGraphicsSystem->setCameraLocation(loc + Vector2D(0, -20)); + loc = Game::getInstance()->mpGraphicsSystem->getCameraLocation(); + + TCPNetworkManager::getInstance()->sendPacket(Packet_Header::CAMERA_MOVE, (char*)&loc, sizeof(loc)); + break; + + case Key_A: + InputSystem::getInstance()->setHorizonalMovementAxis(Vector2D::Left().getX()); + break; + + case Key_S: + InputSystem::getInstance()->setVerticalMovementAxis(Vector2D::Down().getY()); + break; + + case Key_D: + InputSystem::getInstance()->setHorizonalMovementAxis(Vector2D::Right().getX()); + break; + + case Key_W: + InputSystem::getInstance()->setVerticalMovementAxis(Vector2D::Up().getY()); + break; + } + +} \ No newline at end of file diff --git a/SampleGame/Source Files/Player.cpp b/SampleGame/Source Files/Player.cpp new file mode 100644 index 00000000..88326ad1 --- /dev/null +++ b/SampleGame/Source Files/Player.cpp @@ -0,0 +1,36 @@ +#include "Player.h" +#include "EventSystem.h" +#include "PlayerMoveEvent.h" + +Player::Player() + : Unit() +{ + +} + +Player::Player(Animation* anim, float moveSpeed, Vector2D loc) + : Unit(anim, loc) +{ + mMoveDir = Vector2D::Zero(); + mSpeed = moveSpeed; +} + +Player::~Player() +{ + +} + +void Player::update(double deltaTime, float gameTime) +{ + + if(mMoveDir != Vector2D::Zero()) + { + mLoc += mMoveDir * deltaTime * mSpeed; + EventSystem::getInstance()->fireEvent(PlayerMoveEvent(mLoc, gameTime)); + } +} + +void Player::setMoveDirection(Vector2D dir) +{ + mMoveDir = dir; +} \ No newline at end of file diff --git a/SampleGame/Source Files/PlayerMoveEvent.cpp b/SampleGame/Source Files/PlayerMoveEvent.cpp new file mode 100644 index 00000000..f1506993 --- /dev/null +++ b/SampleGame/Source Files/PlayerMoveEvent.cpp @@ -0,0 +1,13 @@ +#include "PlayerMoveEvent.h" + +PlayerMoveEvent::PlayerMoveEvent(Vector2D loc, float time) + : Event(PLAYER_MOVE_EVENT) +{ + moveLoc = loc; + this->time = time; +} + +PlayerMoveEvent::~PlayerMoveEvent() +{ + +} \ No newline at end of file diff --git a/SampleGame/Source Files/Unit.cpp b/SampleGame/Source Files/Unit.cpp new file mode 100644 index 00000000..6882bdda --- /dev/null +++ b/SampleGame/Source Files/Unit.cpp @@ -0,0 +1,33 @@ +#include "Unit.h" +#include "GraphicsSystem.h" +#include "Animation.h" +#include "Sprite.h" + +Unit::Unit() +{ + mAnimation = nullptr; +} + +Unit::Unit(Animation* anim, Vector2D loc, Vector2D moveDir, float speed) +{ + mAnimation = anim; + mLoc = loc; + mMoveDir = moveDir.normalized(); + mSpeed = speed; +} + +Unit::~Unit() +{ + +} + +void Unit::draw(GraphicsSystem* gs) +{ + + gs->draw(mAnimation->getCurrentSprite(), mLoc - (mAnimation->getCurrentSprite()->getSize() * mAnimation->getCurrentSprite()->getScale()) / 2.0f); //Draw the sprite at the center of the unit location +} + +void Unit::update(float deltaTime) +{ + mLoc += mMoveDir * deltaTime * mSpeed; +} \ No newline at end of file diff --git a/SampleGame/Source Files/UnitManager.cpp b/SampleGame/Source Files/UnitManager.cpp new file mode 100644 index 00000000..382efa20 --- /dev/null +++ b/SampleGame/Source Files/UnitManager.cpp @@ -0,0 +1,200 @@ +#include "UnitManager.h" +#include "Unit.h" +#include "Animation.h" +#include "GraphicsSystem.h" +#include "Sprite.h" +#include + +using namespace std; + +UnitManager::UnitManager() +{ + srand(time(NULL)); +} + +UnitManager::~UnitManager() +{ + if(!mUnits.empty()) + { + clear(); + } +} + +Unit* UnitManager::createUnit(Animation* anim, Vector2D loc, Vector2D moveDir, float speed) +{ + return new Unit(anim, loc, moveDir, speed); +} + +Unit* UnitManager::createAndManageUnit(Animation* anim, int ID, Vector2D loc, Vector2D moveDir, float speed) +{ + if (ID == 0) + ID = rand(); + + if (findID(ID)) + return nullptr; + + Unit* unit = new Unit(anim, loc, moveDir, speed); + mUnits.push_back(unit); + + mIDs.push_back(ID); + + return unit; +} + +void UnitManager::addUnit(Unit* unit) +{ + int ID = rand(); + + mUnits.push_back(unit); + mIDs.push_back(ID); +} + +void UnitManager::removeUnit(Unit* unit) +{ + vector::iterator j = mIDs.begin(); + for(vector::iterator i = mUnits.begin(); i != mUnits.end(); i++, j++) + { + if(*i == unit) + { + mUnits.erase(i); + mIDs.erase(j); + return; + } + } +} + +void UnitManager::removeAndDeleteUnit(Unit* unit) +{ + vector::iterator j = mIDs.begin(); + for(vector::iterator i = mUnits.begin(); i != mUnits.end(); i++, j++) + { + if(*i == unit) + { + delete *i; + mUnits.erase(i); + mIDs.erase(j); + return; + } + } +} + +void UnitManager::deleteUnit(Unit* unit) +{ + delete unit; +} + +int UnitManager::find(Unit* unit) +{ + int index = 0; + for(vector::iterator i = mUnits.begin(); i != mUnits.end(); i++) + { + if(*i == unit) + { + return index; + } + index++; + } + return -1; +} + +Unit* UnitManager::getUnitAt(int index) +{ + int ind = 0; + for(vector::iterator i = mUnits.begin(); i != mUnits.end(); i++) + { + if(ind != index) + { + ind++; + continue; + } + + return *i; + } + return nullptr; +} + +int UnitManager::getIDAt(int index) +{ + int ind = 0; + for (vector::iterator i = mIDs.begin(); i != mIDs.end(); i++) + { + if (ind != index) + { + ind++; + continue; + } + + return *i; + } + return -2; +} + +Unit* UnitManager::getUnitAtID(int index) +{ + vector::iterator j = mIDs.begin(); + for (vector::iterator i = mUnits.begin(); i != mUnits.end(); i++, j++) + { + if (*j == index) + { + return *i; + } + + } + return nullptr; +} + +Unit* UnitManager::getUnitAtLoc(Vector2D loc) +{ + for (vector::iterator i = mUnits.begin(); i != mUnits.end(); i++) + { + Unit* u = *i; + + if (loc.getX() > u->mLoc.getX() - u->mAnimation->getCurrentSprite()->getSize().getX() / 2.0f + && loc.getX() < u->mLoc.getX() + u->mAnimation->getCurrentSprite()->getSize().getX() / 2.0f + && loc.getY() > u->mLoc.getY() - u->mAnimation->getCurrentSprite()->getSize().getY() / 2.0f + && loc.getY() < u->mLoc.getY() + u->mAnimation->getCurrentSprite()->getSize().getY() / 2.0f) + return u; + } + return nullptr; +} + +void UnitManager::draw(GraphicsSystem* gs) +{ + for(vector::iterator i = mUnits.begin(); i != mUnits.end(); i++) + { + (*i)->draw(gs); + } +} + +void UnitManager::update(float deltaTime) +{ + for(vector::iterator i = mUnits.begin(); i != mUnits.end(); i++) + { + (*i)->update(deltaTime); + } +} + +void UnitManager::clear() +{ + + if(mUnits.size() > 0) + { + for(vector::iterator i = mUnits.begin(); i != mUnits.end(); i++) + { + delete (*i); + } + } + + mUnits.clear(); + +} + +bool UnitManager::findID(int ID) +{ + for (vector::iterator i = mIDs.begin(); i != mIDs.end(); i++) + { + if (*i == ID) + return true; + } + return false; +} \ No newline at end of file diff --git a/SampleGame/Source Files/main.cpp b/SampleGame/Source Files/main.cpp new file mode 100644 index 00000000..ff20a492 --- /dev/null +++ b/SampleGame/Source Files/main.cpp @@ -0,0 +1,64 @@ +/******************************************************************************************* +* +* raylib-cpp [core] example - Basic window +* +* Welcome to raylib-cpp! +* +* To test examples, just press F6 and execute raylib_compile_execute script +* Note that compiled executable is placed in the same folder as .c file +* +* You can find all basic examples on C:\raylib\raylib\examples folder or +* raylib official webpage: www.raylib.com +* +* Enjoy using raylib-cpp. :) +* +* This example has been created using raylib 1.0 (www.raylib.com) +* raylib-cpp is licensed under an unmodified zlib/libpng license (View raylib-cpp.hpp for details) +* +* Copyright (c) 2021 Rob Loach (@RobLoach) +* +********************************************************************************************/ + +#include "Game.h" + +#include "MemoryTracker.h" +#include "Timer.h" + +#include +#include + +const int screenWidth = 800; +const int screenHeight = 450; + +int main(int argc, char* argv[]) +{ + + //Initialize runtime timer + Timer t; + t.start(); + + bool isServer = false; + if (argc > 1) + { + if (strcmp(argv[1], "server") == 0) + isServer = true; + } + + + //Play Game + Game::getInstance()->init(screenWidth, screenHeight, 60, isServer, true); + Game::getInstance()->startGame(); + Game::getInstance()->cleanup(); + Game::cleanupInstance(); + + //Track Memory Leaks + MemoryTracker::cleanupInstance(); + + //Output runtime + std::cout << "----------Total runtime: " << t.getElapsedTime() << std::endl; + + std::string temp; + std::cin >> temp; + + return 0; +} diff --git a/raylib-cpp/.editorconfig b/raylib-cpp/.editorconfig new file mode 100644 index 00000000..2e270580 --- /dev/null +++ b/raylib-cpp/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*] +indent_style = space +charset = utf-8 +end_of_line = lf +indent_size = 4 +insert_final_newline = true +trim_trailing_whitespace = true diff --git a/raylib-cpp/.github/workflows/Tests.yml b/raylib-cpp/.github/workflows/Tests.yml new file mode 100644 index 00000000..c7255403 --- /dev/null +++ b/raylib-cpp/.github/workflows/Tests.yml @@ -0,0 +1,25 @@ +name: Tests + +on: [push, pull_request] + +jobs: + Test: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + with: + submodules: recursive + + - name: Install Dependencies + run: sudo apt-get install xorg-dev libglu1-mesa-dev + + - name: Configure + run: cmake -B build . + + - name: Build + run: cmake --build build + + - name: Test + run: ./build/tests/raylib_test diff --git a/raylib-cpp/.gitignore b/raylib-cpp/.gitignore new file mode 100644 index 00000000..182db34d --- /dev/null +++ b/raylib-cpp/.gitignore @@ -0,0 +1,6 @@ +build +/.vscode +package-lock.json +node_modules +cmake-build-debug +.idea diff --git a/raylib-cpp/.gitmodules b/raylib-cpp/.gitmodules new file mode 100644 index 00000000..9ab9a3df --- /dev/null +++ b/raylib-cpp/.gitmodules @@ -0,0 +1,4 @@ +[submodule "vendor/raylib"] + path = vendor/raylib + url = https://github.com/raysan5/raylib.git + ignore = dirty diff --git a/raylib-cpp/CHANGELOG.md b/raylib-cpp/CHANGELOG.md new file mode 100644 index 00000000..27b8ed28 --- /dev/null +++ b/raylib-cpp/CHANGELOG.md @@ -0,0 +1,60 @@ +# Changelog +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + + +## [3.7.0] - 2021-04-23 +### Added +- `Window::ClearBackground()` ([#127](https://github.com/RobLoach/raylib-cpp/pull/127) by [ufrshubham](https://github.com/ufrshubham)) +### Changes +- Updated to raylib 3.7.0 + +## [3.5.0] - 2021-03-24 +### Added +- VSCode project template (by [KnockerPulsar](https://github.com/KnockerPulsar)) +### Changes +- Updated documentation + +## [3.5.0-beta3] - 2021-02-18 +### Added +- Added a C++ version of raylib's loading thread example (by [@pkeir]([https://github.com/pkeir)) +- Updated documentation +### Fixed +- Made the global wrapped functions static to avoid redeclaration + +## [v3.5.0-beta2] - 2021-01-18 +### Fixed +- `Font.charsPadding` loading +### Removed +- `DroppedFiles` class replaced with `std::vector raylib::GetDroppedFiles()` + +## [v3.5.0-beta1] - 2021-01-02 +### Added +- `Model.Draw()` and `Model.DrawWires()` +- `models_first_person_maze.cpp` example +- String override functions to allow using `std::string` directly instead of `const char*` +- `std::vector` wrappers with `raylib::GetDirectoryFiles()` and `raylib::GetDroppedFiles()` +- `raylib::Color::RayWhite()` static functions to build `Color` objects +- `Rectangle.GetPosition()` and `Rectangle.SetPosition()` +- `Rectangle.GetSize()` and `Rectangle.SetSize()` + +### Fixed +- Most objects are now passed by reference +- `Mouse::SetX()` and `Mouse::SetY()` setting incorrect values +- Error protection when unloading images, materials, models and meshes + +### Changed +- `Mouse` functions are now `static`. Use `Mouse::SetX()` instead of using `Mouse mouse`. +- `Camera*::BeginMode()` and `Camera*::EndMode()` no longer have 2D/3D in the name + +## [v3.5.0-alpha1] - 2020-12-26 +### Changed +- Update to raylib 3.5.0 + +### Added +- Documentation + +### Removed +- Static inline Color variables (like `raylib::Color::RayWhite`). Instead, use `::RAYWHITE`. diff --git a/raylib-cpp/CMakeLists.txt b/raylib-cpp/CMakeLists.txt new file mode 100644 index 00000000..222caa69 --- /dev/null +++ b/raylib-cpp/CMakeLists.txt @@ -0,0 +1,34 @@ +cmake_minimum_required(VERSION 3.11) +set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") +project (raylib-cpp + VERSION 3.7.0 + DESCRIPTION "raylib-cpp C++ Object Oriented Wrapper for raylib" + HOMEPAGE_URL "https://github.com/robloach/raylib-cpp" + LANGUAGES C CXX) + +# Options +option(BUILD_RAYLIB_CPP_EXAMPLES "Examples" ON) + +# C++ +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) + +# Include Directory +add_subdirectory(include) + +# Examples +if(BUILD_RAYLIB_CPP_EXAMPLES) + add_subdirectory(examples) + set(BUILD_RAYLIB_CPP_STATIC ON) +endif() + +# Testing +include(CTest) +enable_testing() +if(BUILD_TESTING AND BUILD_RAYLIB_CPP_EXAMPLES) + set(CTEST_CUSTOM_TESTS_IGNORE + pkg-config--static + ) + add_subdirectory(tests) +endif() diff --git a/raylib-cpp/CPPLINT.cfg b/raylib-cpp/CPPLINT.cfg new file mode 100644 index 00000000..b95edeec --- /dev/null +++ b/raylib-cpp/CPPLINT.cfg @@ -0,0 +1,7 @@ +set noparent +root=.. +linelength=120 +exclude_files=vendor +exclude_files=docs +filter=-runtime/explicit +filter=-legal/copyright diff --git a/raylib-cpp/LICENSE b/raylib-cpp/LICENSE new file mode 100644 index 00000000..a663e982 --- /dev/null +++ b/raylib-cpp/LICENSE @@ -0,0 +1,16 @@ +Copyright (c) 2019-2021 Rob Loach (@RobLoach) + +This software is provided "as-is", without any express or implied warranty. In no event +will the authors be held liable for any damages arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, including commercial +applications, and to alter it and redistribute it freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not claim that you + wrote the original software. If you use this software in a product, an acknowledgment + in the product documentation would be appreciated but is not required. + + 2. Altered source versions must be plainly marked as such, and must not be misrepresented + as being the original software. + + 3. This notice may not be removed or altered from any source distribution. diff --git a/raylib-cpp/README.md b/raylib-cpp/README.md new file mode 100644 index 00000000..485bd3a2 --- /dev/null +++ b/raylib-cpp/README.md @@ -0,0 +1,304 @@ +![raylib-cpp Logo](projects/Doxygen/raylib-cpp_256x256.png) + +# raylib-cpp [![Tests](https://github.com/RobLoach/raylib-cpp/workflows/Tests/badge.svg)](https://github.com/RobLoach/raylib-cpp/actions?query=workflow%3ATests+branch%3Amaster) [![License](https://img.shields.io/badge/license-zlib%2Flibpng-blue.svg)](LICENSE) + +[raylib-cpp](https://github.com/robloach/raylib-cpp) is a C++ wrapper library for [raylib](https://www.raylib.com), a simple and easy-to-use library to enjoy videogames programming. This C++ header provides object-oriented wrappers around *raylib*'s struct interfaces. + +## Example + +``` cpp +#include "raylib-cpp.hpp" + +int main() { + int screenWidth = 800; + int screenHeight = 450; + + raylib::Window window(screenWidth, screenHeight, "raylib-cpp - basic window"); + raylib::Texture logo("raylib_logo.png"); + + SetTargetFPS(60); + + while (!window.ShouldClose()) + { + BeginDrawing(); + + window.ClearBackground(RAYWHITE); + + DrawText("Congrats! You created your first window!", 190, 200, 20, LIGHTGRAY); + + // Object methods. + logo.Draw( + screenWidth / 2 - logo.GetWidth() / 2, + screenHeight / 2 - logo.GetHeight() / 2); + + EndDrawing(); + } + + // UnloadTexture() and CloseWindow() are called automatically. + + return 0; +} +``` + +See the [examples folder](examples) for more of the raylib examples that have been ported over to *raylib-cpp*. + +## Sample Applications + +- [Ian Pan's Raylib Games](https://github.com/ianpan870102/raylib-practices) + +## Features + +There are a few conventions that raylib-cpp takes on when adopting raylib. See the [raylib-cpp documentation](https://robloach.github.io/raylib-cpp/index.html) for details on the entire API. + +### Constructors + +Object constructors load raylib objects. + +``` cpp +// raylib +Texture2D texture = LoadTexture("texture.png"); + +// raylib-cpp +raylib::Texture2D texture("texture.png"); +``` + +### Object Methods + +When a raylib method has an object as one of its arguments, you can call the method on the object itself. + +``` cpp +// raylib +Vector2 position(50, 50); +DrawPixelV(position, PURPLE); + +// raylib-cpp +raylib::Vector2 position(50, 50); +position.DrawPixel(PURPLE); +``` + +### Method Names + +If a method's name contains an object's name, it is removed from its name to shorten the method name. + +``` cpp +// raylib +DrawTexture(texture, 50, 50, WHITE); + +// raylib-cpp +texture.Draw(50, 50, WHITE); +``` + +### Optional Parameters + +Many methods have optional parameters with sane defaults. + +``` cpp +// raylib +DrawTexture(texture, 50, 50, WHITE); + +// raylib-cpp +texture.Draw(50, 50); // WHITE is provided as the default tint. +``` + +### Object Destructors + +Objects will attempt to unload their respective raylib resources on destruction. This means no need to call Unload or Close methods. This applies to the window, textures, images, sounds, etc. + +``` cpp +// raylib +InitWindow(640, 480, "Hello World"); +CloseWindow(); + +// raylib-cpp +raylib::Window window(640, 480, "Hello World"); +// window.Close() will be called automatically when the object is destructed. +``` + +### Property Get/Set + +Properties can be assigned through getter and setter methods. You still have access to the internal properties, however. + +``` cpp +// raylib +Vector2 position; +position.x = 50; +position.y = 100; + +// raylib-cpp +raylib::Vector2 position; +position.SetX(50); +position.SetY(100); + +// ... or +position.x = 50; +position.y = 100; +``` + +### Method Overrides + +Many similar raylib method names have different name suffixes based on what arguments they take. With raylib-cpp, these cases use [method overriding](https://en.wikipedia.org/wiki/Method_overriding) to allow using the same method names. + +``` cpp +// raylib +Color color = GRAY; +DrawPixel(50, 50, color); +Vector2 position = {50.0f, 50.0f}; +DrawPixelV(position, color); // Extra V in method name. + +// raylib-cpp +raylib::Color color = raylib::Color::Gray(); +color.DrawPixel(50, 50); +Vector2 position(50.0f, 50.0f); +color.DrawPixel(position); // No more V in method name. +position.DrawPixel(color); // Alternatively +``` + +### Method Chaining + +When there's a method that doesn't return anything, it'll instead return the object itself, allowing [method chaining](https://en.wikipedia.org/wiki/Method_chaining). + +``` cpp +// raylib +Image cat = ImageLoad("cat.png"); +ImageCrop(&cat, (Rectangle){ 100, 10, 280, 380 }); +ImageFlipHorizontal(&cat); +ImageResize(&cat, 150, 200); + +// raylib-cpp +raylib::Image cat("cat.png"); +cat.Crop(100, 10, 280, 380) + .FlipHorizontal() + .Resize(150, 200); +``` + +### Operators + +There are operator overrides for objects. + +``` cpp +// raylib +Vector2 position = {50, 50}; +Vector2 speed = {10, 10}; +position.x += speed.x; +position.y += speed.y; + +// raylib-cpp +raylib::Vector2 position(50, 50); +raylib::Vector2 speed(10, 10); +position += speed; // Addition assignment operator override. +``` + +### Vector-Based Returns + +When there is a function that would return a pointer-array, there is a wrapper that allows returning a [vector](https://www.cplusplus.com/reference/vector/vector/) of objects instead. + +``` cpp +// raylib +int count; +char** files = GetDirectoryFiles(".", &count); +printf("Count: %i\n", count); +for (int i = 0; i < count; i++) { + printf("File: %s\n", files[i]); +} +ClearDirectoryFiles(); + +// raylib-cpp +std::vector files = raylib::GetDirectoryFiles("."); +std::cout << "Count: " << files.size() << std::endl; +for (auto& file : files) { + std::cout << "File: " << file << std::endl; +} +``` + +### String Functions + +Many of the raylib functions have `std::string`-related functions to allow calling them directly with `std::string`s to save having to use the `.c_str()` method. + +``` cpp +// raylib +const char* url = "https://raylib.com"; +OpenURL(url); + +// raylib-cpp +std::string url = "https://raylib.com"; +raylib::OpenURL(url); +``` + +### RayMath + +The [raymath](https://github.com/raysan5/raylib/blob/master/src/raymath.h) methods are included. + +``` cpp +// raylib +Vector2 direction = {50, 50}; +Vector2 newDirection = Vector2Rotate(direction, 30); + +// raylib-cpp +raylib::Vector2 direction(50, 50); +raylib::Vector2 newDirection = direction.Rotate(30); +``` + +## Getting Started + +*raylib-cpp* is a header-only library. This means in order to use it, you must link your project to [raylib](https://www.raylib.com/), and then include [`include/raylib-cpp.hpp`](raylib-cpp/include/raylib-cpp.hpp). + +1. Set up a *raylib* project using the [build and install instructions](https://github.com/raysan5/raylib#build-and-installation) +2. Ensure C++ files are compiled with C++ +3. Download *raylib-cpp* +4. Include [`include/raylib-cpp.hpp`](include/raylib-cpp.hpp) + ``` cpp + #include "path/to/raylib-cpp.hpp" + ``` + +### Starter Projects + +The [projects directory](projects) includes some starter templates... + +- [CMake template](projects/CMake) +- [Make template](projects/Make) + +If there's a project template you would like to see added, feel free to [make an issue](https://github.com/RobLoach/raylib-cpp/issues) and we can add it in. + +## Development + +The following are some tools in order to build and contribute to *raylib-cpp*... + +### Compiling + +*raylib-cpp* uses [CMake](https://cmake.org) as a primary target for development. To build it, and run the tests or examples, use... + +``` bash +git clone https://github.com/RobLoach/raylib-cpp.git +cd raylib-cpp +git submodule update --init +mkdir build +cd build +cmake .. +make +make test +./examples/core_basic_window +``` + +### Documentation + +To build the document with [Doxygen](http://www.doxygen.nl/), use... + +``` +doxygen projects/Doxygen/Doxyfile +``` + +### Coding Standards + +This uses cpplint to adopt coding standards. + +``` +cpplint --recursive include +``` + +### Defines + +- `RAYLIB_CPP_NO_MATH` - When set, will skip adding the `raymath.h` integrations + +## License + +*raylib-cpp* is licensed under an unmodified zlib/libpng license, which is an OSI-certified, BSD-like license that allows static linking with closed source software. Check [LICENSE](LICENSE) for further details. diff --git a/raylib-cpp/docs/_audio_device_8hpp_source.html b/raylib-cpp/docs/_audio_device_8hpp_source.html new file mode 100644 index 00000000..e8df87f3 --- /dev/null +++ b/raylib-cpp/docs/_audio_device_8hpp_source.html @@ -0,0 +1,130 @@ + + + + + + + +raylib-cpp: AudioDevice.hpp Source File + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
AudioDevice.hpp
+
+
+
1 #ifndef RAYLIB_CPP_INCLUDE_AUDIODEVICE_HPP_
+
2 #define RAYLIB_CPP_INCLUDE_AUDIODEVICE_HPP_
+
3 
+
4 #include "./raylib.hpp"
+
5 #include "./raylib-cpp-utils.hpp"
+
6 
+
7 namespace raylib {
+
11 class AudioDevice {
+
12  public:
+
18  AudioDevice(bool lateInit = false) {
+
19  if (!lateInit) {
+
20  Init();
+
21  }
+
22  }
+
23 
+ +
28  Close();
+
29  }
+
30 
+
34  inline AudioDevice& Init() {
+
35  ::InitAudioDevice();
+
36  return *this;
+
37  }
+
38 
+
42  inline void Close() {
+
43  ::CloseAudioDevice();
+
44  }
+
45 
+
49  inline bool IsReady() const {
+
50  return ::IsAudioDeviceReady();
+
51  }
+
52 
+
56  inline AudioDevice& SetVolume(float volume) {
+
57  ::SetMasterVolume(volume);
+
58  return *this;
+
59  }
+
60 };
+
61 } // namespace raylib
+
62 
+
63 #endif // RAYLIB_CPP_INCLUDE_AUDIODEVICE_HPP_
+
+
All raylib-cpp classes and functions appear in the raylib namespace.
Definition: AudioDevice.hpp:7
+
AudioDevice & SetVolume(float volume)
Set master volume (listener).
Definition: AudioDevice.hpp:56
+
AudioDevice & Init()
Initialize audio device and context.
Definition: AudioDevice.hpp:34
+
~AudioDevice()
Close the audio device and context.
Definition: AudioDevice.hpp:27
+
AudioDevice(bool lateInit=false)
Initialize audio device and context.
Definition: AudioDevice.hpp:18
+
Audio device management functions.
Definition: AudioDevice.hpp:11
+
void Close()
Close the audio device and context.
Definition: AudioDevice.hpp:42
+
bool IsReady() const
Check if audio device has been initialized successfully.
Definition: AudioDevice.hpp:49
+ + + + diff --git a/raylib-cpp/docs/_audio_stream_8hpp_source.html b/raylib-cpp/docs/_audio_stream_8hpp_source.html new file mode 100644 index 00000000..fecc32de --- /dev/null +++ b/raylib-cpp/docs/_audio_stream_8hpp_source.html @@ -0,0 +1,189 @@ + + + + + + + +raylib-cpp: AudioStream.hpp Source File + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
AudioStream.hpp
+
+
+
1 #ifndef RAYLIB_CPP_INCLUDE_AUDIOSTREAM_HPP_
+
2 #define RAYLIB_CPP_INCLUDE_AUDIOSTREAM_HPP_
+
3 
+
4 #include "./raylib.hpp"
+
5 #include "./raylib-cpp-utils.hpp"
+
6 
+
7 namespace raylib {
+
11 class AudioStream : public ::AudioStream {
+
12  public:
+
13  AudioStream(const ::AudioStream& music) {
+
14  set(music);
+
15  }
+
16 
+
20  AudioStream(unsigned int SampleRate, unsigned int SampleSize, unsigned int Channels) {
+
21  set(InitAudioStream(SampleRate, SampleSize, Channels));
+
22  }
+
23 
+
24  ~AudioStream() {
+
25  Close();
+
26  }
+
27 
+
28  GETTERSETTER(rAudioBuffer *, Buffer, buffer)
+
29  GETTERSETTER(unsigned int, SampleRate, sampleRate)
+
30  GETTERSETTER(unsigned int, SampleSize, sampleSize)
+
31  GETTERSETTER(unsigned int, Channels, channels)
+
32 
+
33  AudioStream& operator=(const ::AudioStream& stream) {
+
34  set(stream);
+
35  return *this;
+
36  }
+
37 
+
41  inline AudioStream& Update(const void *data, int samplesCount) {
+
42  ::UpdateAudioStream(*this, data, samplesCount);
+
43  return *this;
+
44  }
+
45 
+
49  inline void Close() {
+
50  ::CloseAudioStream(*this);
+
51  }
+
52 
+
56  inline bool IsProcessed() const {
+
57  return ::IsAudioStreamProcessed(*this);
+
58  }
+
59 
+
63  inline AudioStream& Play() {
+
64  ::PlayAudioStream(*this);
+
65  return *this;
+
66  }
+
67 
+
71  inline AudioStream& Pause() {
+
72  ::PauseAudioStream(*this);
+
73  return *this;
+
74  }
+
75 
+
79  inline AudioStream& Resume() {
+
80  ::ResumeAudioStream(*this);
+
81  return *this;
+
82  }
+
83 
+
87  inline bool IsPlaying() const {
+
88  return ::IsAudioStreamPlaying(*this);
+
89  }
+
90 
+
94  inline AudioStream& Stop() {
+
95  ::StopAudioStream(*this);
+
96  return *this;
+
97  }
+
98 
+
102  inline AudioStream& SetVolume(float volume) {
+
103  ::SetAudioStreamVolume(*this, volume);
+
104  return *this;
+
105  }
+
106 
+
110  inline AudioStream& SetPitch(float pitch) {
+
111  ::SetAudioStreamPitch(*this, pitch);
+
112  return *this;
+
113  }
+
114 
+
118  inline static void SetBufferSizeDefault(int size) {
+
119  ::SetAudioStreamBufferSizeDefault(size);
+
120  }
+
121 
+
122  private:
+
123  inline void set(const ::AudioStream& stream) {
+
124  buffer = stream.buffer;
+
125  sampleRate = stream.sampleRate;
+
126  sampleSize = stream.sampleSize;
+
127  channels = stream.channels;
+
128  }
+
129 };
+
130 } // namespace raylib
+
131 
+
132 #endif // RAYLIB_CPP_INCLUDE_AUDIOSTREAM_HPP_
+
+
All raylib-cpp classes and functions appear in the raylib namespace.
Definition: AudioDevice.hpp:7
+
bool IsPlaying() const
Check if audio stream is playing.
Definition: AudioStream.hpp:87
+
AudioStream & Stop()
Stop audio stream.
Definition: AudioStream.hpp:94
+
AudioStream & Update(const void *data, int samplesCount)
Update audio stream buffers with data.
Definition: AudioStream.hpp:41
+
void Close()
Close audio stream and free memory.
Definition: AudioStream.hpp:49
+
AudioStream & Resume()
Resume audio stream.
Definition: AudioStream.hpp:79
+
static void SetBufferSizeDefault(int size)
Default size for new audio streams.
+
AudioStream & Play()
Play audio stream.
Definition: AudioStream.hpp:63
+
bool IsProcessed() const
Check if any audio stream buffers requires refill.
Definition: AudioStream.hpp:56
+
AudioStream & Pause()
Pause audio stream.
Definition: AudioStream.hpp:71
+
AudioStream & SetPitch(float pitch)
Set pitch for audio stream (1.0 is base level)
+
AudioStream management functions.
Definition: AudioStream.hpp:11
+
AudioStream & SetVolume(float volume)
Set volume for audio stream (1.0 is max level)
+
AudioStream(unsigned int SampleRate, unsigned int SampleSize, unsigned int Channels)
Init audio stream (to stream raw audio pcm data)
Definition: AudioStream.hpp:20
+ + + + diff --git a/raylib-cpp/docs/_bounding_box_8hpp_source.html b/raylib-cpp/docs/_bounding_box_8hpp_source.html new file mode 100644 index 00000000..66cf6a5c --- /dev/null +++ b/raylib-cpp/docs/_bounding_box_8hpp_source.html @@ -0,0 +1,152 @@ + + + + + + + +raylib-cpp: BoundingBox.hpp Source File + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
BoundingBox.hpp
+
+
+
1 #ifndef RAYLIB_CPP_INCLUDE_BOUNDINGBOX_HPP_
+
2 #define RAYLIB_CPP_INCLUDE_BOUNDINGBOX_HPP_
+
3 
+
4 #include "./raylib.hpp"
+
5 #include "./raylib-cpp-utils.hpp"
+
6 
+
7 namespace raylib {
+
11 class BoundingBox : public ::BoundingBox {
+
12  public:
+
13  BoundingBox(const ::BoundingBox& box) {
+
14  set(box);
+
15  }
+
16 
+
20  BoundingBox(const ::Mesh& mesh) {
+
21  set(::MeshBoundingBox(mesh));
+
22  }
+
23 
+
24  BoundingBox(::Vector3 minMax) {
+
25  min = minMax;
+
26  max = minMax;
+
27  }
+
28 
+
29  BoundingBox(::Vector3 Min, ::Vector3 Max) {
+
30  min = Min;
+
31  max = Max;
+
32  }
+
33 
+
34  GETTERSETTER(::Vector3, Min, min)
+
35  GETTERSETTER(::Vector3, Max, max)
+
36 
+
37  BoundingBox& operator=(const ::BoundingBox& box) {
+
38  set(box);
+
39  return *this;
+
40  }
+
41 
+
45  inline BoundingBox& Draw(::Color color = {255, 255, 255, 255}) {
+
46  DrawBoundingBox(*this, color);
+
47  return *this;
+
48  }
+
49 
+
53  inline bool CheckCollision(const ::BoundingBox& box2) const {
+
54  return CheckCollisionBoxes(*this, box2);
+
55  }
+
56 
+
60  inline bool CheckCollision(::Vector3 center, float radius) const {
+
61  return CheckCollisionBoxSphere(*this, center, radius);
+
62  }
+
63 
+
67  inline bool CheckCollision(const ::Ray& ray) const {
+
68  return CheckCollisionRayBox(ray, *this);
+
69  }
+
70 
+
71  private:
+
72  inline void set(const ::BoundingBox& box) {
+
73  min = box.min;
+
74  max = box.max;
+
75  }
+
76 };
+
77 } // namespace raylib
+
78 
+
79 #endif // RAYLIB_CPP_INCLUDE_BOUNDINGBOX_HPP_
+
+
All raylib-cpp classes and functions appear in the raylib namespace.
Definition: AudioDevice.hpp:7
+
BoundingBox(const ::Mesh &mesh)
Compute mesh bounding box limits.
Definition: BoundingBox.hpp:20
+
BoundingBox & Draw(::Color color={255, 255, 255, 255})
Draw a bounding box with wires.
Definition: BoundingBox.hpp:45
+
Vector3 type.
Definition: Vector3.hpp:16
+
bool CheckCollision(::Vector3 center, float radius) const
Detect collision between box and sphere.
Definition: BoundingBox.hpp:60
+
bool CheckCollision(const ::BoundingBox &box2) const
Detect collision between two boxes.
Definition: BoundingBox.hpp:53
+
Color type, RGBA (32bit)
Definition: Color.hpp:14
+
Bounding box type.
Definition: BoundingBox.hpp:11
+
bool CheckCollision(const ::Ray &ray) const
Detect collision between ray and bounding box.
Definition: BoundingBox.hpp:67
+ + + + diff --git a/raylib-cpp/docs/_camera2_d_8hpp_source.html b/raylib-cpp/docs/_camera2_d_8hpp_source.html new file mode 100644 index 00000000..59d5c575 --- /dev/null +++ b/raylib-cpp/docs/_camera2_d_8hpp_source.html @@ -0,0 +1,155 @@ + + + + + + + +raylib-cpp: Camera2D.hpp Source File + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Camera2D.hpp
+
+
+
1 #ifndef RAYLIB_CPP_INCLUDE_CAMERA2D_HPP_
+
2 #define RAYLIB_CPP_INCLUDE_CAMERA2D_HPP_
+
3 
+
4 #include "./raylib.hpp"
+
5 #include "./Vector2.hpp"
+
6 #include "./raylib-cpp-utils.hpp"
+
7 
+
8 namespace raylib {
+
12 class Camera2D : public ::Camera2D {
+
13  public:
+
14  Camera2D() {}
+
15  Camera2D(const ::Camera2D& camera) {
+
16  set(camera);
+
17  }
+
18 
+
19  Camera2D(::Vector2 offsetValue, ::Vector2 targetValue, float rotationValue = 0,
+
20  float zoomValue = 1) {
+
21  offset = offsetValue;
+
22  target = targetValue;
+
23  rotation = rotationValue;
+
24  zoom = zoomValue;
+
25  }
+
26 
+
27  inline Camera2D& BeginMode() {
+
28  ::BeginMode2D(*this);
+
29  return *this;
+
30  }
+
31 
+
32  inline Camera2D& EndMode() {
+
33  ::EndMode2D();
+
34  return *this;
+
35  }
+
36 
+
37  GETTERSETTER(::Vector2, Offset, offset)
+
38  GETTERSETTER(::Vector2, Target, target)
+
39  GETTERSETTER(float, Rotation, rotation)
+
40  GETTERSETTER(float, Zoom, zoom)
+
41 
+
42  Camera2D& operator=(const ::Camera2D& camera) {
+
43  set(camera);
+
44  return *this;
+
45  }
+
46 
+
50  inline Matrix GetMatrix() const {
+
51  return ::GetCameraMatrix2D(*this);
+
52  }
+
53 
+
57  inline Vector2 GetWorldToScreen(::Vector2 position) const {
+
58  return ::GetWorldToScreen2D(position, *this);
+
59  }
+
60 
+
64  inline Vector2 GetScreenToWorld(::Vector2 position) const {
+
65  return ::GetScreenToWorld2D(position, *this);
+
66  }
+
67 
+
68  private:
+
69  inline void set(const ::Camera2D& camera) {
+
70  offset = camera.offset;
+
71  target = camera.target;
+
72  rotation = camera.rotation;
+
73  zoom = camera.zoom;
+
74  }
+
75 };
+
76 } // namespace raylib
+
77 
+
78 #endif // RAYLIB_CPP_INCLUDE_CAMERA2D_HPP_
+
+
All raylib-cpp classes and functions appear in the raylib namespace.
Definition: AudioDevice.hpp:7
+
Matrix type (OpenGL style 4x4 - right handed, column major)
Definition: Matrix.hpp:16
+
Vector2 GetScreenToWorld(::Vector2 position) const
Returns the world space position for a 2d camera screen space position.
Definition: Camera2D.hpp:64
+
Matrix GetMatrix() const
Returns camera 2d transform matrix.
Definition: Camera2D.hpp:50
+
Camera2D type, defines a 2d camera.
Definition: Camera2D.hpp:12
+
Vector2 type.
Definition: Vector2.hpp:16
+
Vector2 GetWorldToScreen(::Vector2 position) const
Returns the screen space position for a 3d world space position.
Definition: Camera2D.hpp:57
+ + + + diff --git a/raylib-cpp/docs/_camera3_d_8hpp_source.html b/raylib-cpp/docs/_camera3_d_8hpp_source.html new file mode 100644 index 00000000..a2fe571c --- /dev/null +++ b/raylib-cpp/docs/_camera3_d_8hpp_source.html @@ -0,0 +1,222 @@ + + + + + + + +raylib-cpp: Camera3D.hpp Source File + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Camera3D.hpp
+
+
+
1 #ifndef RAYLIB_CPP_INCLUDE_CAMERA3D_HPP_
+
2 #define RAYLIB_CPP_INCLUDE_CAMERA3D_HPP_
+
3 
+
4 #include "./raylib.hpp"
+
5 #include "./Vector3.hpp"
+
6 #include "./raylib-cpp-utils.hpp"
+
7 
+
8 namespace raylib {
+
12 class Camera3D : public ::Camera3D {
+
13  public:
+
14  Camera3D(const ::Camera3D& camera) {
+
15  set(camera);
+
16  }
+
17 
+
18  Camera3D(::Vector3 positionValue, ::Vector3 targetValue, ::Vector3 upValue,
+
19  float fovyValue = 0, int projectionValue = 0) {
+
20  position = positionValue;
+
21  target = targetValue;
+
22  up = upValue;
+
23  fovy = fovyValue;
+
24  projection = projectionValue;
+
25  }
+
26 
+
27  Camera3D() {}
+
28 
+
29  GETTERSETTER(::Vector3, Position, position)
+
30  GETTERSETTER(::Vector3, Target, target)
+
31  GETTERSETTER(::Vector3, Up, up)
+
32  GETTERSETTER(float, Fovy, fovy)
+
33  GETTERSETTER(int, Projection, projection)
+
34 
+
35  Camera3D& operator=(const ::Camera3D& camera) {
+
36  set(camera);
+
37  return *this;
+
38  }
+
39 
+ +
44  ::BeginMode3D(*this);
+
45  return *this;
+
46  }
+
47 
+ +
52  ::EndMode3D();
+
53  return *this;
+
54  }
+
55 
+
59  inline Matrix GetMatrix() const {
+
60  return ::GetCameraMatrix(*this);
+
61  }
+
62 
+
66  inline Camera3D& SetMode(int mode) {
+
67  ::SetCameraMode(*this, mode);
+
68  return *this;
+
69  }
+
70 
+
74  inline Camera3D& SetAltControl(int altKey) {
+
75  ::SetCameraAltControl(altKey);
+
76  return *this;
+
77  }
+
78 
+
82  inline Camera3D& SetSmoothZoomControl(int szKey) {
+
83  ::SetCameraSmoothZoomControl(szKey);
+
84  return *this;
+
85  }
+
86 
+ +
91  int frontKey, int backKey,
+
92  int rightKey, int leftKey,
+
93  int upKey, int downKey) {
+
94  ::SetCameraMoveControls(frontKey, backKey, rightKey, leftKey, upKey, downKey);
+
95  return *this;
+
96  }
+
97 
+
101  inline Camera3D& Update() {
+
102  ::UpdateCamera(this);
+
103  return *this;
+
104  }
+
105 
+
109  inline Ray GetMouseRay(::Vector2 mousePosition) const {
+
110  return ::GetMouseRay(mousePosition, *this);
+
111  }
+
112 
+
116  inline Vector2 GetWorldToScreen(::Vector3 position) const {
+
117  return ::GetWorldToScreen(position, *this);
+
118  }
+
119 
+ +
124  const ::Texture2D& texture,
+
125  ::Vector3 center,
+
126  float size,
+
127  ::Color tint = {255, 255, 255, 255}) {
+
128  ::DrawBillboard(*this, texture, center, size, tint);
+
129  return *this;
+
130  }
+
131 
+ +
136  const ::Texture2D& texture,
+
137  ::Rectangle sourceRec,
+
138  ::Vector3 center,
+
139  float size,
+
140  ::Color tint = {255, 255, 255, 255}) {
+
141  ::DrawBillboardRec(*this, texture, sourceRec, center, size, tint);
+
142  return *this;
+
143  }
+
144 
+
145  private:
+
146  inline void set(const ::Camera3D& camera) {
+
147  position = camera.position;
+
148  target = camera.target;
+
149  up = camera.up;
+
150  fovy = camera.fovy;
+
151  projection = camera.projection;
+
152  }
+
153 };
+
154 
+
155 typedef Camera3D Camera;
+
156 } // namespace raylib
+
157 
+
158 #endif // RAYLIB_CPP_INCLUDE_CAMERA3D_HPP_
+
+
All raylib-cpp classes and functions appear in the raylib namespace.
Definition: AudioDevice.hpp:7
+
Matrix type (OpenGL style 4x4 - right handed, column major)
Definition: Matrix.hpp:16
+
static void UpdateCamera(const ::Camera &camera)
Update camera depending on selected mode.
Definition: Functions.hpp:196
+
Ray GetMouseRay(::Vector2 mousePosition) const
Returns a ray trace from mouse position.
Definition: Camera3D.hpp:109
+
Camera3D & SetMode(int mode)
Set camera mode (multiple camera modes available)
Definition: Camera3D.hpp:66
+
Matrix GetMatrix() const
Get transform matrix for camera.
Definition: Camera3D.hpp:59
+
Camera3D & BeginMode()
Initializes 3D mode with custom camera (3D)
Definition: Camera3D.hpp:43
+
Camera3D & EndMode()
Ends 3D mode and returns to default 2D orthographic mode.
Definition: Camera3D.hpp:51
+
Ray type (useful for raycast)
Definition: Ray.hpp:12
+
Camera3D & Update()
Update camera position for selected mode.
Definition: Camera3D.hpp:101
+
Camera3D & SetMoveControls(int frontKey, int backKey, int rightKey, int leftKey, int upKey, int downKey)
Set camera move controls (1st person and 3rd person cameras)
Definition: Camera3D.hpp:90
+
Camera3D & SetAltControl(int altKey)
Set camera alt key to combine with mouse movement (free camera)
Definition: Camera3D.hpp:74
+
Camera3D & DrawBillboard(const ::Texture2D &texture, ::Vector3 center, float size, ::Color tint={255, 255, 255, 255})
Draw a billboard texture.
Definition: Camera3D.hpp:123
+
Vector3 type.
Definition: Vector3.hpp:16
+
Camera type, defines a camera position/orientation in 3d space.
Definition: Camera3D.hpp:12
+
Rectangle type.
Definition: Rectangle.hpp:12
+
Vector2 type.
Definition: Vector2.hpp:16
+
Color type, RGBA (32bit)
Definition: Color.hpp:14
+
Camera3D & DrawBillboard(const ::Texture2D &texture, ::Rectangle sourceRec, ::Vector3 center, float size, ::Color tint={255, 255, 255, 255})
Draw a billboard texture defined by source.
Definition: Camera3D.hpp:135
+
Camera3D & SetSmoothZoomControl(int szKey)
Set camera smooth zoom key to combine with mouse (free camera)
Definition: Camera3D.hpp:82
+
Vector2 GetWorldToScreen(::Vector3 position) const
Returns the screen space position for a 3d world space position.
Definition: Camera3D.hpp:116
+ + + + diff --git a/raylib-cpp/docs/_color_8hpp_source.html b/raylib-cpp/docs/_color_8hpp_source.html new file mode 100644 index 00000000..c7b6d961 --- /dev/null +++ b/raylib-cpp/docs/_color_8hpp_source.html @@ -0,0 +1,311 @@ + + + + + + + +raylib-cpp: Color.hpp Source File + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Color.hpp
+
+
+
1 #ifndef RAYLIB_CPP_INCLUDE_COLOR_HPP_
+
2 #define RAYLIB_CPP_INCLUDE_COLOR_HPP_
+
3 
+
4 #include <string>
+
5 
+
6 #include "./raylib.hpp"
+
7 #include "./Vector4.hpp"
+
8 #include "./raylib-cpp-utils.hpp"
+
9 
+
10 namespace raylib {
+
14 class Color : public ::Color {
+
15  public:
+
16  Color(const ::Color& color) {
+
17  set(color);
+
18  }
+
19 
+
20  Color(
+
21  unsigned char red,
+
22  unsigned char green,
+
23  unsigned char blue,
+
24  unsigned char alpha = 255) :
+
25  ::Color{red, green, blue, alpha} {};
+
26 
+
30  Color() : ::Color{0, 0, 0, 255} {};
+
31 
+
35  Color(::Vector3 hsv) {
+
36  set(::ColorFromHSV(hsv.x, hsv.y, hsv.z));
+
37  }
+
38 
+
42  static ::Color FromHSV(float hue, float saturation, float value) {
+
43  return ::ColorFromHSV(hue, saturation, value);
+
44  }
+
45 
+
49  Color(int hexValue) {
+
50  set(::GetColor(hexValue));
+
51  }
+
52 
+
56  Color(::Vector4 normalized) {
+
57  set(::ColorFromNormalized(normalized));
+
58  }
+
59 
+
63  int ToInt() const {
+
64  return ::ColorToInt(*this);
+
65  }
+
66 
+
70  operator int() const {
+
71  return ::ColorToInt(*this);
+
72  }
+
73 
+
77  Color Fade(float alpha) const {
+
78  return ::Fade(*this, alpha);
+
79  }
+
80 
+
84  Vector4 Normalize() const {
+
85  return ::ColorNormalize(*this);
+
86  }
+
87 
+
91  Vector3 ToHSV() const {
+
92  return ::ColorToHSV(*this);
+
93  }
+
94 
+
95  GETTERSETTER(unsigned char, R, r)
+
96  GETTERSETTER(unsigned char, G, g)
+
97  GETTERSETTER(unsigned char, B, b)
+
98  GETTERSETTER(unsigned char, A, a)
+
99 
+
100  Color& operator=(const ::Color& color) {
+
101  set(color);
+
102  return *this;
+
103  }
+
104 
+
108  inline Color& ClearBackground() {
+
109  ::ClearBackground(*this);
+
110  return *this;
+
111  }
+
112 
+
113  inline Color& DrawPixel(int x, int y) {
+
114  ::DrawPixel(x, y, *this);
+
115  return *this;
+
116  }
+
117 
+
121  inline Color& DrawPixel(::Vector2 pos) {
+
122  ::DrawPixelV(pos, *this);
+
123  return *this;
+
124  }
+
125 
+
129  inline Color& DrawLine(int startPosX, int startPosY, int endPosX, int endPosY) {
+
130  ::DrawLine(startPosX, startPosY, endPosX, endPosY, *this);
+
131  return *this;
+
132  }
+
133 
+
134  inline Color& DrawLine(::Vector2 startPos, ::Vector2 endPos) {
+
135  ::DrawLineV(startPos, endPos, *this);
+
136  return *this;
+
137  }
+
138 
+
139  inline Color& DrawLine(::Vector2 startPos, ::Vector2 endPos, float thick) {
+
140  ::DrawLineEx(startPos, endPos, thick, *this);
+
141  return *this;
+
142  }
+
143 
+
144  inline Color& DrawLineBezier(::Vector2 startPos, ::Vector2 endPos, float thick) {
+
145  ::DrawLineBezier(startPos, endPos, thick, *this);
+
146  return *this;
+
147  }
+
148 
+
149  inline Color& DrawLineStrip(::Vector2 *points, int numPoints) {
+
150  ::DrawLineStrip(points, numPoints, *this);
+
151  return *this;
+
152  }
+
153 
+
154  inline Color& DrawText(const std::string& text, int posX, int posY, int fontSize) {
+
155  ::DrawText(text.c_str(), posX, posY, fontSize, *this);
+
156  return *this;
+
157  }
+
158 
+
159  inline Color& DrawText(const ::Font& font, const std::string& text, ::Vector2 position,
+
160  float fontSize, float spacing) {
+
161  ::DrawTextEx(font, text.c_str(), position, fontSize, spacing, *this);
+
162  return *this;
+
163  }
+
164 
+
165  inline Color& DrawText(
+
166  const ::Font& font,
+
167  const std::string& text,
+
168  ::Rectangle rec,
+
169  float fontSize,
+
170  float spacing,
+
171  bool wordWrap = false) {
+
172  ::DrawTextRec(font, text.c_str(), rec, fontSize, spacing, wordWrap, *this);
+
173  return *this;
+
174  }
+
175 
+
176  inline Color& DrawRectangle(int posX, int posY, int width, int height) {
+
177  ::DrawRectangle(posX, posY, width, height, *this);
+
178  return *this;
+
179  }
+
180 
+
181  inline Color& DrawRectangle(::Vector2 position, ::Vector2 size) {
+
182  ::DrawRectangleV(position, size, *this);
+
183  return *this;
+
184  }
+
185 
+
186  inline Color& DrawRectangle(::Rectangle rec) {
+
187  ::DrawRectangleRec(rec, *this);
+
188  return *this;
+
189  }
+
190 
+
191  inline Color& DrawRectangle(::Rectangle rec, ::Vector2 origin, float rotation) {
+
192  ::DrawRectanglePro(rec, origin, rotation, *this);
+
193  return *this;
+
194  }
+
195 
+
196  inline Color& DrawRectangleLines(int posX, int posY, int width, int height) {
+
197  ::DrawRectangleLines(posX, posY, width, height, *this);
+
198  return *this;
+
199  }
+
200 
+
201  inline Color& DrawRectangleLines(::Rectangle rec, int lineThick) {
+
202  ::DrawRectangleLinesEx(rec, lineThick, *this);
+
203  return *this;
+
204  }
+
205 
+
209  Color Alpha(float alpha) const {
+
210  return ::ColorAlpha(*this, alpha);
+
211  }
+
212 
+
216  Color AlphaBlend(::Color dst, ::Color tint) const {
+
217  return ::ColorAlphaBlend(dst, *this, tint);
+
218  }
+
219 
+
220  inline static Color LightGray() { return LIGHTGRAY; }
+
221  inline static Color Gray() { return GRAY; }
+
222  inline static Color DarkGray() { return DARKGRAY; }
+
223  inline static Color Yellow() { return YELLOW; }
+
224  inline static Color Gold() { return GOLD; }
+
225  inline static Color Orange() { return ORANGE; }
+
226  inline static Color Pink() { return PINK; }
+
227  inline static Color Red() { return RED; }
+
228  inline static Color Maroon() { return MAROON; }
+
229  inline static Color Green() { return GREEN; }
+
230  inline static Color Lime() { return LIME; }
+
231  inline static Color DarkGreen() { return DARKGREEN; }
+
232  inline static Color SkyBlue() { return SKYBLUE; }
+
233  inline static Color Blue() { return BLUE; }
+
234  inline static Color DarkBlue() { return DARKBLUE; }
+
235  inline static Color Purple() { return PURPLE; }
+
236  inline static Color Violet() { return VIOLET; }
+
237  inline static Color DarkPurple() { return DARKPURPLE; }
+
238  inline static Color Beige() { return BEIGE; }
+
239  inline static Color Brown() { return BROWN; }
+
240  inline static Color DarkBrown() { return DARKBROWN; }
+
241  inline static Color White() { return WHITE; }
+
242  inline static Color Black() { return BLACK; }
+
243  inline static Color Blank() { return BLANK; }
+
244  inline static Color Magenta() { return MAGENTA; }
+
245  inline static Color RayWhite() { return RAYWHITE; }
+
246 
+
247  private:
+
248  inline void set(const ::Color& color) {
+
249  r = color.r;
+
250  g = color.g;
+
251  b = color.b;
+
252  a = color.a;
+
253  }
+
254 };
+
255 
+
256 } // namespace raylib
+
257 
+
258 #endif // RAYLIB_CPP_INCLUDE_COLOR_HPP_
+
+
All raylib-cpp classes and functions appear in the raylib namespace.
Definition: AudioDevice.hpp:7
+
Vector4 type.
Definition: Vector4.hpp:17
+
Color & ClearBackground()
Set background color (framebuffer clear color)
Definition: Color.hpp:108
+
Vector3 type.
Definition: Vector3.hpp:16
+
int ToInt() const
Returns hexadecimal value for a Color.
Definition: Color.hpp:63
+
Vector3 ToHSV() const
Returns HSV values for a Color.
Definition: Color.hpp:91
+
Color(::Vector3 hsv)
Returns a Color from HSV values.
Definition: Color.hpp:35
+
Vector2 type.
Definition: Vector2.hpp:16
+
Color & DrawPixel(::Vector2 pos)
Draw a pixel.
Definition: Color.hpp:121
+
Color(::Vector4 normalized)
Returns Color from normalized values [0..1].
Definition: Color.hpp:56
+
Color type, RGBA (32bit)
Definition: Color.hpp:14
+
Color()
Black.
Definition: Color.hpp:30
+
::Color FromHSV(float hue, float saturation, float value)
Returns a Color from HSV values.
Definition: Color.hpp:42
+
Color Alpha(float alpha) const
Returns color with alpha applied, alpha goes from 0.0f to 1.0f.
Definition: Color.hpp:209
+
Color AlphaBlend(::Color dst, ::Color tint) const
Returns src alpha-blended into dst color with tint.
Definition: Color.hpp:216
+
Vector4 Normalize() const
Returns Color normalized as float [0..1].
Definition: Color.hpp:84
+
Color & DrawLine(int startPosX, int startPosY, int endPosX, int endPosY)
Draw a line.
Definition: Color.hpp:129
+
Color Fade(float alpha) const
Returns color with alpha applied, alpha goes from 0.0f to 1.0f.
Definition: Color.hpp:77
+
Color(int hexValue)
Get Color structure from hexadecimal value.
Definition: Color.hpp:49
+ + + + diff --git a/raylib-cpp/docs/_dropped_files_8hpp_source.html b/raylib-cpp/docs/_dropped_files_8hpp_source.html new file mode 100644 index 00000000..24b86a59 --- /dev/null +++ b/raylib-cpp/docs/_dropped_files_8hpp_source.html @@ -0,0 +1,201 @@ + + + + + + + +raylib-cpp: DroppedFiles.hpp Source File + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
DroppedFiles.hpp
+
+
+
1 /*
+
2 * LICENSE: zlib/libpng
+
3 *
+
4 * raylib-cpp is licensed under an unmodified zlib/libpng license, which is an OSI-certified,
+
5 * BSD-like license that allows static linking with closed source software:
+
6 *
+
7 * Copyright (c) 2020 Rob Loach (@RobLoach)
+
8 *
+
9 * This software is provided "as-is", without any express or implied warranty. In no event
+
10 * will the authors be held liable for any damages arising from the use of this software.
+
11 *
+
12 * Permission is granted to anyone to use this software for any purpose, including commercial
+
13 * applications, and to alter it and redistribute it freely, subject to the following restrictions:
+
14 *
+
15 * 1. The origin of this software must not be misrepresented; you must not claim that you
+
16 * wrote the original software. If you use this software in a product, an acknowledgment
+
17 * in the product documentation would be appreciated but is not required.
+
18 *
+
19 * 2. Altered source versions must be plainly marked as such, and must not be misrepresented
+
20 * as being the original software.
+
21 *
+
22 * 3. This notice may not be removed or altered from any source distribution.
+
23 */
+
24 
+
25 #ifndef RAYLIB_CPP_INCLUDE_DROPPEDFILES_HPP_
+
26 #define RAYLIB_CPP_INCLUDE_DROPPEDFILES_HPP_
+
27 
+
28 #include <string>
+
29 
+
30 #include "./raylib.hpp"
+
31 
+
32 namespace raylib {
+
36 class DroppedFiles {
+
37  public:
+ +
39  Get();
+
40  }
+
41 
+ + +
47  return *this;
+
48  }
+
49 
+
53  inline bool IsFileDropped() const {
+
54  return ::IsFileDropped();
+
55  }
+
56 
+
60  inline DroppedFiles& Clear() {
+
61  ::ClearDroppedFiles();
+
62  m_count = 0;
+
63  m_files = NULL;
+
64  return *this;
+
65  }
+
66 
+ +
68  Clear();
+
69  }
+
70 
+
71  inline std::string operator[](int pos) {
+
72  return at(pos);
+
73  }
+
74 
+
75  inline int Count() const {
+
76  return m_count;
+
77  }
+
78 
+
79  inline int size() const {
+
80  return m_count;
+
81  }
+
82 
+
83  inline bool empty() const {
+
84  return m_count == 0;
+
85  }
+
86 
+
87  inline void clear() {
+
88  Clear();
+
89  }
+
90 
+
91  inline std::string front() const {
+
92  return at(0);
+
93  }
+
94 
+
95  inline std::string back() const {
+
96  return at(m_count - 1);
+
97  }
+
98 
+
99  std::string at(int pos) const {
+
100  if (m_files != NULL && pos < m_count && pos >= 0) {
+
101  return std::string(m_files[pos]);
+
102  }
+
103  // TODO(RobLoach): Throw exception when out of range.
+
104  return "";
+
105  }
+
106 
+
107  protected:
+
108  char** m_files;
+
109  int m_count;
+
110 };
+
111 } // namespace raylib
+
112 
+
113 #endif // RAYLIB_CPP_INCLUDE_DROPPEDFILES_HPP_
+
+
Provides all the classes associated with raylib-cpp.
Definition: AudioDevice.hpp:31
+ + +
std::vector< std::string > GetDroppedFiles()
Get dropped files names.
Definition: Functions.hpp:164
+
std::string operator[](int pos)
+
std::string front() const
+
DroppedFiles & Clear()
Clear dropped files paths buffer.
+
std::string at(int pos) const
+ + + + +
DroppedFiles & Get()
Get the dropped files names.
+
std::string back() const
+ + +
bool IsFileDropped() const
Check if a file has been dropped into window.
+ + + + + diff --git a/raylib-cpp/docs/_font_8hpp_source.html b/raylib-cpp/docs/_font_8hpp_source.html new file mode 100644 index 00000000..17c8df61 --- /dev/null +++ b/raylib-cpp/docs/_font_8hpp_source.html @@ -0,0 +1,205 @@ + + + + + + + +raylib-cpp: Font.hpp Source File + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Font.hpp
+
+
+
1 #ifndef RAYLIB_CPP_INCLUDE_FONT_HPP_
+
2 #define RAYLIB_CPP_INCLUDE_FONT_HPP_
+
3 
+
4 #include <string>
+
5 
+
6 #include "./raylib.hpp"
+
7 #include "./raylib-cpp-utils.hpp"
+
8 
+
9 namespace raylib {
+
13 class Font : public ::Font {
+
14  public:
+
15  Font() {
+
16  set(::GetFontDefault());
+
17  }
+
18 
+
19  Font(const ::Font& font) {
+
20  set(font);
+
21  }
+
22 
+
23  Font(const std::string& fileName) {
+
24  set(::LoadFont(fileName.c_str()));
+
25  }
+
26 
+
27  Font(const std::string& fileName, int fontSize, int* fontChars, int charCount) {
+
28  set(::LoadFontEx(fileName.c_str(), fontSize, fontChars, charCount));
+
29  }
+
30 
+
31  Font(const ::Image& image, ::Color key, int firstChar) {
+
32  set(::LoadFontFromImage(image, key, firstChar));
+
33  }
+
34 
+
35  Font(const std::string& fileType, const unsigned char* fileData, int dataSize, int fontSize,
+
36  int *fontChars, int charsCount) {
+
37  set(::LoadFontFromMemory(fileType.c_str(), fileData, dataSize, fontSize, fontChars,
+
38  charsCount));
+
39  }
+
40 
+
41  ~Font() {
+
42  Unload();
+
43  }
+
44 
+
45  void Unload() {
+
46  UnloadFont(*this);
+
47  }
+
48 
+
49  GETTERSETTER(int, BaseSize, baseSize)
+
50  GETTERSETTER(int, CharsCount, charsCount)
+
51  GETTERSETTER(int, CharsPadding, charsPadding)
+
52  GETTERSETTER(::Texture2D, Texture, texture)
+
53  GETTERSETTER(::Rectangle*, Recs, recs)
+
54  GETTERSETTER(::CharInfo*, Chars, chars)
+
55 
+
56  Font& operator=(const ::Font& font) {
+
57  set(font);
+
58  return *this;
+
59  }
+
60 
+
64  inline Font& DrawText(const std::string& text, ::Vector2 position, float fontSize,
+
65  float spacing, ::Color tint = WHITE) {
+
66  ::DrawTextEx(*this, text.c_str(), position, fontSize, spacing, tint);
+
67  return *this;
+
68  }
+
69 
+
70  inline Font& DrawText(const std::string& text, ::Rectangle rec, float fontSize, float spacing,
+
71  bool wordWrap = false, ::Color tint = WHITE) {
+
72  ::DrawTextRec(*this, text.c_str(), rec, fontSize, spacing, wordWrap, tint);
+
73  return *this;
+
74  }
+
75 
+
79  inline Font& DrawText(const std::string& text, ::Rectangle rec, float fontSize, float spacing,
+
80  bool wordWrap, ::Color tint, int selectStart, int selectLength, ::Color selectText,
+
81  ::Color selectBack) {
+
82  ::DrawTextRecEx(*this, text.c_str(), rec, fontSize, spacing, wordWrap, tint,
+
83  selectStart, selectLength, selectText, selectBack);
+
84  return *this;
+
85  }
+
86 
+
90  inline Font& DrawText(int codepoint,
+
91  ::Vector2 position,
+
92  float fontSize,
+
93  ::Color tint = { 255, 255, 255, 255 }) {
+
94  ::DrawTextCodepoint(*this, codepoint, position, fontSize, tint);
+
95  return *this;
+
96  }
+
97 
+
101  inline Vector2 MeasureText(const std::string& text, float fontSize, float spacing) const {
+
102  return ::MeasureTextEx(*this, text.c_str(), fontSize, spacing);
+
103  }
+
104 
+
108  inline int GetGlyphIndex(int character) const {
+
109  return ::GetGlyphIndex(*this, character);
+
110  }
+
111 
+
115  inline ::Image ImageText(const std::string& text, float fontSize,
+
116  float spacing, ::Color tint) const {
+
117  return ::ImageTextEx(*this, text.c_str(), fontSize, spacing, tint);
+
118  }
+
119 
+
120  private:
+
121  void set(const ::Font& font) {
+
122  baseSize = font.baseSize;
+
123  charsCount = font.charsCount;
+
124  charsPadding = font.charsPadding;
+
125  texture = font.texture;
+
126  recs = font.recs;
+
127  chars = font.chars;
+
128  }
+
129 };
+
130 } // namespace raylib
+
131 
+
132 #endif // RAYLIB_CPP_INCLUDE_FONT_HPP_
+
+
All raylib-cpp classes and functions appear in the raylib namespace.
Definition: AudioDevice.hpp:7
+
Font & DrawText(const std::string &text, ::Vector2 position, float fontSize, float spacing, ::Color tint=WHITE)
Draw text using font and additional parameters.
Definition: Font.hpp:64
+
Font & DrawText(int codepoint, ::Vector2 position, float fontSize, ::Color tint={ 255, 255, 255, 255 })
Draw one character (codepoint)
Definition: Font.hpp:90
+
Rectangle type.
Definition: Rectangle.hpp:12
+
Font type, includes texture and charSet array data.
Definition: Font.hpp:13
+
int GetGlyphIndex(int character) const
Get index position for a unicode character on font.
Definition: Font.hpp:108
+
Vector2 type.
Definition: Vector2.hpp:16
+
Color type, RGBA (32bit)
Definition: Color.hpp:14
+
inline ::Image ImageText(const std::string &text, float fontSize, float spacing, ::Color tint) const
Create an image from text (custom sprite font)
Definition: Font.hpp:115
+
Texture type.
Definition: Texture.hpp:15
+
Vector2 MeasureText(const std::string &text, float fontSize, float spacing) const
Measure string size for Font.
Definition: Font.hpp:101
+
Font & DrawText(const std::string &text, ::Rectangle rec, float fontSize, float spacing, bool wordWrap, ::Color tint, int selectStart, int selectLength, ::Color selectText, ::Color selectBack)
Draw text using font inside rectangle limits with support for text selection.
Definition: Font.hpp:79
+ + + + diff --git a/raylib-cpp/docs/_functions_8hpp_source.html b/raylib-cpp/docs/_functions_8hpp_source.html new file mode 100644 index 00000000..8559987e --- /dev/null +++ b/raylib-cpp/docs/_functions_8hpp_source.html @@ -0,0 +1,269 @@ + + + + + + + +raylib-cpp: Functions.hpp Source File + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Functions.hpp
+
+
+
1 
+
4 #ifndef RAYLIB_CPP_INCLUDE_FUNCTIONS_HPP_
+
5 #define RAYLIB_CPP_INCLUDE_FUNCTIONS_HPP_
+
6 
+
7 #include <string>
+
8 #include <vector>
+
9 
+
10 #include "./raylib.hpp"
+
11 
+
15 #ifndef RLCPPAPI
+
16 #define RLCPPAPI static
+
17 #endif
+
18 
+
19 namespace raylib {
+
20 
+
24 RLCPPAPI inline void InitWindow(int width, int height, const std::string& title = "raylib") {
+
25  ::InitWindow(width, height, title.c_str());
+
26 }
+
27 
+
31 RLCPPAPI inline void SetWindowTitle(const std::string& title) {
+
32  ::SetWindowTitle(title.c_str());
+
33 }
+
34 
+
38 RLCPPAPI inline std::string GetMonitorName(int monitor = 0) {
+
39  return ::GetMonitorName(monitor);
+
40 }
+
41 
+
45 RLCPPAPI inline void SetClipboardText(const std::string& text) {
+
46  ::SetClipboardText(text.c_str());
+
47 }
+
48 
+
52 RLCPPAPI inline std::string GetClipboardText() {
+
53  return ::GetClipboardText();
+
54 }
+
55 
+
59 RLCPPAPI inline void TakeScreenshot(const std::string& fileName) {
+
60  ::TakeScreenshot(fileName.c_str());
+
61 }
+
62 
+
66 RLCPPAPI std::string LoadFileText(const std::string& fileName) {
+
67  char* text = ::LoadFileText(fileName.c_str());
+
68  std::string output(text);
+
69  ::UnloadFileText((unsigned char*)text);
+
70  return output;
+
71 }
+
72 
+
76 RLCPPAPI inline bool SaveFileText(const std::string& fileName, const std::string& text) {
+
77  return ::SaveFileText(fileName.c_str(), const_cast<char*>(text.c_str()));
+
78 }
+
79 
+
83 RLCPPAPI inline bool FileExists(const std::string& fileName) {
+
84  return ::FileExists(fileName.c_str());
+
85 }
+
86 
+
90 RLCPPAPI inline bool DirectoryExists(const std::string& dirPath) {
+
91  return ::DirectoryExists(dirPath.c_str());
+
92 }
+
93 
+
97 RLCPPAPI inline bool IsFileExtension(const std::string& fileName, const std::string& ext) {
+
98  return ::IsFileExtension(fileName.c_str(), ext.c_str());
+
99 }
+
100 
+
104 RLCPPAPI inline std::string GetFileExtension(const std::string& fileName) {
+
105  return ::GetFileExtension(fileName.c_str());
+
106 }
+
107 
+
111 RLCPPAPI inline std::string GetFileName(const std::string& filePath) {
+
112  return ::GetFileName(filePath.c_str());
+
113 }
+
114 
+
118 RLCPPAPI inline std::string GetFileNameWithoutExt(const std::string& filePath) {
+
119  return ::GetFileNameWithoutExt(filePath.c_str());
+
120 }
+
121 
+
125 RLCPPAPI inline std::string GetDirectoryPath(const std::string& filePath) {
+
126  return ::GetDirectoryPath(filePath.c_str());
+
127 }
+
128 
+
132 RLCPPAPI inline std::string GetPrevDirectoryPath(const std::string& dirPath) {
+
133  return ::GetPrevDirectoryPath(dirPath.c_str());
+
134 }
+
135 
+
139 RLCPPAPI inline std::string GetWorkingDirectory() {
+
140  return ::GetWorkingDirectory();
+
141 }
+
142 
+
146 RLCPPAPI std::vector<std::string> GetDirectoryFiles(const std::string& dirPath) {
+
147  int count;
+
148  char** files = ::GetDirectoryFiles(dirPath.c_str(), &count);
+
149  std::vector<std::string> output(files, files + count);
+
150  ::ClearDirectoryFiles();
+
151  return output;
+
152 }
+
153 
+
157 RLCPPAPI inline bool ChangeDirectory(const std::string& dir) {
+
158  return ::ChangeDirectory(dir.c_str());
+
159 }
+
160 
+
164 RLCPPAPI std::vector<std::string> GetDroppedFiles() {
+
165  int count;
+
166  char** files = ::GetDroppedFiles(&count);
+
167  std::vector<std::string> output(files, files + count);
+
168  ::ClearDroppedFiles();
+
169  return output;
+
170 }
+
171 
+
175 RLCPPAPI inline long GetFileModTime(const std::string& fileName) { // NOLINT
+
176  return ::GetFileModTime(fileName.c_str());
+
177 }
+
178 
+
182 RLCPPAPI inline void OpenURL(const std::string& url) {
+
183  return ::OpenURL(url.c_str());
+
184 }
+
185 
+
189 RLCPPAPI inline bool IsGamepadName(int gamepad, const std::string& name) {
+
190  return ::IsGamepadName(gamepad, name.c_str());
+
191 }
+
192 
+
196 RLCPPAPI inline void UpdateCamera(const ::Camera& camera) {
+
197  ::Camera* cameraPointer = (::Camera*)&camera;
+
198  ::UpdateCamera(cameraPointer);
+
199 }
+
200 
+
204 RLCPPAPI inline ::Image LoadImage(const std::string& fileName) {
+
205  return ::LoadImage(fileName.c_str());
+
206 }
+
207 
+
211 RLCPPAPI inline ::Image LoadImageRaw(const std::string& fileName,
+
212  int width, int height,
+
213  int format, int headerSize) {
+
214  return ::LoadImageRaw(fileName.c_str(), width, height, format, headerSize);
+
215 }
+
216 
+
220 RLCPPAPI inline ::Image LoadImageAnim(const std::string& fileName, int *frames) {
+
221  return ::LoadImageAnim(fileName.c_str(), frames);
+
222 }
+
223 
+
227 RLCPPAPI inline ::Image LoadImageFromMemory(const std::string& fileType,
+
228  const unsigned char *fileData,
+
229  int dataSize) {
+
230  return ::LoadImageFromMemory(fileType.c_str(), fileData, dataSize);
+
231 }
+
232 
+
236 RLCPPAPI inline bool ExportImage(const Image& image, const std::string& fileName) {
+
237  return ::ExportImage(image, fileName.c_str());
+
238 }
+
239 
+
243 RLCPPAPI inline bool ExportImageAsCode(const Image& image, const std::string& fileName) {
+
244  return ::ExportImageAsCode(image, fileName.c_str());
+
245 }
+
246 
+
247 } // namespace raylib
+
248 
+
249 #endif // RAYLIB_CPP_INCLUDE_FUNCTIONS_HPP_
+
+
All raylib-cpp classes and functions appear in the raylib namespace.
Definition: AudioDevice.hpp:7
+
static inline ::Image LoadImage(const std::string &fileName)
Load an image.
Definition: Functions.hpp:204
+
static std::string GetFileName(const std::string &filePath)
Get pointer to filename for a path string.
Definition: Functions.hpp:111
+
static void UpdateCamera(const ::Camera &camera)
Update camera depending on selected mode.
Definition: Functions.hpp:196
+
static inline ::Image LoadImageRaw(const std::string &fileName, int width, int height, int format, int headerSize)
Load an image from RAW file data.
Definition: Functions.hpp:211
+
static std::string GetPrevDirectoryPath(const std::string &dirPath)
Get previous directory path for a given path.
Definition: Functions.hpp:132
+
static inline ::Image LoadImageFromMemory(const std::string &fileType, const unsigned char *fileData, int dataSize)
Load image from memory buffer, fileType refers to extension like "png".
Definition: Functions.hpp:227
+
static void SetWindowTitle(const std::string &title)
Set title for window.
Definition: Functions.hpp:31
+
static bool IsGamepadName(int gamepad, const std::string &name)
Check gamepad name (if available)
Definition: Functions.hpp:189
+
Image type, bpp always RGBA (32bit)
Definition: Image.hpp:15
+
static std::string GetMonitorName(int monitor=0)
Get the human-readable, UTF-8 encoded name of the primary monitor.
Definition: Functions.hpp:38
+
static inline ::Image LoadImageAnim(const std::string &fileName, int *frames)
Load animated image data.
Definition: Functions.hpp:220
+
static long GetFileModTime(const std::string &fileName)
Get file modification time (last write time)
Definition: Functions.hpp:175
+
static void TakeScreenshot(const std::string &fileName)
Takes a screenshot of current screen (saved a .png)
Definition: Functions.hpp:59
+
static std::vector< std::string > GetDroppedFiles()
Get dropped files names.
Definition: Functions.hpp:164
+
static void InitWindow(int width, int height, const std::string &title="raylib")
Initialize window and OpenGL context.
Definition: Functions.hpp:24
+
static bool ExportImageAsCode(const Image &image, const std::string &fileName)
Export image as code file (.h) defining an array of bytes.
Definition: Functions.hpp:243
+
Camera type, defines a camera position/orientation in 3d space.
Definition: Camera3D.hpp:12
+
static bool DirectoryExists(const std::string &dirPath)
Check if directory path exists.
Definition: Functions.hpp:90
+
static std::string GetFileNameWithoutExt(const std::string &filePath)
Get filename string without extension.
Definition: Functions.hpp:118
+
static std::string GetDirectoryPath(const std::string &filePath)
Get full path for a given fileName with path.
Definition: Functions.hpp:125
+
static bool IsFileExtension(const std::string &fileName, const std::string &ext)
Check file extension (including point: .png, .wav)
Definition: Functions.hpp:97
+
static bool FileExists(const std::string &fileName)
Check if file exists.
Definition: Functions.hpp:83
+
static std::vector< std::string > GetDirectoryFiles(const std::string &dirPath)
Get filenames in a directory path.
Definition: Functions.hpp:146
+
static bool ExportImage(const Image &image, const std::string &fileName)
Export image data to file.
Definition: Functions.hpp:236
+
static bool ChangeDirectory(const std::string &dir)
Change working directory, return true on success.
Definition: Functions.hpp:157
+
static void SetClipboardText(const std::string &text)
Set clipboard text content.
Definition: Functions.hpp:45
+
static std::string GetFileExtension(const std::string &fileName)
Get pointer to extension for a filename string (including point: ".png")
Definition: Functions.hpp:104
+
static bool SaveFileText(const std::string &fileName, const std::string &text)
Save text data to file (write)
Definition: Functions.hpp:76
+
static std::string LoadFileText(const std::string &fileName)
Load text data from file (read)
Definition: Functions.hpp:66
+
static void OpenURL(const std::string &url)
Open URL with default system browser (if available)
Definition: Functions.hpp:182
+
static std::string GetWorkingDirectory()
Get current working directory.
Definition: Functions.hpp:139
+
static std::string GetClipboardText()
Get clipboard text content.
Definition: Functions.hpp:52
+ + + + diff --git a/raylib-cpp/docs/_gamepad_8hpp_source.html b/raylib-cpp/docs/_gamepad_8hpp_source.html new file mode 100644 index 00000000..bbab148e --- /dev/null +++ b/raylib-cpp/docs/_gamepad_8hpp_source.html @@ -0,0 +1,181 @@ + + + + + + + +raylib-cpp: Gamepad.hpp Source File + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Gamepad.hpp
+
+
+
1 #ifndef RAYLIB_CPP_INCLUDE_GAMEPAD_HPP_
+
2 #define RAYLIB_CPP_INCLUDE_GAMEPAD_HPP_
+
3 
+
4 #include <string>
+
5 
+
6 #include "./raylib.hpp"
+
7 #include "./raylib-cpp-utils.hpp"
+
8 
+
9 namespace raylib {
+
13 class Gamepad {
+
14  public:
+
15  Gamepad(int gamepadNumber = 0) {
+
16  set(gamepadNumber);
+
17  }
+
18  int number;
+
19 
+
20  GETTERSETTER(int, Number, number)
+
21 
+
22  Gamepad& operator=(const Gamepad& gamepad) {
+
23  set(gamepad);
+
24  return *this;
+
25  }
+
26 
+
27  Gamepad& operator=(int gamepadNumber) {
+
28  set(gamepadNumber);
+
29  return *this;
+
30  }
+
31 
+
32  operator int() const { return number; }
+
33 
+
37  inline bool IsAvailable() const {
+
38  return ::IsGamepadAvailable(number);
+
39  }
+
40 
+
44  static inline bool IsAvailable(int number) {
+
45  return ::IsGamepadAvailable(number);
+
46  }
+
47 
+
51  inline bool IsName(const std::string& name) const {
+
52  return ::IsGamepadName(number, name.c_str());
+
53  }
+
54 
+
58  std::string GetName() const {
+
59  return ::GetGamepadName(number);
+
60  }
+
61 
+
65  operator std::string() const {
+
66  return GetName();
+
67  }
+
68 
+
72  inline bool IsButtonPressed(int button) const {
+
73  return ::IsGamepadButtonPressed(number, button);
+
74  }
+
75 
+
79  inline bool IsButtonDown(int button) const {
+
80  return ::IsGamepadButtonDown(number, button);
+
81  }
+
82 
+
86  inline bool IsButtonReleased(int button) const {
+
87  return ::IsGamepadButtonReleased(number, button);
+
88  }
+
89 
+
93  inline bool IsButtonUp(int button) const {
+
94  return ::IsGamepadButtonUp(number, button);
+
95  }
+
96 
+
100  inline int GetButtonPressed() const {
+
101  return ::GetGamepadButtonPressed();
+
102  }
+
103 
+
107  inline int GetAxisCount() const {
+
108  return ::GetGamepadAxisCount(number);
+
109  }
+
110 
+
114  inline float GetAxisMovement(int axis) const {
+
115  return ::GetGamepadAxisMovement(number, axis);
+
116  }
+
117 
+
118  private:
+
119  inline void set(int gamepadNumber) {
+
120  number = gamepadNumber;
+
121  }
+
122 };
+
123 } // namespace raylib
+
124 
+
125 #endif // RAYLIB_CPP_INCLUDE_GAMEPAD_HPP_
+
+
All raylib-cpp classes and functions appear in the raylib namespace.
Definition: AudioDevice.hpp:7
+
float GetAxisMovement(int axis) const
Return axis movement value for a gamepad axis.
Definition: Gamepad.hpp:114
+
bool IsButtonReleased(int button) const
Detect if a gamepad button has been released once.
Definition: Gamepad.hpp:86
+
bool IsButtonUp(int button) const
Detect if a gamepad button is NOT being pressed.
Definition: Gamepad.hpp:93
+
std::string GetName() const
Return gamepad internal name id.
Definition: Gamepad.hpp:58
+
Input-related functions: gamepads.
Definition: Gamepad.hpp:13
+
bool IsButtonPressed(int button) const
Detect if a gamepad button has been pressed once.
Definition: Gamepad.hpp:72
+
bool IsButtonDown(int button) const
Detect if a gamepad button is being pressed.
Definition: Gamepad.hpp:79
+
int GetButtonPressed() const
Get the last gamepad button pressed.
Definition: Gamepad.hpp:100
+
bool IsAvailable() const
Detect if a gamepad is available.
Definition: Gamepad.hpp:37
+
bool IsName(const std::string &name) const
Check gamepad name (if available)
Definition: Gamepad.hpp:51
+
int GetAxisCount() const
Return gamepad axis count for a gamepad.
Definition: Gamepad.hpp:107
+
static bool IsAvailable(int number)
Detect if a gamepad is available.
Definition: Gamepad.hpp:44
+ + + + diff --git a/raylib-cpp/docs/_image_8hpp_source.html b/raylib-cpp/docs/_image_8hpp_source.html new file mode 100644 index 00000000..9fc2d927 --- /dev/null +++ b/raylib-cpp/docs/_image_8hpp_source.html @@ -0,0 +1,557 @@ + + + + + + + +raylib-cpp: Image.hpp Source File + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Image.hpp
+
+
+
1 #ifndef RAYLIB_CPP_INCLUDE_IMAGE_HPP_
+
2 #define RAYLIB_CPP_INCLUDE_IMAGE_HPP_
+
3 
+
4 #include <string>
+
5 
+
6 #include "./raylib.hpp"
+
7 #include "./raylib-cpp-utils.hpp"
+
8 
+
9 namespace raylib {
+
15 class Image : public ::Image {
+
16  public:
+
17  Image(const ::Image& image) {
+
18  set(image);
+
19  }
+
20 
+
21  Image(const std::string& fileName) {
+
22  Load(fileName);
+
23  }
+
24 
+
25  Image(const std::string& fileName, int width, int height, int format, int headerSize) {
+
26  LoadRaw(fileName, width, height, format, headerSize);
+
27  }
+
28 
+
29  Image(const std::string& fileName, int* frames) {
+
30  LoadAnim(fileName, frames);
+
31  }
+
32 
+
33  Image(const std::string& fileType, const unsigned char* fileData, int dataSize) {
+
34  LoadFromMemory(fileType, fileData, dataSize);
+
35  }
+
36 
+
37  Image(const ::Texture2D& texture) {
+
38  set(::GetTextureData(texture));
+
39  }
+
40 
+
41  Image(int width, int height, ::Color color = {255, 255, 255, 255}) {
+
42  set(::GenImageColor(width, height, color));
+
43  }
+
44 
+
45  Image(const ::Font& font, const std::string& text, float fontSize, float spacing,
+
46  ::Color tint = {255, 255, 255, 255}) {
+
47  set(::ImageTextEx(font, text.c_str(), fontSize, spacing, tint));
+
48  }
+
49 
+
50  static ::Image Text(const std::string& text, int fontSize,
+
51  ::Color color = {255, 255, 255, 255}) {
+
52  return ::ImageText(text.c_str(), fontSize, color);
+
53  }
+
54 
+
55  static ::Image Text(const ::Font& font, const std::string& text, float fontSize, float spacing,
+
56  ::Color tint = {255, 255, 255, 255}) {
+
57  return ::ImageTextEx(font, text.c_str(), fontSize, spacing, tint);
+
58  }
+
59 
+
63  static ::Image GetScreenData() {
+
64  return ::GetScreenData();
+
65  }
+
66 
+
70  static ::Image Color(int width, int height, ::Color color = {255, 255, 255, 255}) {
+
71  return ::GenImageColor(width, height, color);
+
72  }
+
73 
+
77  static ::Image GradientV(int width, int height, ::Color top, ::Color bottom) {
+
78  return ::GenImageGradientV(width, height, top, bottom);
+
79  }
+
80 
+
84  static ::Image GradientH(int width, int height, ::Color left, ::Color right) {
+
85  return ::GenImageGradientH(width, height, left, right);
+
86  }
+
87 
+
91  static ::Image GradientRadial(int width, int height, float density,
+
92  ::Color inner, ::Color outer) {
+
93  return ::GenImageGradientRadial(width, height, density, inner, outer);
+
94  }
+
95 
+
99  static ::Image Checked(int width, int height, int checksX, int checksY,
+
100  ::Color col1 = {255, 255, 255, 255}, ::Color col2 = {0, 0, 0, 255}) {
+
101  return ::GenImageChecked(width, height, checksX, checksY, col1, col2);
+
102  }
+
103 
+
107  static ::Image WhiteNoise(int width, int height, float factor) {
+
108  return ::GenImageWhiteNoise(width, height, factor);
+
109  }
+
110 
+
114  static ::Image PerlinNoise(int width, int height, int offsetX, int offsetY,
+
115  float scale = 1.0f) {
+
116  return ::GenImagePerlinNoise(width, height, offsetX, offsetY, scale);
+
117  }
+
118 
+
122  static ::Image Cellular(int width, int height, int tileSize) {
+
123  return ::GenImageCellular(width, height, tileSize);
+
124  }
+
125 
+
126  ~Image() {
+
127  Unload();
+
128  }
+
129 
+
130  Image& operator=(const ::Image& image) {
+
131  set(image);
+
132  return *this;
+
133  }
+
134 
+
138  void Load(const std::string& fileName) {
+
139  set(::LoadImage(fileName.c_str()));
+
140  }
+
141 
+
145  void LoadRaw(const std::string& fileName, int width, int height, int format, int headerSize) {
+
146  set(::LoadImageRaw(fileName.c_str(), width, height, format, headerSize));
+
147  }
+
148 
+
152  void LoadAnim(const std::string& fileName, int* frames) {
+
153  set(::LoadImageAnim(fileName.c_str(), frames));
+
154  }
+
155 
+ +
160  const std::string& fileType,
+
161  const unsigned char *fileData,
+
162  int dataSize) {
+
163  set(::LoadImageFromMemory(fileType.c_str(), fileData, dataSize));
+
164  }
+
165 
+
169  inline void Unload() {
+
170  if (data != NULL) {
+
171  ::UnloadImage(*this);
+
172  data = NULL;
+
173  }
+
174  }
+
175 
+
179  inline bool Export(const std::string& fileName) {
+
180  // TODO(RobLoach): Switch to an invalid loading exception on false.
+
181  return ::ExportImage(*this, fileName.c_str());
+
182  }
+
183 
+
187  inline bool ExportAsCode(const std::string& fileName) {
+
188  return ::ExportImageAsCode(*this, fileName.c_str());
+
189  }
+
190 
+
191  GETTERSETTER(void*, Data, data)
+
192  GETTERSETTER(int, Width, width)
+
193  GETTERSETTER(int, Height, height)
+
194  GETTERSETTER(int, Mipmaps, mipmaps)
+
195  GETTERSETTER(int, Format, format)
+
196 
+
200  inline ::Vector2 GetSize() {
+
201  return {static_cast<float>(width), static_cast<float>(height)};
+
202  }
+
203 
+
207  inline ::Image Copy() {
+
208  return ::ImageCopy(*this);
+
209  }
+
210 
+
214  inline ::Image FromImage(::Rectangle rec) {
+
215  return ::ImageFromImage(*this, rec);
+
216  }
+
217 
+
221  inline Image& ToPOT(::Color fillColor) {
+
222  ::ImageToPOT(this, fillColor);
+
223  return *this;
+
224  }
+
225 
+
229  inline Image& Format(int newFormat) {
+
230  ::ImageFormat(this, newFormat);
+
231  return *this;
+
232  }
+
233 
+
237  inline Image& AlphaMask(const ::Image& alphaMask) {
+
238  ::ImageAlphaMask(this, alphaMask);
+
239  return *this;
+
240  }
+
241 
+
245  inline Image& AlphaCrop(float threshold) {
+
246  ::ImageAlphaCrop(this, threshold);
+
247  return *this;
+
248  }
+
249 
+ +
254  ::ImageAlphaPremultiply(this);
+
255  return *this;
+
256  }
+
257 
+
261  inline Image& Crop(::Rectangle crop) {
+
262  ::ImageCrop(this, crop);
+
263  return *this;
+
264  }
+
265 
+
269  inline Image& Crop(::Vector2 size) {
+
270  return Crop(0, 0, static_cast<int>(size.x), static_cast<int>(size.y));
+
271  }
+
272 
+
276  inline Image& Crop(int offsetX, int offsetY, int newWidth, int newHeight) {
+
277  ::Rectangle rect{
+
278  static_cast<float>(offsetX),
+
279  static_cast<float>(offsetY),
+
280  static_cast<float>(newWidth),
+
281  static_cast<float>(newHeight)
+
282  };
+
283  ::ImageCrop(this, rect);
+
284  return *this;
+
285  }
+
286 
+
290  inline Image& Resize(int newWidth, int newHeight) {
+
291  ::ImageResize(this, newWidth, newHeight);
+
292  return *this;
+
293  }
+
294 
+
298  inline Image& ResizeNN(int newWidth, int newHeight) {
+
299  ::ImageResizeNN(this, newWidth, newHeight);
+
300  return *this;
+
301  }
+
302 
+
306  inline Image& ResizeCanvas(int newWidth, int newHeight, int offsetX, int offsetY,
+
307  ::Color color = {255, 255, 255, 255}) {
+
308  ::ImageResizeCanvas(this, newWidth, newHeight, offsetX, offsetY, color);
+
309  return *this;
+
310  }
+
311 
+
315  inline Image& Mipmaps() {
+
316  ::ImageMipmaps(this);
+
317  return *this;
+
318  }
+
319 
+
323  inline Image& Dither(int rBpp, int gBpp, int bBpp, int aBpp) {
+
324  ::ImageDither(this, rBpp, gBpp, bBpp, aBpp);
+
325  return *this;
+
326  }
+
327 
+
331  inline Image& FlipVertical() {
+
332  ::ImageFlipVertical(this);
+
333  return *this;
+
334  }
+
335 
+
339  inline Image& FlipHorizontal() {
+
340  ::ImageFlipHorizontal(this);
+
341  return *this;
+
342  }
+
343 
+
347  inline Image& RotateCW() {
+
348  ::ImageRotateCW(this);
+
349  return *this;
+
350  }
+
351 
+
355  inline Image& RotateCCW() {
+
356  ::ImageRotateCCW(this);
+
357  return *this;
+
358  }
+
359 
+
363  inline Image& ColorTint(::Color color = {255, 255, 255, 255}) {
+
364  ::ImageColorTint(this, color);
+
365  return *this;
+
366  }
+
367 
+
371  inline Image& ColorInvert() {
+
372  ::ImageColorInvert(this);
+
373  return *this;
+
374  }
+
375 
+
379  inline Image& ColorGrayscale() {
+
380  ::ImageColorGrayscale(this);
+
381  return *this;
+
382  }
+
383 
+
389  inline Image& ColorContrast(float contrast) {
+
390  ::ImageColorContrast(this, contrast);
+
391  return *this;
+
392  }
+
393 
+
399  inline Image& ColorBrightness(int brightness) {
+
400  ::ImageColorBrightness(this, brightness);
+
401  return *this;
+
402  }
+
403 
+
407  inline Image& ColorReplace(::Color color, ::Color replace) {
+
408  ::ImageColorReplace(this, color, replace);
+
409  return *this;
+
410  }
+
411 
+
417  inline Rectangle GetAlphaBorder(float threshold) const {
+
418  return ::GetImageAlphaBorder(*this, threshold);
+
419  }
+
420 
+
424  inline Image& ClearBackground(::Color color = {0, 0, 0, 255}) {
+
425  ::ImageClearBackground(this, color);
+
426  return *this;
+
427  }
+
428 
+
432  inline Image& DrawPixel(int posX, int posY, ::Color color = {255, 255, 255, 255}) {
+
433  ::ImageDrawPixel(this, posX, posY, color);
+
434  return *this;
+
435  }
+
436 
+
437  inline Image& DrawPixel(::Vector2 position, ::Color color = {255, 255, 255, 255}) {
+
438  ::ImageDrawPixelV(this, position, color);
+
439  return *this;
+
440  }
+
441 
+
442  inline Image& DrawLine(int startPosX, int startPosY, int endPosX, int endPosY,
+
443  ::Color color = {255, 255, 255, 255}) {
+
444  ::ImageDrawLine(this, startPosX, startPosY, endPosX, endPosY, color);
+
445  return *this;
+
446  }
+
447 
+
448  inline Image& DrawLine(::Vector2 start, ::Vector2 end, ::Color color = {255, 255, 255, 255}) {
+
449  ::ImageDrawLineV(this, start, end, color);
+
450  return *this;
+
451  }
+
452 
+
453  inline Image& DrawCircle(int centerX, int centerY, int radius,
+
454  ::Color color = {255, 255, 255, 255}) {
+
455  ::ImageDrawCircle(this, centerX, centerY, radius, color);
+
456  return *this;
+
457  }
+
458 
+
459  inline Image& DrawCircle(::Vector2 center, int radius,
+
460  ::Color color = {255, 255, 255, 255}) {
+
461  ::ImageDrawCircleV(this, center, radius, color);
+
462  return *this;
+
463  }
+
464 
+
465  inline Image& DrawRectangle(int posX, int posY, int width, int height,
+
466  ::Color color = {255, 255, 255, 255}) {
+
467  ::ImageDrawRectangle(this, posX, posY, width, height, color);
+
468  return *this;
+
469  }
+
470 
+
471  inline Image& DrawRectangle(Vector2 position, Vector2 size,
+
472  ::Color color = {255, 255, 255, 255}) {
+
473  ::ImageDrawRectangleV(this, position, size, color);
+
474  return *this;
+
475  }
+
476 
+
477  inline Image& DrawRectangle(::Rectangle rec, ::Color color = {255, 255, 255, 255}) {
+
478  ::ImageDrawRectangleRec(this, rec, color);
+
479  return *this;
+
480  }
+
481 
+
482  inline Image& DrawRectangleLines(::Rectangle rec, int thick = 1,
+
483  ::Color color = {255, 255, 255, 255}) {
+
484  ::ImageDrawRectangleLines(this, rec, thick, color);
+
485  return *this;
+
486  }
+
487 
+
488  inline Image& Draw(const ::Image& src, ::Rectangle srcRec, ::Rectangle dstRec,
+
489  ::Color tint = {255, 255, 255, 255}) {
+
490  ::ImageDraw(this, src, srcRec, dstRec, tint);
+
491  return *this;
+
492  }
+
493 
+
494  inline Image& DrawText(const std::string& text, ::Vector2 position, int fontSize,
+
495  ::Color color = {255, 255, 255, 255}) {
+
496  ::ImageDrawText(this,
+
497  text.c_str(),
+
498  static_cast<int>(position.x),
+
499  static_cast<int>(position.y),
+
500  fontSize,
+
501  color);
+
502  return *this;
+
503  }
+
504 
+
505  inline Image& DrawText(const std::string& text, int x, int y, int fontSize,
+
506  ::Color color = {255, 255, 255, 255}) {
+
507  ::ImageDrawText(this, text.c_str(), x, y, fontSize, color);
+
508  return *this;
+
509  }
+
510 
+
511  inline Image& DrawText(const ::Font& font, const std::string& text, ::Vector2 position,
+
512  float fontSize, float spacing, ::Color tint = {255, 255, 255, 255}) {
+
513  ::ImageDrawTextEx(this, font, text.c_str(), position, fontSize, spacing, tint);
+
514  return *this;
+
515  }
+
516 
+
520  inline ::Color* LoadColors() {
+
521  return ::LoadImageColors(*this);
+
522  }
+
523 
+
527  inline ::Color* LoadPalette(int maxPaletteSize, int *colorsCount) {
+
528  return ::LoadImagePalette(*this, maxPaletteSize, colorsCount);
+
529  }
+
530 
+
534  inline void UnloadColors(::Color* colors) {
+
535  ::UnloadImageColors(colors);
+
536  }
+
537 
+
541  inline void UnloadPalette(::Color* colors) {
+
542  ::UnloadImagePalette(colors);
+
543  }
+
544 
+
548  inline ::Texture2D LoadTexture() {
+
549  return ::LoadTextureFromImage(*this);
+
550  }
+
551 
+
555  inline operator ::Texture2D() {
+
556  return LoadTexture();
+
557  }
+
558 
+
562  static int GetPixelDataSize(int width, int height, int format = PIXELFORMAT_UNCOMPRESSED_R32G32B32A32) {
+
563  return ::GetPixelDataSize(width, height, format);
+
564  }
+
565 
+ +
572  return ::GetPixelDataSize(width, height, format);
+
573  }
+
574 
+
575  private:
+
576  inline void set(const ::Image& image) {
+
577  data = image.data;
+
578  width = image.width;
+
579  height = image.height;
+
580  mipmaps = image.mipmaps;
+
581  format = image.format;
+
582  }
+
583 };
+
584 } // namespace raylib
+
585 
+
586 #endif // RAYLIB_CPP_INCLUDE_IMAGE_HPP_
+
+
Image & Dither(int rBpp, int gBpp, int bBpp, int aBpp)
Dither image data to 16bpp or lower (Floyd-Steinberg dithering)
Definition: Image.hpp:323
+
All raylib-cpp classes and functions appear in the raylib namespace.
Definition: AudioDevice.hpp:7
+
inline ::Color * LoadPalette(int maxPaletteSize, int *colorsCount)
Load colors palette from image as a Color array (RGBA - 32bit)
Definition: Image.hpp:527
+
Image & ColorBrightness(int brightness)
Modify image color: brightness.
Definition: Image.hpp:399
+
::Image WhiteNoise(int width, int height, float factor)
Generate image: white noise.
Definition: Image.hpp:107
+
static inline ::Image LoadImage(const std::string &fileName)
Load an image.
Definition: Functions.hpp:204
+
static inline ::Image LoadImageRaw(const std::string &fileName, int width, int height, int format, int headerSize)
Load an image from RAW file data.
Definition: Functions.hpp:211
+
::Image GradientRadial(int width, int height, float density, ::Color inner, ::Color outer)
Generate image: radial gradient.
Definition: Image.hpp:91
+
Image & ToPOT(::Color fillColor)
Convert image to POT (power-of-two)
Definition: Image.hpp:221
+
static inline ::Image LoadImageFromMemory(const std::string &fileType, const unsigned char *fileData, int dataSize)
Load image from memory buffer, fileType refers to extension like "png".
Definition: Functions.hpp:227
+
Image & Format(int newFormat)
Convert image data to desired format.
Definition: Image.hpp:229
+
inline ::Image Copy()
Create an image duplicate (useful for transformations)
Definition: Image.hpp:207
+
Image & Crop(::Vector2 size)
Crop an image to a new given width and height based on a vector.
Definition: Image.hpp:269
+
Image & ColorInvert()
Modify image color: invert.
Definition: Image.hpp:371
+
Image & ColorGrayscale()
Modify image color: grayscale.
Definition: Image.hpp:379
+
Image type, bpp always RGBA (32bit)
Definition: Image.hpp:15
+
Image & Crop(::Rectangle crop)
Crop an image to area defined by a rectangle.
Definition: Image.hpp:261
+
static inline ::Image LoadImageAnim(const std::string &fileName, int *frames)
Load animated image data.
Definition: Functions.hpp:220
+
void UnloadPalette(::Color *colors)
Unload colors palette loaded with LoadImagePalette()
Definition: Image.hpp:541
+
inline ::Vector2 GetSize()
Retrieve the width and height of the image.
Definition: Image.hpp:200
+
Image & RotateCCW()
Rotate image counter-clockwise 90deg.
Definition: Image.hpp:355
+
bool ExportAsCode(const std::string &fileName)
Export image as code file defining an array of bytes, returns true on success.
Definition: Image.hpp:187
+
Image & FlipVertical()
Flip image vertically.
Definition: Image.hpp:331
+
Image & ColorContrast(float contrast)
Modify image color: contrast.
Definition: Image.hpp:389
+
inline ::Color * LoadColors()
Load color data from image as a Color array (RGBA - 32bit)
Definition: Image.hpp:520
+
::Image GetScreenData()
Get pixel data from screen buffer and return an Image (screenshot)
Definition: Image.hpp:63
+
::Image PerlinNoise(int width, int height, int offsetX, int offsetY, float scale=1.0f)
Generate image: perlin noise.
Definition: Image.hpp:114
+
void LoadRaw(const std::string &fileName, int width, int height, int format, int headerSize)
Load image from RAW file data.
Definition: Image.hpp:145
+
Image & AlphaPremultiply()
Premultiply alpha channel.
Definition: Image.hpp:253
+
Image & Crop(int offsetX, int offsetY, int newWidth, int newHeight)
Crop an image to area defined by a rectangle.
Definition: Image.hpp:276
+
void LoadFromMemory(const std::string &fileType, const unsigned char *fileData, int dataSize)
Load image from memory buffer, fileType refers to extension: i.e.
Definition: Image.hpp:159
+
Image & ResizeCanvas(int newWidth, int newHeight, int offsetX, int offsetY, ::Color color={255, 255, 255, 255})
Resize canvas and fill with color.
Definition: Image.hpp:306
+
Image & DrawPixel(int posX, int posY, ::Color color={255, 255, 255, 255})
Draw pixel within an image.
Definition: Image.hpp:432
+
Image & Mipmaps()
Generate all mipmap levels for a provided image.
Definition: Image.hpp:315
+
bool Export(const std::string &fileName)
Export image data to file, returns true on success.
Definition: Image.hpp:179
+
Rectangle type.
Definition: Rectangle.hpp:12
+
Vector2 type.
Definition: Vector2.hpp:16
+
::Image GradientV(int width, int height, ::Color top, ::Color bottom)
Generate image: vertical gradient.
Definition: Image.hpp:77
+
void UnloadColors(::Color *colors)
Unload color data loaded with LoadImageColors()
Definition: Image.hpp:534
+
Image & ColorTint(::Color color={255, 255, 255, 255})
Modify image color: tint.
Definition: Image.hpp:363
+
Rectangle GetAlphaBorder(float threshold) const
Get image alpha border rectangle.
Definition: Image.hpp:417
+
Color type, RGBA (32bit)
Definition: Color.hpp:14
+
::Image GradientH(int width, int height, ::Color left, ::Color right)
Generate image: horizontal gradient.
Definition: Image.hpp:84
+
int GetPixelDataSize()
Returns the pixel data size of the image.
Definition: Image.hpp:571
+
void LoadAnim(const std::string &fileName, int *frames)
Load image sequence from file (frames appended to image.data).
Definition: Image.hpp:152
+
void Load(const std::string &fileName)
Load image from file into CPU memory (RAM)
Definition: Image.hpp:138
+
::Image Color(int width, int height, ::Color color={255, 255, 255, 255})
Generate image: plain color.
Definition: Image.hpp:70
+
Image & AlphaCrop(float threshold)
Crop image depending on alpha value.
Definition: Image.hpp:245
+
Image & Resize(int newWidth, int newHeight)
Resize and image to new size.
Definition: Image.hpp:290
+
::Image Checked(int width, int height, int checksX, int checksY, ::Color col1={255, 255, 255, 255}, ::Color col2={0, 0, 0, 255})
Generate image: checked.
Definition: Image.hpp:99
+
static int GetPixelDataSize(int width, int height, int format=PIXELFORMAT_UNCOMPRESSED_R32G32B32A32)
Get pixel data size in bytes for certain format.
Definition: Image.hpp:562
+
void Unload()
Unload image from CPU memory (RAM)
Definition: Image.hpp:169
+
Image & FlipHorizontal()
Flip image horizontally.
Definition: Image.hpp:339
+
inline ::Image FromImage(::Rectangle rec)
Create an image from another image piece.
Definition: Image.hpp:214
+
inline ::Texture2D LoadTexture()
Load texture from image data.
Definition: Image.hpp:548
+
Image & ResizeNN(int newWidth, int newHeight)
Resize and image to new size using Nearest-Neighbor scaling algorithm.
Definition: Image.hpp:298
+
::Image Cellular(int width, int height, int tileSize)
Generate image: cellular algorithm.
Definition: Image.hpp:122
+
Image & ClearBackground(::Color color={0, 0, 0, 255})
Clear image background with given color.
Definition: Image.hpp:424
+
Image & RotateCW()
Rotate image clockwise 90deg.
Definition: Image.hpp:347
+
Image & AlphaMask(const ::Image &alphaMask)
Apply alpha mask to image.
Definition: Image.hpp:237
+
Image & ColorReplace(::Color color, ::Color replace)
Modify image color: replace color.
Definition: Image.hpp:407
+ + + + diff --git a/raylib-cpp/docs/_material_8hpp_source.html b/raylib-cpp/docs/_material_8hpp_source.html new file mode 100644 index 00000000..25cffa4b --- /dev/null +++ b/raylib-cpp/docs/_material_8hpp_source.html @@ -0,0 +1,154 @@ + + + + + + + +raylib-cpp: Material.hpp Source File + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Material.hpp
+
+
+
1 #ifndef RAYLIB_CPP_INCLUDE_MATERIAL_HPP_
+
2 #define RAYLIB_CPP_INCLUDE_MATERIAL_HPP_
+
3 
+
4 #include <string>
+
5 #include <vector>
+
6 
+
7 #include "./raylib.hpp"
+
8 #include "./raylib-cpp-utils.hpp"
+
9 
+
10 namespace raylib {
+
14 class Material : public ::Material {
+
15  public:
+
16  Material(const ::Material& material) {
+
17  set(material);
+
18  }
+
19 
+ +
24  set(LoadMaterialDefault());
+
25  }
+
26 
+
27  ~Material() {
+
28  Unload();
+
29  }
+
30 
+
34  static std::vector<Material> Load(const std::string& fileName) {
+
35  int count = 0;
+
36  ::Material* materials = ::LoadMaterials(fileName.c_str(), &count);
+
37  return std::vector<Material>(materials, materials + count);
+
38  }
+
39 
+
40  GETTERSETTER(::Shader, Shader, shader)
+
41  GETTERSETTER(::MaterialMap*, Maps, maps)
+
42  // TODO(RobLoach): Resolve the Material params being a float[4].
+
43  // GETTERSETTER(float[4], Params, params)
+
44 
+
45  Material& operator=(const ::Material& material) {
+
46  set(material);
+
47  return *this;
+
48  }
+
49 
+
53  inline void Unload() {
+
54  if (maps != NULL) {
+
55  ::UnloadMaterial(*this);
+
56  maps = NULL;
+
57  }
+
58  }
+
59 
+
63  inline Material& SetTexture(int mapType, const ::Texture2D& texture) {
+
64  ::SetMaterialTexture(this, mapType, texture);
+
65  return *this;
+
66  }
+
67 
+
68  private:
+
69  inline void set(const ::Material& material) {
+
70  shader = material.shader;
+
71  maps = material.maps;
+
72  params[0] = material.params[0];
+
73  params[1] = material.params[1];
+
74  params[2] = material.params[2];
+
75  params[3] = material.params[3];
+
76  }
+
77 };
+
78 } // namespace raylib
+
79 
+
80 #endif // RAYLIB_CPP_INCLUDE_MATERIAL_HPP_
+
+
All raylib-cpp classes and functions appear in the raylib namespace.
Definition: AudioDevice.hpp:7
+
static std::vector< Material > Load(const std::string &fileName)
Load materials from model file.
Definition: Material.hpp:34
+
Material & SetTexture(int mapType, const ::Texture2D &texture)
Set texture for a material map type (MAP_DIFFUSE, MAP_SPECULAR...)
Definition: Material.hpp:63
+
Material()
Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps)
Definition: Material.hpp:23
+
Shader type (generic)
Definition: Shader.hpp:14
+
void Unload()
Unload material from memory.
Definition: Material.hpp:53
+
Material type (generic)
Definition: Material.hpp:14
+ + + + diff --git a/raylib-cpp/docs/_matrix_8hpp_source.html b/raylib-cpp/docs/_matrix_8hpp_source.html new file mode 100644 index 00000000..33dd75bf --- /dev/null +++ b/raylib-cpp/docs/_matrix_8hpp_source.html @@ -0,0 +1,304 @@ + + + + + + + +raylib-cpp: Matrix.hpp Source File + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Matrix.hpp
+
+
+
1 #ifndef RAYLIB_CPP_INCLUDE_MATRIX_HPP_
+
2 #define RAYLIB_CPP_INCLUDE_MATRIX_HPP_
+
3 
+
4 #include "./raylib.hpp"
+
5 #include "./raylib-cpp-utils.hpp"
+
6 #include "./raymath.hpp"
+
7 
+
8 #ifndef RAYLIB_CPP_NO_MATH
+
9 #include <cmath>
+
10 #endif
+
11 
+
12 namespace raylib {
+
16 class Matrix : public ::Matrix {
+
17  public:
+
18  Matrix(const ::Matrix& mat) {
+
19  set(mat);
+
20  }
+
21 
+
22  Matrix(float M0 = 0, float M1 = 0, float M2 = 0, float M3 = 0, float M4 = 0, float M5 = 0,
+
23  float M6 = 0, float M7 = 0, float M8 = 0, float M9 = 0, float M10 = 0, float M11 = 0,
+
24  float M12 = 0, float M13 = 0, float M14 = 0, float M15 = 0) {
+
25  m0 = M0;
+
26  m1 = M1;
+
27  m2 = M2;
+
28  m3 = M3;
+
29  m4 = M4;
+
30  m5 = M5;
+
31  m6 = M6;
+
32  m7 = M7;
+
33  m8 = M8;
+
34  m9 = M9;
+
35  m10 = M10;
+
36  m11 = M11;
+
37  m12 = M12;
+
38  m13 = M13;
+
39  m14 = M14;
+
40  m15 = M15;
+
41  }
+
42 
+
43  GETTERSETTER(float, M0, m0)
+
44  GETTERSETTER(float, M1, m1)
+
45  GETTERSETTER(float, M2, m2)
+
46  GETTERSETTER(float, M3, m3)
+
47  GETTERSETTER(float, M4, m4)
+
48  GETTERSETTER(float, M5, m5)
+
49  GETTERSETTER(float, M6, m6)
+
50  GETTERSETTER(float, M7, m7)
+
51  GETTERSETTER(float, M8, m8)
+
52  GETTERSETTER(float, M9, m9)
+
53  GETTERSETTER(float, M10, m10)
+
54  GETTERSETTER(float, M11, m11)
+
55  GETTERSETTER(float, M12, m12)
+
56  GETTERSETTER(float, M13, m13)
+
57  GETTERSETTER(float, M14, m14)
+
58  GETTERSETTER(float, M15, m15)
+
59 
+
60  Matrix& operator=(const ::Matrix& matrix) {
+
61  set(matrix);
+
62  return *this;
+
63  }
+
64 
+
65  Matrix& operator=(const Matrix& matrix) {
+
66  set(matrix);
+
67  return *this;
+
68  }
+
69 
+
70  bool operator==(const ::Matrix& other) {
+
71  return m0 == other.m0
+
72  && m1 == other.m1
+
73  && m2 == other.m2
+
74  && m3 == other.m3
+
75  && m4 == other.m4
+
76  && m5 == other.m5
+
77  && m6 == other.m6
+
78  && m7 == other.m7
+
79  && m8 == other.m8
+
80  && m9 == other.m9
+
81  && m10 == other.m10
+
82  && m11 == other.m11
+
83  && m12 == other.m12
+
84  && m13 == other.m13
+
85  && m14 == other.m14
+
86  && m15 == other.m15;
+
87  }
+
88 
+
89 #ifndef RAYLIB_CPP_NO_MATH
+
90 
+
93  inline float Trace() const {
+
94  return ::MatrixTrace(*this);
+
95  }
+
96 
+
100  inline Matrix Transpose() const {
+
101  return ::MatrixTranspose(*this);
+
102  }
+
103 
+
104  inline Matrix Invert() const {
+
105  return ::MatrixInvert(*this);
+
106  }
+
107 
+
108  inline Matrix Normalize() const {
+
109  return ::MatrixNormalize(*this);
+
110  }
+
111 
+
112  static Matrix Identity() {
+
113  return ::MatrixIdentity();
+
114  }
+
115 
+
116  Matrix Add(const ::Matrix& right) {
+
117  return ::MatrixAdd(*this, right);
+
118  }
+
119 
+
120  Matrix operator+(const ::Matrix& matrix) {
+
121  return ::MatrixAdd(*this, matrix);
+
122  }
+
123 
+
124  Matrix Subtract(const ::Matrix& right) {
+
125  return ::MatrixSubtract(*this, right);
+
126  }
+
127 
+
128  Matrix operator-(const ::Matrix& matrix) {
+
129  return ::MatrixSubtract(*this, matrix);
+
130  }
+
131 
+
132  static Matrix Translate(float x, float y, float z) {
+
133  return ::MatrixTranslate(x, y, z);
+
134  }
+
135 
+
136  static Matrix Rotate(Vector3 axis, float angle) {
+
137  return ::MatrixRotate(axis, angle);
+
138  }
+
139 
+
140  static Matrix RotateXYZ(Vector3 angle) {
+
141  return ::MatrixRotateXYZ(angle);
+
142  }
+
143 
+
144  static Matrix RotateX(float angle) {
+
145  return ::MatrixRotateX(angle);
+
146  }
+
147 
+
148  static Matrix RotateY(float angle) {
+
149  return ::MatrixRotateY(angle);
+
150  }
+
151 
+
152  static Matrix RotateZ(float angle) {
+
153  return ::MatrixRotateZ(angle);
+
154  }
+
155 
+
156  static Matrix Scale(float x, float y, float z) {
+
157  return ::MatrixScale(x, y, z);
+
158  }
+
159 
+
160  Matrix Multiply(const ::Matrix& right) const {
+
161  return ::MatrixMultiply(*this, right);
+
162  }
+
163 
+
164  Matrix operator*(const ::Matrix& matrix) {
+
165  return ::MatrixMultiply(*this, matrix);
+
166  }
+
167 
+
168  static Matrix Frustum(double left, double right, double bottom, double top,
+
169  double near, double far) {
+
170  return ::MatrixFrustum(left, right, bottom, top, near, far);
+
171  }
+
172 
+
173  static Matrix Perspective(double fovy, double aspect, double near, double far) {
+
174  return ::MatrixPerspective(fovy, aspect, near, far);
+
175  }
+
176 
+
177  static Matrix Ortho(double left, double right, double bottom, double top,
+
178  double near, double far) {
+
179  return ::MatrixOrtho(left, right, bottom, top, near, far);
+
180  }
+
181 
+
182  static Matrix LookAt(Vector3 eye, Vector3 target, Vector3 up) {
+
183  return ::MatrixLookAt(eye, target, up);
+
184  }
+
185 
+
186  inline float16 ToFloatV() const {
+
187  return ::MatrixToFloatV(*this);
+
188  }
+
189 
+
190  operator float16() {
+
191  return ToFloatV();
+
192  }
+
193 
+
197  inline Matrix& SetShaderValue(::Shader shader, int uniformLoc) {
+
198  ::SetShaderValueMatrix(shader, uniformLoc, *this);
+
199  return *this;
+
200  }
+
201 
+
202 #endif
+
203 
+
204  private:
+
205  inline void set(const ::Matrix& mat) {
+
206  m0 = mat.m0;
+
207  m1 = mat.m1;
+
208  m2 = mat.m2;
+
209  m3 = mat.m3;
+
210  m4 = mat.m4;
+
211  m5 = mat.m5;
+
212  m6 = mat.m6;
+
213  m7 = mat.m7;
+
214  m8 = mat.m8;
+
215  m9 = mat.m9;
+
216  m10 = mat.m10;
+
217  m11 = mat.m11;
+
218  m12 = mat.m12;
+
219  m13 = mat.m13;
+
220  m14 = mat.m14;
+
221  m15 = mat.m15;
+
222  }
+
223 };
+
224 } // namespace raylib
+
225 
+
226 
+
227 #endif // RAYLIB_CPP_INCLUDE_MATRIX_HPP_
+
+
All raylib-cpp classes and functions appear in the raylib namespace.
Definition: AudioDevice.hpp:7
+
Matrix Transpose() const
Transposes provided matrix.
Definition: Matrix.hpp:100
+
Matrix type (OpenGL style 4x4 - right handed, column major)
Definition: Matrix.hpp:16
+
Matrix & SetShaderValue(::Shader shader, int uniformLoc)
Set shader uniform value (matrix 4x4)
Definition: Matrix.hpp:197
+
Shader type (generic)
Definition: Shader.hpp:14
+
float Trace() const
Returns the trace of the matrix (sum of the values along the diagonal)
Definition: Matrix.hpp:93
+ + + + diff --git a/raylib-cpp/docs/_mesh_8hpp_source.html b/raylib-cpp/docs/_mesh_8hpp_source.html new file mode 100644 index 00000000..7e546068 --- /dev/null +++ b/raylib-cpp/docs/_mesh_8hpp_source.html @@ -0,0 +1,275 @@ + + + + + + + +raylib-cpp: Mesh.hpp Source File + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Mesh.hpp
+
+
+
1 #ifndef RAYLIB_CPP_INCLUDE_MESH_HPP_
+
2 #define RAYLIB_CPP_INCLUDE_MESH_HPP_
+
3 
+
4 #include <string>
+
5 #include <vector>
+
6 
+
7 #include "./raylib.hpp"
+
8 #include "./raylib-cpp-utils.hpp"
+
9 #include "./BoundingBox.hpp"
+
10 #include "./Model.hpp"
+
11 
+
12 namespace raylib {
+
16 class Mesh : public ::Mesh {
+
17  public:
+
18  Mesh(const ::Mesh& mesh) {
+
19  set(mesh);
+
20  }
+
21 
+
22  Mesh(int VertexCount, int TriangleCount) {
+
23  vertexCount = VertexCount;
+
24  triangleCount = TriangleCount;
+
25  }
+
26 
+
30  // static std::vector<Mesh> Load(const std::string& fileName) {
+
31  // int count = 0;
+
32  // ::Mesh* meshes = LoadMeshes(fileName.c_str(), &count);
+
33  // return std::vector<Mesh>(meshes, meshes + count);
+
34  // }
+
35 
+
39  static ::Mesh Poly(int sides, float radius) {
+
40  return ::GenMeshPoly(sides, radius);
+
41  }
+
42 
+
46  static ::Mesh Plane(float width, float length, int resX, int resZ) {
+
47  return ::GenMeshPlane(width, length, resX, resZ);
+
48  }
+
49 
+
53  static ::Mesh Cube(float width, float height, float length) {
+
54  return ::GenMeshCube(width, height, length);
+
55  }
+
56 
+
60  static ::Mesh Sphere(float radius, int rings, int slices) {
+
61  return ::GenMeshSphere(radius, rings, slices);
+
62  }
+
63 
+
67  static ::Mesh HemiSphere(float radius, int rings, int slices) {
+
68  return ::GenMeshHemiSphere(radius, rings, slices);
+
69  }
+
70 
+
74  static ::Mesh Cylinder(float radius, float height, int slices) {
+
75  return ::GenMeshCylinder(radius, height, slices);
+
76  }
+
77 
+
81  static ::Mesh Torus(float radius, float size, int radSeg, int sides) {
+
82  return ::GenMeshTorus(radius, size, radSeg, sides);
+
83  }
+
84 
+
88  static ::Mesh Knot(float radius, float size, int radSeg, int sides) {
+
89  return ::GenMeshKnot(radius, size, radSeg, sides);
+
90  }
+
91 
+
95  static ::Mesh Heightmap(const ::Image& heightmap, ::Vector3 size) {
+
96  return ::GenMeshHeightmap(heightmap, size);
+
97  }
+
98 
+
102  static ::Mesh Cubicmap(const ::Image& cubicmap, ::Vector3 cubeSize) {
+
103  return ::GenMeshCubicmap(cubicmap, cubeSize);
+
104  }
+
105 
+
106  GETTERSETTER(int, VertexCount, vertexCount)
+
107  GETTERSETTER(int, TriangleCount, triangleCount)
+
108  GETTERSETTER(float*, Vertices, vertices)
+
109  GETTERSETTER(float *, TexCoords, texcoords)
+
110  GETTERSETTER(float *, TexCoords2, texcoords2)
+
111  GETTERSETTER(float *, Normals, normals)
+
112  GETTERSETTER(float *, Tangents, tangents)
+
113  GETTERSETTER(unsigned char *, Colors, colors)
+
114  GETTERSETTER(unsigned short *, Indices, indices) // NOLINT
+
115  GETTERSETTER(float *, AnimVertices, animVertices)
+
116  GETTERSETTER(float *, AnimNormals, animNormals)
+
117  GETTERSETTER(int *, BoneIds, boneIds)
+
118  GETTERSETTER(float *, BoneWeights, boneWeights)
+
119  GETTERSETTER(unsigned int, VaoId, vaoId)
+
120  GETTERSETTER(unsigned int *, VboId, vboId)
+
121 
+
122  Mesh& operator=(const ::Mesh& mesh) {
+
123  set(mesh);
+
124  return *this;
+
125  }
+
126 
+
127  ~Mesh() {
+
128  Unload();
+
129  }
+
130 
+
134  inline void Upload(bool dynamic = false) {
+
135  ::UploadMesh(this, dynamic);
+
136  }
+
137 
+
141  inline void UpdateBuffer(int index, void *data, int dataSize, int offset = 0) {
+
142  ::UpdateMeshBuffer(*this, index, data, dataSize, offset);
+
143  }
+
144 
+
145  inline void Draw(const ::Material& material, const ::Matrix& transform) {
+
146  ::DrawMesh(*this, material, transform);
+
147  }
+
148 
+
149  inline void DrawInstanced(const ::Material& material, ::Matrix* transforms, int instances) {
+
150  ::DrawMeshInstanced(*this, material, transforms, instances);
+
151  }
+
152 
+
156  inline bool Export(const std::string& fileName) {
+
157  // TODO(RobLoach): Switch to an exception when failed.
+
158  return ExportMesh(*this, fileName.c_str());
+
159  }
+
160 
+
164  inline void Unload() {
+
165  if (vboId != NULL) {
+
166  ::UnloadMesh(*this);
+
167  vboId = NULL;
+
168  }
+
169  }
+
170 
+ +
175  return ::MeshBoundingBox(*this);
+
176  }
+
177 
+
181  operator raylib::BoundingBox() {
+
182  return BoundingBox();
+
183  }
+
184 
+
188  inline Mesh& Tangents() {
+
189  ::MeshTangents(this);
+
190  return *this;
+
191  }
+
192 
+
196  inline Mesh& Binormals() {
+
197  ::MeshBinormals(this);
+
198  return *this;
+
199  }
+
200 
+
204  inline raylib::Model LoadModelFrom() const {
+
205  return ::LoadModelFromMesh(*this);
+
206  }
+
207 
+
211  operator raylib::Model() {
+
212  return ::LoadModelFromMesh(*this);
+
213  }
+
214 
+
215  private:
+
216  inline void set(const ::Mesh& mesh) {
+
217  vertexCount = mesh.vertexCount;
+
218  triangleCount = mesh.triangleCount;
+
219  vertices = mesh.vertices;
+
220  texcoords = mesh.texcoords;
+
221  texcoords2 = mesh.texcoords2;
+
222  normals = mesh.normals;
+
223  tangents = mesh.tangents;
+
224  colors = mesh.colors;
+
225  indices = mesh.indices;
+
226  animVertices = mesh.animVertices;
+
227  animNormals = mesh.animNormals;
+
228  boneIds = mesh.boneIds;
+
229  boneWeights = mesh.boneWeights;
+
230  vaoId = mesh.vaoId;
+
231  vboId = mesh.vboId;
+
232  }
+
233 };
+
234 } // namespace raylib
+
235 
+
236 #endif // RAYLIB_CPP_INCLUDE_MESH_HPP_
+
+
::Mesh Cube(float width, float height, float length)
Generate cuboid mesh.
Definition: Mesh.hpp:53
+
All raylib-cpp classes and functions appear in the raylib namespace.
Definition: AudioDevice.hpp:7
+
bool Export(const std::string &fileName)
Export mesh data to file.
Definition: Mesh.hpp:156
+
raylib::BoundingBox BoundingBox() const
Compute mesh bounding box limits.
Definition: Mesh.hpp:174
+
Mesh & Tangents()
Compute mesh tangents.
Definition: Mesh.hpp:188
+
::Mesh Poly(int sides, float radius)
Load meshes from model file.
Definition: Mesh.hpp:39
+
::Mesh Torus(float radius, float size, int radSeg, int sides)
Generate torus mesh.
Definition: Mesh.hpp:81
+
Vector3 type.
Definition: Vector3.hpp:16
+
Mesh & Binormals()
Compute mesh binormals (aka bitangent)
Definition: Mesh.hpp:196
+
::Mesh HemiSphere(float radius, int rings, int slices)
Generate half-sphere mesh (no bottom cap)
Definition: Mesh.hpp:67
+
void Upload(bool dynamic=false)
Upload mesh vertex data to GPU (VRAM)
Definition: Mesh.hpp:134
+
void Unload()
Unload mesh from memory (RAM and/or VRAM)
Definition: Mesh.hpp:164
+
Vertex data definning a mesh.
Definition: Mesh.hpp:16
+
::Mesh Heightmap(const ::Image &heightmap, ::Vector3 size)
Generate heightmap mesh from image data.
Definition: Mesh.hpp:95
+
::Mesh Knot(float radius, float size, int radSeg, int sides)
Generate trefoil knot mesh.
Definition: Mesh.hpp:88
+
::Mesh Cubicmap(const ::Image &cubicmap, ::Vector3 cubeSize)
Generate cubes-based map mesh from image data.
Definition: Mesh.hpp:102
+
::Mesh Sphere(float radius, int rings, int slices)
Generate sphere mesh (standard sphere)
Definition: Mesh.hpp:60
+
Model type.
Definition: Model.hpp:14
+
::Mesh Cylinder(float radius, float height, int slices)
Generate cylinder mesh.
Definition: Mesh.hpp:74
+
Bounding box type.
Definition: BoundingBox.hpp:11
+
raylib::Model LoadModelFrom() const
Load model from generated mesh.
Definition: Mesh.hpp:204
+
void UpdateBuffer(int index, void *data, int dataSize, int offset=0)
Upload mesh vertex data to GPU (VRAM)
Definition: Mesh.hpp:141
+
::Mesh Plane(float width, float length, int resX, int resZ)
Generate plane mesh (with subdivisions)
Definition: Mesh.hpp:46
+ + + + diff --git a/raylib-cpp/docs/_model_8hpp_source.html b/raylib-cpp/docs/_model_8hpp_source.html new file mode 100644 index 00000000..d2a8c243 --- /dev/null +++ b/raylib-cpp/docs/_model_8hpp_source.html @@ -0,0 +1,226 @@ + + + + + + + +raylib-cpp: Model.hpp Source File + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Model.hpp
+
+
+
1 #ifndef RAYLIB_CPP_INCLUDE_MODEL_HPP_
+
2 #define RAYLIB_CPP_INCLUDE_MODEL_HPP_
+
3 
+
4 #include <string>
+
5 
+
6 #include "./raylib.hpp"
+
7 #include "./raylib-cpp-utils.hpp"
+
8 #include "./Mesh.hpp"
+
9 
+
10 namespace raylib {
+
14 class Model : public ::Model {
+
15  public:
+
16  Model(const ::Model& model) {
+
17  set(model);
+
18  }
+
19 
+
20  Model(const std::string& fileName) {
+
21  set(::LoadModel(fileName.c_str()));
+
22  }
+
23 
+
24  Model(const ::Mesh& mesh) {
+
25  set(::LoadModelFromMesh(mesh));
+
26  }
+
27 
+
28  ~Model() {
+
29  Unload();
+
30  }
+
31 
+
32  GETTERSETTER(::Matrix, Transform, transform)
+
33  GETTERSETTER(int, MeshCount, meshCount)
+
34  GETTERSETTER(int, MaterialCount, materialCount)
+
35  GETTERSETTER(::Mesh *, Meshes, meshes)
+
36  GETTERSETTER(::Material *, Materials, materials)
+
37  GETTERSETTER(int *, MeshMaterial, meshMaterial)
+
38  GETTERSETTER(int, BoneCount, boneCount)
+
39  GETTERSETTER(::BoneInfo *, Bones, bones)
+
40  GETTERSETTER(::Transform *, BindPoe, bindPose)
+
41 
+
42  Model& operator=(const ::Model& model) {
+
43  set(model);
+
44  return *this;
+
45  }
+
46 
+
50  inline void Unload() {
+
51  if (meshes != NULL || materials != NULL) {
+
52  ::UnloadModel(*this);
+
53  meshes = NULL;
+
54  materials = NULL;
+
55  }
+
56  }
+
57 
+
61  inline Model& UnloadKeepMeshes() {
+
62  ::UnloadModelKeepMeshes(*this);
+
63  return *this;
+
64  }
+
65 
+
69  inline Model& SetMeshMaterial(int meshId, int materialId) {
+
70  ::SetModelMeshMaterial(this, meshId, materialId);
+
71  return *this;
+
72  }
+
73 
+
77  inline RayHitInfo GetCollision(const ::Ray& ray) const {
+
78  return ::GetCollisionRayModel(ray, *this);
+
79  }
+
80 
+
84  inline Model& UpdateAnimation(const ::ModelAnimation& anim, int frame) {
+
85  ::UpdateModelAnimation(*this, anim, frame);
+
86  return *this;
+
87  }
+
88 
+
92  inline bool IsModelAnimationValid(const ::ModelAnimation& anim) const {
+
93  return ::IsModelAnimationValid(*this, anim);
+
94  }
+
95 
+
99  inline Model& Draw(::Vector3 position,
+
100  float scale = 1.0f,
+
101  ::Color tint = {255, 255, 255, 255}) {
+
102  ::DrawModel(*this, position, scale, tint);
+
103  return *this;
+
104  }
+
105 
+
109  inline Model& Draw(
+
110  ::Vector3 position,
+
111  ::Vector3 rotationAxis,
+
112  float rotationAngle = 0.0f,
+
113  ::Vector3 scale = {1.0f, 1.0f, 1.0f},
+
114  ::Color tint = {255, 255, 255, 255}) {
+
115  ::DrawModelEx(*this, position, rotationAxis, rotationAngle, scale, tint);
+
116  return *this;
+
117  }
+
118 
+
122  inline Model& DrawWires(::Vector3 position,
+
123  float scale = 1.0f,
+
124  ::Color tint = {255, 255, 255, 255}) {
+
125  ::DrawModelWires(*this, position, scale, tint);
+
126  return *this;
+
127  }
+
128 
+
132  inline Model& DrawWires(
+
133  ::Vector3 position,
+
134  ::Vector3 rotationAxis,
+
135  float rotationAngle = 0.0f,
+
136  ::Vector3 scale = {1.0f, 1.0f, 1.0f},
+
137  ::Color tint = {255, 255, 255, 255}) {
+
138  ::DrawModelWiresEx(*this, position, rotationAxis, rotationAngle, scale, tint);
+
139  return *this;
+
140  }
+
141 
+
142  private:
+
143  inline void set(const ::Model& model) {
+
144  transform = model.transform;
+
145 
+
146  meshCount = model.meshCount;
+
147  materialCount = model.materialCount;
+
148  meshes = model.meshes;
+
149  materials = model.materials;
+
150  meshMaterial = model.meshMaterial;
+
151 
+
152  boneCount = model.boneCount;
+
153  bones = model.bones;
+
154  bindPose = model.bindPose;
+
155  }
+
156 };
+
157 } // namespace raylib
+
158 
+
159 #endif // RAYLIB_CPP_INCLUDE_MODEL_HPP_
+
+
All raylib-cpp classes and functions appear in the raylib namespace.
Definition: AudioDevice.hpp:7
+
Matrix type (OpenGL style 4x4 - right handed, column major)
Definition: Matrix.hpp:16
+
Model & DrawWires(::Vector3 position, float scale=1.0f, ::Color tint={255, 255, 255, 255})
Draw a model wires (with texture if set)
Definition: Model.hpp:122
+
Model & DrawWires(::Vector3 position, ::Vector3 rotationAxis, float rotationAngle=0.0f, ::Vector3 scale={1.0f, 1.0f, 1.0f}, ::Color tint={255, 255, 255, 255})
Draw a model wires (with texture if set) with extended parameters.
Definition: Model.hpp:132
+
Model & SetMeshMaterial(int meshId, int materialId)
Set material for a mesh.
Definition: Model.hpp:69
+
Model & Draw(::Vector3 position, float scale=1.0f, ::Color tint={255, 255, 255, 255})
Draw a model (with texture if set)
Definition: Model.hpp:99
+
Model & Draw(::Vector3 position, ::Vector3 rotationAxis, float rotationAngle=0.0f, ::Vector3 scale={1.0f, 1.0f, 1.0f}, ::Color tint={255, 255, 255, 255})
Draw a model with extended parameters.
Definition: Model.hpp:109
+
bool IsModelAnimationValid(const ::ModelAnimation &anim) const
Check model animation skeleton match.
Definition: Model.hpp:92
+
Vector3 type.
Definition: Vector3.hpp:16
+
Model & UpdateAnimation(const ::ModelAnimation &anim, int frame)
Update model animation pose.
Definition: Model.hpp:84
+
Vertex data definning a mesh.
Definition: Mesh.hpp:16
+
Color type, RGBA (32bit)
Definition: Color.hpp:14
+
Model type.
Definition: Model.hpp:14
+
RayHitInfo GetCollision(const ::Ray &ray) const
Get collision info between ray and model.
Definition: Model.hpp:77
+
Raycast hit information.
Definition: RayHitInfo.hpp:11
+
Material type (generic)
Definition: Material.hpp:14
+
void Unload()
Unload model (including meshes) from memory (RAM and/or VRAM)
Definition: Model.hpp:50
+
Model & UnloadKeepMeshes()
Unload model (but not meshes) from memory (RAM and/or VRAM)
Definition: Model.hpp:61
+ + + + diff --git a/raylib-cpp/docs/_model_animation_8hpp_source.html b/raylib-cpp/docs/_model_animation_8hpp_source.html new file mode 100644 index 00000000..51b8f1a2 --- /dev/null +++ b/raylib-cpp/docs/_model_animation_8hpp_source.html @@ -0,0 +1,149 @@ + + + + + + + +raylib-cpp: ModelAnimation.hpp Source File + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ModelAnimation.hpp
+
+
+
1 #ifndef RAYLIB_CPP_INCLUDE_MODELANIMATION_HPP_
+
2 #define RAYLIB_CPP_INCLUDE_MODELANIMATION_HPP_
+
3 
+
4 #include <vector>
+
5 #include <string>
+
6 
+
7 #include "./raylib.hpp"
+
8 #include "./raylib-cpp-utils.hpp"
+
9 #include "./Mesh.hpp"
+
10 
+
11 namespace raylib {
+ +
16  public:
+
17  ModelAnimation(const ::ModelAnimation& model) {
+
18  set(model);
+
19  }
+
20 
+
21  ~ModelAnimation() {
+
22  Unload();
+
23  }
+
24 
+
28  static std::vector<ModelAnimation> Load(const std::string& fileName) {
+
29  int count = 0;
+
30  ::ModelAnimation* modelAnimations = ::LoadModelAnimations(fileName.c_str(), &count);
+
31  return std::vector<ModelAnimation>(modelAnimations, modelAnimations + count);
+
32  }
+
33 
+
34  GETTERSETTER(int, BoneCount, boneCount)
+
35  GETTERSETTER(::BoneInfo*, Bones, bones)
+
36  GETTERSETTER(int, FrameCount, frameCount)
+
37  GETTERSETTER(::Transform**, FramePoses, framePoses)
+
38 
+
39  ModelAnimation& operator=(const ::ModelAnimation& model) {
+
40  set(model);
+
41  return *this;
+
42  }
+
43 
+
47  inline void Unload() {
+
48  ::UnloadModelAnimation(*this);
+
49  }
+
50 
+
54  inline ModelAnimation& Update(const ::Model& model, int frame) {
+
55  ::UpdateModelAnimation(model, *this, frame);
+
56  return *this;
+
57  }
+
58 
+
62  inline bool IsValid(const ::Model& model) const {
+
63  return ::IsModelAnimationValid(model, *this);
+
64  }
+
65 
+
66  private:
+
67  inline void set(const ::ModelAnimation& model) {
+
68  boneCount = model.boneCount;
+
69  bones = model.bones;
+
70  frameCount = model.frameCount;
+
71  framePoses = model.framePoses;
+
72  }
+
73 };
+
74 } // namespace raylib
+
75 
+
76 #endif // RAYLIB_CPP_INCLUDE_MODELANIMATION_HPP_
+
+
All raylib-cpp classes and functions appear in the raylib namespace.
Definition: AudioDevice.hpp:7
+
ModelAnimation & Update(const ::Model &model, int frame)
Update model animation pose.
+
static std::vector< ModelAnimation > Load(const std::string &fileName)
Load model animations from file.
+
void Unload()
Unload animation data.
+
bool IsValid(const ::Model &model) const
Check model animation skeleton match.
+ + + + + diff --git a/raylib-cpp/docs/_mouse_8hpp_source.html b/raylib-cpp/docs/_mouse_8hpp_source.html new file mode 100644 index 00000000..6481e9b6 --- /dev/null +++ b/raylib-cpp/docs/_mouse_8hpp_source.html @@ -0,0 +1,167 @@ + + + + + + + +raylib-cpp: Mouse.hpp Source File + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Mouse.hpp
+
+
+
1 #ifndef RAYLIB_CPP_INCLUDE_MOUSE_HPP_
+
2 #define RAYLIB_CPP_INCLUDE_MOUSE_HPP_
+
3 
+
4 #include "./raylib.hpp"
+
5 #include "./Vector2.hpp"
+
6 
+
7 namespace raylib {
+
11 class Mouse {
+
12  public:
+
16  static inline bool IsButtonPressed(int button) {
+
17  return ::IsMouseButtonPressed(button);
+
18  }
+
19 
+
23  static inline bool IsButtonDown(int button) {
+
24  return ::IsMouseButtonDown(button);
+
25  }
+
26 
+
30  static inline bool IsButtonReleased(int button) {
+
31  return ::IsMouseButtonReleased(button);
+
32  }
+
33 
+
34  static inline bool IsButtonUp(int button) {
+
35  return ::IsMouseButtonUp(button);
+
36  }
+
37 
+
38  static inline int GetX() {
+
39  return ::GetMouseX();
+
40  }
+
41 
+
42  static inline int GetY() {
+
43  return ::GetMouseY();
+
44  }
+
45 
+
46  static inline void SetX(int x) {
+
47  ::SetMousePosition(x, GetY());
+
48  }
+
49 
+
50  static inline void SetY(int y) {
+
51  ::SetMousePosition(GetX(), y);
+
52  }
+
53 
+
54  static inline Vector2 GetPosition() {
+
55  return ::GetMousePosition();
+
56  }
+
57 
+
58  static inline void SetPosition(int x, int y) {
+
59  ::SetMousePosition(x, y);
+
60  }
+
61 
+
62  static inline void SetOffset(int offsetX, int offsetY) {
+
63  ::SetMouseOffset(offsetX, offsetY);
+
64  }
+
65 
+
66  static inline void SetScale(float scaleX, float scaleY) {
+
67  ::SetMouseScale(scaleX, scaleY);
+
68  }
+
69 
+
70  static inline float GetWheelMove() {
+
71  return ::GetMouseWheelMove();
+
72  }
+
73 
+
74  static inline void SetCursor(int cursor) {
+
75  ::SetMouseCursor(cursor);
+
76  }
+
77 
+
78  static inline int GetTouchX() {
+
79  return ::GetTouchX();
+
80  }
+
81 
+
82  static inline int GetTouchY() {
+
83  return ::GetTouchY();
+
84  }
+
85 
+
86  static inline Vector2 GetTouchPosition(int index) {
+
87  return ::GetTouchPosition(index);
+
88  }
+
89 };
+
90 } // namespace raylib
+
91 
+
92 #endif // RAYLIB_CPP_INCLUDE_MOUSE_HPP_
+
+
All raylib-cpp classes and functions appear in the raylib namespace.
Definition: AudioDevice.hpp:7
+
Input-related functions: mouse.
Definition: Mouse.hpp:11
+
static bool IsButtonDown(int button)
Detect if a mouse button is being pressed.
Definition: Mouse.hpp:23
+
static bool IsButtonPressed(int button)
Detect if a mouse button has been pressed once.
Definition: Mouse.hpp:16
+
static bool IsButtonReleased(int button)
Detect if a mouse button has been released once.
Definition: Mouse.hpp:30
+ + + + diff --git a/raylib-cpp/docs/_music_8hpp_source.html b/raylib-cpp/docs/_music_8hpp_source.html new file mode 100644 index 00000000..3ffeef7b --- /dev/null +++ b/raylib-cpp/docs/_music_8hpp_source.html @@ -0,0 +1,200 @@ + + + + + + + +raylib-cpp: Music.hpp Source File + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Music.hpp
+
+
+
1 #ifndef RAYLIB_CPP_INCLUDE_MUSIC_HPP_
+
2 #define RAYLIB_CPP_INCLUDE_MUSIC_HPP_
+
3 
+
4 #include <string>
+
5 
+
6 #include "./raylib.hpp"
+
7 #include "./raylib-cpp-utils.hpp"
+
8 
+
9 namespace raylib {
+
13 class Music : public ::Music {
+
14  public:
+
15  Music(const ::Music& music) {
+
16  set(music);
+
17  }
+
18 
+
22  Music(const std::string& fileName) {
+
23  set(::LoadMusicStream(fileName.c_str()));
+
24  }
+
25 
+
29  Music(const std::string& fileType, unsigned char* data, int dataSize) {
+
30  set(::LoadMusicStreamFromMemory(fileType.c_str(), data, dataSize));
+
31  }
+
32 
+
36  ~Music() {
+
37  Unload();
+
38  }
+
39 
+
40  GETTERSETTER(::AudioStream, Stream, stream)
+
41  GETTERSETTER(unsigned int, SampleCount, sampleCount)
+
42  GETTERSETTER(bool, Looping, looping)
+
43  GETTERSETTER(int, CtxType, ctxType)
+
44  GETTERSETTER(void*, CtxData, ctxData)
+
45 
+
46  Music& operator=(const ::Music& music) {
+
47  set(music);
+
48  return *this;
+
49  }
+
50 
+
54  inline void Unload() {
+
55  ::UnloadMusicStream(*this);
+
56  }
+
57 
+
61  inline Music& Play() {
+
62  ::PlayMusicStream(*this);
+
63  return *this;
+
64  }
+
65 
+
69  inline Music& Update() {
+
70  ::UpdateMusicStream(*this);
+
71  return *this;
+
72  }
+
73 
+
77  inline Music& Stop() {
+
78  ::StopMusicStream(*this);
+
79  return *this;
+
80  }
+
81 
+
85  inline Music& Pause() {
+
86  ::PauseMusicStream(*this);
+
87  return *this;
+
88  }
+
89 
+
93  inline Music& Resume() {
+
94  ::ResumeMusicStream(*this);
+
95  return *this;
+
96  }
+
97 
+
101  inline bool IsPlaying() const {
+
102  return ::IsMusicPlaying(*this);
+
103  }
+
104 
+
108  inline Music& SetVolume(float volume) {
+
109  ::SetMusicVolume(*this, volume);
+
110  return *this;
+
111  }
+
112 
+
116  inline Music& SetPitch(float pitch) {
+
117  ::SetMusicPitch(*this, pitch);
+
118  return *this;
+
119  }
+
120 
+
124  inline float GetTimeLength() const {
+
125  return ::GetMusicTimeLength(*this);
+
126  }
+
127 
+
131  inline float GetTimePlayed() const {
+
132  return ::GetMusicTimePlayed(*this);
+
133  }
+
134 
+
135  private:
+
136  inline void set(const ::Music& music) {
+
137  ctxType = music.ctxType;
+
138  ctxData = music.ctxData;
+
139  looping = music.looping;
+
140  sampleCount = music.sampleCount;
+
141  stream = music.stream;
+
142  }
+
143 };
+
144 } // namespace raylib
+
145 
+
146 #endif // RAYLIB_CPP_INCLUDE_MUSIC_HPP_
+
+
Music(const std::string &fileType, unsigned char *data, int dataSize)
Load music stream from memory.
Definition: Music.hpp:29
+
All raylib-cpp classes and functions appear in the raylib namespace.
Definition: AudioDevice.hpp:7
+
Music & SetPitch(float pitch)
Set pitch for music.
Definition: Music.hpp:116
+
Music & Stop()
Stop music playing.
Definition: Music.hpp:77
+
Music & SetVolume(float volume)
Set volume for music.
Definition: Music.hpp:108
+
Music & Resume()
Resume music playing.
Definition: Music.hpp:93
+
Music & Play()
Start music playing.
Definition: Music.hpp:61
+
Music & Pause()
Pause music playing.
Definition: Music.hpp:85
+
bool IsPlaying() const
Check if music is playing.
Definition: Music.hpp:101
+
~Music()
Unload music stream.
Definition: Music.hpp:36
+
Music(const std::string &fileName)
Load music stream from file.
Definition: Music.hpp:22
+
void Unload()
Unload music stream.
Definition: Music.hpp:54
+
Music stream type (audio file streaming from memory)
Definition: Music.hpp:13
+
AudioStream management functions.
Definition: AudioStream.hpp:11
+
Music & Update()
Updates buffers for music streaming.
Definition: Music.hpp:69
+
float GetTimeLength() const
Get music time length (in seconds)
Definition: Music.hpp:124
+
float GetTimePlayed() const
Get current music time played (in seconds)
Definition: Music.hpp:131
+ + + + diff --git a/raylib-cpp/docs/_physics_8hpp_source.html b/raylib-cpp/docs/_physics_8hpp_source.html new file mode 100644 index 00000000..f7865312 --- /dev/null +++ b/raylib-cpp/docs/_physics_8hpp_source.html @@ -0,0 +1,203 @@ + + + + + + + +raylib-cpp: Physics.hpp Source File + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Physics.hpp
+
+
+
1 #ifndef RAYLIB_CPP_INCLUDE_PHYSICS_HPP_
+
2 #define RAYLIB_CPP_INCLUDE_PHYSICS_HPP_
+
3 
+
4 #include "./raylib.hpp"
+
5 #include "./physac.hpp"
+
6 #include "./Vector2.hpp"
+
7 
+
8 namespace raylib {
+
12 class Physics {
+
13  public:
+
14  Physics() {
+
15  Init();
+
16  }
+
17 
+
18  Physics(float gravityY) {
+
19  Init();
+
20  SetGravity(0, gravityY);
+
21  }
+
22 
+
23  Physics(float gravityX, float gravityY) {
+
24  Init();
+
25  SetGravity(gravityX, gravityY);
+
26  }
+
27 
+
28  ~Physics() {
+
29  Close();
+
30  }
+
31 
+
32  inline Physics& Init() {
+
33  ::InitPhysics();
+
34  return *this;
+
35  }
+
36 
+
37  inline Physics& Close() {
+
38  ::ClosePhysics();
+
39  return *this;
+
40  }
+
41 
+
42  inline Physics& UpdateStep() {
+
43  ::UpdatePhysicsStep();
+
44  return *this;
+
45  }
+
46 
+
47  inline Physics& SetTimeStep(double delta) {
+
48  ::SetPhysicsTimeStep(delta);
+
49  return *this;
+
50  }
+
51 
+
52  inline Physics& SetGravity(float x, float y) {
+
53  ::SetPhysicsGravity(x, y);
+
54  return *this;
+
55  }
+
56 
+
57  inline PhysicsBody CreateBodyCircle(Vector2 pos, float radius, float density) {
+
58  return ::CreatePhysicsBodyCircle(pos, radius, density);
+
59  }
+
60 
+
61  inline PhysicsBody CreateBodyRectangle(Vector2 pos, float width, float height, float density) {
+
62  return ::CreatePhysicsBodyRectangle(pos, width, height, density);
+
63  }
+
64 
+
65  inline PhysicsBody CreateBodyPolygon(Vector2 pos, float radius, int sides, float density) {
+
66  return ::CreatePhysicsBodyPolygon(pos, radius, sides, density);
+
67  }
+
68 
+
69  inline Physics& AddForce(PhysicsBody body, Vector2 force) {
+
70  ::PhysicsAddForce(body, force);
+
71  return *this;
+
72  }
+
73 
+
74  inline Physics& AddTorque(PhysicsBody body, float amount) {
+
75  ::PhysicsAddTorque(body, amount);
+
76  return *this;
+
77  }
+
78 
+
79  inline Physics& Shatter(PhysicsBody body, Vector2 position, float force) {
+
80  ::PhysicsShatter(body, position, force);
+
81  return *this;
+
82  }
+
83 
+
84  inline int GetBodiesCount() const {
+
85  return ::GetPhysicsBodiesCount();
+
86  }
+
87 
+
88  inline PhysicsBody GetBody(int index) const {
+
89  return ::GetPhysicsBody(index);
+
90  }
+
91 
+
92  inline int GetShapeType(int index) const {
+
93  return ::GetPhysicsShapeType(index);
+
94  }
+
95 
+
96  inline int GetShapeVerticesCount(int index) const {
+
97  return ::GetPhysicsShapeVerticesCount(index);
+
98  }
+
99 
+
100  inline Vector2 GetShapeVertex(PhysicsBody body, int vertex) const {
+
101  return ::GetPhysicsShapeVertex(body, vertex);
+
102  }
+
103 
+
104  inline Physics& SetBodyRotation(PhysicsBody body, float radians) {
+
105  ::SetPhysicsBodyRotation(body, radians);
+
106  return *this;
+
107  }
+
108 
+
109  inline Physics& DestroyBody(PhysicsBody body) {
+
110  ::DestroyPhysicsBody(body);
+
111  return *this;
+
112  }
+
113 
+
114  inline Physics& Reset() {
+
115  ::ResetPhysics();
+
116  return *this;
+
117  }
+
118 };
+
119 } // namespace raylib
+
120 
+
121 #endif // RAYLIB_CPP_INCLUDE_PHYSICS_HPP_
+
+
All raylib-cpp classes and functions appear in the raylib namespace.
Definition: AudioDevice.hpp:7
+
2D Physics library for videogames
Definition: Physics.hpp:12
+
Vector2 type.
Definition: Vector2.hpp:16
+ + + + diff --git a/raylib-cpp/docs/_ray_8hpp_source.html b/raylib-cpp/docs/_ray_8hpp_source.html new file mode 100644 index 00000000..a6cd0bf3 --- /dev/null +++ b/raylib-cpp/docs/_ray_8hpp_source.html @@ -0,0 +1,166 @@ + + + + + + + +raylib-cpp: Ray.hpp Source File + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Ray.hpp
+
+
+
1 #ifndef RAYLIB_CPP_INCLUDE_RAY_HPP_
+
2 #define RAYLIB_CPP_INCLUDE_RAY_HPP_
+
3 
+
4 #include "./raylib.hpp"
+
5 #include "./raylib-cpp-utils.hpp"
+
6 #include "./RayHitInfo.hpp"
+
7 
+
8 namespace raylib {
+
12 class Ray : public ::Ray {
+
13  public:
+
14  Ray(const ::Ray& ray) {
+
15  set(ray);
+
16  }
+
17 
+
18  Ray(::Vector3 Position, ::Vector3 Direction) {
+
19  position = Position;
+
20  direction = Direction;
+
21  }
+
22 
+
23  Ray(::Vector2 mousePosition, ::Camera camera) {
+
24  set(::GetMouseRay(mousePosition, camera));
+
25  }
+
26 
+
27  Ray& operator=(const ::Ray& ray) {
+
28  set(ray);
+
29  return *this;
+
30  }
+
31 
+
32  GETTERSETTER(::Vector3, Position, position)
+
33  GETTERSETTER(::Vector3, Direction, direction)
+
34 
+
38  inline Ray& Draw(::Color color) {
+
39  DrawRay(*this, color);
+
40  return *this;
+
41  }
+
42 
+
46  inline bool CheckCollisionSphere(::Vector3 center, float radius) const {
+
47  return CheckCollisionRaySphere(*this, center, radius);
+
48  }
+
49 
+
53  inline bool CheckCollisionSphere(::Vector3 center, float radius,
+
54  ::Vector3 *collisionPoint) const {
+
55  return CheckCollisionRaySphereEx(*this, center, radius, collisionPoint);
+
56  }
+
57 
+
61  inline bool CheckCollision(const ::BoundingBox& box) const {
+
62  return CheckCollisionRayBox(*this, box);
+
63  }
+
64 
+
68  inline RayHitInfo GetCollision(const ::Model& model) const {
+
69  return GetCollisionRayModel(*this, model);
+
70  }
+
71 
+
75  inline RayHitInfo GetCollisionTriangle(::Vector3 p1, ::Vector3 p2, ::Vector3 p3) const {
+
76  return GetCollisionRayTriangle(*this, p1, p2, p3);
+
77  }
+
78 
+
82  inline RayHitInfo GetCollisionGround(float groundHeight) const {
+
83  return GetCollisionRayGround(*this, groundHeight);
+
84  }
+
85 
+
86  private:
+
87  inline void set(const ::Ray& ray) {
+
88  position = ray.position;
+
89  direction = ray.direction;
+
90  }
+
91 };
+
92 } // namespace raylib
+
93 
+
94 #endif // RAYLIB_CPP_INCLUDE_RAY_HPP_
+
+
Ray & Draw(::Color color)
Draw a ray line.
Definition: Ray.hpp:38
+
All raylib-cpp classes and functions appear in the raylib namespace.
Definition: AudioDevice.hpp:7
+
bool CheckCollision(const ::BoundingBox &box) const
Detect collision between ray and box.
Definition: Ray.hpp:61
+
RayHitInfo GetCollision(const ::Model &model) const
Get collision info between ray and model.
Definition: Ray.hpp:68
+
Ray type (useful for raycast)
Definition: Ray.hpp:12
+
bool CheckCollisionSphere(::Vector3 center, float radius) const
Detect collision between ray and sphere.
Definition: Ray.hpp:46
+
Vector3 type.
Definition: Vector3.hpp:16
+
Camera type, defines a camera position/orientation in 3d space.
Definition: Camera3D.hpp:12
+
Vector2 type.
Definition: Vector2.hpp:16
+
RayHitInfo GetCollisionTriangle(::Vector3 p1, ::Vector3 p2, ::Vector3 p3) const
Get collision info between ray and triangle.
Definition: Ray.hpp:75
+
bool CheckCollisionSphere(::Vector3 center, float radius, ::Vector3 *collisionPoint) const
Detect collision between ray and sphere, returns collision point.
Definition: Ray.hpp:53
+
Color type, RGBA (32bit)
Definition: Color.hpp:14
+
Raycast hit information.
Definition: RayHitInfo.hpp:11
+
RayHitInfo GetCollisionGround(float groundHeight) const
Get collision info between ray and ground plane (Y-normal plane)
Definition: Ray.hpp:82
+ + + + diff --git a/raylib-cpp/docs/_ray_hit_info_8hpp_source.html b/raylib-cpp/docs/_ray_hit_info_8hpp_source.html new file mode 100644 index 00000000..7eda154e --- /dev/null +++ b/raylib-cpp/docs/_ray_hit_info_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +raylib-cpp: RayHitInfo.hpp Source File + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
RayHitInfo.hpp
+
+
+
1 #ifndef RAYLIB_CPP_INCLUDE_RAYHITINFO_HPP_
+
2 #define RAYLIB_CPP_INCLUDE_RAYHITINFO_HPP_
+
3 
+
4 #include "./raylib.hpp"
+
5 #include "./raylib-cpp-utils.hpp"
+
6 
+
7 namespace raylib {
+
11 class RayHitInfo : public ::RayHitInfo {
+
12  public:
+
13  RayHitInfo(const ::RayHitInfo& ray) {
+
14  set(ray);
+
15  }
+
16 
+
17  RayHitInfo(bool Hit, float Distance, ::Vector3 Position, ::Vector3 Normal) {
+
18  hit = Hit;
+
19  distance = Distance;
+
20  position = Position;
+
21  normal = Normal;
+
22  }
+
23 
+
27  RayHitInfo(const ::Ray& ray, const ::Mesh& mesh, const ::Matrix& transform) {
+
28  set(::GetCollisionRayMesh(ray, mesh, transform));
+
29  }
+
30 
+
34  RayHitInfo(const ::Ray& ray, const ::Model& model) {
+
35  set(::GetCollisionRayModel(ray, model));
+
36  }
+
37 
+
41  RayHitInfo(const ::Ray& ray, ::Vector3 p1, ::Vector3 p2, ::Vector3 p3) {
+
42  set(::GetCollisionRayTriangle(ray, p1, p2, p3));
+
43  }
+
44 
+
48  RayHitInfo(const ::Ray& ray, float groundHeight) {
+
49  set(::GetCollisionRayGround(ray, groundHeight));
+
50  }
+
51 
+
52  RayHitInfo& operator=(const ::RayHitInfo& ray) {
+
53  set(ray);
+
54  return *this;
+
55  }
+
56 
+
57  GETTERSETTER(bool, Hit, hit)
+
58  GETTERSETTER(float, Distance, distance)
+
59  GETTERSETTER(::Vector3, Position, position)
+
60  GETTERSETTER(::Vector3, Normal, normal)
+
61 
+
62  private:
+
63  inline void set(const ::RayHitInfo& ray) {
+
64  hit = ray.hit;
+
65  distance = ray.distance;
+
66  position = ray.position;
+
67  normal = ray.normal;
+
68  }
+
69 };
+
70 } // namespace raylib
+
71 
+
72 #endif // RAYLIB_CPP_INCLUDE_RAYHITINFO_HPP_
+
+
All raylib-cpp classes and functions appear in the raylib namespace.
Definition: AudioDevice.hpp:7
+
RayHitInfo(const ::Ray &ray, ::Vector3 p1, ::Vector3 p2, ::Vector3 p3)
Get collision info between ray and triangle.
Definition: RayHitInfo.hpp:41
+
Vector3 type.
Definition: Vector3.hpp:16
+
RayHitInfo(const ::Ray &ray, float groundHeight)
Get collision info between ray and ground plane (Y-normal plane)
Definition: RayHitInfo.hpp:48
+
RayHitInfo(const ::Ray &ray, const ::Mesh &mesh, const ::Matrix &transform)
Get collision info between ray and mesh.
Definition: RayHitInfo.hpp:27
+
Raycast hit information.
Definition: RayHitInfo.hpp:11
+
RayHitInfo(const ::Ray &ray, const ::Model &model)
Get collision info between ray and model.
Definition: RayHitInfo.hpp:34
+ + + + diff --git a/raylib-cpp/docs/_rectangle_8hpp_source.html b/raylib-cpp/docs/_rectangle_8hpp_source.html new file mode 100644 index 00000000..fb510c2d --- /dev/null +++ b/raylib-cpp/docs/_rectangle_8hpp_source.html @@ -0,0 +1,238 @@ + + + + + + + +raylib-cpp: Rectangle.hpp Source File + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Rectangle.hpp
+
+
+
1 #ifndef RAYLIB_CPP_INCLUDE_RECTANGLE_HPP_
+
2 #define RAYLIB_CPP_INCLUDE_RECTANGLE_HPP_
+
3 
+
4 #include "./raylib.hpp"
+
5 #include "./raylib-cpp-utils.hpp"
+
6 #include "./Vector2.hpp"
+
7 
+
8 namespace raylib {
+
12 class Rectangle : public ::Rectangle {
+
13  public:
+
14  Rectangle(const ::Rectangle& vec) {
+
15  set(vec);
+
16  }
+
17 
+
18  Rectangle(float x, float y, float width, float height) : ::Rectangle{x, y, width, height} {}
+
19  Rectangle(float x, float y, float width) : ::Rectangle{x, y, width, 0} {}
+
20  Rectangle(float x, float y) : ::Rectangle{x, y, 0, 0} {}
+
21  Rectangle(float x) : ::Rectangle{x, 0, 0, 0} {}
+
22  Rectangle() : ::Rectangle{0, 0, 0, 0} {}
+
23 
+
24  Rectangle(::Vector2 position, ::Vector2 size)
+
25  : ::Rectangle{position.x, position.y, size.x, size.y} {}
+
26  Rectangle(::Vector2 size) : ::Rectangle{0, 0, size.x, size.y} {}
+
27 
+
28  GETTERSETTER(float, X, x)
+
29  GETTERSETTER(float, Y, y)
+
30  GETTERSETTER(float, Width, width)
+
31  GETTERSETTER(float, Height, height)
+
32 
+
33  Rectangle& operator=(const ::Rectangle& rect) {
+
34  set(rect);
+
35  return *this;
+
36  }
+
37 
+
38  inline ::Vector4 ToVector4() {
+
39  return {x, y, width, height};
+
40  }
+
41 
+
42  operator ::Vector4() const {
+
43  return {x, y, width, height};
+
44  }
+
45 
+
49  inline Rectangle& Draw(::Color color) {
+
50  ::DrawRectangle(static_cast<int>(x), static_cast<int>(y), static_cast<int>(width),
+
51  static_cast<int>(height), color);
+
52  return *this;
+
53  }
+
54 
+
55  inline Rectangle& Draw(::Vector2 origin, float rotation, ::Color color) {
+
56  ::DrawRectanglePro(*this, origin, rotation, color);
+
57  return *this;
+
58  }
+
59 
+
60  inline Rectangle& DrawGradientV(::Color color1, ::Color color2) {
+
61  ::DrawRectangleGradientV(static_cast<int>(x), static_cast<int>(y), static_cast<int>(width),
+
62  static_cast<int>(height), color1, color2);
+
63  return *this;
+
64  }
+
65 
+
66  inline Rectangle& DrawGradientH(::Color color1, ::Color color2) {
+
67  ::DrawRectangleGradientH(static_cast<int>(x), static_cast<int>(y), static_cast<int>(width),
+
68  static_cast<int>(height), color1, color2);
+
69  return *this;
+
70  }
+
71 
+
72  inline Rectangle& DrawGradient(::Color col1, ::Color col2, ::Color col3, ::Color col4) {
+
73  ::DrawRectangleGradientEx(*this, col1, col2, col3, col4);
+
74  return *this;
+
75  }
+
76 
+
77  inline Rectangle& DrawLines(::Color color) {
+
78  ::DrawRectangleLines(static_cast<int>(x), static_cast<int>(y), static_cast<int>(width),
+
79  static_cast<int>(height), color);
+
80  return *this;
+
81  }
+
82 
+
83  inline Rectangle& DrawLines(::Color color, int lineThick) {
+
84  ::DrawRectangleLinesEx(*this, lineThick, color);
+
85  return *this;
+
86  }
+
87 
+
88  inline Rectangle& DrawRounded(float roundness, int segments, ::Color color) {
+
89  ::DrawRectangleRounded(*this, roundness, segments, color);
+
90  return *this;
+
91  }
+
92 
+
93  inline Rectangle& DrawRoundedLines(float roundness, int segments, int lineThick,
+
94  ::Color color) {
+
95  ::DrawRectangleRoundedLines(*this, roundness, segments, lineThick, color);
+
96  return *this;
+
97  }
+
98 
+
102  inline bool CheckCollision(::Rectangle rec2) const {
+
103  return ::CheckCollisionRecs(*this, rec2);
+
104  }
+
105 
+
109  inline ::Rectangle GetCollision(::Rectangle rec2) const {
+
110  return ::GetCollisionRec(*this, rec2);
+
111  }
+
112 
+
116  inline bool CheckCollision(::Vector2 point) const {
+
117  return ::CheckCollisionPointRec(point, *this);
+
118  }
+
119 
+
123  inline bool CheckCollision(::Vector2 center, float radius) {
+
124  return ::CheckCollisionCircleRec(center, radius, *this);
+
125  }
+
126 
+
127  inline ::Vector2 GetSize() {
+
128  return {width, height};
+
129  }
+
130 
+
131  inline Rectangle& SetSize(float newWidth, float newHeight) {
+
132  width = newWidth;
+
133  height = newHeight;
+
134  return *this;
+
135  }
+
136 
+
137  inline Rectangle& SetSize(const ::Vector2& size) {
+
138  return SetSize(size.x, size.y);
+
139  }
+
140 
+
141  inline ::Vector2 GetPosition() {
+
142  return {x, y};
+
143  }
+
144 
+
145  inline Rectangle& SetPosition(float newX, float newY) {
+
146  x = newX;
+
147  y = newY;
+
148  return *this;
+
149  }
+
150 
+
151  inline Rectangle& SetPosition(const ::Vector2& position) {
+
152  return SetPosition(position.x, position.y);
+
153  }
+
154 
+
155  private:
+
156  inline void set(const ::Rectangle& rect) {
+
157  x = rect.x;
+
158  y = rect.y;
+
159  width = rect.width;
+
160  height = rect.height;
+
161  }
+
162 };
+
163 } // namespace raylib
+
164 
+
165 #endif // RAYLIB_CPP_INCLUDE_RECTANGLE_HPP_
+
+
All raylib-cpp classes and functions appear in the raylib namespace.
Definition: AudioDevice.hpp:7
+
bool CheckCollision(::Vector2 point) const
Check if point is inside rectangle.
Definition: Rectangle.hpp:116
+
bool CheckCollision(::Vector2 center, float radius)
Check collision between circle and rectangle.
Definition: Rectangle.hpp:123
+
Rectangle type.
Definition: Rectangle.hpp:12
+
Vector2 type.
Definition: Vector2.hpp:16
+
Color type, RGBA (32bit)
Definition: Color.hpp:14
+
inline ::Rectangle GetCollision(::Rectangle rec2) const
Get collision rectangle for two rectangles collision.
Definition: Rectangle.hpp:109
+
bool CheckCollision(::Rectangle rec2) const
Check collision between two rectangles.
Definition: Rectangle.hpp:102
+
Rectangle & Draw(::Color color)
Draw a color-filled rectangle.
Definition: Rectangle.hpp:49
+ + + + diff --git a/raylib-cpp/docs/_render_texture2_d_8hpp_source.html b/raylib-cpp/docs/_render_texture2_d_8hpp_source.html new file mode 100644 index 00000000..7b73a74b --- /dev/null +++ b/raylib-cpp/docs/_render_texture2_d_8hpp_source.html @@ -0,0 +1,163 @@ + + + + + + + +raylib-cpp: RenderTexture2D.hpp Source File + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
RenderTexture2D.hpp
+
+
+
1 #ifndef RAYLIB_CPP_RENDERTEXTURE2D_HPP_
+
2 #define RAYLIB_CPP_RENDERTEXTURE2D_HPP_
+
3 
+
4 #ifdef __cplusplus
+
5 extern "C"{
+
6 #endif
+
7 #include "raylib.h"
+
8 #ifdef __cplusplus
+
9 }
+
10 #endif
+
11 
+
12 #include "./raylib-cpp-utils.hpp"
+
13 
+
14 namespace raylib {
+ +
16  public:
+
17  RenderTexture2D(::RenderTexture2D renderTexture) {
+
18  set(renderTexture);
+
19  };
+
20  RenderTexture2D(unsigned int Id) {
+
21  id = Id;
+
22  };
+
23  RenderTexture2D(int width, int height) {
+
24  set(LoadRenderTexture(width, height));
+
25  }
+
26 
+
27  inline void set(::RenderTexture2D renderTexture) {
+
28  id = renderTexture.id;
+
29  texture = renderTexture.texture;
+
30  depth = renderTexture.depth;
+
31  }
+
32 
+
33  GETTERSETTER(unsigned int,Id,id)
+
34  GETTERSETTER(Texture2D,Texture,texture)
+
35  GETTERSETTER(Texture2D,Depth,depth)
+
36 
+
37  RenderTexture2D& operator=(const ::RenderTexture2D& texture) {
+
38  set(texture);
+
39  return *this;
+
40  }
+
41 
+ +
43  set(texture);
+
44  return *this;
+
45  }
+
46 
+ +
48  Unload();
+
49  };
+
50 
+
51  inline void Unload() {
+
52  UnloadRenderTexture(*this);
+
53  }
+
54 
+ +
56  ::BeginTextureMode(*this);
+
57  return *this;
+
58  }
+
59 
+ + +
62  return *this;
+
63  }
+
64  };
+ +
66 }
+
67 
+
68 #endif
+
+
Provides all the classes associated with raylib-cpp.
Definition: AudioDevice.hpp:14
+ +
RenderTexture2D & EndTextureMode()
+
RenderTexture2D & BeginTextureMode()
+
RenderTexture2D RenderTexture
+
void set(::RenderTexture2D renderTexture)
+
RenderTexture2D(::RenderTexture2D renderTexture)
+
RenderTexture2D(int width, int height)
+
RenderTexture2D & operator=(const RenderTexture2D &texture)
+ +
RenderTexture2D(unsigned int Id)
+ + + + + + diff --git a/raylib-cpp/docs/_render_texture_8hpp_source.html b/raylib-cpp/docs/_render_texture_8hpp_source.html new file mode 100644 index 00000000..76163030 --- /dev/null +++ b/raylib-cpp/docs/_render_texture_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +raylib-cpp: RenderTexture.hpp Source File + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
RenderTexture.hpp
+
+
+
1 #ifndef RAYLIB_CPP_INCLUDE_RENDERTEXTURE_HPP_
+
2 #define RAYLIB_CPP_INCLUDE_RENDERTEXTURE_HPP_
+
3 
+
4 #include "./raylib.hpp"
+
5 #include "./raylib-cpp-utils.hpp"
+
6 
+
7 namespace raylib {
+ +
12  public:
+
13  RenderTexture(const ::RenderTexture& renderTexture) {
+
14  set(renderTexture);
+
15  }
+
16 
+
17  RenderTexture(unsigned int Id) {
+
18  id = Id;
+
19  }
+
20 
+
21  RenderTexture(int width, int height) {
+
22  set(LoadRenderTexture(width, height));
+
23  }
+
24 
+
25  GETTERSETTER(unsigned int, Id, id)
+
26  GETTERSETTER(::Texture2D, Texture, texture)
+
27  GETTERSETTER(::Texture2D, Depth, depth)
+
28 
+
29  RenderTexture& operator=(const ::RenderTexture& texture) {
+
30  set(texture);
+
31  return *this;
+
32  }
+
33 
+
34  ~RenderTexture() {
+
35  Unload();
+
36  }
+
37 
+
38  inline void Unload() {
+
39  UnloadRenderTexture(*this);
+
40  }
+
41 
+ +
46  ::BeginTextureMode(*this);
+
47  return *this;
+
48  }
+
49 
+
53  inline RenderTexture& EndMode() {
+
54  ::EndTextureMode();
+
55  return *this;
+
56  }
+
57 
+
58  private:
+
59  inline void set(const ::RenderTexture& renderTexture) {
+
60  id = renderTexture.id;
+
61  texture = renderTexture.texture;
+
62  depth = renderTexture.depth;
+
63  }
+
64 };
+
65 typedef RenderTexture RenderTexture2D;
+
66 } // namespace raylib
+
67 
+
68 #endif // RAYLIB_CPP_INCLUDE_RENDERTEXTURE_HPP_
+
+
All raylib-cpp classes and functions appear in the raylib namespace.
Definition: AudioDevice.hpp:7
+
RenderTexture type, for texture rendering.
+
RenderTexture & EndMode()
Ends drawing to render texture.
+
RenderTexture & BeginMode()
Initializes render texture for drawing.
+
Texture type.
Definition: Texture.hpp:15
+ + + + diff --git a/raylib-cpp/docs/_shader_8hpp_source.html b/raylib-cpp/docs/_shader_8hpp_source.html new file mode 100644 index 00000000..ee9ee456 --- /dev/null +++ b/raylib-cpp/docs/_shader_8hpp_source.html @@ -0,0 +1,191 @@ + + + + + + + +raylib-cpp: Shader.hpp Source File + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Shader.hpp
+
+
+
1 #ifndef RAYLIB_CPP_INCLUDE_SHADER_HPP_
+
2 #define RAYLIB_CPP_INCLUDE_SHADER_HPP_
+
3 
+
4 #include <string>
+
5 
+
6 #include "./raylib.hpp"
+
7 #include "./raylib-cpp-utils.hpp"
+
8 #include "Texture.hpp"
+
9 
+
10 namespace raylib {
+
14 class Shader : public ::Shader {
+
15  public:
+
16  Shader(const ::Shader& shader) {
+
17  set(shader);
+
18  }
+
19 
+
20  Shader(unsigned int Id, int* Locs) {
+
21  id = Id;
+
22  locs = Locs;
+
23  }
+
24 
+
25  Shader(const std::string& vsFileName, const std::string& fsFileName) {
+
26  set(::LoadShader(vsFileName.c_str(), fsFileName.c_str()));
+
27  }
+
28 
+
32  static ::Shader Load(const std::string& vsFileName, const std::string& fsFileName) {
+
33  return ::LoadShader(vsFileName.c_str(), fsFileName.c_str());
+
34  }
+
35 
+
36  static ::Shader LoadFromMemory(const std::string& vsCode, const std::string& fsCode) {
+
37  return ::LoadShaderFromMemory(vsCode.c_str(), fsCode.c_str());
+
38  }
+
39 
+
40  GETTERSETTER(unsigned int, Id, id)
+
41  GETTERSETTER(int*, Locs, locs)
+
42 
+
43  Shader& operator=(const ::Shader& shader) {
+
44  set(shader);
+
45  return *this;
+
46  }
+
47 
+
48  ~Shader() {
+
49  Unload();
+
50  }
+
51 
+
52  void Unload() {
+
53  if (locs != NULL) {
+
54  ::UnloadShader(*this);
+
55  }
+
56  }
+
57 
+
61  inline Shader& BeginMode() {
+
62  ::BeginShaderMode(*this);
+
63  return *this;
+
64  }
+
65 
+
69  inline Shader& EndMode() {
+
70  ::EndShaderMode();
+
71  return *this;
+
72  }
+
73 
+
79  inline int GetLocation(const std::string& uniformName) const {
+
80  return ::GetShaderLocation(*this, uniformName.c_str());
+
81  }
+
82 
+
88  inline int GetLocationAttrib(const std::string& attribName) const {
+
89  return ::GetShaderLocationAttrib(*this, attribName.c_str());
+
90  }
+
91 
+
97  inline Shader& SetValue(int uniformLoc, const std::string& value, int uniformType) {
+
98  ::SetShaderValue(*this, uniformLoc, value.c_str(), uniformType);
+
99  return *this;
+
100  }
+
101 
+
107  inline Shader& SetValue(int uniformLoc, const std::string& value, int uniformType, int count) {
+
108  ::SetShaderValueV(*this, uniformLoc, value.c_str(), uniformType, count);
+
109  return *this;
+
110  }
+
111 
+
117  inline Shader& SetValue(int uniformLoc, const ::Matrix& mat) {
+
118  ::SetShaderValueMatrix(*this, uniformLoc, mat);
+
119  return *this;
+
120  }
+
121 
+
127  inline Shader& SetValue(int uniformLoc, const ::Texture2D& texture) {
+
128  ::SetShaderValueTexture(*this, uniformLoc, texture);
+
129  return *this;
+
130  }
+
131 
+
132  private:
+
133  inline void set(const ::Shader& shader) {
+
134  id = shader.id;
+
135  locs = shader.locs;
+
136  }
+
137 };
+
138 } // namespace raylib
+
139 
+
140 #endif // RAYLIB_CPP_INCLUDE_SHADER_HPP_
+
+
All raylib-cpp classes and functions appear in the raylib namespace.
Definition: AudioDevice.hpp:7
+
Shader & SetValue(int uniformLoc, const std::string &value, int uniformType)
Set shader uniform value.
Definition: Shader.hpp:97
+
Shader & SetValue(int uniformLoc, const ::Matrix &mat)
Set shader uniform value (matrix 4x4)
Definition: Shader.hpp:117
+
int GetLocation(const std::string &uniformName) const
Get shader uniform location.
Definition: Shader.hpp:79
+
Shader & SetValue(int uniformLoc, const std::string &value, int uniformType, int count)
Set shader uniform value vector.
Definition: Shader.hpp:107
+
Shader & EndMode()
End custom shader drawing (use default shader).
Definition: Shader.hpp:69
+
Shader type (generic)
Definition: Shader.hpp:14
+
Shader & BeginMode()
Begin custom shader drawing.
Definition: Shader.hpp:61
+
int GetLocationAttrib(const std::string &attribName) const
Get shader attribute location.
Definition: Shader.hpp:88
+
::Shader Load(const std::string &vsFileName, const std::string &fsFileName)
Load shader from files and bind default locations.
Definition: Shader.hpp:32
+
Shader & SetValue(int uniformLoc, const ::Texture2D &texture)
Set shader uniform value for texture.
Definition: Shader.hpp:127
+ + + + diff --git a/raylib-cpp/docs/_sound_8hpp_source.html b/raylib-cpp/docs/_sound_8hpp_source.html new file mode 100644 index 00000000..5ef11050 --- /dev/null +++ b/raylib-cpp/docs/_sound_8hpp_source.html @@ -0,0 +1,199 @@ + + + + + + + +raylib-cpp: Sound.hpp Source File + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Sound.hpp
+
+
+
1 #ifndef RAYLIB_CPP_INCLUDE_SOUND_HPP_
+
2 #define RAYLIB_CPP_INCLUDE_SOUND_HPP_
+
3 
+
4 #include <string>
+
5 
+
6 #include "./raylib.hpp"
+
7 #include "./raylib-cpp-utils.hpp"
+
8 
+
9 namespace raylib {
+
18 class Sound : public ::Sound {
+
19  public:
+
20  Sound(const ::Sound& vec) {
+
21  set(vec);
+
22  }
+
23 
+
24  Sound(const std::string& fileName) {
+
25  set(LoadSound(fileName.c_str()));
+
26  }
+
27 
+
28  Sound(const ::Wave& wave) {
+
29  set(LoadSoundFromWave(wave));
+
30  }
+
31 
+
32  ~Sound() {
+
33  Unload();
+
34  }
+
35 
+
36  GETTERSETTER(unsigned int, SampleCount, sampleCount)
+
37  GETTERSETTER(::AudioStream, Stream, stream)
+
38 
+
39  Sound& operator=(const ::Sound& sound) {
+
40  set(sound);
+
41  return *this;
+
42  }
+
43 
+
47  inline Sound& Update(const void *data, int sampleCount) {
+
48  ::UpdateSound(*this, data, sampleCount);
+
49  return *this;
+
50  }
+
51 
+
55  inline Sound& Update(const void *data) {
+
56  ::UpdateSound(*this, data, sampleCount);
+
57  return *this;
+
58  }
+
59 
+
63  inline void Unload() {
+
64  ::UnloadSound(*this);
+
65  }
+
66 
+
70  inline Sound& Play() {
+
71  ::PlaySound(*this);
+
72  return *this;
+
73  }
+
74 
+
78  inline Sound& Stop() {
+
79  ::StopSound(*this);
+
80  return *this;
+
81  }
+
82 
+
86  inline Sound& Pause() {
+
87  ::PauseSound(*this);
+
88  return *this;
+
89  }
+
90 
+
94  inline Sound& Resume() {
+
95  ::ResumeSound(*this);
+
96  return *this;
+
97  }
+
98 
+
102  inline Sound& PlayMulti() {
+
103  ::PlaySoundMulti(*this);
+
104  return *this;
+
105  }
+
106 
+
110  inline Sound& StopMulti() {
+
111  ::StopSoundMulti();
+
112  return *this;
+
113  }
+
114 
+
118  inline bool IsPlaying() const {
+
119  return ::IsSoundPlaying(*this);
+
120  }
+
121 
+
125  inline Sound& SetVolume(float volume) {
+
126  ::SetSoundVolume(*this, volume);
+
127  return *this;
+
128  }
+
129 
+
133  inline Sound& SetPitch(float pitch) {
+
134  ::SetSoundPitch(*this, pitch);
+
135  return *this;
+
136  }
+
137 
+
138  private:
+
139  inline void set(const ::Sound& sound) {
+
140  sampleCount = sound.sampleCount;
+
141  stream = sound.stream;
+
142  }
+
143 };
+
144 } // namespace raylib
+
145 
+
146 #endif // RAYLIB_CPP_INCLUDE_SOUND_HPP_
+
+
All raylib-cpp classes and functions appear in the raylib namespace.
Definition: AudioDevice.hpp:7
+
Sound & Update(const void *data, int sampleCount)
Update sound buffer with new data.
Definition: Sound.hpp:47
+
Sound & StopMulti()
Stop any sound playing (using multichannel buffer pool)
Definition: Sound.hpp:110
+
Sound & SetVolume(float volume)
Set volume for a sound (1.0 is max level)
Definition: Sound.hpp:125
+
Wave/Sound management functions.
Definition: Sound.hpp:18
+
Sound & Pause()
Pause a sound.
Definition: Sound.hpp:86
+
Sound & Resume()
Resume a paused sound.
Definition: Sound.hpp:94
+
Sound & Stop()
Stop playing a sound.
Definition: Sound.hpp:78
+
bool IsPlaying() const
Check if a sound is currently playing.
Definition: Sound.hpp:118
+
void Unload()
Unload sound.
Definition: Sound.hpp:63
+
AudioStream management functions.
Definition: AudioStream.hpp:11
+
Sound & Update(const void *data)
Update sound buffer with new data, assuming it's the same sample count.
Definition: Sound.hpp:55
+
Sound & SetPitch(float pitch)
Set pitch for a sound (1.0 is base level)
Definition: Sound.hpp:133
+
Sound & Play()
Play a sound.
Definition: Sound.hpp:70
+
Sound & PlayMulti()
Play a sound (using multichannel buffer pool)
Definition: Sound.hpp:102
+ + + + diff --git a/raylib-cpp/docs/_text_8hpp_source.html b/raylib-cpp/docs/_text_8hpp_source.html new file mode 100644 index 00000000..ae651c19 --- /dev/null +++ b/raylib-cpp/docs/_text_8hpp_source.html @@ -0,0 +1,128 @@ + + + + + + + +raylib-cpp: Text.hpp Source File + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Text.hpp
+
+
+
1 
+
4 #ifndef RAYLIB_CPP_INCLUDE_TEXT_HPP_
+
5 #define RAYLIB_CPP_INCLUDE_TEXT_HPP_
+
6 
+
7 #include <string>
+
8 
+
9 #include "./raylib.hpp"
+
10 
+
14 #ifndef RLCPPAPI
+
15 #define RLCPPAPI static
+
16 #endif
+
17 
+
18 namespace raylib {
+
19 
+
23 RLCPPAPI inline void DrawText(
+
24  const std::string& title,
+
25  int posX,
+
26  int posY,
+
27  int fontSize,
+
28  ::Color color) {
+
29  ::DrawText(title.c_str(), posX, posY, fontSize, color);
+
30 }
+
31 
+
35 RLCPPAPI inline int MeasureText(const std::string& text, int fontSize) {
+
36  return ::MeasureText(text.c_str(), fontSize);
+
37 }
+
38 
+
42 RLCPPAPI inline bool TextIsEqual(const std::string& text1, const std::string& text2) {
+
43  return ::TextIsEqual(text1.c_str(), text2.c_str());
+
44 }
+
45 
+
49 RLCPPAPI inline unsigned int TextLength(const std::string& text) {
+
50  return ::TextLength(text.c_str());
+
51 }
+
52 
+
53 // TODO(RobLoach): Add remaining raylib C functions with string c_str() wrappers.
+
54 
+
55 } // namespace raylib
+
56 
+
57 #endif // RAYLIB_CPP_INCLUDE_TEXT_HPP_
+
+
All raylib-cpp classes and functions appear in the raylib namespace.
Definition: AudioDevice.hpp:7
+
static bool TextIsEqual(const std::string &text1, const std::string &text2)
Check if two text string are equal.
Definition: Text.hpp:42
+
static int MeasureText(const std::string &text, int fontSize)
Measure string width for default font.
Definition: Text.hpp:35
+
Color type, RGBA (32bit)
Definition: Color.hpp:14
+
static void DrawText(const std::string &title, int posX, int posY, int fontSize, ::Color color)
Draw text (using default font)
Definition: Text.hpp:23
+
static unsigned int TextLength(const std::string &text)
Check if two text string are equal.
Definition: Text.hpp:49
+ + + + diff --git a/raylib-cpp/docs/_texture2_d_8hpp_source.html b/raylib-cpp/docs/_texture2_d_8hpp_source.html new file mode 100644 index 00000000..57d2ed15 --- /dev/null +++ b/raylib-cpp/docs/_texture2_d_8hpp_source.html @@ -0,0 +1,284 @@ + + + + + + + +raylib-cpp: Texture2D.hpp Source File + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Texture2D.hpp
+
+
+
1 #ifndef RAYLIB_CPP_TEXTURE2D_HPP_
+
2 #define RAYLIB_CPP_TEXTURE2D_HPP_
+
3 
+
4 #include <string>
+
5 
+
6 #ifdef __cplusplus
+
7 extern "C"{
+
8 #endif
+
9 #include "raylib.h"
+
10 #ifdef __cplusplus
+
11 }
+
12 #endif
+
13 
+
14 #include "./raylib-cpp-utils.hpp"
+
15 #include "./Vector2.hpp"
+
16 #include "./Material.hpp"
+
17 
+
18 namespace raylib {
+
19  class Texture2D : public ::Texture2D {
+
20  public:
+ +
22  set(::GetTextureDefault());
+
23  };
+
24 
+
25  Texture2D(::Image& image) {
+
26  LoadFromImage(image);
+
27  }
+
28 
+
29  Texture2D(const std::string& fileName) {
+
30  Load(fileName);
+
31  }
+
32 
+ +
34  Unload();
+
35  };
+
36 
+
37  inline void set(::Texture2D texture) {
+
38  id = texture.id;
+
39  width = texture.width;
+
40  height = texture.height;
+
41  mipmaps = texture.mipmaps;
+
42  format = texture.format;
+
43  }
+
44 
+
45  GETTERSETTER(unsigned int,Id,id)
+
46  GETTERSETTER(int,Width,width)
+
47  GETTERSETTER(int,Height,height)
+
48  GETTERSETTER(int,Mipmaps,mipmaps)
+
49  GETTERSETTER(int,Format,format)
+
50 
+
51  Texture2D& operator=(const ::Texture2D& texture) {
+
52  set(texture);
+
53  return *this;
+
54  }
+
55 
+
56  Texture2D& operator=(const Texture2D& texture) {
+
57  set(texture);
+
58  return *this;
+
59  }
+
60 
+
61  void LoadFromImage(::Image& image) {
+
62  set(::LoadTextureFromImage(image));
+
63  }
+
64 
+
65  void LoadTextureCubemap(::Image& image, int layoutType) {
+
66  set(::LoadTextureCubemap(image, layoutType));
+
67  }
+
68 
+
69  void Load(const std::string& fileName) {
+
70  set(::LoadTexture(fileName.c_str()));
+
71  }
+
72 
+
73  inline void Unload() {
+
74  ::UnloadTexture(*this);
+
75  }
+
76 
+
77  inline Texture2D& Update(const void *pixels) {
+
78  ::UpdateTexture(*this, pixels);
+
79  return *this;
+
80  }
+
81 
+
82  inline Texture2D& UpdateRec(Rectangle rec, const void *pixels) {
+
83  UpdateTextureRec(*this, rec, pixels);
+
84  return *this;
+
85  }
+
86 
+
87  inline Image GetTextureData() {
+
88  return ::GetTextureData(*this);
+
89  }
+
90  inline operator raylib::Image() {
+
91  return GetTextureData();
+
92  }
+
93 
+
94  inline Texture2D& GenMipmaps() {
+
95  ::GenTextureMipmaps(this);
+
96  return *this;
+
97  }
+
98 
+
99  inline Texture2D& SetFilter(int filterMode) {
+
100  ::SetTextureFilter(*this, filterMode);
+
101  return *this;
+
102  }
+
103 
+
104  inline Texture2D& SetWrap(int wrapMode) {
+
105  ::SetTextureWrap(*this, wrapMode);
+
106  return *this;
+
107  }
+
108 
+
109  inline Texture2D& Draw(int posX, int posY, ::Color tint = WHITE) {
+
110  ::DrawTexture(*this, posX, posY, tint);
+
111  return *this;
+
112  }
+
113 
+
114  inline Texture2D& Draw(::Vector2 position, ::Color tint = WHITE) {
+
115  ::DrawTextureV(*this, position, tint);
+
116  return *this;
+
117  }
+
118  inline Texture2D& Draw(::Vector2 position, float rotation, float scale = 1.0f, ::Color tint = WHITE) {
+
119  ::DrawTextureEx(*this, position, rotation, scale, tint);
+
120  return *this;
+
121  }
+
122 
+
123  inline Texture2D& Draw(::Rectangle sourceRec, ::Vector2 position, ::Color tint = WHITE) {
+
124  ::DrawTextureRec(*this, sourceRec, position, tint);
+
125  return *this;
+
126  }
+
127  inline Texture2D& Draw(::Vector2 tiling, ::Vector2 offset, ::Rectangle quad, ::Color tint = WHITE) {
+
128  ::DrawTextureQuad(*this, tiling, offset, quad, tint);
+
129  return *this;
+
130  }
+
131  inline Texture2D& Draw(::Rectangle sourceRec, ::Rectangle destRec, ::Vector2 origin, float rotation = 0, ::Color tint = WHITE) {
+
132  ::DrawTexturePro(*this, sourceRec, destRec, origin, rotation, tint);
+
133  return *this;
+
134  }
+
135  inline Texture2D& Draw(::NPatchInfo nPatchInfo, ::Rectangle destRec, ::Vector2 origin, float rotation = 0, ::Color tint = WHITE) {
+
136  ::DrawTextureNPatch(*this, nPatchInfo, destRec, origin, rotation, tint);
+
137  return *this;
+
138  }
+
139 
+
140  inline Texture2D& Draw(::Vector3 position, float width, float height, float length, ::Color color = WHITE) {
+
141  ::DrawCubeTexture(*this, position, width, height, length, color);
+
142  return *this;
+
143  }
+
144 
+
145  inline Texture2D& DrawTiled(Rectangle sourceRec, Rectangle destRec, Vector2 origin, float rotation, float scale, Color tint = WHITE) {
+
146  ::DrawTextureTiled(*this, sourceRec, destRec, origin, rotation, scale, tint);
+
147  return *this;
+
148  }
+
149 
+
150  inline Texture2D& SetMaterialTexture(Material *material, int mapType) {
+
151  ::SetMaterialTexture(material, mapType, *this);
+
152  return *this;
+
153  }
+
154 
+
155  static int GetPixelDataSize(int width, int height, int format) {
+
156  return ::GetPixelDataSize(width, height, format);
+
157  }
+
158  };
+
159 
+
160  // Create the Texture2D aliases.
+ + +
163 }
+
164 
+
165 #endif
+
+
void LoadTextureCubemap(::Image &image, int layoutType)
Definition: Texture2D.hpp:65
+
Provides all the classes associated with raylib-cpp.
Definition: AudioDevice.hpp:14
+
Texture2D TextureCubemap
Definition: Texture2D.hpp:162
+
void Load(const std::string &fileName)
Definition: Texture2D.hpp:69
+
Image GetTextureData()
Definition: Texture2D.hpp:87
+ +
Texture2D & Draw(::NPatchInfo nPatchInfo, ::Rectangle destRec, ::Vector2 origin, float rotation=0, ::Color tint=WHITE)
Definition: Texture2D.hpp:135
+ +
Texture2D(::Image &image)
Definition: Texture2D.hpp:25
+
Texture2D & Draw(::Vector3 position, float width, float height, float length, ::Color color=WHITE)
Definition: Texture2D.hpp:140
+
Texture2D & DrawTiled(Rectangle sourceRec, Rectangle destRec, Vector2 origin, float rotation, float scale, Color tint=WHITE)
Definition: Texture2D.hpp:145
+
Texture2D & Update(const void *pixels)
Definition: Texture2D.hpp:77
+
Texture2D & Draw(::Vector2 position, ::Color tint=WHITE)
Definition: Texture2D.hpp:114
+ +
Texture2D Texture
Definition: Texture2D.hpp:161
+
Texture2D & Draw(int posX, int posY, ::Color tint=WHITE)
Definition: Texture2D.hpp:109
+
Texture2D & SetWrap(int wrapMode)
Definition: Texture2D.hpp:104
+
static int GetPixelDataSize(int width, int height, int format)
Definition: Texture2D.hpp:155
+
Texture2D(const std::string &fileName)
Definition: Texture2D.hpp:29
+ + + + + +
Texture2D & SetFilter(int filterMode)
Definition: Texture2D.hpp:99
+
Texture2D & GenMipmaps()
Definition: Texture2D.hpp:94
+
Texture2D & operator=(const Texture2D &texture)
Definition: Texture2D.hpp:56
+
Texture2D & Draw(::Rectangle sourceRec, ::Vector2 position, ::Color tint=WHITE)
Definition: Texture2D.hpp:123
+
void LoadFromImage(::Image &image)
Definition: Texture2D.hpp:61
+
Texture2D & Draw(::Vector2 position, float rotation, float scale=1.0f, ::Color tint=WHITE)
Definition: Texture2D.hpp:118
+
Texture2D & UpdateRec(Rectangle rec, const void *pixels)
Definition: Texture2D.hpp:82
+
Texture2D & Draw(::Vector2 tiling, ::Vector2 offset, ::Rectangle quad, ::Color tint=WHITE)
Definition: Texture2D.hpp:127
+
Texture2D & Draw(::Rectangle sourceRec, ::Rectangle destRec, ::Vector2 origin, float rotation=0, ::Color tint=WHITE)
Definition: Texture2D.hpp:131
+ +
Texture2D & SetMaterialTexture(Material *material, int mapType)
Definition: Texture2D.hpp:150
+ +
void set(::Texture2D texture)
Definition: Texture2D.hpp:37
+ + + + diff --git a/raylib-cpp/docs/_texture_8hpp_source.html b/raylib-cpp/docs/_texture_8hpp_source.html new file mode 100644 index 00000000..0e0beb11 --- /dev/null +++ b/raylib-cpp/docs/_texture_8hpp_source.html @@ -0,0 +1,291 @@ + + + + + + + +raylib-cpp: Texture.hpp Source File + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Texture.hpp
+
+
+
1 #ifndef RAYLIB_CPP_INCLUDE_TEXTURE_HPP_
+
2 #define RAYLIB_CPP_INCLUDE_TEXTURE_HPP_
+
3 
+
4 #include <string>
+
5 
+
6 #include "./raylib.hpp"
+
7 #include "./raylib-cpp-utils.hpp"
+
8 #include "./Vector2.hpp"
+
9 #include "./Material.hpp"
+
10 
+
11 namespace raylib {
+
15 class Texture : public ::Texture {
+
16  public:
+
17  Texture(const ::Texture& texture) {
+
18  set(texture);
+
19  }
+
20 
+
21  Texture(const ::Image& image) {
+
22  LoadFromImage(image);
+
23  }
+
24 
+
30  Texture(const ::Image& image, int layout) {
+
31  LoadCubemap(image, layout);
+
32  }
+
33 
+
37  Texture(const std::string& fileName) {
+
38  Load(fileName);
+
39  }
+
40 
+
41  ~Texture() {
+
42  Unload();
+
43  }
+
44 
+
45  GETTERSETTER(unsigned int, Id, id)
+
46  GETTERSETTER(int, Width, width)
+
47  GETTERSETTER(int, Height, height)
+
48  GETTERSETTER(int, Mipmaps, mipmaps)
+
49  GETTERSETTER(int, Format, format)
+
50 
+
51  Texture& operator=(const ::Texture& texture) {
+
52  set(texture);
+
53  return *this;
+
54  }
+
55 
+
59  inline ::Vector2 GetSize() {
+
60  return {static_cast<float>(width), static_cast<float>(height)};
+
61  }
+
62 
+
66  void LoadFromImage(const ::Image& image) {
+
67  set(::LoadTextureFromImage(image));
+
68  }
+
69 
+
73  void LoadCubemap(const ::Image& image, int layoutType) {
+
74  set(::LoadTextureCubemap(image, layoutType));
+
75  }
+
76 
+
80  void Load(const std::string& fileName) {
+
81  set(::LoadTexture(fileName.c_str()));
+
82  }
+
83 
+
87  inline void Unload() {
+
88  ::UnloadTexture(*this);
+
89  }
+
90 
+
94  inline Texture& Update(const void *pixels) {
+
95  ::UpdateTexture(*this, pixels);
+
96  return *this;
+
97  }
+
98 
+
102  inline Texture& UpdateRec(::Rectangle rec, const void *pixels) {
+
103  UpdateTextureRec(*this, rec, pixels);
+
104  return *this;
+
105  }
+
106 
+
110  inline ::Image GetData() const {
+
111  return ::GetTextureData(*this);
+
112  }
+
113 
+
117  inline operator raylib::Image() {
+
118  return GetData();
+
119  }
+
120 
+
124  inline Texture& GenMipmaps() {
+
125  ::GenTextureMipmaps(this);
+
126  return *this;
+
127  }
+
128 
+
132  inline Texture& SetFilter(int filterMode) {
+
133  ::SetTextureFilter(*this, filterMode);
+
134  return *this;
+
135  }
+
136 
+
140  inline Texture& SetWrap(int wrapMode) {
+
141  ::SetTextureWrap(*this, wrapMode);
+
142  return *this;
+
143  }
+
144 
+
148  inline Texture& Draw() {
+
149  return Draw(0, 0);
+
150  }
+
151 
+
155  inline Texture& Draw(int posX, int posY, ::Color tint = {255, 255, 255, 255}) {
+
156  ::DrawTexture(*this, posX, posY, tint);
+
157  return *this;
+
158  }
+
159 
+
160  inline Texture& Draw(::Vector2 position, ::Color tint = {255, 255, 255, 255}) {
+
161  ::DrawTextureV(*this, position, tint);
+
162  return *this;
+
163  }
+
164 
+
165  inline Texture& Draw(::Vector2 position, float rotation, float scale = 1.0f,
+
166  ::Color tint = {255, 255, 255, 255}) {
+
167  ::DrawTextureEx(*this, position, rotation, scale, tint);
+
168  return *this;
+
169  }
+
170 
+
171  inline Texture& Draw(::Rectangle sourceRec, ::Vector2 position = {0, 0},
+
172  ::Color tint = {255, 255, 255, 255}) {
+
173  ::DrawTextureRec(*this, sourceRec, position, tint);
+
174  return *this;
+
175  }
+
176 
+
177  inline Texture& Draw(::Vector2 tiling, ::Vector2 offset, ::Rectangle quad,
+
178  ::Color tint = {255, 255, 255, 255}) {
+
179  ::DrawTextureQuad(*this, tiling, offset, quad, tint);
+
180  return *this;
+
181  }
+
182 
+
183  inline Texture& Draw(::Rectangle sourceRec, ::Rectangle destRec, ::Vector2 origin = {0, 0},
+
184  float rotation = 0, ::Color tint = {255, 255, 255, 255}) {
+
185  ::DrawTexturePro(*this, sourceRec, destRec, origin, rotation, tint);
+
186  return *this;
+
187  }
+
188 
+
189  inline Texture& Draw(::NPatchInfo nPatchInfo, ::Rectangle destRec, ::Vector2 origin = {0, 0},
+
190  float rotation = 0, ::Color tint = {255, 255, 255, 255}) {
+
191  ::DrawTextureNPatch(*this, nPatchInfo, destRec, origin, rotation, tint);
+
192  return *this;
+
193  }
+
194 
+
195  inline Texture& Draw(::Vector3 position, float width, float height, float length,
+
196  ::Color tint = {255, 255, 255, 255}) {
+
197  ::DrawCubeTexture(*this, position, width, height, length, tint);
+
198  return *this;
+
199  }
+
200 
+
201  inline Texture& DrawTiled(::Rectangle sourceRec, ::Rectangle destRec, ::Vector2 origin = {0, 0},
+
202  float rotation = 0, float scale = 1, Color tint = {255, 255, 255, 255}) {
+
203  ::DrawTextureTiled(*this, sourceRec, destRec, origin, rotation, scale, tint);
+
204  return *this;
+
205  }
+
206 
+
207  inline Texture& DrawPoly(Vector2 center, Vector2 *points,
+
208  Vector2 *texcoords, int pointsCount,
+
209  Color tint = {255, 255, 255, 255}) {
+
210  ::DrawTexturePoly(*this, center, points, texcoords, pointsCount, tint);
+
211  return *this;
+
212  }
+
213 
+
217  inline Texture& SetMaterial(::Material *material, int mapType = MATERIAL_MAP_NORMAL) {
+
218  ::SetMaterialTexture(material, mapType, *this);
+
219  return *this;
+
220  }
+
221 
+
222  inline Texture& SetMaterial(const ::Material& material, int mapType = MATERIAL_MAP_NORMAL) {
+
223  ::SetMaterialTexture((::Material*)(&material), mapType, *this);
+
224  return *this;
+
225  }
+
226 
+
227  private:
+
228  inline void set(const ::Texture& texture) {
+
229  id = texture.id;
+
230  width = texture.width;
+
231  height = texture.height;
+
232  mipmaps = texture.mipmaps;
+
233  format = texture.format;
+
234  }
+
235 };
+
236 
+
237 // Create the Texture aliases.
+
238 typedef Texture Texture2D;
+
239 typedef Texture TextureCubemap;
+
240 
+
241 } // namespace raylib
+
242 
+
243 #endif // RAYLIB_CPP_INCLUDE_TEXTURE_HPP_
+
+
All raylib-cpp classes and functions appear in the raylib namespace.
Definition: AudioDevice.hpp:7
+
Texture & SetWrap(int wrapMode)
Set texture wrapping mode.
Definition: Texture.hpp:140
+
Texture & Draw(int posX, int posY, ::Color tint={255, 255, 255, 255})
Draw a Texture2D.
Definition: Texture.hpp:155
+
Image type, bpp always RGBA (32bit)
Definition: Image.hpp:15
+
inline ::Vector2 GetSize()
Retrieve the width and height of the texture.
Definition: Texture.hpp:59
+
void Load(const std::string &fileName)
Load texture from file into GPU memory (VRAM)
Definition: Texture.hpp:80
+
Rectangle type.
Definition: Rectangle.hpp:12
+
void LoadFromImage(const ::Image &image)
Load texture from image data.
Definition: Texture.hpp:66
+
Texture(const std::string &fileName)
Load texture from file into GPU memory (VRAM)
Definition: Texture.hpp:37
+
Texture(const ::Image &image, int layout)
Load cubemap from image, multiple image cubemap layouts supported.
Definition: Texture.hpp:30
+
Texture & SetFilter(int filterMode)
Set texture scaling filter mode.
Definition: Texture.hpp:132
+
void LoadCubemap(const ::Image &image, int layoutType)
Load cubemap from image, multiple image cubemap layouts supported.
Definition: Texture.hpp:73
+
Color type, RGBA (32bit)
Definition: Color.hpp:14
+
inline ::Image GetData() const
Get pixel data from GPU texture and return an Image.
Definition: Texture.hpp:110
+
Texture & Draw()
Draws the texture at the top left corner of the screen.
Definition: Texture.hpp:148
+
Texture & SetMaterial(::Material *material, int mapType=MATERIAL_MAP_NORMAL)
Set texture for a material map type (MAP_DIFFUSE, MAP_SPECULAR...)
Definition: Texture.hpp:217
+
Texture & UpdateRec(::Rectangle rec, const void *pixels)
Update GPU texture rectangle with new data.
Definition: Texture.hpp:102
+
Texture type.
Definition: Texture.hpp:15
+
void Unload()
Unload texture from GPU memory (VRAM)
Definition: Texture.hpp:87
+
Texture & GenMipmaps()
Generate GPU mipmaps for a texture.
Definition: Texture.hpp:124
+
Material type (generic)
Definition: Material.hpp:14
+
Texture & Update(const void *pixels)
Update GPU texture with new data.
Definition: Texture.hpp:94
+ + + + diff --git a/raylib-cpp/docs/_vector2_8hpp_source.html b/raylib-cpp/docs/_vector2_8hpp_source.html new file mode 100644 index 00000000..abea8db7 --- /dev/null +++ b/raylib-cpp/docs/_vector2_8hpp_source.html @@ -0,0 +1,372 @@ + + + + + + + +raylib-cpp: Vector2.hpp Source File + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Vector2.hpp
+
+
+
1 #ifndef RAYLIB_CPP_INCLUDE_VECTOR2_HPP_
+
2 #define RAYLIB_CPP_INCLUDE_VECTOR2_HPP_
+
3 
+
4 #ifndef RAYLIB_CPP_NO_MATH
+
5 #include <cmath>
+
6 #endif
+
7 
+
8 #include "./raylib.hpp"
+
9 #include "./raymath.hpp"
+
10 #include "./raylib-cpp-utils.hpp"
+
11 
+
12 namespace raylib {
+
16 class Vector2 : public ::Vector2 {
+
17  public:
+
18  Vector2(const ::Vector2& vec) {
+
19  set(vec);
+
20  }
+
21 
+
22  Vector2(float x, float y) : ::Vector2{x, y} {}
+
23  Vector2(float x) : ::Vector2{x, 0} {}
+
24  Vector2() : ::Vector2{0, 0} {}
+
25 
+
26  GETTERSETTER(float, X, x)
+
27  GETTERSETTER(float, Y, y)
+
28 
+
29  Vector2& operator=(const ::Vector2& vector2) {
+
30  set(vector2);
+
31  return *this;
+
32  }
+
33 
+
34  bool operator==(const ::Vector2& other) {
+
35  return x == other.x
+
36  && y == other.y;
+
37  }
+
38 
+
39 #ifndef RAYLIB_CPP_NO_MATH
+
40  Vector2 Add(const ::Vector2& vector2) const {
+
41  return Vector2Add(*this, vector2);
+
42  }
+
43 
+
44  Vector2 operator+(const ::Vector2& vector2) {
+
45  return Vector2Add(*this, vector2);
+
46  }
+
47 
+
48  Vector2 Subtract(const ::Vector2& vector2) const {
+
49  return Vector2Subtract(*this, vector2);
+
50  }
+
51 
+
52  Vector2 operator-(const ::Vector2& vector2) {
+
53  return Vector2Subtract(*this, vector2);
+
54  }
+
55 
+
56  Vector2 Negate() const {
+
57  return Vector2Negate(*this);
+
58  }
+
59 
+
60  Vector2 operator-() {
+
61  return Vector2Negate(*this);
+
62  }
+
63 
+
64  Vector2 Multiply(const ::Vector2& vector2) const {
+
65  return Vector2Multiply(*this, vector2);
+
66  }
+
67 
+
68  Vector2 operator*(const ::Vector2& vector2) {
+
69  return Vector2Multiply(*this, vector2);
+
70  }
+
71 
+
72  Vector2 Scale(const float scale) const {
+
73  return Vector2Scale(*this, scale);
+
74  }
+
75 
+
76  Vector2 operator*(const float scale) {
+
77  return Vector2Scale(*this, scale);
+
78  }
+
79 
+
80  Vector2 Divide(const ::Vector2& vector2) const {
+
81  return Vector2Divide(*this, vector2);
+
82  }
+
83 
+
84  Vector2 operator/(const ::Vector2& vector2) {
+
85  return Vector2Divide(*this, vector2);
+
86  }
+
87 
+
88  Vector2& Divide(const float div) {
+
89  x /= div;
+
90  y /= div;
+
91 
+
92  return *this;
+
93  }
+
94 
+
95  Vector2& operator/(const float div) {
+
96  x /= div;
+
97  y /= div;
+
98 
+
99  return *this;
+
100  }
+
101 
+
102  Vector2& operator+=(const ::Vector2& vector2) {
+
103  set(Vector2Add(*this, vector2));
+
104 
+
105  return *this;
+
106  }
+
107 
+
108  Vector2& operator-=(const ::Vector2& vector2) {
+
109  set(Vector2Subtract(*this, vector2));
+
110 
+
111  return *this;
+
112  }
+
113 
+
114 
+
115  Vector2& operator*=(const ::Vector2& vector2) {
+
116  set(Vector2Multiply(*this, vector2));
+
117 
+
118  return *this;
+
119  }
+
120 
+
121  Vector2& operator*=(const float scale) {
+
122  set(Vector2Scale(*this, scale));
+
123 
+
124  return *this;
+
125  }
+
126 
+
127  Vector2& operator/=(const ::Vector2& vector2) {
+
128  set(Vector2Divide(*this, vector2));
+
129 
+
130  return *this;
+
131  }
+
132 
+
133  Vector2& operator/=(const float div) {
+
134  this->x /= div;
+
135  this->y /= div;
+
136 
+
137  return *this;
+
138  }
+
139 
+
143  float Length() const {
+
144  return Vector2Length(*this);
+
145  }
+
146 
+
150  float LengthSqr() const {
+
151  return Vector2LengthSqr(*this);
+
152  }
+
153 
+
157  Vector2 Normalize() const {
+
158  return Vector2Normalize(*this);
+
159  }
+
160 
+
164  float DotProduct(const ::Vector2& vector2) const {
+
165  return Vector2DotProduct(*this, vector2);
+
166  }
+
167 
+
171  float Angle(const ::Vector2& vector2) const {
+
172  return Vector2Angle(*this, vector2);
+
173  }
+
174 
+
178  float Distance(const ::Vector2& vector2) const {
+
179  return Vector2Distance(*this, vector2);
+
180  }
+
181 
+
185  Vector2 Lerp(const ::Vector2& vector2, float amount) const {
+
186  return Vector2Lerp(*this, vector2, amount);
+
187  }
+
188 
+
192  Vector2 Reflect(const ::Vector2& normal) const {
+
193  return Vector2Reflect(*this, normal);
+
194  }
+
195 
+
199  Vector2 Rotate(float degrees) const {
+
200  return Vector2Rotate(*this, degrees);
+
201  }
+
202 
+
206  Vector2 MoveTowards(const ::Vector2& target, float maxDistance) const {
+
207  return Vector2MoveTowards(*this, target, maxDistance);
+
208  }
+
209 
+
213  static Vector2 Zero() {
+
214  return Vector2Zero();
+
215  }
+
216 
+
220  static Vector2 One() {
+
221  return Vector2One();
+
222  }
+
223 #endif
+
224 
+
225  inline Vector2& DrawPixel(::Color color) {
+
226  ::DrawPixelV(*this, color);
+
227  return *this;
+
228  }
+
229 
+
230  inline Vector2& DrawLine(::Vector2 endPos, ::Color color) {
+
231  ::DrawLineV(*this, endPos, color);
+
232  return *this;
+
233  }
+
234 
+
235  inline Vector2& DrawLine(::Vector2 endPos, float thick, ::Color color) {
+
236  ::DrawLineEx(*this, endPos, thick, color);
+
237  return *this;
+
238  }
+
239 
+
240  inline Vector2& DrawLineBezier(::Vector2 endPos, float thick, ::Color color) {
+
241  ::DrawLineBezier(*this, endPos, thick, color);
+
242  return *this;
+
243  }
+
244 
+ +
249  ::Vector2 endPos,
+
250  ::Vector2 controlPos,
+
251  float thick,
+
252  ::Color color) {
+
253  ::DrawLineBezierQuad(*this, endPos, controlPos, thick, color);
+
254  return *this;
+
255  }
+
256 
+
260  inline Vector2& DrawCircle(float radius, ::Color color) {
+
261  ::DrawCircleV(*this, radius, color);
+
262  return *this;
+
263  }
+
264 
+
265  inline Vector2& DrawRectangle(::Vector2 size, ::Color color) {
+
266  ::DrawRectangleV(*this, size, color);
+
267  return *this;
+
268  }
+
269 
+
270  inline Vector2& DrawPoly(int sides, float radius, float rotation, ::Color color) {
+
271  ::DrawPoly(*this, sides, radius, rotation, color);
+
272  return *this;
+
273  }
+
274 
+
278  inline bool CheckCollisionCircle(float radius1, ::Vector2 center2, float radius2) const {
+
279  return ::CheckCollisionCircles(*this, radius1, center2, radius2);
+
280  }
+
281 
+
285  inline bool CheckCollisionCircle(float radius, ::Rectangle rec) const {
+
286  return ::CheckCollisionCircleRec(*this, radius, rec);
+
287  }
+
288 
+
292  inline bool CheckCollision(::Rectangle rec) const {
+
293  return ::CheckCollisionPointRec(*this, rec);
+
294  }
+
295 
+
299  inline bool CheckCollision(::Vector2 center, float radius) const {
+
300  return ::CheckCollisionPointCircle(*this, center, radius);
+
301  }
+
302 
+
306  inline bool CheckCollision(::Vector2 p1, ::Vector2 p2, ::Vector2 p3) const {
+
307  return ::CheckCollisionPointTriangle(*this, p1, p2, p3);
+
308  }
+
309 
+
313  inline bool CheckCollisionLines(
+
314  ::Vector2 endPos1,
+
315  ::Vector2 startPos2, ::Vector2 endPos2,
+
316  ::Vector2 *collisionPoint) const {
+
317  return ::CheckCollisionLines(*this, endPos1, startPos2, endPos2, collisionPoint);
+
318  }
+
319 
+
320  private:
+
321  inline void set(const ::Vector2& vec) {
+
322  x = vec.x;
+
323  y = vec.y;
+
324  }
+
325 };
+
326 
+
327 } // namespace raylib
+
328 
+
329 #endif // RAYLIB_CPP_INCLUDE_VECTOR2_HPP_
+
+
bool CheckCollision(::Vector2 p1, ::Vector2 p2, ::Vector2 p3) const
Check if point is inside a triangle.
Definition: Vector2.hpp:306
+
All raylib-cpp classes and functions appear in the raylib namespace.
Definition: AudioDevice.hpp:7
+
Vector2 Reflect(const ::Vector2 &normal) const
Calculate reflected vector to normal.
Definition: Vector2.hpp:192
+
Vector2 MoveTowards(const ::Vector2 &target, float maxDistance) const
Move Vector towards target.
Definition: Vector2.hpp:206
+
float Length() const
Calculate vector length.
Definition: Vector2.hpp:143
+
Vector2 Normalize() const
Normalize provided vector.
Definition: Vector2.hpp:157
+
static Vector2 Zero()
Vector with components value 0.0f.
Definition: Vector2.hpp:213
+
bool CheckCollision(::Rectangle rec) const
Check if point is inside rectangle.
Definition: Vector2.hpp:292
+
bool CheckCollision(::Vector2 center, float radius) const
Check if point is inside circle.
Definition: Vector2.hpp:299
+
Vector2 Lerp(const ::Vector2 &vector2, float amount) const
Calculate linear interpolation between two vectors.
Definition: Vector2.hpp:185
+
static Vector2 One()
Vector with components value 1.0f.
Definition: Vector2.hpp:220
+
float LengthSqr() const
Calculate vector square length.
Definition: Vector2.hpp:150
+
Rectangle type.
Definition: Rectangle.hpp:12
+
Vector2 type.
Definition: Vector2.hpp:16
+
Vector2 & DrawLineBezierQuad(::Vector2 endPos, ::Vector2 controlPos, float thick, ::Color color)
Draw line using quadratic bezier curves with a control point.
Definition: Vector2.hpp:248
+
bool CheckCollisionCircle(float radius1, ::Vector2 center2, float radius2) const
Check collision between two circles.
Definition: Vector2.hpp:278
+
Color type, RGBA (32bit)
Definition: Color.hpp:14
+
bool CheckCollisionCircle(float radius, ::Rectangle rec) const
Check collision between circle and rectangle.
Definition: Vector2.hpp:285
+
Vector2 Rotate(float degrees) const
Rotate Vector by float in Degrees.
Definition: Vector2.hpp:199
+
float Distance(const ::Vector2 &vector2) const
Calculate distance between two vectors.
Definition: Vector2.hpp:178
+
float Angle(const ::Vector2 &vector2) const
Calculate angle from two vectors in X-axis.
Definition: Vector2.hpp:171
+
float DotProduct(const ::Vector2 &vector2) const
Calculate two vectors dot product.
Definition: Vector2.hpp:164
+
Vector2 & DrawCircle(float radius, ::Color color)
Draw a color-filled circle (Vector version)
Definition: Vector2.hpp:260
+
bool CheckCollisionLines(::Vector2 endPos1, ::Vector2 startPos2, ::Vector2 endPos2, ::Vector2 *collisionPoint) const
Check the collision between two lines defined by two points each, returns collision point by referenc...
Definition: Vector2.hpp:313
+ + + + diff --git a/raylib-cpp/docs/_vector3_8hpp_source.html b/raylib-cpp/docs/_vector3_8hpp_source.html new file mode 100644 index 00000000..d4b5058e --- /dev/null +++ b/raylib-cpp/docs/_vector3_8hpp_source.html @@ -0,0 +1,390 @@ + + + + + + + +raylib-cpp: Vector3.hpp Source File + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Vector3.hpp
+
+
+
1 #ifndef RAYLIB_CPP_INCLUDE_VECTOR3_HPP_
+
2 #define RAYLIB_CPP_INCLUDE_VECTOR3_HPP_
+
3 
+
4 #ifndef RAYLIB_CPP_NO_MATH
+
5 #include <cmath>
+
6 #endif
+
7 
+
8 #include "./raylib.hpp"
+
9 #include "./raymath.hpp"
+
10 #include "./raylib-cpp-utils.hpp"
+
11 
+
12 namespace raylib {
+
16 class Vector3 : public ::Vector3 {
+
17  public:
+
18  Vector3(const ::Vector3& vec) {
+
19  set(vec);
+
20  }
+
21 
+
22  Vector3(float x, float y, float z) : ::Vector3{x, y, z} {}
+
23  Vector3(float x, float y) : ::Vector3{x, y, 0} {}
+
24  Vector3(float x) : ::Vector3{x, 0, 0} {}
+
25  Vector3() {}
+
26 
+
27  Vector3(::Color color) {
+
28  set(ColorToHSV(color));
+
29  }
+
30 
+
31  GETTERSETTER(float, X, x)
+
32  GETTERSETTER(float, Y, y)
+
33  GETTERSETTER(float, Z, z)
+
34 
+
35  Vector3& operator=(const ::Vector3& vector3) {
+
36  set(vector3);
+
37  return *this;
+
38  }
+
39 
+
40  bool operator==(const ::Vector3& other) {
+
41  return x == other.x
+
42  && y == other.y
+
43  && z == other.z;
+
44  }
+
45 
+
46 #ifndef RAYLIB_CPP_NO_MATH
+
47  Vector3 Add(const ::Vector3& vector3) {
+
48  return Vector3Add(*this, vector3);
+
49  }
+
50 
+
51  Vector3 operator+(const ::Vector3& vector3) {
+
52  return Vector3Add(*this, vector3);
+
53  }
+
54 
+
55  Vector3 Subtract(const ::Vector3& vector3) {
+
56  return Vector3Subtract(*this, vector3);
+
57  }
+
58 
+
59  Vector3 operator-(const ::Vector3& vector3) {
+
60  return Vector3Subtract(*this, vector3);
+
61  }
+
62 
+
63  Vector3 Negate() {
+
64  return Vector3Negate(*this);
+
65  }
+
66 
+
67  Vector3 operator-() {
+
68  return Vector3Negate(*this);
+
69  }
+
70 
+
71  Vector3 Multiply(const ::Vector3& vector3) {
+
72  return Vector3Multiply(*this, vector3);
+
73  }
+
74 
+
75  Vector3 operator*(const ::Vector3& vector3) {
+
76  return Vector3Multiply(*this, vector3);
+
77  }
+
78 
+
79  Vector3 Scale(const float scale) {
+
80  return Vector3Scale(*this, scale);
+
81  }
+
82 
+
83  Vector3 operator*(const float scale) {
+
84  return Vector3Scale(*this, scale);
+
85  }
+
86 
+
87  Vector3 Divide(const ::Vector3& vector3) {
+
88  return Vector3Divide(*this, vector3);
+
89  }
+
90 
+
91  Vector3 operator/(const ::Vector3& vector3) {
+
92  return Vector3Divide(*this, vector3);
+
93  }
+
94 
+
95  Vector3& Divide(const float div) {
+
96  x /= div;
+
97  y /= div;
+
98  z /= div;
+
99 
+
100  return *this;
+
101  }
+
102 
+
103  Vector3 operator/(const float div) {
+
104  return Divide(div);
+
105  }
+
106 
+
107  Vector3& operator+=(const ::Vector3& vector3) {
+
108  set(Vector3Add(*this, vector3));
+
109 
+
110  return *this;
+
111  }
+
112 
+
113  Vector3& operator-=(const ::Vector3& vector3) {
+
114  set(Vector3Subtract(*this, vector3));
+
115 
+
116  return *this;
+
117  }
+
118 
+
119 
+
120  Vector3& operator*=(const ::Vector3& vector3) {
+
121  set(Vector3Multiply(*this, vector3));
+
122 
+
123  return *this;
+
124  }
+
125 
+
126  Vector3& operator*=(const float scale) {
+
127  set(Vector3Scale(*this, scale));
+
128 
+
129  return *this;
+
130  }
+
131 
+
132  Vector3& operator/=(const ::Vector3& vector3) {
+
133  x /= vector3.x;
+
134  y /= vector3.y;
+
135  z /= vector3.z;
+
136 
+
137  return *this;
+
138  }
+
139 
+
140  Vector3& operator/=(const float div) {
+
141  x /= div;
+
142  y /= div;
+
143  z /= div;
+
144 
+
145  return *this;
+
146  }
+
147 
+
148  float Length() const {
+
149  return Vector3Length(*this);
+
150  }
+
151 
+
152  Vector3 Normalize() {
+
153  return Vector3Normalize(*this);
+
154  }
+
155 
+
156  float DotProduct(const ::Vector3& vector3) {
+
157  return Vector3DotProduct(*this, vector3);
+
158  }
+
159 
+
160  float Distance(const ::Vector3& vector3) {
+
161  return Vector3Distance(*this, vector3);
+
162  }
+
163 
+
164  Vector3 Lerp(const ::Vector3& vector3, const float amount) {
+
165  return Vector3Lerp(*this, vector3, amount);
+
166  }
+
167 
+
168  Vector3 CrossProduct(const ::Vector3& vector3) {
+
169  return Vector3CrossProduct(*this, vector3);
+
170  }
+
171 
+
172  Vector3 Perpendicular() {
+
173  return Vector3Perpendicular(*this);
+
174  }
+
175 
+
176  void OrthoNormalize(::Vector3* vector3) {
+
177  Vector3OrthoNormalize(this, vector3);
+
178  }
+
179 
+
180  Vector3 Transform(const ::Matrix& matrix) {
+
181  return Vector3Transform(*this, matrix);
+
182  }
+
183 
+
184  Vector3 RotateByQuaternion(const ::Quaternion& quaternion) {
+
185  return Vector3RotateByQuaternion(*this, quaternion);
+
186  }
+
187 
+
188  Vector3 Reflect(const ::Vector3& normal) {
+
189  return Vector3Reflect(*this, normal);
+
190  }
+
191 
+
192  Vector3 Min(const ::Vector3& vector3) {
+
193  return Vector3Min(*this, vector3);
+
194  }
+
195 
+
196  Vector3 Max(const ::Vector3& vector3) {
+
197  return Vector3Max(*this, vector3);
+
198  }
+
199 
+
200  Vector3 Barycenter(const ::Vector3& a, const ::Vector3& b, const ::Vector3& c) {
+
201  return Vector3Barycenter(*this, a, b, c);
+
202  }
+
203 
+
204  static Vector3 Zero() {
+
205  return Vector3Zero();
+
206  }
+
207 
+
208  static Vector3 One() {
+
209  return Vector3One();
+
210  }
+
211 #endif
+
212 
+
213  inline Vector3& DrawLine3D(const ::Vector3& endPos, ::Color color) {
+
214  ::DrawLine3D(*this, endPos, color);
+
215  return *this;
+
216  }
+
217 
+
218  inline Vector3& DrawPoint3D(::Color color) {
+
219  ::DrawPoint3D(*this, color);
+
220  return *this;
+
221  }
+
222 
+
223  inline Vector3& DrawCircle3D(
+
224  float radius,
+
225  const ::Vector3& rotationAxis,
+
226  float rotationAngle,
+
227  Color color) {
+
228  ::DrawCircle3D(*this, radius, rotationAxis, rotationAngle, color);
+
229  return *this;
+
230  }
+
231 
+
232  inline Vector3& DrawCube(float width, float height, float length, ::Color color) {
+
233  ::DrawCube(*this, width, height, length, color);
+
234  return *this;
+
235  }
+
236 
+
237  inline Vector3& DrawCube(const ::Vector3& size, ::Color color) {
+
238  ::DrawCubeV(*this, size, color);
+
239  return *this;
+
240  }
+
241 
+
242  inline Vector3& DrawCubeWires(float width, float height, float length, ::Color color) {
+
243  ::DrawCubeWires(*this, width, height, length, color);
+
244  return *this;
+
245  }
+
246 
+
247  inline Vector3& DrawCubeWires(const ::Vector3& size, ::Color color) {
+
248  ::DrawCubeWiresV(*this, size, color);
+
249  return *this;
+
250  }
+
251 
+
252  inline Vector3& DrawCubeTexture(
+
253  const ::Texture2D& texture,
+
254  float width,
+
255  float height,
+
256  float length,
+
257  ::Color color) {
+
258  ::DrawCubeTexture(texture, *this, width, height, length, color);
+
259  return *this;
+
260  }
+
261 
+
262  inline Vector3& DrawSphere(float radius, ::Color color) {
+
263  ::DrawSphere(*this, radius, color);
+
264  return *this;
+
265  }
+
266 
+
267  inline Vector3& DrawSphere(float radius, int rings, int slices, ::Color color) {
+
268  ::DrawSphereEx(*this, radius, rings, slices, color);
+
269  return *this;
+
270  }
+
271 
+
272  inline Vector3& DrawSphereWires(float radius, int rings, int slices, ::Color color) {
+
273  ::DrawSphereWires(*this, radius, rings, slices, color);
+
274  return *this;
+
275  }
+
276 
+
277  inline Vector3& DrawCylinder(float radiusTop, float radiusBottom, float height,
+
278  int slices, Color color) {
+
279  ::DrawCylinder(*this, radiusTop, radiusBottom, height, slices, color);
+
280  return *this;
+
281  }
+
282 
+
283  inline Vector3& DrawCylinderWires(float radiusTop, float radiusBottom, float height,
+
284  int slices, Color color) {
+
285  ::DrawCylinderWires(*this, radiusTop, radiusBottom, height, slices, color);
+
286  return *this;
+
287  }
+
288 
+
289  inline Vector3& DrawPlane(const ::Vector2& size, ::Color color) {
+
290  ::DrawPlane(*this, size, color);
+
291  return *this;
+
292  }
+
293 
+
297  inline bool CheckCollision(float radius1, const ::Vector3& center2, float radius2) {
+
298  return CheckCollisionSpheres(*this, radius1, center2, radius2);
+
299  }
+
300 
+
301  private:
+
302  inline void set(const ::Vector3& vec) {
+
303  x = vec.x;
+
304  y = vec.y;
+
305  z = vec.z;
+
306  }
+
307 };
+
308 } // namespace raylib
+
309 
+
310 #endif // RAYLIB_CPP_INCLUDE_VECTOR3_HPP_
+
+
All raylib-cpp classes and functions appear in the raylib namespace.
Definition: AudioDevice.hpp:7
+
Vector3 type.
Definition: Vector3.hpp:16
+
Color type, RGBA (32bit)
Definition: Color.hpp:14
+
bool CheckCollision(float radius1, const ::Vector3 &center2, float radius2)
Detect collision between two spheres.
Definition: Vector3.hpp:297
+ + + + diff --git a/raylib-cpp/docs/_vector4_8hpp_source.html b/raylib-cpp/docs/_vector4_8hpp_source.html new file mode 100644 index 00000000..82e82f75 --- /dev/null +++ b/raylib-cpp/docs/_vector4_8hpp_source.html @@ -0,0 +1,246 @@ + + + + + + + +raylib-cpp: Vector4.hpp Source File + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Vector4.hpp
+
+
+
1 #ifndef RAYLIB_CPP_INCLUDE_VECTOR4_HPP_
+
2 #define RAYLIB_CPP_INCLUDE_VECTOR4_HPP_
+
3 
+
4 #ifndef RAYLIB_CPP_NO_MATH
+
5 #include <cmath>
+
6 #include <utility>
+
7 #endif
+
8 
+
9 #include "./raylib.hpp"
+
10 #include "./raymath.hpp"
+
11 #include "./raylib-cpp-utils.hpp"
+
12 
+
13 namespace raylib {
+
17 class Vector4 : public ::Vector4 {
+
18  public:
+
19  Vector4(const ::Vector4& vec) {
+
20  set(vec);
+
21  }
+
22 
+
23  Vector4(float x, float y, float z, float w) : ::Vector4{x, y, z, w} {}
+
24  Vector4(float x, float y, float z) : ::Vector4{x, y, z, 0} {}
+
25  Vector4(float x, float y) : ::Vector4{x, y, 0, 0} {}
+
26  Vector4(float x) : ::Vector4{x, 0, 0, 0} {}
+
27  Vector4() {}
+
28 
+
29  Vector4(::Color color) {
+
30  set(ColorNormalize(color));
+
31  }
+
32 
+
33  GETTERSETTER(float, X, x)
+
34  GETTERSETTER(float, Y, y)
+
35  GETTERSETTER(float, Z, z)
+
36  GETTERSETTER(float, W, w)
+
37 
+
38  Vector4& operator=(const ::Vector4& vector4) {
+
39  set(vector4);
+
40  return *this;
+
41  }
+
42 
+
43  bool operator==(const ::Vector4& other) {
+
44  return x == other.x
+
45  && y == other.y
+
46  && z == other.z
+
47  && w == other.w;
+
48  }
+
49 
+
50  inline ::Rectangle ToRectangle() {
+
51  return {x, y, z, w};
+
52  }
+
53 
+
54  operator ::Rectangle() const {
+
55  return {x, y, z, w};
+
56  }
+
57 
+
58 #ifndef RAYLIB_CPP_NO_MATH
+
59  Vector4 Multiply(const ::Vector4& vector4) {
+
60  return QuaternionMultiply(*this, vector4);
+
61  }
+
62 
+
63  Vector4 operator*(const ::Vector4& vector4) {
+
64  return QuaternionMultiply(*this, vector4);
+
65  }
+
66 
+
67  Vector4 Lerp(const ::Vector4& vector4, float amount) {
+
68  return QuaternionLerp(*this, vector4, amount);
+
69  }
+
70 
+
71  Vector4 Nlerp(const ::Vector4& vector4, float amount) {
+
72  return QuaternionNlerp(*this, vector4, amount);
+
73  }
+
74 
+
75  Vector4 Slerp(const ::Vector4& vector4, float amount) {
+
76  return QuaternionSlerp(*this, vector4, amount);
+
77  }
+
78 
+
79  Matrix ToMatrix() {
+
80  return QuaternionToMatrix(*this);
+
81  }
+
82 
+
83  float Length() const {
+
84  return QuaternionLength(*this);
+
85  }
+
86 
+
87  Vector4 Normalize() {
+
88  return QuaternionNormalize(*this);
+
89  }
+
90 
+
91  Vector4 Invert() {
+
92  return QuaternionInvert(*this);
+
93  }
+
94 
+
95  void ToAxisAngle(::Vector3 *outAxis, float *outAngle) {
+
96  QuaternionToAxisAngle(*this, outAxis, outAngle);
+
97  }
+
98 
+
99  std::pair<Vector3, float> ToAxisAngle() {
+
100  Vector3 outAxis;
+
101  float outAngle;
+
102 
+
103  QuaternionToAxisAngle(*this, &outAxis, &outAngle);
+
104 
+
105  std::pair<Vector3, float> out(outAxis, outAngle);
+
106 
+
107  return out;
+
108  }
+
109 
+
110  Vector4 Transform(const ::Matrix& matrix) {
+
111  return ::QuaternionTransform(*this, matrix);
+
112  }
+
113 
+
114  static Vector4 Identity() {
+
115  return ::QuaternionIdentity();
+
116  }
+
117 
+
118  static Vector4 FromVector3ToVector3(const ::Vector3& from , const ::Vector3& to) {
+
119  return ::QuaternionFromVector3ToVector3(from , to);
+
120  }
+
121 
+
122  static Vector4 FromMatrix(const ::Matrix& matrix) {
+
123  return ::QuaternionFromMatrix(matrix);
+
124  }
+
125 
+
126  static Vector4 FromAxisAngle(const ::Vector3& axis, const float angle) {
+
127  return ::QuaternionFromAxisAngle(axis, angle);
+
128  }
+
129 
+
130  static Vector4 FromEuler(const float yaw, const float pitch, const float roll) {
+
131  return ::QuaternionFromEuler(yaw, pitch, roll);
+
132  }
+
133 
+
134  static Vector4 FromEuler(const ::Vector3& vector3) {
+
135  return ::QuaternionFromEuler(vector3.x, vector3.y, vector3.z);
+
136  }
+
137 
+
138  Vector3 ToEuler() {
+
139  return ::QuaternionToEuler(*this);
+
140  }
+
141 #endif
+
142 
+
143  inline Color ColorFromNormalized() const {
+
144  return ::ColorFromNormalized(*this);
+
145  }
+
146 
+
147  operator Color() {
+
148  return ColorFromNormalized();
+
149  }
+
150 
+
151  private:
+
152  inline void set(const ::Vector4& vec4) {
+
153  x = vec4.x;
+
154  y = vec4.y;
+
155  z = vec4.z;
+
156  w = vec4.w;
+
157  }
+
158 };
+
159 
+
160 // Alias the Vector4 as Quaternion.
+
161 typedef Vector4 Quaternion;
+
162 } // namespace raylib
+
163 
+
164 #endif // RAYLIB_CPP_INCLUDE_VECTOR4_HPP_
+
+
All raylib-cpp classes and functions appear in the raylib namespace.
Definition: AudioDevice.hpp:7
+
Vector4 type.
Definition: Vector4.hpp:17
+
Color type, RGBA (32bit)
Definition: Color.hpp:14
+ + + + diff --git a/raylib-cpp/docs/_vr_simulator_8hpp_source.html b/raylib-cpp/docs/_vr_simulator_8hpp_source.html new file mode 100644 index 00000000..336b9d9a --- /dev/null +++ b/raylib-cpp/docs/_vr_simulator_8hpp_source.html @@ -0,0 +1,164 @@ + + + + + + + +raylib-cpp: VrSimulator.hpp Source File + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
VrSimulator.hpp
+
+
+
1 #ifndef RAYLIB_CPP_INCLUDE_VRSIMULATOR_HPP_
+
2 #define RAYLIB_CPP_INCLUDE_VRSIMULATOR_HPP_
+
3 
+
4 #include "./raylib.hpp"
+
5 #include "./raylib-cpp-utils.hpp"
+
6 
+
7 namespace raylib {
+
11 class VrSimulator {
+
12  public:
+
13  VrSimulator() {
+
14  Init();
+
15  }
+
16 
+
17  VrSimulator(::VrDeviceInfo info, ::Shader distortion) {
+
18  Init();
+
19  Set(info, distortion);
+
20  }
+
21 
+
25  inline void Init() {
+
26  InitVrSimulator();
+
27  }
+
28 
+ +
33  Close();
+
34  }
+
35 
+
39  inline bool IsReady() const {
+
40  return ::IsVrSimulatorReady();
+
41  }
+
42 
+
46  inline VrSimulator& Update(::Camera *camera) {
+
47  ::UpdateVrTracking(camera);
+
48  return *this;
+
49  }
+
50 
+
54  inline VrSimulator& Update(const ::Camera& camera) {
+
55  const ::Camera* cameraPointer = reinterpret_cast<const Camera*>(&camera);
+
56  ::UpdateVrTracking((::Camera*)cameraPointer);
+
57  return *this;
+
58  }
+
59 
+
63  inline VrSimulator& Set(::VrDeviceInfo info, ::Shader distortion) {
+
64  ::SetVrConfiguration(info, distortion);
+
65  return *this;
+
66  }
+
67 
+
71  inline VrSimulator& Toggle() {
+
72  ::ToggleVrMode();
+
73  return *this;
+
74  }
+
75 
+ +
80  ::BeginVrDrawing();
+
81  return *this;
+
82  }
+
83 
+
87  inline VrSimulator& EndDrawing() {
+
88  ::EndVrDrawing();
+
89  return *this;
+
90  }
+
91 
+
95  inline void Close() {
+
96  ::CloseVrSimulator();
+
97  }
+
98 };
+
99 } // namespace raylib
+
100 
+
101 #endif // RAYLIB_CPP_INCLUDE_VRSIMULATOR_HPP_
+
+
All raylib-cpp classes and functions appear in the raylib namespace.
Definition: AudioDevice.hpp:7
+
~VrSimulator()
Close VR simulator for current device.
Definition: VrSimulator.hpp:32
+
VrSimulator & Update(const ::Camera &camera)
Update VR tracking (position and orientation) and camera.
Definition: VrSimulator.hpp:54
+
VrSimulator & Toggle()
Enable/Disable VR experience.
Definition: VrSimulator.hpp:71
+
Camera type, defines a camera position/orientation in 3d space.
Definition: Camera3D.hpp:12
+
VrSimulator & Update(::Camera *camera)
Update VR tracking (position and orientation) and camera.
Definition: VrSimulator.hpp:46
+
void Init()
Init VR simulator for selected device parameters.
Definition: VrSimulator.hpp:25
+
VrSimulator & EndDrawing()
End VR simulator stereo rendering.
Definition: VrSimulator.hpp:87
+
Shader type (generic)
Definition: Shader.hpp:14
+
void Close()
Close VR simulator for current device.
Definition: VrSimulator.hpp:95
+
bool IsReady() const
Detect if VR simulator is ready.
Definition: VrSimulator.hpp:39
+
VR control functions.
Definition: VrSimulator.hpp:11
+
VrSimulator & Set(::VrDeviceInfo info, ::Shader distortion)
Set stereo rendering configuration parameters.
Definition: VrSimulator.hpp:63
+
VrSimulator & BeginDrawing()
Begin VR simulator stereo rendering.
Definition: VrSimulator.hpp:79
+ + + + diff --git a/raylib-cpp/docs/_vr_stereo_config_8hpp_source.html b/raylib-cpp/docs/_vr_stereo_config_8hpp_source.html new file mode 100644 index 00000000..b439b8d2 --- /dev/null +++ b/raylib-cpp/docs/_vr_stereo_config_8hpp_source.html @@ -0,0 +1,147 @@ + + + + + + + +raylib-cpp: VrStereoConfig.hpp Source File + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
VrStereoConfig.hpp
+
+
+
1 #ifndef RAYLIB_CPP_INCLUDE_VRSTEREOCONFIG_HPP_
+
2 #define RAYLIB_CPP_INCLUDE_VRSTEREOCONFIG_HPP_
+
3 
+
4 #include "./raylib.hpp"
+
5 #include "./raylib-cpp-utils.hpp"
+
6 
+
7 namespace raylib {
+ +
12  public:
+
13  VrStereoConfig(const ::VrDeviceInfo& info) {
+
14  Init(info);
+
15  }
+
16 
+
20  inline void Init(const ::VrDeviceInfo& info) {
+
21  set(LoadVrStereoConfig(info));
+
22  }
+
23 
+ +
28  Unload();
+
29  }
+
30 
+ +
35  ::BeginVrStereoMode(*this);
+
36  return *this;
+
37  }
+
38 
+ +
43  ::EndVrStereoMode();
+
44  return *this;
+
45  }
+
46 
+
50  inline void Unload() {
+
51  ::UnloadVrStereoConfig(*this);
+
52  }
+
53 
+
54  private:
+
55  inline void set(const ::VrStereoConfig& config) {
+
56  projection[0] = config.projection[0];
+
57  viewOffset[1] = config.viewOffset[1];
+
58  projection[0] = config.projection[0];
+
59  viewOffset[1] = config.viewOffset[1];
+
60  leftLensCenter[0] = config.leftLensCenter[0];
+
61  leftLensCenter[1] = config.leftLensCenter[1];
+
62  rightLensCenter[0] = config.leftLensCenter[0];
+
63  rightLensCenter[1] = config.leftLensCenter[1];
+
64  leftScreenCenter[0] = config.leftLensCenter[0];
+
65  leftScreenCenter[1] = config.leftLensCenter[1];
+
66  rightScreenCenter[0] = config.leftLensCenter[0];
+
67  rightScreenCenter[1] = config.leftLensCenter[1];
+
68  scale[0] = config.leftLensCenter[0];
+
69  scale[1] = config.leftLensCenter[1];
+
70  scaleIn[0] = config.leftLensCenter[0];
+
71  scaleIn[1] = config.leftLensCenter[1];
+
72  }
+
73 };
+
74 } // namespace raylib
+
75 
+
76 #endif // RAYLIB_CPP_INCLUDE_VRSTEREOCONFIG_HPP_
+
+
All raylib-cpp classes and functions appear in the raylib namespace.
Definition: AudioDevice.hpp:7
+
void Init(const ::VrDeviceInfo &info)
Load VR stereo config for VR simulator device parameters.
+
void Unload()
Unload VR stereo config.
+
VrStereoConfig & BeginMode()
Begin stereo rendering.
+
VR stereo config functions for VR simulator.
+
VrStereoConfig & EndDrawing()
End stereo rendering.
+
~VrStereoConfig()
Unload VR stereo config.
+ + + + diff --git a/raylib-cpp/docs/_wave_8hpp_source.html b/raylib-cpp/docs/_wave_8hpp_source.html new file mode 100644 index 00000000..2356187d --- /dev/null +++ b/raylib-cpp/docs/_wave_8hpp_source.html @@ -0,0 +1,209 @@ + + + + + + + +raylib-cpp: Wave.hpp Source File + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Wave.hpp
+
+
+
1 #ifndef RAYLIB_CPP_INCLUDE_WAVE_HPP_
+
2 #define RAYLIB_CPP_INCLUDE_WAVE_HPP_
+
3 
+
4 #include <string>
+
5 
+
6 #include "./raylib.hpp"
+
7 #include "./raylib-cpp-utils.hpp"
+
8 
+
9 namespace raylib {
+
13 class Wave : public ::Wave {
+
14  public:
+
15  Wave(const ::Wave& wave) {
+
16  set(wave);
+
17  }
+
18 
+
19  Wave(
+
20  unsigned int SampleCount = 0,
+
21  unsigned int SampleRate = 0,
+
22  unsigned int SampleSize = 0,
+
23  unsigned int Channels = 0) {
+
24  sampleCount = SampleCount;
+
25  sampleRate = SampleRate;
+
26  sampleSize = SampleSize;
+
27  channels = Channels;
+
28  }
+
29 
+
33  Wave(const std::string& fileName) {
+
34  set(::LoadWave(fileName.c_str()));
+
35  }
+
36 
+
40  Wave(const std::string& fileType, const unsigned char *fileData, int dataSize) {
+
41  set(::LoadWaveFromMemory(fileType.c_str(), fileData, dataSize));
+
42  }
+
43 
+
47  ~Wave() {
+
48  Unload();
+
49  }
+
50 
+
51  GETTERSETTER(unsigned int, SampleCount, sampleCount)
+
52  GETTERSETTER(unsigned int, SampleRate, sampleRate)
+
53  GETTERSETTER(unsigned int, SampleSize, sampleSize)
+
54  GETTERSETTER(unsigned int, Channels, channels)
+
55  GETTERSETTER(void *, Data, data)
+
56 
+
57  Wave& operator=(const ::Wave& wave) {
+
58  set(wave);
+
59  return *this;
+
60  }
+
61 
+
65  inline Wave& Format(int SampleRate, int SampleSize, int Channels = 2) {
+
66  ::WaveFormat(this, SampleRate, SampleSize, Channels);
+
67  return *this;
+
68  }
+
69 
+
73  inline ::Wave Copy() {
+
74  return ::WaveCopy(*this);
+
75  }
+
76 
+
80  inline Wave& Crop(int initSample, int finalSample) {
+
81  ::WaveCrop(this, initSample, finalSample);
+
82  return *this;
+
83  }
+
84 
+
88  inline float* LoadSamples() {
+
89  return ::LoadWaveSamples(*this);
+
90  }
+
91 
+
95  inline void UnloadSamples(float *samples) {
+
96  ::UnloadWaveSamples(samples);
+
97  }
+
98 
+
102  inline bool Export(const std::string& fileName) {
+
103  // TODO(RobLoach): Throw exception on error.
+
104  return ::ExportWave(*this, fileName.c_str());
+
105  }
+
106 
+
110  inline bool ExportAsCode(const std::string& fileName) {
+
111  // TODO(RobLoach): Throw exception on error.
+
112  return ::ExportWaveAsCode(*this, fileName.c_str());
+
113  }
+
114 
+
118  void Unload() {
+
119  if (data != NULL) {
+
120  ::UnloadWave(*this);
+
121  data = NULL;
+
122  }
+
123  }
+
124 
+
128  inline ::Sound LoadSound() {
+
129  return ::LoadSoundFromWave(*this);
+
130  }
+
131 
+
135  inline operator ::Sound() {
+
136  return LoadSound();
+
137  }
+
138 
+
142  inline operator Sound() {
+
143  return LoadSound();
+
144  }
+
145 
+
146  private:
+
147  inline void set(const ::Wave& wave) {
+
148  sampleCount = wave.sampleCount;
+
149  sampleRate = wave.sampleRate;
+
150  sampleSize = wave.sampleSize;
+
151  channels = wave.channels;
+
152  data = wave.data;
+
153  }
+
154 };
+
155 } // namespace raylib
+
156 
+
157 #endif // RAYLIB_CPP_INCLUDE_WAVE_HPP_
+
+
inline ::Wave Copy()
Copy a wave to a new wave.
Definition: Wave.hpp:73
+
All raylib-cpp classes and functions appear in the raylib namespace.
Definition: AudioDevice.hpp:7
+
Wave type, defines audio wave data.
Definition: Wave.hpp:13
+
Wave & Crop(int initSample, int finalSample)
Crop a wave to defined samples range.
Definition: Wave.hpp:80
+
void Unload()
Unload wave data.
Definition: Wave.hpp:118
+
float * LoadSamples()
Load samples data from wave as a floats array.
Definition: Wave.hpp:88
+
Wave/Sound management functions.
Definition: Sound.hpp:18
+
bool Export(const std::string &fileName)
Export wave data to file, returns true on success.
Definition: Wave.hpp:102
+
~Wave()
Unload wave data.
Definition: Wave.hpp:47
+
Wave(const std::string &fileType, const unsigned char *fileData, int dataSize)
Load wave from memory buffer, fileType refers to extension: i.e.
Definition: Wave.hpp:40
+
Wave(const std::string &fileName)
Load wave data from file.
Definition: Wave.hpp:33
+
bool ExportAsCode(const std::string &fileName)
Export wave sample data to code (.h), returns true on success.
Definition: Wave.hpp:110
+
void UnloadSamples(float *samples)
Unload samples data loaded with LoadWaveSamples()
Definition: Wave.hpp:95
+
Wave & Format(int SampleRate, int SampleSize, int Channels=2)
Convert wave data to desired format.
Definition: Wave.hpp:65
+
inline ::Sound LoadSound()
Load sound from wave data.
Definition: Wave.hpp:128
+ + + + diff --git a/raylib-cpp/docs/_window_8hpp_source.html b/raylib-cpp/docs/_window_8hpp_source.html new file mode 100644 index 00000000..a472baf3 --- /dev/null +++ b/raylib-cpp/docs/_window_8hpp_source.html @@ -0,0 +1,337 @@ + + + + + + + +raylib-cpp: Window.hpp Source File + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Window.hpp
+
+
+
1 #ifndef RAYLIB_CPP_INCLUDE_WINDOW_HPP_
+
2 #define RAYLIB_CPP_INCLUDE_WINDOW_HPP_
+
3 
+
4 #include <string>
+
5 
+
6 #include "./raylib.hpp"
+
7 
+
8 namespace raylib {
+
12 class Window {
+
13  public:
+
17  Window(int width = 800, int height = 450, const std::string& title = "raylib",
+
18  bool lateInit = false) {
+
19  if (!lateInit) {
+
20  Init(width, height, title);
+
21  }
+
22  }
+
23 
+
27  ~Window() {
+
28  Close();
+
29  }
+
30 
+
31  void Init(int width = 800, int height = 450, const std::string& title = "raylib") {
+
32  ::InitWindow(width, height, title.c_str());
+
33  }
+
34 
+
38  inline bool ShouldClose() const {
+
39  return ::WindowShouldClose();
+
40  }
+
41 
+
45  inline void Close() {
+
46  ::CloseWindow();
+
47  }
+
48 
+
52  inline bool IsCursorOnScreen() const {
+
53  return ::IsCursorOnScreen();
+
54  }
+
55 
+
59  inline static bool IsReady() {
+
60  return ::IsWindowReady();
+
61  }
+
62 
+
66  inline bool IsFullscreen() const {
+
67  return ::IsWindowFullscreen();
+
68  }
+
69 
+
73  inline bool IsHidden() const {
+
74  return ::IsWindowHidden();
+
75  }
+
76 
+
80  inline bool IsMinimized() const {
+
81  return ::IsWindowMinimized();
+
82  }
+
83 
+
87  inline bool IsMaximized() const {
+
88  return ::IsWindowMaximized();
+
89  }
+
90 
+
94  inline bool IsFocused() const {
+
95  return ::IsWindowFocused();
+
96  }
+
97 
+
101  inline bool IsResized() const {
+
102  return ::IsWindowResized();
+
103  }
+
104 
+
108  inline bool IsState(unsigned int flag) const {
+
109  return ::IsWindowState(flag);
+
110  }
+
111 
+
115  inline Window& SetState(unsigned int flag) {
+
116  ::SetWindowState(flag);
+
117  return *this;
+
118  }
+
119 
+
123  inline Window& ClearState(unsigned int flag) {
+
124  ::ClearWindowState(flag);
+
125  return *this;
+
126  }
+
127 
+
131  inline Window& ClearBackground(const ::Color& color = BLACK) {
+
132  ::ClearBackground(color);
+
133  return *this;
+
134  }
+
135 
+ + +
141  return *this;
+
142  }
+
143 
+
147  inline Window& SetFullscreen(bool fullscreen) {
+
148  if (fullscreen) {
+
149  if (!IsFullscreen()) {
+ +
151  }
+
152  } else {
+
153  if (IsFullscreen()) {
+ +
155  }
+
156  }
+
157 
+
158  return *this;
+
159  }
+
160 
+
164  inline Window& Maximize() {
+
165  ::MaximizeWindow();
+
166  return *this;
+
167  }
+
168 
+
172  inline Window& Minimize() {
+
173  ::MinimizeWindow();
+
174  return *this;
+
175  }
+
176 
+
180  inline Window& Restore() {
+
181  ::RestoreWindow();
+
182  return *this;
+
183  }
+
184 
+
188  inline Window& SetIcon(const ::Image& image) {
+
189  ::SetWindowIcon(image);
+
190  return *this;
+
191  }
+
192 
+
196  inline Window& SetTitle(const std::string& title) {
+
197  ::SetWindowTitle(title.c_str());
+
198  return *this;
+
199  }
+
200 
+
204  inline Window& SetPosition(int x, int y) {
+
205  ::SetWindowPosition(x, y);
+
206  return *this;
+
207  }
+
208 
+
212  inline Window& SetPosition(const ::Vector2& position) {
+
213  return SetPosition(static_cast<int>(position.x), static_cast<int>(position.y));
+
214  }
+
215 
+
219  inline Window& SetMonitor(int monitor) {
+
220  ::SetWindowMonitor(monitor);
+
221  return *this;
+
222  }
+
223 
+
227  inline Window& SetMinSize(int width, int height) {
+
228  ::SetWindowMinSize(width, height);
+
229  return *this;
+
230  }
+
231 
+
235  inline Window& SetSize(int width, int height) {
+
236  ::SetWindowSize(width, height);
+
237  return *this;
+
238  }
+
239 
+
243  inline Window& SetSize(const ::Vector2& size) {
+
244  return SetSize(static_cast<int>(size.x), static_cast<int>(size.y));
+
245  }
+
246 
+
250  inline ::Vector2 GetSize() {
+
251  return {static_cast<float>(GetWidth()), static_cast<float>(GetHeight())};
+
252  }
+
253 
+
257  inline void* GetHandle() const {
+
258  return ::GetWindowHandle();
+
259  }
+
260 
+
264  inline Window& BeginDrawing() {
+
265  ::BeginDrawing();
+
266  return *this;
+
267  }
+
268 
+
272  inline Window& EndDrawing() {
+
273  ::EndDrawing();
+
274  return *this;
+
275  }
+
276 
+
280  inline int GetWidth() const {
+
281  return ::GetScreenWidth();
+
282  }
+
283 
+
287  inline int GetHeight() const {
+
288  return ::GetScreenHeight();
+
289  }
+
290 
+
294  inline ::Vector2 GetPosition() const {
+
295  return ::GetWindowPosition();
+
296  }
+
297 
+
301  inline ::Vector2 GetScaleDPI() const {
+
302  return ::GetWindowScaleDPI();
+
303  }
+
304 
+
308  inline Window& SetTargetFPS(int fps) {
+
309  ::SetTargetFPS(fps);
+
310  return *this;
+
311  }
+
312 
+
316  inline int GetFPS() const {
+
317  return ::GetFPS();
+
318  }
+
319 
+
323  inline float GetFrameTime() const {
+
324  return ::GetFrameTime();
+
325  }
+
326 
+
330  inline double GetTime() const {
+
331  return ::GetTime();
+
332  }
+
333 };
+
334 } // namespace raylib
+
335 
+
336 #endif // RAYLIB_CPP_INCLUDE_WINDOW_HPP_
+
+
inline ::Vector2 GetSize()
Get the screen's width and height.
Definition: Window.hpp:250
+
int GetWidth() const
Get current screen width.
Definition: Window.hpp:280
+
void * GetHandle() const
Get native window handle.
Definition: Window.hpp:257
+
All raylib-cpp classes and functions appear in the raylib namespace.
Definition: AudioDevice.hpp:7
+
Window & SetMonitor(int monitor)
Set monitor for the current window.
Definition: Window.hpp:219
+
double GetTime() const
Returns elapsed time in seconds since InitWindow()
Definition: Window.hpp:330
+
~Window()
Close window and unload OpenGL context.
Definition: Window.hpp:27
+
bool IsHidden() const
Check if window is currently hidden.
Definition: Window.hpp:73
+
static void SetWindowTitle(const std::string &title)
Set title for window.
Definition: Functions.hpp:31
+
void Close()
Close window and unload OpenGL context.
Definition: Window.hpp:45
+
Window & ClearBackground(const ::Color &color=BLACK)
Clear window with given color.
Definition: Window.hpp:131
+
Window & SetMinSize(int width, int height)
Set window minimum dimensions.
Definition: Window.hpp:227
+
Window & SetState(unsigned int flag)
Set window configuration state using flags.
Definition: Window.hpp:115
+
float GetFrameTime() const
Returns time in seconds for last frame drawn.
Definition: Window.hpp:323
+
bool ShouldClose() const
Check if KEY_ESCAPE pressed or Close icon pressed.
Definition: Window.hpp:38
+
static void InitWindow(int width, int height, const std::string &title="raylib")
Initialize window and OpenGL context.
Definition: Functions.hpp:24
+
Window & SetFullscreen(bool fullscreen)
Set whether or not the application should be fullscreen.
Definition: Window.hpp:147
+
Window & SetPosition(int x, int y)
Set window position on screen.
Definition: Window.hpp:204
+
Window & SetSize(const ::Vector2 &size)
Set window dimensions.
Definition: Window.hpp:243
+
bool IsMaximized() const
Check if window is currently minimized.
Definition: Window.hpp:87
+
inline ::Vector2 GetScaleDPI() const
Get window scale DPI factor.
Definition: Window.hpp:301
+
Window(int width=800, int height=450, const std::string &title="raylib", bool lateInit=false)
Initialize window and OpenGL context.
Definition: Window.hpp:17
+
bool IsFocused() const
Check if window is currently focused.
Definition: Window.hpp:94
+
bool IsResized() const
Check if window has been resized last frame.
Definition: Window.hpp:101
+
int GetHeight() const
Get current screen height.
Definition: Window.hpp:287
+
Window & EndDrawing()
End canvas drawing and swap buffers (double buffering)
Definition: Window.hpp:272
+
Window & SetSize(int width, int height)
Set window dimensions.
Definition: Window.hpp:235
+
int GetFPS() const
Returns current FPS.
Definition: Window.hpp:316
+
Window & Minimize()
Set window state: minimized, if resizable (only PLATFORM_DESKTOP)
Definition: Window.hpp:172
+
Window & ToggleFullscreen()
Toggle window state: fullscreen/windowed.
Definition: Window.hpp:139
+
Window & Maximize()
Set window state: maximized, if resizable (only PLATFORM_DESKTOP)
Definition: Window.hpp:164
+
Window & SetTitle(const std::string &title)
Set title for window.
Definition: Window.hpp:196
+
bool IsCursorOnScreen() const
Check if cursor is on the current screen.
Definition: Window.hpp:52
+
bool IsFullscreen() const
Check if window is currently fullscreen.
Definition: Window.hpp:66
+
static bool IsReady()
Check if window has been initialized successfully.
Definition: Window.hpp:59
+
Window & BeginDrawing()
Setup canvas (framebuffer) to start drawing.
Definition: Window.hpp:264
+
Window & ClearState(unsigned int flag)
Clear window configuration state flags.
Definition: Window.hpp:123
+
bool IsState(unsigned int flag) const
Check if one specific window flag is enabled.
Definition: Window.hpp:108
+
Window & SetPosition(const ::Vector2 &position)
Set window position on screen.
Definition: Window.hpp:212
+
Window & SetTargetFPS(int fps)
Set target FPS (maximum)
Definition: Window.hpp:308
+
inline ::Vector2 GetPosition() const
Get window position XY on monitor.
Definition: Window.hpp:294
+
bool IsMinimized() const
Check if window is currently minimized.
Definition: Window.hpp:80
+
Window & Restore()
Set window state: not minimized/maximized (only PLATFORM_DESKTOP)
Definition: Window.hpp:180
+
Window & SetIcon(const ::Image &image)
Set icon for window.
Definition: Window.hpp:188
+
Window and Graphics Device Functions.
Definition: Window.hpp:12
+ + + + diff --git a/raylib-cpp/docs/annotated.html b/raylib-cpp/docs/annotated.html new file mode 100644 index 00000000..34e60b35 --- /dev/null +++ b/raylib-cpp/docs/annotated.html @@ -0,0 +1,113 @@ + + + + + + + +raylib-cpp: Class List + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
Class List
+
+
+
Here are the classes, structs, unions and interfaces with brief descriptions:
+
[detail level 12]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 NraylibAll raylib-cpp classes and functions appear in the raylib namespace
 CAudioDeviceAudio device management functions
 CAudioStreamAudioStream management functions
 CBoundingBoxBounding box type
 CCamera2DCamera2D type, defines a 2d camera
 CCamera3DCamera type, defines a camera position/orientation in 3d space
 CColorColor type, RGBA (32bit)
 CFontFont type, includes texture and charSet array data
 CGamepadInput-related functions: gamepads
 CImageImage type, bpp always RGBA (32bit)
 CMaterialMaterial type (generic)
 CMatrixMatrix type (OpenGL style 4x4 - right handed, column major)
 CMeshVertex data definning a mesh
 CModelModel type
 CModelAnimationModel animation
 CMouseInput-related functions: mouse
 CMusicMusic stream type (audio file streaming from memory)
 CPhysics2D Physics library for videogames
 CRayRay type (useful for raycast)
 CRayHitInfoRaycast hit information
 CRectangleRectangle type
 CRenderTextureRenderTexture type, for texture rendering
 CShaderShader type (generic)
 CSoundWave/Sound management functions
 CTextureTexture type
 CVector2Vector2 type
 CVector3Vector3 type
 CVector4Vector4 type
 CVrStereoConfigVR stereo config functions for VR simulator
 CWaveWave type, defines audio wave data
 CWindowWindow and Graphics Device Functions
+
+
+ + + + diff --git a/raylib-cpp/docs/bc_s.png b/raylib-cpp/docs/bc_s.png new file mode 100644 index 00000000..224b29aa Binary files /dev/null and b/raylib-cpp/docs/bc_s.png differ diff --git a/raylib-cpp/docs/bdwn.png b/raylib-cpp/docs/bdwn.png new file mode 100644 index 00000000..940a0b95 Binary files /dev/null and b/raylib-cpp/docs/bdwn.png differ diff --git a/raylib-cpp/docs/class_audio_stream.html b/raylib-cpp/docs/class_audio_stream.html new file mode 100644 index 00000000..85985f82 --- /dev/null +++ b/raylib-cpp/docs/class_audio_stream.html @@ -0,0 +1,78 @@ + + + + + + + +raylib-cpp: AudioStream Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
AudioStream Class Reference
+
+
+
+ + + + diff --git a/raylib-cpp/docs/class_bounding_box.html b/raylib-cpp/docs/class_bounding_box.html new file mode 100644 index 00000000..1b65da7d --- /dev/null +++ b/raylib-cpp/docs/class_bounding_box.html @@ -0,0 +1,78 @@ + + + + + + + +raylib-cpp: BoundingBox Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
BoundingBox Class Reference
+
+
+
+ + + + diff --git a/raylib-cpp/docs/class_camera2_d.html b/raylib-cpp/docs/class_camera2_d.html new file mode 100644 index 00000000..9a9acbfd --- /dev/null +++ b/raylib-cpp/docs/class_camera2_d.html @@ -0,0 +1,78 @@ + + + + + + + +raylib-cpp: Camera2D Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
Camera2D Class Reference
+
+
+
+ + + + diff --git a/raylib-cpp/docs/class_camera3_d.html b/raylib-cpp/docs/class_camera3_d.html new file mode 100644 index 00000000..85eca2ae --- /dev/null +++ b/raylib-cpp/docs/class_camera3_d.html @@ -0,0 +1,78 @@ + + + + + + + +raylib-cpp: Camera3D Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
Camera3D Class Reference
+
+
+
+ + + + diff --git a/raylib-cpp/docs/class_color.html b/raylib-cpp/docs/class_color.html new file mode 100644 index 00000000..0f5e864c --- /dev/null +++ b/raylib-cpp/docs/class_color.html @@ -0,0 +1,78 @@ + + + + + + + +raylib-cpp: Color Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
Color Class Reference
+
+
+
+ + + + diff --git a/raylib-cpp/docs/class_font.html b/raylib-cpp/docs/class_font.html new file mode 100644 index 00000000..b28129b0 --- /dev/null +++ b/raylib-cpp/docs/class_font.html @@ -0,0 +1,78 @@ + + + + + + + +raylib-cpp: Font Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
Font Class Reference
+
+
+
+ + + + diff --git a/raylib-cpp/docs/class_image.html b/raylib-cpp/docs/class_image.html new file mode 100644 index 00000000..4b6787c6 --- /dev/null +++ b/raylib-cpp/docs/class_image.html @@ -0,0 +1,78 @@ + + + + + + + +raylib-cpp: Image Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
Image Class Reference
+
+
+
+ + + + diff --git a/raylib-cpp/docs/class_material.html b/raylib-cpp/docs/class_material.html new file mode 100644 index 00000000..e50189f6 --- /dev/null +++ b/raylib-cpp/docs/class_material.html @@ -0,0 +1,78 @@ + + + + + + + +raylib-cpp: Material Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
Material Class Reference
+
+
+
+ + + + diff --git a/raylib-cpp/docs/class_matrix.html b/raylib-cpp/docs/class_matrix.html new file mode 100644 index 00000000..73bee2a3 --- /dev/null +++ b/raylib-cpp/docs/class_matrix.html @@ -0,0 +1,78 @@ + + + + + + + +raylib-cpp: Matrix Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
Matrix Class Reference
+
+
+
+ + + + diff --git a/raylib-cpp/docs/class_mesh.html b/raylib-cpp/docs/class_mesh.html new file mode 100644 index 00000000..bc6f35c5 --- /dev/null +++ b/raylib-cpp/docs/class_mesh.html @@ -0,0 +1,78 @@ + + + + + + + +raylib-cpp: Mesh Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
Mesh Class Reference
+
+
+
+ + + + diff --git a/raylib-cpp/docs/class_model.html b/raylib-cpp/docs/class_model.html new file mode 100644 index 00000000..6455c187 --- /dev/null +++ b/raylib-cpp/docs/class_model.html @@ -0,0 +1,78 @@ + + + + + + + +raylib-cpp: Model Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
Model Class Reference
+
+
+
+ + + + diff --git a/raylib-cpp/docs/class_model_animation.html b/raylib-cpp/docs/class_model_animation.html new file mode 100644 index 00000000..722c3831 --- /dev/null +++ b/raylib-cpp/docs/class_model_animation.html @@ -0,0 +1,78 @@ + + + + + + + +raylib-cpp: ModelAnimation Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
ModelAnimation Class Reference
+
+
+
+ + + + diff --git a/raylib-cpp/docs/class_music.html b/raylib-cpp/docs/class_music.html new file mode 100644 index 00000000..f4c4d1d3 --- /dev/null +++ b/raylib-cpp/docs/class_music.html @@ -0,0 +1,78 @@ + + + + + + + +raylib-cpp: Music Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
Music Class Reference
+
+
+
+ + + + diff --git a/raylib-cpp/docs/class_ray.html b/raylib-cpp/docs/class_ray.html new file mode 100644 index 00000000..774642a1 --- /dev/null +++ b/raylib-cpp/docs/class_ray.html @@ -0,0 +1,78 @@ + + + + + + + +raylib-cpp: Ray Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
Ray Class Reference
+
+
+
+ + + + diff --git a/raylib-cpp/docs/class_ray_hit_info.html b/raylib-cpp/docs/class_ray_hit_info.html new file mode 100644 index 00000000..f36bbbd3 --- /dev/null +++ b/raylib-cpp/docs/class_ray_hit_info.html @@ -0,0 +1,78 @@ + + + + + + + +raylib-cpp: RayHitInfo Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
RayHitInfo Class Reference
+
+
+
+ + + + diff --git a/raylib-cpp/docs/class_rectangle.html b/raylib-cpp/docs/class_rectangle.html new file mode 100644 index 00000000..940afaa1 --- /dev/null +++ b/raylib-cpp/docs/class_rectangle.html @@ -0,0 +1,78 @@ + + + + + + + +raylib-cpp: Rectangle Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
Rectangle Class Reference
+
+
+
+ + + + diff --git a/raylib-cpp/docs/class_render_texture.html b/raylib-cpp/docs/class_render_texture.html new file mode 100644 index 00000000..c3715da3 --- /dev/null +++ b/raylib-cpp/docs/class_render_texture.html @@ -0,0 +1,78 @@ + + + + + + + +raylib-cpp: RenderTexture Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
RenderTexture Class Reference
+
+
+
+ + + + diff --git a/raylib-cpp/docs/class_render_texture2_d.html b/raylib-cpp/docs/class_render_texture2_d.html new file mode 100644 index 00000000..a8e0a0d9 --- /dev/null +++ b/raylib-cpp/docs/class_render_texture2_d.html @@ -0,0 +1,78 @@ + + + + + + + +raylib-cpp: RenderTexture2D Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
RenderTexture2D Class Reference
+
+
+
+ + + + diff --git a/raylib-cpp/docs/class_shader.html b/raylib-cpp/docs/class_shader.html new file mode 100644 index 00000000..1c4feb36 --- /dev/null +++ b/raylib-cpp/docs/class_shader.html @@ -0,0 +1,78 @@ + + + + + + + +raylib-cpp: Shader Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
Shader Class Reference
+
+
+
+ + + + diff --git a/raylib-cpp/docs/class_sound.html b/raylib-cpp/docs/class_sound.html new file mode 100644 index 00000000..c6c77421 --- /dev/null +++ b/raylib-cpp/docs/class_sound.html @@ -0,0 +1,78 @@ + + + + + + + +raylib-cpp: Sound Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
Sound Class Reference
+
+
+
+ + + + diff --git a/raylib-cpp/docs/class_texture.html b/raylib-cpp/docs/class_texture.html new file mode 100644 index 00000000..860394ce --- /dev/null +++ b/raylib-cpp/docs/class_texture.html @@ -0,0 +1,78 @@ + + + + + + + +raylib-cpp: Texture Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
Texture Class Reference
+
+
+
+ + + + diff --git a/raylib-cpp/docs/class_texture2_d.html b/raylib-cpp/docs/class_texture2_d.html new file mode 100644 index 00000000..3d3b3536 --- /dev/null +++ b/raylib-cpp/docs/class_texture2_d.html @@ -0,0 +1,78 @@ + + + + + + + +raylib-cpp: Texture2D Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
Texture2D Class Reference
+
+
+
+ + + + diff --git a/raylib-cpp/docs/class_vector2.html b/raylib-cpp/docs/class_vector2.html new file mode 100644 index 00000000..2a1fff3c --- /dev/null +++ b/raylib-cpp/docs/class_vector2.html @@ -0,0 +1,78 @@ + + + + + + + +raylib-cpp: Vector2 Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
Vector2 Class Reference
+
+
+
+ + + + diff --git a/raylib-cpp/docs/class_vector3.html b/raylib-cpp/docs/class_vector3.html new file mode 100644 index 00000000..0caa2605 --- /dev/null +++ b/raylib-cpp/docs/class_vector3.html @@ -0,0 +1,78 @@ + + + + + + + +raylib-cpp: Vector3 Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
Vector3 Class Reference
+
+
+
+ + + + diff --git a/raylib-cpp/docs/class_vector4.html b/raylib-cpp/docs/class_vector4.html new file mode 100644 index 00000000..40161c72 --- /dev/null +++ b/raylib-cpp/docs/class_vector4.html @@ -0,0 +1,78 @@ + + + + + + + +raylib-cpp: Vector4 Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
Vector4 Class Reference
+
+
+
+ + + + diff --git a/raylib-cpp/docs/class_wave.html b/raylib-cpp/docs/class_wave.html new file mode 100644 index 00000000..2f75727a --- /dev/null +++ b/raylib-cpp/docs/class_wave.html @@ -0,0 +1,78 @@ + + + + + + + +raylib-cpp: Wave Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
Wave Class Reference
+
+
+
+ + + + diff --git a/raylib-cpp/docs/classes.html b/raylib-cpp/docs/classes.html new file mode 100644 index 00000000..f5bc1e0a --- /dev/null +++ b/raylib-cpp/docs/classes.html @@ -0,0 +1,152 @@ + + + + + + + +raylib-cpp: Class Index + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
Class Index
+
+
+
a | b | c | f | g | i | m | p | r | s | t | v | w
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  a  
+
  f  
+
Matrix (raylib)   RayHitInfo (raylib)   Vector3 (raylib)   
Mesh (raylib)   Rectangle (raylib)   Vector4 (raylib)   
AudioDevice (raylib)   Font (raylib)   Model (raylib)   RenderTexture (raylib)   VrStereoConfig (raylib)   
AudioStream (raylib)   
  g  
+
ModelAnimation (raylib)   
  s  
+
  w  
+
  b  
+
Mouse (raylib)   
Gamepad (raylib)   Music (raylib)   Shader (raylib)   Wave (raylib)   
BoundingBox (raylib)   
  i  
+
  p  
+
Sound (raylib)   Window (raylib)   
  c  
+
  t  
+
Image (raylib)   Physics (raylib)   
Camera2D (raylib)   
  m  
+
  r  
+
Texture (raylib)   
Camera3D (raylib)   
  v  
+
Color (raylib)   Material (raylib)   Ray (raylib)   
Vector2 (raylib)   
+
a | b | c | f | g | i | m | p | r | s | t | v | w
+
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_audio_device-members.html b/raylib-cpp/docs/classraylib_1_1_audio_device-members.html new file mode 100644 index 00000000..26628c9c --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_audio_device-members.html @@ -0,0 +1,91 @@ + + + + + + + +raylib-cpp: Member List + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
raylib::AudioDevice Member List
+
+
+ +

This is the complete list of members for raylib::AudioDevice, including all inherited members.

+ + + + + + + +
AudioDevice(bool lateInit=false)raylib::AudioDeviceinline
Close()raylib::AudioDeviceinline
Init()raylib::AudioDeviceinline
IsReady() constraylib::AudioDeviceinline
SetVolume(float volume)raylib::AudioDeviceinline
~AudioDevice()raylib::AudioDeviceinline
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_audio_device.html b/raylib-cpp/docs/classraylib_1_1_audio_device.html new file mode 100644 index 00000000..1afe572f --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_audio_device.html @@ -0,0 +1,158 @@ + + + + + + + +raylib-cpp: raylib::AudioDevice Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
raylib::AudioDevice Class Reference
+
+
+ +

Audio device management functions. + More...

+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 AudioDevice (bool lateInit=false)
 Initialize audio device and context. More...
 
~AudioDevice ()
 Close the audio device and context.
 
+void Close ()
 Close the audio device and context.
 
+AudioDeviceInit ()
 Initialize audio device and context.
 
+bool IsReady () const
 Check if audio device has been initialized successfully.
 
+AudioDeviceSetVolume (float volume)
 Set master volume (listener).
 
+

Detailed Description

+

Audio device management functions.

+ +

Definition at line 11 of file AudioDevice.hpp.

+

Constructor & Destructor Documentation

+ +

◆ AudioDevice()

+ +
+
+ + + + + +
+ + + + + + + + +
raylib::AudioDevice::AudioDevice (bool lateInit = false)
+
+inline
+
+ +

Initialize audio device and context.

+
Parameters
+ + +
lateInitWhether or not to post-pone initializing the context.
+
+
+ +

Definition at line 18 of file AudioDevice.hpp.

+ +

References Init().

+ +
+
+
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_audio_stream-members.html b/raylib-cpp/docs/classraylib_1_1_audio_stream-members.html new file mode 100644 index 00000000..e0cdc630 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_audio_stream-members.html @@ -0,0 +1,108 @@ + + + + + + + +raylib-cpp: Member List + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
raylib::AudioStream Member List
+
+
+ +

This is the complete list of members for raylib::AudioStream, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + +
AudioStream(const ::AudioStream &music) (defined in raylib::AudioStream)raylib::AudioStreaminline
AudioStream(unsigned int SampleRate, unsigned int SampleSize, unsigned int Channels)raylib::AudioStreaminline
Close()raylib::AudioStreaminline
GetBuffer() constraylib::AudioStreaminline
GetChannels() constraylib::AudioStreaminline
GetSampleRate() constraylib::AudioStreaminline
GetSampleSize() constraylib::AudioStreaminline
IsPlaying() constraylib::AudioStreaminline
IsProcessed() constraylib::AudioStreaminline
operator=(const ::AudioStream &stream) (defined in raylib::AudioStream)raylib::AudioStreaminline
Pause()raylib::AudioStreaminline
Play()raylib::AudioStreaminline
Resume()raylib::AudioStreaminline
SetBuffer(rAudioBuffer *value)raylib::AudioStreaminline
SetBufferSizeDefault(int size)raylib::AudioStreaminlinestatic
SetChannels(unsigned int value)raylib::AudioStreaminline
SetPitch(float pitch)raylib::AudioStreaminline
SetSampleRate(unsigned int value)raylib::AudioStreaminline
SetSampleSize(unsigned int value)raylib::AudioStreaminline
SetVolume(float volume)raylib::AudioStreaminline
Stop()raylib::AudioStreaminline
Update(const void *data, int samplesCount)raylib::AudioStreaminline
~AudioStream() (defined in raylib::AudioStream)raylib::AudioStreaminline
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_audio_stream.html b/raylib-cpp/docs/classraylib_1_1_audio_stream.html new file mode 100644 index 00000000..bec38acd --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_audio_stream.html @@ -0,0 +1,443 @@ + + + + + + + +raylib-cpp: raylib::AudioStream Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
raylib::AudioStream Class Reference
+
+
+ +

AudioStream management functions. + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

AudioStream (const ::AudioStream &music)
 
AudioStream (unsigned int SampleRate, unsigned int SampleSize, unsigned int Channels)
 Init audio stream (to stream raw audio pcm data)
 
+void Close ()
 Close audio stream and free memory.
 
rAudioBuffer * GetBuffer () const
 Retrieves the buffer value for the object. More...
 
unsigned int GetChannels () const
 Retrieves the channels value for the object. More...
 
unsigned int GetSampleRate () const
 Retrieves the sampleRate value for the object. More...
 
unsigned int GetSampleSize () const
 Retrieves the sampleSize value for the object. More...
 
+bool IsPlaying () const
 Check if audio stream is playing.
 
+bool IsProcessed () const
 Check if any audio stream buffers requires refill.
 
+AudioStreamoperator= (const ::AudioStream &stream)
 
+AudioStreamPause ()
 Pause audio stream.
 
+AudioStreamPlay ()
 Play audio stream.
 
+AudioStreamResume ()
 Resume audio stream.
 
void SetBuffer (rAudioBuffer *value)
 Sets the buffer value for the object. More...
 
void SetChannels (unsigned int value)
 Sets the channels value for the object. More...
 
+AudioStreamSetPitch (float pitch)
 Set pitch for audio stream (1.0 is base level)
 
void SetSampleRate (unsigned int value)
 Sets the sampleRate value for the object. More...
 
void SetSampleSize (unsigned int value)
 Sets the sampleSize value for the object. More...
 
+AudioStreamSetVolume (float volume)
 Set volume for audio stream (1.0 is max level)
 
+AudioStreamStop ()
 Stop audio stream.
 
+AudioStreamUpdate (const void *data, int samplesCount)
 Update audio stream buffers with data.
 
+ + + + +

+Static Public Member Functions

+static void SetBufferSizeDefault (int size)
 Default size for new audio streams.
 
+

Detailed Description

+

AudioStream management functions.

+ +

Definition at line 11 of file AudioStream.hpp.

+

Member Function Documentation

+ +

◆ GetBuffer()

+ +
+
+ + + + + +
+ + + + + + + +
rAudioBuffer* raylib::AudioStream::GetBuffer () const
+
+inline
+
+ +

Retrieves the buffer value for the object.

+
Returns
The buffer value of the object.
+ +

Definition at line 28 of file AudioStream.hpp.

+ +
+
+ +

◆ GetChannels()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned int raylib::AudioStream::GetChannels () const
+
+inline
+
+ +

Retrieves the channels value for the object.

+
Returns
The channels value of the object.
+ +

Definition at line 31 of file AudioStream.hpp.

+ +
+
+ +

◆ GetSampleRate()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned int raylib::AudioStream::GetSampleRate () const
+
+inline
+
+ +

Retrieves the sampleRate value for the object.

+
Returns
The sampleRate value of the object.
+ +

Definition at line 29 of file AudioStream.hpp.

+ +
+
+ +

◆ GetSampleSize()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned int raylib::AudioStream::GetSampleSize () const
+
+inline
+
+ +

Retrieves the sampleSize value for the object.

+
Returns
The sampleSize value of the object.
+ +

Definition at line 30 of file AudioStream.hpp.

+ +
+
+ +

◆ SetBuffer()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::AudioStream::SetBuffer (rAudioBuffer * value)
+
+inline
+
+ +

Sets the buffer value for the object.

+
Parameters
+ + +
valueThe value of which to set buffer to.
+
+
+ +

Definition at line 28 of file AudioStream.hpp.

+ +
+
+ +

◆ SetChannels()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::AudioStream::SetChannels (unsigned int value)
+
+inline
+
+ +

Sets the channels value for the object.

+
Parameters
+ + +
valueThe value of which to set channels to.
+
+
+ +

Definition at line 31 of file AudioStream.hpp.

+ +
+
+ +

◆ SetSampleRate()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::AudioStream::SetSampleRate (unsigned int value)
+
+inline
+
+ +

Sets the sampleRate value for the object.

+
Parameters
+ + +
valueThe value of which to set sampleRate to.
+
+
+ +

Definition at line 29 of file AudioStream.hpp.

+ +
+
+ +

◆ SetSampleSize()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::AudioStream::SetSampleSize (unsigned int value)
+
+inline
+
+ +

Sets the sampleSize value for the object.

+
Parameters
+ + +
valueThe value of which to set sampleSize to.
+
+
+ +

Definition at line 30 of file AudioStream.hpp.

+ +
+
+
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_bounding_box-members.html b/raylib-cpp/docs/classraylib_1_1_bounding_box-members.html new file mode 100644 index 00000000..7d877d7b --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_bounding_box-members.html @@ -0,0 +1,98 @@ + + + + + + + +raylib-cpp: Member List + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
raylib::BoundingBox Member List
+
+
+ +

This is the complete list of members for raylib::BoundingBox, including all inherited members.

+ + + + + + + + + + + + + + +
BoundingBox(const ::BoundingBox &box) (defined in raylib::BoundingBox)raylib::BoundingBoxinline
BoundingBox(const ::Mesh &mesh)raylib::BoundingBoxinline
BoundingBox(::Vector3 minMax) (defined in raylib::BoundingBox)raylib::BoundingBoxinline
BoundingBox(::Vector3 Min, ::Vector3 Max) (defined in raylib::BoundingBox)raylib::BoundingBoxinline
CheckCollision(const ::BoundingBox &box2) constraylib::BoundingBoxinline
CheckCollision(::Vector3 center, float radius) constraylib::BoundingBoxinline
CheckCollision(const ::Ray &ray) constraylib::BoundingBoxinline
Draw(::Color color={255, 255, 255, 255})raylib::BoundingBoxinline
GetMax() constraylib::BoundingBoxinline
GetMin() constraylib::BoundingBoxinline
operator=(const ::BoundingBox &box) (defined in raylib::BoundingBox)raylib::BoundingBoxinline
SetMax(::Vector3 value)raylib::BoundingBoxinline
SetMin(::Vector3 value)raylib::BoundingBoxinline
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_bounding_box.html b/raylib-cpp/docs/classraylib_1_1_bounding_box.html new file mode 100644 index 00000000..84710989 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_bounding_box.html @@ -0,0 +1,273 @@ + + + + + + + +raylib-cpp: raylib::BoundingBox Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
raylib::BoundingBox Class Reference
+
+
+ +

Bounding box type. + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

BoundingBox (::Vector3 Min, ::Vector3 Max)
 
BoundingBox (::Vector3 minMax)
 
BoundingBox (const ::BoundingBox &box)
 
BoundingBox (const ::Mesh &mesh)
 Compute mesh bounding box limits.
 
+bool CheckCollision (::Vector3 center, float radius) const
 Detect collision between box and sphere.
 
+bool CheckCollision (const ::BoundingBox &box2) const
 Detect collision between two boxes.
 
+bool CheckCollision (const ::Ray &ray) const
 Detect collision between ray and bounding box.
 
+BoundingBoxDraw (::Color color={255, 255, 255, 255})
 Draw a bounding box with wires.
 
::Vector3 GetMax () const
 Retrieves the max value for the object. More...
 
::Vector3 GetMin () const
 Retrieves the min value for the object. More...
 
+BoundingBoxoperator= (const ::BoundingBox &box)
 
void SetMax (::Vector3 value)
 Sets the max value for the object. More...
 
void SetMin (::Vector3 value)
 Sets the min value for the object. More...
 
+

Detailed Description

+

Bounding box type.

+ +

Definition at line 11 of file BoundingBox.hpp.

+

Member Function Documentation

+ +

◆ GetMax()

+ +
+
+ + + + + +
+ + + + + + + +
::Vector3 raylib::BoundingBox::GetMax () const
+
+inline
+
+ +

Retrieves the max value for the object.

+
Returns
The max value of the object.
+ +

Definition at line 35 of file BoundingBox.hpp.

+ +
+
+ +

◆ GetMin()

+ +
+
+ + + + + +
+ + + + + + + +
::Vector3 raylib::BoundingBox::GetMin () const
+
+inline
+
+ +

Retrieves the min value for the object.

+
Returns
The min value of the object.
+ +

Definition at line 34 of file BoundingBox.hpp.

+ +
+
+ +

◆ SetMax()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::BoundingBox::SetMax (::Vector3 value)
+
+inline
+
+ +

Sets the max value for the object.

+
Parameters
+ + +
valueThe value of which to set max to.
+
+
+ +

Definition at line 35 of file BoundingBox.hpp.

+ +
+
+ +

◆ SetMin()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::BoundingBox::SetMin (::Vector3 value)
+
+inline
+
+ +

Sets the min value for the object.

+
Parameters
+ + +
valueThe value of which to set min to.
+
+
+ +

Definition at line 34 of file BoundingBox.hpp.

+ +
+
+
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_camera2_d-members.html b/raylib-cpp/docs/classraylib_1_1_camera2_d-members.html new file mode 100644 index 00000000..de886802 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_camera2_d-members.html @@ -0,0 +1,102 @@ + + + + + + + +raylib-cpp: Member List + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
raylib::Camera2D Member List
+
+
+ +

This is the complete list of members for raylib::Camera2D, including all inherited members.

+ + + + + + + + + + + + + + + + + + +
BeginMode() (defined in raylib::Camera2D)raylib::Camera2Dinline
Camera2D() (defined in raylib::Camera2D)raylib::Camera2Dinline
Camera2D(const ::Camera2D &camera) (defined in raylib::Camera2D)raylib::Camera2Dinline
Camera2D(::Vector2 offsetValue, ::Vector2 targetValue, float rotationValue=0, float zoomValue=1) (defined in raylib::Camera2D)raylib::Camera2Dinline
EndMode() (defined in raylib::Camera2D)raylib::Camera2Dinline
GetMatrix() constraylib::Camera2Dinline
GetOffset() constraylib::Camera2Dinline
GetRotation() constraylib::Camera2Dinline
GetScreenToWorld(::Vector2 position) constraylib::Camera2Dinline
GetTarget() constraylib::Camera2Dinline
GetWorldToScreen(::Vector2 position) constraylib::Camera2Dinline
GetZoom() constraylib::Camera2Dinline
operator=(const ::Camera2D &camera) (defined in raylib::Camera2D)raylib::Camera2Dinline
SetOffset(::Vector2 value)raylib::Camera2Dinline
SetRotation(float value)raylib::Camera2Dinline
SetTarget(::Vector2 value)raylib::Camera2Dinline
SetZoom(float value)raylib::Camera2Dinline
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_camera2_d.html b/raylib-cpp/docs/classraylib_1_1_camera2_d.html new file mode 100644 index 00000000..c67aab3d --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_camera2_d.html @@ -0,0 +1,412 @@ + + + + + + + +raylib-cpp: raylib::Camera2D Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
raylib::Camera2D Class Reference
+
+
+ +

Camera2D type, defines a 2d camera. + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Camera2D (::Vector2 offsetValue, ::Vector2 targetValue, float rotationValue=0, float zoomValue=1)
 
Camera2D (const ::Camera2D &camera)
 
+Camera2DBeginMode ()
 
+Camera2DEndMode ()
 
+Matrix GetMatrix () const
 Returns camera 2d transform matrix.
 
::Vector2 GetOffset () const
 Retrieves the offset value for the object. More...
 
float GetRotation () const
 Retrieves the rotation value for the object. More...
 
+Vector2 GetScreenToWorld (::Vector2 position) const
 Returns the world space position for a 2d camera screen space position.
 
::Vector2 GetTarget () const
 Retrieves the target value for the object. More...
 
+Vector2 GetWorldToScreen (::Vector2 position) const
 Returns the screen space position for a 3d world space position.
 
float GetZoom () const
 Retrieves the zoom value for the object. More...
 
+Camera2Doperator= (const ::Camera2D &camera)
 
void SetOffset (::Vector2 value)
 Sets the offset value for the object. More...
 
void SetRotation (float value)
 Sets the rotation value for the object. More...
 
void SetTarget (::Vector2 value)
 Sets the target value for the object. More...
 
void SetZoom (float value)
 Sets the zoom value for the object. More...
 
+

Detailed Description

+

Camera2D type, defines a 2d camera.

+ +

Definition at line 12 of file Camera2D.hpp.

+

Member Function Documentation

+ +

◆ GetOffset()

+ +
+
+ + + + + +
+ + + + + + + +
::Vector2 raylib::Camera2D::GetOffset () const
+
+inline
+
+ +

Retrieves the offset value for the object.

+
Returns
The offset value of the object.
+ +

Definition at line 37 of file Camera2D.hpp.

+ +
+
+ +

◆ GetRotation()

+ +
+
+ + + + + +
+ + + + + + + +
float raylib::Camera2D::GetRotation () const
+
+inline
+
+ +

Retrieves the rotation value for the object.

+
Returns
The rotation value of the object.
+ +

Definition at line 39 of file Camera2D.hpp.

+ +
+
+ +

◆ GetTarget()

+ +
+
+ + + + + +
+ + + + + + + +
::Vector2 raylib::Camera2D::GetTarget () const
+
+inline
+
+ +

Retrieves the target value for the object.

+
Returns
The target value of the object.
+ +

Definition at line 38 of file Camera2D.hpp.

+ +
+
+ +

◆ GetZoom()

+ +
+
+ + + + + +
+ + + + + + + +
float raylib::Camera2D::GetZoom () const
+
+inline
+
+ +

Retrieves the zoom value for the object.

+
Returns
The zoom value of the object.
+ +

Definition at line 40 of file Camera2D.hpp.

+ +
+
+ +

◆ SetOffset()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Camera2D::SetOffset (::Vector2 value)
+
+inline
+
+ +

Sets the offset value for the object.

+
Parameters
+ + +
valueThe value of which to set offset to.
+
+
+ +

Definition at line 37 of file Camera2D.hpp.

+ +
+
+ +

◆ SetRotation()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Camera2D::SetRotation (float value)
+
+inline
+
+ +

Sets the rotation value for the object.

+
Parameters
+ + +
valueThe value of which to set rotation to.
+
+
+ +

Definition at line 39 of file Camera2D.hpp.

+ +
+
+ +

◆ SetTarget()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Camera2D::SetTarget (::Vector2 value)
+
+inline
+
+ +

Sets the target value for the object.

+
Parameters
+ + +
valueThe value of which to set target to.
+
+
+ +

Definition at line 38 of file Camera2D.hpp.

+ +
+
+ +

◆ SetZoom()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Camera2D::SetZoom (float value)
+
+inline
+
+ +

Sets the zoom value for the object.

+
Parameters
+ + +
valueThe value of which to set zoom to.
+
+
+ +

Definition at line 40 of file Camera2D.hpp.

+ +
+
+
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_camera3_d-members.html b/raylib-cpp/docs/classraylib_1_1_camera3_d-members.html new file mode 100644 index 00000000..c7db18c6 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_camera3_d-members.html @@ -0,0 +1,111 @@ + + + + + + + +raylib-cpp: Member List + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
raylib::Camera3D Member List
+
+
+ +

This is the complete list of members for raylib::Camera3D, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
BeginMode()raylib::Camera3Dinline
Camera3D(const ::Camera3D &camera) (defined in raylib::Camera3D)raylib::Camera3Dinline
Camera3D(::Vector3 positionValue, ::Vector3 targetValue, ::Vector3 upValue, float fovyValue=0, int projectionValue=0) (defined in raylib::Camera3D)raylib::Camera3Dinline
Camera3D() (defined in raylib::Camera3D)raylib::Camera3Dinline
DrawBillboard(const ::Texture2D &texture, ::Vector3 center, float size, ::Color tint={255, 255, 255, 255})raylib::Camera3Dinline
DrawBillboard(const ::Texture2D &texture, ::Rectangle sourceRec, ::Vector3 center, float size, ::Color tint={255, 255, 255, 255})raylib::Camera3Dinline
EndMode()raylib::Camera3Dinline
GetFovy() constraylib::Camera3Dinline
GetMatrix() constraylib::Camera3Dinline
GetMouseRay(::Vector2 mousePosition) constraylib::Camera3Dinline
GetPosition() constraylib::Camera3Dinline
GetProjection() constraylib::Camera3Dinline
GetTarget() constraylib::Camera3Dinline
GetUp() constraylib::Camera3Dinline
GetWorldToScreen(::Vector3 position) constraylib::Camera3Dinline
operator=(const ::Camera3D &camera) (defined in raylib::Camera3D)raylib::Camera3Dinline
SetAltControl(int altKey)raylib::Camera3Dinline
SetFovy(float value)raylib::Camera3Dinline
SetMode(int mode)raylib::Camera3Dinline
SetMoveControls(int frontKey, int backKey, int rightKey, int leftKey, int upKey, int downKey)raylib::Camera3Dinline
SetPosition(::Vector3 value)raylib::Camera3Dinline
SetProjection(int value)raylib::Camera3Dinline
SetSmoothZoomControl(int szKey)raylib::Camera3Dinline
SetTarget(::Vector3 value)raylib::Camera3Dinline
SetUp(::Vector3 value)raylib::Camera3Dinline
Update()raylib::Camera3Dinline
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_camera3_d.html b/raylib-cpp/docs/classraylib_1_1_camera3_d.html new file mode 100644 index 00000000..e87a9847 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_camera3_d.html @@ -0,0 +1,514 @@ + + + + + + + +raylib-cpp: raylib::Camera3D Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
raylib::Camera3D Class Reference
+
+
+ +

Camera type, defines a camera position/orientation in 3d space. + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Camera3D (::Vector3 positionValue, ::Vector3 targetValue, ::Vector3 upValue, float fovyValue=0, int projectionValue=0)
 
Camera3D (const ::Camera3D &camera)
 
+Camera3DBeginMode ()
 Initializes 3D mode with custom camera (3D)
 
+Camera3DDrawBillboard (const ::Texture2D &texture, ::Rectangle sourceRec, ::Vector3 center, float size, ::Color tint={255, 255, 255, 255})
 Draw a billboard texture defined by source.
 
+Camera3DDrawBillboard (const ::Texture2D &texture, ::Vector3 center, float size, ::Color tint={255, 255, 255, 255})
 Draw a billboard texture.
 
+Camera3DEndMode ()
 Ends 3D mode and returns to default 2D orthographic mode.
 
float GetFovy () const
 Retrieves the fovy value for the object. More...
 
+Matrix GetMatrix () const
 Get transform matrix for camera.
 
+Ray GetMouseRay (::Vector2 mousePosition) const
 Returns a ray trace from mouse position.
 
::Vector3 GetPosition () const
 Retrieves the position value for the object. More...
 
int GetProjection () const
 Retrieves the projection value for the object. More...
 
::Vector3 GetTarget () const
 Retrieves the target value for the object. More...
 
::Vector3 GetUp () const
 Retrieves the up value for the object. More...
 
+Vector2 GetWorldToScreen (::Vector3 position) const
 Returns the screen space position for a 3d world space position.
 
+Camera3Doperator= (const ::Camera3D &camera)
 
+Camera3DSetAltControl (int altKey)
 Set camera alt key to combine with mouse movement (free camera)
 
void SetFovy (float value)
 Sets the fovy value for the object. More...
 
+Camera3DSetMode (int mode)
 Set camera mode (multiple camera modes available)
 
+Camera3DSetMoveControls (int frontKey, int backKey, int rightKey, int leftKey, int upKey, int downKey)
 Set camera move controls (1st person and 3rd person cameras)
 
void SetPosition (::Vector3 value)
 Sets the position value for the object. More...
 
void SetProjection (int value)
 Sets the projection value for the object. More...
 
+Camera3DSetSmoothZoomControl (int szKey)
 Set camera smooth zoom key to combine with mouse (free camera)
 
void SetTarget (::Vector3 value)
 Sets the target value for the object. More...
 
void SetUp (::Vector3 value)
 Sets the up value for the object. More...
 
+Camera3DUpdate ()
 Update camera position for selected mode.
 
+

Detailed Description

+

Camera type, defines a camera position/orientation in 3d space.

+ +

Definition at line 12 of file Camera3D.hpp.

+

Member Function Documentation

+ +

◆ GetFovy()

+ +
+
+ + + + + +
+ + + + + + + +
float raylib::Camera3D::GetFovy () const
+
+inline
+
+ +

Retrieves the fovy value for the object.

+
Returns
The fovy value of the object.
+ +

Definition at line 32 of file Camera3D.hpp.

+ +
+
+ +

◆ GetPosition()

+ +
+
+ + + + + +
+ + + + + + + +
::Vector3 raylib::Camera3D::GetPosition () const
+
+inline
+
+ +

Retrieves the position value for the object.

+
Returns
The position value of the object.
+ +

Definition at line 29 of file Camera3D.hpp.

+ +
+
+ +

◆ GetProjection()

+ +
+
+ + + + + +
+ + + + + + + +
int raylib::Camera3D::GetProjection () const
+
+inline
+
+ +

Retrieves the projection value for the object.

+
Returns
The projection value of the object.
+ +

Definition at line 33 of file Camera3D.hpp.

+ +
+
+ +

◆ GetTarget()

+ +
+
+ + + + + +
+ + + + + + + +
::Vector3 raylib::Camera3D::GetTarget () const
+
+inline
+
+ +

Retrieves the target value for the object.

+
Returns
The target value of the object.
+ +

Definition at line 30 of file Camera3D.hpp.

+ +
+
+ +

◆ GetUp()

+ +
+
+ + + + + +
+ + + + + + + +
::Vector3 raylib::Camera3D::GetUp () const
+
+inline
+
+ +

Retrieves the up value for the object.

+
Returns
The up value of the object.
+ +

Definition at line 31 of file Camera3D.hpp.

+ +
+
+ +

◆ SetFovy()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Camera3D::SetFovy (float value)
+
+inline
+
+ +

Sets the fovy value for the object.

+
Parameters
+ + +
valueThe value of which to set fovy to.
+
+
+ +

Definition at line 32 of file Camera3D.hpp.

+ +
+
+ +

◆ SetPosition()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Camera3D::SetPosition (::Vector3 value)
+
+inline
+
+ +

Sets the position value for the object.

+
Parameters
+ + +
valueThe value of which to set position to.
+
+
+ +

Definition at line 29 of file Camera3D.hpp.

+ +
+
+ +

◆ SetProjection()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Camera3D::SetProjection (int value)
+
+inline
+
+ +

Sets the projection value for the object.

+
Parameters
+ + +
valueThe value of which to set projection to.
+
+
+ +

Definition at line 33 of file Camera3D.hpp.

+ +
+
+ +

◆ SetTarget()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Camera3D::SetTarget (::Vector3 value)
+
+inline
+
+ +

Sets the target value for the object.

+
Parameters
+ + +
valueThe value of which to set target to.
+
+
+ +

Definition at line 30 of file Camera3D.hpp.

+ +
+
+ +

◆ SetUp()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Camera3D::SetUp (::Vector3 value)
+
+inline
+
+ +

Sets the up value for the object.

+
Parameters
+ + +
valueThe value of which to set up to.
+
+
+ +

Definition at line 31 of file Camera3D.hpp.

+ +
+
+
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_color-members.html b/raylib-cpp/docs/classraylib_1_1_color-members.html new file mode 100644 index 00000000..f4811f42 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_color-members.html @@ -0,0 +1,151 @@ + + + + + + + +raylib-cpp: Member List + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
raylib::Color Member List
+
+
+ +

This is the complete list of members for raylib::Color, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Alpha(float alpha) constraylib::Colorinline
AlphaBlend(::Color dst, ::Color tint) constraylib::Colorinline
Beige() (defined in raylib::Color)raylib::Colorinlinestatic
Black() (defined in raylib::Color)raylib::Colorinlinestatic
Blank() (defined in raylib::Color)raylib::Colorinlinestatic
Blue() (defined in raylib::Color)raylib::Colorinlinestatic
Brown() (defined in raylib::Color)raylib::Colorinlinestatic
ClearBackground()raylib::Colorinline
Color(const ::Color &color) (defined in raylib::Color)raylib::Colorinline
Color(unsigned char red, unsigned char green, unsigned char blue, unsigned char alpha=255) (defined in raylib::Color)raylib::Colorinline
Color()raylib::Colorinline
Color(::Vector3 hsv)raylib::Colorinline
Color(int hexValue)raylib::Colorinline
Color(::Vector4 normalized)raylib::Colorinline
DarkBlue() (defined in raylib::Color)raylib::Colorinlinestatic
DarkBrown() (defined in raylib::Color)raylib::Colorinlinestatic
DarkGray() (defined in raylib::Color)raylib::Colorinlinestatic
DarkGreen() (defined in raylib::Color)raylib::Colorinlinestatic
DarkPurple() (defined in raylib::Color)raylib::Colorinlinestatic
DrawLine(int startPosX, int startPosY, int endPosX, int endPosY)raylib::Colorinline
DrawLine(::Vector2 startPos, ::Vector2 endPos) (defined in raylib::Color)raylib::Colorinline
DrawLine(::Vector2 startPos, ::Vector2 endPos, float thick) (defined in raylib::Color)raylib::Colorinline
DrawLineBezier(::Vector2 startPos, ::Vector2 endPos, float thick) (defined in raylib::Color)raylib::Colorinline
DrawLineStrip(::Vector2 *points, int numPoints) (defined in raylib::Color)raylib::Colorinline
DrawPixel(int x, int y) (defined in raylib::Color)raylib::Colorinline
DrawPixel(::Vector2 pos)raylib::Colorinline
DrawRectangle(int posX, int posY, int width, int height) (defined in raylib::Color)raylib::Colorinline
DrawRectangle(::Vector2 position, ::Vector2 size) (defined in raylib::Color)raylib::Colorinline
DrawRectangle(::Rectangle rec) (defined in raylib::Color)raylib::Colorinline
DrawRectangle(::Rectangle rec, ::Vector2 origin, float rotation) (defined in raylib::Color)raylib::Colorinline
DrawRectangleLines(int posX, int posY, int width, int height) (defined in raylib::Color)raylib::Colorinline
DrawRectangleLines(::Rectangle rec, int lineThick) (defined in raylib::Color)raylib::Colorinline
DrawText(const std::string &text, int posX, int posY, int fontSize) (defined in raylib::Color)raylib::Colorinline
DrawText(const ::Font &font, const std::string &text, ::Vector2 position, float fontSize, float spacing) (defined in raylib::Color)raylib::Colorinline
DrawText(const ::Font &font, const std::string &text, ::Rectangle rec, float fontSize, float spacing, bool wordWrap=false) (defined in raylib::Color)raylib::Colorinline
Fade(float alpha) constraylib::Colorinline
FromHSV(float hue, float saturation, float value)raylib::Colorinlinestatic
GetA() constraylib::Colorinline
GetB() constraylib::Colorinline
GetG() constraylib::Colorinline
GetR() constraylib::Colorinline
Gold() (defined in raylib::Color)raylib::Colorinlinestatic
Gray() (defined in raylib::Color)raylib::Colorinlinestatic
Green() (defined in raylib::Color)raylib::Colorinlinestatic
LightGray() (defined in raylib::Color)raylib::Colorinlinestatic
Lime() (defined in raylib::Color)raylib::Colorinlinestatic
Magenta() (defined in raylib::Color)raylib::Colorinlinestatic
Maroon() (defined in raylib::Color)raylib::Colorinlinestatic
Normalize() constraylib::Colorinline
operator int() constraylib::Colorinline
operator=(const ::Color &color) (defined in raylib::Color)raylib::Colorinline
Orange() (defined in raylib::Color)raylib::Colorinlinestatic
Pink() (defined in raylib::Color)raylib::Colorinlinestatic
Purple() (defined in raylib::Color)raylib::Colorinlinestatic
RayWhite() (defined in raylib::Color)raylib::Colorinlinestatic
Red() (defined in raylib::Color)raylib::Colorinlinestatic
SetA(unsigned char value)raylib::Colorinline
SetB(unsigned char value)raylib::Colorinline
SetG(unsigned char value)raylib::Colorinline
SetR(unsigned char value)raylib::Colorinline
SkyBlue() (defined in raylib::Color)raylib::Colorinlinestatic
ToHSV() constraylib::Colorinline
ToInt() constraylib::Colorinline
Violet() (defined in raylib::Color)raylib::Colorinlinestatic
White() (defined in raylib::Color)raylib::Colorinlinestatic
Yellow() (defined in raylib::Color)raylib::Colorinlinestatic
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_color.html b/raylib-cpp/docs/classraylib_1_1_color.html new file mode 100644 index 00000000..62a56c17 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_color.html @@ -0,0 +1,578 @@ + + + + + + + +raylib-cpp: raylib::Color Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+ +
+ +

Color type, RGBA (32bit) + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Color ()
 Black.
 
Color (::Vector3 hsv)
 Returns a Color from HSV values.
 
Color (::Vector4 normalized)
 Returns Color from normalized values [0..1].
 
Color (const ::Color &color)
 
Color (int hexValue)
 Get Color structure from hexadecimal value.
 
Color (unsigned char red, unsigned char green, unsigned char blue, unsigned char alpha=255)
 
+Color Alpha (float alpha) const
 Returns color with alpha applied, alpha goes from 0.0f to 1.0f.
 
+Color AlphaBlend (::Color dst, ::Color tint) const
 Returns src alpha-blended into dst color with tint.
 
+ColorClearBackground ()
 Set background color (framebuffer clear color)
 
+ColorDrawLine (::Vector2 startPos, ::Vector2 endPos)
 
+ColorDrawLine (::Vector2 startPos, ::Vector2 endPos, float thick)
 
+ColorDrawLine (int startPosX, int startPosY, int endPosX, int endPosY)
 Draw a line.
 
+ColorDrawLineBezier (::Vector2 startPos, ::Vector2 endPos, float thick)
 
+ColorDrawLineStrip (::Vector2 *points, int numPoints)
 
+ColorDrawPixel (::Vector2 pos)
 Draw a pixel.
 
+ColorDrawPixel (int x, int y)
 
+ColorDrawRectangle (::Rectangle rec)
 
+ColorDrawRectangle (::Rectangle rec, ::Vector2 origin, float rotation)
 
+ColorDrawRectangle (::Vector2 position, ::Vector2 size)
 
+ColorDrawRectangle (int posX, int posY, int width, int height)
 
+ColorDrawRectangleLines (::Rectangle rec, int lineThick)
 
+ColorDrawRectangleLines (int posX, int posY, int width, int height)
 
+ColorDrawText (const ::Font &font, const std::string &text, ::Rectangle rec, float fontSize, float spacing, bool wordWrap=false)
 
+ColorDrawText (const ::Font &font, const std::string &text, ::Vector2 position, float fontSize, float spacing)
 
+ColorDrawText (const std::string &text, int posX, int posY, int fontSize)
 
+Color Fade (float alpha) const
 Returns color with alpha applied, alpha goes from 0.0f to 1.0f.
 
unsigned char GetA () const
 Retrieves the a value for the object. More...
 
unsigned char GetB () const
 Retrieves the b value for the object. More...
 
unsigned char GetG () const
 Retrieves the g value for the object. More...
 
unsigned char GetR () const
 Retrieves the r value for the object. More...
 
+Vector4 Normalize () const
 Returns Color normalized as float [0..1].
 
operator int () const
 Returns hexadecimal value for a Color.
 
+Coloroperator= (const ::Color &color)
 
void SetA (unsigned char value)
 Sets the a value for the object. More...
 
void SetB (unsigned char value)
 Sets the b value for the object. More...
 
void SetG (unsigned char value)
 Sets the g value for the object. More...
 
void SetR (unsigned char value)
 Sets the r value for the object. More...
 
+Vector3 ToHSV () const
 Returns HSV values for a Color.
 
+int ToInt () const
 Returns hexadecimal value for a Color.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Static Public Member Functions

+static Color Beige ()
 
+static Color Black ()
 
+static Color Blank ()
 
+static Color Blue ()
 
+static Color Brown ()
 
+static Color DarkBlue ()
 
+static Color DarkBrown ()
 
+static Color DarkGray ()
 
+static Color DarkGreen ()
 
+static Color DarkPurple ()
 
+::Color FromHSV (float hue, float saturation, float value)
 Returns a Color from HSV values.
 
+static Color Gold ()
 
+static Color Gray ()
 
+static Color Green ()
 
+static Color LightGray ()
 
+static Color Lime ()
 
+static Color Magenta ()
 
+static Color Maroon ()
 
+static Color Orange ()
 
+static Color Pink ()
 
+static Color Purple ()
 
+static Color RayWhite ()
 
+static Color Red ()
 
+static Color SkyBlue ()
 
+static Color Violet ()
 
+static Color White ()
 
+static Color Yellow ()
 
+

Detailed Description

+

Color type, RGBA (32bit)

+ +

Definition at line 14 of file Color.hpp.

+

Member Function Documentation

+ +

◆ GetA()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned char raylib::Color::GetA () const
+
+inline
+
+ +

Retrieves the a value for the object.

+
Returns
The a value of the object.
+ +

Definition at line 98 of file Color.hpp.

+ +
+
+ +

◆ GetB()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned char raylib::Color::GetB () const
+
+inline
+
+ +

Retrieves the b value for the object.

+
Returns
The b value of the object.
+ +

Definition at line 97 of file Color.hpp.

+ +
+
+ +

◆ GetG()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned char raylib::Color::GetG () const
+
+inline
+
+ +

Retrieves the g value for the object.

+
Returns
The g value of the object.
+ +

Definition at line 96 of file Color.hpp.

+ +
+
+ +

◆ GetR()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned char raylib::Color::GetR () const
+
+inline
+
+ +

Retrieves the r value for the object.

+
Returns
The r value of the object.
+ +

Definition at line 95 of file Color.hpp.

+ +
+
+ +

◆ SetA()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Color::SetA (unsigned char value)
+
+inline
+
+ +

Sets the a value for the object.

+
Parameters
+ + +
valueThe value of which to set a to.
+
+
+ +

Definition at line 98 of file Color.hpp.

+ +
+
+ +

◆ SetB()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Color::SetB (unsigned char value)
+
+inline
+
+ +

Sets the b value for the object.

+
Parameters
+ + +
valueThe value of which to set b to.
+
+
+ +

Definition at line 97 of file Color.hpp.

+ +
+
+ +

◆ SetG()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Color::SetG (unsigned char value)
+
+inline
+
+ +

Sets the g value for the object.

+
Parameters
+ + +
valueThe value of which to set g to.
+
+
+ +

Definition at line 96 of file Color.hpp.

+ +
+
+ +

◆ SetR()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Color::SetR (unsigned char value)
+
+inline
+
+ +

Sets the r value for the object.

+
Parameters
+ + +
valueThe value of which to set r to.
+
+
+ +

Definition at line 95 of file Color.hpp.

+ +
+
+
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_dropped_files-members.html b/raylib-cpp/docs/classraylib_1_1_dropped_files-members.html new file mode 100644 index 00000000..8359bb22 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_dropped_files-members.html @@ -0,0 +1,100 @@ + + + + + + + +raylib-cpp: Member List + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
raylib::DroppedFiles Member List
+
+
+ +

This is the complete list of members for raylib::DroppedFiles, including all inherited members.

+ + + + + + + + + + + + + + + + +
at(int pos) constraylib::DroppedFilesinline
back() constraylib::DroppedFilesinline
clear()raylib::DroppedFilesinline
Clear()raylib::DroppedFilesinline
Count() constraylib::DroppedFilesinline
DroppedFiles()raylib::DroppedFilesinline
empty() constraylib::DroppedFilesinline
front() constraylib::DroppedFilesinline
Get()raylib::DroppedFilesinline
IsFileDropped() constraylib::DroppedFilesinline
m_countraylib::DroppedFilesprotected
m_filesraylib::DroppedFilesprotected
operator[](int pos)raylib::DroppedFilesinline
size() constraylib::DroppedFilesinline
~DroppedFiles()raylib::DroppedFilesinline
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_dropped_files.html b/raylib-cpp/docs/classraylib_1_1_dropped_files.html new file mode 100644 index 00000000..59cba3f9 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_dropped_files.html @@ -0,0 +1,574 @@ + + + + + + + +raylib-cpp: raylib::DroppedFiles Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
raylib::DroppedFiles Class Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 DroppedFiles ()
 
 ~DroppedFiles ()
 
std::string at (int pos) const
 
std::string back () const
 
DroppedFilesClear ()
 Clear dropped files paths buffer. More...
 
void clear ()
 
int Count () const
 
bool empty () const
 
std::string front () const
 
DroppedFilesGet ()
 Get the dropped files names. More...
 
bool IsFileDropped () const
 Check if a file has been dropped into window. More...
 
std::string operator[] (int pos)
 
int size () const
 
+ + + + + +

+Protected Attributes

int m_count
 
char ** m_files
 
+

Detailed Description

+
See also
raylib::GetDroppedFiles()
+ +

Definition at line 36 of file DroppedFiles.hpp.

+

Constructor & Destructor Documentation

+ +

◆ DroppedFiles()

+ +
+
+ + + + + +
+ + + + + + + +
raylib::DroppedFiles::DroppedFiles ()
+
+inline
+
+ +

Definition at line 38 of file DroppedFiles.hpp.

+ +

References Get().

+ +
+
+ +

◆ ~DroppedFiles()

+ +
+
+ + + + + +
+ + + + + + + +
raylib::DroppedFiles::~DroppedFiles ()
+
+inline
+
+ +

Definition at line 67 of file DroppedFiles.hpp.

+ +

References Clear().

+ +
+
+

Member Function Documentation

+ +

◆ at()

+ +
+
+ + + + + +
+ + + + + + + + +
std::string raylib::DroppedFiles::at (int pos) const
+
+inline
+
+ +

Definition at line 99 of file DroppedFiles.hpp.

+ +

References m_files.

+ +

Referenced by back(), front(), and operator[]().

+ +
+
+ +

◆ back()

+ +
+
+ + + + + +
+ + + + + + + +
std::string raylib::DroppedFiles::back () const
+
+inline
+
+ +

Definition at line 95 of file DroppedFiles.hpp.

+ +

References at(), and m_count.

+ +
+
+ +

◆ Clear()

+ +
+
+ + + + + +
+ + + + + + + +
DroppedFiles& raylib::DroppedFiles::Clear ()
+
+inline
+
+ +

Clear dropped files paths buffer.

+ +

Definition at line 60 of file DroppedFiles.hpp.

+ +

References m_count, and m_files.

+ +

Referenced by clear(), and ~DroppedFiles().

+ +
+
+ +

◆ clear()

+ +
+
+ + + + + +
+ + + + + + + +
void raylib::DroppedFiles::clear ()
+
+inline
+
+ +

Definition at line 87 of file DroppedFiles.hpp.

+ +

References Clear().

+ +
+
+ +

◆ Count()

+ +
+
+ + + + + +
+ + + + + + + +
int raylib::DroppedFiles::Count () const
+
+inline
+
+ +

Definition at line 75 of file DroppedFiles.hpp.

+ +

References m_count.

+ +
+
+ +

◆ empty()

+ +
+
+ + + + + +
+ + + + + + + +
bool raylib::DroppedFiles::empty () const
+
+inline
+
+ +

Definition at line 83 of file DroppedFiles.hpp.

+ +

References m_count.

+ +
+
+ +

◆ front()

+ +
+
+ + + + + +
+ + + + + + + +
std::string raylib::DroppedFiles::front () const
+
+inline
+
+ +

Definition at line 91 of file DroppedFiles.hpp.

+ +

References at().

+ +
+
+ +

◆ Get()

+ +
+
+ + + + + +
+ + + + + + + +
DroppedFiles& raylib::DroppedFiles::Get ()
+
+inline
+
+ +

Get the dropped files names.

+ +

Definition at line 45 of file DroppedFiles.hpp.

+ +

References raylib::GetDroppedFiles(), m_count, and m_files.

+ +

Referenced by DroppedFiles().

+ +
+
+ +

◆ IsFileDropped()

+ +
+
+ + + + + +
+ + + + + + + +
bool raylib::DroppedFiles::IsFileDropped () const
+
+inline
+
+ +

Check if a file has been dropped into window.

+ +

Definition at line 53 of file DroppedFiles.hpp.

+ +
+
+ +

◆ operator[]()

+ +
+
+ + + + + +
+ + + + + + + + +
std::string raylib::DroppedFiles::operator[] (int pos)
+
+inline
+
+ +

Definition at line 71 of file DroppedFiles.hpp.

+ +

References at().

+ +
+
+ +

◆ size()

+ +
+
+ + + + + +
+ + + + + + + +
int raylib::DroppedFiles::size () const
+
+inline
+
+ +

Definition at line 79 of file DroppedFiles.hpp.

+ +

References m_count.

+ +
+
+

Member Data Documentation

+ +

◆ m_count

+ +
+
+ + + + + +
+ + + + +
int raylib::DroppedFiles::m_count
+
+protected
+
+ +

Definition at line 109 of file DroppedFiles.hpp.

+ +

Referenced by back(), Clear(), Count(), empty(), Get(), and size().

+ +
+
+ +

◆ m_files

+ +
+
+ + + + + +
+ + + + +
char** raylib::DroppedFiles::m_files
+
+protected
+
+ +

Definition at line 108 of file DroppedFiles.hpp.

+ +

Referenced by at(), Clear(), and Get().

+ +
+
+
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_font-members.html b/raylib-cpp/docs/classraylib_1_1_font-members.html new file mode 100644 index 00000000..41a5ac26 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_font-members.html @@ -0,0 +1,113 @@ + + + + + + + +raylib-cpp: Member List + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
raylib::Font Member List
+
+
+ +

This is the complete list of members for raylib::Font, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DrawText(const std::string &text, ::Vector2 position, float fontSize, float spacing, ::Color tint=WHITE)raylib::Fontinline
DrawText(const std::string &text, ::Rectangle rec, float fontSize, float spacing, bool wordWrap=false, ::Color tint=WHITE) (defined in raylib::Font)raylib::Fontinline
DrawText(const std::string &text, ::Rectangle rec, float fontSize, float spacing, bool wordWrap, ::Color tint, int selectStart, int selectLength, ::Color selectText, ::Color selectBack)raylib::Fontinline
DrawText(int codepoint, ::Vector2 position, float fontSize, ::Color tint={ 255, 255, 255, 255 })raylib::Fontinline
Font() (defined in raylib::Font)raylib::Fontinline
Font(const ::Font &font) (defined in raylib::Font)raylib::Fontinline
Font(const std::string &fileName) (defined in raylib::Font)raylib::Fontinline
Font(const std::string &fileName, int fontSize, int *fontChars, int charCount) (defined in raylib::Font)raylib::Fontinline
Font(const ::Image &image, ::Color key, int firstChar) (defined in raylib::Font)raylib::Fontinline
Font(const std::string &fileType, const unsigned char *fileData, int dataSize, int fontSize, int *fontChars, int charsCount) (defined in raylib::Font)raylib::Fontinline
GetBaseSize() constraylib::Fontinline
GetChars() constraylib::Fontinline
GetCharsCount() constraylib::Fontinline
GetCharsPadding() constraylib::Fontinline
GetGlyphIndex(int character) constraylib::Fontinline
GetRecs() constraylib::Fontinline
GetTexture() constraylib::Fontinline
ImageText(const std::string &text, float fontSize, float spacing, ::Color tint) constraylib::Fontinline
MeasureText(const std::string &text, float fontSize, float spacing) constraylib::Fontinline
operator=(const ::Font &font) (defined in raylib::Font)raylib::Fontinline
SetBaseSize(int value)raylib::Fontinline
SetChars(::CharInfo *value)raylib::Fontinline
SetCharsCount(int value)raylib::Fontinline
SetCharsPadding(int value)raylib::Fontinline
SetRecs(::Rectangle *value)raylib::Fontinline
SetTexture(::Texture2D value)raylib::Fontinline
Unload() (defined in raylib::Font)raylib::Fontinline
~Font() (defined in raylib::Font)raylib::Fontinline
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_font.html b/raylib-cpp/docs/classraylib_1_1_font.html new file mode 100644 index 00000000..3d833377 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_font.html @@ -0,0 +1,577 @@ + + + + + + + +raylib-cpp: raylib::Font Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
raylib::Font Class Reference
+
+
+ +

Font type, includes texture and charSet array data. + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Font (const ::Font &font)
 
Font (const ::Image &image, ::Color key, int firstChar)
 
Font (const std::string &fileName)
 
Font (const std::string &fileName, int fontSize, int *fontChars, int charCount)
 
Font (const std::string &fileType, const unsigned char *fileData, int dataSize, int fontSize, int *fontChars, int charsCount)
 
+FontDrawText (const std::string &text, ::Rectangle rec, float fontSize, float spacing, bool wordWrap, ::Color tint, int selectStart, int selectLength, ::Color selectText, ::Color selectBack)
 Draw text using font inside rectangle limits with support for text selection.
 
+FontDrawText (const std::string &text, ::Rectangle rec, float fontSize, float spacing, bool wordWrap=false, ::Color tint=WHITE)
 
+FontDrawText (const std::string &text, ::Vector2 position, float fontSize, float spacing, ::Color tint=WHITE)
 Draw text using font and additional parameters.
 
+FontDrawText (int codepoint, ::Vector2 position, float fontSize, ::Color tint={ 255, 255, 255, 255 })
 Draw one character (codepoint)
 
int GetBaseSize () const
 Retrieves the baseSize value for the object. More...
 
::CharInfo * GetChars () const
 Retrieves the chars value for the object. More...
 
int GetCharsCount () const
 Retrieves the charsCount value for the object. More...
 
int GetCharsPadding () const
 Retrieves the charsPadding value for the object. More...
 
+int GetGlyphIndex (int character) const
 Get index position for a unicode character on font.
 
::RectangleGetRecs () const
 Retrieves the recs value for the object. More...
 
::Texture2D GetTexture () const
 Retrieves the texture value for the object. More...
 
+inline ::Image ImageText (const std::string &text, float fontSize, float spacing, ::Color tint) const
 Create an image from text (custom sprite font)
 
+Vector2 MeasureText (const std::string &text, float fontSize, float spacing) const
 Measure string size for Font.
 
+Fontoperator= (const ::Font &font)
 
void SetBaseSize (int value)
 Sets the baseSize value for the object. More...
 
void SetChars (::CharInfo *value)
 Sets the chars value for the object. More...
 
void SetCharsCount (int value)
 Sets the charsCount value for the object. More...
 
void SetCharsPadding (int value)
 Sets the charsPadding value for the object. More...
 
void SetRecs (::Rectangle *value)
 Sets the recs value for the object. More...
 
void SetTexture (::Texture2D value)
 Sets the texture value for the object. More...
 
+void Unload ()
 
+

Detailed Description

+

Font type, includes texture and charSet array data.

+ +

Definition at line 13 of file Font.hpp.

+

Member Function Documentation

+ +

◆ GetBaseSize()

+ +
+
+ + + + + +
+ + + + + + + +
int raylib::Font::GetBaseSize () const
+
+inline
+
+ +

Retrieves the baseSize value for the object.

+
Returns
The baseSize value of the object.
+ +

Definition at line 49 of file Font.hpp.

+ +
+
+ +

◆ GetChars()

+ +
+
+ + + + + +
+ + + + + + + +
::CharInfo* raylib::Font::GetChars () const
+
+inline
+
+ +

Retrieves the chars value for the object.

+
Returns
The chars value of the object.
+ +

Definition at line 54 of file Font.hpp.

+ +
+
+ +

◆ GetCharsCount()

+ +
+
+ + + + + +
+ + + + + + + +
int raylib::Font::GetCharsCount () const
+
+inline
+
+ +

Retrieves the charsCount value for the object.

+
Returns
The charsCount value of the object.
+ +

Definition at line 50 of file Font.hpp.

+ +
+
+ +

◆ GetCharsPadding()

+ +
+
+ + + + + +
+ + + + + + + +
int raylib::Font::GetCharsPadding () const
+
+inline
+
+ +

Retrieves the charsPadding value for the object.

+
Returns
The charsPadding value of the object.
+ +

Definition at line 51 of file Font.hpp.

+ +
+
+ +

◆ GetRecs()

+ +
+
+ + + + + +
+ + + + + + + +
::Rectangle* raylib::Font::GetRecs () const
+
+inline
+
+ +

Retrieves the recs value for the object.

+
Returns
The recs value of the object.
+ +

Definition at line 53 of file Font.hpp.

+ +
+
+ +

◆ GetTexture()

+ +
+
+ + + + + +
+ + + + + + + +
::Texture2D raylib::Font::GetTexture () const
+
+inline
+
+ +

Retrieves the texture value for the object.

+
Returns
The texture value of the object.
+ +

Definition at line 52 of file Font.hpp.

+ +
+
+ +

◆ SetBaseSize()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Font::SetBaseSize (int value)
+
+inline
+
+ +

Sets the baseSize value for the object.

+
Parameters
+ + +
valueThe value of which to set baseSize to.
+
+
+ +

Definition at line 49 of file Font.hpp.

+ +
+
+ +

◆ SetChars()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Font::SetChars (::CharInfo * value)
+
+inline
+
+ +

Sets the chars value for the object.

+
Parameters
+ + +
valueThe value of which to set chars to.
+
+
+ +

Definition at line 54 of file Font.hpp.

+ +
+
+ +

◆ SetCharsCount()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Font::SetCharsCount (int value)
+
+inline
+
+ +

Sets the charsCount value for the object.

+
Parameters
+ + +
valueThe value of which to set charsCount to.
+
+
+ +

Definition at line 50 of file Font.hpp.

+ +
+
+ +

◆ SetCharsPadding()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Font::SetCharsPadding (int value)
+
+inline
+
+ +

Sets the charsPadding value for the object.

+
Parameters
+ + +
valueThe value of which to set charsPadding to.
+
+
+ +

Definition at line 51 of file Font.hpp.

+ +
+
+ +

◆ SetRecs()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Font::SetRecs (::Rectanglevalue)
+
+inline
+
+ +

Sets the recs value for the object.

+
Parameters
+ + +
valueThe value of which to set recs to.
+
+
+ +

Definition at line 53 of file Font.hpp.

+ +
+
+ +

◆ SetTexture()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Font::SetTexture (::Texture2D value)
+
+inline
+
+ +

Sets the texture value for the object.

+
Parameters
+ + +
valueThe value of which to set texture to.
+
+
+ +

Definition at line 52 of file Font.hpp.

+ +
+
+
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_gamepad-members.html b/raylib-cpp/docs/classraylib_1_1_gamepad-members.html new file mode 100644 index 00000000..39e6ad4f --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_gamepad-members.html @@ -0,0 +1,104 @@ + + + + + + + +raylib-cpp: Member List + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
raylib::Gamepad Member List
+
+
+ +

This is the complete list of members for raylib::Gamepad, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + +
Gamepad(int gamepadNumber=0) (defined in raylib::Gamepad)raylib::Gamepadinline
GetAxisCount() constraylib::Gamepadinline
GetAxisMovement(int axis) constraylib::Gamepadinline
GetButtonPressed() constraylib::Gamepadinline
GetName() constraylib::Gamepadinline
GetNumber() constraylib::Gamepadinline
IsAvailable() constraylib::Gamepadinline
IsAvailable(int number)raylib::Gamepadinlinestatic
IsButtonDown(int button) constraylib::Gamepadinline
IsButtonPressed(int button) constraylib::Gamepadinline
IsButtonReleased(int button) constraylib::Gamepadinline
IsButtonUp(int button) constraylib::Gamepadinline
IsName(const std::string &name) constraylib::Gamepadinline
number (defined in raylib::Gamepad)raylib::Gamepad
operator int() const (defined in raylib::Gamepad)raylib::Gamepadinline
operator std::string() constraylib::Gamepadinline
operator=(const Gamepad &gamepad) (defined in raylib::Gamepad)raylib::Gamepadinline
operator=(int gamepadNumber) (defined in raylib::Gamepad)raylib::Gamepadinline
SetNumber(int value)raylib::Gamepadinline
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_gamepad.html b/raylib-cpp/docs/classraylib_1_1_gamepad.html new file mode 100644 index 00000000..97e92559 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_gamepad.html @@ -0,0 +1,240 @@ + + + + + + + +raylib-cpp: raylib::Gamepad Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+ +
+ +

Input-related functions: gamepads. + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Gamepad (int gamepadNumber=0)
 
+int GetAxisCount () const
 Return gamepad axis count for a gamepad.
 
+float GetAxisMovement (int axis) const
 Return axis movement value for a gamepad axis.
 
+int GetButtonPressed () const
 Get the last gamepad button pressed.
 
+std::string GetName () const
 Return gamepad internal name id.
 
int GetNumber () const
 Retrieves the number value for the object. More...
 
+bool IsAvailable () const
 Detect if a gamepad is available.
 
+bool IsButtonDown (int button) const
 Detect if a gamepad button is being pressed.
 
+bool IsButtonPressed (int button) const
 Detect if a gamepad button has been pressed once.
 
+bool IsButtonReleased (int button) const
 Detect if a gamepad button has been released once.
 
+bool IsButtonUp (int button) const
 Detect if a gamepad button is NOT being pressed.
 
+bool IsName (const std::string &name) const
 Check gamepad name (if available)
 
operator int () const
 
operator std::string () const
 Return gamepad internal name id.
 
+Gamepadoperator= (const Gamepad &gamepad)
 
+Gamepadoperator= (int gamepadNumber)
 
void SetNumber (int value)
 Sets the number value for the object. More...
 
+ + + + +

+Static Public Member Functions

+static bool IsAvailable (int number)
 Detect if a gamepad is available.
 
+ + + +

+Public Attributes

+int number
 
+

Detailed Description

+

Input-related functions: gamepads.

+ +

Definition at line 13 of file Gamepad.hpp.

+

Member Function Documentation

+ +

◆ GetNumber()

+ +
+
+ + + + + +
+ + + + + + + +
int raylib::Gamepad::GetNumber () const
+
+inline
+
+ +

Retrieves the number value for the object.

+
Returns
The number value of the object.
+ +

Definition at line 20 of file Gamepad.hpp.

+ +
+
+ +

◆ SetNumber()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Gamepad::SetNumber (int value)
+
+inline
+
+ +

Sets the number value for the object.

+
Parameters
+ + +
valueThe value of which to set number to.
+
+
+ +

Definition at line 20 of file Gamepad.hpp.

+ +
+
+
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_image-members.html b/raylib-cpp/docs/classraylib_1_1_image-members.html new file mode 100644 index 00000000..eb97fa06 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_image-members.html @@ -0,0 +1,173 @@ + + + + + + + +raylib-cpp: Member List + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
raylib::Image Member List
+
+
+ +

This is the complete list of members for raylib::Image, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AlphaCrop(float threshold)raylib::Imageinline
AlphaMask(const ::Image &alphaMask)raylib::Imageinline
AlphaPremultiply()raylib::Imageinline
Cellular(int width, int height, int tileSize)raylib::Imageinlinestatic
Checked(int width, int height, int checksX, int checksY, ::Color col1={255, 255, 255, 255}, ::Color col2={0, 0, 0, 255})raylib::Imageinlinestatic
ClearBackground(::Color color={0, 0, 0, 255})raylib::Imageinline
Color(int width, int height, ::Color color={255, 255, 255, 255})raylib::Imageinlinestatic
ColorBrightness(int brightness)raylib::Imageinline
ColorContrast(float contrast)raylib::Imageinline
ColorGrayscale()raylib::Imageinline
ColorInvert()raylib::Imageinline
ColorReplace(::Color color, ::Color replace)raylib::Imageinline
ColorTint(::Color color={255, 255, 255, 255})raylib::Imageinline
Copy()raylib::Imageinline
Crop(::Rectangle crop)raylib::Imageinline
Crop(::Vector2 size)raylib::Imageinline
Crop(int offsetX, int offsetY, int newWidth, int newHeight)raylib::Imageinline
Dither(int rBpp, int gBpp, int bBpp, int aBpp)raylib::Imageinline
Draw(const ::Image &src, ::Rectangle srcRec, ::Rectangle dstRec, ::Color tint={255, 255, 255, 255}) (defined in raylib::Image)raylib::Imageinline
DrawCircle(int centerX, int centerY, int radius, ::Color color={255, 255, 255, 255}) (defined in raylib::Image)raylib::Imageinline
DrawCircle(::Vector2 center, int radius, ::Color color={255, 255, 255, 255}) (defined in raylib::Image)raylib::Imageinline
DrawLine(int startPosX, int startPosY, int endPosX, int endPosY, ::Color color={255, 255, 255, 255}) (defined in raylib::Image)raylib::Imageinline
DrawLine(::Vector2 start, ::Vector2 end, ::Color color={255, 255, 255, 255}) (defined in raylib::Image)raylib::Imageinline
DrawPixel(int posX, int posY, ::Color color={255, 255, 255, 255})raylib::Imageinline
DrawPixel(::Vector2 position, ::Color color={255, 255, 255, 255}) (defined in raylib::Image)raylib::Imageinline
DrawRectangle(int posX, int posY, int width, int height, ::Color color={255, 255, 255, 255}) (defined in raylib::Image)raylib::Imageinline
DrawRectangle(Vector2 position, Vector2 size, ::Color color={255, 255, 255, 255}) (defined in raylib::Image)raylib::Imageinline
DrawRectangle(::Rectangle rec, ::Color color={255, 255, 255, 255}) (defined in raylib::Image)raylib::Imageinline
DrawRectangleLines(::Rectangle rec, int thick=1, ::Color color={255, 255, 255, 255}) (defined in raylib::Image)raylib::Imageinline
DrawText(const std::string &text, ::Vector2 position, int fontSize, ::Color color={255, 255, 255, 255}) (defined in raylib::Image)raylib::Imageinline
DrawText(const std::string &text, int x, int y, int fontSize, ::Color color={255, 255, 255, 255}) (defined in raylib::Image)raylib::Imageinline
DrawText(const ::Font &font, const std::string &text, ::Vector2 position, float fontSize, float spacing, ::Color tint={255, 255, 255, 255}) (defined in raylib::Image)raylib::Imageinline
Export(const std::string &fileName)raylib::Imageinline
ExportAsCode(const std::string &fileName)raylib::Imageinline
FlipHorizontal()raylib::Imageinline
FlipVertical()raylib::Imageinline
Format(int newFormat)raylib::Imageinline
FromImage(::Rectangle rec)raylib::Imageinline
GetAlphaBorder(float threshold) constraylib::Imageinline
GetData() constraylib::Imageinline
GetFormat() constraylib::Imageinline
GetHeight() constraylib::Imageinline
GetMipmaps() constraylib::Imageinline
GetPixelDataSize(int width, int height, int format=PIXELFORMAT_UNCOMPRESSED_R32G32B32A32)raylib::Imageinlinestatic
GetPixelDataSize()raylib::Imageinline
GetScreenData()raylib::Imageinlinestatic
GetSize()raylib::Imageinline
GetWidth() constraylib::Imageinline
GradientH(int width, int height, ::Color left, ::Color right)raylib::Imageinlinestatic
GradientRadial(int width, int height, float density, ::Color inner, ::Color outer)raylib::Imageinlinestatic
GradientV(int width, int height, ::Color top, ::Color bottom)raylib::Imageinlinestatic
Image(const ::Image &image) (defined in raylib::Image)raylib::Imageinline
Image(const std::string &fileName) (defined in raylib::Image)raylib::Imageinline
Image(const std::string &fileName, int width, int height, int format, int headerSize) (defined in raylib::Image)raylib::Imageinline
Image(const std::string &fileName, int *frames) (defined in raylib::Image)raylib::Imageinline
Image(const std::string &fileType, const unsigned char *fileData, int dataSize) (defined in raylib::Image)raylib::Imageinline
Image(const ::Texture2D &texture) (defined in raylib::Image)raylib::Imageinline
Image(int width, int height, ::Color color={255, 255, 255, 255}) (defined in raylib::Image)raylib::Imageinline
Image(const ::Font &font, const std::string &text, float fontSize, float spacing, ::Color tint={255, 255, 255, 255}) (defined in raylib::Image)raylib::Imageinline
Load(const std::string &fileName)raylib::Imageinline
LoadAnim(const std::string &fileName, int *frames)raylib::Imageinline
LoadColors()raylib::Imageinline
LoadFromMemory(const std::string &fileType, const unsigned char *fileData, int dataSize)raylib::Imageinline
LoadPalette(int maxPaletteSize, int *colorsCount)raylib::Imageinline
LoadRaw(const std::string &fileName, int width, int height, int format, int headerSize)raylib::Imageinline
LoadTexture()raylib::Imageinline
Mipmaps()raylib::Imageinline
operator::Texture2D()raylib::Imageinline
operator=(const ::Image &image) (defined in raylib::Image)raylib::Imageinline
PerlinNoise(int width, int height, int offsetX, int offsetY, float scale=1.0f)raylib::Imageinlinestatic
Resize(int newWidth, int newHeight)raylib::Imageinline
ResizeCanvas(int newWidth, int newHeight, int offsetX, int offsetY, ::Color color={255, 255, 255, 255})raylib::Imageinline
ResizeNN(int newWidth, int newHeight)raylib::Imageinline
RotateCCW()raylib::Imageinline
RotateCW()raylib::Imageinline
SetData(void *value)raylib::Imageinline
SetFormat(int value)raylib::Imageinline
SetHeight(int value)raylib::Imageinline
SetMipmaps(int value)raylib::Imageinline
SetWidth(int value)raylib::Imageinline
Text(const std::string &text, int fontSize, ::Color color={255, 255, 255, 255}) (defined in raylib::Image)raylib::Imageinlinestatic
Text(const ::Font &font, const std::string &text, float fontSize, float spacing, ::Color tint={255, 255, 255, 255}) (defined in raylib::Image)raylib::Imageinlinestatic
ToPOT(::Color fillColor)raylib::Imageinline
Unload()raylib::Imageinline
UnloadColors(::Color *colors)raylib::Imageinline
UnloadPalette(::Color *colors)raylib::Imageinline
WhiteNoise(int width, int height, float factor)raylib::Imageinlinestatic
~Image() (defined in raylib::Image)raylib::Imageinline
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_image.html b/raylib-cpp/docs/classraylib_1_1_image.html new file mode 100644 index 00000000..cd61911c --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_image.html @@ -0,0 +1,974 @@ + + + + + + + +raylib-cpp: raylib::Image Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+ +
+ +

Image type, bpp always RGBA (32bit) + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Image (const ::Font &font, const std::string &text, float fontSize, float spacing, ::Color tint={255, 255, 255, 255})
 
Image (const ::Image &image)
 
Image (const ::Texture2D &texture)
 
Image (const std::string &fileName)
 
Image (const std::string &fileName, int *frames)
 
Image (const std::string &fileName, int width, int height, int format, int headerSize)
 
Image (const std::string &fileType, const unsigned char *fileData, int dataSize)
 
Image (int width, int height, ::Color color={255, 255, 255, 255})
 
+ImageAlphaCrop (float threshold)
 Crop image depending on alpha value.
 
+ImageAlphaMask (const ::Image &alphaMask)
 Apply alpha mask to image.
 
+ImageAlphaPremultiply ()
 Premultiply alpha channel.
 
+ImageClearBackground (::Color color={0, 0, 0, 255})
 Clear image background with given color.
 
ImageColorBrightness (int brightness)
 Modify image color: brightness. More...
 
ImageColorContrast (float contrast)
 Modify image color: contrast. More...
 
+ImageColorGrayscale ()
 Modify image color: grayscale.
 
+ImageColorInvert ()
 Modify image color: invert.
 
+ImageColorReplace (::Color color, ::Color replace)
 Modify image color: replace color.
 
+ImageColorTint (::Color color={255, 255, 255, 255})
 Modify image color: tint.
 
+inline ::Image Copy ()
 Create an image duplicate (useful for transformations)
 
+ImageCrop (::Rectangle crop)
 Crop an image to area defined by a rectangle.
 
+ImageCrop (::Vector2 size)
 Crop an image to a new given width and height based on a vector.
 
+ImageCrop (int offsetX, int offsetY, int newWidth, int newHeight)
 Crop an image to area defined by a rectangle.
 
+ImageDither (int rBpp, int gBpp, int bBpp, int aBpp)
 Dither image data to 16bpp or lower (Floyd-Steinberg dithering)
 
+ImageDraw (const ::Image &src, ::Rectangle srcRec, ::Rectangle dstRec, ::Color tint={255, 255, 255, 255})
 
+ImageDrawCircle (::Vector2 center, int radius, ::Color color={255, 255, 255, 255})
 
+ImageDrawCircle (int centerX, int centerY, int radius, ::Color color={255, 255, 255, 255})
 
+ImageDrawLine (::Vector2 start, ::Vector2 end, ::Color color={255, 255, 255, 255})
 
+ImageDrawLine (int startPosX, int startPosY, int endPosX, int endPosY, ::Color color={255, 255, 255, 255})
 
+ImageDrawPixel (::Vector2 position, ::Color color={255, 255, 255, 255})
 
+ImageDrawPixel (int posX, int posY, ::Color color={255, 255, 255, 255})
 Draw pixel within an image.
 
+ImageDrawRectangle (::Rectangle rec, ::Color color={255, 255, 255, 255})
 
+ImageDrawRectangle (int posX, int posY, int width, int height, ::Color color={255, 255, 255, 255})
 
+ImageDrawRectangle (Vector2 position, Vector2 size, ::Color color={255, 255, 255, 255})
 
+ImageDrawRectangleLines (::Rectangle rec, int thick=1, ::Color color={255, 255, 255, 255})
 
+ImageDrawText (const ::Font &font, const std::string &text, ::Vector2 position, float fontSize, float spacing, ::Color tint={255, 255, 255, 255})
 
+ImageDrawText (const std::string &text, ::Vector2 position, int fontSize, ::Color color={255, 255, 255, 255})
 
+ImageDrawText (const std::string &text, int x, int y, int fontSize, ::Color color={255, 255, 255, 255})
 
+bool Export (const std::string &fileName)
 Export image data to file, returns true on success.
 
+bool ExportAsCode (const std::string &fileName)
 Export image as code file defining an array of bytes, returns true on success.
 
+ImageFlipHorizontal ()
 Flip image horizontally.
 
+ImageFlipVertical ()
 Flip image vertically.
 
+ImageFormat (int newFormat)
 Convert image data to desired format.
 
+inline ::Image FromImage (::Rectangle rec)
 Create an image from another image piece.
 
Rectangle GetAlphaBorder (float threshold) const
 Get image alpha border rectangle. More...
 
void * GetData () const
 Retrieves the data value for the object. More...
 
int GetFormat () const
 Retrieves the format value for the object. More...
 
int GetHeight () const
 Retrieves the height value for the object. More...
 
int GetMipmaps () const
 Retrieves the mipmaps value for the object. More...
 
int GetPixelDataSize ()
 Returns the pixel data size of the image. More...
 
+inline ::Vector2 GetSize ()
 Retrieve the width and height of the image.
 
int GetWidth () const
 Retrieves the width value for the object. More...
 
+void Load (const std::string &fileName)
 Load image from file into CPU memory (RAM)
 
+void LoadAnim (const std::string &fileName, int *frames)
 Load image sequence from file (frames appended to image.data).
 
+inline ::ColorLoadColors ()
 Load color data from image as a Color array (RGBA - 32bit)
 
void LoadFromMemory (const std::string &fileType, const unsigned char *fileData, int dataSize)
 Load image from memory buffer, fileType refers to extension: i.e. More...
 
+inline ::ColorLoadPalette (int maxPaletteSize, int *colorsCount)
 Load colors palette from image as a Color array (RGBA - 32bit)
 
+void LoadRaw (const std::string &fileName, int width, int height, int format, int headerSize)
 Load image from RAW file data.
 
+inline ::Texture2D LoadTexture ()
 Load texture from image data.
 
+ImageMipmaps ()
 Generate all mipmap levels for a provided image.
 
operator::Texture2D ()
 Load texture from image data.
 
+Imageoperator= (const ::Image &image)
 
+ImageResize (int newWidth, int newHeight)
 Resize and image to new size.
 
+ImageResizeCanvas (int newWidth, int newHeight, int offsetX, int offsetY, ::Color color={255, 255, 255, 255})
 Resize canvas and fill with color.
 
+ImageResizeNN (int newWidth, int newHeight)
 Resize and image to new size using Nearest-Neighbor scaling algorithm.
 
+ImageRotateCCW ()
 Rotate image counter-clockwise 90deg.
 
+ImageRotateCW ()
 Rotate image clockwise 90deg.
 
void SetData (void *value)
 Sets the data value for the object. More...
 
void SetFormat (int value)
 Sets the format value for the object. More...
 
void SetHeight (int value)
 Sets the height value for the object. More...
 
void SetMipmaps (int value)
 Sets the mipmaps value for the object. More...
 
void SetWidth (int value)
 Sets the width value for the object. More...
 
+ImageToPOT (::Color fillColor)
 Convert image to POT (power-of-two)
 
+void Unload ()
 Unload image from CPU memory (RAM)
 
+void UnloadColors (::Color *colors)
 Unload color data loaded with LoadImageColors()
 
+void UnloadPalette (::Color *colors)
 Unload colors palette loaded with LoadImagePalette()
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Static Public Member Functions

::Image Cellular (int width, int height, int tileSize)
 Generate image: cellular algorithm. More...
 
+::Image Checked (int width, int height, int checksX, int checksY, ::Color col1={255, 255, 255, 255}, ::Color col2={0, 0, 0, 255})
 Generate image: checked.
 
+::Image Color (int width, int height, ::Color color={255, 255, 255, 255})
 Generate image: plain color.
 
+static int GetPixelDataSize (int width, int height, int format=PIXELFORMAT_UNCOMPRESSED_R32G32B32A32)
 Get pixel data size in bytes for certain format.
 
+::Image GetScreenData ()
 Get pixel data from screen buffer and return an Image (screenshot)
 
+::Image GradientH (int width, int height, ::Color left, ::Color right)
 Generate image: horizontal gradient.
 
+::Image GradientRadial (int width, int height, float density, ::Color inner, ::Color outer)
 Generate image: radial gradient.
 
+::Image GradientV (int width, int height, ::Color top, ::Color bottom)
 Generate image: vertical gradient.
 
+::Image PerlinNoise (int width, int height, int offsetX, int offsetY, float scale=1.0f)
 Generate image: perlin noise.
 
+::Image Text (const ::Font &font, const std::string &text, float fontSize, float spacing, ::Color tint={255, 255, 255, 255})
 
+::Image Text (const std::string &text, int fontSize, ::Color color={255, 255, 255, 255})
 
+::Image WhiteNoise (int width, int height, float factor)
 Generate image: white noise.
 
+

Detailed Description

+

Image type, bpp always RGBA (32bit)

+

Data stored in CPU memory (RAM)

+ +

Definition at line 15 of file Image.hpp.

+

Member Function Documentation

+ +

◆ Cellular()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
::Image raylib::Image::Cellular (int width,
int height,
int tileSize 
)
+
+inlinestatic
+
+ +

Generate image: cellular algorithm.

+

Bigger tileSize means bigger cells

+ +

Definition at line 122 of file Image.hpp.

+ +
+
+ +

◆ ColorBrightness()

+ +
+
+ + + + + +
+ + + + + + + + +
Image& raylib::Image::ColorBrightness (int brightness)
+
+inline
+
+ +

Modify image color: brightness.

+
Parameters
+ + +
brightnessBrightness values between -255 and 255
+
+
+ +

Definition at line 399 of file Image.hpp.

+ +
+
+ +

◆ ColorContrast()

+ +
+
+ + + + + +
+ + + + + + + + +
Image& raylib::Image::ColorContrast (float contrast)
+
+inline
+
+ +

Modify image color: contrast.

+
Parameters
+ + +
contrastContrast values between -100 and 100
+
+
+ +

Definition at line 389 of file Image.hpp.

+ +
+
+ +

◆ GetAlphaBorder()

+ +
+
+ + + + + +
+ + + + + + + + +
Rectangle raylib::Image::GetAlphaBorder (float threshold) const
+
+inline
+
+ +

Get image alpha border rectangle.

+
Parameters
+ + +
thresholdThreshold is defined as a percentatge: 0.0f -> 1.0f
+
+
+ +

Definition at line 417 of file Image.hpp.

+ +
+
+ +

◆ GetData()

+ +
+
+ + + + + +
+ + + + + + + +
void* raylib::Image::GetData () const
+
+inline
+
+ +

Retrieves the data value for the object.

+
Returns
The data value of the object.
+ +

Definition at line 191 of file Image.hpp.

+ +
+
+ +

◆ GetFormat()

+ +
+
+ + + + + +
+ + + + + + + +
int raylib::Image::GetFormat () const
+
+inline
+
+ +

Retrieves the format value for the object.

+
Returns
The format value of the object.
+ +

Definition at line 195 of file Image.hpp.

+ +
+
+ +

◆ GetHeight()

+ +
+
+ + + + + +
+ + + + + + + +
int raylib::Image::GetHeight () const
+
+inline
+
+ +

Retrieves the height value for the object.

+
Returns
The height value of the object.
+ +

Definition at line 193 of file Image.hpp.

+ +
+
+ +

◆ GetMipmaps()

+ +
+
+ + + + + +
+ + + + + + + +
int raylib::Image::GetMipmaps () const
+
+inline
+
+ +

Retrieves the mipmaps value for the object.

+
Returns
The mipmaps value of the object.
+ +

Definition at line 194 of file Image.hpp.

+ +
+
+ +

◆ GetPixelDataSize()

+ +
+
+ + + + + +
+ + + + + + + +
int raylib::Image::GetPixelDataSize ()
+
+inline
+
+ +

Returns the pixel data size of the image.

+
Returns
The pixel data size of the image.
+ +

Definition at line 571 of file Image.hpp.

+ +
+
+ +

◆ GetWidth()

+ +
+
+ + + + + +
+ + + + + + + +
int raylib::Image::GetWidth () const
+
+inline
+
+ +

Retrieves the width value for the object.

+
Returns
The width value of the object.
+ +

Definition at line 192 of file Image.hpp.

+ +
+
+ +

◆ LoadFromMemory()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void raylib::Image::LoadFromMemory (const std::string & fileType,
const unsigned char * fileData,
int dataSize 
)
+
+inline
+
+ +

Load image from memory buffer, fileType refers to extension: i.e.

+

"png".

+ +

Definition at line 159 of file Image.hpp.

+ +

References raylib::LoadImageFromMemory().

+ +
+
+ +

◆ SetData()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Image::SetData (void * value)
+
+inline
+
+ +

Sets the data value for the object.

+
Parameters
+ + +
valueThe value of which to set data to.
+
+
+ +

Definition at line 191 of file Image.hpp.

+ +
+
+ +

◆ SetFormat()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Image::SetFormat (int value)
+
+inline
+
+ +

Sets the format value for the object.

+
Parameters
+ + +
valueThe value of which to set format to.
+
+
+ +

Definition at line 195 of file Image.hpp.

+ +
+
+ +

◆ SetHeight()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Image::SetHeight (int value)
+
+inline
+
+ +

Sets the height value for the object.

+
Parameters
+ + +
valueThe value of which to set height to.
+
+
+ +

Definition at line 193 of file Image.hpp.

+ +
+
+ +

◆ SetMipmaps()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Image::SetMipmaps (int value)
+
+inline
+
+ +

Sets the mipmaps value for the object.

+
Parameters
+ + +
valueThe value of which to set mipmaps to.
+
+
+ +

Definition at line 194 of file Image.hpp.

+ +
+
+ +

◆ SetWidth()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Image::SetWidth (int value)
+
+inline
+
+ +

Sets the width value for the object.

+
Parameters
+ + +
valueThe value of which to set width to.
+
+
+ +

Definition at line 192 of file Image.hpp.

+ +
+
+
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_material-members.html b/raylib-cpp/docs/classraylib_1_1_material-members.html new file mode 100644 index 00000000..ae3c4637 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_material-members.html @@ -0,0 +1,96 @@ + + + + + + + +raylib-cpp: Member List + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
raylib::Material Member List
+
+
+ +

This is the complete list of members for raylib::Material, including all inherited members.

+ + + + + + + + + + + + +
GetMaps() constraylib::Materialinline
GetShader() constraylib::Materialinline
Load(const std::string &fileName)raylib::Materialinlinestatic
Material(const ::Material &material) (defined in raylib::Material)raylib::Materialinline
Material()raylib::Materialinline
operator=(const ::Material &material) (defined in raylib::Material)raylib::Materialinline
SetMaps(::MaterialMap *value)raylib::Materialinline
SetShader(::Shader value)raylib::Materialinline
SetTexture(int mapType, const ::Texture2D &texture)raylib::Materialinline
Unload()raylib::Materialinline
~Material() (defined in raylib::Material)raylib::Materialinline
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_material.html b/raylib-cpp/docs/classraylib_1_1_material.html new file mode 100644 index 00000000..d2efaeae --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_material.html @@ -0,0 +1,267 @@ + + + + + + + +raylib-cpp: raylib::Material Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
raylib::Material Class Reference
+
+
+ +

Material type (generic) + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Material ()
 Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps)
 
Material (const ::Material &material)
 
::MaterialMap * GetMaps () const
 Retrieves the maps value for the object. More...
 
::Shader GetShader () const
 Retrieves the shader value for the object. More...
 
+Materialoperator= (const ::Material &material)
 
void SetMaps (::MaterialMap *value)
 Sets the maps value for the object. More...
 
void SetShader (::Shader value)
 Sets the shader value for the object. More...
 
+MaterialSetTexture (int mapType, const ::Texture2D &texture)
 Set texture for a material map type (MAP_DIFFUSE, MAP_SPECULAR...)
 
+void Unload ()
 Unload material from memory.
 
+ + + + +

+Static Public Member Functions

+static std::vector< MaterialLoad (const std::string &fileName)
 Load materials from model file.
 
+

Detailed Description

+

Material type (generic)

+ +

Definition at line 14 of file Material.hpp.

+

Member Function Documentation

+ +

◆ GetMaps()

+ +
+
+ + + + + +
+ + + + + + + +
::MaterialMap* raylib::Material::GetMaps () const
+
+inline
+
+ +

Retrieves the maps value for the object.

+
Returns
The maps value of the object.
+ +

Definition at line 41 of file Material.hpp.

+ +
+
+ +

◆ GetShader()

+ +
+
+ + + + + +
+ + + + + + + +
::Shader raylib::Material::GetShader () const
+
+inline
+
+ +

Retrieves the shader value for the object.

+
Returns
The shader value of the object.
+ +

Definition at line 40 of file Material.hpp.

+ +
+
+ +

◆ SetMaps()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Material::SetMaps (::MaterialMap * value)
+
+inline
+
+ +

Sets the maps value for the object.

+
Parameters
+ + +
valueThe value of which to set maps to.
+
+
+ +

Definition at line 41 of file Material.hpp.

+ +
+
+ +

◆ SetShader()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Material::SetShader (::Shader value)
+
+inline
+
+ +

Sets the shader value for the object.

+
Parameters
+ + +
valueThe value of which to set shader to.
+
+
+ +

Definition at line 40 of file Material.hpp.

+ +
+
+
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_matrix-members.html b/raylib-cpp/docs/classraylib_1_1_matrix-members.html new file mode 100644 index 00000000..708ac888 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_matrix-members.html @@ -0,0 +1,147 @@ + + + + + + + +raylib-cpp: Member List + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
raylib::Matrix Member List
+
+
+ +

This is the complete list of members for raylib::Matrix, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Add(const ::Matrix &right) (defined in raylib::Matrix)raylib::Matrixinline
Frustum(double left, double right, double bottom, double top, double near, double far) (defined in raylib::Matrix)raylib::Matrixinlinestatic
GetM0() constraylib::Matrixinline
GetM1() constraylib::Matrixinline
GetM10() constraylib::Matrixinline
GetM11() constraylib::Matrixinline
GetM12() constraylib::Matrixinline
GetM13() constraylib::Matrixinline
GetM14() constraylib::Matrixinline
GetM15() constraylib::Matrixinline
GetM2() constraylib::Matrixinline
GetM3() constraylib::Matrixinline
GetM4() constraylib::Matrixinline
GetM5() constraylib::Matrixinline
GetM6() constraylib::Matrixinline
GetM7() constraylib::Matrixinline
GetM8() constraylib::Matrixinline
GetM9() constraylib::Matrixinline
Identity() (defined in raylib::Matrix)raylib::Matrixinlinestatic
Invert() const (defined in raylib::Matrix)raylib::Matrixinline
LookAt(Vector3 eye, Vector3 target, Vector3 up) (defined in raylib::Matrix)raylib::Matrixinlinestatic
Matrix(const ::Matrix &mat) (defined in raylib::Matrix)raylib::Matrixinline
Matrix(float M0=0, float M1=0, float M2=0, float M3=0, float M4=0, float M5=0, float M6=0, float M7=0, float M8=0, float M9=0, float M10=0, float M11=0, float M12=0, float M13=0, float M14=0, float M15=0) (defined in raylib::Matrix)raylib::Matrixinline
Multiply(const ::Matrix &right) const (defined in raylib::Matrix)raylib::Matrixinline
Normalize() const (defined in raylib::Matrix)raylib::Matrixinline
operator float16() (defined in raylib::Matrix)raylib::Matrixinline
operator*(const ::Matrix &matrix) (defined in raylib::Matrix)raylib::Matrixinline
operator+(const ::Matrix &matrix) (defined in raylib::Matrix)raylib::Matrixinline
operator-(const ::Matrix &matrix) (defined in raylib::Matrix)raylib::Matrixinline
operator=(const ::Matrix &matrix) (defined in raylib::Matrix)raylib::Matrixinline
operator=(const Matrix &matrix) (defined in raylib::Matrix)raylib::Matrixinline
operator==(const ::Matrix &other) (defined in raylib::Matrix)raylib::Matrixinline
Ortho(double left, double right, double bottom, double top, double near, double far) (defined in raylib::Matrix)raylib::Matrixinlinestatic
Perspective(double fovy, double aspect, double near, double far) (defined in raylib::Matrix)raylib::Matrixinlinestatic
Rotate(Vector3 axis, float angle) (defined in raylib::Matrix)raylib::Matrixinlinestatic
RotateX(float angle) (defined in raylib::Matrix)raylib::Matrixinlinestatic
RotateXYZ(Vector3 angle) (defined in raylib::Matrix)raylib::Matrixinlinestatic
RotateY(float angle) (defined in raylib::Matrix)raylib::Matrixinlinestatic
RotateZ(float angle) (defined in raylib::Matrix)raylib::Matrixinlinestatic
Scale(float x, float y, float z) (defined in raylib::Matrix)raylib::Matrixinlinestatic
SetM0(float value)raylib::Matrixinline
SetM1(float value)raylib::Matrixinline
SetM10(float value)raylib::Matrixinline
SetM11(float value)raylib::Matrixinline
SetM12(float value)raylib::Matrixinline
SetM13(float value)raylib::Matrixinline
SetM14(float value)raylib::Matrixinline
SetM15(float value)raylib::Matrixinline
SetM2(float value)raylib::Matrixinline
SetM3(float value)raylib::Matrixinline
SetM4(float value)raylib::Matrixinline
SetM5(float value)raylib::Matrixinline
SetM6(float value)raylib::Matrixinline
SetM7(float value)raylib::Matrixinline
SetM8(float value)raylib::Matrixinline
SetM9(float value)raylib::Matrixinline
SetShaderValue(::Shader shader, int uniformLoc)raylib::Matrixinline
Subtract(const ::Matrix &right) (defined in raylib::Matrix)raylib::Matrixinline
ToFloatV() const (defined in raylib::Matrix)raylib::Matrixinline
Trace() constraylib::Matrixinline
Translate(float x, float y, float z) (defined in raylib::Matrix)raylib::Matrixinlinestatic
Transpose() constraylib::Matrixinline
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_matrix.html b/raylib-cpp/docs/classraylib_1_1_matrix.html new file mode 100644 index 00000000..a66646f5 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_matrix.html @@ -0,0 +1,1346 @@ + + + + + + + +raylib-cpp: raylib::Matrix Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
raylib::Matrix Class Reference
+
+
+ +

Matrix type (OpenGL style 4x4 - right handed, column major) + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Matrix (const ::Matrix &mat)
 
Matrix (float M0=0, float M1=0, float M2=0, float M3=0, float M4=0, float M5=0, float M6=0, float M7=0, float M8=0, float M9=0, float M10=0, float M11=0, float M12=0, float M13=0, float M14=0, float M15=0)
 
+Matrix Add (const ::Matrix &right)
 
float GetM0 () const
 Retrieves the m0 value for the object. More...
 
float GetM1 () const
 Retrieves the m1 value for the object. More...
 
float GetM10 () const
 Retrieves the m10 value for the object. More...
 
float GetM11 () const
 Retrieves the m11 value for the object. More...
 
float GetM12 () const
 Retrieves the m12 value for the object. More...
 
float GetM13 () const
 Retrieves the m13 value for the object. More...
 
float GetM14 () const
 Retrieves the m14 value for the object. More...
 
float GetM15 () const
 Retrieves the m15 value for the object. More...
 
float GetM2 () const
 Retrieves the m2 value for the object. More...
 
float GetM3 () const
 Retrieves the m3 value for the object. More...
 
float GetM4 () const
 Retrieves the m4 value for the object. More...
 
float GetM5 () const
 Retrieves the m5 value for the object. More...
 
float GetM6 () const
 Retrieves the m6 value for the object. More...
 
float GetM7 () const
 Retrieves the m7 value for the object. More...
 
float GetM8 () const
 Retrieves the m8 value for the object. More...
 
float GetM9 () const
 Retrieves the m9 value for the object. More...
 
+Matrix Invert () const
 
+Matrix Multiply (const ::Matrix &right) const
 
+Matrix Normalize () const
 
operator float16 ()
 
+Matrix operator* (const ::Matrix &matrix)
 
+Matrix operator+ (const ::Matrix &matrix)
 
+Matrix operator- (const ::Matrix &matrix)
 
+Matrixoperator= (const ::Matrix &matrix)
 
+Matrixoperator= (const Matrix &matrix)
 
+bool operator== (const ::Matrix &other)
 
void SetM0 (float value)
 Sets the m0 value for the object. More...
 
void SetM1 (float value)
 Sets the m1 value for the object. More...
 
void SetM10 (float value)
 Sets the m10 value for the object. More...
 
void SetM11 (float value)
 Sets the m11 value for the object. More...
 
void SetM12 (float value)
 Sets the m12 value for the object. More...
 
void SetM13 (float value)
 Sets the m13 value for the object. More...
 
void SetM14 (float value)
 Sets the m14 value for the object. More...
 
void SetM15 (float value)
 Sets the m15 value for the object. More...
 
void SetM2 (float value)
 Sets the m2 value for the object. More...
 
void SetM3 (float value)
 Sets the m3 value for the object. More...
 
void SetM4 (float value)
 Sets the m4 value for the object. More...
 
void SetM5 (float value)
 Sets the m5 value for the object. More...
 
void SetM6 (float value)
 Sets the m6 value for the object. More...
 
void SetM7 (float value)
 Sets the m7 value for the object. More...
 
void SetM8 (float value)
 Sets the m8 value for the object. More...
 
void SetM9 (float value)
 Sets the m9 value for the object. More...
 
+MatrixSetShaderValue (::Shader shader, int uniformLoc)
 Set shader uniform value (matrix 4x4)
 
+Matrix Subtract (const ::Matrix &right)
 
+float16 ToFloatV () const
 
+float Trace () const
 Returns the trace of the matrix (sum of the values along the diagonal)
 
+Matrix Transpose () const
 Transposes provided matrix.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Static Public Member Functions

+static Matrix Frustum (double left, double right, double bottom, double top, double near, double far)
 
+static Matrix Identity ()
 
+static Matrix LookAt (Vector3 eye, Vector3 target, Vector3 up)
 
+static Matrix Ortho (double left, double right, double bottom, double top, double near, double far)
 
+static Matrix Perspective (double fovy, double aspect, double near, double far)
 
+static Matrix Rotate (Vector3 axis, float angle)
 
+static Matrix RotateX (float angle)
 
+static Matrix RotateXYZ (Vector3 angle)
 
+static Matrix RotateY (float angle)
 
+static Matrix RotateZ (float angle)
 
+static Matrix Scale (float x, float y, float z)
 
+static Matrix Translate (float x, float y, float z)
 
+

Detailed Description

+

Matrix type (OpenGL style 4x4 - right handed, column major)

+ +

Definition at line 16 of file Matrix.hpp.

+

Member Function Documentation

+ +

◆ GetM0()

+ +
+
+ + + + + +
+ + + + + + + +
float raylib::Matrix::GetM0 () const
+
+inline
+
+ +

Retrieves the m0 value for the object.

+
Returns
The m0 value of the object.
+ +

Definition at line 43 of file Matrix.hpp.

+ +
+
+ +

◆ GetM1()

+ +
+
+ + + + + +
+ + + + + + + +
float raylib::Matrix::GetM1 () const
+
+inline
+
+ +

Retrieves the m1 value for the object.

+
Returns
The m1 value of the object.
+ +

Definition at line 44 of file Matrix.hpp.

+ +
+
+ +

◆ GetM10()

+ +
+
+ + + + + +
+ + + + + + + +
float raylib::Matrix::GetM10 () const
+
+inline
+
+ +

Retrieves the m10 value for the object.

+
Returns
The m10 value of the object.
+ +

Definition at line 53 of file Matrix.hpp.

+ +
+
+ +

◆ GetM11()

+ +
+
+ + + + + +
+ + + + + + + +
float raylib::Matrix::GetM11 () const
+
+inline
+
+ +

Retrieves the m11 value for the object.

+
Returns
The m11 value of the object.
+ +

Definition at line 54 of file Matrix.hpp.

+ +
+
+ +

◆ GetM12()

+ +
+
+ + + + + +
+ + + + + + + +
float raylib::Matrix::GetM12 () const
+
+inline
+
+ +

Retrieves the m12 value for the object.

+
Returns
The m12 value of the object.
+ +

Definition at line 55 of file Matrix.hpp.

+ +
+
+ +

◆ GetM13()

+ +
+
+ + + + + +
+ + + + + + + +
float raylib::Matrix::GetM13 () const
+
+inline
+
+ +

Retrieves the m13 value for the object.

+
Returns
The m13 value of the object.
+ +

Definition at line 56 of file Matrix.hpp.

+ +
+
+ +

◆ GetM14()

+ +
+
+ + + + + +
+ + + + + + + +
float raylib::Matrix::GetM14 () const
+
+inline
+
+ +

Retrieves the m14 value for the object.

+
Returns
The m14 value of the object.
+ +

Definition at line 57 of file Matrix.hpp.

+ +
+
+ +

◆ GetM15()

+ +
+
+ + + + + +
+ + + + + + + +
float raylib::Matrix::GetM15 () const
+
+inline
+
+ +

Retrieves the m15 value for the object.

+
Returns
The m15 value of the object.
+ +

Definition at line 58 of file Matrix.hpp.

+ +
+
+ +

◆ GetM2()

+ +
+
+ + + + + +
+ + + + + + + +
float raylib::Matrix::GetM2 () const
+
+inline
+
+ +

Retrieves the m2 value for the object.

+
Returns
The m2 value of the object.
+ +

Definition at line 45 of file Matrix.hpp.

+ +
+
+ +

◆ GetM3()

+ +
+
+ + + + + +
+ + + + + + + +
float raylib::Matrix::GetM3 () const
+
+inline
+
+ +

Retrieves the m3 value for the object.

+
Returns
The m3 value of the object.
+ +

Definition at line 46 of file Matrix.hpp.

+ +
+
+ +

◆ GetM4()

+ +
+
+ + + + + +
+ + + + + + + +
float raylib::Matrix::GetM4 () const
+
+inline
+
+ +

Retrieves the m4 value for the object.

+
Returns
The m4 value of the object.
+ +

Definition at line 47 of file Matrix.hpp.

+ +
+
+ +

◆ GetM5()

+ +
+
+ + + + + +
+ + + + + + + +
float raylib::Matrix::GetM5 () const
+
+inline
+
+ +

Retrieves the m5 value for the object.

+
Returns
The m5 value of the object.
+ +

Definition at line 48 of file Matrix.hpp.

+ +
+
+ +

◆ GetM6()

+ +
+
+ + + + + +
+ + + + + + + +
float raylib::Matrix::GetM6 () const
+
+inline
+
+ +

Retrieves the m6 value for the object.

+
Returns
The m6 value of the object.
+ +

Definition at line 49 of file Matrix.hpp.

+ +
+
+ +

◆ GetM7()

+ +
+
+ + + + + +
+ + + + + + + +
float raylib::Matrix::GetM7 () const
+
+inline
+
+ +

Retrieves the m7 value for the object.

+
Returns
The m7 value of the object.
+ +

Definition at line 50 of file Matrix.hpp.

+ +
+
+ +

◆ GetM8()

+ +
+
+ + + + + +
+ + + + + + + +
float raylib::Matrix::GetM8 () const
+
+inline
+
+ +

Retrieves the m8 value for the object.

+
Returns
The m8 value of the object.
+ +

Definition at line 51 of file Matrix.hpp.

+ +
+
+ +

◆ GetM9()

+ +
+
+ + + + + +
+ + + + + + + +
float raylib::Matrix::GetM9 () const
+
+inline
+
+ +

Retrieves the m9 value for the object.

+
Returns
The m9 value of the object.
+ +

Definition at line 52 of file Matrix.hpp.

+ +
+
+ +

◆ SetM0()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Matrix::SetM0 (float value)
+
+inline
+
+ +

Sets the m0 value for the object.

+
Parameters
+ + +
valueThe value of which to set m0 to.
+
+
+ +

Definition at line 43 of file Matrix.hpp.

+ +
+
+ +

◆ SetM1()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Matrix::SetM1 (float value)
+
+inline
+
+ +

Sets the m1 value for the object.

+
Parameters
+ + +
valueThe value of which to set m1 to.
+
+
+ +

Definition at line 44 of file Matrix.hpp.

+ +
+
+ +

◆ SetM10()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Matrix::SetM10 (float value)
+
+inline
+
+ +

Sets the m10 value for the object.

+
Parameters
+ + +
valueThe value of which to set m10 to.
+
+
+ +

Definition at line 53 of file Matrix.hpp.

+ +
+
+ +

◆ SetM11()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Matrix::SetM11 (float value)
+
+inline
+
+ +

Sets the m11 value for the object.

+
Parameters
+ + +
valueThe value of which to set m11 to.
+
+
+ +

Definition at line 54 of file Matrix.hpp.

+ +
+
+ +

◆ SetM12()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Matrix::SetM12 (float value)
+
+inline
+
+ +

Sets the m12 value for the object.

+
Parameters
+ + +
valueThe value of which to set m12 to.
+
+
+ +

Definition at line 55 of file Matrix.hpp.

+ +
+
+ +

◆ SetM13()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Matrix::SetM13 (float value)
+
+inline
+
+ +

Sets the m13 value for the object.

+
Parameters
+ + +
valueThe value of which to set m13 to.
+
+
+ +

Definition at line 56 of file Matrix.hpp.

+ +
+
+ +

◆ SetM14()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Matrix::SetM14 (float value)
+
+inline
+
+ +

Sets the m14 value for the object.

+
Parameters
+ + +
valueThe value of which to set m14 to.
+
+
+ +

Definition at line 57 of file Matrix.hpp.

+ +
+
+ +

◆ SetM15()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Matrix::SetM15 (float value)
+
+inline
+
+ +

Sets the m15 value for the object.

+
Parameters
+ + +
valueThe value of which to set m15 to.
+
+
+ +

Definition at line 58 of file Matrix.hpp.

+ +
+
+ +

◆ SetM2()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Matrix::SetM2 (float value)
+
+inline
+
+ +

Sets the m2 value for the object.

+
Parameters
+ + +
valueThe value of which to set m2 to.
+
+
+ +

Definition at line 45 of file Matrix.hpp.

+ +
+
+ +

◆ SetM3()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Matrix::SetM3 (float value)
+
+inline
+
+ +

Sets the m3 value for the object.

+
Parameters
+ + +
valueThe value of which to set m3 to.
+
+
+ +

Definition at line 46 of file Matrix.hpp.

+ +
+
+ +

◆ SetM4()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Matrix::SetM4 (float value)
+
+inline
+
+ +

Sets the m4 value for the object.

+
Parameters
+ + +
valueThe value of which to set m4 to.
+
+
+ +

Definition at line 47 of file Matrix.hpp.

+ +
+
+ +

◆ SetM5()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Matrix::SetM5 (float value)
+
+inline
+
+ +

Sets the m5 value for the object.

+
Parameters
+ + +
valueThe value of which to set m5 to.
+
+
+ +

Definition at line 48 of file Matrix.hpp.

+ +
+
+ +

◆ SetM6()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Matrix::SetM6 (float value)
+
+inline
+
+ +

Sets the m6 value for the object.

+
Parameters
+ + +
valueThe value of which to set m6 to.
+
+
+ +

Definition at line 49 of file Matrix.hpp.

+ +
+
+ +

◆ SetM7()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Matrix::SetM7 (float value)
+
+inline
+
+ +

Sets the m7 value for the object.

+
Parameters
+ + +
valueThe value of which to set m7 to.
+
+
+ +

Definition at line 50 of file Matrix.hpp.

+ +
+
+ +

◆ SetM8()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Matrix::SetM8 (float value)
+
+inline
+
+ +

Sets the m8 value for the object.

+
Parameters
+ + +
valueThe value of which to set m8 to.
+
+
+ +

Definition at line 51 of file Matrix.hpp.

+ +
+
+ +

◆ SetM9()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Matrix::SetM9 (float value)
+
+inline
+
+ +

Sets the m9 value for the object.

+
Parameters
+ + +
valueThe value of which to set m9 to.
+
+
+ +

Definition at line 52 of file Matrix.hpp.

+ +
+
+
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_mesh-members.html b/raylib-cpp/docs/classraylib_1_1_mesh-members.html new file mode 100644 index 00000000..8739e2e9 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_mesh-members.html @@ -0,0 +1,141 @@ + + + + + + + +raylib-cpp: Member List + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
raylib::Mesh Member List
+
+
+ +

This is the complete list of members for raylib::Mesh, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Binormals()raylib::Meshinline
BoundingBox() constraylib::Meshinline
Cube(float width, float height, float length)raylib::Meshinlinestatic
Cubicmap(const ::Image &cubicmap, ::Vector3 cubeSize)raylib::Meshinlinestatic
Cylinder(float radius, float height, int slices)raylib::Meshinlinestatic
Draw(const ::Material &material, const ::Matrix &transform) (defined in raylib::Mesh)raylib::Meshinline
DrawInstanced(const ::Material &material, ::Matrix *transforms, int instances) (defined in raylib::Mesh)raylib::Meshinline
Export(const std::string &fileName)raylib::Meshinline
GetAnimNormals() constraylib::Meshinline
GetAnimVertices() constraylib::Meshinline
GetBoneIds() constraylib::Meshinline
GetBoneWeights() constraylib::Meshinline
GetColors() constraylib::Meshinline
GetIndices() constraylib::Meshinline
GetNormals() constraylib::Meshinline
GetTangents() constraylib::Meshinline
GetTexCoords() constraylib::Meshinline
GetTexCoords2() constraylib::Meshinline
GetTriangleCount() constraylib::Meshinline
GetVaoId() constraylib::Meshinline
GetVboId() constraylib::Meshinline
GetVertexCount() constraylib::Meshinline
GetVertices() constraylib::Meshinline
Heightmap(const ::Image &heightmap, ::Vector3 size)raylib::Meshinlinestatic
HemiSphere(float radius, int rings, int slices)raylib::Meshinlinestatic
Knot(float radius, float size, int radSeg, int sides)raylib::Meshinlinestatic
LoadModelFrom() constraylib::Meshinline
Mesh(const ::Mesh &mesh) (defined in raylib::Mesh)raylib::Meshinline
Mesh(int VertexCount, int TriangleCount) (defined in raylib::Mesh)raylib::Meshinline
operator raylib::BoundingBox()raylib::Meshinline
operator raylib::Model()raylib::Meshinline
operator=(const ::Mesh &mesh) (defined in raylib::Mesh)raylib::Meshinline
Plane(float width, float length, int resX, int resZ)raylib::Meshinlinestatic
Poly(int sides, float radius)raylib::Meshinlinestatic
SetAnimNormals(float *value)raylib::Meshinline
SetAnimVertices(float *value)raylib::Meshinline
SetBoneIds(int *value)raylib::Meshinline
SetBoneWeights(float *value)raylib::Meshinline
SetColors(unsigned char *value)raylib::Meshinline
SetIndices(unsigned short *value)raylib::Meshinline
SetNormals(float *value)raylib::Meshinline
SetTangents(float *value)raylib::Meshinline
SetTexCoords(float *value)raylib::Meshinline
SetTexCoords2(float *value)raylib::Meshinline
SetTriangleCount(int value)raylib::Meshinline
SetVaoId(unsigned int value)raylib::Meshinline
SetVboId(unsigned int *value)raylib::Meshinline
SetVertexCount(int value)raylib::Meshinline
SetVertices(float *value)raylib::Meshinline
Sphere(float radius, int rings, int slices)raylib::Meshinlinestatic
Tangents()raylib::Meshinline
Torus(float radius, float size, int radSeg, int sides)raylib::Meshinlinestatic
Unload()raylib::Meshinline
UpdateBuffer(int index, void *data, int dataSize, int offset=0)raylib::Meshinline
Upload(bool dynamic=false)raylib::Meshinline
~Mesh() (defined in raylib::Mesh)raylib::Meshinline
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_mesh.html b/raylib-cpp/docs/classraylib_1_1_mesh.html new file mode 100644 index 00000000..973cebcf --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_mesh.html @@ -0,0 +1,1316 @@ + + + + + + + +raylib-cpp: raylib::Mesh Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+ +
+ +

Vertex data definning a mesh. + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Mesh (const ::Mesh &mesh)
 
Mesh (int VertexCount, int TriangleCount)
 
+MeshBinormals ()
 Compute mesh binormals (aka bitangent)
 
+raylib::BoundingBox BoundingBox () const
 Compute mesh bounding box limits.
 
+void Draw (const ::Material &material, const ::Matrix &transform)
 
+void DrawInstanced (const ::Material &material, ::Matrix *transforms, int instances)
 
+bool Export (const std::string &fileName)
 Export mesh data to file.
 
float * GetAnimNormals () const
 Retrieves the animNormals value for the object. More...
 
float * GetAnimVertices () const
 Retrieves the animVertices value for the object. More...
 
int * GetBoneIds () const
 Retrieves the boneIds value for the object. More...
 
float * GetBoneWeights () const
 Retrieves the boneWeights value for the object. More...
 
unsigned char * GetColors () const
 Retrieves the colors value for the object. More...
 
unsigned short * GetIndices () const
 Retrieves the indices value for the object. More...
 
float * GetNormals () const
 Retrieves the normals value for the object. More...
 
float * GetTangents () const
 Retrieves the tangents value for the object. More...
 
float * GetTexCoords () const
 Retrieves the texcoords value for the object. More...
 
float * GetTexCoords2 () const
 Retrieves the texcoords2 value for the object. More...
 
int GetTriangleCount () const
 Retrieves the triangleCount value for the object. More...
 
unsigned int GetVaoId () const
 Retrieves the vaoId value for the object. More...
 
unsigned int * GetVboId () const
 Retrieves the vboId value for the object. More...
 
int GetVertexCount () const
 Retrieves the vertexCount value for the object. More...
 
float * GetVertices () const
 Retrieves the vertices value for the object. More...
 
+raylib::Model LoadModelFrom () const
 Load model from generated mesh.
 
operator raylib::BoundingBox ()
 Compute mesh bounding box limits.
 
operator raylib::Model ()
 Load model from generated mesh.
 
+Meshoperator= (const ::Mesh &mesh)
 
void SetAnimNormals (float *value)
 Sets the animNormals value for the object. More...
 
void SetAnimVertices (float *value)
 Sets the animVertices value for the object. More...
 
void SetBoneIds (int *value)
 Sets the boneIds value for the object. More...
 
void SetBoneWeights (float *value)
 Sets the boneWeights value for the object. More...
 
void SetColors (unsigned char *value)
 Sets the colors value for the object. More...
 
void SetIndices (unsigned short *value)
 Sets the indices value for the object. More...
 
void SetNormals (float *value)
 Sets the normals value for the object. More...
 
void SetTangents (float *value)
 Sets the tangents value for the object. More...
 
void SetTexCoords (float *value)
 Sets the texcoords value for the object. More...
 
void SetTexCoords2 (float *value)
 Sets the texcoords2 value for the object. More...
 
void SetTriangleCount (int value)
 Sets the triangleCount value for the object. More...
 
void SetVaoId (unsigned int value)
 Sets the vaoId value for the object. More...
 
void SetVboId (unsigned int *value)
 Sets the vboId value for the object. More...
 
void SetVertexCount (int value)
 Sets the vertexCount value for the object. More...
 
void SetVertices (float *value)
 Sets the vertices value for the object. More...
 
+MeshTangents ()
 Compute mesh tangents.
 
+void Unload ()
 Unload mesh from memory (RAM and/or VRAM)
 
+void UpdateBuffer (int index, void *data, int dataSize, int offset=0)
 Upload mesh vertex data to GPU (VRAM)
 
+void Upload (bool dynamic=false)
 Upload mesh vertex data to GPU (VRAM)
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Static Public Member Functions

+::Mesh Cube (float width, float height, float length)
 Generate cuboid mesh.
 
+::Mesh Cubicmap (const ::Image &cubicmap, ::Vector3 cubeSize)
 Generate cubes-based map mesh from image data.
 
+::Mesh Cylinder (float radius, float height, int slices)
 Generate cylinder mesh.
 
+::Mesh Heightmap (const ::Image &heightmap, ::Vector3 size)
 Generate heightmap mesh from image data.
 
+::Mesh HemiSphere (float radius, int rings, int slices)
 Generate half-sphere mesh (no bottom cap)
 
+::Mesh Knot (float radius, float size, int radSeg, int sides)
 Generate trefoil knot mesh.
 
+::Mesh Plane (float width, float length, int resX, int resZ)
 Generate plane mesh (with subdivisions)
 
::Mesh Poly (int sides, float radius)
 Load meshes from model file. More...
 
+::Mesh Sphere (float radius, int rings, int slices)
 Generate sphere mesh (standard sphere)
 
+::Mesh Torus (float radius, float size, int radSeg, int sides)
 Generate torus mesh.
 
+

Detailed Description

+

Vertex data definning a mesh.

+ +

Definition at line 16 of file Mesh.hpp.

+

Member Function Documentation

+ +

◆ GetAnimNormals()

+ +
+
+ + + + + +
+ + + + + + + +
float* raylib::Mesh::GetAnimNormals () const
+
+inline
+
+ +

Retrieves the animNormals value for the object.

+
Returns
The animNormals value of the object.
+ +

Definition at line 116 of file Mesh.hpp.

+ +
+
+ +

◆ GetAnimVertices()

+ +
+
+ + + + + +
+ + + + + + + +
float* raylib::Mesh::GetAnimVertices () const
+
+inline
+
+ +

Retrieves the animVertices value for the object.

+
Returns
The animVertices value of the object.
+ +

Definition at line 115 of file Mesh.hpp.

+ +
+
+ +

◆ GetBoneIds()

+ +
+
+ + + + + +
+ + + + + + + +
int* raylib::Mesh::GetBoneIds () const
+
+inline
+
+ +

Retrieves the boneIds value for the object.

+
Returns
The boneIds value of the object.
+ +

Definition at line 117 of file Mesh.hpp.

+ +
+
+ +

◆ GetBoneWeights()

+ +
+
+ + + + + +
+ + + + + + + +
float* raylib::Mesh::GetBoneWeights () const
+
+inline
+
+ +

Retrieves the boneWeights value for the object.

+
Returns
The boneWeights value of the object.
+ +

Definition at line 118 of file Mesh.hpp.

+ +
+
+ +

◆ GetColors()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned char* raylib::Mesh::GetColors () const
+
+inline
+
+ +

Retrieves the colors value for the object.

+
Returns
The colors value of the object.
+ +

Definition at line 113 of file Mesh.hpp.

+ +
+
+ +

◆ GetIndices()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned short* raylib::Mesh::GetIndices () const
+
+inline
+
+ +

Retrieves the indices value for the object.

+
Returns
The indices value of the object.
+ +

Definition at line 114 of file Mesh.hpp.

+ +
+
+ +

◆ GetNormals()

+ +
+
+ + + + + +
+ + + + + + + +
float* raylib::Mesh::GetNormals () const
+
+inline
+
+ +

Retrieves the normals value for the object.

+
Returns
The normals value of the object.
+ +

Definition at line 111 of file Mesh.hpp.

+ +
+
+ +

◆ GetTangents()

+ +
+
+ + + + + +
+ + + + + + + +
float* raylib::Mesh::GetTangents () const
+
+inline
+
+ +

Retrieves the tangents value for the object.

+
Returns
The tangents value of the object.
+ +

Definition at line 112 of file Mesh.hpp.

+ +
+
+ +

◆ GetTexCoords()

+ +
+
+ + + + + +
+ + + + + + + +
float* raylib::Mesh::GetTexCoords () const
+
+inline
+
+ +

Retrieves the texcoords value for the object.

+
Returns
The texcoords value of the object.
+ +

Definition at line 109 of file Mesh.hpp.

+ +
+
+ +

◆ GetTexCoords2()

+ +
+
+ + + + + +
+ + + + + + + +
float* raylib::Mesh::GetTexCoords2 () const
+
+inline
+
+ +

Retrieves the texcoords2 value for the object.

+
Returns
The texcoords2 value of the object.
+ +

Definition at line 110 of file Mesh.hpp.

+ +
+
+ +

◆ GetTriangleCount()

+ +
+
+ + + + + +
+ + + + + + + +
int raylib::Mesh::GetTriangleCount () const
+
+inline
+
+ +

Retrieves the triangleCount value for the object.

+
Returns
The triangleCount value of the object.
+ +

Definition at line 107 of file Mesh.hpp.

+ +
+
+ +

◆ GetVaoId()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned int raylib::Mesh::GetVaoId () const
+
+inline
+
+ +

Retrieves the vaoId value for the object.

+
Returns
The vaoId value of the object.
+ +

Definition at line 119 of file Mesh.hpp.

+ +
+
+ +

◆ GetVboId()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned int* raylib::Mesh::GetVboId () const
+
+inline
+
+ +

Retrieves the vboId value for the object.

+
Returns
The vboId value of the object.
+ +

Definition at line 120 of file Mesh.hpp.

+ +
+
+ +

◆ GetVertexCount()

+ +
+
+ + + + + +
+ + + + + + + +
int raylib::Mesh::GetVertexCount () const
+
+inline
+
+ +

Retrieves the vertexCount value for the object.

+
Returns
The vertexCount value of the object.
+ +

Definition at line 106 of file Mesh.hpp.

+ +
+
+ +

◆ GetVertices()

+ +
+
+ + + + + +
+ + + + + + + +
float* raylib::Mesh::GetVertices () const
+
+inline
+
+ +

Retrieves the vertices value for the object.

+
Returns
The vertices value of the object.
+ +

Definition at line 108 of file Mesh.hpp.

+ +
+
+ +

◆ Poly()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
::Mesh raylib::Mesh::Poly (int sides,
float radius 
)
+
+inlinestatic
+
+ +

Load meshes from model file.

+

Generate polygonal mesh

+ +

Definition at line 39 of file Mesh.hpp.

+ +
+
+ +

◆ SetAnimNormals()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Mesh::SetAnimNormals (float * value)
+
+inline
+
+ +

Sets the animNormals value for the object.

+
Parameters
+ + +
valueThe value of which to set animNormals to.
+
+
+ +

Definition at line 116 of file Mesh.hpp.

+ +
+
+ +

◆ SetAnimVertices()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Mesh::SetAnimVertices (float * value)
+
+inline
+
+ +

Sets the animVertices value for the object.

+
Parameters
+ + +
valueThe value of which to set animVertices to.
+
+
+ +

Definition at line 115 of file Mesh.hpp.

+ +
+
+ +

◆ SetBoneIds()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Mesh::SetBoneIds (int * value)
+
+inline
+
+ +

Sets the boneIds value for the object.

+
Parameters
+ + +
valueThe value of which to set boneIds to.
+
+
+ +

Definition at line 117 of file Mesh.hpp.

+ +
+
+ +

◆ SetBoneWeights()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Mesh::SetBoneWeights (float * value)
+
+inline
+
+ +

Sets the boneWeights value for the object.

+
Parameters
+ + +
valueThe value of which to set boneWeights to.
+
+
+ +

Definition at line 118 of file Mesh.hpp.

+ +
+
+ +

◆ SetColors()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Mesh::SetColors (unsigned char * value)
+
+inline
+
+ +

Sets the colors value for the object.

+
Parameters
+ + +
valueThe value of which to set colors to.
+
+
+ +

Definition at line 113 of file Mesh.hpp.

+ +
+
+ +

◆ SetIndices()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Mesh::SetIndices (unsigned short * value)
+
+inline
+
+ +

Sets the indices value for the object.

+
Parameters
+ + +
valueThe value of which to set indices to.
+
+
+ +

Definition at line 114 of file Mesh.hpp.

+ +
+
+ +

◆ SetNormals()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Mesh::SetNormals (float * value)
+
+inline
+
+ +

Sets the normals value for the object.

+
Parameters
+ + +
valueThe value of which to set normals to.
+
+
+ +

Definition at line 111 of file Mesh.hpp.

+ +
+
+ +

◆ SetTangents()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Mesh::SetTangents (float * value)
+
+inline
+
+ +

Sets the tangents value for the object.

+
Parameters
+ + +
valueThe value of which to set tangents to.
+
+
+ +

Definition at line 112 of file Mesh.hpp.

+ +
+
+ +

◆ SetTexCoords()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Mesh::SetTexCoords (float * value)
+
+inline
+
+ +

Sets the texcoords value for the object.

+
Parameters
+ + +
valueThe value of which to set texcoords to.
+
+
+ +

Definition at line 109 of file Mesh.hpp.

+ +
+
+ +

◆ SetTexCoords2()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Mesh::SetTexCoords2 (float * value)
+
+inline
+
+ +

Sets the texcoords2 value for the object.

+
Parameters
+ + +
valueThe value of which to set texcoords2 to.
+
+
+ +

Definition at line 110 of file Mesh.hpp.

+ +
+
+ +

◆ SetTriangleCount()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Mesh::SetTriangleCount (int value)
+
+inline
+
+ +

Sets the triangleCount value for the object.

+
Parameters
+ + +
valueThe value of which to set triangleCount to.
+
+
+ +

Definition at line 107 of file Mesh.hpp.

+ +
+
+ +

◆ SetVaoId()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Mesh::SetVaoId (unsigned int value)
+
+inline
+
+ +

Sets the vaoId value for the object.

+
Parameters
+ + +
valueThe value of which to set vaoId to.
+
+
+ +

Definition at line 119 of file Mesh.hpp.

+ +
+
+ +

◆ SetVboId()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Mesh::SetVboId (unsigned int * value)
+
+inline
+
+ +

Sets the vboId value for the object.

+
Parameters
+ + +
valueThe value of which to set vboId to.
+
+
+ +

Definition at line 120 of file Mesh.hpp.

+ +
+
+ +

◆ SetVertexCount()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Mesh::SetVertexCount (int value)
+
+inline
+
+ +

Sets the vertexCount value for the object.

+
Parameters
+ + +
valueThe value of which to set vertexCount to.
+
+
+ +

Definition at line 106 of file Mesh.hpp.

+ +
+
+ +

◆ SetVertices()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Mesh::SetVertices (float * value)
+
+inline
+
+ +

Sets the vertices value for the object.

+
Parameters
+ + +
valueThe value of which to set vertices to.
+
+
+ +

Definition at line 108 of file Mesh.hpp.

+ +
+
+
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_model-members.html b/raylib-cpp/docs/classraylib_1_1_model-members.html new file mode 100644 index 00000000..d9f1e491 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_model-members.html @@ -0,0 +1,118 @@ + + + + + + + +raylib-cpp: Member List + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
raylib::Model Member List
+
+
+ +

This is the complete list of members for raylib::Model, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Draw(::Vector3 position, float scale=1.0f, ::Color tint={255, 255, 255, 255})raylib::Modelinline
Draw(::Vector3 position, ::Vector3 rotationAxis, float rotationAngle=0.0f, ::Vector3 scale={1.0f, 1.0f, 1.0f}, ::Color tint={255, 255, 255, 255})raylib::Modelinline
DrawWires(::Vector3 position, float scale=1.0f, ::Color tint={255, 255, 255, 255})raylib::Modelinline
DrawWires(::Vector3 position, ::Vector3 rotationAxis, float rotationAngle=0.0f, ::Vector3 scale={1.0f, 1.0f, 1.0f}, ::Color tint={255, 255, 255, 255})raylib::Modelinline
GetBindPoe() constraylib::Modelinline
GetBoneCount() constraylib::Modelinline
GetBones() constraylib::Modelinline
GetCollision(const ::Ray &ray) constraylib::Modelinline
GetMaterialCount() constraylib::Modelinline
GetMaterials() constraylib::Modelinline
GetMeshCount() constraylib::Modelinline
GetMeshes() constraylib::Modelinline
GetMeshMaterial() constraylib::Modelinline
GetTransform() constraylib::Modelinline
IsModelAnimationValid(const ::ModelAnimation &anim) constraylib::Modelinline
Model(const ::Model &model) (defined in raylib::Model)raylib::Modelinline
Model(const std::string &fileName) (defined in raylib::Model)raylib::Modelinline
Model(const ::Mesh &mesh) (defined in raylib::Model)raylib::Modelinline
operator=(const ::Model &model) (defined in raylib::Model)raylib::Modelinline
SetBindPoe(::Transform *value)raylib::Modelinline
SetBoneCount(int value)raylib::Modelinline
SetBones(::BoneInfo *value)raylib::Modelinline
SetMaterialCount(int value)raylib::Modelinline
SetMaterials(::Material *value)raylib::Modelinline
SetMeshCount(int value)raylib::Modelinline
SetMeshes(::Mesh *value)raylib::Modelinline
SetMeshMaterial(int *value)raylib::Modelinline
SetMeshMaterial(int meshId, int materialId)raylib::Modelinline
SetTransform(::Matrix value)raylib::Modelinline
Unload()raylib::Modelinline
UnloadKeepMeshes()raylib::Modelinline
UpdateAnimation(const ::ModelAnimation &anim, int frame)raylib::Modelinline
~Model() (defined in raylib::Model)raylib::Modelinline
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_model.html b/raylib-cpp/docs/classraylib_1_1_model.html new file mode 100644 index 00000000..03a120bf --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_model.html @@ -0,0 +1,797 @@ + + + + + + + +raylib-cpp: raylib::Model Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
raylib::Model Class Reference
+
+
+ +

Model type. + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Model (const ::Mesh &mesh)
 
Model (const ::Model &model)
 
Model (const std::string &fileName)
 
+ModelDraw (::Vector3 position, ::Vector3 rotationAxis, float rotationAngle=0.0f, ::Vector3 scale={1.0f, 1.0f, 1.0f}, ::Color tint={255, 255, 255, 255})
 Draw a model with extended parameters.
 
+ModelDraw (::Vector3 position, float scale=1.0f, ::Color tint={255, 255, 255, 255})
 Draw a model (with texture if set)
 
+ModelDrawWires (::Vector3 position, ::Vector3 rotationAxis, float rotationAngle=0.0f, ::Vector3 scale={1.0f, 1.0f, 1.0f}, ::Color tint={255, 255, 255, 255})
 Draw a model wires (with texture if set) with extended parameters.
 
+ModelDrawWires (::Vector3 position, float scale=1.0f, ::Color tint={255, 255, 255, 255})
 Draw a model wires (with texture if set)
 
::Transform * GetBindPoe () const
 Retrieves the bindPose value for the object. More...
 
int GetBoneCount () const
 Retrieves the boneCount value for the object. More...
 
::BoneInfo * GetBones () const
 Retrieves the bones value for the object. More...
 
+RayHitInfo GetCollision (const ::Ray &ray) const
 Get collision info between ray and model.
 
int GetMaterialCount () const
 Retrieves the materialCount value for the object. More...
 
::MaterialGetMaterials () const
 Retrieves the materials value for the object. More...
 
int GetMeshCount () const
 Retrieves the meshCount value for the object. More...
 
::MeshGetMeshes () const
 Retrieves the meshes value for the object. More...
 
int * GetMeshMaterial () const
 Retrieves the meshMaterial value for the object. More...
 
::Matrix GetTransform () const
 Retrieves the transform value for the object. More...
 
+bool IsModelAnimationValid (const ::ModelAnimation &anim) const
 Check model animation skeleton match.
 
+Modeloperator= (const ::Model &model)
 
void SetBindPoe (::Transform *value)
 Sets the bindPose value for the object. More...
 
void SetBoneCount (int value)
 Sets the boneCount value for the object. More...
 
void SetBones (::BoneInfo *value)
 Sets the bones value for the object. More...
 
void SetMaterialCount (int value)
 Sets the materialCount value for the object. More...
 
void SetMaterials (::Material *value)
 Sets the materials value for the object. More...
 
void SetMeshCount (int value)
 Sets the meshCount value for the object. More...
 
void SetMeshes (::Mesh *value)
 Sets the meshes value for the object. More...
 
void SetMeshMaterial (int *value)
 Sets the meshMaterial value for the object. More...
 
+ModelSetMeshMaterial (int meshId, int materialId)
 Set material for a mesh.
 
void SetTransform (::Matrix value)
 Sets the transform value for the object. More...
 
+void Unload ()
 Unload model (including meshes) from memory (RAM and/or VRAM)
 
+ModelUnloadKeepMeshes ()
 Unload model (but not meshes) from memory (RAM and/or VRAM)
 
+ModelUpdateAnimation (const ::ModelAnimation &anim, int frame)
 Update model animation pose.
 
+

Detailed Description

+

Model type.

+ +

Definition at line 14 of file Model.hpp.

+

Member Function Documentation

+ +

◆ GetBindPoe()

+ +
+
+ + + + + +
+ + + + + + + +
::Transform* raylib::Model::GetBindPoe () const
+
+inline
+
+ +

Retrieves the bindPose value for the object.

+
Returns
The bindPose value of the object.
+ +

Definition at line 40 of file Model.hpp.

+ +
+
+ +

◆ GetBoneCount()

+ +
+
+ + + + + +
+ + + + + + + +
int raylib::Model::GetBoneCount () const
+
+inline
+
+ +

Retrieves the boneCount value for the object.

+
Returns
The boneCount value of the object.
+ +

Definition at line 38 of file Model.hpp.

+ +
+
+ +

◆ GetBones()

+ +
+
+ + + + + +
+ + + + + + + +
::BoneInfo* raylib::Model::GetBones () const
+
+inline
+
+ +

Retrieves the bones value for the object.

+
Returns
The bones value of the object.
+ +

Definition at line 39 of file Model.hpp.

+ +
+
+ +

◆ GetMaterialCount()

+ +
+
+ + + + + +
+ + + + + + + +
int raylib::Model::GetMaterialCount () const
+
+inline
+
+ +

Retrieves the materialCount value for the object.

+
Returns
The materialCount value of the object.
+ +

Definition at line 34 of file Model.hpp.

+ +
+
+ +

◆ GetMaterials()

+ +
+
+ + + + + +
+ + + + + + + +
::Material* raylib::Model::GetMaterials () const
+
+inline
+
+ +

Retrieves the materials value for the object.

+
Returns
The materials value of the object.
+ +

Definition at line 36 of file Model.hpp.

+ +
+
+ +

◆ GetMeshCount()

+ +
+
+ + + + + +
+ + + + + + + +
int raylib::Model::GetMeshCount () const
+
+inline
+
+ +

Retrieves the meshCount value for the object.

+
Returns
The meshCount value of the object.
+ +

Definition at line 33 of file Model.hpp.

+ +
+
+ +

◆ GetMeshes()

+ +
+
+ + + + + +
+ + + + + + + +
::Mesh* raylib::Model::GetMeshes () const
+
+inline
+
+ +

Retrieves the meshes value for the object.

+
Returns
The meshes value of the object.
+ +

Definition at line 35 of file Model.hpp.

+ +
+
+ +

◆ GetMeshMaterial()

+ +
+
+ + + + + +
+ + + + + + + +
int* raylib::Model::GetMeshMaterial () const
+
+inline
+
+ +

Retrieves the meshMaterial value for the object.

+
Returns
The meshMaterial value of the object.
+ +

Definition at line 37 of file Model.hpp.

+ +
+
+ +

◆ GetTransform()

+ +
+
+ + + + + +
+ + + + + + + +
::Matrix raylib::Model::GetTransform () const
+
+inline
+
+ +

Retrieves the transform value for the object.

+
Returns
The transform value of the object.
+ +

Definition at line 32 of file Model.hpp.

+ +
+
+ +

◆ SetBindPoe()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Model::SetBindPoe (::Transform * value)
+
+inline
+
+ +

Sets the bindPose value for the object.

+
Parameters
+ + +
valueThe value of which to set bindPose to.
+
+
+ +

Definition at line 40 of file Model.hpp.

+ +
+
+ +

◆ SetBoneCount()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Model::SetBoneCount (int value)
+
+inline
+
+ +

Sets the boneCount value for the object.

+
Parameters
+ + +
valueThe value of which to set boneCount to.
+
+
+ +

Definition at line 38 of file Model.hpp.

+ +
+
+ +

◆ SetBones()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Model::SetBones (::BoneInfo * value)
+
+inline
+
+ +

Sets the bones value for the object.

+
Parameters
+ + +
valueThe value of which to set bones to.
+
+
+ +

Definition at line 39 of file Model.hpp.

+ +
+
+ +

◆ SetMaterialCount()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Model::SetMaterialCount (int value)
+
+inline
+
+ +

Sets the materialCount value for the object.

+
Parameters
+ + +
valueThe value of which to set materialCount to.
+
+
+ +

Definition at line 34 of file Model.hpp.

+ +
+
+ +

◆ SetMaterials()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Model::SetMaterials (::Materialvalue)
+
+inline
+
+ +

Sets the materials value for the object.

+
Parameters
+ + +
valueThe value of which to set materials to.
+
+
+ +

Definition at line 36 of file Model.hpp.

+ +
+
+ +

◆ SetMeshCount()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Model::SetMeshCount (int value)
+
+inline
+
+ +

Sets the meshCount value for the object.

+
Parameters
+ + +
valueThe value of which to set meshCount to.
+
+
+ +

Definition at line 33 of file Model.hpp.

+ +
+
+ +

◆ SetMeshes()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Model::SetMeshes (::Meshvalue)
+
+inline
+
+ +

Sets the meshes value for the object.

+
Parameters
+ + +
valueThe value of which to set meshes to.
+
+
+ +

Definition at line 35 of file Model.hpp.

+ +
+
+ +

◆ SetMeshMaterial()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Model::SetMeshMaterial (int * value)
+
+inline
+
+ +

Sets the meshMaterial value for the object.

+
Parameters
+ + +
valueThe value of which to set meshMaterial to.
+
+
+ +

Definition at line 37 of file Model.hpp.

+ +
+
+ +

◆ SetTransform()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Model::SetTransform (::Matrix value)
+
+inline
+
+ +

Sets the transform value for the object.

+
Parameters
+ + +
valueThe value of which to set transform to.
+
+
+ +

Definition at line 32 of file Model.hpp.

+ +
+
+
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_model_animation-members.html b/raylib-cpp/docs/classraylib_1_1_model_animation-members.html new file mode 100644 index 00000000..ac3029eb --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_model_animation-members.html @@ -0,0 +1,100 @@ + + + + + + + +raylib-cpp: Member List + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
raylib::ModelAnimation Member List
+
+
+ +

This is the complete list of members for raylib::ModelAnimation, including all inherited members.

+ + + + + + + + + + + + + + + + +
GetBoneCount() constraylib::ModelAnimationinline
GetBones() constraylib::ModelAnimationinline
GetFrameCount() constraylib::ModelAnimationinline
GetFramePoses() constraylib::ModelAnimationinline
IsValid(const ::Model &model) constraylib::ModelAnimationinline
Load(const std::string &fileName)raylib::ModelAnimationinlinestatic
ModelAnimation(const ::ModelAnimation &model) (defined in raylib::ModelAnimation)raylib::ModelAnimationinline
operator=(const ::ModelAnimation &model) (defined in raylib::ModelAnimation)raylib::ModelAnimationinline
SetBoneCount(int value)raylib::ModelAnimationinline
SetBones(::BoneInfo *value)raylib::ModelAnimationinline
SetFrameCount(int value)raylib::ModelAnimationinline
SetFramePoses(::Transform **value)raylib::ModelAnimationinline
Unload()raylib::ModelAnimationinline
Update(const ::Model &model, int frame)raylib::ModelAnimationinline
~ModelAnimation() (defined in raylib::ModelAnimation)raylib::ModelAnimationinline
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_model_animation.html b/raylib-cpp/docs/classraylib_1_1_model_animation.html new file mode 100644 index 00000000..c24c2c30 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_model_animation.html @@ -0,0 +1,411 @@ + + + + + + + +raylib-cpp: raylib::ModelAnimation Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
raylib::ModelAnimation Class Reference
+
+
+ +

Model animation. + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

ModelAnimation (const ::ModelAnimation &model)
 
int GetBoneCount () const
 Retrieves the boneCount value for the object. More...
 
::BoneInfo * GetBones () const
 Retrieves the bones value for the object. More...
 
int GetFrameCount () const
 Retrieves the frameCount value for the object. More...
 
::Transform ** GetFramePoses () const
 Retrieves the framePoses value for the object. More...
 
+bool IsValid (const ::Model &model) const
 Check model animation skeleton match.
 
+ModelAnimationoperator= (const ::ModelAnimation &model)
 
void SetBoneCount (int value)
 Sets the boneCount value for the object. More...
 
void SetBones (::BoneInfo *value)
 Sets the bones value for the object. More...
 
void SetFrameCount (int value)
 Sets the frameCount value for the object. More...
 
void SetFramePoses (::Transform **value)
 Sets the framePoses value for the object. More...
 
+void Unload ()
 Unload animation data.
 
+ModelAnimationUpdate (const ::Model &model, int frame)
 Update model animation pose.
 
+ + + + +

+Static Public Member Functions

+static std::vector< ModelAnimationLoad (const std::string &fileName)
 Load model animations from file.
 
+

Detailed Description

+

Model animation.

+ +

Definition at line 15 of file ModelAnimation.hpp.

+

Member Function Documentation

+ +

◆ GetBoneCount()

+ +
+
+ + + + + +
+ + + + + + + +
int raylib::ModelAnimation::GetBoneCount () const
+
+inline
+
+ +

Retrieves the boneCount value for the object.

+
Returns
The boneCount value of the object.
+ +

Definition at line 34 of file ModelAnimation.hpp.

+ +
+
+ +

◆ GetBones()

+ +
+
+ + + + + +
+ + + + + + + +
::BoneInfo* raylib::ModelAnimation::GetBones () const
+
+inline
+
+ +

Retrieves the bones value for the object.

+
Returns
The bones value of the object.
+ +

Definition at line 35 of file ModelAnimation.hpp.

+ +
+
+ +

◆ GetFrameCount()

+ +
+
+ + + + + +
+ + + + + + + +
int raylib::ModelAnimation::GetFrameCount () const
+
+inline
+
+ +

Retrieves the frameCount value for the object.

+
Returns
The frameCount value of the object.
+ +

Definition at line 36 of file ModelAnimation.hpp.

+ +
+
+ +

◆ GetFramePoses()

+ +
+
+ + + + + +
+ + + + + + + +
::Transform** raylib::ModelAnimation::GetFramePoses () const
+
+inline
+
+ +

Retrieves the framePoses value for the object.

+
Returns
The framePoses value of the object.
+ +

Definition at line 37 of file ModelAnimation.hpp.

+ +
+
+ +

◆ SetBoneCount()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::ModelAnimation::SetBoneCount (int value)
+
+inline
+
+ +

Sets the boneCount value for the object.

+
Parameters
+ + +
valueThe value of which to set boneCount to.
+
+
+ +

Definition at line 34 of file ModelAnimation.hpp.

+ +
+
+ +

◆ SetBones()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::ModelAnimation::SetBones (::BoneInfo * value)
+
+inline
+
+ +

Sets the bones value for the object.

+
Parameters
+ + +
valueThe value of which to set bones to.
+
+
+ +

Definition at line 35 of file ModelAnimation.hpp.

+ +
+
+ +

◆ SetFrameCount()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::ModelAnimation::SetFrameCount (int value)
+
+inline
+
+ +

Sets the frameCount value for the object.

+
Parameters
+ + +
valueThe value of which to set frameCount to.
+
+
+ +

Definition at line 36 of file ModelAnimation.hpp.

+ +
+
+ +

◆ SetFramePoses()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::ModelAnimation::SetFramePoses (::Transform ** value)
+
+inline
+
+ +

Sets the framePoses value for the object.

+
Parameters
+ + +
valueThe value of which to set framePoses to.
+
+
+ +

Definition at line 37 of file ModelAnimation.hpp.

+ +
+
+
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_mouse-members.html b/raylib-cpp/docs/classraylib_1_1_mouse-members.html new file mode 100644 index 00000000..350cbbd2 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_mouse-members.html @@ -0,0 +1,102 @@ + + + + + + + +raylib-cpp: Member List + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
raylib::Mouse Member List
+
+
+ +

This is the complete list of members for raylib::Mouse, including all inherited members.

+ + + + + + + + + + + + + + + + + + +
GetPosition() (defined in raylib::Mouse)raylib::Mouseinlinestatic
GetTouchPosition(int index) (defined in raylib::Mouse)raylib::Mouseinlinestatic
GetTouchX() (defined in raylib::Mouse)raylib::Mouseinlinestatic
GetTouchY() (defined in raylib::Mouse)raylib::Mouseinlinestatic
GetWheelMove() (defined in raylib::Mouse)raylib::Mouseinlinestatic
GetX() (defined in raylib::Mouse)raylib::Mouseinlinestatic
GetY() (defined in raylib::Mouse)raylib::Mouseinlinestatic
IsButtonDown(int button)raylib::Mouseinlinestatic
IsButtonPressed(int button)raylib::Mouseinlinestatic
IsButtonReleased(int button)raylib::Mouseinlinestatic
IsButtonUp(int button) (defined in raylib::Mouse)raylib::Mouseinlinestatic
SetCursor(int cursor) (defined in raylib::Mouse)raylib::Mouseinlinestatic
SetOffset(int offsetX, int offsetY) (defined in raylib::Mouse)raylib::Mouseinlinestatic
SetPosition(int x, int y) (defined in raylib::Mouse)raylib::Mouseinlinestatic
SetScale(float scaleX, float scaleY) (defined in raylib::Mouse)raylib::Mouseinlinestatic
SetX(int x) (defined in raylib::Mouse)raylib::Mouseinlinestatic
SetY(int y) (defined in raylib::Mouse)raylib::Mouseinlinestatic
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_mouse.html b/raylib-cpp/docs/classraylib_1_1_mouse.html new file mode 100644 index 00000000..6fb4ecef --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_mouse.html @@ -0,0 +1,150 @@ + + + + + + + +raylib-cpp: raylib::Mouse Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
raylib::Mouse Class Reference
+
+
+ +

Input-related functions: mouse. + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Static Public Member Functions

+static Vector2 GetPosition ()
 
+static Vector2 GetTouchPosition (int index)
 
+static int GetTouchX ()
 
+static int GetTouchY ()
 
+static float GetWheelMove ()
 
+static int GetX ()
 
+static int GetY ()
 
+static bool IsButtonDown (int button)
 Detect if a mouse button is being pressed.
 
+static bool IsButtonPressed (int button)
 Detect if a mouse button has been pressed once.
 
+static bool IsButtonReleased (int button)
 Detect if a mouse button has been released once.
 
+static bool IsButtonUp (int button)
 
+static void SetCursor (int cursor)
 
+static void SetOffset (int offsetX, int offsetY)
 
+static void SetPosition (int x, int y)
 
+static void SetScale (float scaleX, float scaleY)
 
+static void SetX (int x)
 
+static void SetY (int y)
 
+

Detailed Description

+

Input-related functions: mouse.

+ +

Definition at line 11 of file Mouse.hpp.

+
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_music-members.html b/raylib-cpp/docs/classraylib_1_1_music-members.html new file mode 100644 index 00000000..027662bd --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_music-members.html @@ -0,0 +1,111 @@ + + + + + + + +raylib-cpp: Member List + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
raylib::Music Member List
+
+
+ +

This is the complete list of members for raylib::Music, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
GetCtxData() constraylib::Musicinline
GetCtxType() constraylib::Musicinline
GetLooping() constraylib::Musicinline
GetSampleCount() constraylib::Musicinline
GetStream() constraylib::Musicinline
GetTimeLength() constraylib::Musicinline
GetTimePlayed() constraylib::Musicinline
IsPlaying() constraylib::Musicinline
Music(const ::Music &music) (defined in raylib::Music)raylib::Musicinline
Music(const std::string &fileName)raylib::Musicinline
Music(const std::string &fileType, unsigned char *data, int dataSize)raylib::Musicinline
operator=(const ::Music &music) (defined in raylib::Music)raylib::Musicinline
Pause()raylib::Musicinline
Play()raylib::Musicinline
Resume()raylib::Musicinline
SetCtxData(void *value)raylib::Musicinline
SetCtxType(int value)raylib::Musicinline
SetLooping(bool value)raylib::Musicinline
SetPitch(float pitch)raylib::Musicinline
SetSampleCount(unsigned int value)raylib::Musicinline
SetStream(::AudioStream value)raylib::Musicinline
SetVolume(float volume)raylib::Musicinline
Stop()raylib::Musicinline
Unload()raylib::Musicinline
Update()raylib::Musicinline
~Music()raylib::Musicinline
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_music.html b/raylib-cpp/docs/classraylib_1_1_music.html new file mode 100644 index 00000000..8ba92d3d --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_music.html @@ -0,0 +1,519 @@ + + + + + + + +raylib-cpp: raylib::Music Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
raylib::Music Class Reference
+
+
+ +

Music stream type (audio file streaming from memory) + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Music (const ::Music &music)
 
Music (const std::string &fileName)
 Load music stream from file.
 
Music (const std::string &fileType, unsigned char *data, int dataSize)
 Load music stream from memory.
 
~Music ()
 Unload music stream.
 
void * GetCtxData () const
 Retrieves the ctxData value for the object. More...
 
int GetCtxType () const
 Retrieves the ctxType value for the object. More...
 
bool GetLooping () const
 Retrieves the looping value for the object. More...
 
unsigned int GetSampleCount () const
 Retrieves the sampleCount value for the object. More...
 
::AudioStream GetStream () const
 Retrieves the stream value for the object. More...
 
+float GetTimeLength () const
 Get music time length (in seconds)
 
+float GetTimePlayed () const
 Get current music time played (in seconds)
 
+bool IsPlaying () const
 Check if music is playing.
 
+Musicoperator= (const ::Music &music)
 
+MusicPause ()
 Pause music playing.
 
+MusicPlay ()
 Start music playing.
 
+MusicResume ()
 Resume music playing.
 
void SetCtxData (void *value)
 Sets the ctxData value for the object. More...
 
void SetCtxType (int value)
 Sets the ctxType value for the object. More...
 
void SetLooping (bool value)
 Sets the looping value for the object. More...
 
+MusicSetPitch (float pitch)
 Set pitch for music.
 
void SetSampleCount (unsigned int value)
 Sets the sampleCount value for the object. More...
 
void SetStream (::AudioStream value)
 Sets the stream value for the object. More...
 
+MusicSetVolume (float volume)
 Set volume for music.
 
+MusicStop ()
 Stop music playing.
 
+void Unload ()
 Unload music stream.
 
+MusicUpdate ()
 Updates buffers for music streaming.
 
+

Detailed Description

+

Music stream type (audio file streaming from memory)

+ +

Definition at line 13 of file Music.hpp.

+

Member Function Documentation

+ +

◆ GetCtxData()

+ +
+
+ + + + + +
+ + + + + + + +
void* raylib::Music::GetCtxData () const
+
+inline
+
+ +

Retrieves the ctxData value for the object.

+
Returns
The ctxData value of the object.
+ +

Definition at line 44 of file Music.hpp.

+ +
+
+ +

◆ GetCtxType()

+ +
+
+ + + + + +
+ + + + + + + +
int raylib::Music::GetCtxType () const
+
+inline
+
+ +

Retrieves the ctxType value for the object.

+
Returns
The ctxType value of the object.
+ +

Definition at line 43 of file Music.hpp.

+ +
+
+ +

◆ GetLooping()

+ +
+
+ + + + + +
+ + + + + + + +
bool raylib::Music::GetLooping () const
+
+inline
+
+ +

Retrieves the looping value for the object.

+
Returns
The looping value of the object.
+ +

Definition at line 42 of file Music.hpp.

+ +
+
+ +

◆ GetSampleCount()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned int raylib::Music::GetSampleCount () const
+
+inline
+
+ +

Retrieves the sampleCount value for the object.

+
Returns
The sampleCount value of the object.
+ +

Definition at line 41 of file Music.hpp.

+ +
+
+ +

◆ GetStream()

+ +
+
+ + + + + +
+ + + + + + + +
::AudioStream raylib::Music::GetStream () const
+
+inline
+
+ +

Retrieves the stream value for the object.

+
Returns
The stream value of the object.
+ +

Definition at line 40 of file Music.hpp.

+ +
+
+ +

◆ SetCtxData()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Music::SetCtxData (void * value)
+
+inline
+
+ +

Sets the ctxData value for the object.

+
Parameters
+ + +
valueThe value of which to set ctxData to.
+
+
+ +

Definition at line 44 of file Music.hpp.

+ +
+
+ +

◆ SetCtxType()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Music::SetCtxType (int value)
+
+inline
+
+ +

Sets the ctxType value for the object.

+
Parameters
+ + +
valueThe value of which to set ctxType to.
+
+
+ +

Definition at line 43 of file Music.hpp.

+ +
+
+ +

◆ SetLooping()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Music::SetLooping (bool value)
+
+inline
+
+ +

Sets the looping value for the object.

+
Parameters
+ + +
valueThe value of which to set looping to.
+
+
+ +

Definition at line 42 of file Music.hpp.

+ +
+
+ +

◆ SetSampleCount()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Music::SetSampleCount (unsigned int value)
+
+inline
+
+ +

Sets the sampleCount value for the object.

+
Parameters
+ + +
valueThe value of which to set sampleCount to.
+
+
+ +

Definition at line 41 of file Music.hpp.

+ +
+
+ +

◆ SetStream()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Music::SetStream (::AudioStream value)
+
+inline
+
+ +

Sets the stream value for the object.

+
Parameters
+ + +
valueThe value of which to set stream to.
+
+
+ +

Definition at line 40 of file Music.hpp.

+ +
+
+
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_physics-members.html b/raylib-cpp/docs/classraylib_1_1_physics-members.html new file mode 100644 index 00000000..9332a475 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_physics-members.html @@ -0,0 +1,108 @@ + + + + + + + +raylib-cpp: Member List + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
raylib::Physics Member List
+
+
+ +

This is the complete list of members for raylib::Physics, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + +
AddForce(PhysicsBody body, Vector2 force) (defined in raylib::Physics)raylib::Physicsinline
AddTorque(PhysicsBody body, float amount) (defined in raylib::Physics)raylib::Physicsinline
Close() (defined in raylib::Physics)raylib::Physicsinline
CreateBodyCircle(Vector2 pos, float radius, float density) (defined in raylib::Physics)raylib::Physicsinline
CreateBodyPolygon(Vector2 pos, float radius, int sides, float density) (defined in raylib::Physics)raylib::Physicsinline
CreateBodyRectangle(Vector2 pos, float width, float height, float density) (defined in raylib::Physics)raylib::Physicsinline
DestroyBody(PhysicsBody body) (defined in raylib::Physics)raylib::Physicsinline
GetBodiesCount() const (defined in raylib::Physics)raylib::Physicsinline
GetBody(int index) const (defined in raylib::Physics)raylib::Physicsinline
GetShapeType(int index) const (defined in raylib::Physics)raylib::Physicsinline
GetShapeVertex(PhysicsBody body, int vertex) const (defined in raylib::Physics)raylib::Physicsinline
GetShapeVerticesCount(int index) const (defined in raylib::Physics)raylib::Physicsinline
Init() (defined in raylib::Physics)raylib::Physicsinline
Physics() (defined in raylib::Physics)raylib::Physicsinline
Physics(float gravityY) (defined in raylib::Physics)raylib::Physicsinline
Physics(float gravityX, float gravityY) (defined in raylib::Physics)raylib::Physicsinline
Reset() (defined in raylib::Physics)raylib::Physicsinline
SetBodyRotation(PhysicsBody body, float radians) (defined in raylib::Physics)raylib::Physicsinline
SetGravity(float x, float y) (defined in raylib::Physics)raylib::Physicsinline
SetTimeStep(double delta) (defined in raylib::Physics)raylib::Physicsinline
Shatter(PhysicsBody body, Vector2 position, float force) (defined in raylib::Physics)raylib::Physicsinline
UpdateStep() (defined in raylib::Physics)raylib::Physicsinline
~Physics() (defined in raylib::Physics)raylib::Physicsinline
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_physics.html b/raylib-cpp/docs/classraylib_1_1_physics.html new file mode 100644 index 00000000..53253e58 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_physics.html @@ -0,0 +1,159 @@ + + + + + + + +raylib-cpp: raylib::Physics Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
raylib::Physics Class Reference
+
+
+ +

2D Physics library for videogames + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Physics (float gravityX, float gravityY)
 
Physics (float gravityY)
 
+PhysicsAddForce (PhysicsBody body, Vector2 force)
 
+PhysicsAddTorque (PhysicsBody body, float amount)
 
+PhysicsClose ()
 
+PhysicsBody CreateBodyCircle (Vector2 pos, float radius, float density)
 
+PhysicsBody CreateBodyPolygon (Vector2 pos, float radius, int sides, float density)
 
+PhysicsBody CreateBodyRectangle (Vector2 pos, float width, float height, float density)
 
+PhysicsDestroyBody (PhysicsBody body)
 
+int GetBodiesCount () const
 
+PhysicsBody GetBody (int index) const
 
+int GetShapeType (int index) const
 
+Vector2 GetShapeVertex (PhysicsBody body, int vertex) const
 
+int GetShapeVerticesCount (int index) const
 
+PhysicsInit ()
 
+PhysicsReset ()
 
+PhysicsSetBodyRotation (PhysicsBody body, float radians)
 
+PhysicsSetGravity (float x, float y)
 
+PhysicsSetTimeStep (double delta)
 
+PhysicsShatter (PhysicsBody body, Vector2 position, float force)
 
+PhysicsUpdateStep ()
 
+

Detailed Description

+

2D Physics library for videogames

+ +

Definition at line 12 of file Physics.hpp.

+
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_ray-members.html b/raylib-cpp/docs/classraylib_1_1_ray-members.html new file mode 100644 index 00000000..a1643ab0 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_ray-members.html @@ -0,0 +1,100 @@ + + + + + + + +raylib-cpp: Member List + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
raylib::Ray Member List
+
+
+ +

This is the complete list of members for raylib::Ray, including all inherited members.

+ + + + + + + + + + + + + + + + +
CheckCollision(const ::BoundingBox &box) constraylib::Rayinline
CheckCollisionSphere(::Vector3 center, float radius) constraylib::Rayinline
CheckCollisionSphere(::Vector3 center, float radius, ::Vector3 *collisionPoint) constraylib::Rayinline
Draw(::Color color)raylib::Rayinline
GetCollision(const ::Model &model) constraylib::Rayinline
GetCollisionGround(float groundHeight) constraylib::Rayinline
GetCollisionTriangle(::Vector3 p1, ::Vector3 p2, ::Vector3 p3) constraylib::Rayinline
GetDirection() constraylib::Rayinline
GetPosition() constraylib::Rayinline
operator=(const ::Ray &ray) (defined in raylib::Ray)raylib::Rayinline
Ray(const ::Ray &ray) (defined in raylib::Ray)raylib::Rayinline
Ray(::Vector3 Position, ::Vector3 Direction) (defined in raylib::Ray)raylib::Rayinline
Ray(::Vector2 mousePosition, ::Camera camera) (defined in raylib::Ray)raylib::Rayinline
SetDirection(::Vector3 value)raylib::Rayinline
SetPosition(::Vector3 value)raylib::Rayinline
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_ray.html b/raylib-cpp/docs/classraylib_1_1_ray.html new file mode 100644 index 00000000..2607e235 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_ray.html @@ -0,0 +1,281 @@ + + + + + + + +raylib-cpp: raylib::Ray Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
raylib::Ray Class Reference
+
+
+ +

Ray type (useful for raycast) + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Ray (::Vector2 mousePosition, ::Camera camera)
 
Ray (::Vector3 Position, ::Vector3 Direction)
 
Ray (const ::Ray &ray)
 
+bool CheckCollision (const ::BoundingBox &box) const
 Detect collision between ray and box.
 
+bool CheckCollisionSphere (::Vector3 center, float radius) const
 Detect collision between ray and sphere.
 
+bool CheckCollisionSphere (::Vector3 center, float radius, ::Vector3 *collisionPoint) const
 Detect collision between ray and sphere, returns collision point.
 
+RayDraw (::Color color)
 Draw a ray line.
 
+RayHitInfo GetCollision (const ::Model &model) const
 Get collision info between ray and model.
 
+RayHitInfo GetCollisionGround (float groundHeight) const
 Get collision info between ray and ground plane (Y-normal plane)
 
+RayHitInfo GetCollisionTriangle (::Vector3 p1, ::Vector3 p2, ::Vector3 p3) const
 Get collision info between ray and triangle.
 
::Vector3 GetDirection () const
 Retrieves the direction value for the object. More...
 
::Vector3 GetPosition () const
 Retrieves the position value for the object. More...
 
+Rayoperator= (const ::Ray &ray)
 
void SetDirection (::Vector3 value)
 Sets the direction value for the object. More...
 
void SetPosition (::Vector3 value)
 Sets the position value for the object. More...
 
+

Detailed Description

+

Ray type (useful for raycast)

+ +

Definition at line 12 of file Ray.hpp.

+

Member Function Documentation

+ +

◆ GetDirection()

+ +
+
+ + + + + +
+ + + + + + + +
::Vector3 raylib::Ray::GetDirection () const
+
+inline
+
+ +

Retrieves the direction value for the object.

+
Returns
The direction value of the object.
+ +

Definition at line 33 of file Ray.hpp.

+ +
+
+ +

◆ GetPosition()

+ +
+
+ + + + + +
+ + + + + + + +
::Vector3 raylib::Ray::GetPosition () const
+
+inline
+
+ +

Retrieves the position value for the object.

+
Returns
The position value of the object.
+ +

Definition at line 32 of file Ray.hpp.

+ +
+
+ +

◆ SetDirection()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Ray::SetDirection (::Vector3 value)
+
+inline
+
+ +

Sets the direction value for the object.

+
Parameters
+ + +
valueThe value of which to set direction to.
+
+
+ +

Definition at line 33 of file Ray.hpp.

+ +
+
+ +

◆ SetPosition()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Ray::SetPosition (::Vector3 value)
+
+inline
+
+ +

Sets the position value for the object.

+
Parameters
+ + +
valueThe value of which to set position to.
+
+
+ +

Definition at line 32 of file Ray.hpp.

+ +
+
+
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_ray_hit_info-members.html b/raylib-cpp/docs/classraylib_1_1_ray_hit_info-members.html new file mode 100644 index 00000000..dee4c6ee --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_ray_hit_info-members.html @@ -0,0 +1,100 @@ + + + + + + + +raylib-cpp: Member List + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
raylib::RayHitInfo Member List
+
+
+ +

This is the complete list of members for raylib::RayHitInfo, including all inherited members.

+ + + + + + + + + + + + + + + + +
GetDistance() constraylib::RayHitInfoinline
GetHit() constraylib::RayHitInfoinline
GetNormal() constraylib::RayHitInfoinline
GetPosition() constraylib::RayHitInfoinline
operator=(const ::RayHitInfo &ray) (defined in raylib::RayHitInfo)raylib::RayHitInfoinline
RayHitInfo(const ::RayHitInfo &ray) (defined in raylib::RayHitInfo)raylib::RayHitInfoinline
RayHitInfo(bool Hit, float Distance, ::Vector3 Position, ::Vector3 Normal) (defined in raylib::RayHitInfo)raylib::RayHitInfoinline
RayHitInfo(const ::Ray &ray, const ::Mesh &mesh, const ::Matrix &transform)raylib::RayHitInfoinline
RayHitInfo(const ::Ray &ray, const ::Model &model)raylib::RayHitInfoinline
RayHitInfo(const ::Ray &ray, ::Vector3 p1, ::Vector3 p2, ::Vector3 p3)raylib::RayHitInfoinline
RayHitInfo(const ::Ray &ray, float groundHeight)raylib::RayHitInfoinline
SetDistance(float value)raylib::RayHitInfoinline
SetHit(bool value)raylib::RayHitInfoinline
SetNormal(::Vector3 value)raylib::RayHitInfoinline
SetPosition(::Vector3 value)raylib::RayHitInfoinline
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_ray_hit_info.html b/raylib-cpp/docs/classraylib_1_1_ray_hit_info.html new file mode 100644 index 00000000..c74682c3 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_ray_hit_info.html @@ -0,0 +1,410 @@ + + + + + + + +raylib-cpp: raylib::RayHitInfo Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
raylib::RayHitInfo Class Reference
+
+
+ +

Raycast hit information. + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

RayHitInfo (bool Hit, float Distance, ::Vector3 Position, ::Vector3 Normal)
 
RayHitInfo (const ::Ray &ray, ::Vector3 p1, ::Vector3 p2, ::Vector3 p3)
 Get collision info between ray and triangle.
 
RayHitInfo (const ::Ray &ray, const ::Mesh &mesh, const ::Matrix &transform)
 Get collision info between ray and mesh.
 
RayHitInfo (const ::Ray &ray, const ::Model &model)
 Get collision info between ray and model.
 
RayHitInfo (const ::Ray &ray, float groundHeight)
 Get collision info between ray and ground plane (Y-normal plane)
 
RayHitInfo (const ::RayHitInfo &ray)
 
float GetDistance () const
 Retrieves the distance value for the object. More...
 
bool GetHit () const
 Retrieves the hit value for the object. More...
 
::Vector3 GetNormal () const
 Retrieves the normal value for the object. More...
 
::Vector3 GetPosition () const
 Retrieves the position value for the object. More...
 
+RayHitInfooperator= (const ::RayHitInfo &ray)
 
void SetDistance (float value)
 Sets the distance value for the object. More...
 
void SetHit (bool value)
 Sets the hit value for the object. More...
 
void SetNormal (::Vector3 value)
 Sets the normal value for the object. More...
 
void SetPosition (::Vector3 value)
 Sets the position value for the object. More...
 
+

Detailed Description

+

Raycast hit information.

+ +

Definition at line 11 of file RayHitInfo.hpp.

+

Member Function Documentation

+ +

◆ GetDistance()

+ +
+
+ + + + + +
+ + + + + + + +
float raylib::RayHitInfo::GetDistance () const
+
+inline
+
+ +

Retrieves the distance value for the object.

+
Returns
The distance value of the object.
+ +

Definition at line 58 of file RayHitInfo.hpp.

+ +
+
+ +

◆ GetHit()

+ +
+
+ + + + + +
+ + + + + + + +
bool raylib::RayHitInfo::GetHit () const
+
+inline
+
+ +

Retrieves the hit value for the object.

+
Returns
The hit value of the object.
+ +

Definition at line 57 of file RayHitInfo.hpp.

+ +
+
+ +

◆ GetNormal()

+ +
+
+ + + + + +
+ + + + + + + +
::Vector3 raylib::RayHitInfo::GetNormal () const
+
+inline
+
+ +

Retrieves the normal value for the object.

+
Returns
The normal value of the object.
+ +

Definition at line 60 of file RayHitInfo.hpp.

+ +
+
+ +

◆ GetPosition()

+ +
+
+ + + + + +
+ + + + + + + +
::Vector3 raylib::RayHitInfo::GetPosition () const
+
+inline
+
+ +

Retrieves the position value for the object.

+
Returns
The position value of the object.
+ +

Definition at line 59 of file RayHitInfo.hpp.

+ +
+
+ +

◆ SetDistance()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::RayHitInfo::SetDistance (float value)
+
+inline
+
+ +

Sets the distance value for the object.

+
Parameters
+ + +
valueThe value of which to set distance to.
+
+
+ +

Definition at line 58 of file RayHitInfo.hpp.

+ +
+
+ +

◆ SetHit()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::RayHitInfo::SetHit (bool value)
+
+inline
+
+ +

Sets the hit value for the object.

+
Parameters
+ + +
valueThe value of which to set hit to.
+
+
+ +

Definition at line 57 of file RayHitInfo.hpp.

+ +
+
+ +

◆ SetNormal()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::RayHitInfo::SetNormal (::Vector3 value)
+
+inline
+
+ +

Sets the normal value for the object.

+
Parameters
+ + +
valueThe value of which to set normal to.
+
+
+ +

Definition at line 60 of file RayHitInfo.hpp.

+ +
+
+ +

◆ SetPosition()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::RayHitInfo::SetPosition (::Vector3 value)
+
+inline
+
+ +

Sets the position value for the object.

+
Parameters
+ + +
valueThe value of which to set position to.
+
+
+ +

Definition at line 59 of file RayHitInfo.hpp.

+ +
+
+
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_rectangle-members.html b/raylib-cpp/docs/classraylib_1_1_rectangle-members.html new file mode 100644 index 00000000..4b67c2d1 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_rectangle-members.html @@ -0,0 +1,123 @@ + + + + + + + +raylib-cpp: Member List + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
raylib::Rectangle Member List
+
+
+ +

This is the complete list of members for raylib::Rectangle, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CheckCollision(::Rectangle rec2) constraylib::Rectangleinline
CheckCollision(::Vector2 point) constraylib::Rectangleinline
CheckCollision(::Vector2 center, float radius)raylib::Rectangleinline
Draw(::Color color)raylib::Rectangleinline
Draw(::Vector2 origin, float rotation, ::Color color) (defined in raylib::Rectangle)raylib::Rectangleinline
DrawGradient(::Color col1, ::Color col2, ::Color col3, ::Color col4) (defined in raylib::Rectangle)raylib::Rectangleinline
DrawGradientH(::Color color1, ::Color color2) (defined in raylib::Rectangle)raylib::Rectangleinline
DrawGradientV(::Color color1, ::Color color2) (defined in raylib::Rectangle)raylib::Rectangleinline
DrawLines(::Color color) (defined in raylib::Rectangle)raylib::Rectangleinline
DrawLines(::Color color, int lineThick) (defined in raylib::Rectangle)raylib::Rectangleinline
DrawRounded(float roundness, int segments, ::Color color) (defined in raylib::Rectangle)raylib::Rectangleinline
DrawRoundedLines(float roundness, int segments, int lineThick, ::Color color) (defined in raylib::Rectangle)raylib::Rectangleinline
GetCollision(::Rectangle rec2) constraylib::Rectangleinline
GetHeight() constraylib::Rectangleinline
GetPosition() (defined in raylib::Rectangle)raylib::Rectangleinline
GetSize() (defined in raylib::Rectangle)raylib::Rectangleinline
GetWidth() constraylib::Rectangleinline
GetX() constraylib::Rectangleinline
GetY() constraylib::Rectangleinline
operator::Vector4() const (defined in raylib::Rectangle)raylib::Rectangleinline
operator=(const ::Rectangle &rect) (defined in raylib::Rectangle)raylib::Rectangleinline
Rectangle(const ::Rectangle &vec) (defined in raylib::Rectangle)raylib::Rectangleinline
Rectangle(float x, float y, float width, float height) (defined in raylib::Rectangle)raylib::Rectangleinline
Rectangle(float x, float y, float width) (defined in raylib::Rectangle)raylib::Rectangleinline
Rectangle(float x, float y) (defined in raylib::Rectangle)raylib::Rectangleinline
Rectangle(float x) (defined in raylib::Rectangle)raylib::Rectangleinline
Rectangle() (defined in raylib::Rectangle)raylib::Rectangleinline
Rectangle(::Vector2 position, ::Vector2 size) (defined in raylib::Rectangle)raylib::Rectangleinline
Rectangle(::Vector2 size) (defined in raylib::Rectangle)raylib::Rectangleinline
SetHeight(float value)raylib::Rectangleinline
SetPosition(float newX, float newY) (defined in raylib::Rectangle)raylib::Rectangleinline
SetPosition(const ::Vector2 &position) (defined in raylib::Rectangle)raylib::Rectangleinline
SetSize(float newWidth, float newHeight) (defined in raylib::Rectangle)raylib::Rectangleinline
SetSize(const ::Vector2 &size) (defined in raylib::Rectangle)raylib::Rectangleinline
SetWidth(float value)raylib::Rectangleinline
SetX(float value)raylib::Rectangleinline
SetY(float value)raylib::Rectangleinline
ToVector4() (defined in raylib::Rectangle)raylib::Rectangleinline
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_rectangle.html b/raylib-cpp/docs/classraylib_1_1_rectangle.html new file mode 100644 index 00000000..b532d519 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_rectangle.html @@ -0,0 +1,477 @@ + + + + + + + +raylib-cpp: raylib::Rectangle Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
raylib::Rectangle Class Reference
+
+
+ +

Rectangle type. + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Rectangle (::Vector2 position, ::Vector2 size)
 
Rectangle (::Vector2 size)
 
Rectangle (const ::Rectangle &vec)
 
Rectangle (float x)
 
Rectangle (float x, float y)
 
Rectangle (float x, float y, float width)
 
Rectangle (float x, float y, float width, float height)
 
+bool CheckCollision (::Rectangle rec2) const
 Check collision between two rectangles.
 
+bool CheckCollision (::Vector2 center, float radius)
 Check collision between circle and rectangle.
 
+bool CheckCollision (::Vector2 point) const
 Check if point is inside rectangle.
 
+RectangleDraw (::Color color)
 Draw a color-filled rectangle.
 
+RectangleDraw (::Vector2 origin, float rotation, ::Color color)
 
+RectangleDrawGradient (::Color col1, ::Color col2, ::Color col3, ::Color col4)
 
+RectangleDrawGradientH (::Color color1, ::Color color2)
 
+RectangleDrawGradientV (::Color color1, ::Color color2)
 
+RectangleDrawLines (::Color color)
 
+RectangleDrawLines (::Color color, int lineThick)
 
+RectangleDrawRounded (float roundness, int segments, ::Color color)
 
+RectangleDrawRoundedLines (float roundness, int segments, int lineThick, ::Color color)
 
+inline ::Rectangle GetCollision (::Rectangle rec2) const
 Get collision rectangle for two rectangles collision.
 
float GetHeight () const
 Retrieves the height value for the object. More...
 
+inline ::Vector2 GetPosition ()
 
+inline ::Vector2 GetSize ()
 
float GetWidth () const
 Retrieves the width value for the object. More...
 
float GetX () const
 Retrieves the x value for the object. More...
 
float GetY () const
 Retrieves the y value for the object. More...
 
operator::Vector4 () const
 
+Rectangleoperator= (const ::Rectangle &rect)
 
void SetHeight (float value)
 Sets the height value for the object. More...
 
+RectangleSetPosition (const ::Vector2 &position)
 
+RectangleSetPosition (float newX, float newY)
 
+RectangleSetSize (const ::Vector2 &size)
 
+RectangleSetSize (float newWidth, float newHeight)
 
void SetWidth (float value)
 Sets the width value for the object. More...
 
void SetX (float value)
 Sets the x value for the object. More...
 
void SetY (float value)
 Sets the y value for the object. More...
 
+inline ::Vector4 ToVector4 ()
 
+

Detailed Description

+

Rectangle type.

+ +

Definition at line 12 of file Rectangle.hpp.

+

Member Function Documentation

+ +

◆ GetHeight()

+ +
+
+ + + + + +
+ + + + + + + +
float raylib::Rectangle::GetHeight () const
+
+inline
+
+ +

Retrieves the height value for the object.

+
Returns
The height value of the object.
+ +

Definition at line 31 of file Rectangle.hpp.

+ +
+
+ +

◆ GetWidth()

+ +
+
+ + + + + +
+ + + + + + + +
float raylib::Rectangle::GetWidth () const
+
+inline
+
+ +

Retrieves the width value for the object.

+
Returns
The width value of the object.
+ +

Definition at line 30 of file Rectangle.hpp.

+ +
+
+ +

◆ GetX()

+ +
+
+ + + + + +
+ + + + + + + +
float raylib::Rectangle::GetX () const
+
+inline
+
+ +

Retrieves the x value for the object.

+
Returns
The x value of the object.
+ +

Definition at line 28 of file Rectangle.hpp.

+ +
+
+ +

◆ GetY()

+ +
+
+ + + + + +
+ + + + + + + +
float raylib::Rectangle::GetY () const
+
+inline
+
+ +

Retrieves the y value for the object.

+
Returns
The y value of the object.
+ +

Definition at line 29 of file Rectangle.hpp.

+ +
+
+ +

◆ SetHeight()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Rectangle::SetHeight (float value)
+
+inline
+
+ +

Sets the height value for the object.

+
Parameters
+ + +
valueThe value of which to set height to.
+
+
+ +

Definition at line 31 of file Rectangle.hpp.

+ +
+
+ +

◆ SetWidth()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Rectangle::SetWidth (float value)
+
+inline
+
+ +

Sets the width value for the object.

+
Parameters
+ + +
valueThe value of which to set width to.
+
+
+ +

Definition at line 30 of file Rectangle.hpp.

+ +
+
+ +

◆ SetX()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Rectangle::SetX (float value)
+
+inline
+
+ +

Sets the x value for the object.

+
Parameters
+ + +
valueThe value of which to set x to.
+
+
+ +

Definition at line 28 of file Rectangle.hpp.

+ +
+
+ +

◆ SetY()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Rectangle::SetY (float value)
+
+inline
+
+ +

Sets the y value for the object.

+
Parameters
+ + +
valueThe value of which to set y to.
+
+
+ +

Definition at line 29 of file Rectangle.hpp.

+ +
+
+
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_render_texture-members.html b/raylib-cpp/docs/classraylib_1_1_render_texture-members.html new file mode 100644 index 00000000..81fbc8c7 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_render_texture-members.html @@ -0,0 +1,99 @@ + + + + + + + +raylib-cpp: Member List + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
raylib::RenderTexture Member List
+
+
+ +

This is the complete list of members for raylib::RenderTexture, including all inherited members.

+ + + + + + + + + + + + + + + +
BeginMode()raylib::RenderTextureinline
EndMode()raylib::RenderTextureinline
GetDepth() constraylib::RenderTextureinline
GetId() constraylib::RenderTextureinline
GetTexture() constraylib::RenderTextureinline
operator=(const ::RenderTexture &texture) (defined in raylib::RenderTexture)raylib::RenderTextureinline
RenderTexture(const ::RenderTexture &renderTexture) (defined in raylib::RenderTexture)raylib::RenderTextureinline
RenderTexture(unsigned int Id) (defined in raylib::RenderTexture)raylib::RenderTextureinline
RenderTexture(int width, int height) (defined in raylib::RenderTexture)raylib::RenderTextureinline
SetDepth(::Texture2D value)raylib::RenderTextureinline
SetId(unsigned int value)raylib::RenderTextureinline
SetTexture(::Texture2D value)raylib::RenderTextureinline
Unload() (defined in raylib::RenderTexture)raylib::RenderTextureinline
~RenderTexture() (defined in raylib::RenderTexture)raylib::RenderTextureinline
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_render_texture.html b/raylib-cpp/docs/classraylib_1_1_render_texture.html new file mode 100644 index 00000000..531eef3f --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_render_texture.html @@ -0,0 +1,336 @@ + + + + + + + +raylib-cpp: raylib::RenderTexture Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
raylib::RenderTexture Class Reference
+
+
+ +

RenderTexture type, for texture rendering. + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

RenderTexture (const ::RenderTexture &renderTexture)
 
RenderTexture (int width, int height)
 
RenderTexture (unsigned int Id)
 
+RenderTextureBeginMode ()
 Initializes render texture for drawing.
 
+RenderTextureEndMode ()
 Ends drawing to render texture.
 
::Texture2D GetDepth () const
 Retrieves the depth value for the object. More...
 
unsigned int GetId () const
 Retrieves the id value for the object. More...
 
::Texture2D GetTexture () const
 Retrieves the texture value for the object. More...
 
+RenderTextureoperator= (const ::RenderTexture &texture)
 
void SetDepth (::Texture2D value)
 Sets the depth value for the object. More...
 
void SetId (unsigned int value)
 Sets the id value for the object. More...
 
void SetTexture (::Texture2D value)
 Sets the texture value for the object. More...
 
+void Unload ()
 
+

Detailed Description

+

RenderTexture type, for texture rendering.

+ +

Definition at line 11 of file RenderTexture.hpp.

+

Member Function Documentation

+ +

◆ GetDepth()

+ +
+
+ + + + + +
+ + + + + + + +
::Texture2D raylib::RenderTexture::GetDepth () const
+
+inline
+
+ +

Retrieves the depth value for the object.

+
Returns
The depth value of the object.
+ +

Definition at line 27 of file RenderTexture.hpp.

+ +
+
+ +

◆ GetId()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned int raylib::RenderTexture::GetId () const
+
+inline
+
+ +

Retrieves the id value for the object.

+
Returns
The id value of the object.
+ +

Definition at line 25 of file RenderTexture.hpp.

+ +
+
+ +

◆ GetTexture()

+ +
+
+ + + + + +
+ + + + + + + +
::Texture2D raylib::RenderTexture::GetTexture () const
+
+inline
+
+ +

Retrieves the texture value for the object.

+
Returns
The texture value of the object.
+ +

Definition at line 26 of file RenderTexture.hpp.

+ +
+
+ +

◆ SetDepth()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::RenderTexture::SetDepth (::Texture2D value)
+
+inline
+
+ +

Sets the depth value for the object.

+
Parameters
+ + +
valueThe value of which to set depth to.
+
+
+ +

Definition at line 27 of file RenderTexture.hpp.

+ +
+
+ +

◆ SetId()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::RenderTexture::SetId (unsigned int value)
+
+inline
+
+ +

Sets the id value for the object.

+
Parameters
+ + +
valueThe value of which to set id to.
+
+
+ +

Definition at line 25 of file RenderTexture.hpp.

+ +
+
+ +

◆ SetTexture()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::RenderTexture::SetTexture (::Texture2D value)
+
+inline
+
+ +

Sets the texture value for the object.

+
Parameters
+ + +
valueThe value of which to set texture to.
+
+
+ +

Definition at line 26 of file RenderTexture.hpp.

+ +
+
+
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_render_texture2_d-members.html b/raylib-cpp/docs/classraylib_1_1_render_texture2_d-members.html new file mode 100644 index 00000000..ecf0d5b7 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_render_texture2_d-members.html @@ -0,0 +1,101 @@ + + + + + + + +raylib-cpp: Member List + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
raylib::RenderTexture2D Member List
+
+
+ +

This is the complete list of members for raylib::RenderTexture2D, including all inherited members.

+ + + + + + + + + + + + + + + + + +
BeginTextureMode()raylib::RenderTexture2Dinline
EndTextureMode()raylib::RenderTexture2Dinline
GetDepth()raylib::RenderTexture2Dinline
GetId()raylib::RenderTexture2Dinline
GetTexture()raylib::RenderTexture2Dinline
operator=(const ::RenderTexture2D &texture)raylib::RenderTexture2Dinline
operator=(const RenderTexture2D &texture)raylib::RenderTexture2Dinline
RenderTexture2D(::RenderTexture2D renderTexture)raylib::RenderTexture2Dinline
RenderTexture2D(unsigned int Id)raylib::RenderTexture2Dinline
RenderTexture2D(int width, int height)raylib::RenderTexture2Dinline
set(::RenderTexture2D renderTexture)raylib::RenderTexture2Dinline
SetDepth(Texture2D value)raylib::RenderTexture2Dinline
SetId(unsigned int value)raylib::RenderTexture2Dinline
SetTexture(Texture2D value)raylib::RenderTexture2Dinline
Unload()raylib::RenderTexture2Dinline
~RenderTexture2D()raylib::RenderTexture2Dinline
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_render_texture2_d.html b/raylib-cpp/docs/classraylib_1_1_render_texture2_d.html new file mode 100644 index 00000000..4744af60 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_render_texture2_d.html @@ -0,0 +1,591 @@ + + + + + + + +raylib-cpp: raylib::RenderTexture2D Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
raylib::RenderTexture2D Class Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 RenderTexture2D (::RenderTexture2D renderTexture)
 
 RenderTexture2D (int width, int height)
 
 RenderTexture2D (unsigned int Id)
 
 ~RenderTexture2D ()
 
RenderTexture2DBeginTextureMode ()
 
RenderTexture2DEndTextureMode ()
 
Texture2D GetDepth ()
 
unsigned int GetId ()
 
Texture2D GetTexture ()
 
RenderTexture2Doperator= (const ::RenderTexture2D &texture)
 
RenderTexture2Doperator= (const RenderTexture2D &texture)
 
void set (::RenderTexture2D renderTexture)
 
void SetDepth (Texture2D value)
 
void SetId (unsigned int value)
 
void SetTexture (Texture2D value)
 
void Unload ()
 
+

Detailed Description

+
+

Definition at line 15 of file RenderTexture2D.hpp.

+

Constructor & Destructor Documentation

+ +

◆ RenderTexture2D() [1/3]

+ +
+
+ + + + + +
+ + + + + + + + +
raylib::RenderTexture2D::RenderTexture2D (::RenderTexture2D renderTexture)
+
+inline
+
+ +

Definition at line 17 of file RenderTexture2D.hpp.

+ +

References set().

+ +
+
+ +

◆ RenderTexture2D() [2/3]

+ +
+
+ + + + + +
+ + + + + + + + +
raylib::RenderTexture2D::RenderTexture2D (unsigned int Id)
+
+inline
+
+ +

Definition at line 20 of file RenderTexture2D.hpp.

+ +
+
+ +

◆ RenderTexture2D() [3/3]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
raylib::RenderTexture2D::RenderTexture2D (int width,
int height 
)
+
+inline
+
+ +

Definition at line 23 of file RenderTexture2D.hpp.

+ +

References set().

+ +
+
+ +

◆ ~RenderTexture2D()

+ +
+
+ + + + + +
+ + + + + + + +
raylib::RenderTexture2D::~RenderTexture2D ()
+
+inline
+
+ +

Definition at line 47 of file RenderTexture2D.hpp.

+ +

References Unload().

+ +
+
+

Member Function Documentation

+ +

◆ BeginTextureMode()

+ +
+
+ + + + + +
+ + + + + + + +
RenderTexture2D& raylib::RenderTexture2D::BeginTextureMode ()
+
+inline
+
+ +

Definition at line 55 of file RenderTexture2D.hpp.

+ +
+
+ +

◆ EndTextureMode()

+ +
+
+ + + + + +
+ + + + + + + +
RenderTexture2D& raylib::RenderTexture2D::EndTextureMode ()
+
+inline
+
+ +

Definition at line 60 of file RenderTexture2D.hpp.

+ +
+
+ +

◆ GetDepth()

+ +
+
+ + + + + +
+ + + + + + + +
Texture2D raylib::RenderTexture2D::GetDepth ()
+
+inline
+
+ +

Definition at line 35 of file RenderTexture2D.hpp.

+ +
+
+ +

◆ GetId()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned int raylib::RenderTexture2D::GetId ()
+
+inline
+
+ +

Definition at line 33 of file RenderTexture2D.hpp.

+ +
+
+ +

◆ GetTexture()

+ +
+
+ + + + + +
+ + + + + + + +
Texture2D raylib::RenderTexture2D::GetTexture ()
+
+inline
+
+ +

Definition at line 34 of file RenderTexture2D.hpp.

+ +
+
+ +

◆ operator=() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
RenderTexture2D& raylib::RenderTexture2D::operator= (const ::RenderTexture2Dtexture)
+
+inline
+
+ +

Definition at line 37 of file RenderTexture2D.hpp.

+ +

References set().

+ +
+
+ +

◆ operator=() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
RenderTexture2D& raylib::RenderTexture2D::operator= (const RenderTexture2Dtexture)
+
+inline
+
+ +

Definition at line 42 of file RenderTexture2D.hpp.

+ +

References set().

+ +
+
+ +

◆ set()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::RenderTexture2D::set (::RenderTexture2D renderTexture)
+
+inline
+
+ +

Definition at line 27 of file RenderTexture2D.hpp.

+ +

Referenced by operator=(), and RenderTexture2D().

+ +
+
+ +

◆ SetDepth()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::RenderTexture2D::SetDepth (Texture2D value)
+
+inline
+
+ +

Definition at line 35 of file RenderTexture2D.hpp.

+ +
+
+ +

◆ SetId()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::RenderTexture2D::SetId (unsigned int value)
+
+inline
+
+ +

Definition at line 33 of file RenderTexture2D.hpp.

+ +
+
+ +

◆ SetTexture()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::RenderTexture2D::SetTexture (Texture2D value)
+
+inline
+
+ +

Definition at line 34 of file RenderTexture2D.hpp.

+ +
+
+ +

◆ Unload()

+ +
+
+ + + + + +
+ + + + + + + +
void raylib::RenderTexture2D::Unload ()
+
+inline
+
+ +

Definition at line 51 of file RenderTexture2D.hpp.

+ +

Referenced by ~RenderTexture2D().

+ +
+
+
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_shader-members.html b/raylib-cpp/docs/classraylib_1_1_shader-members.html new file mode 100644 index 00000000..c3446992 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_shader-members.html @@ -0,0 +1,105 @@ + + + + + + + +raylib-cpp: Member List + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
raylib::Shader Member List
+
+
+ +

This is the complete list of members for raylib::Shader, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + +
BeginMode()raylib::Shaderinline
EndMode()raylib::Shaderinline
GetId() constraylib::Shaderinline
GetLocation(const std::string &uniformName) constraylib::Shaderinline
GetLocationAttrib(const std::string &attribName) constraylib::Shaderinline
GetLocs() constraylib::Shaderinline
Load(const std::string &vsFileName, const std::string &fsFileName)raylib::Shaderinlinestatic
LoadFromMemory(const std::string &vsCode, const std::string &fsCode) (defined in raylib::Shader)raylib::Shaderinlinestatic
operator=(const ::Shader &shader) (defined in raylib::Shader)raylib::Shaderinline
SetId(unsigned int value)raylib::Shaderinline
SetLocs(int *value)raylib::Shaderinline
SetValue(int uniformLoc, const std::string &value, int uniformType)raylib::Shaderinline
SetValue(int uniformLoc, const std::string &value, int uniformType, int count)raylib::Shaderinline
SetValue(int uniformLoc, const ::Matrix &mat)raylib::Shaderinline
SetValue(int uniformLoc, const ::Texture2D &texture)raylib::Shaderinline
Shader(const ::Shader &shader) (defined in raylib::Shader)raylib::Shaderinline
Shader(unsigned int Id, int *Locs) (defined in raylib::Shader)raylib::Shaderinline
Shader(const std::string &vsFileName, const std::string &fsFileName) (defined in raylib::Shader)raylib::Shaderinline
Unload() (defined in raylib::Shader)raylib::Shaderinline
~Shader() (defined in raylib::Shader)raylib::Shaderinline
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_shader.html b/raylib-cpp/docs/classraylib_1_1_shader.html new file mode 100644 index 00000000..346b110e --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_shader.html @@ -0,0 +1,537 @@ + + + + + + + +raylib-cpp: raylib::Shader Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
raylib::Shader Class Reference
+
+
+ +

Shader type (generic) + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Shader (const ::Shader &shader)
 
Shader (const std::string &vsFileName, const std::string &fsFileName)
 
Shader (unsigned int Id, int *Locs)
 
+ShaderBeginMode ()
 Begin custom shader drawing.
 
+ShaderEndMode ()
 End custom shader drawing (use default shader).
 
unsigned int GetId () const
 Retrieves the id value for the object. More...
 
int GetLocation (const std::string &uniformName) const
 Get shader uniform location. More...
 
int GetLocationAttrib (const std::string &attribName) const
 Get shader attribute location. More...
 
int * GetLocs () const
 Retrieves the locs value for the object. More...
 
+Shaderoperator= (const ::Shader &shader)
 
void SetId (unsigned int value)
 Sets the id value for the object. More...
 
void SetLocs (int *value)
 Sets the locs value for the object. More...
 
ShaderSetValue (int uniformLoc, const ::Matrix &mat)
 Set shader uniform value (matrix 4x4) More...
 
ShaderSetValue (int uniformLoc, const ::Texture2D &texture)
 Set shader uniform value for texture. More...
 
ShaderSetValue (int uniformLoc, const std::string &value, int uniformType)
 Set shader uniform value. More...
 
ShaderSetValue (int uniformLoc, const std::string &value, int uniformType, int count)
 Set shader uniform value vector. More...
 
+void Unload ()
 
+ + + + + + +

+Static Public Member Functions

+::Shader Load (const std::string &vsFileName, const std::string &fsFileName)
 Load shader from files and bind default locations.
 
+::Shader LoadFromMemory (const std::string &vsCode, const std::string &fsCode)
 
+

Detailed Description

+

Shader type (generic)

+ +

Definition at line 14 of file Shader.hpp.

+

Member Function Documentation

+ +

◆ GetId()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned int raylib::Shader::GetId () const
+
+inline
+
+ +

Retrieves the id value for the object.

+
Returns
The id value of the object.
+ +

Definition at line 40 of file Shader.hpp.

+ +
+
+ +

◆ GetLocation()

+ +
+
+ + + + + +
+ + + + + + + + +
int raylib::Shader::GetLocation (const std::string & uniformName) const
+
+inline
+
+ +

Get shader uniform location.

+
See also
GetShaderLocation()
+ +

Definition at line 79 of file Shader.hpp.

+ +
+
+ +

◆ GetLocationAttrib()

+ +
+
+ + + + + +
+ + + + + + + + +
int raylib::Shader::GetLocationAttrib (const std::string & attribName) const
+
+inline
+
+ +

Get shader attribute location.

+
See also
GetShaderLocationAttrib()
+ +

Definition at line 88 of file Shader.hpp.

+ +
+
+ +

◆ GetLocs()

+ +
+
+ + + + + +
+ + + + + + + +
int* raylib::Shader::GetLocs () const
+
+inline
+
+ +

Retrieves the locs value for the object.

+
Returns
The locs value of the object.
+ +

Definition at line 41 of file Shader.hpp.

+ +
+
+ +

◆ SetId()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Shader::SetId (unsigned int value)
+
+inline
+
+ +

Sets the id value for the object.

+
Parameters
+ + +
valueThe value of which to set id to.
+
+
+ +

Definition at line 40 of file Shader.hpp.

+ +
+
+ +

◆ SetLocs()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Shader::SetLocs (int * value)
+
+inline
+
+ +

Sets the locs value for the object.

+
Parameters
+ + +
valueThe value of which to set locs to.
+
+
+ +

Definition at line 41 of file Shader.hpp.

+ +
+
+ +

◆ SetValue() [1/4]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
Shader& raylib::Shader::SetValue (int uniformLoc,
const ::Matrixmat 
)
+
+inline
+
+ +

Set shader uniform value (matrix 4x4)

+
See also
SetShaderValueMatrix()
+ +

Definition at line 117 of file Shader.hpp.

+ +
+
+ +

◆ SetValue() [2/4]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
Shader& raylib::Shader::SetValue (int uniformLoc,
const ::Texture2Dtexture 
)
+
+inline
+
+ +

Set shader uniform value for texture.

+
See also
SetShaderValueTexture()
+ +

Definition at line 127 of file Shader.hpp.

+ +
+
+ +

◆ SetValue() [3/4]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
Shader& raylib::Shader::SetValue (int uniformLoc,
const std::string & value,
int uniformType 
)
+
+inline
+
+ +

Set shader uniform value.

+
See also
SetShaderValue()
+ +

Definition at line 97 of file Shader.hpp.

+ +
+
+ +

◆ SetValue() [4/4]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Shader& raylib::Shader::SetValue (int uniformLoc,
const std::string & value,
int uniformType,
int count 
)
+
+inline
+
+ +

Set shader uniform value vector.

+
See also
SetShaderValueV()
+ +

Definition at line 107 of file Shader.hpp.

+ +
+
+
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_sound-members.html b/raylib-cpp/docs/classraylib_1_1_sound-members.html new file mode 100644 index 00000000..ead64729 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_sound-members.html @@ -0,0 +1,106 @@ + + + + + + + +raylib-cpp: Member List + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
raylib::Sound Member List
+
+
+ +

This is the complete list of members for raylib::Sound, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + +
GetSampleCount() constraylib::Soundinline
GetStream() constraylib::Soundinline
IsPlaying() constraylib::Soundinline
operator=(const ::Sound &sound) (defined in raylib::Sound)raylib::Soundinline
Pause()raylib::Soundinline
Play()raylib::Soundinline
PlayMulti()raylib::Soundinline
Resume()raylib::Soundinline
SetPitch(float pitch)raylib::Soundinline
SetSampleCount(unsigned int value)raylib::Soundinline
SetStream(::AudioStream value)raylib::Soundinline
SetVolume(float volume)raylib::Soundinline
Sound(const ::Sound &vec) (defined in raylib::Sound)raylib::Soundinline
Sound(const std::string &fileName) (defined in raylib::Sound)raylib::Soundinline
Sound(const ::Wave &wave) (defined in raylib::Sound)raylib::Soundinline
Stop()raylib::Soundinline
StopMulti()raylib::Soundinline
Unload()raylib::Soundinline
Update(const void *data, int sampleCount)raylib::Soundinline
Update(const void *data)raylib::Soundinline
~Sound() (defined in raylib::Sound)raylib::Soundinline
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_sound.html b/raylib-cpp/docs/classraylib_1_1_sound.html new file mode 100644 index 00000000..99ed250c --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_sound.html @@ -0,0 +1,304 @@ + + + + + + + +raylib-cpp: raylib::Sound Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
raylib::Sound Class Reference
+
+
+ +

Wave/Sound management functions. + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Sound (const ::Sound &vec)
 
Sound (const ::Wave &wave)
 
Sound (const std::string &fileName)
 
unsigned int GetSampleCount () const
 Retrieves the sampleCount value for the object. More...
 
::AudioStream GetStream () const
 Retrieves the stream value for the object. More...
 
+bool IsPlaying () const
 Check if a sound is currently playing.
 
+Soundoperator= (const ::Sound &sound)
 
+SoundPause ()
 Pause a sound.
 
+SoundPlay ()
 Play a sound.
 
+SoundPlayMulti ()
 Play a sound (using multichannel buffer pool)
 
+SoundResume ()
 Resume a paused sound.
 
+SoundSetPitch (float pitch)
 Set pitch for a sound (1.0 is base level)
 
void SetSampleCount (unsigned int value)
 Sets the sampleCount value for the object. More...
 
void SetStream (::AudioStream value)
 Sets the stream value for the object. More...
 
+SoundSetVolume (float volume)
 Set volume for a sound (1.0 is max level)
 
+SoundStop ()
 Stop playing a sound.
 
+SoundStopMulti ()
 Stop any sound playing (using multichannel buffer pool)
 
+void Unload ()
 Unload sound.
 
+SoundUpdate (const void *data)
 Update sound buffer with new data, assuming it's the same sample count.
 
+SoundUpdate (const void *data, int sampleCount)
 Update sound buffer with new data.
 
+

Detailed Description

+

Wave/Sound management functions.

+
raylib::Sound boom("boom.wav");
+
boom.Play();
+
+

Definition at line 18 of file Sound.hpp.

+

Member Function Documentation

+ +

◆ GetSampleCount()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned int raylib::Sound::GetSampleCount () const
+
+inline
+
+ +

Retrieves the sampleCount value for the object.

+
Returns
The sampleCount value of the object.
+ +

Definition at line 36 of file Sound.hpp.

+ +
+
+ +

◆ GetStream()

+ +
+
+ + + + + +
+ + + + + + + +
::AudioStream raylib::Sound::GetStream () const
+
+inline
+
+ +

Retrieves the stream value for the object.

+
Returns
The stream value of the object.
+ +

Definition at line 37 of file Sound.hpp.

+ +
+
+ +

◆ SetSampleCount()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Sound::SetSampleCount (unsigned int value)
+
+inline
+
+ +

Sets the sampleCount value for the object.

+
Parameters
+ + +
valueThe value of which to set sampleCount to.
+
+
+ +

Definition at line 36 of file Sound.hpp.

+ +
+
+ +

◆ SetStream()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Sound::SetStream (::AudioStream value)
+
+inline
+
+ +

Sets the stream value for the object.

+
Parameters
+ + +
valueThe value of which to set stream to.
+
+
+ +

Definition at line 37 of file Sound.hpp.

+ +
+
+
+
Wave/Sound management functions.
Definition: Sound.hpp:18
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_texture-members.html b/raylib-cpp/docs/classraylib_1_1_texture-members.html new file mode 100644 index 00000000..34783450 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_texture-members.html @@ -0,0 +1,126 @@ + + + + + + + +raylib-cpp: Member List + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
raylib::Texture Member List
+
+
+ +

This is the complete list of members for raylib::Texture, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Draw()raylib::Textureinline
Draw(int posX, int posY, ::Color tint={255, 255, 255, 255})raylib::Textureinline
Draw(::Vector2 position, ::Color tint={255, 255, 255, 255}) (defined in raylib::Texture)raylib::Textureinline
Draw(::Vector2 position, float rotation, float scale=1.0f, ::Color tint={255, 255, 255, 255}) (defined in raylib::Texture)raylib::Textureinline
Draw(::Rectangle sourceRec, ::Vector2 position={0, 0}, ::Color tint={255, 255, 255, 255}) (defined in raylib::Texture)raylib::Textureinline
Draw(::Vector2 tiling, ::Vector2 offset, ::Rectangle quad, ::Color tint={255, 255, 255, 255}) (defined in raylib::Texture)raylib::Textureinline
Draw(::Rectangle sourceRec, ::Rectangle destRec, ::Vector2 origin={0, 0}, float rotation=0, ::Color tint={255, 255, 255, 255}) (defined in raylib::Texture)raylib::Textureinline
Draw(::NPatchInfo nPatchInfo, ::Rectangle destRec, ::Vector2 origin={0, 0}, float rotation=0, ::Color tint={255, 255, 255, 255}) (defined in raylib::Texture)raylib::Textureinline
Draw(::Vector3 position, float width, float height, float length, ::Color tint={255, 255, 255, 255}) (defined in raylib::Texture)raylib::Textureinline
DrawPoly(Vector2 center, Vector2 *points, Vector2 *texcoords, int pointsCount, Color tint={255, 255, 255, 255}) (defined in raylib::Texture)raylib::Textureinline
DrawTiled(::Rectangle sourceRec, ::Rectangle destRec, ::Vector2 origin={0, 0}, float rotation=0, float scale=1, Color tint={255, 255, 255, 255}) (defined in raylib::Texture)raylib::Textureinline
GenMipmaps()raylib::Textureinline
GetData() constraylib::Textureinline
GetFormat() constraylib::Textureinline
GetHeight() constraylib::Textureinline
GetId() constraylib::Textureinline
GetMipmaps() constraylib::Textureinline
GetSize()raylib::Textureinline
GetWidth() constraylib::Textureinline
Load(const std::string &fileName)raylib::Textureinline
LoadCubemap(const ::Image &image, int layoutType)raylib::Textureinline
LoadFromImage(const ::Image &image)raylib::Textureinline
operator raylib::Image()raylib::Textureinline
operator=(const ::Texture &texture) (defined in raylib::Texture)raylib::Textureinline
SetFilter(int filterMode)raylib::Textureinline
SetFormat(int value)raylib::Textureinline
SetHeight(int value)raylib::Textureinline
SetId(unsigned int value)raylib::Textureinline
SetMaterial(::Material *material, int mapType=MATERIAL_MAP_NORMAL)raylib::Textureinline
SetMaterial(const ::Material &material, int mapType=MATERIAL_MAP_NORMAL) (defined in raylib::Texture)raylib::Textureinline
SetMipmaps(int value)raylib::Textureinline
SetWidth(int value)raylib::Textureinline
SetWrap(int wrapMode)raylib::Textureinline
Texture(const ::Texture &texture) (defined in raylib::Texture)raylib::Textureinline
Texture(const ::Image &image) (defined in raylib::Texture)raylib::Textureinline
Texture(const ::Image &image, int layout)raylib::Textureinline
Texture(const std::string &fileName)raylib::Textureinline
Unload()raylib::Textureinline
Update(const void *pixels)raylib::Textureinline
UpdateRec(::Rectangle rec, const void *pixels)raylib::Textureinline
~Texture() (defined in raylib::Texture)raylib::Textureinline
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_texture.html b/raylib-cpp/docs/classraylib_1_1_texture.html new file mode 100644 index 00000000..dd11fbee --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_texture.html @@ -0,0 +1,607 @@ + + + + + + + +raylib-cpp: raylib::Texture Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
raylib::Texture Class Reference
+
+
+ +

Texture type. + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Texture (const ::Image &image)
 
 Texture (const ::Image &image, int layout)
 Load cubemap from image, multiple image cubemap layouts supported. More...
 
Texture (const ::Texture &texture)
 
Texture (const std::string &fileName)
 Load texture from file into GPU memory (VRAM)
 
+TextureDraw ()
 Draws the texture at the top left corner of the screen.
 
+TextureDraw (::NPatchInfo nPatchInfo, ::Rectangle destRec, ::Vector2 origin={0, 0}, float rotation=0, ::Color tint={255, 255, 255, 255})
 
+TextureDraw (::Rectangle sourceRec, ::Rectangle destRec, ::Vector2 origin={0, 0}, float rotation=0, ::Color tint={255, 255, 255, 255})
 
+TextureDraw (::Rectangle sourceRec, ::Vector2 position={0, 0}, ::Color tint={255, 255, 255, 255})
 
+TextureDraw (::Vector2 position, ::Color tint={255, 255, 255, 255})
 
+TextureDraw (::Vector2 position, float rotation, float scale=1.0f, ::Color tint={255, 255, 255, 255})
 
+TextureDraw (::Vector2 tiling, ::Vector2 offset, ::Rectangle quad, ::Color tint={255, 255, 255, 255})
 
+TextureDraw (::Vector3 position, float width, float height, float length, ::Color tint={255, 255, 255, 255})
 
+TextureDraw (int posX, int posY, ::Color tint={255, 255, 255, 255})
 Draw a Texture2D.
 
+TextureDrawPoly (Vector2 center, Vector2 *points, Vector2 *texcoords, int pointsCount, Color tint={255, 255, 255, 255})
 
+TextureDrawTiled (::Rectangle sourceRec, ::Rectangle destRec, ::Vector2 origin={0, 0}, float rotation=0, float scale=1, Color tint={255, 255, 255, 255})
 
+TextureGenMipmaps ()
 Generate GPU mipmaps for a texture.
 
+inline ::Image GetData () const
 Get pixel data from GPU texture and return an Image.
 
int GetFormat () const
 Retrieves the format value for the object. More...
 
int GetHeight () const
 Retrieves the height value for the object. More...
 
unsigned int GetId () const
 Retrieves the id value for the object. More...
 
int GetMipmaps () const
 Retrieves the mipmaps value for the object. More...
 
+inline ::Vector2 GetSize ()
 Retrieve the width and height of the texture.
 
int GetWidth () const
 Retrieves the width value for the object. More...
 
+void Load (const std::string &fileName)
 Load texture from file into GPU memory (VRAM)
 
+void LoadCubemap (const ::Image &image, int layoutType)
 Load cubemap from image, multiple image cubemap layouts supported.
 
+void LoadFromImage (const ::Image &image)
 Load texture from image data.
 
operator raylib::Image ()
 Get pixel data from GPU texture and return an Image.
 
+Textureoperator= (const ::Texture &texture)
 
+TextureSetFilter (int filterMode)
 Set texture scaling filter mode.
 
void SetFormat (int value)
 Sets the format value for the object. More...
 
void SetHeight (int value)
 Sets the height value for the object. More...
 
void SetId (unsigned int value)
 Sets the id value for the object. More...
 
+TextureSetMaterial (::Material *material, int mapType=MATERIAL_MAP_NORMAL)
 Set texture for a material map type (MAP_DIFFUSE, MAP_SPECULAR...)
 
+TextureSetMaterial (const ::Material &material, int mapType=MATERIAL_MAP_NORMAL)
 
void SetMipmaps (int value)
 Sets the mipmaps value for the object. More...
 
void SetWidth (int value)
 Sets the width value for the object. More...
 
+TextureSetWrap (int wrapMode)
 Set texture wrapping mode.
 
+void Unload ()
 Unload texture from GPU memory (VRAM)
 
+TextureUpdate (const void *pixels)
 Update GPU texture with new data.
 
+TextureUpdateRec (::Rectangle rec, const void *pixels)
 Update GPU texture rectangle with new data.
 
+

Detailed Description

+

Texture type.

+ +

Definition at line 15 of file Texture.hpp.

+

Constructor & Destructor Documentation

+ +

◆ Texture()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
raylib::Texture::Texture (const ::Imageimage,
int layout 
)
+
+inline
+
+ +

Load cubemap from image, multiple image cubemap layouts supported.

+
See also
LoadTextureCubemap()
+ +

Definition at line 30 of file Texture.hpp.

+ +

References LoadCubemap().

+ +
+
+

Member Function Documentation

+ +

◆ GetFormat()

+ +
+
+ + + + + +
+ + + + + + + +
int raylib::Texture::GetFormat () const
+
+inline
+
+ +

Retrieves the format value for the object.

+
Returns
The format value of the object.
+ +

Definition at line 49 of file Texture.hpp.

+ +
+
+ +

◆ GetHeight()

+ +
+
+ + + + + +
+ + + + + + + +
int raylib::Texture::GetHeight () const
+
+inline
+
+ +

Retrieves the height value for the object.

+
Returns
The height value of the object.
+ +

Definition at line 47 of file Texture.hpp.

+ +
+
+ +

◆ GetId()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned int raylib::Texture::GetId () const
+
+inline
+
+ +

Retrieves the id value for the object.

+
Returns
The id value of the object.
+ +

Definition at line 45 of file Texture.hpp.

+ +
+
+ +

◆ GetMipmaps()

+ +
+
+ + + + + +
+ + + + + + + +
int raylib::Texture::GetMipmaps () const
+
+inline
+
+ +

Retrieves the mipmaps value for the object.

+
Returns
The mipmaps value of the object.
+ +

Definition at line 48 of file Texture.hpp.

+ +
+
+ +

◆ GetWidth()

+ +
+
+ + + + + +
+ + + + + + + +
int raylib::Texture::GetWidth () const
+
+inline
+
+ +

Retrieves the width value for the object.

+
Returns
The width value of the object.
+ +

Definition at line 46 of file Texture.hpp.

+ +
+
+ +

◆ SetFormat()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Texture::SetFormat (int value)
+
+inline
+
+ +

Sets the format value for the object.

+
Parameters
+ + +
valueThe value of which to set format to.
+
+
+ +

Definition at line 49 of file Texture.hpp.

+ +
+
+ +

◆ SetHeight()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Texture::SetHeight (int value)
+
+inline
+
+ +

Sets the height value for the object.

+
Parameters
+ + +
valueThe value of which to set height to.
+
+
+ +

Definition at line 47 of file Texture.hpp.

+ +
+
+ +

◆ SetId()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Texture::SetId (unsigned int value)
+
+inline
+
+ +

Sets the id value for the object.

+
Parameters
+ + +
valueThe value of which to set id to.
+
+
+ +

Definition at line 45 of file Texture.hpp.

+ +
+
+ +

◆ SetMipmaps()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Texture::SetMipmaps (int value)
+
+inline
+
+ +

Sets the mipmaps value for the object.

+
Parameters
+ + +
valueThe value of which to set mipmaps to.
+
+
+ +

Definition at line 48 of file Texture.hpp.

+ +
+
+ +

◆ SetWidth()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Texture::SetWidth (int value)
+
+inline
+
+ +

Sets the width value for the object.

+
Parameters
+ + +
valueThe value of which to set width to.
+
+
+ +

Definition at line 46 of file Texture.hpp.

+ +
+
+
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_texture2_d-members.html b/raylib-cpp/docs/classraylib_1_1_texture2_d-members.html new file mode 100644 index 00000000..effd058e --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_texture2_d-members.html @@ -0,0 +1,124 @@ + + + + + + + +raylib-cpp: Member List + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
raylib::Texture2D Member List
+
+
+ +

This is the complete list of members for raylib::Texture2D, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Draw(int posX, int posY, ::Color tint=WHITE)raylib::Texture2Dinline
Draw(::Vector2 position, ::Color tint=WHITE)raylib::Texture2Dinline
Draw(::Vector2 position, float rotation, float scale=1.0f, ::Color tint=WHITE)raylib::Texture2Dinline
Draw(::Rectangle sourceRec, ::Vector2 position, ::Color tint=WHITE)raylib::Texture2Dinline
Draw(::Vector2 tiling, ::Vector2 offset, ::Rectangle quad, ::Color tint=WHITE)raylib::Texture2Dinline
Draw(::Rectangle sourceRec, ::Rectangle destRec, ::Vector2 origin, float rotation=0, ::Color tint=WHITE)raylib::Texture2Dinline
Draw(::NPatchInfo nPatchInfo, ::Rectangle destRec, ::Vector2 origin, float rotation=0, ::Color tint=WHITE)raylib::Texture2Dinline
Draw(::Vector3 position, float width, float height, float length, ::Color color=WHITE)raylib::Texture2Dinline
DrawTiled(Rectangle sourceRec, Rectangle destRec, Vector2 origin, float rotation, float scale, Color tint=WHITE)raylib::Texture2Dinline
GenMipmaps()raylib::Texture2Dinline
GetFormat()raylib::Texture2Dinline
GetHeight()raylib::Texture2Dinline
GetId()raylib::Texture2Dinline
GetMipmaps()raylib::Texture2Dinline
GetPixelDataSize(int width, int height, int format)raylib::Texture2Dinlinestatic
GetTextureData()raylib::Texture2Dinline
GetWidth()raylib::Texture2Dinline
Load(const std::string &fileName)raylib::Texture2Dinline
LoadFromImage(::Image &image)raylib::Texture2Dinline
LoadTextureCubemap(::Image &image, int layoutType)raylib::Texture2Dinline
operator raylib::Image()raylib::Texture2Dinline
operator=(const ::Texture2D &texture)raylib::Texture2Dinline
operator=(const Texture2D &texture)raylib::Texture2Dinline
set(::Texture2D texture)raylib::Texture2Dinline
SetFilter(int filterMode)raylib::Texture2Dinline
SetFormat(int value)raylib::Texture2Dinline
SetHeight(int value)raylib::Texture2Dinline
SetId(unsigned int value)raylib::Texture2Dinline
SetMaterialTexture(Material *material, int mapType)raylib::Texture2Dinline
SetMipmaps(int value)raylib::Texture2Dinline
SetWidth(int value)raylib::Texture2Dinline
SetWrap(int wrapMode)raylib::Texture2Dinline
Texture2D()raylib::Texture2Dinline
Texture2D(::Image &image)raylib::Texture2Dinline
Texture2D(const std::string &fileName)raylib::Texture2Dinline
Unload()raylib::Texture2Dinline
Update(const void *pixels)raylib::Texture2Dinline
UpdateRec(Rectangle rec, const void *pixels)raylib::Texture2Dinline
~Texture2D()raylib::Texture2Dinline
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_texture2_d.html b/raylib-cpp/docs/classraylib_1_1_texture2_d.html new file mode 100644 index 00000000..21c4e8f3 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_texture2_d.html @@ -0,0 +1,1537 @@ + + + + + + + +raylib-cpp: raylib::Texture2D Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
raylib::Texture2D Class Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Texture2D ()
 
 Texture2D (::Image &image)
 
 Texture2D (const std::string &fileName)
 
 ~Texture2D ()
 
Texture2DDraw (::NPatchInfo nPatchInfo, ::Rectangle destRec, ::Vector2 origin, float rotation=0, ::Color tint=WHITE)
 
Texture2DDraw (::Rectangle sourceRec, ::Rectangle destRec, ::Vector2 origin, float rotation=0, ::Color tint=WHITE)
 
Texture2DDraw (::Rectangle sourceRec, ::Vector2 position, ::Color tint=WHITE)
 
Texture2DDraw (::Vector2 position, ::Color tint=WHITE)
 
Texture2DDraw (::Vector2 position, float rotation, float scale=1.0f, ::Color tint=WHITE)
 
Texture2DDraw (::Vector2 tiling, ::Vector2 offset, ::Rectangle quad, ::Color tint=WHITE)
 
Texture2DDraw (::Vector3 position, float width, float height, float length, ::Color color=WHITE)
 
Texture2DDraw (int posX, int posY, ::Color tint=WHITE)
 
Texture2DDrawTiled (Rectangle sourceRec, Rectangle destRec, Vector2 origin, float rotation, float scale, Color tint=WHITE)
 
Texture2DGenMipmaps ()
 
int GetFormat ()
 
int GetHeight ()
 
unsigned int GetId ()
 
int GetMipmaps ()
 
Image GetTextureData ()
 
int GetWidth ()
 
void Load (const std::string &fileName)
 
void LoadFromImage (::Image &image)
 
void LoadTextureCubemap (::Image &image, int layoutType)
 
 operator raylib::Image ()
 
Texture2Doperator= (const ::Texture2D &texture)
 
Texture2Doperator= (const Texture2D &texture)
 
void set (::Texture2D texture)
 
Texture2DSetFilter (int filterMode)
 
void SetFormat (int value)
 
void SetHeight (int value)
 
void SetId (unsigned int value)
 
Texture2DSetMaterialTexture (Material *material, int mapType)
 
void SetMipmaps (int value)
 
void SetWidth (int value)
 
Texture2DSetWrap (int wrapMode)
 
void Unload ()
 
Texture2DUpdate (const void *pixels)
 
Texture2DUpdateRec (Rectangle rec, const void *pixels)
 
+ + + +

+Static Public Member Functions

static int GetPixelDataSize (int width, int height, int format)
 
+

Detailed Description

+
+

Definition at line 19 of file Texture2D.hpp.

+

Constructor & Destructor Documentation

+ +

◆ Texture2D() [1/3]

+ +
+
+ + + + + +
+ + + + + + + +
raylib::Texture2D::Texture2D ()
+
+inline
+
+ +

Definition at line 21 of file Texture2D.hpp.

+ +

References set().

+ +
+
+ +

◆ Texture2D() [2/3]

+ +
+
+ + + + + +
+ + + + + + + + +
raylib::Texture2D::Texture2D (::Imageimage)
+
+inline
+
+ +

Definition at line 25 of file Texture2D.hpp.

+ +

References LoadFromImage().

+ +
+
+ +

◆ Texture2D() [3/3]

+ +
+
+ + + + + +
+ + + + + + + + +
raylib::Texture2D::Texture2D (const std::string & fileName)
+
+inline
+
+ +

Definition at line 29 of file Texture2D.hpp.

+ +

References Load().

+ +
+
+ +

◆ ~Texture2D()

+ +
+
+ + + + + +
+ + + + + + + +
raylib::Texture2D::~Texture2D ()
+
+inline
+
+ +

Definition at line 33 of file Texture2D.hpp.

+ +

References Unload().

+ +
+
+

Member Function Documentation

+ +

◆ Draw() [1/8]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Texture2D& raylib::Texture2D::Draw (::NPatchInfo nPatchInfo,
::Rectangle destRec,
::Vector2 origin,
float rotation = 0,
::Color tint = WHITE 
)
+
+inline
+
+ +

Definition at line 135 of file Texture2D.hpp.

+ +
+
+ +

◆ Draw() [2/8]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Texture2D& raylib::Texture2D::Draw (::Rectangle sourceRec,
::Rectangle destRec,
::Vector2 origin,
float rotation = 0,
::Color tint = WHITE 
)
+
+inline
+
+ +

Definition at line 131 of file Texture2D.hpp.

+ +
+
+ +

◆ Draw() [3/8]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
Texture2D& raylib::Texture2D::Draw (::Rectangle sourceRec,
::Vector2 position,
::Color tint = WHITE 
)
+
+inline
+
+ +

Definition at line 123 of file Texture2D.hpp.

+ +
+
+ +

◆ Draw() [4/8]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
Texture2D& raylib::Texture2D::Draw (::Vector2 position,
::Color tint = WHITE 
)
+
+inline
+
+ +

Definition at line 114 of file Texture2D.hpp.

+ +
+
+ +

◆ Draw() [5/8]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Texture2D& raylib::Texture2D::Draw (::Vector2 position,
float rotation,
float scale = 1.0f,
::Color tint = WHITE 
)
+
+inline
+
+ +

Definition at line 118 of file Texture2D.hpp.

+ +
+
+ +

◆ Draw() [6/8]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Texture2D& raylib::Texture2D::Draw (::Vector2 tiling,
::Vector2 offset,
::Rectangle quad,
::Color tint = WHITE 
)
+
+inline
+
+ +

Definition at line 127 of file Texture2D.hpp.

+ +
+
+ +

◆ Draw() [7/8]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Texture2D& raylib::Texture2D::Draw (::Vector3 position,
float width,
float height,
float length,
::Color color = WHITE 
)
+
+inline
+
+ +

Definition at line 140 of file Texture2D.hpp.

+ +
+
+ +

◆ Draw() [8/8]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
Texture2D& raylib::Texture2D::Draw (int posX,
int posY,
::Color tint = WHITE 
)
+
+inline
+
+ +

Definition at line 109 of file Texture2D.hpp.

+ +
+
+ +

◆ DrawTiled()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Texture2D& raylib::Texture2D::DrawTiled (Rectangle sourceRec,
Rectangle destRec,
Vector2 origin,
float rotation,
float scale,
Color tint = WHITE 
)
+
+inline
+
+ +

Definition at line 145 of file Texture2D.hpp.

+ +
+
+ +

◆ GenMipmaps()

+ +
+
+ + + + + +
+ + + + + + + +
Texture2D& raylib::Texture2D::GenMipmaps ()
+
+inline
+
+ +

Definition at line 94 of file Texture2D.hpp.

+ +
+
+ +

◆ GetFormat()

+ +
+
+ + + + + +
+ + + + + + + +
int raylib::Texture2D::GetFormat ()
+
+inline
+
+ +

Definition at line 49 of file Texture2D.hpp.

+ +
+
+ +

◆ GetHeight()

+ +
+
+ + + + + +
+ + + + + + + +
int raylib::Texture2D::GetHeight ()
+
+inline
+
+ +

Definition at line 47 of file Texture2D.hpp.

+ +
+
+ +

◆ GetId()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned int raylib::Texture2D::GetId ()
+
+inline
+
+ +

Definition at line 45 of file Texture2D.hpp.

+ +
+
+ +

◆ GetMipmaps()

+ +
+
+ + + + + +
+ + + + + + + +
int raylib::Texture2D::GetMipmaps ()
+
+inline
+
+ +

Definition at line 48 of file Texture2D.hpp.

+ +
+
+ +

◆ GetPixelDataSize()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
static int raylib::Texture2D::GetPixelDataSize (int width,
int height,
int format 
)
+
+inlinestatic
+
+ +

Definition at line 155 of file Texture2D.hpp.

+ +
+
+ +

◆ GetTextureData()

+ +
+
+ + + + + +
+ + + + + + + +
Image raylib::Texture2D::GetTextureData ()
+
+inline
+
+ +

Definition at line 87 of file Texture2D.hpp.

+ +

Referenced by operator raylib::Image().

+ +
+
+ +

◆ GetWidth()

+ +
+
+ + + + + +
+ + + + + + + +
int raylib::Texture2D::GetWidth ()
+
+inline
+
+ +

Definition at line 46 of file Texture2D.hpp.

+ +
+
+ +

◆ Load()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Texture2D::Load (const std::string & fileName)
+
+inline
+
+ +

Definition at line 69 of file Texture2D.hpp.

+ +

References set().

+ +

Referenced by Texture2D().

+ +
+
+ +

◆ LoadFromImage()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Texture2D::LoadFromImage (::Imageimage)
+
+inline
+
+ +

Definition at line 61 of file Texture2D.hpp.

+ +

References set().

+ +

Referenced by Texture2D().

+ +
+
+ +

◆ LoadTextureCubemap()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void raylib::Texture2D::LoadTextureCubemap (::Imageimage,
int layoutType 
)
+
+inline
+
+ +

Definition at line 65 of file Texture2D.hpp.

+ +

References set().

+ +
+
+ +

◆ operator raylib::Image()

+ +
+
+ + + + + +
+ + + + + + + +
raylib::Texture2D::operator raylib::Image ()
+
+inline
+
+ +

Definition at line 90 of file Texture2D.hpp.

+ +

References GetTextureData().

+ +
+
+ +

◆ operator=() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
Texture2D& raylib::Texture2D::operator= (const ::Texture2Dtexture)
+
+inline
+
+ +

Definition at line 51 of file Texture2D.hpp.

+ +

References set().

+ +
+
+ +

◆ operator=() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
Texture2D& raylib::Texture2D::operator= (const Texture2Dtexture)
+
+inline
+
+ +

Definition at line 56 of file Texture2D.hpp.

+ +

References set().

+ +
+
+ +

◆ set()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Texture2D::set (::Texture2D texture)
+
+inline
+
+ +

Definition at line 37 of file Texture2D.hpp.

+ +

Referenced by Load(), LoadFromImage(), LoadTextureCubemap(), operator=(), and Texture2D().

+ +
+
+ +

◆ SetFilter()

+ +
+
+ + + + + +
+ + + + + + + + +
Texture2D& raylib::Texture2D::SetFilter (int filterMode)
+
+inline
+
+ +

Definition at line 99 of file Texture2D.hpp.

+ +
+
+ +

◆ SetFormat()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Texture2D::SetFormat (int value)
+
+inline
+
+ +

Definition at line 49 of file Texture2D.hpp.

+ +
+
+ +

◆ SetHeight()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Texture2D::SetHeight (int value)
+
+inline
+
+ +

Definition at line 47 of file Texture2D.hpp.

+ +
+
+ +

◆ SetId()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Texture2D::SetId (unsigned int value)
+
+inline
+
+ +

Definition at line 45 of file Texture2D.hpp.

+ +
+
+ +

◆ SetMaterialTexture()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
Texture2D& raylib::Texture2D::SetMaterialTexture (Materialmaterial,
int mapType 
)
+
+inline
+
+ +

Definition at line 150 of file Texture2D.hpp.

+ +
+
+ +

◆ SetMipmaps()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Texture2D::SetMipmaps (int value)
+
+inline
+
+ +

Definition at line 48 of file Texture2D.hpp.

+ +
+
+ +

◆ SetWidth()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Texture2D::SetWidth (int value)
+
+inline
+
+ +

Definition at line 46 of file Texture2D.hpp.

+ +
+
+ +

◆ SetWrap()

+ +
+
+ + + + + +
+ + + + + + + + +
Texture2D& raylib::Texture2D::SetWrap (int wrapMode)
+
+inline
+
+ +

Definition at line 104 of file Texture2D.hpp.

+ +
+
+ +

◆ Unload()

+ +
+
+ + + + + +
+ + + + + + + +
void raylib::Texture2D::Unload ()
+
+inline
+
+ +

Definition at line 73 of file Texture2D.hpp.

+ +

Referenced by ~Texture2D().

+ +
+
+ +

◆ Update()

+ +
+
+ + + + + +
+ + + + + + + + +
Texture2D& raylib::Texture2D::Update (const void * pixels)
+
+inline
+
+ +

Definition at line 77 of file Texture2D.hpp.

+ +
+
+ +

◆ UpdateRec()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
Texture2D& raylib::Texture2D::UpdateRec (Rectangle rec,
const void * pixels 
)
+
+inline
+
+ +

Definition at line 82 of file Texture2D.hpp.

+ +
+
+
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_vector2-members.html b/raylib-cpp/docs/classraylib_1_1_vector2-members.html new file mode 100644 index 00000000..8f1835a5 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_vector2-members.html @@ -0,0 +1,141 @@ + + + + + + + +raylib-cpp: Member List + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
raylib::Vector2 Member List
+
+
+ +

This is the complete list of members for raylib::Vector2, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Add(const ::Vector2 &vector2) const (defined in raylib::Vector2)raylib::Vector2inline
Angle(const ::Vector2 &vector2) constraylib::Vector2inline
CheckCollision(::Rectangle rec) constraylib::Vector2inline
CheckCollision(::Vector2 center, float radius) constraylib::Vector2inline
CheckCollision(::Vector2 p1, ::Vector2 p2, ::Vector2 p3) constraylib::Vector2inline
CheckCollisionCircle(float radius1, ::Vector2 center2, float radius2) constraylib::Vector2inline
CheckCollisionCircle(float radius, ::Rectangle rec) constraylib::Vector2inline
CheckCollisionLines(::Vector2 endPos1, ::Vector2 startPos2, ::Vector2 endPos2, ::Vector2 *collisionPoint) constraylib::Vector2inline
Distance(const ::Vector2 &vector2) constraylib::Vector2inline
Divide(const ::Vector2 &vector2) const (defined in raylib::Vector2)raylib::Vector2inline
Divide(const float div) (defined in raylib::Vector2)raylib::Vector2inline
DotProduct(const ::Vector2 &vector2) constraylib::Vector2inline
DrawCircle(float radius, ::Color color)raylib::Vector2inline
DrawLine(::Vector2 endPos, ::Color color) (defined in raylib::Vector2)raylib::Vector2inline
DrawLine(::Vector2 endPos, float thick, ::Color color) (defined in raylib::Vector2)raylib::Vector2inline
DrawLineBezier(::Vector2 endPos, float thick, ::Color color) (defined in raylib::Vector2)raylib::Vector2inline
DrawLineBezierQuad(::Vector2 endPos, ::Vector2 controlPos, float thick, ::Color color)raylib::Vector2inline
DrawPixel(::Color color) (defined in raylib::Vector2)raylib::Vector2inline
DrawPoly(int sides, float radius, float rotation, ::Color color) (defined in raylib::Vector2)raylib::Vector2inline
DrawRectangle(::Vector2 size, ::Color color) (defined in raylib::Vector2)raylib::Vector2inline
GetX() constraylib::Vector2inline
GetY() constraylib::Vector2inline
Length() constraylib::Vector2inline
LengthSqr() constraylib::Vector2inline
Lerp(const ::Vector2 &vector2, float amount) constraylib::Vector2inline
MoveTowards(const ::Vector2 &target, float maxDistance) constraylib::Vector2inline
Multiply(const ::Vector2 &vector2) const (defined in raylib::Vector2)raylib::Vector2inline
Negate() const (defined in raylib::Vector2)raylib::Vector2inline
Normalize() constraylib::Vector2inline
One()raylib::Vector2inlinestatic
operator*(const ::Vector2 &vector2) (defined in raylib::Vector2)raylib::Vector2inline
operator*(const float scale) (defined in raylib::Vector2)raylib::Vector2inline
operator*=(const ::Vector2 &vector2) (defined in raylib::Vector2)raylib::Vector2inline
operator*=(const float scale) (defined in raylib::Vector2)raylib::Vector2inline
operator+(const ::Vector2 &vector2) (defined in raylib::Vector2)raylib::Vector2inline
operator+=(const ::Vector2 &vector2) (defined in raylib::Vector2)raylib::Vector2inline
operator-(const ::Vector2 &vector2) (defined in raylib::Vector2)raylib::Vector2inline
operator-() (defined in raylib::Vector2)raylib::Vector2inline
operator-=(const ::Vector2 &vector2) (defined in raylib::Vector2)raylib::Vector2inline
operator/(const ::Vector2 &vector2) (defined in raylib::Vector2)raylib::Vector2inline
operator/(const float div) (defined in raylib::Vector2)raylib::Vector2inline
operator/=(const ::Vector2 &vector2) (defined in raylib::Vector2)raylib::Vector2inline
operator/=(const float div) (defined in raylib::Vector2)raylib::Vector2inline
operator=(const ::Vector2 &vector2) (defined in raylib::Vector2)raylib::Vector2inline
operator==(const ::Vector2 &other) (defined in raylib::Vector2)raylib::Vector2inline
Reflect(const ::Vector2 &normal) constraylib::Vector2inline
Rotate(float degrees) constraylib::Vector2inline
Scale(const float scale) const (defined in raylib::Vector2)raylib::Vector2inline
SetX(float value)raylib::Vector2inline
SetY(float value)raylib::Vector2inline
Subtract(const ::Vector2 &vector2) const (defined in raylib::Vector2)raylib::Vector2inline
Vector2(const ::Vector2 &vec) (defined in raylib::Vector2)raylib::Vector2inline
Vector2(float x, float y) (defined in raylib::Vector2)raylib::Vector2inline
Vector2(float x) (defined in raylib::Vector2)raylib::Vector2inline
Vector2() (defined in raylib::Vector2)raylib::Vector2inline
Zero()raylib::Vector2inlinestatic
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_vector2.html b/raylib-cpp/docs/classraylib_1_1_vector2.html new file mode 100644 index 00000000..df5068c1 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_vector2.html @@ -0,0 +1,418 @@ + + + + + + + +raylib-cpp: raylib::Vector2 Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
raylib::Vector2 Class Reference
+
+
+ +

Vector2 type. + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Vector2 (const ::Vector2 &vec)
 
Vector2 (float x)
 
Vector2 (float x, float y)
 
+Vector2 Add (const ::Vector2 &vector2) const
 
+float Angle (const ::Vector2 &vector2) const
 Calculate angle from two vectors in X-axis.
 
+bool CheckCollision (::Rectangle rec) const
 Check if point is inside rectangle.
 
+bool CheckCollision (::Vector2 center, float radius) const
 Check if point is inside circle.
 
+bool CheckCollision (::Vector2 p1, ::Vector2 p2, ::Vector2 p3) const
 Check if point is inside a triangle.
 
+bool CheckCollisionCircle (float radius, ::Rectangle rec) const
 Check collision between circle and rectangle.
 
+bool CheckCollisionCircle (float radius1, ::Vector2 center2, float radius2) const
 Check collision between two circles.
 
+bool CheckCollisionLines (::Vector2 endPos1, ::Vector2 startPos2, ::Vector2 endPos2, ::Vector2 *collisionPoint) const
 Check the collision between two lines defined by two points each, returns collision point by reference.
 
+float Distance (const ::Vector2 &vector2) const
 Calculate distance between two vectors.
 
+Vector2 Divide (const ::Vector2 &vector2) const
 
+Vector2Divide (const float div)
 
+float DotProduct (const ::Vector2 &vector2) const
 Calculate two vectors dot product.
 
+Vector2DrawCircle (float radius, ::Color color)
 Draw a color-filled circle (Vector version)
 
+Vector2DrawLine (::Vector2 endPos, ::Color color)
 
+Vector2DrawLine (::Vector2 endPos, float thick, ::Color color)
 
+Vector2DrawLineBezier (::Vector2 endPos, float thick, ::Color color)
 
+Vector2DrawLineBezierQuad (::Vector2 endPos, ::Vector2 controlPos, float thick, ::Color color)
 Draw line using quadratic bezier curves with a control point.
 
+Vector2DrawPixel (::Color color)
 
+Vector2DrawPoly (int sides, float radius, float rotation, ::Color color)
 
+Vector2DrawRectangle (::Vector2 size, ::Color color)
 
float GetX () const
 Retrieves the x value for the object. More...
 
float GetY () const
 Retrieves the y value for the object. More...
 
+float Length () const
 Calculate vector length.
 
+float LengthSqr () const
 Calculate vector square length.
 
+Vector2 Lerp (const ::Vector2 &vector2, float amount) const
 Calculate linear interpolation between two vectors.
 
+Vector2 MoveTowards (const ::Vector2 &target, float maxDistance) const
 Move Vector towards target.
 
+Vector2 Multiply (const ::Vector2 &vector2) const
 
+Vector2 Negate () const
 
+Vector2 Normalize () const
 Normalize provided vector.
 
+Vector2 operator* (const ::Vector2 &vector2)
 
+Vector2 operator* (const float scale)
 
+Vector2operator*= (const ::Vector2 &vector2)
 
+Vector2operator*= (const float scale)
 
+Vector2 operator+ (const ::Vector2 &vector2)
 
+Vector2operator+= (const ::Vector2 &vector2)
 
+Vector2 operator- ()
 
+Vector2 operator- (const ::Vector2 &vector2)
 
+Vector2operator-= (const ::Vector2 &vector2)
 
+Vector2 operator/ (const ::Vector2 &vector2)
 
+Vector2operator/ (const float div)
 
+Vector2operator/= (const ::Vector2 &vector2)
 
+Vector2operator/= (const float div)
 
+Vector2operator= (const ::Vector2 &vector2)
 
+bool operator== (const ::Vector2 &other)
 
+Vector2 Reflect (const ::Vector2 &normal) const
 Calculate reflected vector to normal.
 
+Vector2 Rotate (float degrees) const
 Rotate Vector by float in Degrees.
 
+Vector2 Scale (const float scale) const
 
void SetX (float value)
 Sets the x value for the object. More...
 
void SetY (float value)
 Sets the y value for the object. More...
 
+Vector2 Subtract (const ::Vector2 &vector2) const
 
+ + + + + + + +

+Static Public Member Functions

+static Vector2 One ()
 Vector with components value 1.0f.
 
+static Vector2 Zero ()
 Vector with components value 0.0f.
 
+

Detailed Description

+

Vector2 type.

+ +

Definition at line 16 of file Vector2.hpp.

+

Member Function Documentation

+ +

◆ GetX()

+ +
+
+ + + + + +
+ + + + + + + +
float raylib::Vector2::GetX () const
+
+inline
+
+ +

Retrieves the x value for the object.

+
Returns
The x value of the object.
+ +

Definition at line 26 of file Vector2.hpp.

+ +
+
+ +

◆ GetY()

+ +
+
+ + + + + +
+ + + + + + + +
float raylib::Vector2::GetY () const
+
+inline
+
+ +

Retrieves the y value for the object.

+
Returns
The y value of the object.
+ +

Definition at line 27 of file Vector2.hpp.

+ +
+
+ +

◆ SetX()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Vector2::SetX (float value)
+
+inline
+
+ +

Sets the x value for the object.

+
Parameters
+ + +
valueThe value of which to set x to.
+
+
+ +

Definition at line 26 of file Vector2.hpp.

+ +
+
+ +

◆ SetY()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Vector2::SetY (float value)
+
+inline
+
+ +

Sets the y value for the object.

+
Parameters
+ + +
valueThe value of which to set y to.
+
+
+ +

Definition at line 27 of file Vector2.hpp.

+ +
+
+
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_vector3-members.html b/raylib-cpp/docs/classraylib_1_1_vector3-members.html new file mode 100644 index 00000000..99aa8608 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_vector3-members.html @@ -0,0 +1,150 @@ + + + + + + + +raylib-cpp: Member List + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
raylib::Vector3 Member List
+
+
+ +

This is the complete list of members for raylib::Vector3, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Add(const ::Vector3 &vector3) (defined in raylib::Vector3)raylib::Vector3inline
Barycenter(const ::Vector3 &a, const ::Vector3 &b, const ::Vector3 &c) (defined in raylib::Vector3)raylib::Vector3inline
CheckCollision(float radius1, const ::Vector3 &center2, float radius2)raylib::Vector3inline
CrossProduct(const ::Vector3 &vector3) (defined in raylib::Vector3)raylib::Vector3inline
Distance(const ::Vector3 &vector3) (defined in raylib::Vector3)raylib::Vector3inline
Divide(const ::Vector3 &vector3) (defined in raylib::Vector3)raylib::Vector3inline
Divide(const float div) (defined in raylib::Vector3)raylib::Vector3inline
DotProduct(const ::Vector3 &vector3) (defined in raylib::Vector3)raylib::Vector3inline
DrawCircle3D(float radius, const ::Vector3 &rotationAxis, float rotationAngle, Color color) (defined in raylib::Vector3)raylib::Vector3inline
DrawCube(float width, float height, float length, ::Color color) (defined in raylib::Vector3)raylib::Vector3inline
DrawCube(const ::Vector3 &size, ::Color color) (defined in raylib::Vector3)raylib::Vector3inline
DrawCubeTexture(const ::Texture2D &texture, float width, float height, float length, ::Color color) (defined in raylib::Vector3)raylib::Vector3inline
DrawCubeWires(float width, float height, float length, ::Color color) (defined in raylib::Vector3)raylib::Vector3inline
DrawCubeWires(const ::Vector3 &size, ::Color color) (defined in raylib::Vector3)raylib::Vector3inline
DrawCylinder(float radiusTop, float radiusBottom, float height, int slices, Color color) (defined in raylib::Vector3)raylib::Vector3inline
DrawCylinderWires(float radiusTop, float radiusBottom, float height, int slices, Color color) (defined in raylib::Vector3)raylib::Vector3inline
DrawLine3D(const ::Vector3 &endPos, ::Color color) (defined in raylib::Vector3)raylib::Vector3inline
DrawPlane(const ::Vector2 &size, ::Color color) (defined in raylib::Vector3)raylib::Vector3inline
DrawPoint3D(::Color color) (defined in raylib::Vector3)raylib::Vector3inline
DrawSphere(float radius, ::Color color) (defined in raylib::Vector3)raylib::Vector3inline
DrawSphere(float radius, int rings, int slices, ::Color color) (defined in raylib::Vector3)raylib::Vector3inline
DrawSphereWires(float radius, int rings, int slices, ::Color color) (defined in raylib::Vector3)raylib::Vector3inline
GetX() constraylib::Vector3inline
GetY() constraylib::Vector3inline
GetZ() constraylib::Vector3inline
Length() const (defined in raylib::Vector3)raylib::Vector3inline
Lerp(const ::Vector3 &vector3, const float amount) (defined in raylib::Vector3)raylib::Vector3inline
Max(const ::Vector3 &vector3) (defined in raylib::Vector3)raylib::Vector3inline
Min(const ::Vector3 &vector3) (defined in raylib::Vector3)raylib::Vector3inline
Multiply(const ::Vector3 &vector3) (defined in raylib::Vector3)raylib::Vector3inline
Negate() (defined in raylib::Vector3)raylib::Vector3inline
Normalize() (defined in raylib::Vector3)raylib::Vector3inline
One() (defined in raylib::Vector3)raylib::Vector3inlinestatic
operator*(const ::Vector3 &vector3) (defined in raylib::Vector3)raylib::Vector3inline
operator*(const float scale) (defined in raylib::Vector3)raylib::Vector3inline
operator*=(const ::Vector3 &vector3) (defined in raylib::Vector3)raylib::Vector3inline
operator*=(const float scale) (defined in raylib::Vector3)raylib::Vector3inline
operator+(const ::Vector3 &vector3) (defined in raylib::Vector3)raylib::Vector3inline
operator+=(const ::Vector3 &vector3) (defined in raylib::Vector3)raylib::Vector3inline
operator-(const ::Vector3 &vector3) (defined in raylib::Vector3)raylib::Vector3inline
operator-() (defined in raylib::Vector3)raylib::Vector3inline
operator-=(const ::Vector3 &vector3) (defined in raylib::Vector3)raylib::Vector3inline
operator/(const ::Vector3 &vector3) (defined in raylib::Vector3)raylib::Vector3inline
operator/(const float div) (defined in raylib::Vector3)raylib::Vector3inline
operator/=(const ::Vector3 &vector3) (defined in raylib::Vector3)raylib::Vector3inline
operator/=(const float div) (defined in raylib::Vector3)raylib::Vector3inline
operator=(const ::Vector3 &vector3) (defined in raylib::Vector3)raylib::Vector3inline
operator==(const ::Vector3 &other) (defined in raylib::Vector3)raylib::Vector3inline
OrthoNormalize(::Vector3 *vector3) (defined in raylib::Vector3)raylib::Vector3inline
Perpendicular() (defined in raylib::Vector3)raylib::Vector3inline
Reflect(const ::Vector3 &normal) (defined in raylib::Vector3)raylib::Vector3inline
RotateByQuaternion(const ::Quaternion &quaternion) (defined in raylib::Vector3)raylib::Vector3inline
Scale(const float scale) (defined in raylib::Vector3)raylib::Vector3inline
SetX(float value)raylib::Vector3inline
SetY(float value)raylib::Vector3inline
SetZ(float value)raylib::Vector3inline
Subtract(const ::Vector3 &vector3) (defined in raylib::Vector3)raylib::Vector3inline
Transform(const ::Matrix &matrix) (defined in raylib::Vector3)raylib::Vector3inline
Vector3(const ::Vector3 &vec) (defined in raylib::Vector3)raylib::Vector3inline
Vector3(float x, float y, float z) (defined in raylib::Vector3)raylib::Vector3inline
Vector3(float x, float y) (defined in raylib::Vector3)raylib::Vector3inline
Vector3(float x) (defined in raylib::Vector3)raylib::Vector3inline
Vector3() (defined in raylib::Vector3)raylib::Vector3inline
Vector3(::Color color) (defined in raylib::Vector3)raylib::Vector3inline
Zero() (defined in raylib::Vector3)raylib::Vector3inlinestatic
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_vector3.html b/raylib-cpp/docs/classraylib_1_1_vector3.html new file mode 100644 index 00000000..e687b21b --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_vector3.html @@ -0,0 +1,492 @@ + + + + + + + +raylib-cpp: raylib::Vector3 Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
raylib::Vector3 Class Reference
+
+
+ +

Vector3 type. + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Vector3 (::Color color)
 
Vector3 (const ::Vector3 &vec)
 
Vector3 (float x)
 
Vector3 (float x, float y)
 
Vector3 (float x, float y, float z)
 
+Vector3 Add (const ::Vector3 &vector3)
 
+Vector3 Barycenter (const ::Vector3 &a, const ::Vector3 &b, const ::Vector3 &c)
 
+bool CheckCollision (float radius1, const ::Vector3 &center2, float radius2)
 Detect collision between two spheres.
 
+Vector3 CrossProduct (const ::Vector3 &vector3)
 
+float Distance (const ::Vector3 &vector3)
 
+Vector3 Divide (const ::Vector3 &vector3)
 
+Vector3Divide (const float div)
 
+float DotProduct (const ::Vector3 &vector3)
 
+Vector3DrawCircle3D (float radius, const ::Vector3 &rotationAxis, float rotationAngle, Color color)
 
+Vector3DrawCube (const ::Vector3 &size, ::Color color)
 
+Vector3DrawCube (float width, float height, float length, ::Color color)
 
+Vector3DrawCubeTexture (const ::Texture2D &texture, float width, float height, float length, ::Color color)
 
+Vector3DrawCubeWires (const ::Vector3 &size, ::Color color)
 
+Vector3DrawCubeWires (float width, float height, float length, ::Color color)
 
+Vector3DrawCylinder (float radiusTop, float radiusBottom, float height, int slices, Color color)
 
+Vector3DrawCylinderWires (float radiusTop, float radiusBottom, float height, int slices, Color color)
 
+Vector3DrawLine3D (const ::Vector3 &endPos, ::Color color)
 
+Vector3DrawPlane (const ::Vector2 &size, ::Color color)
 
+Vector3DrawPoint3D (::Color color)
 
+Vector3DrawSphere (float radius, ::Color color)
 
+Vector3DrawSphere (float radius, int rings, int slices, ::Color color)
 
+Vector3DrawSphereWires (float radius, int rings, int slices, ::Color color)
 
float GetX () const
 Retrieves the x value for the object. More...
 
float GetY () const
 Retrieves the y value for the object. More...
 
float GetZ () const
 Retrieves the z value for the object. More...
 
+float Length () const
 
+Vector3 Lerp (const ::Vector3 &vector3, const float amount)
 
+Vector3 Max (const ::Vector3 &vector3)
 
+Vector3 Min (const ::Vector3 &vector3)
 
+Vector3 Multiply (const ::Vector3 &vector3)
 
+Vector3 Negate ()
 
+Vector3 Normalize ()
 
+Vector3 operator* (const ::Vector3 &vector3)
 
+Vector3 operator* (const float scale)
 
+Vector3operator*= (const ::Vector3 &vector3)
 
+Vector3operator*= (const float scale)
 
+Vector3 operator+ (const ::Vector3 &vector3)
 
+Vector3operator+= (const ::Vector3 &vector3)
 
+Vector3 operator- ()
 
+Vector3 operator- (const ::Vector3 &vector3)
 
+Vector3operator-= (const ::Vector3 &vector3)
 
+Vector3 operator/ (const ::Vector3 &vector3)
 
+Vector3 operator/ (const float div)
 
+Vector3operator/= (const ::Vector3 &vector3)
 
+Vector3operator/= (const float div)
 
+Vector3operator= (const ::Vector3 &vector3)
 
+bool operator== (const ::Vector3 &other)
 
+void OrthoNormalize (::Vector3 *vector3)
 
+Vector3 Perpendicular ()
 
+Vector3 Reflect (const ::Vector3 &normal)
 
+Vector3 RotateByQuaternion (const ::Quaternion &quaternion)
 
+Vector3 Scale (const float scale)
 
void SetX (float value)
 Sets the x value for the object. More...
 
void SetY (float value)
 Sets the y value for the object. More...
 
void SetZ (float value)
 Sets the z value for the object. More...
 
+Vector3 Subtract (const ::Vector3 &vector3)
 
+Vector3 Transform (const ::Matrix &matrix)
 
+ + + + + +

+Static Public Member Functions

+static Vector3 One ()
 
+static Vector3 Zero ()
 
+

Detailed Description

+

Vector3 type.

+ +

Definition at line 16 of file Vector3.hpp.

+

Member Function Documentation

+ +

◆ GetX()

+ +
+
+ + + + + +
+ + + + + + + +
float raylib::Vector3::GetX () const
+
+inline
+
+ +

Retrieves the x value for the object.

+
Returns
The x value of the object.
+ +

Definition at line 31 of file Vector3.hpp.

+ +
+
+ +

◆ GetY()

+ +
+
+ + + + + +
+ + + + + + + +
float raylib::Vector3::GetY () const
+
+inline
+
+ +

Retrieves the y value for the object.

+
Returns
The y value of the object.
+ +

Definition at line 32 of file Vector3.hpp.

+ +
+
+ +

◆ GetZ()

+ +
+
+ + + + + +
+ + + + + + + +
float raylib::Vector3::GetZ () const
+
+inline
+
+ +

Retrieves the z value for the object.

+
Returns
The z value of the object.
+ +

Definition at line 33 of file Vector3.hpp.

+ +
+
+ +

◆ SetX()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Vector3::SetX (float value)
+
+inline
+
+ +

Sets the x value for the object.

+
Parameters
+ + +
valueThe value of which to set x to.
+
+
+ +

Definition at line 31 of file Vector3.hpp.

+ +
+
+ +

◆ SetY()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Vector3::SetY (float value)
+
+inline
+
+ +

Sets the y value for the object.

+
Parameters
+ + +
valueThe value of which to set y to.
+
+
+ +

Definition at line 32 of file Vector3.hpp.

+ +
+
+ +

◆ SetZ()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Vector3::SetZ (float value)
+
+inline
+
+ +

Sets the z value for the object.

+
Parameters
+ + +
valueThe value of which to set z to.
+
+
+ +

Definition at line 33 of file Vector3.hpp.

+ +
+
+
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_vector4-members.html b/raylib-cpp/docs/classraylib_1_1_vector4-members.html new file mode 100644 index 00000000..fdf87400 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_vector4-members.html @@ -0,0 +1,125 @@ + + + + + + + +raylib-cpp: Member List + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
raylib::Vector4 Member List
+
+
+ +

This is the complete list of members for raylib::Vector4, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ColorFromNormalized() const (defined in raylib::Vector4)raylib::Vector4inline
FromAxisAngle(const ::Vector3 &axis, const float angle) (defined in raylib::Vector4)raylib::Vector4inlinestatic
FromEuler(const float yaw, const float pitch, const float roll) (defined in raylib::Vector4)raylib::Vector4inlinestatic
FromEuler(const ::Vector3 &vector3) (defined in raylib::Vector4)raylib::Vector4inlinestatic
FromMatrix(const ::Matrix &matrix) (defined in raylib::Vector4)raylib::Vector4inlinestatic
FromVector3ToVector3(const ::Vector3 &from, const ::Vector3 &to) (defined in raylib::Vector4)raylib::Vector4inlinestatic
GetW() constraylib::Vector4inline
GetX() constraylib::Vector4inline
GetY() constraylib::Vector4inline
GetZ() constraylib::Vector4inline
Identity() (defined in raylib::Vector4)raylib::Vector4inlinestatic
Invert() (defined in raylib::Vector4)raylib::Vector4inline
Length() const (defined in raylib::Vector4)raylib::Vector4inline
Lerp(const ::Vector4 &vector4, float amount) (defined in raylib::Vector4)raylib::Vector4inline
Multiply(const ::Vector4 &vector4) (defined in raylib::Vector4)raylib::Vector4inline
Nlerp(const ::Vector4 &vector4, float amount) (defined in raylib::Vector4)raylib::Vector4inline
Normalize() (defined in raylib::Vector4)raylib::Vector4inline
operator Color() (defined in raylib::Vector4)raylib::Vector4inline
operator*(const ::Vector4 &vector4) (defined in raylib::Vector4)raylib::Vector4inline
operator::Rectangle() const (defined in raylib::Vector4)raylib::Vector4inline
operator=(const ::Vector4 &vector4) (defined in raylib::Vector4)raylib::Vector4inline
operator==(const ::Vector4 &other) (defined in raylib::Vector4)raylib::Vector4inline
SetW(float value)raylib::Vector4inline
SetX(float value)raylib::Vector4inline
SetY(float value)raylib::Vector4inline
SetZ(float value)raylib::Vector4inline
Slerp(const ::Vector4 &vector4, float amount) (defined in raylib::Vector4)raylib::Vector4inline
ToAxisAngle(::Vector3 *outAxis, float *outAngle) (defined in raylib::Vector4)raylib::Vector4inline
ToAxisAngle() (defined in raylib::Vector4)raylib::Vector4inline
ToEuler() (defined in raylib::Vector4)raylib::Vector4inline
ToMatrix() (defined in raylib::Vector4)raylib::Vector4inline
ToRectangle() (defined in raylib::Vector4)raylib::Vector4inline
Transform(const ::Matrix &matrix) (defined in raylib::Vector4)raylib::Vector4inline
Vector4(const ::Vector4 &vec) (defined in raylib::Vector4)raylib::Vector4inline
Vector4(float x, float y, float z, float w) (defined in raylib::Vector4)raylib::Vector4inline
Vector4(float x, float y, float z) (defined in raylib::Vector4)raylib::Vector4inline
Vector4(float x, float y) (defined in raylib::Vector4)raylib::Vector4inline
Vector4(float x) (defined in raylib::Vector4)raylib::Vector4inline
Vector4() (defined in raylib::Vector4)raylib::Vector4inline
Vector4(::Color color) (defined in raylib::Vector4)raylib::Vector4inline
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_vector4.html b/raylib-cpp/docs/classraylib_1_1_vector4.html new file mode 100644 index 00000000..c68a9c86 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_vector4.html @@ -0,0 +1,482 @@ + + + + + + + +raylib-cpp: raylib::Vector4 Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
raylib::Vector4 Class Reference
+
+
+ +

Vector4 type. + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Vector4 (::Color color)
 
Vector4 (const ::Vector4 &vec)
 
Vector4 (float x)
 
Vector4 (float x, float y)
 
Vector4 (float x, float y, float z)
 
Vector4 (float x, float y, float z, float w)
 
+Color ColorFromNormalized () const
 
float GetW () const
 Retrieves the w value for the object. More...
 
float GetX () const
 Retrieves the x value for the object. More...
 
float GetY () const
 Retrieves the y value for the object. More...
 
float GetZ () const
 Retrieves the z value for the object. More...
 
+Vector4 Invert ()
 
+float Length () const
 
+Vector4 Lerp (const ::Vector4 &vector4, float amount)
 
+Vector4 Multiply (const ::Vector4 &vector4)
 
+Vector4 Nlerp (const ::Vector4 &vector4, float amount)
 
+Vector4 Normalize ()
 
operator Color ()
 
+Vector4 operator* (const ::Vector4 &vector4)
 
operator::Rectangle () const
 
+Vector4operator= (const ::Vector4 &vector4)
 
+bool operator== (const ::Vector4 &other)
 
void SetW (float value)
 Sets the w value for the object. More...
 
void SetX (float value)
 Sets the x value for the object. More...
 
void SetY (float value)
 Sets the y value for the object. More...
 
void SetZ (float value)
 Sets the z value for the object. More...
 
+Vector4 Slerp (const ::Vector4 &vector4, float amount)
 
+std::pair< Vector3, float > ToAxisAngle ()
 
+void ToAxisAngle (::Vector3 *outAxis, float *outAngle)
 
+Vector3 ToEuler ()
 
+Matrix ToMatrix ()
 
+inline ::Rectangle ToRectangle ()
 
+Vector4 Transform (const ::Matrix &matrix)
 
+ + + + + + + + + + + + + +

+Static Public Member Functions

+static Vector4 FromAxisAngle (const ::Vector3 &axis, const float angle)
 
+static Vector4 FromEuler (const ::Vector3 &vector3)
 
+static Vector4 FromEuler (const float yaw, const float pitch, const float roll)
 
+static Vector4 FromMatrix (const ::Matrix &matrix)
 
+static Vector4 FromVector3ToVector3 (const ::Vector3 &from, const ::Vector3 &to)
 
+static Vector4 Identity ()
 
+

Detailed Description

+

Vector4 type.

+ +

Definition at line 17 of file Vector4.hpp.

+

Member Function Documentation

+ +

◆ GetW()

+ +
+
+ + + + + +
+ + + + + + + +
float raylib::Vector4::GetW () const
+
+inline
+
+ +

Retrieves the w value for the object.

+
Returns
The w value of the object.
+ +

Definition at line 36 of file Vector4.hpp.

+ +
+
+ +

◆ GetX()

+ +
+
+ + + + + +
+ + + + + + + +
float raylib::Vector4::GetX () const
+
+inline
+
+ +

Retrieves the x value for the object.

+
Returns
The x value of the object.
+ +

Definition at line 33 of file Vector4.hpp.

+ +
+
+ +

◆ GetY()

+ +
+
+ + + + + +
+ + + + + + + +
float raylib::Vector4::GetY () const
+
+inline
+
+ +

Retrieves the y value for the object.

+
Returns
The y value of the object.
+ +

Definition at line 34 of file Vector4.hpp.

+ +
+
+ +

◆ GetZ()

+ +
+
+ + + + + +
+ + + + + + + +
float raylib::Vector4::GetZ () const
+
+inline
+
+ +

Retrieves the z value for the object.

+
Returns
The z value of the object.
+ +

Definition at line 35 of file Vector4.hpp.

+ +
+
+ +

◆ SetW()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Vector4::SetW (float value)
+
+inline
+
+ +

Sets the w value for the object.

+
Parameters
+ + +
valueThe value of which to set w to.
+
+
+ +

Definition at line 36 of file Vector4.hpp.

+ +
+
+ +

◆ SetX()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Vector4::SetX (float value)
+
+inline
+
+ +

Sets the x value for the object.

+
Parameters
+ + +
valueThe value of which to set x to.
+
+
+ +

Definition at line 33 of file Vector4.hpp.

+ +
+
+ +

◆ SetY()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Vector4::SetY (float value)
+
+inline
+
+ +

Sets the y value for the object.

+
Parameters
+ + +
valueThe value of which to set y to.
+
+
+ +

Definition at line 34 of file Vector4.hpp.

+ +
+
+ +

◆ SetZ()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Vector4::SetZ (float value)
+
+inline
+
+ +

Sets the z value for the object.

+
Parameters
+ + +
valueThe value of which to set z to.
+
+
+ +

Definition at line 35 of file Vector4.hpp.

+ +
+
+
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_vr_simulator-members.html b/raylib-cpp/docs/classraylib_1_1_vr_simulator-members.html new file mode 100644 index 00000000..eaddd597 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_vr_simulator-members.html @@ -0,0 +1,97 @@ + + + + + + + +raylib-cpp: Member List + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
raylib::VrSimulator Member List
+
+
+ +

This is the complete list of members for raylib::VrSimulator, including all inherited members.

+ + + + + + + + + + + + + +
BeginDrawing()raylib::VrSimulatorinline
Close()raylib::VrSimulatorinline
EndDrawing()raylib::VrSimulatorinline
Init()raylib::VrSimulatorinline
IsReady() constraylib::VrSimulatorinline
Set(::VrDeviceInfo info, ::Shader distortion)raylib::VrSimulatorinline
Toggle()raylib::VrSimulatorinline
Update(::Camera *camera)raylib::VrSimulatorinline
Update(const ::Camera &camera)raylib::VrSimulatorinline
VrSimulator() (defined in raylib::VrSimulator)raylib::VrSimulatorinline
VrSimulator(::VrDeviceInfo info, ::Shader distortion) (defined in raylib::VrSimulator)raylib::VrSimulatorinline
~VrSimulator()raylib::VrSimulatorinline
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_vr_simulator.html b/raylib-cpp/docs/classraylib_1_1_vr_simulator.html new file mode 100644 index 00000000..11d21afc --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_vr_simulator.html @@ -0,0 +1,139 @@ + + + + + + + +raylib-cpp: raylib::VrSimulator Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
raylib::VrSimulator Class Reference
+
+
+ +

VR control functions. + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

VrSimulator (::VrDeviceInfo info, ::Shader distortion)
 
~VrSimulator ()
 Close VR simulator for current device.
 
+VrSimulatorBeginDrawing ()
 Begin VR simulator stereo rendering.
 
+void Close ()
 Close VR simulator for current device.
 
+VrSimulatorEndDrawing ()
 End VR simulator stereo rendering.
 
+void Init ()
 Init VR simulator for selected device parameters.
 
+bool IsReady () const
 Detect if VR simulator is ready.
 
+VrSimulatorSet (::VrDeviceInfo info, ::Shader distortion)
 Set stereo rendering configuration parameters.
 
+VrSimulatorToggle ()
 Enable/Disable VR experience.
 
+VrSimulatorUpdate (::Camera *camera)
 Update VR tracking (position and orientation) and camera.
 
+VrSimulatorUpdate (const ::Camera &camera)
 Update VR tracking (position and orientation) and camera.
 
+

Detailed Description

+

VR control functions.

+ +

Definition at line 11 of file VrSimulator.hpp.

+
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_vr_stereo_config-members.html b/raylib-cpp/docs/classraylib_1_1_vr_stereo_config-members.html new file mode 100644 index 00000000..e4d2145d --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_vr_stereo_config-members.html @@ -0,0 +1,91 @@ + + + + + + + +raylib-cpp: Member List + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
raylib::VrStereoConfig Member List
+
+
+ +

This is the complete list of members for raylib::VrStereoConfig, including all inherited members.

+ + + + + + + +
BeginMode()raylib::VrStereoConfiginline
EndDrawing()raylib::VrStereoConfiginline
Init(const ::VrDeviceInfo &info)raylib::VrStereoConfiginline
Unload()raylib::VrStereoConfiginline
VrStereoConfig(const ::VrDeviceInfo &info) (defined in raylib::VrStereoConfig)raylib::VrStereoConfiginline
~VrStereoConfig()raylib::VrStereoConfiginline
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_vr_stereo_config.html b/raylib-cpp/docs/classraylib_1_1_vr_stereo_config.html new file mode 100644 index 00000000..4dcc5ec0 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_vr_stereo_config.html @@ -0,0 +1,119 @@ + + + + + + + +raylib-cpp: raylib::VrStereoConfig Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
raylib::VrStereoConfig Class Reference
+
+
+ +

VR stereo config functions for VR simulator. + More...

+ + + + + + + + + + + + + + + + + + + +

+Public Member Functions

VrStereoConfig (const ::VrDeviceInfo &info)
 
~VrStereoConfig ()
 Unload VR stereo config.
 
+VrStereoConfigBeginMode ()
 Begin stereo rendering.
 
+VrStereoConfigEndDrawing ()
 End stereo rendering.
 
+void Init (const ::VrDeviceInfo &info)
 Load VR stereo config for VR simulator device parameters.
 
+void Unload ()
 Unload VR stereo config.
 
+

Detailed Description

+

VR stereo config functions for VR simulator.

+ +

Definition at line 11 of file VrStereoConfig.hpp.

+
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_wave-members.html b/raylib-cpp/docs/classraylib_1_1_wave-members.html new file mode 100644 index 00000000..adff5d4c --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_wave-members.html @@ -0,0 +1,112 @@ + + + + + + + +raylib-cpp: Member List + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
raylib::Wave Member List
+
+
+ +

This is the complete list of members for raylib::Wave, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Copy()raylib::Waveinline
Crop(int initSample, int finalSample)raylib::Waveinline
Export(const std::string &fileName)raylib::Waveinline
ExportAsCode(const std::string &fileName)raylib::Waveinline
Format(int SampleRate, int SampleSize, int Channels=2)raylib::Waveinline
GetChannels() constraylib::Waveinline
GetData() constraylib::Waveinline
GetSampleCount() constraylib::Waveinline
GetSampleRate() constraylib::Waveinline
GetSampleSize() constraylib::Waveinline
LoadSamples()raylib::Waveinline
LoadSound()raylib::Waveinline
operator Sound()raylib::Waveinline
operator::Sound()raylib::Waveinline
operator=(const ::Wave &wave) (defined in raylib::Wave)raylib::Waveinline
SetChannels(unsigned int value)raylib::Waveinline
SetData(void *value)raylib::Waveinline
SetSampleCount(unsigned int value)raylib::Waveinline
SetSampleRate(unsigned int value)raylib::Waveinline
SetSampleSize(unsigned int value)raylib::Waveinline
Unload()raylib::Waveinline
UnloadSamples(float *samples)raylib::Waveinline
Wave(const ::Wave &wave) (defined in raylib::Wave)raylib::Waveinline
Wave(unsigned int SampleCount=0, unsigned int SampleRate=0, unsigned int SampleSize=0, unsigned int Channels=0) (defined in raylib::Wave)raylib::Waveinline
Wave(const std::string &fileName)raylib::Waveinline
Wave(const std::string &fileType, const unsigned char *fileData, int dataSize)raylib::Waveinline
~Wave()raylib::Waveinline
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_wave.html b/raylib-cpp/docs/classraylib_1_1_wave.html new file mode 100644 index 00000000..770a975e --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_wave.html @@ -0,0 +1,569 @@ + + + + + + + +raylib-cpp: raylib::Wave Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
raylib::Wave Class Reference
+
+
+ +

Wave type, defines audio wave data. + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Wave (const ::Wave &wave)
 
Wave (const std::string &fileName)
 Load wave data from file.
 
 Wave (const std::string &fileType, const unsigned char *fileData, int dataSize)
 Load wave from memory buffer, fileType refers to extension: i.e. More...
 
Wave (unsigned int SampleCount=0, unsigned int SampleRate=0, unsigned int SampleSize=0, unsigned int Channels=0)
 
~Wave ()
 Unload wave data.
 
+inline ::Wave Copy ()
 Copy a wave to a new wave.
 
+WaveCrop (int initSample, int finalSample)
 Crop a wave to defined samples range.
 
+bool Export (const std::string &fileName)
 Export wave data to file, returns true on success.
 
+bool ExportAsCode (const std::string &fileName)
 Export wave sample data to code (.h), returns true on success.
 
+WaveFormat (int SampleRate, int SampleSize, int Channels=2)
 Convert wave data to desired format.
 
unsigned int GetChannels () const
 Retrieves the channels value for the object. More...
 
void * GetData () const
 Retrieves the data value for the object. More...
 
unsigned int GetSampleCount () const
 Retrieves the sampleCount value for the object. More...
 
unsigned int GetSampleRate () const
 Retrieves the sampleRate value for the object. More...
 
unsigned int GetSampleSize () const
 Retrieves the sampleSize value for the object. More...
 
+float * LoadSamples ()
 Load samples data from wave as a floats array.
 
+inline ::Sound LoadSound ()
 Load sound from wave data.
 
operator Sound ()
 Load sound from wave data.
 
operator::Sound ()
 Load sound from wave data.
 
+Waveoperator= (const ::Wave &wave)
 
void SetChannels (unsigned int value)
 Sets the channels value for the object. More...
 
void SetData (void *value)
 Sets the data value for the object. More...
 
void SetSampleCount (unsigned int value)
 Sets the sampleCount value for the object. More...
 
void SetSampleRate (unsigned int value)
 Sets the sampleRate value for the object. More...
 
void SetSampleSize (unsigned int value)
 Sets the sampleSize value for the object. More...
 
+void Unload ()
 Unload wave data.
 
+void UnloadSamples (float *samples)
 Unload samples data loaded with LoadWaveSamples()
 
+

Detailed Description

+

Wave type, defines audio wave data.

+ +

Definition at line 13 of file Wave.hpp.

+

Constructor & Destructor Documentation

+ +

◆ Wave()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
raylib::Wave::Wave (const std::string & fileType,
const unsigned char * fileData,
int dataSize 
)
+
+inline
+
+ +

Load wave from memory buffer, fileType refers to extension: i.e.

+

"wav"

+ +

Definition at line 40 of file Wave.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ GetChannels()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned int raylib::Wave::GetChannels () const
+
+inline
+
+ +

Retrieves the channels value for the object.

+
Returns
The channels value of the object.
+ +

Definition at line 54 of file Wave.hpp.

+ +
+
+ +

◆ GetData()

+ +
+
+ + + + + +
+ + + + + + + +
void* raylib::Wave::GetData () const
+
+inline
+
+ +

Retrieves the data value for the object.

+
Returns
The data value of the object.
+ +

Definition at line 55 of file Wave.hpp.

+ +
+
+ +

◆ GetSampleCount()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned int raylib::Wave::GetSampleCount () const
+
+inline
+
+ +

Retrieves the sampleCount value for the object.

+
Returns
The sampleCount value of the object.
+ +

Definition at line 51 of file Wave.hpp.

+ +
+
+ +

◆ GetSampleRate()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned int raylib::Wave::GetSampleRate () const
+
+inline
+
+ +

Retrieves the sampleRate value for the object.

+
Returns
The sampleRate value of the object.
+ +

Definition at line 52 of file Wave.hpp.

+ +
+
+ +

◆ GetSampleSize()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned int raylib::Wave::GetSampleSize () const
+
+inline
+
+ +

Retrieves the sampleSize value for the object.

+
Returns
The sampleSize value of the object.
+ +

Definition at line 53 of file Wave.hpp.

+ +
+
+ +

◆ SetChannels()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Wave::SetChannels (unsigned int value)
+
+inline
+
+ +

Sets the channels value for the object.

+
Parameters
+ + +
valueThe value of which to set channels to.
+
+
+ +

Definition at line 54 of file Wave.hpp.

+ +
+
+ +

◆ SetData()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Wave::SetData (void * value)
+
+inline
+
+ +

Sets the data value for the object.

+
Parameters
+ + +
valueThe value of which to set data to.
+
+
+ +

Definition at line 55 of file Wave.hpp.

+ +
+
+ +

◆ SetSampleCount()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Wave::SetSampleCount (unsigned int value)
+
+inline
+
+ +

Sets the sampleCount value for the object.

+
Parameters
+ + +
valueThe value of which to set sampleCount to.
+
+
+ +

Definition at line 51 of file Wave.hpp.

+ +
+
+ +

◆ SetSampleRate()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Wave::SetSampleRate (unsigned int value)
+
+inline
+
+ +

Sets the sampleRate value for the object.

+
Parameters
+ + +
valueThe value of which to set sampleRate to.
+
+
+ +

Definition at line 52 of file Wave.hpp.

+ +
+
+ +

◆ SetSampleSize()

+ +
+
+ + + + + +
+ + + + + + + + +
void raylib::Wave::SetSampleSize (unsigned int value)
+
+inline
+
+ +

Sets the sampleSize value for the object.

+
Parameters
+ + +
valueThe value of which to set sampleSize to.
+
+
+ +

Definition at line 53 of file Wave.hpp.

+ +
+
+
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_window-members.html b/raylib-cpp/docs/classraylib_1_1_window-members.html new file mode 100644 index 00000000..d3a52ff4 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_window-members.html @@ -0,0 +1,127 @@ + + + + + + + +raylib-cpp: Member List + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
raylib::Window Member List
+
+
+ +

This is the complete list of members for raylib::Window, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BeginDrawing()raylib::Windowinline
ClearBackground(const ::Color &color=BLACK)raylib::Windowinline
ClearState(unsigned int flag)raylib::Windowinline
Close()raylib::Windowinline
EndDrawing()raylib::Windowinline
GetFPS() constraylib::Windowinline
GetFrameTime() constraylib::Windowinline
GetHandle() constraylib::Windowinline
GetHeight() constraylib::Windowinline
GetPosition() constraylib::Windowinline
GetScaleDPI() constraylib::Windowinline
GetSize()raylib::Windowinline
GetTime() constraylib::Windowinline
GetWidth() constraylib::Windowinline
Init(int width=800, int height=450, const std::string &title="raylib") (defined in raylib::Window)raylib::Windowinline
IsCursorOnScreen() constraylib::Windowinline
IsFocused() constraylib::Windowinline
IsFullscreen() constraylib::Windowinline
IsHidden() constraylib::Windowinline
IsMaximized() constraylib::Windowinline
IsMinimized() constraylib::Windowinline
IsReady()raylib::Windowinlinestatic
IsResized() constraylib::Windowinline
IsState(unsigned int flag) constraylib::Windowinline
Maximize()raylib::Windowinline
Minimize()raylib::Windowinline
Restore()raylib::Windowinline
SetFullscreen(bool fullscreen)raylib::Windowinline
SetIcon(const ::Image &image)raylib::Windowinline
SetMinSize(int width, int height)raylib::Windowinline
SetMonitor(int monitor)raylib::Windowinline
SetPosition(int x, int y)raylib::Windowinline
SetPosition(const ::Vector2 &position)raylib::Windowinline
SetSize(int width, int height)raylib::Windowinline
SetSize(const ::Vector2 &size)raylib::Windowinline
SetState(unsigned int flag)raylib::Windowinline
SetTargetFPS(int fps)raylib::Windowinline
SetTitle(const std::string &title)raylib::Windowinline
ShouldClose() constraylib::Windowinline
ToggleFullscreen()raylib::Windowinline
Window(int width=800, int height=450, const std::string &title="raylib", bool lateInit=false)raylib::Windowinline
~Window()raylib::Windowinline
+ + + + diff --git a/raylib-cpp/docs/classraylib_1_1_window.html b/raylib-cpp/docs/classraylib_1_1_window.html new file mode 100644 index 00000000..f121d7c6 --- /dev/null +++ b/raylib-cpp/docs/classraylib_1_1_window.html @@ -0,0 +1,267 @@ + + + + + + + +raylib-cpp: raylib::Window Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
raylib::Window Class Reference
+
+
+ +

Window and Graphics Device Functions. + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Window (int width=800, int height=450, const std::string &title="raylib", bool lateInit=false)
 Initialize window and OpenGL context.
 
~Window ()
 Close window and unload OpenGL context.
 
+WindowBeginDrawing ()
 Setup canvas (framebuffer) to start drawing.
 
+WindowClearBackground (const ::Color &color=BLACK)
 Clear window with given color.
 
+WindowClearState (unsigned int flag)
 Clear window configuration state flags.
 
+void Close ()
 Close window and unload OpenGL context.
 
+WindowEndDrawing ()
 End canvas drawing and swap buffers (double buffering)
 
+int GetFPS () const
 Returns current FPS.
 
+float GetFrameTime () const
 Returns time in seconds for last frame drawn.
 
+void * GetHandle () const
 Get native window handle.
 
+int GetHeight () const
 Get current screen height.
 
+inline ::Vector2 GetPosition () const
 Get window position XY on monitor.
 
+inline ::Vector2 GetScaleDPI () const
 Get window scale DPI factor.
 
+inline ::Vector2 GetSize ()
 Get the screen's width and height.
 
+double GetTime () const
 Returns elapsed time in seconds since InitWindow()
 
+int GetWidth () const
 Get current screen width.
 
+void Init (int width=800, int height=450, const std::string &title="raylib")
 
+bool IsCursorOnScreen () const
 Check if cursor is on the current screen.
 
+bool IsFocused () const
 Check if window is currently focused.
 
+bool IsFullscreen () const
 Check if window is currently fullscreen.
 
+bool IsHidden () const
 Check if window is currently hidden.
 
+bool IsMaximized () const
 Check if window is currently minimized.
 
+bool IsMinimized () const
 Check if window is currently minimized.
 
+bool IsResized () const
 Check if window has been resized last frame.
 
+bool IsState (unsigned int flag) const
 Check if one specific window flag is enabled.
 
+WindowMaximize ()
 Set window state: maximized, if resizable (only PLATFORM_DESKTOP)
 
+WindowMinimize ()
 Set window state: minimized, if resizable (only PLATFORM_DESKTOP)
 
+WindowRestore ()
 Set window state: not minimized/maximized (only PLATFORM_DESKTOP)
 
+WindowSetFullscreen (bool fullscreen)
 Set whether or not the application should be fullscreen.
 
+WindowSetIcon (const ::Image &image)
 Set icon for window.
 
+WindowSetMinSize (int width, int height)
 Set window minimum dimensions.
 
+WindowSetMonitor (int monitor)
 Set monitor for the current window.
 
+WindowSetPosition (const ::Vector2 &position)
 Set window position on screen.
 
+WindowSetPosition (int x, int y)
 Set window position on screen.
 
+WindowSetSize (const ::Vector2 &size)
 Set window dimensions.
 
+WindowSetSize (int width, int height)
 Set window dimensions.
 
+WindowSetState (unsigned int flag)
 Set window configuration state using flags.
 
+WindowSetTargetFPS (int fps)
 Set target FPS (maximum)
 
+WindowSetTitle (const std::string &title)
 Set title for window.
 
+bool ShouldClose () const
 Check if KEY_ESCAPE pressed or Close icon pressed.
 
+WindowToggleFullscreen ()
 Toggle window state: fullscreen/windowed.
 
+ + + + +

+Static Public Member Functions

+static bool IsReady ()
 Check if window has been initialized successfully.
 
+

Detailed Description

+

Window and Graphics Device Functions.

+ +

Definition at line 12 of file Window.hpp.

+
+ + + + diff --git a/raylib-cpp/docs/closed.png b/raylib-cpp/docs/closed.png new file mode 100644 index 00000000..98cc2c90 Binary files /dev/null and b/raylib-cpp/docs/closed.png differ diff --git a/raylib-cpp/docs/dir_46a2014f3a3fc25ba0ca8b5416c677d1.html b/raylib-cpp/docs/dir_46a2014f3a3fc25ba0ca8b5416c677d1.html new file mode 100644 index 00000000..854ba8db --- /dev/null +++ b/raylib-cpp/docs/dir_46a2014f3a3fc25ba0ca8b5416c677d1.html @@ -0,0 +1,149 @@ + + + + + + + +raylib-cpp: raylib Directory Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
raylib Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  AudioDevice.hpp [code]
 
file  AudioStream.hpp [code]
 
file  BoundingBox.hpp [code]
 
file  Camera2D.hpp [code]
 
file  Camera3D.hpp [code]
 
file  Color.hpp [code]
 
file  DroppedFiles.hpp [code]
 
file  Font.hpp [code]
 
file  Gamepad.hpp [code]
 
file  Image.hpp [code]
 
file  Material.hpp [code]
 
file  Matrix.hpp [code]
 
file  Mesh.hpp [code]
 
file  Model.hpp [code]
 
file  ModelAnimation.hpp [code]
 
file  Mouse.hpp [code]
 
file  Music.hpp [code]
 
file  Physics.hpp [code]
 
file  Ray.hpp [code]
 
file  RayHitInfo.hpp [code]
 
file  raylib.hpp [code]
 
file  Rectangle.hpp [code]
 
file  RenderTexture2D.hpp [code]
 
file  Shader.hpp [code]
 
file  Sound.hpp [code]
 
file  Texture2D.hpp [code]
 
file  utils.hpp [code]
 
file  Vector2.hpp [code]
 
file  Vector3.hpp [code]
 
file  Vector4.hpp [code]
 
file  VrSimulator.hpp [code]
 
file  Wave.hpp [code]
 
file  Window.hpp [code]
 
+
+ + + + diff --git a/raylib-cpp/docs/dir_d44c64559bbebec7f509842c48db8b23.html b/raylib-cpp/docs/dir_d44c64559bbebec7f509842c48db8b23.html new file mode 100644 index 00000000..53b46320 --- /dev/null +++ b/raylib-cpp/docs/dir_d44c64559bbebec7f509842c48db8b23.html @@ -0,0 +1,82 @@ + + + + + + + +raylib-cpp: include Directory Reference + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
include Directory Reference
+
+
+
+ + + + diff --git a/raylib-cpp/docs/doc.png b/raylib-cpp/docs/doc.png new file mode 100644 index 00000000..17edabff Binary files /dev/null and b/raylib-cpp/docs/doc.png differ diff --git a/raylib-cpp/docs/doxygen.css b/raylib-cpp/docs/doxygen.css new file mode 100644 index 00000000..73ecbb2c --- /dev/null +++ b/raylib-cpp/docs/doxygen.css @@ -0,0 +1,1771 @@ +/* The standard CSS for doxygen 1.8.17 */ + +body, table, div, p, dl { + font: 400 14px/22px Roboto,sans-serif; +} + +p.reference, p.definition { + font: 400 14px/22px Roboto,sans-serif; +} + +/* @group Heading Levels */ + +h1.groupheader { + font-size: 150%; +} + +.title { + font: 400 14px/28px Roboto,sans-serif; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2.groupheader { + border-bottom: 1px solid #879ECB; + color: #354C7B; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +th p.starttd, p.intertd, p.endtd { + font-size: 100%; + font-weight: 700; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.qindex, div.navtab{ + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #3D578C; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4665A2; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #9CAFD4; + color: #FFFFFF; + border: 1px double #869DCA; +} + +.contents a.qindexHL:visited { + color: #FFFFFF; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +ul { + overflow: hidden; /*Fixed: list item bullets overlap floating elements*/ +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ + overflow-y: hidden; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ + margin: 4px 8px 4px 2px; + background-color: #FBFCFD; + border: 1px solid #C4CFE5; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.ah, span.ah { + background-color: black; + font-weight: bold; + color: #FFFFFF; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C4CFE5; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C4CFE5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EEF1F7; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl, img.inline { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9CAFD4; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +blockquote.DocNodeRTL { + border-left: 0; + border-right: 2px solid #9CAFD4; + margin: 0 4px 0 24px; + padding: 0 16px 0 12px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4A6AAA; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #DEE4F0; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight, .memTemplItemRight { + width: 100%; +} + +.memTemplParams { + color: #4665A2; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: url('nav_f.png'); + background-repeat: repeat-x; + background-color: #E2E8F2; + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-color: #DFE5F1; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + +} + +.overload { + font-family: "courier new",courier,monospace; + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 10px 2px 10px; + background-color: #FBFCFD; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #728DC1; + border-top:1px solid #5373B4; + border-left:1px solid #5373B4; + border-right:1px solid #C4CFE5; + border-bottom:1px solid #C4CFE5; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #9CAFD4; + border-bottom: 1px solid #9CAFD4; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #F7F8FB; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #3D578C; +} + +.arrow { + color: #9CAFD4; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: Arial, Helvetica; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: #728DC1; + color: white; + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderopen.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderclosed.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('doc.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +table.directory { + font: 400 14px Roboto,sans-serif; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #2A3D61; +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + /*width: 100%;*/ + margin-bottom: 10px; + border: 1px solid #A8B8D9; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A8B8D9; + /*width: 100%;*/ +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + font-size: 90%; + color: #253555; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A8B8D9; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#8AA0CC; + border:solid 1px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#364D7C; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #283A5D; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color:#6884BD; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#364D7C; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C4CFE5; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; +} + +dl { + padding: 0 0 0 0; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ +dl.section { + margin-left: 0px; + padding-left: 0px; +} + +dl.section.DocNodeRTL { + margin-right: 0px; + padding-right: 0px; +} + +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; +} + +dl.note.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; +} + +dl.warning.DocNodeRTL, dl.attention.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00D000; +} + +dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00D000; +} + +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.deprecated.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.todo.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.test.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +dl.bug.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #90A5CE; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#334975; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; +} + +dl.citelist dd { + margin:2px 0; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D8DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +.PageDocRTL-title div.toc { + float: left !important; + text-align: right; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +.PageDocRTL-title div.toc li { + background-position-x: right !important; + padding-left: 0 !important; + padding-right: 10px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4665A2; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +.PageDocRTL-title div.toc li.level1 { + margin-left: 0 !important; + margin-right: 0; +} + +.PageDocRTL-title div.toc li.level2 { + margin-left: 0 !important; + margin-right: 15px; +} + +.PageDocRTL-title div.toc li.level3 { + margin-left: 0 !important; + margin-right: 30px; +} + +.PageDocRTL-title div.toc li.level4 { + margin-left: 0 !important; + margin-right: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + white-space: nowrap; + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: grey; + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: #006318; +} + +#powerTip div { + margin: 0px; + padding: 0px; + font: 12px/16px Roboto,sans-serif; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: #FFFFFF; + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before { + border-top-color: #808080; + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: #FFFFFF; + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: #808080; + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: #FFFFFF; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: #FFFFFF; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @group Markdown */ + +/* +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.markdownTableHead tr { +} + +table.markdownTableBodyLeft td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +th.markdownTableHeadLeft th.markdownTableHeadRight th.markdownTableHeadCenter th.markdownTableHeadNone { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft { + text-align: left +} + +th.markdownTableHeadRight { + text-align: right +} + +th.markdownTableHeadCenter { + text-align: center +} +*/ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +.DocNodeRTL { + text-align: right; + direction: rtl; +} + +.DocNodeLTR { + text-align: left; + direction: ltr; +} + +table.DocNodeRTL { + width: auto; + margin-right: 0; + margin-left: auto; +} + +table.DocNodeLTR { + width: auto; + margin-right: auto; + margin-left: 0; +} + +tt, code, kbd, samp +{ + display: inline-block; + direction:ltr; +} +/* @end */ + +u { + text-decoration: underline; +} + diff --git a/raylib-cpp/docs/doxygen.png b/raylib-cpp/docs/doxygen.png new file mode 100644 index 00000000..3ff17d80 Binary files /dev/null and b/raylib-cpp/docs/doxygen.png differ diff --git a/raylib-cpp/docs/dynsections.js b/raylib-cpp/docs/dynsections.js new file mode 100644 index 00000000..c8e84aaa --- /dev/null +++ b/raylib-cpp/docs/dynsections.js @@ -0,0 +1,127 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2017 by Dimitri van Heesch + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + @licend The above is the entire license notice + for the JavaScript code in this file + */ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l + + + + + + +raylib-cpp: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- a -

+
+ + + + diff --git a/raylib-cpp/docs/functions_0x7e.html b/raylib-cpp/docs/functions_0x7e.html new file mode 100644 index 00000000..b3152682 --- /dev/null +++ b/raylib-cpp/docs/functions_0x7e.html @@ -0,0 +1,129 @@ + + + + + + + +raylib-cpp: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all class members with links to the classes they belong to:
+ +

- ~ -

+
+ + + + diff --git a/raylib-cpp/docs/functions_b.html b/raylib-cpp/docs/functions_b.html new file mode 100644 index 00000000..ddbd40c0 --- /dev/null +++ b/raylib-cpp/docs/functions_b.html @@ -0,0 +1,94 @@ + + + + + + + +raylib-cpp: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- b -

+
+ + + + diff --git a/raylib-cpp/docs/functions_c.html b/raylib-cpp/docs/functions_c.html new file mode 100644 index 00000000..aa9d6efa --- /dev/null +++ b/raylib-cpp/docs/functions_c.html @@ -0,0 +1,152 @@ + + + + + + + +raylib-cpp: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- c -

+
+ + + + diff --git a/raylib-cpp/docs/functions_d.html b/raylib-cpp/docs/functions_d.html new file mode 100644 index 00000000..e238b788 --- /dev/null +++ b/raylib-cpp/docs/functions_d.html @@ -0,0 +1,116 @@ + + + + + + + +raylib-cpp: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- d -

+
+ + + + diff --git a/raylib-cpp/docs/functions_e.html b/raylib-cpp/docs/functions_e.html new file mode 100644 index 00000000..d2b3beb9 --- /dev/null +++ b/raylib-cpp/docs/functions_e.html @@ -0,0 +1,96 @@ + + + + + + + +raylib-cpp: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- e -

+
+ + + + diff --git a/raylib-cpp/docs/functions_f.html b/raylib-cpp/docs/functions_f.html new file mode 100644 index 00000000..6063c0e1 --- /dev/null +++ b/raylib-cpp/docs/functions_f.html @@ -0,0 +1,97 @@ + + + + + + + +raylib-cpp: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- f -

+
+ + + + diff --git a/raylib-cpp/docs/functions_func.html b/raylib-cpp/docs/functions_func.html new file mode 100644 index 00000000..bd317044 --- /dev/null +++ b/raylib-cpp/docs/functions_func.html @@ -0,0 +1,102 @@ + + + + + + + +raylib-cpp: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- a -

+
+ + + + diff --git a/raylib-cpp/docs/functions_func_0x7e.html b/raylib-cpp/docs/functions_func_0x7e.html new file mode 100644 index 00000000..3563190c --- /dev/null +++ b/raylib-cpp/docs/functions_func_0x7e.html @@ -0,0 +1,129 @@ + + + + + + + +raylib-cpp: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- ~ -

+
+ + + + diff --git a/raylib-cpp/docs/functions_func_b.html b/raylib-cpp/docs/functions_func_b.html new file mode 100644 index 00000000..4f41903c --- /dev/null +++ b/raylib-cpp/docs/functions_func_b.html @@ -0,0 +1,94 @@ + + + + + + + +raylib-cpp: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- b -

+
+ + + + diff --git a/raylib-cpp/docs/functions_func_c.html b/raylib-cpp/docs/functions_func_c.html new file mode 100644 index 00000000..28fa7cc6 --- /dev/null +++ b/raylib-cpp/docs/functions_func_c.html @@ -0,0 +1,152 @@ + + + + + + + +raylib-cpp: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- c -

+
+ + + + diff --git a/raylib-cpp/docs/functions_func_d.html b/raylib-cpp/docs/functions_func_d.html new file mode 100644 index 00000000..8d84a0eb --- /dev/null +++ b/raylib-cpp/docs/functions_func_d.html @@ -0,0 +1,116 @@ + + + + + + + +raylib-cpp: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- d -

+
+ + + + diff --git a/raylib-cpp/docs/functions_func_e.html b/raylib-cpp/docs/functions_func_e.html new file mode 100644 index 00000000..275a462c --- /dev/null +++ b/raylib-cpp/docs/functions_func_e.html @@ -0,0 +1,96 @@ + + + + + + + +raylib-cpp: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- e -

+
+ + + + diff --git a/raylib-cpp/docs/functions_func_f.html b/raylib-cpp/docs/functions_func_f.html new file mode 100644 index 00000000..7c48bd6f --- /dev/null +++ b/raylib-cpp/docs/functions_func_f.html @@ -0,0 +1,97 @@ + + + + + + + +raylib-cpp: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- f -

+
+ + + + diff --git a/raylib-cpp/docs/functions_func_g.html b/raylib-cpp/docs/functions_func_g.html new file mode 100644 index 00000000..7931da35 --- /dev/null +++ b/raylib-cpp/docs/functions_func_g.html @@ -0,0 +1,473 @@ + + + + + + + +raylib-cpp: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- g -

+
+ + + + diff --git a/raylib-cpp/docs/functions_func_h.html b/raylib-cpp/docs/functions_func_h.html new file mode 100644 index 00000000..6f7a468c --- /dev/null +++ b/raylib-cpp/docs/functions_func_h.html @@ -0,0 +1,84 @@ + + + + + + + +raylib-cpp: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- h -

+
+ + + + diff --git a/raylib-cpp/docs/functions_func_i.html b/raylib-cpp/docs/functions_func_i.html new file mode 100644 index 00000000..be6d4e1c --- /dev/null +++ b/raylib-cpp/docs/functions_func_i.html @@ -0,0 +1,148 @@ + + + + + + + +raylib-cpp: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- i -

+
+ + + + diff --git a/raylib-cpp/docs/functions_func_k.html b/raylib-cpp/docs/functions_func_k.html new file mode 100644 index 00000000..14311813 --- /dev/null +++ b/raylib-cpp/docs/functions_func_k.html @@ -0,0 +1,81 @@ + + + + + + + +raylib-cpp: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- k -

+
+ + + + diff --git a/raylib-cpp/docs/functions_func_l.html b/raylib-cpp/docs/functions_func_l.html new file mode 100644 index 00000000..505a4012 --- /dev/null +++ b/raylib-cpp/docs/functions_func_l.html @@ -0,0 +1,127 @@ + + + + + + + +raylib-cpp: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- l -

+
+ + + + diff --git a/raylib-cpp/docs/functions_func_m.html b/raylib-cpp/docs/functions_func_m.html new file mode 100644 index 00000000..440337a6 --- /dev/null +++ b/raylib-cpp/docs/functions_func_m.html @@ -0,0 +1,99 @@ + + + + + + + +raylib-cpp: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- m -

+
+ + + + diff --git a/raylib-cpp/docs/functions_func_n.html b/raylib-cpp/docs/functions_func_n.html new file mode 100644 index 00000000..98996f7b --- /dev/null +++ b/raylib-cpp/docs/functions_func_n.html @@ -0,0 +1,82 @@ + + + + + + + +raylib-cpp: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- n -

+
+ + + + diff --git a/raylib-cpp/docs/functions_func_o.html b/raylib-cpp/docs/functions_func_o.html new file mode 100644 index 00000000..17c08156 --- /dev/null +++ b/raylib-cpp/docs/functions_func_o.html @@ -0,0 +1,105 @@ + + + + + + + +raylib-cpp: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- o -

+
+ + + + diff --git a/raylib-cpp/docs/functions_func_p.html b/raylib-cpp/docs/functions_func_p.html new file mode 100644 index 00000000..1e9ad84b --- /dev/null +++ b/raylib-cpp/docs/functions_func_p.html @@ -0,0 +1,100 @@ + + + + + + + +raylib-cpp: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- p -

+
+ + + + diff --git a/raylib-cpp/docs/functions_func_r.html b/raylib-cpp/docs/functions_func_r.html new file mode 100644 index 00000000..2b43a067 --- /dev/null +++ b/raylib-cpp/docs/functions_func_r.html @@ -0,0 +1,110 @@ + + + + + + + +raylib-cpp: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- r -

+
+ + + + diff --git a/raylib-cpp/docs/functions_func_s.html b/raylib-cpp/docs/functions_func_s.html new file mode 100644 index 00000000..6f1a43ad --- /dev/null +++ b/raylib-cpp/docs/functions_func_s.html @@ -0,0 +1,457 @@ + + + + + + + +raylib-cpp: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- s -

+
+ + + + diff --git a/raylib-cpp/docs/functions_func_t.html b/raylib-cpp/docs/functions_func_t.html new file mode 100644 index 00000000..6f4cc1d5 --- /dev/null +++ b/raylib-cpp/docs/functions_func_t.html @@ -0,0 +1,105 @@ + + + + + + + +raylib-cpp: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- t -

+
+ + + + diff --git a/raylib-cpp/docs/functions_func_u.html b/raylib-cpp/docs/functions_func_u.html new file mode 100644 index 00000000..48d90ee3 --- /dev/null +++ b/raylib-cpp/docs/functions_func_u.html @@ -0,0 +1,122 @@ + + + + + + + +raylib-cpp: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- u -

+
+ + + + diff --git a/raylib-cpp/docs/functions_func_v.html b/raylib-cpp/docs/functions_func_v.html new file mode 100644 index 00000000..c89b477e --- /dev/null +++ b/raylib-cpp/docs/functions_func_v.html @@ -0,0 +1,93 @@ + + + + + + + +raylib-cpp: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- v -

+
+ + + + diff --git a/raylib-cpp/docs/functions_func_w.html b/raylib-cpp/docs/functions_func_w.html new file mode 100644 index 00000000..e2caa47e --- /dev/null +++ b/raylib-cpp/docs/functions_func_w.html @@ -0,0 +1,87 @@ + + + + + + + +raylib-cpp: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- w -

+
+ + + + diff --git a/raylib-cpp/docs/functions_func_y.html b/raylib-cpp/docs/functions_func_y.html new file mode 100644 index 00000000..e7ddf029 --- /dev/null +++ b/raylib-cpp/docs/functions_func_y.html @@ -0,0 +1,81 @@ + + + + + + + +raylib-cpp: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- y -

+
+ + + + diff --git a/raylib-cpp/docs/functions_func_z.html b/raylib-cpp/docs/functions_func_z.html new file mode 100644 index 00000000..0fd46504 --- /dev/null +++ b/raylib-cpp/docs/functions_func_z.html @@ -0,0 +1,81 @@ + + + + + + + +raylib-cpp: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- z -

+
+ + + + diff --git a/raylib-cpp/docs/functions_func_~.html b/raylib-cpp/docs/functions_func_~.html new file mode 100644 index 00000000..ffe1f631 --- /dev/null +++ b/raylib-cpp/docs/functions_func_~.html @@ -0,0 +1,93 @@ + + + + + + + +raylib-cpp: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- ~ -

+
+ + + + diff --git a/raylib-cpp/docs/functions_g.html b/raylib-cpp/docs/functions_g.html new file mode 100644 index 00000000..5fa1ae1d --- /dev/null +++ b/raylib-cpp/docs/functions_g.html @@ -0,0 +1,473 @@ + + + + + + + +raylib-cpp: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- g -

+
+ + + + diff --git a/raylib-cpp/docs/functions_h.html b/raylib-cpp/docs/functions_h.html new file mode 100644 index 00000000..4f72c921 --- /dev/null +++ b/raylib-cpp/docs/functions_h.html @@ -0,0 +1,84 @@ + + + + + + + +raylib-cpp: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- h -

+
+ + + + diff --git a/raylib-cpp/docs/functions_i.html b/raylib-cpp/docs/functions_i.html new file mode 100644 index 00000000..d0b6a416 --- /dev/null +++ b/raylib-cpp/docs/functions_i.html @@ -0,0 +1,148 @@ + + + + + + + +raylib-cpp: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- i -

+
+ + + + diff --git a/raylib-cpp/docs/functions_k.html b/raylib-cpp/docs/functions_k.html new file mode 100644 index 00000000..abc5a48d --- /dev/null +++ b/raylib-cpp/docs/functions_k.html @@ -0,0 +1,81 @@ + + + + + + + +raylib-cpp: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- k -

+
+ + + + diff --git a/raylib-cpp/docs/functions_l.html b/raylib-cpp/docs/functions_l.html new file mode 100644 index 00000000..66bfb120 --- /dev/null +++ b/raylib-cpp/docs/functions_l.html @@ -0,0 +1,127 @@ + + + + + + + +raylib-cpp: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- l -

+
+ + + + diff --git a/raylib-cpp/docs/functions_m.html b/raylib-cpp/docs/functions_m.html new file mode 100644 index 00000000..d08c3db9 --- /dev/null +++ b/raylib-cpp/docs/functions_m.html @@ -0,0 +1,99 @@ + + + + + + + +raylib-cpp: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- m -

+
+ + + + diff --git a/raylib-cpp/docs/functions_n.html b/raylib-cpp/docs/functions_n.html new file mode 100644 index 00000000..333b7742 --- /dev/null +++ b/raylib-cpp/docs/functions_n.html @@ -0,0 +1,82 @@ + + + + + + + +raylib-cpp: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- n -

+
+ + + + diff --git a/raylib-cpp/docs/functions_o.html b/raylib-cpp/docs/functions_o.html new file mode 100644 index 00000000..37c3a254 --- /dev/null +++ b/raylib-cpp/docs/functions_o.html @@ -0,0 +1,105 @@ + + + + + + + +raylib-cpp: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- o -

+
+ + + + diff --git a/raylib-cpp/docs/functions_p.html b/raylib-cpp/docs/functions_p.html new file mode 100644 index 00000000..e7114706 --- /dev/null +++ b/raylib-cpp/docs/functions_p.html @@ -0,0 +1,100 @@ + + + + + + + +raylib-cpp: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- p -

+
+ + + + diff --git a/raylib-cpp/docs/functions_r.html b/raylib-cpp/docs/functions_r.html new file mode 100644 index 00000000..6ddc14c9 --- /dev/null +++ b/raylib-cpp/docs/functions_r.html @@ -0,0 +1,110 @@ + + + + + + + +raylib-cpp: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- r -

+
+ + + + diff --git a/raylib-cpp/docs/functions_s.html b/raylib-cpp/docs/functions_s.html new file mode 100644 index 00000000..27b6e8ee --- /dev/null +++ b/raylib-cpp/docs/functions_s.html @@ -0,0 +1,457 @@ + + + + + + + +raylib-cpp: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- s -

+
+ + + + diff --git a/raylib-cpp/docs/functions_t.html b/raylib-cpp/docs/functions_t.html new file mode 100644 index 00000000..d2676d91 --- /dev/null +++ b/raylib-cpp/docs/functions_t.html @@ -0,0 +1,105 @@ + + + + + + + +raylib-cpp: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- t -

+
+ + + + diff --git a/raylib-cpp/docs/functions_u.html b/raylib-cpp/docs/functions_u.html new file mode 100644 index 00000000..c239ef49 --- /dev/null +++ b/raylib-cpp/docs/functions_u.html @@ -0,0 +1,122 @@ + + + + + + + +raylib-cpp: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- u -

+
+ + + + diff --git a/raylib-cpp/docs/functions_v.html b/raylib-cpp/docs/functions_v.html new file mode 100644 index 00000000..37de7bfd --- /dev/null +++ b/raylib-cpp/docs/functions_v.html @@ -0,0 +1,93 @@ + + + + + + + +raylib-cpp: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all class members with links to the classes they belong to:
+ +

- v -

+
+ + + + diff --git a/raylib-cpp/docs/functions_vars.html b/raylib-cpp/docs/functions_vars.html new file mode 100644 index 00000000..efa987ad --- /dev/null +++ b/raylib-cpp/docs/functions_vars.html @@ -0,0 +1,79 @@ + + + + + + + +raylib-cpp: Class Members - Variables + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+ + + + diff --git a/raylib-cpp/docs/functions_w.html b/raylib-cpp/docs/functions_w.html new file mode 100644 index 00000000..18e8bc2e --- /dev/null +++ b/raylib-cpp/docs/functions_w.html @@ -0,0 +1,87 @@ + + + + + + + +raylib-cpp: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- w -

+
+ + + + diff --git a/raylib-cpp/docs/functions_y.html b/raylib-cpp/docs/functions_y.html new file mode 100644 index 00000000..c34909f6 --- /dev/null +++ b/raylib-cpp/docs/functions_y.html @@ -0,0 +1,81 @@ + + + + + + + +raylib-cpp: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all class members with links to the classes they belong to:
+ +

- y -

+
+ + + + diff --git a/raylib-cpp/docs/functions_z.html b/raylib-cpp/docs/functions_z.html new file mode 100644 index 00000000..d8584147 --- /dev/null +++ b/raylib-cpp/docs/functions_z.html @@ -0,0 +1,81 @@ + + + + + + + +raylib-cpp: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- z -

+
+ + + + diff --git a/raylib-cpp/docs/functions_~.html b/raylib-cpp/docs/functions_~.html new file mode 100644 index 00000000..937d0cc5 --- /dev/null +++ b/raylib-cpp/docs/functions_~.html @@ -0,0 +1,93 @@ + + + + + + + +raylib-cpp: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- ~ -

+
+ + + + diff --git a/raylib-cpp/docs/hierarchy.html b/raylib-cpp/docs/hierarchy.html new file mode 100644 index 00000000..de51bf98 --- /dev/null +++ b/raylib-cpp/docs/hierarchy.html @@ -0,0 +1,136 @@ + + + + + + + +raylib-cpp: Class Hierarchy + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
Class Hierarchy
+
+
+
This inheritance list is sorted roughly, but not completely, alphabetically:
+
[detail level 12]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 Craylib::AudioDeviceAudio device management functions
 CAudioStream
 Craylib::AudioStreamAudioStream management functions
 CBoundingBox
 Craylib::BoundingBoxBounding box type
 CCamera2D
 Craylib::Camera2D
 CCamera3D
 Craylib::Camera3D
 CColor
 Craylib::Color
 CFont
 Craylib::Font
 Craylib::Gamepad
 CImage
 Craylib::Image
 CMaterial
 Craylib::Material
 CMatrix
 Craylib::Matrix
 CMesh
 Craylib::Mesh
 CModel
 Craylib::Model
 CModelAnimation
 Craylib::ModelAnimationModel animation
 Craylib::MouseInput-related functions: mouse
 CMusic
 Craylib::Music
 Craylib::Physics
 CRay
 Craylib::RayRay type (useful for raycast)
 CRayHitInfo
 Craylib::RayHitInfoRaycast hit information
 CRectangle
 Craylib::Rectangle
 CRenderTexture
 Craylib::RenderTexture
 CShader
 Craylib::Shader
 CSound
 Craylib::SoundWave/Sound management functions
 CTexture
 Craylib::Texture
 CVector2
 Craylib::Vector2
 CVector3
 Craylib::Vector3
 CVector4
 Craylib::Vector4
 Craylib::VrSimulator
 CWave
 Craylib::Wave
 Craylib::WindowWindow and Graphics Device Functions
+
+
+ + + + diff --git a/raylib-cpp/docs/index.html b/raylib-cpp/docs/index.html new file mode 100644 index 00000000..c18444e3 --- /dev/null +++ b/raylib-cpp/docs/index.html @@ -0,0 +1,148 @@ + + + + + + + +raylib-cpp: raylib-cpp + + + + + + + + + +
+
+ + + + + + + +
+
raylib-cpp +
+
C++ object-oriented wrapper library for raylib.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
raylib-cpp
+
+
+

raylib-cpp is a C++ wrapper library for raylib, a simple and easy-to-use library to enjoy videogames programming. This C++ header provides object-oriented wrappers around raylib's struct interfaces.

+
See also
raylib namespace for a list of all available classes.
+
/*******************************************************************************************
+
*
+
* raylib [core] example - Basic window
+
*
+
* Welcome to raylib!
+
*
+
* To test examples, just press F6 and execute raylib_compile_execute script
+
* Note that compiled executable is placed in the same folder as .c file
+
*
+
* You can find all basic examples on C:\raylib\raylib\examples folder or
+
* raylib official webpage: www.raylib.com
+
*
+
* Enjoy using raylib. :)
+
*
+
* This example has been created using raylib 1.0 (www.raylib.com)
+
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
+
*
+
* Copyright (c) 2014 Ramon Santamaria (@raysan5)
+
*
+
********************************************************************************************/
+
+
#include "raylib-cpp.hpp"
+
+
int main() {
+
// Initialization
+
//--------------------------------------------------------------------------------------
+
int screenWidth = 800;
+
int screenHeight = 450;
+
raylib::Color textColor = raylib::Color::LightGray();
+
raylib::Window window(screenWidth, screenHeight, "raylib [core] example - basic window");
+
+
SetTargetFPS(60);
+
//--------------------------------------------------------------------------------------
+
+
// Main game loop
+
while (!window.ShouldClose()) { // Detect window close button or ESC key
+
// Update
+
//----------------------------------------------------------------------------------
+
// TODO: Update your variables here
+
//----------------------------------------------------------------------------------
+
+
// Draw
+
//----------------------------------------------------------------------------------
+
BeginDrawing();
+
{
+
window.ClearBackground(RAYWHITE);
+
textColor.DrawText("Congrats! You created your first window!", 190, 200, 20);
+
}
+
EndDrawing();
+
//----------------------------------------------------------------------------------
+
}
+
+
return 0;
+
}
+
Author
Rob Loach (RobLoach)
+ +

raylib-cpp is licensed under an unmodified zlib/libpng license, which is an OSI-certified, BSD-like license that allows static linking with closed source software:

+

Copyright 2020 Rob Loach (RobLoach)

+

This software is provided "as-is", without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.

+

Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:

+
    +
  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
  2. +
  3. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
  4. +
  5. This notice may not be removed or altered from any source distribution.
  6. +
+
+
+
Color type, RGBA (32bit)
Definition: Color.hpp:14
+
Window and Graphics Device Functions.
Definition: Window.hpp:12
+ + + + diff --git a/raylib-cpp/docs/jquery.js b/raylib-cpp/docs/jquery.js new file mode 100644 index 00000000..103c32d7 --- /dev/null +++ b/raylib-cpp/docs/jquery.js @@ -0,0 +1,35 @@ +/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element +},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/** + * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler + * Licensed under MIT + * @author Ariel Flesler + * @version 2.1.2 + */ +;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/raylib-cpp/docs/menu.js b/raylib-cpp/docs/menu.js new file mode 100644 index 00000000..433c15b8 --- /dev/null +++ b/raylib-cpp/docs/menu.js @@ -0,0 +1,50 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2017 by Dimitri van Heesch + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + @licend The above is the entire license notice + for the JavaScript code in this file + */ +function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { + function makeTree(data,relPath) { + var result=''; + if ('children' in data) { + result+=''; + } + return result; + } + + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + if (searchEnabled) { + if (serverSide) { + $('#main-menu').append('
  • '); + } else { + $('#main-menu').append('
  • '); + } + } + $('#main-menu').smartmenus(); +} +/* @license-end */ diff --git a/raylib-cpp/docs/menudata.js b/raylib-cpp/docs/menudata.js new file mode 100644 index 00000000..b1a75277 --- /dev/null +++ b/raylib-cpp/docs/menudata.js @@ -0,0 +1,103 @@ +/* +@licstart The following is the entire license notice for the +JavaScript code in this file. + +Copyright (C) 1997-2019 by Dimitri van Heesch + +This program is free software; you can redistribute it and/or modify +it under the terms of version 2 of the GNU General Public License as published by +the Free Software Foundation + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +@licend The above is the entire license notice +for the JavaScript code in this file +*/ +var menudata={children:[ +{text:"Main Page",url:"index.html"}, +{text:"Namespaces",url:"namespaces.html",children:[ +{text:"Namespace List",url:"namespaces.html"}, +{text:"Namespace Members",url:"namespacemembers.html",children:[ +{text:"All",url:"namespacemembers.html",children:[ +{text:"c",url:"namespacemembers.html#index_c"}, +{text:"d",url:"namespacemembers.html#index_d"}, +{text:"e",url:"namespacemembers.html#index_e"}, +{text:"f",url:"namespacemembers.html#index_f"}, +{text:"g",url:"namespacemembers.html#index_g"}, +{text:"i",url:"namespacemembers.html#index_i"}, +{text:"l",url:"namespacemembers.html#index_l"}, +{text:"m",url:"namespacemembers.html#index_m"}, +{text:"o",url:"namespacemembers.html#index_o"}, +{text:"s",url:"namespacemembers.html#index_s"}, +{text:"t",url:"namespacemembers.html#index_t"}, +{text:"u",url:"namespacemembers.html#index_u"}]}, +{text:"Functions",url:"namespacemembers_func.html",children:[ +{text:"c",url:"namespacemembers_func.html#index_c"}, +{text:"d",url:"namespacemembers_func.html#index_d"}, +{text:"e",url:"namespacemembers_func.html#index_e"}, +{text:"f",url:"namespacemembers_func.html#index_f"}, +{text:"g",url:"namespacemembers_func.html#index_g"}, +{text:"i",url:"namespacemembers_func.html#index_i"}, +{text:"l",url:"namespacemembers_func.html#index_l"}, +{text:"m",url:"namespacemembers_func.html#index_m"}, +{text:"o",url:"namespacemembers_func.html#index_o"}, +{text:"s",url:"namespacemembers_func.html#index_s"}, +{text:"t",url:"namespacemembers_func.html#index_t"}, +{text:"u",url:"namespacemembers_func.html#index_u"}]}]}]}, +{text:"Classes",url:"annotated.html",children:[ +{text:"Class List",url:"annotated.html"}, +{text:"Class Index",url:"classes.html"}, +{text:"Class Members",url:"functions.html",children:[ +{text:"All",url:"functions.html",children:[ +{text:"a",url:"functions.html#index_a"}, +{text:"b",url:"functions_b.html#index_b"}, +{text:"c",url:"functions_c.html#index_c"}, +{text:"d",url:"functions_d.html#index_d"}, +{text:"e",url:"functions_e.html#index_e"}, +{text:"f",url:"functions_f.html#index_f"}, +{text:"g",url:"functions_g.html#index_g"}, +{text:"h",url:"functions_h.html#index_h"}, +{text:"i",url:"functions_i.html#index_i"}, +{text:"k",url:"functions_k.html#index_k"}, +{text:"l",url:"functions_l.html#index_l"}, +{text:"m",url:"functions_m.html#index_m"}, +{text:"n",url:"functions_n.html#index_n"}, +{text:"o",url:"functions_o.html#index_o"}, +{text:"p",url:"functions_p.html#index_p"}, +{text:"r",url:"functions_r.html#index_r"}, +{text:"s",url:"functions_s.html#index_s"}, +{text:"t",url:"functions_t.html#index_t"}, +{text:"u",url:"functions_u.html#index_u"}, +{text:"w",url:"functions_w.html#index_w"}, +{text:"z",url:"functions_z.html#index_z"}, +{text:"~",url:"functions_~.html#index__7E"}]}, +{text:"Functions",url:"functions_func.html",children:[ +{text:"a",url:"functions_func.html#index_a"}, +{text:"b",url:"functions_func_b.html#index_b"}, +{text:"c",url:"functions_func_c.html#index_c"}, +{text:"d",url:"functions_func_d.html#index_d"}, +{text:"e",url:"functions_func_e.html#index_e"}, +{text:"f",url:"functions_func_f.html#index_f"}, +{text:"g",url:"functions_func_g.html#index_g"}, +{text:"h",url:"functions_func_h.html#index_h"}, +{text:"i",url:"functions_func_i.html#index_i"}, +{text:"k",url:"functions_func_k.html#index_k"}, +{text:"l",url:"functions_func_l.html#index_l"}, +{text:"m",url:"functions_func_m.html#index_m"}, +{text:"n",url:"functions_func_n.html#index_n"}, +{text:"o",url:"functions_func_o.html#index_o"}, +{text:"p",url:"functions_func_p.html#index_p"}, +{text:"r",url:"functions_func_r.html#index_r"}, +{text:"s",url:"functions_func_s.html#index_s"}, +{text:"t",url:"functions_func_t.html#index_t"}, +{text:"u",url:"functions_func_u.html#index_u"}, +{text:"w",url:"functions_func_w.html#index_w"}, +{text:"z",url:"functions_func_z.html#index_z"}, +{text:"~",url:"functions_func_~.html#index__7E"}]}]}]}]} diff --git a/raylib-cpp/docs/namespacemembers.html b/raylib-cpp/docs/namespacemembers.html new file mode 100644 index 00000000..6248a941 --- /dev/null +++ b/raylib-cpp/docs/namespacemembers.html @@ -0,0 +1,224 @@ + + + + + + + +raylib-cpp: Namespace Members + + + + + + + + + +
    +
    + + + + + + + +
    +
    raylib-cpp +
    +
    C++ object-oriented wrapper library for raylib.
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - c -

      +
    • ChangeDirectory() +: raylib +
    • +
    + + +

    - d -

    + + +

    - e -

      +
    • ExportImage() +: raylib +
    • +
    • ExportImageAsCode() +: raylib +
    • +
    + + +

    - f -

    + + +

    - g -

      +
    • GetClipboardText() +: raylib +
    • +
    • GetDirectoryFiles() +: raylib +
    • +
    • GetDirectoryPath() +: raylib +
    • +
    • GetDroppedFiles() +: raylib +
    • +
    • GetFileExtension() +: raylib +
    • +
    • GetFileModTime() +: raylib +
    • +
    • GetFileName() +: raylib +
    • +
    • GetFileNameWithoutExt() +: raylib +
    • +
    • GetMonitorName() +: raylib +
    • +
    • GetPrevDirectoryPath() +: raylib +
    • +
    • GetWorkingDirectory() +: raylib +
    • +
    + + +

    - i -

    + + +

    - l -

    + + +

    - m -

    + + +

    - o -

    + + +

    - s -

      +
    • SaveFileText() +: raylib +
    • +
    • SetClipboardText() +: raylib +
    • +
    • SetWindowTitle() +: raylib +
    • +
    + + +

    - t -

    + + +

    - u -

      +
    • UpdateCamera() +: raylib +
    • +
    +
    + + + + diff --git a/raylib-cpp/docs/namespacemembers_func.html b/raylib-cpp/docs/namespacemembers_func.html new file mode 100644 index 00000000..8f76d5e6 --- /dev/null +++ b/raylib-cpp/docs/namespacemembers_func.html @@ -0,0 +1,224 @@ + + + + + + + +raylib-cpp: Namespace Members + + + + + + + + + +
    +
    + + + + + + + +
    +
    raylib-cpp +
    +
    C++ object-oriented wrapper library for raylib.
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - c -

      +
    • ChangeDirectory() +: raylib +
    • +
    + + +

    - d -

    + + +

    - e -

      +
    • ExportImage() +: raylib +
    • +
    • ExportImageAsCode() +: raylib +
    • +
    + + +

    - f -

    + + +

    - g -

      +
    • GetClipboardText() +: raylib +
    • +
    • GetDirectoryFiles() +: raylib +
    • +
    • GetDirectoryPath() +: raylib +
    • +
    • GetDroppedFiles() +: raylib +
    • +
    • GetFileExtension() +: raylib +
    • +
    • GetFileModTime() +: raylib +
    • +
    • GetFileName() +: raylib +
    • +
    • GetFileNameWithoutExt() +: raylib +
    • +
    • GetMonitorName() +: raylib +
    • +
    • GetPrevDirectoryPath() +: raylib +
    • +
    • GetWorkingDirectory() +: raylib +
    • +
    + + +

    - i -

    + + +

    - l -

    + + +

    - m -

    + + +

    - o -

    + + +

    - s -

      +
    • SaveFileText() +: raylib +
    • +
    • SetClipboardText() +: raylib +
    • +
    • SetWindowTitle() +: raylib +
    • +
    + + +

    - t -

    + + +

    - u -

      +
    • UpdateCamera() +: raylib +
    • +
    +
    + + + + diff --git a/raylib-cpp/docs/namespacemembers_type.html b/raylib-cpp/docs/namespacemembers_type.html new file mode 100644 index 00000000..818e2285 --- /dev/null +++ b/raylib-cpp/docs/namespacemembers_type.html @@ -0,0 +1,91 @@ + + + + + + + +raylib-cpp: Namespace Members + + + + + + + + + +
    +
    + + + + + + + +
    +
    raylib-cpp +
    +
    C++ object-oriented wrapper library for raylib.
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    + + + + diff --git a/raylib-cpp/docs/namespaceraylib.html b/raylib-cpp/docs/namespaceraylib.html new file mode 100644 index 00000000..146a9eae --- /dev/null +++ b/raylib-cpp/docs/namespaceraylib.html @@ -0,0 +1,338 @@ + + + + + + + +raylib-cpp: raylib Namespace Reference + + + + + + + + + +
    +
    + + + + + + + +
    +
    raylib-cpp +
    +
    C++ object-oriented wrapper library for raylib.
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    raylib Namespace Reference
    +
    +
    + +

    All raylib-cpp classes and functions appear in the raylib namespace. +More...

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Classes

    class  AudioDevice
     Audio device management functions. More...
     
    class  AudioStream
     AudioStream management functions. More...
     
    class  BoundingBox
     Bounding box type. More...
     
    class  Camera2D
     Camera2D type, defines a 2d camera. More...
     
    class  Camera3D
     Camera type, defines a camera position/orientation in 3d space. More...
     
    class  Color
     Color type, RGBA (32bit) More...
     
    class  Font
     Font type, includes texture and charSet array data. More...
     
    class  Gamepad
     Input-related functions: gamepads. More...
     
    class  Image
     Image type, bpp always RGBA (32bit) More...
     
    class  Material
     Material type (generic) More...
     
    class  Matrix
     Matrix type (OpenGL style 4x4 - right handed, column major) More...
     
    class  Mesh
     Vertex data definning a mesh. More...
     
    class  Model
     Model type. More...
     
    class  ModelAnimation
     Model animation. More...
     
    class  Mouse
     Input-related functions: mouse. More...
     
    class  Music
     Music stream type (audio file streaming from memory) More...
     
    class  Physics
     2D Physics library for videogames More...
     
    class  Ray
     Ray type (useful for raycast) More...
     
    class  RayHitInfo
     Raycast hit information. More...
     
    class  Rectangle
     Rectangle type. More...
     
    class  RenderTexture
     RenderTexture type, for texture rendering. More...
     
    class  Shader
     Shader type (generic) More...
     
    class  Sound
     Wave/Sound management functions. More...
     
    class  Texture
     Texture type. More...
     
    class  Vector2
     Vector2 type. More...
     
    class  Vector3
     Vector3 type. More...
     
    class  Vector4
     Vector4 type. More...
     
    class  VrStereoConfig
     VR stereo config functions for VR simulator. More...
     
    class  Wave
     Wave type, defines audio wave data. More...
     
    class  Window
     Window and Graphics Device Functions. More...
     
    + + + + + + + + + + + +

    +Typedefs

    +typedef Camera3D Camera
     
    +typedef Vector4 Quaternion
     
    +typedef RenderTexture RenderTexture2D
     
    +typedef Texture Texture2D
     
    +typedef Texture TextureCubemap
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    +static bool ChangeDirectory (const std::string &dir)
     Change working directory, return true on success.
     
    +static bool DirectoryExists (const std::string &dirPath)
     Check if directory path exists.
     
    +static void DrawText (const std::string &title, int posX, int posY, int fontSize, ::Color color)
     Draw text (using default font)
     
    +static bool ExportImage (const Image &image, const std::string &fileName)
     Export image data to file.
     
    +static bool ExportImageAsCode (const Image &image, const std::string &fileName)
     Export image as code file (.h) defining an array of bytes.
     
    +static bool FileExists (const std::string &fileName)
     Check if file exists.
     
    +static std::string GetClipboardText ()
     Get clipboard text content.
     
    +static std::vector< std::string > GetDirectoryFiles (const std::string &dirPath)
     Get filenames in a directory path.
     
    +static std::string GetDirectoryPath (const std::string &filePath)
     Get full path for a given fileName with path.
     
    +static std::vector< std::string > GetDroppedFiles ()
     Get dropped files names.
     
    +static std::string GetFileExtension (const std::string &fileName)
     Get pointer to extension for a filename string (including point: ".png")
     
    +static long GetFileModTime (const std::string &fileName)
     Get file modification time (last write time)
     
    +static std::string GetFileName (const std::string &filePath)
     Get pointer to filename for a path string.
     
    +static std::string GetFileNameWithoutExt (const std::string &filePath)
     Get filename string without extension.
     
    +static std::string GetMonitorName (int monitor=0)
     Get the human-readable, UTF-8 encoded name of the primary monitor.
     
    +static std::string GetPrevDirectoryPath (const std::string &dirPath)
     Get previous directory path for a given path.
     
    +static std::string GetWorkingDirectory ()
     Get current working directory.
     
    +static void InitWindow (int width, int height, const std::string &title="raylib")
     Initialize window and OpenGL context.
     
    +static bool IsFileExtension (const std::string &fileName, const std::string &ext)
     Check file extension (including point: .png, .wav)
     
    +static bool IsGamepadName (int gamepad, const std::string &name)
     Check gamepad name (if available)
     
    +static std::string LoadFileText (const std::string &fileName)
     Load text data from file (read)
     
    +static inline ::Image LoadImage (const std::string &fileName)
     Load an image.
     
    +static inline ::Image LoadImageAnim (const std::string &fileName, int *frames)
     Load animated image data.
     
    +static inline ::Image LoadImageFromMemory (const std::string &fileType, const unsigned char *fileData, int dataSize)
     Load image from memory buffer, fileType refers to extension like "png".
     
    +static inline ::Image LoadImageRaw (const std::string &fileName, int width, int height, int format, int headerSize)
     Load an image from RAW file data.
     
    +static int MeasureText (const std::string &text, int fontSize)
     Measure string width for default font.
     
    +static void OpenURL (const std::string &url)
     Open URL with default system browser (if available)
     
    +static bool SaveFileText (const std::string &fileName, const std::string &text)
     Save text data to file (write)
     
    +static void SetClipboardText (const std::string &text)
     Set clipboard text content.
     
    +static void SetWindowTitle (const std::string &title)
     Set title for window.
     
    +static void TakeScreenshot (const std::string &fileName)
     Takes a screenshot of current screen (saved a .png)
     
    +static bool TextIsEqual (const std::string &text1, const std::string &text2)
     Check if two text string are equal.
     
    +static unsigned int TextLength (const std::string &text)
     Check if two text string are equal.
     
    +static void UpdateCamera (const ::Camera &camera)
     Update camera depending on selected mode.
     
    +

    Detailed Description

    +

    All raylib-cpp classes and functions appear in the raylib namespace.

    +
    + + + + diff --git a/raylib-cpp/docs/namespaces.html b/raylib-cpp/docs/namespaces.html new file mode 100644 index 00000000..51d03287 --- /dev/null +++ b/raylib-cpp/docs/namespaces.html @@ -0,0 +1,83 @@ + + + + + + + +raylib-cpp: Namespace List + + + + + + + + + +
    +
    + + + + + + + +
    +
    raylib-cpp +
    +
    C++ object-oriented wrapper library for raylib.
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    Namespace List
    +
    +
    +
    Here is a list of all documented namespaces with brief descriptions:
    + + +
     NraylibAll raylib-cpp classes and functions appear in the raylib namespace
    +
    +
    + + + + diff --git a/raylib-cpp/docs/nav_f.png b/raylib-cpp/docs/nav_f.png new file mode 100644 index 00000000..72a58a52 Binary files /dev/null and b/raylib-cpp/docs/nav_f.png differ diff --git a/raylib-cpp/docs/nav_g.png b/raylib-cpp/docs/nav_g.png new file mode 100644 index 00000000..2093a237 Binary files /dev/null and b/raylib-cpp/docs/nav_g.png differ diff --git a/raylib-cpp/docs/nav_h.png b/raylib-cpp/docs/nav_h.png new file mode 100644 index 00000000..33389b10 Binary files /dev/null and b/raylib-cpp/docs/nav_h.png differ diff --git a/raylib-cpp/docs/open.png b/raylib-cpp/docs/open.png new file mode 100644 index 00000000..30f75c7e Binary files /dev/null and b/raylib-cpp/docs/open.png differ diff --git a/raylib-cpp/docs/physac_8hpp_source.html b/raylib-cpp/docs/physac_8hpp_source.html new file mode 100644 index 00000000..277614d7 --- /dev/null +++ b/raylib-cpp/docs/physac_8hpp_source.html @@ -0,0 +1,95 @@ + + + + + + + +raylib-cpp: physac.hpp Source File + + + + + + + + + +
    +
    + + + + + + + +
    +
    raylib-cpp +
    +
    C++ object-oriented wrapper library for raylib.
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    physac.hpp
    +
    +
    +
    1 
    +
    4 #ifndef RAYLIB_CPP_INCLUDE_PHYSAC_HPP_
    +
    5 #define RAYLIB_CPP_INCLUDE_PHYSAC_HPP_
    +
    6 
    +
    7 #ifdef __cplusplus
    +
    8 extern "C" {
    +
    9 #endif
    +
    10 #include "physac.h" // NOLINT
    +
    11 #ifdef __cplusplus
    +
    12 }
    +
    13 #endif
    +
    14 
    +
    15 #endif // RAYLIB_CPP_INCLUDE_PHYSAC_HPP_
    +
    + + + + diff --git a/raylib-cpp/docs/raylib-cpp-utils_8hpp_source.html b/raylib-cpp/docs/raylib-cpp-utils_8hpp_source.html new file mode 100644 index 00000000..540f95a9 --- /dev/null +++ b/raylib-cpp/docs/raylib-cpp-utils_8hpp_source.html @@ -0,0 +1,96 @@ + + + + + + + +raylib-cpp: raylib-cpp-utils.hpp Source File + + + + + + + + + +
    +
    + + + + + + + +
    +
    raylib-cpp +
    +
    C++ object-oriented wrapper library for raylib.
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    raylib-cpp-utils.hpp
    +
    +
    +
    1 
    +
    4 #ifndef RAYLIB_CPP_INCLUDE_RAYLIB_CPP_UTILS_HPP_
    +
    5 #define RAYLIB_CPP_INCLUDE_RAYLIB_CPP_UTILS_HPP_
    +
    6 
    +
    7 #ifndef GETTERSETTER
    +
    8 
    +
    15 #define GETTERSETTER(type, method, name) \
    +
    16  \
    +
    17  inline type Get##method() const { return name; } \
    +
    18  \
    +
    19  inline void Set##method(type value) { name = value; }
    +
    20 #endif
    +
    21 
    +
    22 #endif // RAYLIB_CPP_INCLUDE_RAYLIB_CPP_UTILS_HPP_
    +
    + + + + diff --git a/raylib-cpp/docs/raylib-cpp_55x55.png b/raylib-cpp/docs/raylib-cpp_55x55.png new file mode 100644 index 00000000..4631fabb Binary files /dev/null and b/raylib-cpp/docs/raylib-cpp_55x55.png differ diff --git a/raylib-cpp/docs/raylib-cpp_8hpp_source.html b/raylib-cpp/docs/raylib-cpp_8hpp_source.html new file mode 100644 index 00000000..6b760acc --- /dev/null +++ b/raylib-cpp/docs/raylib-cpp_8hpp_source.html @@ -0,0 +1,124 @@ + + + + + + + +raylib-cpp: raylib-cpp.hpp Source File + + + + + + + + + +
    +
    + + + + + + + +
    +
    raylib-cpp +
    +
    C++ object-oriented wrapper library for raylib.
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    raylib-cpp.hpp
    +
    +
    +
    1 
    +
    31 #ifndef RAYLIB_CPP_INCLUDE_RAYLIB_CPP_HPP_
    +
    32 #define RAYLIB_CPP_INCLUDE_RAYLIB_CPP_HPP_
    +
    33 
    +
    34 #include "./AudioDevice.hpp"
    +
    35 #include "./AudioStream.hpp"
    +
    36 #include "./BoundingBox.hpp"
    +
    37 #include "./Camera2D.hpp"
    +
    38 #include "./Camera3D.hpp"
    +
    39 #include "./Color.hpp"
    +
    40 #include "./Font.hpp"
    +
    41 #include "./Functions.hpp"
    +
    42 #include "./Gamepad.hpp"
    +
    43 #include "./Image.hpp"
    +
    44 #include "./Material.hpp"
    +
    45 #include "./Matrix.hpp"
    +
    46 #include "./Mesh.hpp"
    +
    47 #include "./Model.hpp"
    +
    48 #include "./ModelAnimation.hpp"
    +
    49 #include "./Mouse.hpp"
    +
    50 #include "./Music.hpp"
    +
    51 #include "./Ray.hpp"
    +
    52 #include "./RayHitInfo.hpp"
    +
    53 #include "./Rectangle.hpp"
    +
    54 #include "./RenderTexture.hpp"
    +
    55 #include "./Shader.hpp"
    +
    56 #include "./Sound.hpp"
    +
    57 #include "./Text.hpp"
    +
    58 #include "./Texture.hpp"
    +
    59 #include "./Vector2.hpp"
    +
    60 #include "./Vector3.hpp"
    +
    61 #include "./Vector4.hpp"
    +
    62 #include "./VrStereoConfig.hpp"
    +
    63 #include "./Wave.hpp"
    +
    64 #include "./Window.hpp"
    +
    65 
    +
    69 namespace raylib {
    +
    70  // Nothing.
    +
    71 } // namespace raylib
    +
    72 
    +
    73 #endif // RAYLIB_CPP_INCLUDE_RAYLIB_CPP_HPP_
    +
    +
    All raylib-cpp classes and functions appear in the raylib namespace.
    Definition: AudioDevice.hpp:7
    + + + + diff --git a/raylib-cpp/docs/raylib_8hpp_source.html b/raylib-cpp/docs/raylib_8hpp_source.html new file mode 100644 index 00000000..0450a00b --- /dev/null +++ b/raylib-cpp/docs/raylib_8hpp_source.html @@ -0,0 +1,95 @@ + + + + + + + +raylib-cpp: raylib.hpp Source File + + + + + + + + + +
    +
    + + + + + + + +
    +
    raylib-cpp +
    +
    C++ object-oriented wrapper library for raylib.
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    raylib.hpp
    +
    +
    +
    1 
    +
    4 #ifndef RAYLIB_CPP_INCLUDE_RAYLIB_HPP_
    +
    5 #define RAYLIB_CPP_INCLUDE_RAYLIB_HPP_
    +
    6 
    +
    7 #ifdef __cplusplus
    +
    8 extern "C" {
    +
    9 #endif
    +
    10 #include "raylib.h" // NOLINT
    +
    11 #ifdef __cplusplus
    +
    12 }
    +
    13 #endif
    +
    14 
    +
    15 #endif // RAYLIB_CPP_INCLUDE_RAYLIB_HPP_
    +
    + + + + diff --git a/raylib-cpp/docs/raymath_8hpp_source.html b/raylib-cpp/docs/raymath_8hpp_source.html new file mode 100644 index 00000000..406537e7 --- /dev/null +++ b/raylib-cpp/docs/raymath_8hpp_source.html @@ -0,0 +1,97 @@ + + + + + + + +raylib-cpp: raymath.hpp Source File + + + + + + + + + +
    +
    + + + + + + + +
    +
    raylib-cpp +
    +
    C++ object-oriented wrapper library for raylib.
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    raymath.hpp
    +
    +
    +
    1 
    +
    4 #ifndef RAYLIB_CPP_INCLUDE_RAYMATH_HPP_
    +
    5 #define RAYLIB_CPP_INCLUDE_RAYMATH_HPP_
    +
    6 
    +
    7 #ifdef __cplusplus
    +
    8 extern "C" {
    +
    9 #endif
    +
    10 #ifndef RAYLIB_CPP_NO_MATH
    +
    11 #include "raymath.h" // NOLINT
    +
    12 #endif
    +
    13 #ifdef __cplusplus
    +
    14 }
    +
    15 #endif
    +
    16 
    +
    17 #endif // RAYLIB_CPP_INCLUDE_RAYMATH_HPP_
    +
    + + + + diff --git a/raylib-cpp/docs/search/all_0.html b/raylib-cpp/docs/search/all_0.html new file mode 100644 index 00000000..26dd244f --- /dev/null +++ b/raylib-cpp/docs/search/all_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/all_0.js b/raylib-cpp/docs/search/all_0.js new file mode 100644 index 00000000..e80c2cde --- /dev/null +++ b/raylib-cpp/docs/search/all_0.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['alpha_0',['Alpha',['../classraylib_1_1_color.html#ad00d99cc5d6212d16e4a264bb7d984d8',1,'raylib::Color']]], + ['alphablend_1',['AlphaBlend',['../classraylib_1_1_color.html#a127c0c75e8f28b01b6861897c0c89c88',1,'raylib::Color']]], + ['alphacrop_2',['AlphaCrop',['../classraylib_1_1_image.html#a5945a136f675e024dda002075b34dfef',1,'raylib::Image']]], + ['alphamask_3',['AlphaMask',['../classraylib_1_1_image.html#a3bbcbb96834c526b6b789a804078d472',1,'raylib::Image']]], + ['alphapremultiply_4',['AlphaPremultiply',['../classraylib_1_1_image.html#ace3ef45495b17bf2e5a645931b792483',1,'raylib::Image']]], + ['angle_5',['Angle',['../classraylib_1_1_vector2.html#af912d448e687a2a39fed158b4bf18a12',1,'raylib::Vector2']]], + ['audiodevice_6',['AudioDevice',['../classraylib_1_1_audio_device.html',1,'raylib::AudioDevice'],['../classraylib_1_1_audio_device.html#ada9e1459186cb8658b28c1fbeec0f261',1,'raylib::AudioDevice::AudioDevice()']]], + ['audiostream_7',['AudioStream',['../classraylib_1_1_audio_stream.html',1,'raylib::AudioStream'],['../classraylib_1_1_audio_stream.html#a256bc095aacdf0234f5dcb6a764822be',1,'raylib::AudioStream::AudioStream()']]] +]; diff --git a/raylib-cpp/docs/search/all_1.html b/raylib-cpp/docs/search/all_1.html new file mode 100644 index 00000000..8eb215b9 --- /dev/null +++ b/raylib-cpp/docs/search/all_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/all_1.js b/raylib-cpp/docs/search/all_1.js new file mode 100644 index 00000000..89fb3134 --- /dev/null +++ b/raylib-cpp/docs/search/all_1.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['begindrawing_8',['BeginDrawing',['../classraylib_1_1_window.html#a8f2b932e51fc0ac154e2fd578691ebd6',1,'raylib::Window']]], + ['beginmode_9',['BeginMode',['../classraylib_1_1_camera3_d.html#a0aeaa99678bacc68d410a4d42e95548a',1,'raylib::Camera3D::BeginMode()'],['../classraylib_1_1_render_texture.html#a7d05e471bb2d7fc83094f7a9463d836f',1,'raylib::RenderTexture::BeginMode()'],['../classraylib_1_1_shader.html#a63311cdadb7f81791a61e2ccea33efbe',1,'raylib::Shader::BeginMode()'],['../classraylib_1_1_vr_stereo_config.html#aee11917e6f68d22e12e06a81d58ee340',1,'raylib::VrStereoConfig::BeginMode()']]], + ['binormals_10',['Binormals',['../classraylib_1_1_mesh.html#a9288f896d13ca0f5c720ea1e6ef65189',1,'raylib::Mesh']]], + ['boundingbox_11',['BoundingBox',['../classraylib_1_1_bounding_box.html',1,'raylib::BoundingBox'],['../classraylib_1_1_bounding_box.html#a8417253000c9381b4afc1869d5e3a611',1,'raylib::BoundingBox::BoundingBox()'],['../classraylib_1_1_mesh.html#a045bdf62b9676b07c5745172383802c7',1,'raylib::Mesh::BoundingBox()']]] +]; diff --git a/raylib-cpp/docs/search/all_10.html b/raylib-cpp/docs/search/all_10.html new file mode 100644 index 00000000..6fd3a4aa --- /dev/null +++ b/raylib-cpp/docs/search/all_10.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/all_10.js b/raylib-cpp/docs/search/all_10.js new file mode 100644 index 00000000..cb073b1a --- /dev/null +++ b/raylib-cpp/docs/search/all_10.js @@ -0,0 +1,122 @@ +var searchData= +[ + ['savefiletext_286',['SaveFileText',['../namespaceraylib.html#a59f827734d90fbc8993b0c4be6e73d78',1,'raylib']]], + ['seta_287',['SetA',['../classraylib_1_1_color.html#a32317cff410007a6801f59d447e5f4d6',1,'raylib::Color']]], + ['setaltcontrol_288',['SetAltControl',['../classraylib_1_1_camera3_d.html#af4494c05808722f3111c6bcb3703b662',1,'raylib::Camera3D']]], + ['setanimnormals_289',['SetAnimNormals',['../classraylib_1_1_mesh.html#aabdeb09b82063c1235407955fb927cb7',1,'raylib::Mesh']]], + ['setanimvertices_290',['SetAnimVertices',['../classraylib_1_1_mesh.html#ae929f61ce9c45e933e03d55edfbdf119',1,'raylib::Mesh']]], + ['setb_291',['SetB',['../classraylib_1_1_color.html#a2a22f079f84d9dc63a5341e40a055dc2',1,'raylib::Color']]], + ['setbasesize_292',['SetBaseSize',['../classraylib_1_1_font.html#ae649dde6d344112b02d4f560eb638f94',1,'raylib::Font']]], + ['setbindpoe_293',['SetBindPoe',['../classraylib_1_1_model.html#a10b06be8cf5d899f5c77c43468eb33d4',1,'raylib::Model']]], + ['setbonecount_294',['SetBoneCount',['../classraylib_1_1_model.html#aaa8d7b34437519af8454b5e0d7de907a',1,'raylib::Model::SetBoneCount()'],['../classraylib_1_1_model_animation.html#a6119b594cad4ead5dab370a8050c42af',1,'raylib::ModelAnimation::SetBoneCount()']]], + ['setboneids_295',['SetBoneIds',['../classraylib_1_1_mesh.html#ad8f332266326dba1562570e0b319ada5',1,'raylib::Mesh']]], + ['setbones_296',['SetBones',['../classraylib_1_1_model.html#a094bf49ad8f4233ec4d4ad8f3ea211eb',1,'raylib::Model::SetBones()'],['../classraylib_1_1_model_animation.html#ae0f66ea0263dfdad7b06bf04d5d118b3',1,'raylib::ModelAnimation::SetBones()']]], + ['setboneweights_297',['SetBoneWeights',['../classraylib_1_1_mesh.html#afb7f3408f166bed1fb79e681637b2a2c',1,'raylib::Mesh']]], + ['setbuffer_298',['SetBuffer',['../classraylib_1_1_audio_stream.html#aec6bfde9f3a07a8ec95f6533ac934f0d',1,'raylib::AudioStream']]], + ['setbuffersizedefault_299',['SetBufferSizeDefault',['../classraylib_1_1_audio_stream.html#a8a58e7e88a4fec0ce04cdc62614c5f5c',1,'raylib::AudioStream']]], + ['setchannels_300',['SetChannels',['../classraylib_1_1_audio_stream.html#aaa94380855352cfd272d32bfa63c67dc',1,'raylib::AudioStream::SetChannels()'],['../classraylib_1_1_wave.html#a8e2031312df790a9b49f4cf828fcf59c',1,'raylib::Wave::SetChannels()']]], + ['setchars_301',['SetChars',['../classraylib_1_1_font.html#ae741128d1b41a4529d4f23a6d8eea913',1,'raylib::Font']]], + ['setcharscount_302',['SetCharsCount',['../classraylib_1_1_font.html#a5b18d0dba51e54d83faf62205a6a92c6',1,'raylib::Font']]], + ['setcharspadding_303',['SetCharsPadding',['../classraylib_1_1_font.html#ac600ada80290128ea336625275d2893b',1,'raylib::Font']]], + ['setclipboardtext_304',['SetClipboardText',['../namespaceraylib.html#a908a40d71074671f52382da28aee734b',1,'raylib']]], + ['setcolors_305',['SetColors',['../classraylib_1_1_mesh.html#ac6b674c3044e9bfc0bb67aba765a47ef',1,'raylib::Mesh']]], + ['setctxdata_306',['SetCtxData',['../classraylib_1_1_music.html#a56fd8d72fd7bdc920f546d9e8da05953',1,'raylib::Music']]], + ['setctxtype_307',['SetCtxType',['../classraylib_1_1_music.html#a040d2fce2f109c952604dd909bb15fd7',1,'raylib::Music']]], + ['setdata_308',['SetData',['../classraylib_1_1_image.html#a3b92f7424fc37e4fb97d274cdc3f13f0',1,'raylib::Image::SetData()'],['../classraylib_1_1_wave.html#ae4c998bab42616a082348ee1d0062497',1,'raylib::Wave::SetData()']]], + ['setdepth_309',['SetDepth',['../classraylib_1_1_render_texture.html#ab24569c92eea7bffe99354c54ddc5235',1,'raylib::RenderTexture']]], + ['setdirection_310',['SetDirection',['../classraylib_1_1_ray.html#a118df187ddd0ad804b743aaa9532f46f',1,'raylib::Ray']]], + ['setdistance_311',['SetDistance',['../classraylib_1_1_ray_hit_info.html#a6f57d6aab046a698e12543bf018fd2c6',1,'raylib::RayHitInfo']]], + ['setfilter_312',['SetFilter',['../classraylib_1_1_texture.html#a2f15e4f84badfdb2520133b645908bb7',1,'raylib::Texture']]], + ['setformat_313',['SetFormat',['../classraylib_1_1_image.html#a4c32c43b8f88aa2ac4377dff8f16331b',1,'raylib::Image::SetFormat()'],['../classraylib_1_1_texture.html#a3efcd6e96dc5fa815d4a301432cad0d6',1,'raylib::Texture::SetFormat()']]], + ['setfovy_314',['SetFovy',['../classraylib_1_1_camera3_d.html#a763fd077ad195feb7d75ae97ec3d37e1',1,'raylib::Camera3D']]], + ['setframecount_315',['SetFrameCount',['../classraylib_1_1_model_animation.html#aedc42a2ae684a4b27d68b5100c79f361',1,'raylib::ModelAnimation']]], + ['setframeposes_316',['SetFramePoses',['../classraylib_1_1_model_animation.html#ae43fa14074f5ad5f2d288ac945e66061',1,'raylib::ModelAnimation']]], + ['setfullscreen_317',['SetFullscreen',['../classraylib_1_1_window.html#aeb4c203ec7f228bb196d7d6c3278984f',1,'raylib::Window']]], + ['setg_318',['SetG',['../classraylib_1_1_color.html#a0a6de4701e07f60c25ae4463619b4c77',1,'raylib::Color']]], + ['setheight_319',['SetHeight',['../classraylib_1_1_image.html#a499bc6b6b682ec6bb7184e53b32c8dfa',1,'raylib::Image::SetHeight()'],['../classraylib_1_1_rectangle.html#adaa2e9850498344b259f258c5879a60b',1,'raylib::Rectangle::SetHeight()'],['../classraylib_1_1_texture.html#aa535c1944927a0fc706651a2d69b04c6',1,'raylib::Texture::SetHeight()']]], + ['sethit_320',['SetHit',['../classraylib_1_1_ray_hit_info.html#a20d84afa8ada5738e1d302ea4018bca1',1,'raylib::RayHitInfo']]], + ['seticon_321',['SetIcon',['../classraylib_1_1_window.html#a5035259115c985be13b506af12b1f525',1,'raylib::Window']]], + ['setid_322',['SetId',['../classraylib_1_1_render_texture.html#a962803da3c2a50de3f4a337ebfd47fa2',1,'raylib::RenderTexture::SetId()'],['../classraylib_1_1_shader.html#ad989f72fce0403b1b01d88e1709de512',1,'raylib::Shader::SetId()'],['../classraylib_1_1_texture.html#a54089b8fa2ce1a13c0edcd4270990b1f',1,'raylib::Texture::SetId()']]], + ['setindices_323',['SetIndices',['../classraylib_1_1_mesh.html#a6197ea297eb6777acb9903c9f5a0d34a',1,'raylib::Mesh']]], + ['setlocs_324',['SetLocs',['../classraylib_1_1_shader.html#ac1ed2a53fbb669eb877c9f80ada02174',1,'raylib::Shader']]], + ['setlooping_325',['SetLooping',['../classraylib_1_1_music.html#a57eb787882e835db6f49a2354379280b',1,'raylib::Music']]], + ['setm0_326',['SetM0',['../classraylib_1_1_matrix.html#ab06885a55d9508025a06fa1eb85236ca',1,'raylib::Matrix']]], + ['setm1_327',['SetM1',['../classraylib_1_1_matrix.html#a069ec510cb062cb32ba069aee5d81905',1,'raylib::Matrix']]], + ['setm10_328',['SetM10',['../classraylib_1_1_matrix.html#a9f00f8c7c15b09882cc34ab1f3a3dea7',1,'raylib::Matrix']]], + ['setm11_329',['SetM11',['../classraylib_1_1_matrix.html#a3b7edcbfcefac3252f37657c5a9fe02b',1,'raylib::Matrix']]], + ['setm12_330',['SetM12',['../classraylib_1_1_matrix.html#aeab89067c1bd42ebc199a397c3d1326d',1,'raylib::Matrix']]], + ['setm13_331',['SetM13',['../classraylib_1_1_matrix.html#a77e33ed6159308962453f7a14d4c6f05',1,'raylib::Matrix']]], + ['setm14_332',['SetM14',['../classraylib_1_1_matrix.html#a6fa0a349ce00b2bb84394c8ac223cb27',1,'raylib::Matrix']]], + ['setm15_333',['SetM15',['../classraylib_1_1_matrix.html#aa8b769512ab1c1685d3d2cf70405c0d4',1,'raylib::Matrix']]], + ['setm2_334',['SetM2',['../classraylib_1_1_matrix.html#abb0b7df50104c3e427a8852b73467ccc',1,'raylib::Matrix']]], + ['setm3_335',['SetM3',['../classraylib_1_1_matrix.html#a820323176b4de347589f39642b86b0ca',1,'raylib::Matrix']]], + ['setm4_336',['SetM4',['../classraylib_1_1_matrix.html#ae920da976ff033bc5261c878d1d83964',1,'raylib::Matrix']]], + ['setm5_337',['SetM5',['../classraylib_1_1_matrix.html#a62fc44a64938df432cc1374f2ee18794',1,'raylib::Matrix']]], + ['setm6_338',['SetM6',['../classraylib_1_1_matrix.html#aa327bd7e7cfd33692170f55fbd396e49',1,'raylib::Matrix']]], + ['setm7_339',['SetM7',['../classraylib_1_1_matrix.html#af7f4794ad0bee252ce23b785b0ff22e1',1,'raylib::Matrix']]], + ['setm8_340',['SetM8',['../classraylib_1_1_matrix.html#a5417c6adbc0106783dd8f05a279d9c02',1,'raylib::Matrix']]], + ['setm9_341',['SetM9',['../classraylib_1_1_matrix.html#a2476f470c2462a859ea139d7013f272c',1,'raylib::Matrix']]], + ['setmaps_342',['SetMaps',['../classraylib_1_1_material.html#a629e453e6e682bde8e0a7db31dda7523',1,'raylib::Material']]], + ['setmaterial_343',['SetMaterial',['../classraylib_1_1_texture.html#a8667f5e1c478cfe06e48a1a98f3c1368',1,'raylib::Texture']]], + ['setmaterialcount_344',['SetMaterialCount',['../classraylib_1_1_model.html#a6ba6210b8a4e52cee98529f2d7b82b67',1,'raylib::Model']]], + ['setmaterials_345',['SetMaterials',['../classraylib_1_1_model.html#a9f9f5f426134239d73d681da5283dc9f',1,'raylib::Model']]], + ['setmax_346',['SetMax',['../classraylib_1_1_bounding_box.html#a6c58c71a3be8e2b821c4fb0be3b176f1',1,'raylib::BoundingBox']]], + ['setmeshcount_347',['SetMeshCount',['../classraylib_1_1_model.html#a5fbf1e02e1d0aa65d69dce2f1908d327',1,'raylib::Model']]], + ['setmeshes_348',['SetMeshes',['../classraylib_1_1_model.html#a8ed39c91c497b06b00e125348c3e77a9',1,'raylib::Model']]], + ['setmeshmaterial_349',['SetMeshMaterial',['../classraylib_1_1_model.html#a27d80234c7c1f128d9ca8faa1b2c4b73',1,'raylib::Model::SetMeshMaterial(int *value)'],['../classraylib_1_1_model.html#acb7831c2542e8e1a7b80859cc7f43aa1',1,'raylib::Model::SetMeshMaterial(int meshId, int materialId)']]], + ['setmin_350',['SetMin',['../classraylib_1_1_bounding_box.html#a57afef6e7f3e032f3d804ec228ca4ff1',1,'raylib::BoundingBox']]], + ['setminsize_351',['SetMinSize',['../classraylib_1_1_window.html#abd534b189b57a77e491bd7852c9ee3a4',1,'raylib::Window']]], + ['setmipmaps_352',['SetMipmaps',['../classraylib_1_1_image.html#a0018742a01c6a9dfa7d202a696566f27',1,'raylib::Image::SetMipmaps()'],['../classraylib_1_1_texture.html#a254383891cab574ba50751ad44e42c7f',1,'raylib::Texture::SetMipmaps()']]], + ['setmode_353',['SetMode',['../classraylib_1_1_camera3_d.html#a9a2649478bcbc00bc738112d9deacc04',1,'raylib::Camera3D']]], + ['setmonitor_354',['SetMonitor',['../classraylib_1_1_window.html#a69b43267e498bdbe64092cfb96e0e950',1,'raylib::Window']]], + ['setmovecontrols_355',['SetMoveControls',['../classraylib_1_1_camera3_d.html#a6d179e8e85e580dc9e50b6d01c99dd51',1,'raylib::Camera3D']]], + ['setnormal_356',['SetNormal',['../classraylib_1_1_ray_hit_info.html#a77b21d6aed725610c29dac7f0134859a',1,'raylib::RayHitInfo']]], + ['setnormals_357',['SetNormals',['../classraylib_1_1_mesh.html#a114396c730c79bf84e17e2b5ee668723',1,'raylib::Mesh']]], + ['setnumber_358',['SetNumber',['../classraylib_1_1_gamepad.html#aaba2aeeb551b7f4f0d6ffc147614f71b',1,'raylib::Gamepad']]], + ['setoffset_359',['SetOffset',['../classraylib_1_1_camera2_d.html#a280d095df3201cc1ff6398dc8bfe88cb',1,'raylib::Camera2D']]], + ['setpitch_360',['SetPitch',['../classraylib_1_1_audio_stream.html#a3142331c775e25f172247d86fd112207',1,'raylib::AudioStream::SetPitch()'],['../classraylib_1_1_music.html#a863348374483c4b9b01f6e2624f833e8',1,'raylib::Music::SetPitch()'],['../classraylib_1_1_sound.html#a5018b4876727080e904385ce98ee4990',1,'raylib::Sound::SetPitch()']]], + ['setposition_361',['SetPosition',['../classraylib_1_1_camera3_d.html#a8788c4e1bd4e6138528f498288a118c4',1,'raylib::Camera3D::SetPosition()'],['../classraylib_1_1_ray.html#a58e766e005e207f9d8162afe7a35939e',1,'raylib::Ray::SetPosition()'],['../classraylib_1_1_ray_hit_info.html#a8fbe154d1bfb9eddff125aabde196f78',1,'raylib::RayHitInfo::SetPosition()'],['../classraylib_1_1_window.html#a662e058a9f5b3121e6280411fa0cc73d',1,'raylib::Window::SetPosition(int x, int y)'],['../classraylib_1_1_window.html#a701de0c79e8252538cd080ddfa51952d',1,'raylib::Window::SetPosition(const ::Vector2 &position)']]], + ['setprojection_362',['SetProjection',['../classraylib_1_1_camera3_d.html#a54a6d1c674178f3a571747c14bf9b9d4',1,'raylib::Camera3D']]], + ['setr_363',['SetR',['../classraylib_1_1_color.html#a5e3b3a2f7be0f5a314c8afcc25548515',1,'raylib::Color']]], + ['setrecs_364',['SetRecs',['../classraylib_1_1_font.html#a1030f35362a541bc750605f0e47592e9',1,'raylib::Font']]], + ['setrotation_365',['SetRotation',['../classraylib_1_1_camera2_d.html#a078b6d4f0b4a93e57fa005886d71a403',1,'raylib::Camera2D']]], + ['setsamplecount_366',['SetSampleCount',['../classraylib_1_1_music.html#a1cef139c624311b21259bd3d1ed84db2',1,'raylib::Music::SetSampleCount()'],['../classraylib_1_1_sound.html#abdf29d299d655557a2d44cfc2b5ac54e',1,'raylib::Sound::SetSampleCount()'],['../classraylib_1_1_wave.html#aac039a9470327b6a6bdba2a9dde39362',1,'raylib::Wave::SetSampleCount()']]], + ['setsamplerate_367',['SetSampleRate',['../classraylib_1_1_audio_stream.html#a00a71071bf2f18ab7761de67d885ecea',1,'raylib::AudioStream::SetSampleRate()'],['../classraylib_1_1_wave.html#a49e420bdac56451a50f8a45966cc60a4',1,'raylib::Wave::SetSampleRate()']]], + ['setsamplesize_368',['SetSampleSize',['../classraylib_1_1_audio_stream.html#a214328e8f215f493bff32c0d9e9fc962',1,'raylib::AudioStream::SetSampleSize()'],['../classraylib_1_1_wave.html#acc3cdf1f245ec2eb17766b25b47ef2d2',1,'raylib::Wave::SetSampleSize()']]], + ['setshader_369',['SetShader',['../classraylib_1_1_material.html#ae52f7a1005f77683fadb5bb2d6f10669',1,'raylib::Material']]], + ['setshadervalue_370',['SetShaderValue',['../classraylib_1_1_matrix.html#a388c9c8913cfae69bfb840bbfab95fa9',1,'raylib::Matrix']]], + ['setsize_371',['SetSize',['../classraylib_1_1_window.html#a9a51c4a61cb8c6fbf14e164e7c3afa50',1,'raylib::Window::SetSize(int width, int height)'],['../classraylib_1_1_window.html#a51be4f5c35dd84abbaa174df913aa4c7',1,'raylib::Window::SetSize(const ::Vector2 &size)']]], + ['setsmoothzoomcontrol_372',['SetSmoothZoomControl',['../classraylib_1_1_camera3_d.html#a6263a91ecfcc94144cd4cbff82396e78',1,'raylib::Camera3D']]], + ['setstate_373',['SetState',['../classraylib_1_1_window.html#a8f65f0cddfc91ba7c5c5efe0b5deb063',1,'raylib::Window']]], + ['setstream_374',['SetStream',['../classraylib_1_1_music.html#af00ed20b552cd395df95fddad4fa460e',1,'raylib::Music::SetStream()'],['../classraylib_1_1_sound.html#a6fd54c39f3101a23c49f4266344d59b5',1,'raylib::Sound::SetStream()']]], + ['settangents_375',['SetTangents',['../classraylib_1_1_mesh.html#a34fcc4eb9ab217e5b14ec722d23ecf8e',1,'raylib::Mesh']]], + ['settarget_376',['SetTarget',['../classraylib_1_1_camera2_d.html#adc9a7d85d9db33fa5a5cda2a0405f7e8',1,'raylib::Camera2D::SetTarget()'],['../classraylib_1_1_camera3_d.html#ac13f2010e8053fabbfd6e932375dfa95',1,'raylib::Camera3D::SetTarget()']]], + ['settargetfps_377',['SetTargetFPS',['../classraylib_1_1_window.html#a191fafa4e6e094477c15c157f00a18a4',1,'raylib::Window']]], + ['settexcoords_378',['SetTexCoords',['../classraylib_1_1_mesh.html#a8bb633e4e39dbd4101cac8ce7a119162',1,'raylib::Mesh']]], + ['settexcoords2_379',['SetTexCoords2',['../classraylib_1_1_mesh.html#a6250a00b596178cf0ef3b3a240b8e822',1,'raylib::Mesh']]], + ['settexture_380',['SetTexture',['../classraylib_1_1_font.html#ac50d5aa47129525b46e935d4c6f0d0a8',1,'raylib::Font::SetTexture()'],['../classraylib_1_1_material.html#a563a153517435efba319c750d7bd0379',1,'raylib::Material::SetTexture()'],['../classraylib_1_1_render_texture.html#a06acb5fa12b2404449f018978cef0f81',1,'raylib::RenderTexture::SetTexture()']]], + ['settitle_381',['SetTitle',['../classraylib_1_1_window.html#a306c896a81dd5790af0c8a8617b907d4',1,'raylib::Window']]], + ['settransform_382',['SetTransform',['../classraylib_1_1_model.html#ac30c84bbf7b1e0129bb48e48b5c71745',1,'raylib::Model']]], + ['settrianglecount_383',['SetTriangleCount',['../classraylib_1_1_mesh.html#a6052f0983fe1089e09da26572a12d721',1,'raylib::Mesh']]], + ['setup_384',['SetUp',['../classraylib_1_1_camera3_d.html#a4bf005a9f24cee0854d4eb3badd3fc0d',1,'raylib::Camera3D']]], + ['setvalue_385',['SetValue',['../classraylib_1_1_shader.html#ac06aca8c81dc9dcc50d27c3b46a26712',1,'raylib::Shader::SetValue(int uniformLoc, const std::string &value, int uniformType)'],['../classraylib_1_1_shader.html#afdbe29251bd12788759b3c4978fb68d3',1,'raylib::Shader::SetValue(int uniformLoc, const std::string &value, int uniformType, int count)'],['../classraylib_1_1_shader.html#adade0b76feffac6c439efb46586f4099',1,'raylib::Shader::SetValue(int uniformLoc, const ::Matrix &mat)'],['../classraylib_1_1_shader.html#a7bbc8d326c377cee898bf772dda1fc1c',1,'raylib::Shader::SetValue(int uniformLoc, const ::Texture2D &texture)']]], + ['setvaoid_386',['SetVaoId',['../classraylib_1_1_mesh.html#a8f1090f17c7f909dc705a26f79e3823c',1,'raylib::Mesh']]], + ['setvboid_387',['SetVboId',['../classraylib_1_1_mesh.html#a8965c1740e9fd27172dab6ef5687b24b',1,'raylib::Mesh']]], + ['setvertexcount_388',['SetVertexCount',['../classraylib_1_1_mesh.html#a06ee0812528d387d8d55473450f6f3cd',1,'raylib::Mesh']]], + ['setvertices_389',['SetVertices',['../classraylib_1_1_mesh.html#ad1a2f0cd8623f8c5365c1990b1ac596f',1,'raylib::Mesh']]], + ['setvolume_390',['SetVolume',['../classraylib_1_1_audio_device.html#ae1e2ca6a0cd5a3b2cb6f4cfc5455a3f1',1,'raylib::AudioDevice::SetVolume()'],['../classraylib_1_1_audio_stream.html#a6e69c7e6d2856787a588185f7865e6e1',1,'raylib::AudioStream::SetVolume()'],['../classraylib_1_1_music.html#acbcc821ca804c0c9783e96267b7c5ef9',1,'raylib::Music::SetVolume()'],['../classraylib_1_1_sound.html#a03cbb1aa868bf037d163a5a540db8c8f',1,'raylib::Sound::SetVolume()']]], + ['setw_391',['SetW',['../classraylib_1_1_vector4.html#aa73748302dc95aad9c9fa3a6d8d5bffc',1,'raylib::Vector4']]], + ['setwidth_392',['SetWidth',['../classraylib_1_1_image.html#af9e9c16a1ca0d6c2b0aa926e21226262',1,'raylib::Image::SetWidth()'],['../classraylib_1_1_rectangle.html#a38f4fc9eeb30777e68993b4a32fb0254',1,'raylib::Rectangle::SetWidth()'],['../classraylib_1_1_texture.html#aee9315728f4c54b1e950e9b0380a83bf',1,'raylib::Texture::SetWidth()']]], + ['setwindowtitle_393',['SetWindowTitle',['../namespaceraylib.html#a974a4a71390122643c9f7ee1265892b0',1,'raylib']]], + ['setwrap_394',['SetWrap',['../classraylib_1_1_texture.html#a29ac6e7037bc2678159760744d4538a4',1,'raylib::Texture']]], + ['setx_395',['SetX',['../classraylib_1_1_rectangle.html#a22c9cc628c283fa4b7380e91c29c81d7',1,'raylib::Rectangle::SetX()'],['../classraylib_1_1_vector2.html#a501a6761c9e3fe6adb6f660a751f1324',1,'raylib::Vector2::SetX()'],['../classraylib_1_1_vector3.html#aedfa9761bf452e7c7c92574fc3a7717c',1,'raylib::Vector3::SetX()'],['../classraylib_1_1_vector4.html#abd81e9eb660e7f08cb30b23174b87bec',1,'raylib::Vector4::SetX()']]], + ['sety_396',['SetY',['../classraylib_1_1_rectangle.html#a779595ab1373baba2da38a4247bfd5f7',1,'raylib::Rectangle::SetY()'],['../classraylib_1_1_vector2.html#a8735d26f1eae8f836521046c42d3906f',1,'raylib::Vector2::SetY()'],['../classraylib_1_1_vector3.html#aae0d8010357e617b76dada9375b6c085',1,'raylib::Vector3::SetY()'],['../classraylib_1_1_vector4.html#a0c46c0aaa7fc71685a1c523ed0b40ba3',1,'raylib::Vector4::SetY()']]], + ['setz_397',['SetZ',['../classraylib_1_1_vector3.html#a6ff8718eb583f9963c58e0d27f24f506',1,'raylib::Vector3::SetZ()'],['../classraylib_1_1_vector4.html#a1351f26ba875824cd6fb938b9fe2afc6',1,'raylib::Vector4::SetZ()']]], + ['setzoom_398',['SetZoom',['../classraylib_1_1_camera2_d.html#a3e031779ff5f2a5d25cb07d0ccc8ed7f',1,'raylib::Camera2D']]], + ['shader_399',['Shader',['../classraylib_1_1_shader.html',1,'raylib']]], + ['shouldclose_400',['ShouldClose',['../classraylib_1_1_window.html#a5f2a255aad32ac32aee87fb2e6b20a01',1,'raylib::Window']]], + ['sound_401',['Sound',['../classraylib_1_1_sound.html',1,'raylib']]], + ['sphere_402',['Sphere',['../classraylib_1_1_mesh.html#a1c47f75cc2add45ccd623dd6922f66e3',1,'raylib::Mesh']]], + ['stop_403',['Stop',['../classraylib_1_1_audio_stream.html#a266882a0ea63da435e44583270685d57',1,'raylib::AudioStream::Stop()'],['../classraylib_1_1_music.html#a6a6ed906b768631c86a006b23900d542',1,'raylib::Music::Stop()'],['../classraylib_1_1_sound.html#af00839539bfeb6dd1bac84b5d1c90f0b',1,'raylib::Sound::Stop()']]], + ['stopmulti_404',['StopMulti',['../classraylib_1_1_sound.html#a6925b0114e6d9636c928fed1f0f0586c',1,'raylib::Sound']]] +]; diff --git a/raylib-cpp/docs/search/all_11.html b/raylib-cpp/docs/search/all_11.html new file mode 100644 index 00000000..f78343b9 --- /dev/null +++ b/raylib-cpp/docs/search/all_11.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/all_11.js b/raylib-cpp/docs/search/all_11.js new file mode 100644 index 00000000..c9d2cf69 --- /dev/null +++ b/raylib-cpp/docs/search/all_11.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['takescreenshot_405',['TakeScreenshot',['../namespaceraylib.html#a85b0e8952631936155bae8979cbf2aed',1,'raylib']]], + ['tangents_406',['Tangents',['../classraylib_1_1_mesh.html#a4873780eee85a182d90c25eb100199ae',1,'raylib::Mesh']]], + ['textisequal_407',['TextIsEqual',['../namespaceraylib.html#afc1e3c933eb301bee7d42466a3ec5261',1,'raylib']]], + ['textlength_408',['TextLength',['../namespaceraylib.html#a3c5e254ed90864520fd592295941bbaf',1,'raylib']]], + ['texture_409',['Texture',['../classraylib_1_1_texture.html',1,'raylib::Texture'],['../classraylib_1_1_texture.html#a9a125ac253e41ceaee8cecb7de8652da',1,'raylib::Texture::Texture(const ::Image &image, int layout)'],['../classraylib_1_1_texture.html#aa2697fd78772ce720f8dab323f9be97a',1,'raylib::Texture::Texture(const std::string &fileName)']]], + ['togglefullscreen_410',['ToggleFullscreen',['../classraylib_1_1_window.html#a4f4e526ad3a1bfc3c133ff379d5f04d5',1,'raylib::Window']]], + ['tohsv_411',['ToHSV',['../classraylib_1_1_color.html#ab909853a3380e3cf4306a011caca7ec5',1,'raylib::Color']]], + ['toint_412',['ToInt',['../classraylib_1_1_color.html#a927ba04098ee1ba3a8e91374ed5d5606',1,'raylib::Color']]], + ['topot_413',['ToPOT',['../classraylib_1_1_image.html#ae8c33add6a7f996a706f531231b8d996',1,'raylib::Image']]], + ['torus_414',['Torus',['../classraylib_1_1_mesh.html#a90d8283bb7215bf489a5c0fbae7727d8',1,'raylib::Mesh']]], + ['trace_415',['Trace',['../classraylib_1_1_matrix.html#a7ed7bc3003490c97c363ac2108aaa44b',1,'raylib::Matrix']]], + ['transpose_416',['Transpose',['../classraylib_1_1_matrix.html#a7fc0f1d9225126201c4880a5052b8316',1,'raylib::Matrix']]] +]; diff --git a/raylib-cpp/docs/search/all_12.html b/raylib-cpp/docs/search/all_12.html new file mode 100644 index 00000000..dd9ff1d5 --- /dev/null +++ b/raylib-cpp/docs/search/all_12.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/all_12.js b/raylib-cpp/docs/search/all_12.js new file mode 100644 index 00000000..020b69f6 --- /dev/null +++ b/raylib-cpp/docs/search/all_12.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['unload_417',['Unload',['../classraylib_1_1_image.html#abb33cee3596f6f74ede70683865aaf0c',1,'raylib::Image::Unload()'],['../classraylib_1_1_material.html#a67962efd02fd7f59cb14cda929e599cc',1,'raylib::Material::Unload()'],['../classraylib_1_1_mesh.html#a2b9f6edb3fce3b6fcea46891e646fcd7',1,'raylib::Mesh::Unload()'],['../classraylib_1_1_model.html#a4a8d6932f932cd9857b62e139418d497',1,'raylib::Model::Unload()'],['../classraylib_1_1_model_animation.html#afa5bb2f87178e477dcbe541cc14eb697',1,'raylib::ModelAnimation::Unload()'],['../classraylib_1_1_music.html#aeaec37b4d521dfca16f39ce141c12515',1,'raylib::Music::Unload()'],['../classraylib_1_1_sound.html#a1384d166f189c9bebdb6649b502920f3',1,'raylib::Sound::Unload()'],['../classraylib_1_1_texture.html#a22ab79fcae5acbcb4a6c1f27c519a7ec',1,'raylib::Texture::Unload()'],['../classraylib_1_1_vr_stereo_config.html#af2f638f95b4efda7c90a5a623b374678',1,'raylib::VrStereoConfig::Unload()'],['../classraylib_1_1_wave.html#a6a143fc632271958e5ee2899338ec5bc',1,'raylib::Wave::Unload()']]], + ['unloadcolors_418',['UnloadColors',['../classraylib_1_1_image.html#a87b5f57dbf9f558038868ecfef6d719e',1,'raylib::Image']]], + ['unloadkeepmeshes_419',['UnloadKeepMeshes',['../classraylib_1_1_model.html#a1f8233c28728eff2c4684cb8b4258cda',1,'raylib::Model']]], + ['unloadpalette_420',['UnloadPalette',['../classraylib_1_1_image.html#a830495e93c51740572e81ea2d3c90a31',1,'raylib::Image']]], + ['unloadsamples_421',['UnloadSamples',['../classraylib_1_1_wave.html#adf7aaa265fec9183ef60c276a740d138',1,'raylib::Wave']]], + ['update_422',['Update',['../classraylib_1_1_audio_stream.html#ac7aa320c506865cc88d60264549d23b0',1,'raylib::AudioStream::Update()'],['../classraylib_1_1_camera3_d.html#a6a59671e1b7ed19c5b6566e700b625a7',1,'raylib::Camera3D::Update()'],['../classraylib_1_1_model_animation.html#aa5cf71119ac343985b5575be55475c05',1,'raylib::ModelAnimation::Update()'],['../classraylib_1_1_music.html#a031bc82c19b51b29f5c507cacd9c2664',1,'raylib::Music::Update()'],['../classraylib_1_1_sound.html#aa10536a28f5c23d056c56b69c86951ef',1,'raylib::Sound::Update(const void *data, int sampleCount)'],['../classraylib_1_1_sound.html#aa17ec450860a4b02d1fc717dcec278e5',1,'raylib::Sound::Update(const void *data)'],['../classraylib_1_1_texture.html#ad2be6ad3fbbff3141dc274b1b397902c',1,'raylib::Texture::Update()']]], + ['updateanimation_423',['UpdateAnimation',['../classraylib_1_1_model.html#a6b2400a98189c50a0c01d9868f56c3e4',1,'raylib::Model']]], + ['updatebuffer_424',['UpdateBuffer',['../classraylib_1_1_mesh.html#a2d592396bc6c930fe886a406336b8bdf',1,'raylib::Mesh']]], + ['updatecamera_425',['UpdateCamera',['../namespaceraylib.html#abd45302dac72cb253026bce044dee236',1,'raylib']]], + ['updaterec_426',['UpdateRec',['../classraylib_1_1_texture.html#a373b656c96ad2345eb395d061867eab8',1,'raylib::Texture']]], + ['upload_427',['Upload',['../classraylib_1_1_mesh.html#aa32b8f666eece6bf8839f27538a6b4d1',1,'raylib::Mesh']]] +]; diff --git a/raylib-cpp/docs/search/all_13.html b/raylib-cpp/docs/search/all_13.html new file mode 100644 index 00000000..2611a100 --- /dev/null +++ b/raylib-cpp/docs/search/all_13.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/all_13.js b/raylib-cpp/docs/search/all_13.js new file mode 100644 index 00000000..0c618358 --- /dev/null +++ b/raylib-cpp/docs/search/all_13.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['vector2_428',['Vector2',['../classraylib_1_1_vector2.html',1,'raylib']]], + ['vector3_429',['Vector3',['../classraylib_1_1_vector3.html',1,'raylib']]], + ['vector4_430',['Vector4',['../classraylib_1_1_vector4.html',1,'raylib']]], + ['vrstereoconfig_431',['VrStereoConfig',['../classraylib_1_1_vr_stereo_config.html',1,'raylib']]] +]; diff --git a/raylib-cpp/docs/search/all_14.html b/raylib-cpp/docs/search/all_14.html new file mode 100644 index 00000000..72d12e90 --- /dev/null +++ b/raylib-cpp/docs/search/all_14.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/all_14.js b/raylib-cpp/docs/search/all_14.js new file mode 100644 index 00000000..e5dffd2c --- /dev/null +++ b/raylib-cpp/docs/search/all_14.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['wave_432',['Wave',['../classraylib_1_1_wave.html',1,'raylib::Wave'],['../classraylib_1_1_wave.html#ad5144b906b92b84d95f8ce192ce9f86b',1,'raylib::Wave::Wave(const std::string &fileName)'],['../classraylib_1_1_wave.html#a31b96adb8009137b02529f3b8b95918d',1,'raylib::Wave::Wave(const std::string &fileType, const unsigned char *fileData, int dataSize)']]], + ['whitenoise_433',['WhiteNoise',['../classraylib_1_1_image.html#a103852d13c46a1073035149afa76bc4c',1,'raylib::Image']]], + ['window_434',['Window',['../classraylib_1_1_window.html',1,'raylib::Window'],['../classraylib_1_1_window.html#a512fd0b1756394575970eed80ebac2fb',1,'raylib::Window::Window()']]] +]; diff --git a/raylib-cpp/docs/search/all_15.html b/raylib-cpp/docs/search/all_15.html new file mode 100644 index 00000000..767aec36 --- /dev/null +++ b/raylib-cpp/docs/search/all_15.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/all_15.js b/raylib-cpp/docs/search/all_15.js new file mode 100644 index 00000000..a84e9e84 --- /dev/null +++ b/raylib-cpp/docs/search/all_15.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['zero_435',['Zero',['../classraylib_1_1_vector2.html#a6fc574d57d45b21e36bffbd44ceb8989',1,'raylib::Vector2']]] +]; diff --git a/raylib-cpp/docs/search/all_16.html b/raylib-cpp/docs/search/all_16.html new file mode 100644 index 00000000..7bd7afe6 --- /dev/null +++ b/raylib-cpp/docs/search/all_16.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/all_16.js b/raylib-cpp/docs/search/all_16.js new file mode 100644 index 00000000..0a65c2bb --- /dev/null +++ b/raylib-cpp/docs/search/all_16.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['_7eaudiodevice_436',['~AudioDevice',['../classraylib_1_1_audio_device.html#aab60bade54ebe2fc41e567d0023047d9',1,'raylib::AudioDevice']]], + ['_7emusic_437',['~Music',['../classraylib_1_1_music.html#a6fb0e1cb0807c33e952bdd8c5028fa16',1,'raylib::Music']]], + ['_7evrstereoconfig_438',['~VrStereoConfig',['../classraylib_1_1_vr_stereo_config.html#affd207a5267f0ea9c48d92dcfd72edea',1,'raylib::VrStereoConfig']]], + ['_7ewave_439',['~Wave',['../classraylib_1_1_wave.html#a545a0afb559e87f42cdedcda263452ba',1,'raylib::Wave']]], + ['_7ewindow_440',['~Window',['../classraylib_1_1_window.html#a6071f03b18e0f2d3817b0da3699f24af',1,'raylib::Window']]] +]; diff --git a/raylib-cpp/docs/search/all_17.html b/raylib-cpp/docs/search/all_17.html new file mode 100644 index 00000000..35702ecd --- /dev/null +++ b/raylib-cpp/docs/search/all_17.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/all_17.js b/raylib-cpp/docs/search/all_17.js new file mode 100644 index 00000000..824b8219 --- /dev/null +++ b/raylib-cpp/docs/search/all_17.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['zero_578',['Zero',['../classraylib_1_1_vector2.html#a6fc574d57d45b21e36bffbd44ceb8989',1,'raylib::Vector2::Zero()'],['../classraylib_1_1_vector3.html#ae3a9048507c018f7a90e86e2131f2ea5',1,'raylib::Vector3::Zero()']]] +]; diff --git a/raylib-cpp/docs/search/all_18.html b/raylib-cpp/docs/search/all_18.html new file mode 100644 index 00000000..540cdb6a --- /dev/null +++ b/raylib-cpp/docs/search/all_18.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/all_18.js b/raylib-cpp/docs/search/all_18.js new file mode 100644 index 00000000..e79a8708 --- /dev/null +++ b/raylib-cpp/docs/search/all_18.js @@ -0,0 +1,20 @@ +var searchData= +[ + ['_7eaudiodevice_579',['~AudioDevice',['../classraylib_1_1_audio_device.html#aab60bade54ebe2fc41e567d0023047d9',1,'raylib::AudioDevice']]], + ['_7eaudiostream_580',['~AudioStream',['../classraylib_1_1_audio_stream.html#a264e3bcd80f5c47651d82ce64b84bdc0',1,'raylib::AudioStream']]], + ['_7efont_581',['~Font',['../classraylib_1_1_font.html#ac26732eaa27d5984b2c356941b5762ad',1,'raylib::Font']]], + ['_7eimage_582',['~Image',['../classraylib_1_1_image.html#a249001d3d373b33b1f29145c45082536',1,'raylib::Image']]], + ['_7ematerial_583',['~Material',['../classraylib_1_1_material.html#aa11c6eb7111cedc08437673cc66760d6',1,'raylib::Material']]], + ['_7emesh_584',['~Mesh',['../classraylib_1_1_mesh.html#af09e2772739c525a2f957ebb7b4a1486',1,'raylib::Mesh']]], + ['_7emodel_585',['~Model',['../classraylib_1_1_model.html#ad0b3ed5e32b1d5bf73511ed67270ae07',1,'raylib::Model']]], + ['_7emodelanimation_586',['~ModelAnimation',['../classraylib_1_1_model_animation.html#a633f1c094138e99c36251773a8f3c787',1,'raylib::ModelAnimation']]], + ['_7emusic_587',['~Music',['../classraylib_1_1_music.html#a6fb0e1cb0807c33e952bdd8c5028fa16',1,'raylib::Music']]], + ['_7ephysics_588',['~Physics',['../classraylib_1_1_physics.html#a0629ca80510dec5e652457f0f6af2531',1,'raylib::Physics']]], + ['_7erendertexture_589',['~RenderTexture',['../classraylib_1_1_render_texture.html#aa82fb85022acc70314c1ddd22d12f44d',1,'raylib::RenderTexture']]], + ['_7eshader_590',['~Shader',['../classraylib_1_1_shader.html#a5fdd95f82f152bae43e274830cffcbf1',1,'raylib::Shader']]], + ['_7esound_591',['~Sound',['../classraylib_1_1_sound.html#a321a8cea955f859f8648e2df202f5497',1,'raylib::Sound']]], + ['_7etexture_592',['~Texture',['../classraylib_1_1_texture.html#afb52b2f43d5deb3e2e244205faa563ac',1,'raylib::Texture']]], + ['_7evrsimulator_593',['~VrSimulator',['../classraylib_1_1_vr_simulator.html#a430dac68377e85a9ae4fde96d54edaa8',1,'raylib::VrSimulator']]], + ['_7ewave_594',['~Wave',['../classraylib_1_1_wave.html#a545a0afb559e87f42cdedcda263452ba',1,'raylib::Wave']]], + ['_7ewindow_595',['~Window',['../classraylib_1_1_window.html#a6071f03b18e0f2d3817b0da3699f24af',1,'raylib::Window']]] +]; diff --git a/raylib-cpp/docs/search/all_2.html b/raylib-cpp/docs/search/all_2.html new file mode 100644 index 00000000..b26d9165 --- /dev/null +++ b/raylib-cpp/docs/search/all_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/all_2.js b/raylib-cpp/docs/search/all_2.js new file mode 100644 index 00000000..9ecc66d4 --- /dev/null +++ b/raylib-cpp/docs/search/all_2.js @@ -0,0 +1,27 @@ +var searchData= +[ + ['camera2d_12',['Camera2D',['../classraylib_1_1_camera2_d.html',1,'raylib']]], + ['camera3d_13',['Camera3D',['../classraylib_1_1_camera3_d.html',1,'raylib']]], + ['cellular_14',['Cellular',['../classraylib_1_1_image.html#a322fc19c5ae2a843a7c243b7fa4b74b1',1,'raylib::Image']]], + ['changedirectory_15',['ChangeDirectory',['../namespaceraylib.html#ae8cbcbf937c110d5865f0295463b90c1',1,'raylib']]], + ['checkcollision_16',['CheckCollision',['../classraylib_1_1_bounding_box.html#ae21846f1721a949de28e6bff5a0217d2',1,'raylib::BoundingBox::CheckCollision(const ::BoundingBox &box2) const'],['../classraylib_1_1_bounding_box.html#a4ebef66c3050ab310652c7eac6ce404b',1,'raylib::BoundingBox::CheckCollision(::Vector3 center, float radius) const'],['../classraylib_1_1_bounding_box.html#aee231bf2caca8ab6e4cb6be1f93874c3',1,'raylib::BoundingBox::CheckCollision(const ::Ray &ray) const'],['../classraylib_1_1_ray.html#ad0423741c40f27573139f30d05b39a77',1,'raylib::Ray::CheckCollision()'],['../classraylib_1_1_rectangle.html#a4e0fe086b5e04a2810ea5ec31fee7cb7',1,'raylib::Rectangle::CheckCollision(::Rectangle rec2) const'],['../classraylib_1_1_rectangle.html#ac1cd92eb4d964c2f643500506a8103c4',1,'raylib::Rectangle::CheckCollision(::Vector2 point) const'],['../classraylib_1_1_rectangle.html#abe80bafa896b885af41187d6611cd34b',1,'raylib::Rectangle::CheckCollision(::Vector2 center, float radius)'],['../classraylib_1_1_vector2.html#a23dfda9f721e98d3bf80de4eeccde18e',1,'raylib::Vector2::CheckCollision(::Rectangle rec) const'],['../classraylib_1_1_vector2.html#a5a16075cb1de65199a8c810147658198',1,'raylib::Vector2::CheckCollision(::Vector2 center, float radius) const'],['../classraylib_1_1_vector2.html#a10b07c009af9cf9723cd48a15f5044b6',1,'raylib::Vector2::CheckCollision(::Vector2 p1, ::Vector2 p2, ::Vector2 p3) const'],['../classraylib_1_1_vector3.html#a7b325f85196b92450b76c3f1925cf205',1,'raylib::Vector3::CheckCollision()']]], + ['checkcollisioncircle_17',['CheckCollisionCircle',['../classraylib_1_1_vector2.html#a7dcfa1e305dca48ca72648a447228d47',1,'raylib::Vector2::CheckCollisionCircle(float radius1, ::Vector2 center2, float radius2) const'],['../classraylib_1_1_vector2.html#a6ed62656d9528f2a1b2924132576779e',1,'raylib::Vector2::CheckCollisionCircle(float radius, ::Rectangle rec) const']]], + ['checkcollisionlines_18',['CheckCollisionLines',['../classraylib_1_1_vector2.html#adf2ac764f0a4b4c6d67dc1cfbb8d0df5',1,'raylib::Vector2']]], + ['checkcollisionsphere_19',['CheckCollisionSphere',['../classraylib_1_1_ray.html#a3190f8eb00e4d06b841580201115eed8',1,'raylib::Ray::CheckCollisionSphere(::Vector3 center, float radius) const'],['../classraylib_1_1_ray.html#a79269fb7290a8281489d88ede3c29cc8',1,'raylib::Ray::CheckCollisionSphere(::Vector3 center, float radius, ::Vector3 *collisionPoint) const']]], + ['checked_20',['Checked',['../classraylib_1_1_image.html#a30b75ee71c4240b4438a22a1313e90c8',1,'raylib::Image']]], + ['clearbackground_21',['ClearBackground',['../classraylib_1_1_color.html#ace467f20d71ff4af44e0211d6aeea9b5',1,'raylib::Color::ClearBackground()'],['../classraylib_1_1_image.html#aed48d37124df81191a9c10a417508703',1,'raylib::Image::ClearBackground()'],['../classraylib_1_1_window.html#a69eb249831f1976ce2a73945e31c6f52',1,'raylib::Window::ClearBackground()']]], + ['clearstate_22',['ClearState',['../classraylib_1_1_window.html#a359e2101ac13e8ee8423b3ffb27c8a42',1,'raylib::Window']]], + ['close_23',['Close',['../classraylib_1_1_audio_device.html#a04b39055a7d4dc12801f39f3429af9a0',1,'raylib::AudioDevice::Close()'],['../classraylib_1_1_audio_stream.html#a325438e3339a84ba7ac8927bbf78baa5',1,'raylib::AudioStream::Close()'],['../classraylib_1_1_window.html#a59cf11e97d3e33d914bc7b1711c2ccaf',1,'raylib::Window::Close()']]], + ['color_24',['Color',['../classraylib_1_1_color.html',1,'raylib::Color'],['../classraylib_1_1_color.html#ac0af7e53c6e05e6ec4de88169bae3952',1,'raylib::Color::Color()'],['../classraylib_1_1_color.html#a3c177f10d10851fdf20d09fae83c8e19',1,'raylib::Color::Color(::Vector3 hsv)'],['../classraylib_1_1_color.html#ad922c14839a64fc49597059855edb76b',1,'raylib::Color::Color(int hexValue)'],['../classraylib_1_1_color.html#aa5b23dd8167f9babe41abd378339d3a4',1,'raylib::Color::Color(::Vector4 normalized)'],['../classraylib_1_1_image.html#a8cf520f677b90541789a53b6bed96e6e',1,'raylib::Image::Color()']]], + ['colorbrightness_25',['ColorBrightness',['../classraylib_1_1_image.html#a2e6287edda71ed977b4b416e04b0f37f',1,'raylib::Image']]], + ['colorcontrast_26',['ColorContrast',['../classraylib_1_1_image.html#af00dca9570581bb75e0616e9a9f9b822',1,'raylib::Image']]], + ['colorgrayscale_27',['ColorGrayscale',['../classraylib_1_1_image.html#a2eae93c88197917b6706139f2c3c6dc2',1,'raylib::Image']]], + ['colorinvert_28',['ColorInvert',['../classraylib_1_1_image.html#af7f900b20bb8823c2c435673438dfbbd',1,'raylib::Image']]], + ['colorreplace_29',['ColorReplace',['../classraylib_1_1_image.html#af9d668a5feaed2554a77694f61cbdae0',1,'raylib::Image']]], + ['colortint_30',['ColorTint',['../classraylib_1_1_image.html#a0299b8ed8b569977d214ce265d3a5c93',1,'raylib::Image']]], + ['copy_31',['Copy',['../classraylib_1_1_image.html#a5f2e065ce3fcba5ccc2663fa18dcb66d',1,'raylib::Image::Copy()'],['../classraylib_1_1_wave.html#a52ca5fa9c0cdc43d3fb50ddc35d699e5',1,'raylib::Wave::Copy()']]], + ['crop_32',['Crop',['../classraylib_1_1_image.html#a50a7394e9662bf4f587cd73c5d594cee',1,'raylib::Image::Crop(::Rectangle crop)'],['../classraylib_1_1_image.html#a2fdfad958c27f8cc590b194b06338e2d',1,'raylib::Image::Crop(::Vector2 size)'],['../classraylib_1_1_image.html#a24323ef52da6113c3af4861ce0250ea0',1,'raylib::Image::Crop(int offsetX, int offsetY, int newWidth, int newHeight)'],['../classraylib_1_1_wave.html#a25601c51a2f81c569b074620c6758e94',1,'raylib::Wave::Crop()']]], + ['cube_33',['Cube',['../classraylib_1_1_mesh.html#a3063bad532be0ec9f0545652ffb2e929',1,'raylib::Mesh']]], + ['cubicmap_34',['Cubicmap',['../classraylib_1_1_mesh.html#af18beb1df9193e095dde1ecbdadf7688',1,'raylib::Mesh']]], + ['cylinder_35',['Cylinder',['../classraylib_1_1_mesh.html#aed00f01b7f68b3ef236814c8468891f0',1,'raylib::Mesh']]] +]; diff --git a/raylib-cpp/docs/search/all_3.html b/raylib-cpp/docs/search/all_3.html new file mode 100644 index 00000000..b61b96f8 --- /dev/null +++ b/raylib-cpp/docs/search/all_3.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/all_3.js b/raylib-cpp/docs/search/all_3.js new file mode 100644 index 00000000..e715d9ac --- /dev/null +++ b/raylib-cpp/docs/search/all_3.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['directoryexists_36',['DirectoryExists',['../namespaceraylib.html#a2991a63252dbe2be7e1ae4b852c9bd69',1,'raylib']]], + ['distance_37',['Distance',['../classraylib_1_1_vector2.html#a488a41369489998272b217d6385d6c37',1,'raylib::Vector2']]], + ['dither_38',['Dither',['../classraylib_1_1_image.html#a055b6908b9e8cfcd109abc537f3d2056',1,'raylib::Image']]], + ['dotproduct_39',['DotProduct',['../classraylib_1_1_vector2.html#a31c32996761d89b568102b2f6b60b745',1,'raylib::Vector2']]], + ['draw_40',['Draw',['../classraylib_1_1_bounding_box.html#aae0a66351992f36372ef68a6d4508c62',1,'raylib::BoundingBox::Draw()'],['../classraylib_1_1_model.html#a99e9a5432ab7a4cbd502d6cbcb7cb0e8',1,'raylib::Model::Draw(::Vector3 position, float scale=1.0f, ::Color tint={255, 255, 255, 255})'],['../classraylib_1_1_model.html#a1dca1f974cbecc203ac9da8b5fa11127',1,'raylib::Model::Draw(::Vector3 position, ::Vector3 rotationAxis, float rotationAngle=0.0f, ::Vector3 scale={1.0f, 1.0f, 1.0f}, ::Color tint={255, 255, 255, 255})'],['../classraylib_1_1_ray.html#a84586f1f5ce6627b1d0224fad287787b',1,'raylib::Ray::Draw()'],['../classraylib_1_1_rectangle.html#a3b886508162b32e034314111532d8f20',1,'raylib::Rectangle::Draw()'],['../classraylib_1_1_texture.html#ab76f4ae074269ad67ec8b731a3bf25a6',1,'raylib::Texture::Draw()'],['../classraylib_1_1_texture.html#a4c4f82a6e97e4f6d6163d5a2bb2a583c',1,'raylib::Texture::Draw(int posX, int posY, ::Color tint={255, 255, 255, 255})']]], + ['drawbillboard_41',['DrawBillboard',['../classraylib_1_1_camera3_d.html#a5cbf6986fba9deb41fecf4076ac7c61f',1,'raylib::Camera3D::DrawBillboard(const ::Texture2D &texture, ::Vector3 center, float size, ::Color tint={255, 255, 255, 255})'],['../classraylib_1_1_camera3_d.html#a4222bdd9d37cdd12968fda35e9aa2c62',1,'raylib::Camera3D::DrawBillboard(const ::Texture2D &texture, ::Rectangle sourceRec, ::Vector3 center, float size, ::Color tint={255, 255, 255, 255})']]], + ['drawcircle_42',['DrawCircle',['../classraylib_1_1_vector2.html#ad13e3d98cc06a835db9dc605b090b15c',1,'raylib::Vector2']]], + ['drawline_43',['DrawLine',['../classraylib_1_1_color.html#ab3a3237688396c1768034d553d2f1cde',1,'raylib::Color']]], + ['drawlinebezierquad_44',['DrawLineBezierQuad',['../classraylib_1_1_vector2.html#a75ad1e5906da8eb4ab23c12748b431cb',1,'raylib::Vector2']]], + ['drawpixel_45',['DrawPixel',['../classraylib_1_1_color.html#a28cd68c3548a019b36538d0a92fe2099',1,'raylib::Color::DrawPixel()'],['../classraylib_1_1_image.html#a6b0b903a298f55a692bb80da79030696',1,'raylib::Image::DrawPixel()']]], + ['drawtext_46',['DrawText',['../classraylib_1_1_font.html#ac3edd0d0ff79509e4e7144d2a111d704',1,'raylib::Font::DrawText(const std::string &text, ::Vector2 position, float fontSize, float spacing, ::Color tint=WHITE)'],['../classraylib_1_1_font.html#a1714ea67ea3913a27fd7f5283bcdbbb4',1,'raylib::Font::DrawText(const std::string &text, ::Rectangle rec, float fontSize, float spacing, bool wordWrap, ::Color tint, int selectStart, int selectLength, ::Color selectText, ::Color selectBack)'],['../classraylib_1_1_font.html#a1a3c668905d6769fdf3d8f341520926c',1,'raylib::Font::DrawText(int codepoint, ::Vector2 position, float fontSize, ::Color tint={ 255, 255, 255, 255 })'],['../namespaceraylib.html#a1c3578f8b3d850ffa73e9a602453e003',1,'raylib::DrawText()']]], + ['drawwires_47',['DrawWires',['../classraylib_1_1_model.html#a0a2beeb4e4776202dd441ccb5d1550fe',1,'raylib::Model::DrawWires(::Vector3 position, float scale=1.0f, ::Color tint={255, 255, 255, 255})'],['../classraylib_1_1_model.html#a7b61d8a179220f2a507bcbab2c660949',1,'raylib::Model::DrawWires(::Vector3 position, ::Vector3 rotationAxis, float rotationAngle=0.0f, ::Vector3 scale={1.0f, 1.0f, 1.0f}, ::Color tint={255, 255, 255, 255})']]] +]; diff --git a/raylib-cpp/docs/search/all_4.html b/raylib-cpp/docs/search/all_4.html new file mode 100644 index 00000000..06de1550 --- /dev/null +++ b/raylib-cpp/docs/search/all_4.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/all_4.js b/raylib-cpp/docs/search/all_4.js new file mode 100644 index 00000000..38e1b214 --- /dev/null +++ b/raylib-cpp/docs/search/all_4.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['enddrawing_48',['EndDrawing',['../classraylib_1_1_vr_stereo_config.html#a330f5b215ee77c138d75a304fdd8e705',1,'raylib::VrStereoConfig::EndDrawing()'],['../classraylib_1_1_window.html#a43bfc69dfce6ec3aaf1170f521243d59',1,'raylib::Window::EndDrawing()']]], + ['endmode_49',['EndMode',['../classraylib_1_1_camera3_d.html#a724b766ec42ff58243a353e07fd464e8',1,'raylib::Camera3D::EndMode()'],['../classraylib_1_1_render_texture.html#a2b742cd39ce046d2ac8e1cd0bb6ae4ff',1,'raylib::RenderTexture::EndMode()'],['../classraylib_1_1_shader.html#a525c31d5a7482bc89e41f03d1284b9f7',1,'raylib::Shader::EndMode()']]], + ['export_50',['Export',['../classraylib_1_1_image.html#a64a5b36c5aa7477450ee67c56f68b31b',1,'raylib::Image::Export()'],['../classraylib_1_1_mesh.html#aabbac566be5d678da87ac30a053eee55',1,'raylib::Mesh::Export()'],['../classraylib_1_1_wave.html#aae34ed202b067c1698fcde0615b5e2eb',1,'raylib::Wave::Export()']]], + ['exportascode_51',['ExportAsCode',['../classraylib_1_1_image.html#ac3083b627082cfcc44d025f4f9253e5a',1,'raylib::Image::ExportAsCode()'],['../classraylib_1_1_wave.html#a3ff84c35bd83bdd00a7a561ee803ec9e',1,'raylib::Wave::ExportAsCode()']]], + ['exportimage_52',['ExportImage',['../namespaceraylib.html#a5099093ce156cc4d2f25593261009c18',1,'raylib']]], + ['exportimageascode_53',['ExportImageAsCode',['../namespaceraylib.html#a0b97437db0f2b47bd7d4b57a8fdaf987',1,'raylib']]] +]; diff --git a/raylib-cpp/docs/search/all_5.html b/raylib-cpp/docs/search/all_5.html new file mode 100644 index 00000000..2544c4e5 --- /dev/null +++ b/raylib-cpp/docs/search/all_5.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/all_5.js b/raylib-cpp/docs/search/all_5.js new file mode 100644 index 00000000..47f3a4f9 --- /dev/null +++ b/raylib-cpp/docs/search/all_5.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['fade_54',['Fade',['../classraylib_1_1_color.html#a799b151b5ce92ccf5ca46f0c18ced395',1,'raylib::Color']]], + ['fileexists_55',['FileExists',['../namespaceraylib.html#a9e94283307bcb33f4595dcd5236b65c4',1,'raylib']]], + ['fliphorizontal_56',['FlipHorizontal',['../classraylib_1_1_image.html#a5d8f596d36077f4b8c24512a2df73e65',1,'raylib::Image']]], + ['flipvertical_57',['FlipVertical',['../classraylib_1_1_image.html#a0f052c63b3cebcf99c0cad86c8e88da4',1,'raylib::Image']]], + ['font_58',['Font',['../classraylib_1_1_font.html',1,'raylib']]], + ['format_59',['Format',['../classraylib_1_1_image.html#a01fcff59e33e044bd779202ea3473c48',1,'raylib::Image::Format()'],['../classraylib_1_1_wave.html#a4e6d2e64e6cdd46133893c9edd70b508',1,'raylib::Wave::Format()']]], + ['fromhsv_60',['FromHSV',['../classraylib_1_1_color.html#a6c3fd166762f68aede6c448cb26677ef',1,'raylib::Color']]], + ['fromimage_61',['FromImage',['../classraylib_1_1_image.html#a76b132d67047d7b82844a27cd93a6d63',1,'raylib::Image']]] +]; diff --git a/raylib-cpp/docs/search/all_6.html b/raylib-cpp/docs/search/all_6.html new file mode 100644 index 00000000..43f14eab --- /dev/null +++ b/raylib-cpp/docs/search/all_6.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/all_6.js b/raylib-cpp/docs/search/all_6.js new file mode 100644 index 00000000..65573908 --- /dev/null +++ b/raylib-cpp/docs/search/all_6.js @@ -0,0 +1,134 @@ +var searchData= +[ + ['gamepad_62',['Gamepad',['../classraylib_1_1_gamepad.html',1,'raylib']]], + ['genmipmaps_63',['GenMipmaps',['../classraylib_1_1_texture.html#a2f895f3a629cf1a74fe88d05b1dd3003',1,'raylib::Texture']]], + ['geta_64',['GetA',['../classraylib_1_1_color.html#af44c677cf6a4f10cfd1e8bdbb72eff08',1,'raylib::Color']]], + ['getalphaborder_65',['GetAlphaBorder',['../classraylib_1_1_image.html#a3eb64b4c59b8dee647b4aa66b6bbdf68',1,'raylib::Image']]], + ['getanimnormals_66',['GetAnimNormals',['../classraylib_1_1_mesh.html#a853c2afc08600c3e9e256d1eb805dded',1,'raylib::Mesh']]], + ['getanimvertices_67',['GetAnimVertices',['../classraylib_1_1_mesh.html#a38f5de9866c13b05b49b936a03b17201',1,'raylib::Mesh']]], + ['getaxiscount_68',['GetAxisCount',['../classraylib_1_1_gamepad.html#a3a1e2311ee288c437371ee1472449ef9',1,'raylib::Gamepad']]], + ['getaxismovement_69',['GetAxisMovement',['../classraylib_1_1_gamepad.html#ad7c180ac50603ba226fe1aa1bee54a95',1,'raylib::Gamepad']]], + ['getb_70',['GetB',['../classraylib_1_1_color.html#afc74cd36d347b8daaaed8aa14a3c29ba',1,'raylib::Color']]], + ['getbasesize_71',['GetBaseSize',['../classraylib_1_1_font.html#a944d3af1c94f00bbe39182307c26009c',1,'raylib::Font']]], + ['getbindpoe_72',['GetBindPoe',['../classraylib_1_1_model.html#a73bac18d76533acd39ed4e5917c84d96',1,'raylib::Model']]], + ['getbonecount_73',['GetBoneCount',['../classraylib_1_1_model.html#a192c0e7b4129a88de333c1eca34587fb',1,'raylib::Model::GetBoneCount()'],['../classraylib_1_1_model_animation.html#a3c8feacbf8d6fb1efa78a9146c7db327',1,'raylib::ModelAnimation::GetBoneCount()']]], + ['getboneids_74',['GetBoneIds',['../classraylib_1_1_mesh.html#adcbd525d5246f7b86dfc1d9f481f1f9a',1,'raylib::Mesh']]], + ['getbones_75',['GetBones',['../classraylib_1_1_model.html#ab944580c06987114068ae16d2b1ac34e',1,'raylib::Model::GetBones()'],['../classraylib_1_1_model_animation.html#aec9078358dfd2a87e580db69d8f7b325',1,'raylib::ModelAnimation::GetBones()']]], + ['getboneweights_76',['GetBoneWeights',['../classraylib_1_1_mesh.html#a0127c2cf9efa4e369fd3f71c326049b1',1,'raylib::Mesh']]], + ['getbuffer_77',['GetBuffer',['../classraylib_1_1_audio_stream.html#adea73b3b07652eb26bcaeb6e63f7ebb2',1,'raylib::AudioStream']]], + ['getbuttonpressed_78',['GetButtonPressed',['../classraylib_1_1_gamepad.html#a851be2dfb762d18268aad40ff7ee3f11',1,'raylib::Gamepad']]], + ['getchannels_79',['GetChannels',['../classraylib_1_1_audio_stream.html#ac29300e1a5c6b984824c2717313c7d7f',1,'raylib::AudioStream::GetChannels()'],['../classraylib_1_1_wave.html#ab6940575496f381bea5097cb716cdbff',1,'raylib::Wave::GetChannels()']]], + ['getchars_80',['GetChars',['../classraylib_1_1_font.html#a306a84f143c99a5b790ec92b2d697873',1,'raylib::Font']]], + ['getcharscount_81',['GetCharsCount',['../classraylib_1_1_font.html#a1bcd72ac54efcaae8e891ee14ae89c58',1,'raylib::Font']]], + ['getcharspadding_82',['GetCharsPadding',['../classraylib_1_1_font.html#ad5457503a3d414c86d50fce4c407073c',1,'raylib::Font']]], + ['getclipboardtext_83',['GetClipboardText',['../namespaceraylib.html#afe0adc469dc76944514cda9878393457',1,'raylib']]], + ['getcollision_84',['GetCollision',['../classraylib_1_1_model.html#ab01c92e76886b70c8ce395feef42d51e',1,'raylib::Model::GetCollision()'],['../classraylib_1_1_ray.html#a60c079b7ff300002452d5baff73cddbc',1,'raylib::Ray::GetCollision()'],['../classraylib_1_1_rectangle.html#a645b482ae3a4faa035507506be4f4260',1,'raylib::Rectangle::GetCollision()']]], + ['getcollisionground_85',['GetCollisionGround',['../classraylib_1_1_ray.html#a44ac4d9aac86a3d96c51360e00771fcf',1,'raylib::Ray']]], + ['getcollisiontriangle_86',['GetCollisionTriangle',['../classraylib_1_1_ray.html#a5c90125d5c6d1f9f2cfc9bfbef832cd4',1,'raylib::Ray']]], + ['getcolors_87',['GetColors',['../classraylib_1_1_mesh.html#a142e31381d248fbcdeeef46fd1f208ed',1,'raylib::Mesh']]], + ['getctxdata_88',['GetCtxData',['../classraylib_1_1_music.html#a349420428960e47afd4c69499b62eeac',1,'raylib::Music']]], + ['getctxtype_89',['GetCtxType',['../classraylib_1_1_music.html#abbbad14fbc860d0e74f14c4b0a17a723',1,'raylib::Music']]], + ['getdata_90',['GetData',['../classraylib_1_1_image.html#a3144e343f963e5b206e1050be54b4187',1,'raylib::Image::GetData()'],['../classraylib_1_1_texture.html#a3afee0767b1b7ca54e5477667761f5ed',1,'raylib::Texture::GetData()'],['../classraylib_1_1_wave.html#a8e7edd178a2ec7dc11f2474b29771d90',1,'raylib::Wave::GetData()']]], + ['getdepth_91',['GetDepth',['../classraylib_1_1_render_texture.html#af14f685bcdb22071df1b48baed8a98ee',1,'raylib::RenderTexture']]], + ['getdirection_92',['GetDirection',['../classraylib_1_1_ray.html#aee371fba13716967b132d6cfa7fcee74',1,'raylib::Ray']]], + ['getdirectoryfiles_93',['GetDirectoryFiles',['../namespaceraylib.html#a0933e9ed540a0fd6bbde88fe7f61b223',1,'raylib']]], + ['getdirectorypath_94',['GetDirectoryPath',['../namespaceraylib.html#af0226b8293ccb2947674b14ce25628b1',1,'raylib']]], + ['getdistance_95',['GetDistance',['../classraylib_1_1_ray_hit_info.html#ac1d332ab67260955b86a909e1dcfd9ab',1,'raylib::RayHitInfo']]], + ['getdroppedfiles_96',['GetDroppedFiles',['../namespaceraylib.html#a0d0c5876ab96ec845f92474f51c2677c',1,'raylib']]], + ['getfileextension_97',['GetFileExtension',['../namespaceraylib.html#abbdc5c6e02c73cdfa05f1b9c9e6edf1c',1,'raylib']]], + ['getfilemodtime_98',['GetFileModTime',['../namespaceraylib.html#aba9d6a306d3974b2190caa4433027c87',1,'raylib']]], + ['getfilename_99',['GetFileName',['../namespaceraylib.html#a6ee5ba05382914e2f9cab593ff938b43',1,'raylib']]], + ['getfilenamewithoutext_100',['GetFileNameWithoutExt',['../namespaceraylib.html#ac7d9a2610473677f5e4e93a8e6c60f95',1,'raylib']]], + ['getformat_101',['GetFormat',['../classraylib_1_1_image.html#afea44592a9dbcdad114be0c57ec179d6',1,'raylib::Image::GetFormat()'],['../classraylib_1_1_texture.html#a98cd3a49f6b5e06137a72b2c4e9bced4',1,'raylib::Texture::GetFormat()']]], + ['getfovy_102',['GetFovy',['../classraylib_1_1_camera3_d.html#aa2525e674c4582d4eadddd612f5f341c',1,'raylib::Camera3D']]], + ['getfps_103',['GetFPS',['../classraylib_1_1_window.html#a84747246a5f4e9101ac06c5da684af43',1,'raylib::Window']]], + ['getframecount_104',['GetFrameCount',['../classraylib_1_1_model_animation.html#ac5c26c30e71be771fe3601e29d816af2',1,'raylib::ModelAnimation']]], + ['getframeposes_105',['GetFramePoses',['../classraylib_1_1_model_animation.html#a63616ed03e2ca3e1dbe4337de5189ec7',1,'raylib::ModelAnimation']]], + ['getframetime_106',['GetFrameTime',['../classraylib_1_1_window.html#a9b9980432a4deacf2df9471f311d43ad',1,'raylib::Window']]], + ['getg_107',['GetG',['../classraylib_1_1_color.html#a3ab0ea2b21a1548259507219259304f5',1,'raylib::Color']]], + ['getglyphindex_108',['GetGlyphIndex',['../classraylib_1_1_font.html#a4dac04aebd39c1c038f936ef83d86b42',1,'raylib::Font']]], + ['gethandle_109',['GetHandle',['../classraylib_1_1_window.html#a0cc3f939a42ba3d625d43096b2e1e60b',1,'raylib::Window']]], + ['getheight_110',['GetHeight',['../classraylib_1_1_image.html#a4a3a94a5a21ce7578410c9c2e94d6805',1,'raylib::Image::GetHeight()'],['../classraylib_1_1_rectangle.html#a990c10a2ae6adcd19769957ee0e1859d',1,'raylib::Rectangle::GetHeight()'],['../classraylib_1_1_texture.html#a17837a5f61a14abbba8135273595072f',1,'raylib::Texture::GetHeight()'],['../classraylib_1_1_window.html#a0373241f0e8997b06aa4a15a58d3d5d9',1,'raylib::Window::GetHeight()']]], + ['gethit_111',['GetHit',['../classraylib_1_1_ray_hit_info.html#aa6d9aab4694f28be1e7fe4d63d22ace9',1,'raylib::RayHitInfo']]], + ['getid_112',['GetId',['../classraylib_1_1_render_texture.html#ab33b547ed46ceea6960a7385b24bec06',1,'raylib::RenderTexture::GetId()'],['../classraylib_1_1_shader.html#a72ec5358fed89076afbd8edfa83e9779',1,'raylib::Shader::GetId()'],['../classraylib_1_1_texture.html#aee47a39e0b5026f7e0e546d982a9c298',1,'raylib::Texture::GetId()']]], + ['getindices_113',['GetIndices',['../classraylib_1_1_mesh.html#a1a48eb931c6c910f0fb524d2c49ed183',1,'raylib::Mesh']]], + ['getlocation_114',['GetLocation',['../classraylib_1_1_shader.html#a95634f8def8f234a84113d80fd8e521a',1,'raylib::Shader']]], + ['getlocationattrib_115',['GetLocationAttrib',['../classraylib_1_1_shader.html#a9c6eed0a0addfc76110bcec7cc8c3daf',1,'raylib::Shader']]], + ['getlocs_116',['GetLocs',['../classraylib_1_1_shader.html#a552106b906d353d97538e43ed2265bd0',1,'raylib::Shader']]], + ['getlooping_117',['GetLooping',['../classraylib_1_1_music.html#a6b04c6ccd89175f40de2491846a8154e',1,'raylib::Music']]], + ['getm0_118',['GetM0',['../classraylib_1_1_matrix.html#a6b78d7872779be3740adaa0a63c93871',1,'raylib::Matrix']]], + ['getm1_119',['GetM1',['../classraylib_1_1_matrix.html#ae7316cec778f24e875a529ddd116eb06',1,'raylib::Matrix']]], + ['getm10_120',['GetM10',['../classraylib_1_1_matrix.html#a714e3b90607b5345c12f7e5991ccbef7',1,'raylib::Matrix']]], + ['getm11_121',['GetM11',['../classraylib_1_1_matrix.html#a25c4303138c8060bcac037d6bc78912a',1,'raylib::Matrix']]], + ['getm12_122',['GetM12',['../classraylib_1_1_matrix.html#a7fc1f01a4e4137f6cf7597b006bdaa05',1,'raylib::Matrix']]], + ['getm13_123',['GetM13',['../classraylib_1_1_matrix.html#affca67e81632541bf08c743236a95790',1,'raylib::Matrix']]], + ['getm14_124',['GetM14',['../classraylib_1_1_matrix.html#ac2aa01cccd0e67223d2e24ed62b4f3d2',1,'raylib::Matrix']]], + ['getm15_125',['GetM15',['../classraylib_1_1_matrix.html#ac97c8f97e3f012c5c044fd941690ac8c',1,'raylib::Matrix']]], + ['getm2_126',['GetM2',['../classraylib_1_1_matrix.html#adbee9387da5a0c695b442c6bffb5ad44',1,'raylib::Matrix']]], + ['getm3_127',['GetM3',['../classraylib_1_1_matrix.html#a6fd210dab5f11e733d683d08ae9e0a00',1,'raylib::Matrix']]], + ['getm4_128',['GetM4',['../classraylib_1_1_matrix.html#a1b70d062e4ee8a4eb60154003a7778e1',1,'raylib::Matrix']]], + ['getm5_129',['GetM5',['../classraylib_1_1_matrix.html#a0a3e72416a11ddfabb4c8d671aff9347',1,'raylib::Matrix']]], + ['getm6_130',['GetM6',['../classraylib_1_1_matrix.html#a5fd355a3543ed7361699df2c7d0030ae',1,'raylib::Matrix']]], + ['getm7_131',['GetM7',['../classraylib_1_1_matrix.html#a986fde9e8b31d013b4f9a3e7d79a9721',1,'raylib::Matrix']]], + ['getm8_132',['GetM8',['../classraylib_1_1_matrix.html#a4f6a8abe84f2d4013869bb594e81f5b1',1,'raylib::Matrix']]], + ['getm9_133',['GetM9',['../classraylib_1_1_matrix.html#afa3e0fa6ce3f3a886001d523cb2be127',1,'raylib::Matrix']]], + ['getmaps_134',['GetMaps',['../classraylib_1_1_material.html#a561e81c743da576c866cfcec9bad8e53',1,'raylib::Material']]], + ['getmaterialcount_135',['GetMaterialCount',['../classraylib_1_1_model.html#a5667475690e50ed8ed54e0755d40d3a2',1,'raylib::Model']]], + ['getmaterials_136',['GetMaterials',['../classraylib_1_1_model.html#a649280afda23717aacce04ee652f601f',1,'raylib::Model']]], + ['getmatrix_137',['GetMatrix',['../classraylib_1_1_camera2_d.html#aa1f8ea4d3a25feb15c2cb2a09628c7a1',1,'raylib::Camera2D::GetMatrix()'],['../classraylib_1_1_camera3_d.html#a1836faf8c5617c5efea6053c6bb77b4f',1,'raylib::Camera3D::GetMatrix()']]], + ['getmax_138',['GetMax',['../classraylib_1_1_bounding_box.html#a4b537ee581dfdb203c619fbd67e20f18',1,'raylib::BoundingBox']]], + ['getmeshcount_139',['GetMeshCount',['../classraylib_1_1_model.html#a757bbbe4f49034a40740e1c58807c546',1,'raylib::Model']]], + ['getmeshes_140',['GetMeshes',['../classraylib_1_1_model.html#a66b34f9913ac900b94a338be266f63ce',1,'raylib::Model']]], + ['getmeshmaterial_141',['GetMeshMaterial',['../classraylib_1_1_model.html#a65eb3d0fb0be3d9ba7539df410885045',1,'raylib::Model']]], + ['getmin_142',['GetMin',['../classraylib_1_1_bounding_box.html#ad8c5c1330f95a3c5641e16da46bca8e6',1,'raylib::BoundingBox']]], + ['getmipmaps_143',['GetMipmaps',['../classraylib_1_1_image.html#aa0e7c5adcbaf91924c141a085ed2317a',1,'raylib::Image::GetMipmaps()'],['../classraylib_1_1_texture.html#a221e1324dcca1092597692d6c71f3711',1,'raylib::Texture::GetMipmaps()']]], + ['getmonitorname_144',['GetMonitorName',['../namespaceraylib.html#a7f6c5083385c50fd984be1abe0e2c94c',1,'raylib']]], + ['getmouseray_145',['GetMouseRay',['../classraylib_1_1_camera3_d.html#ac59decb87b851c16adee7c2c742f8961',1,'raylib::Camera3D']]], + ['getname_146',['GetName',['../classraylib_1_1_gamepad.html#aa13c682766bf03ba1f5f6fa821b15984',1,'raylib::Gamepad']]], + ['getnormal_147',['GetNormal',['../classraylib_1_1_ray_hit_info.html#ac6c68ec939459e855757ba55ae4252b6',1,'raylib::RayHitInfo']]], + ['getnormals_148',['GetNormals',['../classraylib_1_1_mesh.html#a0fcc7bca9b9419a0d8e3d59666082edc',1,'raylib::Mesh']]], + ['getnumber_149',['GetNumber',['../classraylib_1_1_gamepad.html#ac04f6820f2a0d7ffa3876ac1bac9926b',1,'raylib::Gamepad']]], + ['getoffset_150',['GetOffset',['../classraylib_1_1_camera2_d.html#a6f2a2adaac6ce26b6ca132f88a119e01',1,'raylib::Camera2D']]], + ['getpixeldatasize_151',['GetPixelDataSize',['../classraylib_1_1_image.html#aa432e9f4e1b7a5e31a70447e3efd979d',1,'raylib::Image::GetPixelDataSize(int width, int height, int format=PIXELFORMAT_UNCOMPRESSED_R32G32B32A32)'],['../classraylib_1_1_image.html#afcfe495d4d8c3126584b1f922f8d350b',1,'raylib::Image::GetPixelDataSize()']]], + ['getposition_152',['GetPosition',['../classraylib_1_1_camera3_d.html#a8de66de053eac614313c0912aff2b755',1,'raylib::Camera3D::GetPosition()'],['../classraylib_1_1_ray.html#a13d000fd9369b90b44dffcbc63eb5475',1,'raylib::Ray::GetPosition()'],['../classraylib_1_1_ray_hit_info.html#a0aa30a98327549861234c144734b7605',1,'raylib::RayHitInfo::GetPosition()'],['../classraylib_1_1_window.html#a3b1ba3352da1660ebc3528abba28347c',1,'raylib::Window::GetPosition()']]], + ['getprevdirectorypath_153',['GetPrevDirectoryPath',['../namespaceraylib.html#ade271537f199a6fb169389b9bb05a529',1,'raylib']]], + ['getprojection_154',['GetProjection',['../classraylib_1_1_camera3_d.html#a2886f1e2b41524fcc7e43862460201ce',1,'raylib::Camera3D']]], + ['getr_155',['GetR',['../classraylib_1_1_color.html#aff509b4643d1a176ba62622fc33fce06',1,'raylib::Color']]], + ['getrecs_156',['GetRecs',['../classraylib_1_1_font.html#a396cae69c0d0c46bf76fc3879d5219e1',1,'raylib::Font']]], + ['getrotation_157',['GetRotation',['../classraylib_1_1_camera2_d.html#a182bb47e65f422ee3b0d9dc27ba1cd6e',1,'raylib::Camera2D']]], + ['getsamplecount_158',['GetSampleCount',['../classraylib_1_1_music.html#aa735100a1b49a5deb2c78fe79e2a6e47',1,'raylib::Music::GetSampleCount()'],['../classraylib_1_1_sound.html#a68a2296c5b99301ab14fe51a5e40344b',1,'raylib::Sound::GetSampleCount()'],['../classraylib_1_1_wave.html#a652d6d1e7e5310f8a9c104fdf011d402',1,'raylib::Wave::GetSampleCount()']]], + ['getsamplerate_159',['GetSampleRate',['../classraylib_1_1_audio_stream.html#a77b4c58ec94fb15169258288ef4c1239',1,'raylib::AudioStream::GetSampleRate()'],['../classraylib_1_1_wave.html#ada13a639ef1ec80f208ee849026e7c7f',1,'raylib::Wave::GetSampleRate()']]], + ['getsamplesize_160',['GetSampleSize',['../classraylib_1_1_audio_stream.html#ac9dfe4b5b11fb155b4fe2169985fb627',1,'raylib::AudioStream::GetSampleSize()'],['../classraylib_1_1_wave.html#acae6daf3fa261c114bdb37a34a08428b',1,'raylib::Wave::GetSampleSize()']]], + ['getscaledpi_161',['GetScaleDPI',['../classraylib_1_1_window.html#ab8907b1b25a7b9d42ca32e085dde1a07',1,'raylib::Window']]], + ['getscreendata_162',['GetScreenData',['../classraylib_1_1_image.html#a36c1ce137a4be58f9b73057187504098',1,'raylib::Image']]], + ['getscreentoworld_163',['GetScreenToWorld',['../classraylib_1_1_camera2_d.html#a1eed5bde73d8c1a227250b6caaefcb42',1,'raylib::Camera2D']]], + ['getshader_164',['GetShader',['../classraylib_1_1_material.html#aa9502add9fe1ab801101a3bfe355ab88',1,'raylib::Material']]], + ['getsize_165',['GetSize',['../classraylib_1_1_image.html#aac63ae995cbec5c6c173a3a80aff82f5',1,'raylib::Image::GetSize()'],['../classraylib_1_1_texture.html#a13e47e812a75ff9a482407e823f6afd0',1,'raylib::Texture::GetSize()'],['../classraylib_1_1_window.html#abdd698cf62f84787f9541a6f851c587e',1,'raylib::Window::GetSize()']]], + ['getstream_166',['GetStream',['../classraylib_1_1_music.html#a989d8aa3f23f0656ab3da9f24da40aa8',1,'raylib::Music::GetStream()'],['../classraylib_1_1_sound.html#a356f3d89b688e93d3d72e2cbf3f1a47f',1,'raylib::Sound::GetStream()']]], + ['gettangents_167',['GetTangents',['../classraylib_1_1_mesh.html#aa87bf017b9ea53e09230d128ffbb6a19',1,'raylib::Mesh']]], + ['gettarget_168',['GetTarget',['../classraylib_1_1_camera2_d.html#a6529f488ef7268bc52a3bfc69de5a68e',1,'raylib::Camera2D::GetTarget()'],['../classraylib_1_1_camera3_d.html#ac8327369c304938e9f6c538c3694f684',1,'raylib::Camera3D::GetTarget()']]], + ['gettexcoords_169',['GetTexCoords',['../classraylib_1_1_mesh.html#a3f81f280b53829deef1a37c4b5b5ca62',1,'raylib::Mesh']]], + ['gettexcoords2_170',['GetTexCoords2',['../classraylib_1_1_mesh.html#a30066599a6ce84274283fe59ddade320',1,'raylib::Mesh']]], + ['gettexture_171',['GetTexture',['../classraylib_1_1_font.html#a4f73e1c4ddfde06b9b7584167a683291',1,'raylib::Font::GetTexture()'],['../classraylib_1_1_render_texture.html#a73993c0ac4c292634562f2bd2dffe400',1,'raylib::RenderTexture::GetTexture()']]], + ['gettime_172',['GetTime',['../classraylib_1_1_window.html#a60da5ca13065b01316ab17d4cd92b0c4',1,'raylib::Window']]], + ['gettimelength_173',['GetTimeLength',['../classraylib_1_1_music.html#ad23d121ee312f31c3a8f1db201ac5f12',1,'raylib::Music']]], + ['gettimeplayed_174',['GetTimePlayed',['../classraylib_1_1_music.html#a513dc0d09de1d51e1b961d4e59622ebb',1,'raylib::Music']]], + ['gettransform_175',['GetTransform',['../classraylib_1_1_model.html#a9bcf1bc49f414eeec46981145f23c252',1,'raylib::Model']]], + ['gettrianglecount_176',['GetTriangleCount',['../classraylib_1_1_mesh.html#a0952e07513a753cdcff5049685605467',1,'raylib::Mesh']]], + ['getup_177',['GetUp',['../classraylib_1_1_camera3_d.html#a938726fa036cdac158d41649d694d4a6',1,'raylib::Camera3D']]], + ['getvaoid_178',['GetVaoId',['../classraylib_1_1_mesh.html#a2be0d9d846cec0f3aa57fccf87cb3bc4',1,'raylib::Mesh']]], + ['getvboid_179',['GetVboId',['../classraylib_1_1_mesh.html#ae535ee83038e5e79a9347c1196aff6b9',1,'raylib::Mesh']]], + ['getvertexcount_180',['GetVertexCount',['../classraylib_1_1_mesh.html#a68610ac9dbd7abc14b42e7f6d0115538',1,'raylib::Mesh']]], + ['getvertices_181',['GetVertices',['../classraylib_1_1_mesh.html#a3e0d13eece1fd47334117d316c777f4f',1,'raylib::Mesh']]], + ['getw_182',['GetW',['../classraylib_1_1_vector4.html#ab2b62fd149f3a5fe52785d2a2a4fb594',1,'raylib::Vector4']]], + ['getwidth_183',['GetWidth',['../classraylib_1_1_image.html#a686e411bd7dca746367039925e00ff0c',1,'raylib::Image::GetWidth()'],['../classraylib_1_1_rectangle.html#a6abb0a899eba4c0cf64abe335cf9524f',1,'raylib::Rectangle::GetWidth()'],['../classraylib_1_1_texture.html#ab6f4693f5c6ed1f1bc75b264ad83fecc',1,'raylib::Texture::GetWidth()'],['../classraylib_1_1_window.html#a28b6a5df22c776cf362c400798232a20',1,'raylib::Window::GetWidth()']]], + ['getworkingdirectory_184',['GetWorkingDirectory',['../namespaceraylib.html#a3b1394601148ff55ebe71afc941a8ba6',1,'raylib']]], + ['getworldtoscreen_185',['GetWorldToScreen',['../classraylib_1_1_camera2_d.html#ad0ceb4263e2bf5a04686e1cae27f4c64',1,'raylib::Camera2D::GetWorldToScreen()'],['../classraylib_1_1_camera3_d.html#a6259d44a0a9b08d842fb30530dea19cc',1,'raylib::Camera3D::GetWorldToScreen()']]], + ['getx_186',['GetX',['../classraylib_1_1_rectangle.html#ac8e285bfedece7690efecc848f866488',1,'raylib::Rectangle::GetX()'],['../classraylib_1_1_vector2.html#a8f3caf893df8b295287b9d38db071f7b',1,'raylib::Vector2::GetX()'],['../classraylib_1_1_vector3.html#adf04670ef541569bb6f059e0882ef6e6',1,'raylib::Vector3::GetX()'],['../classraylib_1_1_vector4.html#aeccdd03d26e614a2e8b24d09df48c46f',1,'raylib::Vector4::GetX()']]], + ['gety_187',['GetY',['../classraylib_1_1_rectangle.html#a0d56937d314f4d6772e5c315c0c8804a',1,'raylib::Rectangle::GetY()'],['../classraylib_1_1_vector2.html#afc302ffc39c6a27208bc51f347614c6d',1,'raylib::Vector2::GetY()'],['../classraylib_1_1_vector3.html#a4a0ea2c9f7370ad1b84d7ac354828b04',1,'raylib::Vector3::GetY()'],['../classraylib_1_1_vector4.html#af056e11e295b76b9a411bdd28ca9f0ab',1,'raylib::Vector4::GetY()']]], + ['getz_188',['GetZ',['../classraylib_1_1_vector3.html#a814af8afc4db090e3ae1caa61befa004',1,'raylib::Vector3::GetZ()'],['../classraylib_1_1_vector4.html#aa6ae558beba3e542596d34d9db4ba00c',1,'raylib::Vector4::GetZ()']]], + ['getzoom_189',['GetZoom',['../classraylib_1_1_camera2_d.html#aff4843bdb20648e4c56404b88364f30d',1,'raylib::Camera2D']]], + ['gradienth_190',['GradientH',['../classraylib_1_1_image.html#a1669d98754a5d6aeb38f7bb7fff3b41f',1,'raylib::Image']]], + ['gradientradial_191',['GradientRadial',['../classraylib_1_1_image.html#aae426ba02db17383c5242e0ee58dd40c',1,'raylib::Image']]], + ['gradientv_192',['GradientV',['../classraylib_1_1_image.html#a57519b22c8a823e3e9fa590a51c25f57',1,'raylib::Image']]] +]; diff --git a/raylib-cpp/docs/search/all_7.html b/raylib-cpp/docs/search/all_7.html new file mode 100644 index 00000000..af52f82a --- /dev/null +++ b/raylib-cpp/docs/search/all_7.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/all_7.js b/raylib-cpp/docs/search/all_7.js new file mode 100644 index 00000000..37a8ef2b --- /dev/null +++ b/raylib-cpp/docs/search/all_7.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['heightmap_193',['Heightmap',['../classraylib_1_1_mesh.html#ad0adb983d1f147de94505484818d2e97',1,'raylib::Mesh']]], + ['hemisphere_194',['HemiSphere',['../classraylib_1_1_mesh.html#a6549598642005a363f01c4cf23a806d6',1,'raylib::Mesh']]] +]; diff --git a/raylib-cpp/docs/search/all_8.html b/raylib-cpp/docs/search/all_8.html new file mode 100644 index 00000000..cf2b5df9 --- /dev/null +++ b/raylib-cpp/docs/search/all_8.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/all_8.js b/raylib-cpp/docs/search/all_8.js new file mode 100644 index 00000000..8b0f8c3a --- /dev/null +++ b/raylib-cpp/docs/search/all_8.js @@ -0,0 +1,28 @@ +var searchData= +[ + ['image_195',['Image',['../classraylib_1_1_image.html',1,'raylib']]], + ['imagetext_196',['ImageText',['../classraylib_1_1_font.html#afd68d404370d62e2a3573977e5bbeb22',1,'raylib::Font']]], + ['init_197',['Init',['../classraylib_1_1_audio_device.html#aab013db3caeb89942dd6ea387005319f',1,'raylib::AudioDevice::Init()'],['../classraylib_1_1_vr_stereo_config.html#ad233e6c0eabaed80f4e372ce4629f9f0',1,'raylib::VrStereoConfig::Init()']]], + ['initwindow_198',['InitWindow',['../namespaceraylib.html#aa6db29c8b8a63eaebb42a2d550cc55a5',1,'raylib']]], + ['isavailable_199',['IsAvailable',['../classraylib_1_1_gamepad.html#a552fc427aa95b93e5c3a0e22625b7912',1,'raylib::Gamepad::IsAvailable() const'],['../classraylib_1_1_gamepad.html#a51ffa43549a2767723bdc8e780483c85',1,'raylib::Gamepad::IsAvailable(int number)']]], + ['isbuttondown_200',['IsButtonDown',['../classraylib_1_1_gamepad.html#a8d36ae1e99c022a1b4cccddfcb4eaca5',1,'raylib::Gamepad::IsButtonDown()'],['../classraylib_1_1_mouse.html#a4df87937eb26af3a7ce677679a006b87',1,'raylib::Mouse::IsButtonDown()']]], + ['isbuttonpressed_201',['IsButtonPressed',['../classraylib_1_1_gamepad.html#ac4f2cf491bba6cf51cd9dcab5ac36f5c',1,'raylib::Gamepad::IsButtonPressed()'],['../classraylib_1_1_mouse.html#abe697fb08941f2207f1ce87f9dd56917',1,'raylib::Mouse::IsButtonPressed()']]], + ['isbuttonreleased_202',['IsButtonReleased',['../classraylib_1_1_gamepad.html#a203c7dafc8025a334590dc9fa6dd8201',1,'raylib::Gamepad::IsButtonReleased()'],['../classraylib_1_1_mouse.html#a9f050865fcc3b2021db4eddb77bca7c8',1,'raylib::Mouse::IsButtonReleased()']]], + ['isbuttonup_203',['IsButtonUp',['../classraylib_1_1_gamepad.html#ab770e18a2a3d1618c19b87bc3350163b',1,'raylib::Gamepad']]], + ['iscursoronscreen_204',['IsCursorOnScreen',['../classraylib_1_1_window.html#aa34b3af6f8d64d11d2c4754d268ce9df',1,'raylib::Window']]], + ['isfileextension_205',['IsFileExtension',['../namespaceraylib.html#a5a60c25be7993db9750acda4cffbd5c5',1,'raylib']]], + ['isfocused_206',['IsFocused',['../classraylib_1_1_window.html#adc7484e498d54cdb28f342097d313284',1,'raylib::Window']]], + ['isfullscreen_207',['IsFullscreen',['../classraylib_1_1_window.html#a5497f129bcfd214f198a1494a8d6aeb0',1,'raylib::Window']]], + ['isgamepadname_208',['IsGamepadName',['../namespaceraylib.html#ae213b7a1cb15e54b4cfb849a51f11ddf',1,'raylib']]], + ['ishidden_209',['IsHidden',['../classraylib_1_1_window.html#aa84905241727491fcfa04d1b2b4bf9a4',1,'raylib::Window']]], + ['ismaximized_210',['IsMaximized',['../classraylib_1_1_window.html#ae83a47dddc7be356bfd7d8328f7bfcc2',1,'raylib::Window']]], + ['isminimized_211',['IsMinimized',['../classraylib_1_1_window.html#af37b1503d3d94dadd16a2e443853fca7',1,'raylib::Window']]], + ['ismodelanimationvalid_212',['IsModelAnimationValid',['../classraylib_1_1_model.html#a4d9e6f4093c9afd36c8a882884b2e973',1,'raylib::Model']]], + ['isname_213',['IsName',['../classraylib_1_1_gamepad.html#a81e083ed8895467edf94c5f6d997976d',1,'raylib::Gamepad']]], + ['isplaying_214',['IsPlaying',['../classraylib_1_1_audio_stream.html#a3ddeb56330bff2e4ae2f6aff6b8c63e9',1,'raylib::AudioStream::IsPlaying()'],['../classraylib_1_1_music.html#a020a0807b02878ce88eb72a51f93a7a8',1,'raylib::Music::IsPlaying()'],['../classraylib_1_1_sound.html#abcb43001db69499796a100f8593c1233',1,'raylib::Sound::IsPlaying()']]], + ['isprocessed_215',['IsProcessed',['../classraylib_1_1_audio_stream.html#a1c208447f698ea82fb3c51f5c9978251',1,'raylib::AudioStream']]], + ['isready_216',['IsReady',['../classraylib_1_1_audio_device.html#a5555c3a41868046ea8b6ff08195f21bc',1,'raylib::AudioDevice::IsReady()'],['../classraylib_1_1_window.html#a9814a0d29da572bba75910b41cfe0f77',1,'raylib::Window::IsReady()']]], + ['isresized_217',['IsResized',['../classraylib_1_1_window.html#abc3ef5315e01e7fbaa1023a3a1be5124',1,'raylib::Window']]], + ['isstate_218',['IsState',['../classraylib_1_1_window.html#a5b9dd646247a51705a040d8c1860bb86',1,'raylib::Window']]], + ['isvalid_219',['IsValid',['../classraylib_1_1_model_animation.html#a8759ec999d5a7370e364e8e86d278c34',1,'raylib::ModelAnimation']]] +]; diff --git a/raylib-cpp/docs/search/all_9.html b/raylib-cpp/docs/search/all_9.html new file mode 100644 index 00000000..690785a5 --- /dev/null +++ b/raylib-cpp/docs/search/all_9.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/all_9.js b/raylib-cpp/docs/search/all_9.js new file mode 100644 index 00000000..2582c7d3 --- /dev/null +++ b/raylib-cpp/docs/search/all_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['knot_220',['Knot',['../classraylib_1_1_mesh.html#a29bea6873743413a23c573bb2a3cebed',1,'raylib::Mesh']]] +]; diff --git a/raylib-cpp/docs/search/all_a.html b/raylib-cpp/docs/search/all_a.html new file mode 100644 index 00000000..f2f3d3a3 --- /dev/null +++ b/raylib-cpp/docs/search/all_a.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/all_a.js b/raylib-cpp/docs/search/all_a.js new file mode 100644 index 00000000..1fa074f6 --- /dev/null +++ b/raylib-cpp/docs/search/all_a.js @@ -0,0 +1,23 @@ +var searchData= +[ + ['length_221',['Length',['../classraylib_1_1_vector2.html#a31b7bc465faebf07ef894eee4291e725',1,'raylib::Vector2']]], + ['lengthsqr_222',['LengthSqr',['../classraylib_1_1_vector2.html#a3e68ca85bfbd5cbe8ebce0ad9e4688a4',1,'raylib::Vector2']]], + ['lerp_223',['Lerp',['../classraylib_1_1_vector2.html#a295e4514f3a3842d83aee1106543e294',1,'raylib::Vector2']]], + ['load_224',['Load',['../classraylib_1_1_image.html#a399564cc57fbee6d5055c3adf0da6ac7',1,'raylib::Image::Load()'],['../classraylib_1_1_material.html#ac482f46142b5ecc9eea4206aced73e26',1,'raylib::Material::Load()'],['../classraylib_1_1_model_animation.html#ae743a3f4d87b6c904b2b4737851f0e21',1,'raylib::ModelAnimation::Load()'],['../classraylib_1_1_shader.html#a65feaccca849680bb3f0a4424309dc53',1,'raylib::Shader::Load()'],['../classraylib_1_1_texture.html#a564e265a684d713f0a77d54eb22542ab',1,'raylib::Texture::Load()']]], + ['loadanim_225',['LoadAnim',['../classraylib_1_1_image.html#adda786a4dfe95e69e3594199f14f7e40',1,'raylib::Image']]], + ['loadcolors_226',['LoadColors',['../classraylib_1_1_image.html#a871b57724846bc69a7bd4ccba1c2c1c2',1,'raylib::Image']]], + ['loadcubemap_227',['LoadCubemap',['../classraylib_1_1_texture.html#a27f9c0e11401110fa2efe75e58092627',1,'raylib::Texture']]], + ['loadfiletext_228',['LoadFileText',['../namespaceraylib.html#ab04081e22c6ddef68a45eeea91001f82',1,'raylib']]], + ['loadfromimage_229',['LoadFromImage',['../classraylib_1_1_texture.html#a04a52fbcdb9456c14c21f0fa0532313d',1,'raylib::Texture']]], + ['loadfrommemory_230',['LoadFromMemory',['../classraylib_1_1_image.html#a272b76cc29e3e960d8487ee7b9c0c3cd',1,'raylib::Image']]], + ['loadimage_231',['LoadImage',['../namespaceraylib.html#a2ef2826f77c7b5ef61bc23b7bdd0c90f',1,'raylib']]], + ['loadimageanim_232',['LoadImageAnim',['../namespaceraylib.html#aad76b2bedb25cb9636e9de5078d82df9',1,'raylib']]], + ['loadimagefrommemory_233',['LoadImageFromMemory',['../namespaceraylib.html#a72b081f8ea1aed3e888a33e5f20b9430',1,'raylib']]], + ['loadimageraw_234',['LoadImageRaw',['../namespaceraylib.html#acc7e1f187de00bc85f7dcd153f0d740e',1,'raylib']]], + ['loadmodelfrom_235',['LoadModelFrom',['../classraylib_1_1_mesh.html#a192994cdc37a5f68cf149eb79024563d',1,'raylib::Mesh']]], + ['loadpalette_236',['LoadPalette',['../classraylib_1_1_image.html#a5938f6aa42e76acf7ba57340a2e7652f',1,'raylib::Image']]], + ['loadraw_237',['LoadRaw',['../classraylib_1_1_image.html#a66f5f0c4b322706d07d19968c893823d',1,'raylib::Image']]], + ['loadsamples_238',['LoadSamples',['../classraylib_1_1_wave.html#ac42dd244534663a8fb1da305006c9f3a',1,'raylib::Wave']]], + ['loadsound_239',['LoadSound',['../classraylib_1_1_wave.html#a6e3a60eee216af788eaa9362a22a847e',1,'raylib::Wave']]], + ['loadtexture_240',['LoadTexture',['../classraylib_1_1_image.html#aa0f3f43f2a0d357203c3a3b467fde011',1,'raylib::Image']]] +]; diff --git a/raylib-cpp/docs/search/all_b.html b/raylib-cpp/docs/search/all_b.html new file mode 100644 index 00000000..14f34036 --- /dev/null +++ b/raylib-cpp/docs/search/all_b.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/all_b.js b/raylib-cpp/docs/search/all_b.js new file mode 100644 index 00000000..3ada9d20 --- /dev/null +++ b/raylib-cpp/docs/search/all_b.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['material_241',['Material',['../classraylib_1_1_material.html',1,'raylib::Material'],['../classraylib_1_1_material.html#a85e551f0db58082ad9e4b46849a36a8c',1,'raylib::Material::Material()']]], + ['matrix_242',['Matrix',['../classraylib_1_1_matrix.html',1,'raylib']]], + ['maximize_243',['Maximize',['../classraylib_1_1_window.html#aee89de600dcc7e645452b4d2f88d55e3',1,'raylib::Window']]], + ['measuretext_244',['MeasureText',['../classraylib_1_1_font.html#a230f1f02c3b77b1319316ab7d45d2553',1,'raylib::Font::MeasureText()'],['../namespaceraylib.html#a7fc68bac19ab696df654038f8e1b1b2c',1,'raylib::MeasureText()']]], + ['mesh_245',['Mesh',['../classraylib_1_1_mesh.html',1,'raylib']]], + ['minimize_246',['Minimize',['../classraylib_1_1_window.html#a16f54f039449dc45b57849811754ceae',1,'raylib::Window']]], + ['mipmaps_247',['Mipmaps',['../classraylib_1_1_image.html#aaf8f93e11186f0be62d68ae3f932435f',1,'raylib::Image']]], + ['model_248',['Model',['../classraylib_1_1_model.html',1,'raylib']]], + ['modelanimation_249',['ModelAnimation',['../classraylib_1_1_model_animation.html',1,'raylib']]], + ['mouse_250',['Mouse',['../classraylib_1_1_mouse.html',1,'raylib']]], + ['movetowards_251',['MoveTowards',['../classraylib_1_1_vector2.html#a1daf7306af22e5f14c9ee6c08952194b',1,'raylib::Vector2']]], + ['music_252',['Music',['../classraylib_1_1_music.html',1,'raylib::Music'],['../classraylib_1_1_music.html#a3cbc2287ba5c8e55ce16c47bbb640c60',1,'raylib::Music::Music(const std::string &fileName)'],['../classraylib_1_1_music.html#a894c193e31d956b4c8763698beae17c4',1,'raylib::Music::Music(const std::string &fileType, unsigned char *data, int dataSize)']]] +]; diff --git a/raylib-cpp/docs/search/all_c.html b/raylib-cpp/docs/search/all_c.html new file mode 100644 index 00000000..da60ab8d --- /dev/null +++ b/raylib-cpp/docs/search/all_c.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/all_c.js b/raylib-cpp/docs/search/all_c.js new file mode 100644 index 00000000..4bacc0fa --- /dev/null +++ b/raylib-cpp/docs/search/all_c.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['normalize_253',['Normalize',['../classraylib_1_1_color.html#a70c0b9f2b6bc92724df1c87553cbca32',1,'raylib::Color::Normalize()'],['../classraylib_1_1_vector2.html#aee50557d8a60c2633de106f66b3d6cd5',1,'raylib::Vector2::Normalize()']]] +]; diff --git a/raylib-cpp/docs/search/all_d.html b/raylib-cpp/docs/search/all_d.html new file mode 100644 index 00000000..bc376fec --- /dev/null +++ b/raylib-cpp/docs/search/all_d.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/all_d.js b/raylib-cpp/docs/search/all_d.js new file mode 100644 index 00000000..67368cf5 --- /dev/null +++ b/raylib-cpp/docs/search/all_d.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['boundingbox_254',['BoundingBox',['../classraylib_1_1_mesh.html#a5c67dce6d54119cc8922f7ed697eab8c',1,'raylib::Mesh']]], + ['image_255',['Image',['../classraylib_1_1_texture.html#a7d77c3831e3d01bb4ea33e4fcc7a6e1e',1,'raylib::Texture']]], + ['model_256',['Model',['../classraylib_1_1_mesh.html#a8f62c7557383cf2a040bb5dd8f3ecaa1',1,'raylib::Mesh']]], + ['one_257',['One',['../classraylib_1_1_vector2.html#ae0d880ae074014c100a342292ff85deb',1,'raylib::Vector2']]], + ['openurl_258',['OpenURL',['../namespaceraylib.html#ac5d2b6117fd1760de466272a363abafd',1,'raylib']]], + ['operator_20int_259',['operator int',['../classraylib_1_1_color.html#a569352de1fc298f320d0a5c503ad47bf',1,'raylib::Color']]], + ['operator_20sound_260',['operator Sound',['../classraylib_1_1_wave.html#a362a52efd58c603c3aac82a4d8b7aad5',1,'raylib::Wave']]], + ['sound_261',['Sound',['../classraylib_1_1_wave.html#a7f54205425932d5ae6b7bab2ab3e5f87',1,'raylib::Wave']]], + ['string_262',['string',['../classraylib_1_1_gamepad.html#afd58495a8ac8066eab2aebd2d09fa49c',1,'raylib::Gamepad']]], + ['texture2d_263',['Texture2D',['../classraylib_1_1_image.html#a574b01ecc2c8c8eec54ddd83efe512c5',1,'raylib::Image']]] +]; diff --git a/raylib-cpp/docs/search/all_e.html b/raylib-cpp/docs/search/all_e.html new file mode 100644 index 00000000..2e3c74dc --- /dev/null +++ b/raylib-cpp/docs/search/all_e.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/all_e.js b/raylib-cpp/docs/search/all_e.js new file mode 100644 index 00000000..7f351166 --- /dev/null +++ b/raylib-cpp/docs/search/all_e.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['pause_264',['Pause',['../classraylib_1_1_audio_stream.html#aa620374153aa063a0e34f4260c6dce94',1,'raylib::AudioStream::Pause()'],['../classraylib_1_1_music.html#a810f0ae266f247237aa23574e1e31626',1,'raylib::Music::Pause()'],['../classraylib_1_1_sound.html#a51f64c5c76a86a6b6f2225870d5a83a3',1,'raylib::Sound::Pause()']]], + ['perlinnoise_265',['PerlinNoise',['../classraylib_1_1_image.html#aa27eb67bafc0aff3a1c9339bed548e21',1,'raylib::Image']]], + ['physics_266',['Physics',['../classraylib_1_1_physics.html',1,'raylib']]], + ['plane_267',['Plane',['../classraylib_1_1_mesh.html#a4a3885f78dc0d8a592e05653f5c178b4',1,'raylib::Mesh']]], + ['play_268',['Play',['../classraylib_1_1_audio_stream.html#a594754979b974479711879b7d4af082e',1,'raylib::AudioStream::Play()'],['../classraylib_1_1_music.html#a908ddb6c248c75bd1a3cabc1381a45fc',1,'raylib::Music::Play()'],['../classraylib_1_1_sound.html#a2fd3ff7a2653fa57dc2b0987e108a2ae',1,'raylib::Sound::Play()']]], + ['playmulti_269',['PlayMulti',['../classraylib_1_1_sound.html#adfe6e6915bb17eefd0ab58f5cb3aa7ba',1,'raylib::Sound']]], + ['poly_270',['Poly',['../classraylib_1_1_mesh.html#a52c3d52a426fb774bb3769acaa9b6732',1,'raylib::Mesh']]] +]; diff --git a/raylib-cpp/docs/search/all_f.html b/raylib-cpp/docs/search/all_f.html new file mode 100644 index 00000000..246f8ab1 --- /dev/null +++ b/raylib-cpp/docs/search/all_f.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/all_f.js b/raylib-cpp/docs/search/all_f.js new file mode 100644 index 00000000..19a36e3b --- /dev/null +++ b/raylib-cpp/docs/search/all_f.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['raylib_2dcpp_271',['raylib-cpp',['../index.html',1,'']]], + ['ray_272',['Ray',['../classraylib_1_1_ray.html',1,'raylib']]], + ['rayhitinfo_273',['RayHitInfo',['../classraylib_1_1_ray_hit_info.html',1,'raylib::RayHitInfo'],['../classraylib_1_1_ray_hit_info.html#a49f1140e2d8c67ef76759d3c0d6ee8e7',1,'raylib::RayHitInfo::RayHitInfo(const ::Ray &ray, const ::Mesh &mesh, const ::Matrix &transform)'],['../classraylib_1_1_ray_hit_info.html#af24d9b2dd4a98f2b96dfb2d6f2af0b48',1,'raylib::RayHitInfo::RayHitInfo(const ::Ray &ray, const ::Model &model)'],['../classraylib_1_1_ray_hit_info.html#a6f87aca15df04d35a4f30455be3c68e0',1,'raylib::RayHitInfo::RayHitInfo(const ::Ray &ray, ::Vector3 p1, ::Vector3 p2, ::Vector3 p3)'],['../classraylib_1_1_ray_hit_info.html#a4e03a3c5083ec7e1b7feb26d4aca2878',1,'raylib::RayHitInfo::RayHitInfo(const ::Ray &ray, float groundHeight)']]], + ['raylib_274',['raylib',['../namespaceraylib.html',1,'']]], + ['rectangle_275',['Rectangle',['../classraylib_1_1_rectangle.html',1,'raylib']]], + ['reflect_276',['Reflect',['../classraylib_1_1_vector2.html#a8732abb90648f01e75480a0edf7292d7',1,'raylib::Vector2']]], + ['rendertexture_277',['RenderTexture',['../classraylib_1_1_render_texture.html',1,'raylib']]], + ['resize_278',['Resize',['../classraylib_1_1_image.html#a62294223271290f049711ee96ca809fb',1,'raylib::Image']]], + ['resizecanvas_279',['ResizeCanvas',['../classraylib_1_1_image.html#aff0dbead0a926a18536b44f5048b284b',1,'raylib::Image']]], + ['resizenn_280',['ResizeNN',['../classraylib_1_1_image.html#a13f6b8aade2957218bdfa199857caa04',1,'raylib::Image']]], + ['restore_281',['Restore',['../classraylib_1_1_window.html#a936ba6f4614ab6b3c2552f88798ffac2',1,'raylib::Window']]], + ['resume_282',['Resume',['../classraylib_1_1_audio_stream.html#ab3514d8e8b8c8992046ef3e51e571c88',1,'raylib::AudioStream::Resume()'],['../classraylib_1_1_music.html#a5c5c67064aa37d2b3f3234a2a02230de',1,'raylib::Music::Resume()'],['../classraylib_1_1_sound.html#a08132251f7b6e4caec600475f610e2f5',1,'raylib::Sound::Resume()']]], + ['rotate_283',['Rotate',['../classraylib_1_1_vector2.html#a32a17f0018071cec378b89edc1f6d696',1,'raylib::Vector2']]], + ['rotateccw_284',['RotateCCW',['../classraylib_1_1_image.html#aa08513832d0ab58144f4418ba3b4b6d6',1,'raylib::Image']]], + ['rotatecw_285',['RotateCW',['../classraylib_1_1_image.html#aed253e5dd980e63b7fd7a8ef43ef7cf6',1,'raylib::Image']]] +]; diff --git a/raylib-cpp/docs/search/classes_0.html b/raylib-cpp/docs/search/classes_0.html new file mode 100644 index 00000000..f7e4c14e --- /dev/null +++ b/raylib-cpp/docs/search/classes_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/classes_0.js b/raylib-cpp/docs/search/classes_0.js new file mode 100644 index 00000000..9eef4189 --- /dev/null +++ b/raylib-cpp/docs/search/classes_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['audiodevice_441',['AudioDevice',['../classraylib_1_1_audio_device.html',1,'raylib']]], + ['audiostream_442',['AudioStream',['../classraylib_1_1_audio_stream.html',1,'raylib']]] +]; diff --git a/raylib-cpp/docs/search/classes_1.html b/raylib-cpp/docs/search/classes_1.html new file mode 100644 index 00000000..c7ff4b31 --- /dev/null +++ b/raylib-cpp/docs/search/classes_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/classes_1.js b/raylib-cpp/docs/search/classes_1.js new file mode 100644 index 00000000..3bf495b5 --- /dev/null +++ b/raylib-cpp/docs/search/classes_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['boundingbox_443',['BoundingBox',['../classraylib_1_1_bounding_box.html',1,'raylib']]] +]; diff --git a/raylib-cpp/docs/search/classes_2.html b/raylib-cpp/docs/search/classes_2.html new file mode 100644 index 00000000..0d1e8a0c --- /dev/null +++ b/raylib-cpp/docs/search/classes_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/classes_2.js b/raylib-cpp/docs/search/classes_2.js new file mode 100644 index 00000000..08413d19 --- /dev/null +++ b/raylib-cpp/docs/search/classes_2.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['camera2d_444',['Camera2D',['../classraylib_1_1_camera2_d.html',1,'raylib']]], + ['camera3d_445',['Camera3D',['../classraylib_1_1_camera3_d.html',1,'raylib']]], + ['color_446',['Color',['../classraylib_1_1_color.html',1,'raylib']]] +]; diff --git a/raylib-cpp/docs/search/classes_3.html b/raylib-cpp/docs/search/classes_3.html new file mode 100644 index 00000000..21025456 --- /dev/null +++ b/raylib-cpp/docs/search/classes_3.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/classes_3.js b/raylib-cpp/docs/search/classes_3.js new file mode 100644 index 00000000..03ebbb44 --- /dev/null +++ b/raylib-cpp/docs/search/classes_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['font_447',['Font',['../classraylib_1_1_font.html',1,'raylib']]] +]; diff --git a/raylib-cpp/docs/search/classes_4.html b/raylib-cpp/docs/search/classes_4.html new file mode 100644 index 00000000..095ab595 --- /dev/null +++ b/raylib-cpp/docs/search/classes_4.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/classes_4.js b/raylib-cpp/docs/search/classes_4.js new file mode 100644 index 00000000..605a27b5 --- /dev/null +++ b/raylib-cpp/docs/search/classes_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['gamepad_448',['Gamepad',['../classraylib_1_1_gamepad.html',1,'raylib']]] +]; diff --git a/raylib-cpp/docs/search/classes_5.html b/raylib-cpp/docs/search/classes_5.html new file mode 100644 index 00000000..fc9cdc99 --- /dev/null +++ b/raylib-cpp/docs/search/classes_5.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/classes_5.js b/raylib-cpp/docs/search/classes_5.js new file mode 100644 index 00000000..6cf0e844 --- /dev/null +++ b/raylib-cpp/docs/search/classes_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['image_449',['Image',['../classraylib_1_1_image.html',1,'raylib']]] +]; diff --git a/raylib-cpp/docs/search/classes_6.html b/raylib-cpp/docs/search/classes_6.html new file mode 100644 index 00000000..1ecfdddf --- /dev/null +++ b/raylib-cpp/docs/search/classes_6.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/classes_6.js b/raylib-cpp/docs/search/classes_6.js new file mode 100644 index 00000000..d9f1b5b7 --- /dev/null +++ b/raylib-cpp/docs/search/classes_6.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['material_450',['Material',['../classraylib_1_1_material.html',1,'raylib']]], + ['matrix_451',['Matrix',['../classraylib_1_1_matrix.html',1,'raylib']]], + ['mesh_452',['Mesh',['../classraylib_1_1_mesh.html',1,'raylib']]], + ['model_453',['Model',['../classraylib_1_1_model.html',1,'raylib']]], + ['modelanimation_454',['ModelAnimation',['../classraylib_1_1_model_animation.html',1,'raylib']]], + ['mouse_455',['Mouse',['../classraylib_1_1_mouse.html',1,'raylib']]], + ['music_456',['Music',['../classraylib_1_1_music.html',1,'raylib']]] +]; diff --git a/raylib-cpp/docs/search/classes_7.html b/raylib-cpp/docs/search/classes_7.html new file mode 100644 index 00000000..0fc6fc3e --- /dev/null +++ b/raylib-cpp/docs/search/classes_7.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/classes_7.js b/raylib-cpp/docs/search/classes_7.js new file mode 100644 index 00000000..c3e62fc8 --- /dev/null +++ b/raylib-cpp/docs/search/classes_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['physics_457',['Physics',['../classraylib_1_1_physics.html',1,'raylib']]] +]; diff --git a/raylib-cpp/docs/search/classes_8.html b/raylib-cpp/docs/search/classes_8.html new file mode 100644 index 00000000..ac8af7dc --- /dev/null +++ b/raylib-cpp/docs/search/classes_8.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/classes_8.js b/raylib-cpp/docs/search/classes_8.js new file mode 100644 index 00000000..94f8e7a4 --- /dev/null +++ b/raylib-cpp/docs/search/classes_8.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['ray_458',['Ray',['../classraylib_1_1_ray.html',1,'raylib']]], + ['rayhitinfo_459',['RayHitInfo',['../classraylib_1_1_ray_hit_info.html',1,'raylib']]], + ['rectangle_460',['Rectangle',['../classraylib_1_1_rectangle.html',1,'raylib']]], + ['rendertexture_461',['RenderTexture',['../classraylib_1_1_render_texture.html',1,'raylib']]] +]; diff --git a/raylib-cpp/docs/search/classes_9.html b/raylib-cpp/docs/search/classes_9.html new file mode 100644 index 00000000..86cad046 --- /dev/null +++ b/raylib-cpp/docs/search/classes_9.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/classes_9.js b/raylib-cpp/docs/search/classes_9.js new file mode 100644 index 00000000..fcf12061 --- /dev/null +++ b/raylib-cpp/docs/search/classes_9.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['shader_462',['Shader',['../classraylib_1_1_shader.html',1,'raylib']]], + ['sound_463',['Sound',['../classraylib_1_1_sound.html',1,'raylib']]] +]; diff --git a/raylib-cpp/docs/search/classes_a.html b/raylib-cpp/docs/search/classes_a.html new file mode 100644 index 00000000..4201e97e --- /dev/null +++ b/raylib-cpp/docs/search/classes_a.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/classes_a.js b/raylib-cpp/docs/search/classes_a.js new file mode 100644 index 00000000..fd1ec69f --- /dev/null +++ b/raylib-cpp/docs/search/classes_a.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['texture_464',['Texture',['../classraylib_1_1_texture.html',1,'raylib']]] +]; diff --git a/raylib-cpp/docs/search/classes_b.html b/raylib-cpp/docs/search/classes_b.html new file mode 100644 index 00000000..f88a5780 --- /dev/null +++ b/raylib-cpp/docs/search/classes_b.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/classes_b.js b/raylib-cpp/docs/search/classes_b.js new file mode 100644 index 00000000..40a15eee --- /dev/null +++ b/raylib-cpp/docs/search/classes_b.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['vector2_465',['Vector2',['../classraylib_1_1_vector2.html',1,'raylib']]], + ['vector3_466',['Vector3',['../classraylib_1_1_vector3.html',1,'raylib']]], + ['vector4_467',['Vector4',['../classraylib_1_1_vector4.html',1,'raylib']]], + ['vrstereoconfig_468',['VrStereoConfig',['../classraylib_1_1_vr_stereo_config.html',1,'raylib']]] +]; diff --git a/raylib-cpp/docs/search/classes_c.html b/raylib-cpp/docs/search/classes_c.html new file mode 100644 index 00000000..fa0cf4d6 --- /dev/null +++ b/raylib-cpp/docs/search/classes_c.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/classes_c.js b/raylib-cpp/docs/search/classes_c.js new file mode 100644 index 00000000..455b18d3 --- /dev/null +++ b/raylib-cpp/docs/search/classes_c.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['wave_469',['Wave',['../classraylib_1_1_wave.html',1,'raylib']]], + ['window_470',['Window',['../classraylib_1_1_window.html',1,'raylib']]] +]; diff --git a/raylib-cpp/docs/search/classes_d.html b/raylib-cpp/docs/search/classes_d.html new file mode 100644 index 00000000..0b6b1371 --- /dev/null +++ b/raylib-cpp/docs/search/classes_d.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/classes_d.js b/raylib-cpp/docs/search/classes_d.js new file mode 100644 index 00000000..268e572c --- /dev/null +++ b/raylib-cpp/docs/search/classes_d.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['wave_629',['Wave',['../class_wave.html',1,'Wave'],['../classraylib_1_1_wave.html',1,'raylib::Wave']]], + ['window_630',['Window',['../classraylib_1_1_window.html',1,'raylib']]] +]; diff --git a/raylib-cpp/docs/search/close.png b/raylib-cpp/docs/search/close.png new file mode 100644 index 00000000..9342d3df Binary files /dev/null and b/raylib-cpp/docs/search/close.png differ diff --git a/raylib-cpp/docs/search/functions_0.html b/raylib-cpp/docs/search/functions_0.html new file mode 100644 index 00000000..e17c7111 --- /dev/null +++ b/raylib-cpp/docs/search/functions_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/functions_0.js b/raylib-cpp/docs/search/functions_0.js new file mode 100644 index 00000000..819f93e4 --- /dev/null +++ b/raylib-cpp/docs/search/functions_0.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['alpha_472',['Alpha',['../classraylib_1_1_color.html#ad00d99cc5d6212d16e4a264bb7d984d8',1,'raylib::Color']]], + ['alphablend_473',['AlphaBlend',['../classraylib_1_1_color.html#a127c0c75e8f28b01b6861897c0c89c88',1,'raylib::Color']]], + ['alphacrop_474',['AlphaCrop',['../classraylib_1_1_image.html#a5945a136f675e024dda002075b34dfef',1,'raylib::Image']]], + ['alphamask_475',['AlphaMask',['../classraylib_1_1_image.html#a3bbcbb96834c526b6b789a804078d472',1,'raylib::Image']]], + ['alphapremultiply_476',['AlphaPremultiply',['../classraylib_1_1_image.html#ace3ef45495b17bf2e5a645931b792483',1,'raylib::Image']]], + ['angle_477',['Angle',['../classraylib_1_1_vector2.html#af912d448e687a2a39fed158b4bf18a12',1,'raylib::Vector2']]], + ['audiodevice_478',['AudioDevice',['../classraylib_1_1_audio_device.html#ada9e1459186cb8658b28c1fbeec0f261',1,'raylib::AudioDevice']]], + ['audiostream_479',['AudioStream',['../classraylib_1_1_audio_stream.html#a256bc095aacdf0234f5dcb6a764822be',1,'raylib::AudioStream']]] +]; diff --git a/raylib-cpp/docs/search/functions_1.html b/raylib-cpp/docs/search/functions_1.html new file mode 100644 index 00000000..0ddac0a4 --- /dev/null +++ b/raylib-cpp/docs/search/functions_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/functions_1.js b/raylib-cpp/docs/search/functions_1.js new file mode 100644 index 00000000..f68170c9 --- /dev/null +++ b/raylib-cpp/docs/search/functions_1.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['begindrawing_480',['BeginDrawing',['../classraylib_1_1_window.html#a8f2b932e51fc0ac154e2fd578691ebd6',1,'raylib::Window']]], + ['beginmode_481',['BeginMode',['../classraylib_1_1_camera3_d.html#a0aeaa99678bacc68d410a4d42e95548a',1,'raylib::Camera3D::BeginMode()'],['../classraylib_1_1_render_texture.html#a7d05e471bb2d7fc83094f7a9463d836f',1,'raylib::RenderTexture::BeginMode()'],['../classraylib_1_1_shader.html#a63311cdadb7f81791a61e2ccea33efbe',1,'raylib::Shader::BeginMode()'],['../classraylib_1_1_vr_stereo_config.html#aee11917e6f68d22e12e06a81d58ee340',1,'raylib::VrStereoConfig::BeginMode()']]], + ['binormals_482',['Binormals',['../classraylib_1_1_mesh.html#a9288f896d13ca0f5c720ea1e6ef65189',1,'raylib::Mesh']]], + ['boundingbox_483',['BoundingBox',['../classraylib_1_1_bounding_box.html#a8417253000c9381b4afc1869d5e3a611',1,'raylib::BoundingBox::BoundingBox()'],['../classraylib_1_1_mesh.html#a045bdf62b9676b07c5745172383802c7',1,'raylib::Mesh::BoundingBox()']]] +]; diff --git a/raylib-cpp/docs/search/functions_10.html b/raylib-cpp/docs/search/functions_10.html new file mode 100644 index 00000000..09422e1e --- /dev/null +++ b/raylib-cpp/docs/search/functions_10.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/functions_10.js b/raylib-cpp/docs/search/functions_10.js new file mode 100644 index 00000000..e2c77601 --- /dev/null +++ b/raylib-cpp/docs/search/functions_10.js @@ -0,0 +1,120 @@ +var searchData= +[ + ['savefiletext_742',['SaveFileText',['../namespaceraylib.html#a59f827734d90fbc8993b0c4be6e73d78',1,'raylib']]], + ['seta_743',['SetA',['../classraylib_1_1_color.html#a32317cff410007a6801f59d447e5f4d6',1,'raylib::Color']]], + ['setaltcontrol_744',['SetAltControl',['../classraylib_1_1_camera3_d.html#af4494c05808722f3111c6bcb3703b662',1,'raylib::Camera3D']]], + ['setanimnormals_745',['SetAnimNormals',['../classraylib_1_1_mesh.html#aabdeb09b82063c1235407955fb927cb7',1,'raylib::Mesh']]], + ['setanimvertices_746',['SetAnimVertices',['../classraylib_1_1_mesh.html#ae929f61ce9c45e933e03d55edfbdf119',1,'raylib::Mesh']]], + ['setb_747',['SetB',['../classraylib_1_1_color.html#a2a22f079f84d9dc63a5341e40a055dc2',1,'raylib::Color']]], + ['setbasesize_748',['SetBaseSize',['../classraylib_1_1_font.html#ae649dde6d344112b02d4f560eb638f94',1,'raylib::Font']]], + ['setbindpoe_749',['SetBindPoe',['../classraylib_1_1_model.html#a10b06be8cf5d899f5c77c43468eb33d4',1,'raylib::Model']]], + ['setbonecount_750',['SetBoneCount',['../classraylib_1_1_model.html#aaa8d7b34437519af8454b5e0d7de907a',1,'raylib::Model::SetBoneCount()'],['../classraylib_1_1_model_animation.html#a6119b594cad4ead5dab370a8050c42af',1,'raylib::ModelAnimation::SetBoneCount()']]], + ['setboneids_751',['SetBoneIds',['../classraylib_1_1_mesh.html#ad8f332266326dba1562570e0b319ada5',1,'raylib::Mesh']]], + ['setbones_752',['SetBones',['../classraylib_1_1_model.html#a094bf49ad8f4233ec4d4ad8f3ea211eb',1,'raylib::Model::SetBones()'],['../classraylib_1_1_model_animation.html#ae0f66ea0263dfdad7b06bf04d5d118b3',1,'raylib::ModelAnimation::SetBones()']]], + ['setboneweights_753',['SetBoneWeights',['../classraylib_1_1_mesh.html#afb7f3408f166bed1fb79e681637b2a2c',1,'raylib::Mesh']]], + ['setbuffer_754',['SetBuffer',['../classraylib_1_1_audio_stream.html#aec6bfde9f3a07a8ec95f6533ac934f0d',1,'raylib::AudioStream']]], + ['setbuffersizedefault_755',['SetBufferSizeDefault',['../classraylib_1_1_audio_stream.html#a8a58e7e88a4fec0ce04cdc62614c5f5c',1,'raylib::AudioStream']]], + ['setchannels_756',['SetChannels',['../classraylib_1_1_audio_stream.html#aaa94380855352cfd272d32bfa63c67dc',1,'raylib::AudioStream::SetChannels()'],['../classraylib_1_1_wave.html#a8e2031312df790a9b49f4cf828fcf59c',1,'raylib::Wave::SetChannels()']]], + ['setchars_757',['SetChars',['../classraylib_1_1_font.html#ae741128d1b41a4529d4f23a6d8eea913',1,'raylib::Font']]], + ['setcharscount_758',['SetCharsCount',['../classraylib_1_1_font.html#a5b18d0dba51e54d83faf62205a6a92c6',1,'raylib::Font']]], + ['setcharspadding_759',['SetCharsPadding',['../classraylib_1_1_font.html#ac600ada80290128ea336625275d2893b',1,'raylib::Font']]], + ['setclipboardtext_760',['SetClipboardText',['../namespaceraylib.html#a908a40d71074671f52382da28aee734b',1,'raylib']]], + ['setcolors_761',['SetColors',['../classraylib_1_1_mesh.html#ac6b674c3044e9bfc0bb67aba765a47ef',1,'raylib::Mesh']]], + ['setctxdata_762',['SetCtxData',['../classraylib_1_1_music.html#a56fd8d72fd7bdc920f546d9e8da05953',1,'raylib::Music']]], + ['setctxtype_763',['SetCtxType',['../classraylib_1_1_music.html#a040d2fce2f109c952604dd909bb15fd7',1,'raylib::Music']]], + ['setdata_764',['SetData',['../classraylib_1_1_image.html#a3b92f7424fc37e4fb97d274cdc3f13f0',1,'raylib::Image::SetData()'],['../classraylib_1_1_wave.html#ae4c998bab42616a082348ee1d0062497',1,'raylib::Wave::SetData()']]], + ['setdepth_765',['SetDepth',['../classraylib_1_1_render_texture.html#ab24569c92eea7bffe99354c54ddc5235',1,'raylib::RenderTexture']]], + ['setdirection_766',['SetDirection',['../classraylib_1_1_ray.html#a118df187ddd0ad804b743aaa9532f46f',1,'raylib::Ray']]], + ['setdistance_767',['SetDistance',['../classraylib_1_1_ray_hit_info.html#a6f57d6aab046a698e12543bf018fd2c6',1,'raylib::RayHitInfo']]], + ['setfilter_768',['SetFilter',['../classraylib_1_1_texture.html#a2f15e4f84badfdb2520133b645908bb7',1,'raylib::Texture']]], + ['setformat_769',['SetFormat',['../classraylib_1_1_image.html#a4c32c43b8f88aa2ac4377dff8f16331b',1,'raylib::Image::SetFormat()'],['../classraylib_1_1_texture.html#a3efcd6e96dc5fa815d4a301432cad0d6',1,'raylib::Texture::SetFormat()']]], + ['setfovy_770',['SetFovy',['../classraylib_1_1_camera3_d.html#a763fd077ad195feb7d75ae97ec3d37e1',1,'raylib::Camera3D']]], + ['setframecount_771',['SetFrameCount',['../classraylib_1_1_model_animation.html#aedc42a2ae684a4b27d68b5100c79f361',1,'raylib::ModelAnimation']]], + ['setframeposes_772',['SetFramePoses',['../classraylib_1_1_model_animation.html#ae43fa14074f5ad5f2d288ac945e66061',1,'raylib::ModelAnimation']]], + ['setfullscreen_773',['SetFullscreen',['../classraylib_1_1_window.html#aeb4c203ec7f228bb196d7d6c3278984f',1,'raylib::Window']]], + ['setg_774',['SetG',['../classraylib_1_1_color.html#a0a6de4701e07f60c25ae4463619b4c77',1,'raylib::Color']]], + ['setheight_775',['SetHeight',['../classraylib_1_1_image.html#a499bc6b6b682ec6bb7184e53b32c8dfa',1,'raylib::Image::SetHeight()'],['../classraylib_1_1_rectangle.html#adaa2e9850498344b259f258c5879a60b',1,'raylib::Rectangle::SetHeight()'],['../classraylib_1_1_texture.html#aa535c1944927a0fc706651a2d69b04c6',1,'raylib::Texture::SetHeight()']]], + ['sethit_776',['SetHit',['../classraylib_1_1_ray_hit_info.html#a20d84afa8ada5738e1d302ea4018bca1',1,'raylib::RayHitInfo']]], + ['seticon_777',['SetIcon',['../classraylib_1_1_window.html#a5035259115c985be13b506af12b1f525',1,'raylib::Window']]], + ['setid_778',['SetId',['../classraylib_1_1_render_texture.html#a962803da3c2a50de3f4a337ebfd47fa2',1,'raylib::RenderTexture::SetId()'],['../classraylib_1_1_shader.html#ad989f72fce0403b1b01d88e1709de512',1,'raylib::Shader::SetId()'],['../classraylib_1_1_texture.html#a54089b8fa2ce1a13c0edcd4270990b1f',1,'raylib::Texture::SetId()']]], + ['setindices_779',['SetIndices',['../classraylib_1_1_mesh.html#a6197ea297eb6777acb9903c9f5a0d34a',1,'raylib::Mesh']]], + ['setlocs_780',['SetLocs',['../classraylib_1_1_shader.html#ac1ed2a53fbb669eb877c9f80ada02174',1,'raylib::Shader']]], + ['setlooping_781',['SetLooping',['../classraylib_1_1_music.html#a57eb787882e835db6f49a2354379280b',1,'raylib::Music']]], + ['setm0_782',['SetM0',['../classraylib_1_1_matrix.html#ab06885a55d9508025a06fa1eb85236ca',1,'raylib::Matrix']]], + ['setm1_783',['SetM1',['../classraylib_1_1_matrix.html#a069ec510cb062cb32ba069aee5d81905',1,'raylib::Matrix']]], + ['setm10_784',['SetM10',['../classraylib_1_1_matrix.html#a9f00f8c7c15b09882cc34ab1f3a3dea7',1,'raylib::Matrix']]], + ['setm11_785',['SetM11',['../classraylib_1_1_matrix.html#a3b7edcbfcefac3252f37657c5a9fe02b',1,'raylib::Matrix']]], + ['setm12_786',['SetM12',['../classraylib_1_1_matrix.html#aeab89067c1bd42ebc199a397c3d1326d',1,'raylib::Matrix']]], + ['setm13_787',['SetM13',['../classraylib_1_1_matrix.html#a77e33ed6159308962453f7a14d4c6f05',1,'raylib::Matrix']]], + ['setm14_788',['SetM14',['../classraylib_1_1_matrix.html#a6fa0a349ce00b2bb84394c8ac223cb27',1,'raylib::Matrix']]], + ['setm15_789',['SetM15',['../classraylib_1_1_matrix.html#aa8b769512ab1c1685d3d2cf70405c0d4',1,'raylib::Matrix']]], + ['setm2_790',['SetM2',['../classraylib_1_1_matrix.html#abb0b7df50104c3e427a8852b73467ccc',1,'raylib::Matrix']]], + ['setm3_791',['SetM3',['../classraylib_1_1_matrix.html#a820323176b4de347589f39642b86b0ca',1,'raylib::Matrix']]], + ['setm4_792',['SetM4',['../classraylib_1_1_matrix.html#ae920da976ff033bc5261c878d1d83964',1,'raylib::Matrix']]], + ['setm5_793',['SetM5',['../classraylib_1_1_matrix.html#a62fc44a64938df432cc1374f2ee18794',1,'raylib::Matrix']]], + ['setm6_794',['SetM6',['../classraylib_1_1_matrix.html#aa327bd7e7cfd33692170f55fbd396e49',1,'raylib::Matrix']]], + ['setm7_795',['SetM7',['../classraylib_1_1_matrix.html#af7f4794ad0bee252ce23b785b0ff22e1',1,'raylib::Matrix']]], + ['setm8_796',['SetM8',['../classraylib_1_1_matrix.html#a5417c6adbc0106783dd8f05a279d9c02',1,'raylib::Matrix']]], + ['setm9_797',['SetM9',['../classraylib_1_1_matrix.html#a2476f470c2462a859ea139d7013f272c',1,'raylib::Matrix']]], + ['setmaps_798',['SetMaps',['../classraylib_1_1_material.html#a629e453e6e682bde8e0a7db31dda7523',1,'raylib::Material']]], + ['setmaterial_799',['SetMaterial',['../classraylib_1_1_texture.html#a8667f5e1c478cfe06e48a1a98f3c1368',1,'raylib::Texture']]], + ['setmaterialcount_800',['SetMaterialCount',['../classraylib_1_1_model.html#a6ba6210b8a4e52cee98529f2d7b82b67',1,'raylib::Model']]], + ['setmaterials_801',['SetMaterials',['../classraylib_1_1_model.html#a9f9f5f426134239d73d681da5283dc9f',1,'raylib::Model']]], + ['setmax_802',['SetMax',['../classraylib_1_1_bounding_box.html#a6c58c71a3be8e2b821c4fb0be3b176f1',1,'raylib::BoundingBox']]], + ['setmeshcount_803',['SetMeshCount',['../classraylib_1_1_model.html#a5fbf1e02e1d0aa65d69dce2f1908d327',1,'raylib::Model']]], + ['setmeshes_804',['SetMeshes',['../classraylib_1_1_model.html#a8ed39c91c497b06b00e125348c3e77a9',1,'raylib::Model']]], + ['setmeshmaterial_805',['SetMeshMaterial',['../classraylib_1_1_model.html#a27d80234c7c1f128d9ca8faa1b2c4b73',1,'raylib::Model::SetMeshMaterial(int *value)'],['../classraylib_1_1_model.html#acb7831c2542e8e1a7b80859cc7f43aa1',1,'raylib::Model::SetMeshMaterial(int meshId, int materialId)']]], + ['setmin_806',['SetMin',['../classraylib_1_1_bounding_box.html#a57afef6e7f3e032f3d804ec228ca4ff1',1,'raylib::BoundingBox']]], + ['setminsize_807',['SetMinSize',['../classraylib_1_1_window.html#abd534b189b57a77e491bd7852c9ee3a4',1,'raylib::Window']]], + ['setmipmaps_808',['SetMipmaps',['../classraylib_1_1_image.html#a0018742a01c6a9dfa7d202a696566f27',1,'raylib::Image::SetMipmaps()'],['../classraylib_1_1_texture.html#a254383891cab574ba50751ad44e42c7f',1,'raylib::Texture::SetMipmaps()']]], + ['setmode_809',['SetMode',['../classraylib_1_1_camera3_d.html#a9a2649478bcbc00bc738112d9deacc04',1,'raylib::Camera3D']]], + ['setmonitor_810',['SetMonitor',['../classraylib_1_1_window.html#a69b43267e498bdbe64092cfb96e0e950',1,'raylib::Window']]], + ['setmovecontrols_811',['SetMoveControls',['../classraylib_1_1_camera3_d.html#a6d179e8e85e580dc9e50b6d01c99dd51',1,'raylib::Camera3D']]], + ['setnormal_812',['SetNormal',['../classraylib_1_1_ray_hit_info.html#a77b21d6aed725610c29dac7f0134859a',1,'raylib::RayHitInfo']]], + ['setnormals_813',['SetNormals',['../classraylib_1_1_mesh.html#a114396c730c79bf84e17e2b5ee668723',1,'raylib::Mesh']]], + ['setnumber_814',['SetNumber',['../classraylib_1_1_gamepad.html#aaba2aeeb551b7f4f0d6ffc147614f71b',1,'raylib::Gamepad']]], + ['setoffset_815',['SetOffset',['../classraylib_1_1_camera2_d.html#a280d095df3201cc1ff6398dc8bfe88cb',1,'raylib::Camera2D']]], + ['setpitch_816',['SetPitch',['../classraylib_1_1_audio_stream.html#a3142331c775e25f172247d86fd112207',1,'raylib::AudioStream::SetPitch()'],['../classraylib_1_1_music.html#a863348374483c4b9b01f6e2624f833e8',1,'raylib::Music::SetPitch()'],['../classraylib_1_1_sound.html#a5018b4876727080e904385ce98ee4990',1,'raylib::Sound::SetPitch()']]], + ['setposition_817',['SetPosition',['../classraylib_1_1_camera3_d.html#a8788c4e1bd4e6138528f498288a118c4',1,'raylib::Camera3D::SetPosition()'],['../classraylib_1_1_ray.html#a58e766e005e207f9d8162afe7a35939e',1,'raylib::Ray::SetPosition()'],['../classraylib_1_1_ray_hit_info.html#a8fbe154d1bfb9eddff125aabde196f78',1,'raylib::RayHitInfo::SetPosition()'],['../classraylib_1_1_window.html#a662e058a9f5b3121e6280411fa0cc73d',1,'raylib::Window::SetPosition(int x, int y)'],['../classraylib_1_1_window.html#a701de0c79e8252538cd080ddfa51952d',1,'raylib::Window::SetPosition(const ::Vector2 &position)']]], + ['setprojection_818',['SetProjection',['../classraylib_1_1_camera3_d.html#a54a6d1c674178f3a571747c14bf9b9d4',1,'raylib::Camera3D']]], + ['setr_819',['SetR',['../classraylib_1_1_color.html#a5e3b3a2f7be0f5a314c8afcc25548515',1,'raylib::Color']]], + ['setrecs_820',['SetRecs',['../classraylib_1_1_font.html#a1030f35362a541bc750605f0e47592e9',1,'raylib::Font']]], + ['setrotation_821',['SetRotation',['../classraylib_1_1_camera2_d.html#a078b6d4f0b4a93e57fa005886d71a403',1,'raylib::Camera2D']]], + ['setsamplecount_822',['SetSampleCount',['../classraylib_1_1_music.html#a1cef139c624311b21259bd3d1ed84db2',1,'raylib::Music::SetSampleCount()'],['../classraylib_1_1_sound.html#abdf29d299d655557a2d44cfc2b5ac54e',1,'raylib::Sound::SetSampleCount()'],['../classraylib_1_1_wave.html#aac039a9470327b6a6bdba2a9dde39362',1,'raylib::Wave::SetSampleCount()']]], + ['setsamplerate_823',['SetSampleRate',['../classraylib_1_1_audio_stream.html#a00a71071bf2f18ab7761de67d885ecea',1,'raylib::AudioStream::SetSampleRate()'],['../classraylib_1_1_wave.html#a49e420bdac56451a50f8a45966cc60a4',1,'raylib::Wave::SetSampleRate()']]], + ['setsamplesize_824',['SetSampleSize',['../classraylib_1_1_audio_stream.html#a214328e8f215f493bff32c0d9e9fc962',1,'raylib::AudioStream::SetSampleSize()'],['../classraylib_1_1_wave.html#acc3cdf1f245ec2eb17766b25b47ef2d2',1,'raylib::Wave::SetSampleSize()']]], + ['setshader_825',['SetShader',['../classraylib_1_1_material.html#ae52f7a1005f77683fadb5bb2d6f10669',1,'raylib::Material']]], + ['setshadervalue_826',['SetShaderValue',['../classraylib_1_1_matrix.html#a388c9c8913cfae69bfb840bbfab95fa9',1,'raylib::Matrix']]], + ['setsize_827',['SetSize',['../classraylib_1_1_window.html#a9a51c4a61cb8c6fbf14e164e7c3afa50',1,'raylib::Window::SetSize(int width, int height)'],['../classraylib_1_1_window.html#a51be4f5c35dd84abbaa174df913aa4c7',1,'raylib::Window::SetSize(const ::Vector2 &size)']]], + ['setsmoothzoomcontrol_828',['SetSmoothZoomControl',['../classraylib_1_1_camera3_d.html#a6263a91ecfcc94144cd4cbff82396e78',1,'raylib::Camera3D']]], + ['setstate_829',['SetState',['../classraylib_1_1_window.html#a8f65f0cddfc91ba7c5c5efe0b5deb063',1,'raylib::Window']]], + ['setstream_830',['SetStream',['../classraylib_1_1_music.html#af00ed20b552cd395df95fddad4fa460e',1,'raylib::Music::SetStream()'],['../classraylib_1_1_sound.html#a6fd54c39f3101a23c49f4266344d59b5',1,'raylib::Sound::SetStream()']]], + ['settangents_831',['SetTangents',['../classraylib_1_1_mesh.html#a34fcc4eb9ab217e5b14ec722d23ecf8e',1,'raylib::Mesh']]], + ['settarget_832',['SetTarget',['../classraylib_1_1_camera2_d.html#adc9a7d85d9db33fa5a5cda2a0405f7e8',1,'raylib::Camera2D::SetTarget()'],['../classraylib_1_1_camera3_d.html#ac13f2010e8053fabbfd6e932375dfa95',1,'raylib::Camera3D::SetTarget()']]], + ['settargetfps_833',['SetTargetFPS',['../classraylib_1_1_window.html#a191fafa4e6e094477c15c157f00a18a4',1,'raylib::Window']]], + ['settexcoords_834',['SetTexCoords',['../classraylib_1_1_mesh.html#a8bb633e4e39dbd4101cac8ce7a119162',1,'raylib::Mesh']]], + ['settexcoords2_835',['SetTexCoords2',['../classraylib_1_1_mesh.html#a6250a00b596178cf0ef3b3a240b8e822',1,'raylib::Mesh']]], + ['settexture_836',['SetTexture',['../classraylib_1_1_font.html#ac50d5aa47129525b46e935d4c6f0d0a8',1,'raylib::Font::SetTexture()'],['../classraylib_1_1_material.html#a563a153517435efba319c750d7bd0379',1,'raylib::Material::SetTexture()'],['../classraylib_1_1_render_texture.html#a06acb5fa12b2404449f018978cef0f81',1,'raylib::RenderTexture::SetTexture()']]], + ['settitle_837',['SetTitle',['../classraylib_1_1_window.html#a306c896a81dd5790af0c8a8617b907d4',1,'raylib::Window']]], + ['settransform_838',['SetTransform',['../classraylib_1_1_model.html#ac30c84bbf7b1e0129bb48e48b5c71745',1,'raylib::Model']]], + ['settrianglecount_839',['SetTriangleCount',['../classraylib_1_1_mesh.html#a6052f0983fe1089e09da26572a12d721',1,'raylib::Mesh']]], + ['setup_840',['SetUp',['../classraylib_1_1_camera3_d.html#a4bf005a9f24cee0854d4eb3badd3fc0d',1,'raylib::Camera3D']]], + ['setvalue_841',['SetValue',['../classraylib_1_1_shader.html#ac06aca8c81dc9dcc50d27c3b46a26712',1,'raylib::Shader::SetValue(int uniformLoc, const std::string &value, int uniformType)'],['../classraylib_1_1_shader.html#afdbe29251bd12788759b3c4978fb68d3',1,'raylib::Shader::SetValue(int uniformLoc, const std::string &value, int uniformType, int count)'],['../classraylib_1_1_shader.html#adade0b76feffac6c439efb46586f4099',1,'raylib::Shader::SetValue(int uniformLoc, const ::Matrix &mat)'],['../classraylib_1_1_shader.html#a7bbc8d326c377cee898bf772dda1fc1c',1,'raylib::Shader::SetValue(int uniformLoc, const ::Texture2D &texture)']]], + ['setvaoid_842',['SetVaoId',['../classraylib_1_1_mesh.html#a8f1090f17c7f909dc705a26f79e3823c',1,'raylib::Mesh']]], + ['setvboid_843',['SetVboId',['../classraylib_1_1_mesh.html#a8965c1740e9fd27172dab6ef5687b24b',1,'raylib::Mesh']]], + ['setvertexcount_844',['SetVertexCount',['../classraylib_1_1_mesh.html#a06ee0812528d387d8d55473450f6f3cd',1,'raylib::Mesh']]], + ['setvertices_845',['SetVertices',['../classraylib_1_1_mesh.html#ad1a2f0cd8623f8c5365c1990b1ac596f',1,'raylib::Mesh']]], + ['setvolume_846',['SetVolume',['../classraylib_1_1_audio_device.html#ae1e2ca6a0cd5a3b2cb6f4cfc5455a3f1',1,'raylib::AudioDevice::SetVolume()'],['../classraylib_1_1_audio_stream.html#a6e69c7e6d2856787a588185f7865e6e1',1,'raylib::AudioStream::SetVolume()'],['../classraylib_1_1_music.html#acbcc821ca804c0c9783e96267b7c5ef9',1,'raylib::Music::SetVolume()'],['../classraylib_1_1_sound.html#a03cbb1aa868bf037d163a5a540db8c8f',1,'raylib::Sound::SetVolume()']]], + ['setw_847',['SetW',['../classraylib_1_1_vector4.html#aa73748302dc95aad9c9fa3a6d8d5bffc',1,'raylib::Vector4']]], + ['setwidth_848',['SetWidth',['../classraylib_1_1_image.html#af9e9c16a1ca0d6c2b0aa926e21226262',1,'raylib::Image::SetWidth()'],['../classraylib_1_1_rectangle.html#a38f4fc9eeb30777e68993b4a32fb0254',1,'raylib::Rectangle::SetWidth()'],['../classraylib_1_1_texture.html#aee9315728f4c54b1e950e9b0380a83bf',1,'raylib::Texture::SetWidth()']]], + ['setwindowtitle_849',['SetWindowTitle',['../namespaceraylib.html#a974a4a71390122643c9f7ee1265892b0',1,'raylib']]], + ['setwrap_850',['SetWrap',['../classraylib_1_1_texture.html#a29ac6e7037bc2678159760744d4538a4',1,'raylib::Texture']]], + ['setx_851',['SetX',['../classraylib_1_1_rectangle.html#a22c9cc628c283fa4b7380e91c29c81d7',1,'raylib::Rectangle::SetX()'],['../classraylib_1_1_vector2.html#a501a6761c9e3fe6adb6f660a751f1324',1,'raylib::Vector2::SetX()'],['../classraylib_1_1_vector3.html#aedfa9761bf452e7c7c92574fc3a7717c',1,'raylib::Vector3::SetX()'],['../classraylib_1_1_vector4.html#abd81e9eb660e7f08cb30b23174b87bec',1,'raylib::Vector4::SetX()']]], + ['sety_852',['SetY',['../classraylib_1_1_rectangle.html#a779595ab1373baba2da38a4247bfd5f7',1,'raylib::Rectangle::SetY()'],['../classraylib_1_1_vector2.html#a8735d26f1eae8f836521046c42d3906f',1,'raylib::Vector2::SetY()'],['../classraylib_1_1_vector3.html#aae0d8010357e617b76dada9375b6c085',1,'raylib::Vector3::SetY()'],['../classraylib_1_1_vector4.html#a0c46c0aaa7fc71685a1c523ed0b40ba3',1,'raylib::Vector4::SetY()']]], + ['setz_853',['SetZ',['../classraylib_1_1_vector3.html#a6ff8718eb583f9963c58e0d27f24f506',1,'raylib::Vector3::SetZ()'],['../classraylib_1_1_vector4.html#a1351f26ba875824cd6fb938b9fe2afc6',1,'raylib::Vector4::SetZ()']]], + ['setzoom_854',['SetZoom',['../classraylib_1_1_camera2_d.html#a3e031779ff5f2a5d25cb07d0ccc8ed7f',1,'raylib::Camera2D']]], + ['shouldclose_855',['ShouldClose',['../classraylib_1_1_window.html#a5f2a255aad32ac32aee87fb2e6b20a01',1,'raylib::Window']]], + ['sphere_856',['Sphere',['../classraylib_1_1_mesh.html#a1c47f75cc2add45ccd623dd6922f66e3',1,'raylib::Mesh']]], + ['stop_857',['Stop',['../classraylib_1_1_audio_stream.html#a266882a0ea63da435e44583270685d57',1,'raylib::AudioStream::Stop()'],['../classraylib_1_1_music.html#a6a6ed906b768631c86a006b23900d542',1,'raylib::Music::Stop()'],['../classraylib_1_1_sound.html#af00839539bfeb6dd1bac84b5d1c90f0b',1,'raylib::Sound::Stop()']]], + ['stopmulti_858',['StopMulti',['../classraylib_1_1_sound.html#a6925b0114e6d9636c928fed1f0f0586c',1,'raylib::Sound']]] +]; diff --git a/raylib-cpp/docs/search/functions_11.html b/raylib-cpp/docs/search/functions_11.html new file mode 100644 index 00000000..1cde7b49 --- /dev/null +++ b/raylib-cpp/docs/search/functions_11.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/functions_11.js b/raylib-cpp/docs/search/functions_11.js new file mode 100644 index 00000000..a4acbd4c --- /dev/null +++ b/raylib-cpp/docs/search/functions_11.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['takescreenshot_859',['TakeScreenshot',['../namespaceraylib.html#a85b0e8952631936155bae8979cbf2aed',1,'raylib']]], + ['tangents_860',['Tangents',['../classraylib_1_1_mesh.html#a4873780eee85a182d90c25eb100199ae',1,'raylib::Mesh']]], + ['textisequal_861',['TextIsEqual',['../namespaceraylib.html#afc1e3c933eb301bee7d42466a3ec5261',1,'raylib']]], + ['textlength_862',['TextLength',['../namespaceraylib.html#a3c5e254ed90864520fd592295941bbaf',1,'raylib']]], + ['texture_863',['Texture',['../classraylib_1_1_texture.html#a9a125ac253e41ceaee8cecb7de8652da',1,'raylib::Texture::Texture(const ::Image &image, int layout)'],['../classraylib_1_1_texture.html#aa2697fd78772ce720f8dab323f9be97a',1,'raylib::Texture::Texture(const std::string &fileName)']]], + ['togglefullscreen_864',['ToggleFullscreen',['../classraylib_1_1_window.html#a4f4e526ad3a1bfc3c133ff379d5f04d5',1,'raylib::Window']]], + ['tohsv_865',['ToHSV',['../classraylib_1_1_color.html#ab909853a3380e3cf4306a011caca7ec5',1,'raylib::Color']]], + ['toint_866',['ToInt',['../classraylib_1_1_color.html#a927ba04098ee1ba3a8e91374ed5d5606',1,'raylib::Color']]], + ['topot_867',['ToPOT',['../classraylib_1_1_image.html#ae8c33add6a7f996a706f531231b8d996',1,'raylib::Image']]], + ['torus_868',['Torus',['../classraylib_1_1_mesh.html#a90d8283bb7215bf489a5c0fbae7727d8',1,'raylib::Mesh']]], + ['trace_869',['Trace',['../classraylib_1_1_matrix.html#a7ed7bc3003490c97c363ac2108aaa44b',1,'raylib::Matrix']]], + ['transpose_870',['Transpose',['../classraylib_1_1_matrix.html#a7fc0f1d9225126201c4880a5052b8316',1,'raylib::Matrix']]] +]; diff --git a/raylib-cpp/docs/search/functions_12.html b/raylib-cpp/docs/search/functions_12.html new file mode 100644 index 00000000..48e59155 --- /dev/null +++ b/raylib-cpp/docs/search/functions_12.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/functions_12.js b/raylib-cpp/docs/search/functions_12.js new file mode 100644 index 00000000..a5209d50 --- /dev/null +++ b/raylib-cpp/docs/search/functions_12.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['unload_871',['Unload',['../classraylib_1_1_image.html#abb33cee3596f6f74ede70683865aaf0c',1,'raylib::Image::Unload()'],['../classraylib_1_1_material.html#a67962efd02fd7f59cb14cda929e599cc',1,'raylib::Material::Unload()'],['../classraylib_1_1_mesh.html#a2b9f6edb3fce3b6fcea46891e646fcd7',1,'raylib::Mesh::Unload()'],['../classraylib_1_1_model.html#a4a8d6932f932cd9857b62e139418d497',1,'raylib::Model::Unload()'],['../classraylib_1_1_model_animation.html#afa5bb2f87178e477dcbe541cc14eb697',1,'raylib::ModelAnimation::Unload()'],['../classraylib_1_1_music.html#aeaec37b4d521dfca16f39ce141c12515',1,'raylib::Music::Unload()'],['../classraylib_1_1_sound.html#a1384d166f189c9bebdb6649b502920f3',1,'raylib::Sound::Unload()'],['../classraylib_1_1_texture.html#a22ab79fcae5acbcb4a6c1f27c519a7ec',1,'raylib::Texture::Unload()'],['../classraylib_1_1_vr_stereo_config.html#af2f638f95b4efda7c90a5a623b374678',1,'raylib::VrStereoConfig::Unload()'],['../classraylib_1_1_wave.html#a6a143fc632271958e5ee2899338ec5bc',1,'raylib::Wave::Unload()']]], + ['unloadcolors_872',['UnloadColors',['../classraylib_1_1_image.html#a87b5f57dbf9f558038868ecfef6d719e',1,'raylib::Image']]], + ['unloadkeepmeshes_873',['UnloadKeepMeshes',['../classraylib_1_1_model.html#a1f8233c28728eff2c4684cb8b4258cda',1,'raylib::Model']]], + ['unloadpalette_874',['UnloadPalette',['../classraylib_1_1_image.html#a830495e93c51740572e81ea2d3c90a31',1,'raylib::Image']]], + ['unloadsamples_875',['UnloadSamples',['../classraylib_1_1_wave.html#adf7aaa265fec9183ef60c276a740d138',1,'raylib::Wave']]], + ['update_876',['Update',['../classraylib_1_1_audio_stream.html#ac7aa320c506865cc88d60264549d23b0',1,'raylib::AudioStream::Update()'],['../classraylib_1_1_camera3_d.html#a6a59671e1b7ed19c5b6566e700b625a7',1,'raylib::Camera3D::Update()'],['../classraylib_1_1_model_animation.html#aa5cf71119ac343985b5575be55475c05',1,'raylib::ModelAnimation::Update()'],['../classraylib_1_1_music.html#a031bc82c19b51b29f5c507cacd9c2664',1,'raylib::Music::Update()'],['../classraylib_1_1_sound.html#aa10536a28f5c23d056c56b69c86951ef',1,'raylib::Sound::Update(const void *data, int sampleCount)'],['../classraylib_1_1_sound.html#aa17ec450860a4b02d1fc717dcec278e5',1,'raylib::Sound::Update(const void *data)'],['../classraylib_1_1_texture.html#ad2be6ad3fbbff3141dc274b1b397902c',1,'raylib::Texture::Update()']]], + ['updateanimation_877',['UpdateAnimation',['../classraylib_1_1_model.html#a6b2400a98189c50a0c01d9868f56c3e4',1,'raylib::Model']]], + ['updatebuffer_878',['UpdateBuffer',['../classraylib_1_1_mesh.html#a2d592396bc6c930fe886a406336b8bdf',1,'raylib::Mesh']]], + ['updatecamera_879',['UpdateCamera',['../namespaceraylib.html#abd45302dac72cb253026bce044dee236',1,'raylib']]], + ['updaterec_880',['UpdateRec',['../classraylib_1_1_texture.html#a373b656c96ad2345eb395d061867eab8',1,'raylib::Texture']]], + ['upload_881',['Upload',['../classraylib_1_1_mesh.html#aa32b8f666eece6bf8839f27538a6b4d1',1,'raylib::Mesh']]] +]; diff --git a/raylib-cpp/docs/search/functions_13.html b/raylib-cpp/docs/search/functions_13.html new file mode 100644 index 00000000..f1fc553f --- /dev/null +++ b/raylib-cpp/docs/search/functions_13.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/functions_13.js b/raylib-cpp/docs/search/functions_13.js new file mode 100644 index 00000000..a3bd9906 --- /dev/null +++ b/raylib-cpp/docs/search/functions_13.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['wave_882',['Wave',['../classraylib_1_1_wave.html#ad5144b906b92b84d95f8ce192ce9f86b',1,'raylib::Wave::Wave(const std::string &fileName)'],['../classraylib_1_1_wave.html#a31b96adb8009137b02529f3b8b95918d',1,'raylib::Wave::Wave(const std::string &fileType, const unsigned char *fileData, int dataSize)']]], + ['whitenoise_883',['WhiteNoise',['../classraylib_1_1_image.html#a103852d13c46a1073035149afa76bc4c',1,'raylib::Image']]], + ['window_884',['Window',['../classraylib_1_1_window.html#a512fd0b1756394575970eed80ebac2fb',1,'raylib::Window']]] +]; diff --git a/raylib-cpp/docs/search/functions_14.html b/raylib-cpp/docs/search/functions_14.html new file mode 100644 index 00000000..0302cd98 --- /dev/null +++ b/raylib-cpp/docs/search/functions_14.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/functions_14.js b/raylib-cpp/docs/search/functions_14.js new file mode 100644 index 00000000..495faba1 --- /dev/null +++ b/raylib-cpp/docs/search/functions_14.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['zero_885',['Zero',['../classraylib_1_1_vector2.html#a6fc574d57d45b21e36bffbd44ceb8989',1,'raylib::Vector2']]] +]; diff --git a/raylib-cpp/docs/search/functions_15.html b/raylib-cpp/docs/search/functions_15.html new file mode 100644 index 00000000..18cf76b2 --- /dev/null +++ b/raylib-cpp/docs/search/functions_15.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/functions_15.js b/raylib-cpp/docs/search/functions_15.js new file mode 100644 index 00000000..c40328b9 --- /dev/null +++ b/raylib-cpp/docs/search/functions_15.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['_7eaudiodevice_886',['~AudioDevice',['../classraylib_1_1_audio_device.html#aab60bade54ebe2fc41e567d0023047d9',1,'raylib::AudioDevice']]], + ['_7emusic_887',['~Music',['../classraylib_1_1_music.html#a6fb0e1cb0807c33e952bdd8c5028fa16',1,'raylib::Music']]], + ['_7evrstereoconfig_888',['~VrStereoConfig',['../classraylib_1_1_vr_stereo_config.html#affd207a5267f0ea9c48d92dcfd72edea',1,'raylib::VrStereoConfig']]], + ['_7ewave_889',['~Wave',['../classraylib_1_1_wave.html#a545a0afb559e87f42cdedcda263452ba',1,'raylib::Wave']]], + ['_7ewindow_890',['~Window',['../classraylib_1_1_window.html#a6071f03b18e0f2d3817b0da3699f24af',1,'raylib::Window']]] +]; diff --git a/raylib-cpp/docs/search/functions_16.html b/raylib-cpp/docs/search/functions_16.html new file mode 100644 index 00000000..9182391d --- /dev/null +++ b/raylib-cpp/docs/search/functions_16.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/functions_16.js b/raylib-cpp/docs/search/functions_16.js new file mode 100644 index 00000000..9db95718 --- /dev/null +++ b/raylib-cpp/docs/search/functions_16.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['zero_1196',['Zero',['../classraylib_1_1_vector2.html#a6fc574d57d45b21e36bffbd44ceb8989',1,'raylib::Vector2::Zero()'],['../classraylib_1_1_vector3.html#ae3a9048507c018f7a90e86e2131f2ea5',1,'raylib::Vector3::Zero()']]] +]; diff --git a/raylib-cpp/docs/search/functions_17.html b/raylib-cpp/docs/search/functions_17.html new file mode 100644 index 00000000..80795060 --- /dev/null +++ b/raylib-cpp/docs/search/functions_17.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/functions_17.js b/raylib-cpp/docs/search/functions_17.js new file mode 100644 index 00000000..e0071a81 --- /dev/null +++ b/raylib-cpp/docs/search/functions_17.js @@ -0,0 +1,20 @@ +var searchData= +[ + ['_7eaudiodevice_1197',['~AudioDevice',['../classraylib_1_1_audio_device.html#aab60bade54ebe2fc41e567d0023047d9',1,'raylib::AudioDevice']]], + ['_7eaudiostream_1198',['~AudioStream',['../classraylib_1_1_audio_stream.html#a264e3bcd80f5c47651d82ce64b84bdc0',1,'raylib::AudioStream']]], + ['_7efont_1199',['~Font',['../classraylib_1_1_font.html#ac26732eaa27d5984b2c356941b5762ad',1,'raylib::Font']]], + ['_7eimage_1200',['~Image',['../classraylib_1_1_image.html#a249001d3d373b33b1f29145c45082536',1,'raylib::Image']]], + ['_7ematerial_1201',['~Material',['../classraylib_1_1_material.html#aa11c6eb7111cedc08437673cc66760d6',1,'raylib::Material']]], + ['_7emesh_1202',['~Mesh',['../classraylib_1_1_mesh.html#af09e2772739c525a2f957ebb7b4a1486',1,'raylib::Mesh']]], + ['_7emodel_1203',['~Model',['../classraylib_1_1_model.html#ad0b3ed5e32b1d5bf73511ed67270ae07',1,'raylib::Model']]], + ['_7emodelanimation_1204',['~ModelAnimation',['../classraylib_1_1_model_animation.html#a633f1c094138e99c36251773a8f3c787',1,'raylib::ModelAnimation']]], + ['_7emusic_1205',['~Music',['../classraylib_1_1_music.html#a6fb0e1cb0807c33e952bdd8c5028fa16',1,'raylib::Music']]], + ['_7ephysics_1206',['~Physics',['../classraylib_1_1_physics.html#a0629ca80510dec5e652457f0f6af2531',1,'raylib::Physics']]], + ['_7erendertexture_1207',['~RenderTexture',['../classraylib_1_1_render_texture.html#aa82fb85022acc70314c1ddd22d12f44d',1,'raylib::RenderTexture']]], + ['_7eshader_1208',['~Shader',['../classraylib_1_1_shader.html#a5fdd95f82f152bae43e274830cffcbf1',1,'raylib::Shader']]], + ['_7esound_1209',['~Sound',['../classraylib_1_1_sound.html#a321a8cea955f859f8648e2df202f5497',1,'raylib::Sound']]], + ['_7etexture_1210',['~Texture',['../classraylib_1_1_texture.html#afb52b2f43d5deb3e2e244205faa563ac',1,'raylib::Texture']]], + ['_7evrsimulator_1211',['~VrSimulator',['../classraylib_1_1_vr_simulator.html#a430dac68377e85a9ae4fde96d54edaa8',1,'raylib::VrSimulator']]], + ['_7ewave_1212',['~Wave',['../classraylib_1_1_wave.html#a545a0afb559e87f42cdedcda263452ba',1,'raylib::Wave']]], + ['_7ewindow_1213',['~Window',['../classraylib_1_1_window.html#a6071f03b18e0f2d3817b0da3699f24af',1,'raylib::Window']]] +]; diff --git a/raylib-cpp/docs/search/functions_2.html b/raylib-cpp/docs/search/functions_2.html new file mode 100644 index 00000000..2737c5ac --- /dev/null +++ b/raylib-cpp/docs/search/functions_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/functions_2.js b/raylib-cpp/docs/search/functions_2.js new file mode 100644 index 00000000..7cc9739d --- /dev/null +++ b/raylib-cpp/docs/search/functions_2.js @@ -0,0 +1,25 @@ +var searchData= +[ + ['cellular_484',['Cellular',['../classraylib_1_1_image.html#a322fc19c5ae2a843a7c243b7fa4b74b1',1,'raylib::Image']]], + ['changedirectory_485',['ChangeDirectory',['../namespaceraylib.html#ae8cbcbf937c110d5865f0295463b90c1',1,'raylib']]], + ['checkcollision_486',['CheckCollision',['../classraylib_1_1_bounding_box.html#ae21846f1721a949de28e6bff5a0217d2',1,'raylib::BoundingBox::CheckCollision(const ::BoundingBox &box2) const'],['../classraylib_1_1_bounding_box.html#a4ebef66c3050ab310652c7eac6ce404b',1,'raylib::BoundingBox::CheckCollision(::Vector3 center, float radius) const'],['../classraylib_1_1_bounding_box.html#aee231bf2caca8ab6e4cb6be1f93874c3',1,'raylib::BoundingBox::CheckCollision(const ::Ray &ray) const'],['../classraylib_1_1_ray.html#ad0423741c40f27573139f30d05b39a77',1,'raylib::Ray::CheckCollision()'],['../classraylib_1_1_rectangle.html#a4e0fe086b5e04a2810ea5ec31fee7cb7',1,'raylib::Rectangle::CheckCollision(::Rectangle rec2) const'],['../classraylib_1_1_rectangle.html#ac1cd92eb4d964c2f643500506a8103c4',1,'raylib::Rectangle::CheckCollision(::Vector2 point) const'],['../classraylib_1_1_rectangle.html#abe80bafa896b885af41187d6611cd34b',1,'raylib::Rectangle::CheckCollision(::Vector2 center, float radius)'],['../classraylib_1_1_vector2.html#a23dfda9f721e98d3bf80de4eeccde18e',1,'raylib::Vector2::CheckCollision(::Rectangle rec) const'],['../classraylib_1_1_vector2.html#a5a16075cb1de65199a8c810147658198',1,'raylib::Vector2::CheckCollision(::Vector2 center, float radius) const'],['../classraylib_1_1_vector2.html#a10b07c009af9cf9723cd48a15f5044b6',1,'raylib::Vector2::CheckCollision(::Vector2 p1, ::Vector2 p2, ::Vector2 p3) const'],['../classraylib_1_1_vector3.html#a7b325f85196b92450b76c3f1925cf205',1,'raylib::Vector3::CheckCollision()']]], + ['checkcollisioncircle_487',['CheckCollisionCircle',['../classraylib_1_1_vector2.html#a7dcfa1e305dca48ca72648a447228d47',1,'raylib::Vector2::CheckCollisionCircle(float radius1, ::Vector2 center2, float radius2) const'],['../classraylib_1_1_vector2.html#a6ed62656d9528f2a1b2924132576779e',1,'raylib::Vector2::CheckCollisionCircle(float radius, ::Rectangle rec) const']]], + ['checkcollisionlines_488',['CheckCollisionLines',['../classraylib_1_1_vector2.html#adf2ac764f0a4b4c6d67dc1cfbb8d0df5',1,'raylib::Vector2']]], + ['checkcollisionsphere_489',['CheckCollisionSphere',['../classraylib_1_1_ray.html#a3190f8eb00e4d06b841580201115eed8',1,'raylib::Ray::CheckCollisionSphere(::Vector3 center, float radius) const'],['../classraylib_1_1_ray.html#a79269fb7290a8281489d88ede3c29cc8',1,'raylib::Ray::CheckCollisionSphere(::Vector3 center, float radius, ::Vector3 *collisionPoint) const']]], + ['checked_490',['Checked',['../classraylib_1_1_image.html#a30b75ee71c4240b4438a22a1313e90c8',1,'raylib::Image']]], + ['clearbackground_491',['ClearBackground',['../classraylib_1_1_color.html#ace467f20d71ff4af44e0211d6aeea9b5',1,'raylib::Color::ClearBackground()'],['../classraylib_1_1_image.html#aed48d37124df81191a9c10a417508703',1,'raylib::Image::ClearBackground()'],['../classraylib_1_1_window.html#a69eb249831f1976ce2a73945e31c6f52',1,'raylib::Window::ClearBackground()']]], + ['clearstate_492',['ClearState',['../classraylib_1_1_window.html#a359e2101ac13e8ee8423b3ffb27c8a42',1,'raylib::Window']]], + ['close_493',['Close',['../classraylib_1_1_audio_device.html#a04b39055a7d4dc12801f39f3429af9a0',1,'raylib::AudioDevice::Close()'],['../classraylib_1_1_audio_stream.html#a325438e3339a84ba7ac8927bbf78baa5',1,'raylib::AudioStream::Close()'],['../classraylib_1_1_window.html#a59cf11e97d3e33d914bc7b1711c2ccaf',1,'raylib::Window::Close()']]], + ['color_494',['Color',['../classraylib_1_1_color.html#ac0af7e53c6e05e6ec4de88169bae3952',1,'raylib::Color::Color()'],['../classraylib_1_1_color.html#a3c177f10d10851fdf20d09fae83c8e19',1,'raylib::Color::Color(::Vector3 hsv)'],['../classraylib_1_1_color.html#ad922c14839a64fc49597059855edb76b',1,'raylib::Color::Color(int hexValue)'],['../classraylib_1_1_color.html#aa5b23dd8167f9babe41abd378339d3a4',1,'raylib::Color::Color(::Vector4 normalized)'],['../classraylib_1_1_image.html#a8cf520f677b90541789a53b6bed96e6e',1,'raylib::Image::Color()']]], + ['colorbrightness_495',['ColorBrightness',['../classraylib_1_1_image.html#a2e6287edda71ed977b4b416e04b0f37f',1,'raylib::Image']]], + ['colorcontrast_496',['ColorContrast',['../classraylib_1_1_image.html#af00dca9570581bb75e0616e9a9f9b822',1,'raylib::Image']]], + ['colorgrayscale_497',['ColorGrayscale',['../classraylib_1_1_image.html#a2eae93c88197917b6706139f2c3c6dc2',1,'raylib::Image']]], + ['colorinvert_498',['ColorInvert',['../classraylib_1_1_image.html#af7f900b20bb8823c2c435673438dfbbd',1,'raylib::Image']]], + ['colorreplace_499',['ColorReplace',['../classraylib_1_1_image.html#af9d668a5feaed2554a77694f61cbdae0',1,'raylib::Image']]], + ['colortint_500',['ColorTint',['../classraylib_1_1_image.html#a0299b8ed8b569977d214ce265d3a5c93',1,'raylib::Image']]], + ['copy_501',['Copy',['../classraylib_1_1_image.html#a5f2e065ce3fcba5ccc2663fa18dcb66d',1,'raylib::Image::Copy()'],['../classraylib_1_1_wave.html#a52ca5fa9c0cdc43d3fb50ddc35d699e5',1,'raylib::Wave::Copy()']]], + ['crop_502',['Crop',['../classraylib_1_1_image.html#a50a7394e9662bf4f587cd73c5d594cee',1,'raylib::Image::Crop(::Rectangle crop)'],['../classraylib_1_1_image.html#a2fdfad958c27f8cc590b194b06338e2d',1,'raylib::Image::Crop(::Vector2 size)'],['../classraylib_1_1_image.html#a24323ef52da6113c3af4861ce0250ea0',1,'raylib::Image::Crop(int offsetX, int offsetY, int newWidth, int newHeight)'],['../classraylib_1_1_wave.html#a25601c51a2f81c569b074620c6758e94',1,'raylib::Wave::Crop()']]], + ['cube_503',['Cube',['../classraylib_1_1_mesh.html#a3063bad532be0ec9f0545652ffb2e929',1,'raylib::Mesh']]], + ['cubicmap_504',['Cubicmap',['../classraylib_1_1_mesh.html#af18beb1df9193e095dde1ecbdadf7688',1,'raylib::Mesh']]], + ['cylinder_505',['Cylinder',['../classraylib_1_1_mesh.html#aed00f01b7f68b3ef236814c8468891f0',1,'raylib::Mesh']]] +]; diff --git a/raylib-cpp/docs/search/functions_3.html b/raylib-cpp/docs/search/functions_3.html new file mode 100644 index 00000000..6da86e7d --- /dev/null +++ b/raylib-cpp/docs/search/functions_3.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/functions_3.js b/raylib-cpp/docs/search/functions_3.js new file mode 100644 index 00000000..0026422b --- /dev/null +++ b/raylib-cpp/docs/search/functions_3.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['directoryexists_506',['DirectoryExists',['../namespaceraylib.html#a2991a63252dbe2be7e1ae4b852c9bd69',1,'raylib']]], + ['distance_507',['Distance',['../classraylib_1_1_vector2.html#a488a41369489998272b217d6385d6c37',1,'raylib::Vector2']]], + ['dither_508',['Dither',['../classraylib_1_1_image.html#a055b6908b9e8cfcd109abc537f3d2056',1,'raylib::Image']]], + ['dotproduct_509',['DotProduct',['../classraylib_1_1_vector2.html#a31c32996761d89b568102b2f6b60b745',1,'raylib::Vector2']]], + ['draw_510',['Draw',['../classraylib_1_1_bounding_box.html#aae0a66351992f36372ef68a6d4508c62',1,'raylib::BoundingBox::Draw()'],['../classraylib_1_1_model.html#a99e9a5432ab7a4cbd502d6cbcb7cb0e8',1,'raylib::Model::Draw(::Vector3 position, float scale=1.0f, ::Color tint={255, 255, 255, 255})'],['../classraylib_1_1_model.html#a1dca1f974cbecc203ac9da8b5fa11127',1,'raylib::Model::Draw(::Vector3 position, ::Vector3 rotationAxis, float rotationAngle=0.0f, ::Vector3 scale={1.0f, 1.0f, 1.0f}, ::Color tint={255, 255, 255, 255})'],['../classraylib_1_1_ray.html#a84586f1f5ce6627b1d0224fad287787b',1,'raylib::Ray::Draw()'],['../classraylib_1_1_rectangle.html#a3b886508162b32e034314111532d8f20',1,'raylib::Rectangle::Draw()'],['../classraylib_1_1_texture.html#ab76f4ae074269ad67ec8b731a3bf25a6',1,'raylib::Texture::Draw()'],['../classraylib_1_1_texture.html#a4c4f82a6e97e4f6d6163d5a2bb2a583c',1,'raylib::Texture::Draw(int posX, int posY, ::Color tint={255, 255, 255, 255})']]], + ['drawbillboard_511',['DrawBillboard',['../classraylib_1_1_camera3_d.html#a5cbf6986fba9deb41fecf4076ac7c61f',1,'raylib::Camera3D::DrawBillboard(const ::Texture2D &texture, ::Vector3 center, float size, ::Color tint={255, 255, 255, 255})'],['../classraylib_1_1_camera3_d.html#a4222bdd9d37cdd12968fda35e9aa2c62',1,'raylib::Camera3D::DrawBillboard(const ::Texture2D &texture, ::Rectangle sourceRec, ::Vector3 center, float size, ::Color tint={255, 255, 255, 255})']]], + ['drawcircle_512',['DrawCircle',['../classraylib_1_1_vector2.html#ad13e3d98cc06a835db9dc605b090b15c',1,'raylib::Vector2']]], + ['drawline_513',['DrawLine',['../classraylib_1_1_color.html#ab3a3237688396c1768034d553d2f1cde',1,'raylib::Color']]], + ['drawlinebezierquad_514',['DrawLineBezierQuad',['../classraylib_1_1_vector2.html#a75ad1e5906da8eb4ab23c12748b431cb',1,'raylib::Vector2']]], + ['drawpixel_515',['DrawPixel',['../classraylib_1_1_color.html#a28cd68c3548a019b36538d0a92fe2099',1,'raylib::Color::DrawPixel()'],['../classraylib_1_1_image.html#a6b0b903a298f55a692bb80da79030696',1,'raylib::Image::DrawPixel()']]], + ['drawtext_516',['DrawText',['../classraylib_1_1_font.html#ac3edd0d0ff79509e4e7144d2a111d704',1,'raylib::Font::DrawText(const std::string &text, ::Vector2 position, float fontSize, float spacing, ::Color tint=WHITE)'],['../classraylib_1_1_font.html#a1714ea67ea3913a27fd7f5283bcdbbb4',1,'raylib::Font::DrawText(const std::string &text, ::Rectangle rec, float fontSize, float spacing, bool wordWrap, ::Color tint, int selectStart, int selectLength, ::Color selectText, ::Color selectBack)'],['../classraylib_1_1_font.html#a1a3c668905d6769fdf3d8f341520926c',1,'raylib::Font::DrawText(int codepoint, ::Vector2 position, float fontSize, ::Color tint={ 255, 255, 255, 255 })'],['../namespaceraylib.html#a1c3578f8b3d850ffa73e9a602453e003',1,'raylib::DrawText()']]], + ['drawwires_517',['DrawWires',['../classraylib_1_1_model.html#a0a2beeb4e4776202dd441ccb5d1550fe',1,'raylib::Model::DrawWires(::Vector3 position, float scale=1.0f, ::Color tint={255, 255, 255, 255})'],['../classraylib_1_1_model.html#a7b61d8a179220f2a507bcbab2c660949',1,'raylib::Model::DrawWires(::Vector3 position, ::Vector3 rotationAxis, float rotationAngle=0.0f, ::Vector3 scale={1.0f, 1.0f, 1.0f}, ::Color tint={255, 255, 255, 255})']]] +]; diff --git a/raylib-cpp/docs/search/functions_4.html b/raylib-cpp/docs/search/functions_4.html new file mode 100644 index 00000000..911304e6 --- /dev/null +++ b/raylib-cpp/docs/search/functions_4.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/functions_4.js b/raylib-cpp/docs/search/functions_4.js new file mode 100644 index 00000000..0a38e518 --- /dev/null +++ b/raylib-cpp/docs/search/functions_4.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['enddrawing_518',['EndDrawing',['../classraylib_1_1_vr_stereo_config.html#a330f5b215ee77c138d75a304fdd8e705',1,'raylib::VrStereoConfig::EndDrawing()'],['../classraylib_1_1_window.html#a43bfc69dfce6ec3aaf1170f521243d59',1,'raylib::Window::EndDrawing()']]], + ['endmode_519',['EndMode',['../classraylib_1_1_camera3_d.html#a724b766ec42ff58243a353e07fd464e8',1,'raylib::Camera3D::EndMode()'],['../classraylib_1_1_render_texture.html#a2b742cd39ce046d2ac8e1cd0bb6ae4ff',1,'raylib::RenderTexture::EndMode()'],['../classraylib_1_1_shader.html#a525c31d5a7482bc89e41f03d1284b9f7',1,'raylib::Shader::EndMode()']]], + ['export_520',['Export',['../classraylib_1_1_image.html#a64a5b36c5aa7477450ee67c56f68b31b',1,'raylib::Image::Export()'],['../classraylib_1_1_mesh.html#aabbac566be5d678da87ac30a053eee55',1,'raylib::Mesh::Export()'],['../classraylib_1_1_wave.html#aae34ed202b067c1698fcde0615b5e2eb',1,'raylib::Wave::Export()']]], + ['exportascode_521',['ExportAsCode',['../classraylib_1_1_image.html#ac3083b627082cfcc44d025f4f9253e5a',1,'raylib::Image::ExportAsCode()'],['../classraylib_1_1_wave.html#a3ff84c35bd83bdd00a7a561ee803ec9e',1,'raylib::Wave::ExportAsCode()']]], + ['exportimage_522',['ExportImage',['../namespaceraylib.html#a5099093ce156cc4d2f25593261009c18',1,'raylib']]], + ['exportimageascode_523',['ExportImageAsCode',['../namespaceraylib.html#a0b97437db0f2b47bd7d4b57a8fdaf987',1,'raylib']]] +]; diff --git a/raylib-cpp/docs/search/functions_5.html b/raylib-cpp/docs/search/functions_5.html new file mode 100644 index 00000000..61b920db --- /dev/null +++ b/raylib-cpp/docs/search/functions_5.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/functions_5.js b/raylib-cpp/docs/search/functions_5.js new file mode 100644 index 00000000..818a74ab --- /dev/null +++ b/raylib-cpp/docs/search/functions_5.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['fade_524',['Fade',['../classraylib_1_1_color.html#a799b151b5ce92ccf5ca46f0c18ced395',1,'raylib::Color']]], + ['fileexists_525',['FileExists',['../namespaceraylib.html#a9e94283307bcb33f4595dcd5236b65c4',1,'raylib']]], + ['fliphorizontal_526',['FlipHorizontal',['../classraylib_1_1_image.html#a5d8f596d36077f4b8c24512a2df73e65',1,'raylib::Image']]], + ['flipvertical_527',['FlipVertical',['../classraylib_1_1_image.html#a0f052c63b3cebcf99c0cad86c8e88da4',1,'raylib::Image']]], + ['format_528',['Format',['../classraylib_1_1_image.html#a01fcff59e33e044bd779202ea3473c48',1,'raylib::Image::Format()'],['../classraylib_1_1_wave.html#a4e6d2e64e6cdd46133893c9edd70b508',1,'raylib::Wave::Format()']]], + ['fromhsv_529',['FromHSV',['../classraylib_1_1_color.html#a6c3fd166762f68aede6c448cb26677ef',1,'raylib::Color']]], + ['fromimage_530',['FromImage',['../classraylib_1_1_image.html#a76b132d67047d7b82844a27cd93a6d63',1,'raylib::Image']]] +]; diff --git a/raylib-cpp/docs/search/functions_6.html b/raylib-cpp/docs/search/functions_6.html new file mode 100644 index 00000000..dc70a4a0 --- /dev/null +++ b/raylib-cpp/docs/search/functions_6.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/functions_6.js b/raylib-cpp/docs/search/functions_6.js new file mode 100644 index 00000000..1743f035 --- /dev/null +++ b/raylib-cpp/docs/search/functions_6.js @@ -0,0 +1,133 @@ +var searchData= +[ + ['genmipmaps_531',['GenMipmaps',['../classraylib_1_1_texture.html#a2f895f3a629cf1a74fe88d05b1dd3003',1,'raylib::Texture']]], + ['geta_532',['GetA',['../classraylib_1_1_color.html#af44c677cf6a4f10cfd1e8bdbb72eff08',1,'raylib::Color']]], + ['getalphaborder_533',['GetAlphaBorder',['../classraylib_1_1_image.html#a3eb64b4c59b8dee647b4aa66b6bbdf68',1,'raylib::Image']]], + ['getanimnormals_534',['GetAnimNormals',['../classraylib_1_1_mesh.html#a853c2afc08600c3e9e256d1eb805dded',1,'raylib::Mesh']]], + ['getanimvertices_535',['GetAnimVertices',['../classraylib_1_1_mesh.html#a38f5de9866c13b05b49b936a03b17201',1,'raylib::Mesh']]], + ['getaxiscount_536',['GetAxisCount',['../classraylib_1_1_gamepad.html#a3a1e2311ee288c437371ee1472449ef9',1,'raylib::Gamepad']]], + ['getaxismovement_537',['GetAxisMovement',['../classraylib_1_1_gamepad.html#ad7c180ac50603ba226fe1aa1bee54a95',1,'raylib::Gamepad']]], + ['getb_538',['GetB',['../classraylib_1_1_color.html#afc74cd36d347b8daaaed8aa14a3c29ba',1,'raylib::Color']]], + ['getbasesize_539',['GetBaseSize',['../classraylib_1_1_font.html#a944d3af1c94f00bbe39182307c26009c',1,'raylib::Font']]], + ['getbindpoe_540',['GetBindPoe',['../classraylib_1_1_model.html#a73bac18d76533acd39ed4e5917c84d96',1,'raylib::Model']]], + ['getbonecount_541',['GetBoneCount',['../classraylib_1_1_model.html#a192c0e7b4129a88de333c1eca34587fb',1,'raylib::Model::GetBoneCount()'],['../classraylib_1_1_model_animation.html#a3c8feacbf8d6fb1efa78a9146c7db327',1,'raylib::ModelAnimation::GetBoneCount()']]], + ['getboneids_542',['GetBoneIds',['../classraylib_1_1_mesh.html#adcbd525d5246f7b86dfc1d9f481f1f9a',1,'raylib::Mesh']]], + ['getbones_543',['GetBones',['../classraylib_1_1_model.html#ab944580c06987114068ae16d2b1ac34e',1,'raylib::Model::GetBones()'],['../classraylib_1_1_model_animation.html#aec9078358dfd2a87e580db69d8f7b325',1,'raylib::ModelAnimation::GetBones()']]], + ['getboneweights_544',['GetBoneWeights',['../classraylib_1_1_mesh.html#a0127c2cf9efa4e369fd3f71c326049b1',1,'raylib::Mesh']]], + ['getbuffer_545',['GetBuffer',['../classraylib_1_1_audio_stream.html#adea73b3b07652eb26bcaeb6e63f7ebb2',1,'raylib::AudioStream']]], + ['getbuttonpressed_546',['GetButtonPressed',['../classraylib_1_1_gamepad.html#a851be2dfb762d18268aad40ff7ee3f11',1,'raylib::Gamepad']]], + ['getchannels_547',['GetChannels',['../classraylib_1_1_audio_stream.html#ac29300e1a5c6b984824c2717313c7d7f',1,'raylib::AudioStream::GetChannels()'],['../classraylib_1_1_wave.html#ab6940575496f381bea5097cb716cdbff',1,'raylib::Wave::GetChannels()']]], + ['getchars_548',['GetChars',['../classraylib_1_1_font.html#a306a84f143c99a5b790ec92b2d697873',1,'raylib::Font']]], + ['getcharscount_549',['GetCharsCount',['../classraylib_1_1_font.html#a1bcd72ac54efcaae8e891ee14ae89c58',1,'raylib::Font']]], + ['getcharspadding_550',['GetCharsPadding',['../classraylib_1_1_font.html#ad5457503a3d414c86d50fce4c407073c',1,'raylib::Font']]], + ['getclipboardtext_551',['GetClipboardText',['../namespaceraylib.html#afe0adc469dc76944514cda9878393457',1,'raylib']]], + ['getcollision_552',['GetCollision',['../classraylib_1_1_model.html#ab01c92e76886b70c8ce395feef42d51e',1,'raylib::Model::GetCollision()'],['../classraylib_1_1_ray.html#a60c079b7ff300002452d5baff73cddbc',1,'raylib::Ray::GetCollision()'],['../classraylib_1_1_rectangle.html#a645b482ae3a4faa035507506be4f4260',1,'raylib::Rectangle::GetCollision()']]], + ['getcollisionground_553',['GetCollisionGround',['../classraylib_1_1_ray.html#a44ac4d9aac86a3d96c51360e00771fcf',1,'raylib::Ray']]], + ['getcollisiontriangle_554',['GetCollisionTriangle',['../classraylib_1_1_ray.html#a5c90125d5c6d1f9f2cfc9bfbef832cd4',1,'raylib::Ray']]], + ['getcolors_555',['GetColors',['../classraylib_1_1_mesh.html#a142e31381d248fbcdeeef46fd1f208ed',1,'raylib::Mesh']]], + ['getctxdata_556',['GetCtxData',['../classraylib_1_1_music.html#a349420428960e47afd4c69499b62eeac',1,'raylib::Music']]], + ['getctxtype_557',['GetCtxType',['../classraylib_1_1_music.html#abbbad14fbc860d0e74f14c4b0a17a723',1,'raylib::Music']]], + ['getdata_558',['GetData',['../classraylib_1_1_image.html#a3144e343f963e5b206e1050be54b4187',1,'raylib::Image::GetData()'],['../classraylib_1_1_texture.html#a3afee0767b1b7ca54e5477667761f5ed',1,'raylib::Texture::GetData()'],['../classraylib_1_1_wave.html#a8e7edd178a2ec7dc11f2474b29771d90',1,'raylib::Wave::GetData()']]], + ['getdepth_559',['GetDepth',['../classraylib_1_1_render_texture.html#af14f685bcdb22071df1b48baed8a98ee',1,'raylib::RenderTexture']]], + ['getdirection_560',['GetDirection',['../classraylib_1_1_ray.html#aee371fba13716967b132d6cfa7fcee74',1,'raylib::Ray']]], + ['getdirectoryfiles_561',['GetDirectoryFiles',['../namespaceraylib.html#a0933e9ed540a0fd6bbde88fe7f61b223',1,'raylib']]], + ['getdirectorypath_562',['GetDirectoryPath',['../namespaceraylib.html#af0226b8293ccb2947674b14ce25628b1',1,'raylib']]], + ['getdistance_563',['GetDistance',['../classraylib_1_1_ray_hit_info.html#ac1d332ab67260955b86a909e1dcfd9ab',1,'raylib::RayHitInfo']]], + ['getdroppedfiles_564',['GetDroppedFiles',['../namespaceraylib.html#a0d0c5876ab96ec845f92474f51c2677c',1,'raylib']]], + ['getfileextension_565',['GetFileExtension',['../namespaceraylib.html#abbdc5c6e02c73cdfa05f1b9c9e6edf1c',1,'raylib']]], + ['getfilemodtime_566',['GetFileModTime',['../namespaceraylib.html#aba9d6a306d3974b2190caa4433027c87',1,'raylib']]], + ['getfilename_567',['GetFileName',['../namespaceraylib.html#a6ee5ba05382914e2f9cab593ff938b43',1,'raylib']]], + ['getfilenamewithoutext_568',['GetFileNameWithoutExt',['../namespaceraylib.html#ac7d9a2610473677f5e4e93a8e6c60f95',1,'raylib']]], + ['getformat_569',['GetFormat',['../classraylib_1_1_image.html#afea44592a9dbcdad114be0c57ec179d6',1,'raylib::Image::GetFormat()'],['../classraylib_1_1_texture.html#a98cd3a49f6b5e06137a72b2c4e9bced4',1,'raylib::Texture::GetFormat()']]], + ['getfovy_570',['GetFovy',['../classraylib_1_1_camera3_d.html#aa2525e674c4582d4eadddd612f5f341c',1,'raylib::Camera3D']]], + ['getfps_571',['GetFPS',['../classraylib_1_1_window.html#a84747246a5f4e9101ac06c5da684af43',1,'raylib::Window']]], + ['getframecount_572',['GetFrameCount',['../classraylib_1_1_model_animation.html#ac5c26c30e71be771fe3601e29d816af2',1,'raylib::ModelAnimation']]], + ['getframeposes_573',['GetFramePoses',['../classraylib_1_1_model_animation.html#a63616ed03e2ca3e1dbe4337de5189ec7',1,'raylib::ModelAnimation']]], + ['getframetime_574',['GetFrameTime',['../classraylib_1_1_window.html#a9b9980432a4deacf2df9471f311d43ad',1,'raylib::Window']]], + ['getg_575',['GetG',['../classraylib_1_1_color.html#a3ab0ea2b21a1548259507219259304f5',1,'raylib::Color']]], + ['getglyphindex_576',['GetGlyphIndex',['../classraylib_1_1_font.html#a4dac04aebd39c1c038f936ef83d86b42',1,'raylib::Font']]], + ['gethandle_577',['GetHandle',['../classraylib_1_1_window.html#a0cc3f939a42ba3d625d43096b2e1e60b',1,'raylib::Window']]], + ['getheight_578',['GetHeight',['../classraylib_1_1_image.html#a4a3a94a5a21ce7578410c9c2e94d6805',1,'raylib::Image::GetHeight()'],['../classraylib_1_1_rectangle.html#a990c10a2ae6adcd19769957ee0e1859d',1,'raylib::Rectangle::GetHeight()'],['../classraylib_1_1_texture.html#a17837a5f61a14abbba8135273595072f',1,'raylib::Texture::GetHeight()'],['../classraylib_1_1_window.html#a0373241f0e8997b06aa4a15a58d3d5d9',1,'raylib::Window::GetHeight()']]], + ['gethit_579',['GetHit',['../classraylib_1_1_ray_hit_info.html#aa6d9aab4694f28be1e7fe4d63d22ace9',1,'raylib::RayHitInfo']]], + ['getid_580',['GetId',['../classraylib_1_1_render_texture.html#ab33b547ed46ceea6960a7385b24bec06',1,'raylib::RenderTexture::GetId()'],['../classraylib_1_1_shader.html#a72ec5358fed89076afbd8edfa83e9779',1,'raylib::Shader::GetId()'],['../classraylib_1_1_texture.html#aee47a39e0b5026f7e0e546d982a9c298',1,'raylib::Texture::GetId()']]], + ['getindices_581',['GetIndices',['../classraylib_1_1_mesh.html#a1a48eb931c6c910f0fb524d2c49ed183',1,'raylib::Mesh']]], + ['getlocation_582',['GetLocation',['../classraylib_1_1_shader.html#a95634f8def8f234a84113d80fd8e521a',1,'raylib::Shader']]], + ['getlocationattrib_583',['GetLocationAttrib',['../classraylib_1_1_shader.html#a9c6eed0a0addfc76110bcec7cc8c3daf',1,'raylib::Shader']]], + ['getlocs_584',['GetLocs',['../classraylib_1_1_shader.html#a552106b906d353d97538e43ed2265bd0',1,'raylib::Shader']]], + ['getlooping_585',['GetLooping',['../classraylib_1_1_music.html#a6b04c6ccd89175f40de2491846a8154e',1,'raylib::Music']]], + ['getm0_586',['GetM0',['../classraylib_1_1_matrix.html#a6b78d7872779be3740adaa0a63c93871',1,'raylib::Matrix']]], + ['getm1_587',['GetM1',['../classraylib_1_1_matrix.html#ae7316cec778f24e875a529ddd116eb06',1,'raylib::Matrix']]], + ['getm10_588',['GetM10',['../classraylib_1_1_matrix.html#a714e3b90607b5345c12f7e5991ccbef7',1,'raylib::Matrix']]], + ['getm11_589',['GetM11',['../classraylib_1_1_matrix.html#a25c4303138c8060bcac037d6bc78912a',1,'raylib::Matrix']]], + ['getm12_590',['GetM12',['../classraylib_1_1_matrix.html#a7fc1f01a4e4137f6cf7597b006bdaa05',1,'raylib::Matrix']]], + ['getm13_591',['GetM13',['../classraylib_1_1_matrix.html#affca67e81632541bf08c743236a95790',1,'raylib::Matrix']]], + ['getm14_592',['GetM14',['../classraylib_1_1_matrix.html#ac2aa01cccd0e67223d2e24ed62b4f3d2',1,'raylib::Matrix']]], + ['getm15_593',['GetM15',['../classraylib_1_1_matrix.html#ac97c8f97e3f012c5c044fd941690ac8c',1,'raylib::Matrix']]], + ['getm2_594',['GetM2',['../classraylib_1_1_matrix.html#adbee9387da5a0c695b442c6bffb5ad44',1,'raylib::Matrix']]], + ['getm3_595',['GetM3',['../classraylib_1_1_matrix.html#a6fd210dab5f11e733d683d08ae9e0a00',1,'raylib::Matrix']]], + ['getm4_596',['GetM4',['../classraylib_1_1_matrix.html#a1b70d062e4ee8a4eb60154003a7778e1',1,'raylib::Matrix']]], + ['getm5_597',['GetM5',['../classraylib_1_1_matrix.html#a0a3e72416a11ddfabb4c8d671aff9347',1,'raylib::Matrix']]], + ['getm6_598',['GetM6',['../classraylib_1_1_matrix.html#a5fd355a3543ed7361699df2c7d0030ae',1,'raylib::Matrix']]], + ['getm7_599',['GetM7',['../classraylib_1_1_matrix.html#a986fde9e8b31d013b4f9a3e7d79a9721',1,'raylib::Matrix']]], + ['getm8_600',['GetM8',['../classraylib_1_1_matrix.html#a4f6a8abe84f2d4013869bb594e81f5b1',1,'raylib::Matrix']]], + ['getm9_601',['GetM9',['../classraylib_1_1_matrix.html#afa3e0fa6ce3f3a886001d523cb2be127',1,'raylib::Matrix']]], + ['getmaps_602',['GetMaps',['../classraylib_1_1_material.html#a561e81c743da576c866cfcec9bad8e53',1,'raylib::Material']]], + ['getmaterialcount_603',['GetMaterialCount',['../classraylib_1_1_model.html#a5667475690e50ed8ed54e0755d40d3a2',1,'raylib::Model']]], + ['getmaterials_604',['GetMaterials',['../classraylib_1_1_model.html#a649280afda23717aacce04ee652f601f',1,'raylib::Model']]], + ['getmatrix_605',['GetMatrix',['../classraylib_1_1_camera2_d.html#aa1f8ea4d3a25feb15c2cb2a09628c7a1',1,'raylib::Camera2D::GetMatrix()'],['../classraylib_1_1_camera3_d.html#a1836faf8c5617c5efea6053c6bb77b4f',1,'raylib::Camera3D::GetMatrix()']]], + ['getmax_606',['GetMax',['../classraylib_1_1_bounding_box.html#a4b537ee581dfdb203c619fbd67e20f18',1,'raylib::BoundingBox']]], + ['getmeshcount_607',['GetMeshCount',['../classraylib_1_1_model.html#a757bbbe4f49034a40740e1c58807c546',1,'raylib::Model']]], + ['getmeshes_608',['GetMeshes',['../classraylib_1_1_model.html#a66b34f9913ac900b94a338be266f63ce',1,'raylib::Model']]], + ['getmeshmaterial_609',['GetMeshMaterial',['../classraylib_1_1_model.html#a65eb3d0fb0be3d9ba7539df410885045',1,'raylib::Model']]], + ['getmin_610',['GetMin',['../classraylib_1_1_bounding_box.html#ad8c5c1330f95a3c5641e16da46bca8e6',1,'raylib::BoundingBox']]], + ['getmipmaps_611',['GetMipmaps',['../classraylib_1_1_image.html#aa0e7c5adcbaf91924c141a085ed2317a',1,'raylib::Image::GetMipmaps()'],['../classraylib_1_1_texture.html#a221e1324dcca1092597692d6c71f3711',1,'raylib::Texture::GetMipmaps()']]], + ['getmonitorname_612',['GetMonitorName',['../namespaceraylib.html#a7f6c5083385c50fd984be1abe0e2c94c',1,'raylib']]], + ['getmouseray_613',['GetMouseRay',['../classraylib_1_1_camera3_d.html#ac59decb87b851c16adee7c2c742f8961',1,'raylib::Camera3D']]], + ['getname_614',['GetName',['../classraylib_1_1_gamepad.html#aa13c682766bf03ba1f5f6fa821b15984',1,'raylib::Gamepad']]], + ['getnormal_615',['GetNormal',['../classraylib_1_1_ray_hit_info.html#ac6c68ec939459e855757ba55ae4252b6',1,'raylib::RayHitInfo']]], + ['getnormals_616',['GetNormals',['../classraylib_1_1_mesh.html#a0fcc7bca9b9419a0d8e3d59666082edc',1,'raylib::Mesh']]], + ['getnumber_617',['GetNumber',['../classraylib_1_1_gamepad.html#ac04f6820f2a0d7ffa3876ac1bac9926b',1,'raylib::Gamepad']]], + ['getoffset_618',['GetOffset',['../classraylib_1_1_camera2_d.html#a6f2a2adaac6ce26b6ca132f88a119e01',1,'raylib::Camera2D']]], + ['getpixeldatasize_619',['GetPixelDataSize',['../classraylib_1_1_image.html#aa432e9f4e1b7a5e31a70447e3efd979d',1,'raylib::Image::GetPixelDataSize(int width, int height, int format=PIXELFORMAT_UNCOMPRESSED_R32G32B32A32)'],['../classraylib_1_1_image.html#afcfe495d4d8c3126584b1f922f8d350b',1,'raylib::Image::GetPixelDataSize()']]], + ['getposition_620',['GetPosition',['../classraylib_1_1_camera3_d.html#a8de66de053eac614313c0912aff2b755',1,'raylib::Camera3D::GetPosition()'],['../classraylib_1_1_ray.html#a13d000fd9369b90b44dffcbc63eb5475',1,'raylib::Ray::GetPosition()'],['../classraylib_1_1_ray_hit_info.html#a0aa30a98327549861234c144734b7605',1,'raylib::RayHitInfo::GetPosition()'],['../classraylib_1_1_window.html#a3b1ba3352da1660ebc3528abba28347c',1,'raylib::Window::GetPosition()']]], + ['getprevdirectorypath_621',['GetPrevDirectoryPath',['../namespaceraylib.html#ade271537f199a6fb169389b9bb05a529',1,'raylib']]], + ['getprojection_622',['GetProjection',['../classraylib_1_1_camera3_d.html#a2886f1e2b41524fcc7e43862460201ce',1,'raylib::Camera3D']]], + ['getr_623',['GetR',['../classraylib_1_1_color.html#aff509b4643d1a176ba62622fc33fce06',1,'raylib::Color']]], + ['getrecs_624',['GetRecs',['../classraylib_1_1_font.html#a396cae69c0d0c46bf76fc3879d5219e1',1,'raylib::Font']]], + ['getrotation_625',['GetRotation',['../classraylib_1_1_camera2_d.html#a182bb47e65f422ee3b0d9dc27ba1cd6e',1,'raylib::Camera2D']]], + ['getsamplecount_626',['GetSampleCount',['../classraylib_1_1_music.html#aa735100a1b49a5deb2c78fe79e2a6e47',1,'raylib::Music::GetSampleCount()'],['../classraylib_1_1_sound.html#a68a2296c5b99301ab14fe51a5e40344b',1,'raylib::Sound::GetSampleCount()'],['../classraylib_1_1_wave.html#a652d6d1e7e5310f8a9c104fdf011d402',1,'raylib::Wave::GetSampleCount()']]], + ['getsamplerate_627',['GetSampleRate',['../classraylib_1_1_audio_stream.html#a77b4c58ec94fb15169258288ef4c1239',1,'raylib::AudioStream::GetSampleRate()'],['../classraylib_1_1_wave.html#ada13a639ef1ec80f208ee849026e7c7f',1,'raylib::Wave::GetSampleRate()']]], + ['getsamplesize_628',['GetSampleSize',['../classraylib_1_1_audio_stream.html#ac9dfe4b5b11fb155b4fe2169985fb627',1,'raylib::AudioStream::GetSampleSize()'],['../classraylib_1_1_wave.html#acae6daf3fa261c114bdb37a34a08428b',1,'raylib::Wave::GetSampleSize()']]], + ['getscaledpi_629',['GetScaleDPI',['../classraylib_1_1_window.html#ab8907b1b25a7b9d42ca32e085dde1a07',1,'raylib::Window']]], + ['getscreendata_630',['GetScreenData',['../classraylib_1_1_image.html#a36c1ce137a4be58f9b73057187504098',1,'raylib::Image']]], + ['getscreentoworld_631',['GetScreenToWorld',['../classraylib_1_1_camera2_d.html#a1eed5bde73d8c1a227250b6caaefcb42',1,'raylib::Camera2D']]], + ['getshader_632',['GetShader',['../classraylib_1_1_material.html#aa9502add9fe1ab801101a3bfe355ab88',1,'raylib::Material']]], + ['getsize_633',['GetSize',['../classraylib_1_1_image.html#aac63ae995cbec5c6c173a3a80aff82f5',1,'raylib::Image::GetSize()'],['../classraylib_1_1_texture.html#a13e47e812a75ff9a482407e823f6afd0',1,'raylib::Texture::GetSize()'],['../classraylib_1_1_window.html#abdd698cf62f84787f9541a6f851c587e',1,'raylib::Window::GetSize()']]], + ['getstream_634',['GetStream',['../classraylib_1_1_music.html#a989d8aa3f23f0656ab3da9f24da40aa8',1,'raylib::Music::GetStream()'],['../classraylib_1_1_sound.html#a356f3d89b688e93d3d72e2cbf3f1a47f',1,'raylib::Sound::GetStream()']]], + ['gettangents_635',['GetTangents',['../classraylib_1_1_mesh.html#aa87bf017b9ea53e09230d128ffbb6a19',1,'raylib::Mesh']]], + ['gettarget_636',['GetTarget',['../classraylib_1_1_camera2_d.html#a6529f488ef7268bc52a3bfc69de5a68e',1,'raylib::Camera2D::GetTarget()'],['../classraylib_1_1_camera3_d.html#ac8327369c304938e9f6c538c3694f684',1,'raylib::Camera3D::GetTarget()']]], + ['gettexcoords_637',['GetTexCoords',['../classraylib_1_1_mesh.html#a3f81f280b53829deef1a37c4b5b5ca62',1,'raylib::Mesh']]], + ['gettexcoords2_638',['GetTexCoords2',['../classraylib_1_1_mesh.html#a30066599a6ce84274283fe59ddade320',1,'raylib::Mesh']]], + ['gettexture_639',['GetTexture',['../classraylib_1_1_font.html#a4f73e1c4ddfde06b9b7584167a683291',1,'raylib::Font::GetTexture()'],['../classraylib_1_1_render_texture.html#a73993c0ac4c292634562f2bd2dffe400',1,'raylib::RenderTexture::GetTexture()']]], + ['gettime_640',['GetTime',['../classraylib_1_1_window.html#a60da5ca13065b01316ab17d4cd92b0c4',1,'raylib::Window']]], + ['gettimelength_641',['GetTimeLength',['../classraylib_1_1_music.html#ad23d121ee312f31c3a8f1db201ac5f12',1,'raylib::Music']]], + ['gettimeplayed_642',['GetTimePlayed',['../classraylib_1_1_music.html#a513dc0d09de1d51e1b961d4e59622ebb',1,'raylib::Music']]], + ['gettransform_643',['GetTransform',['../classraylib_1_1_model.html#a9bcf1bc49f414eeec46981145f23c252',1,'raylib::Model']]], + ['gettrianglecount_644',['GetTriangleCount',['../classraylib_1_1_mesh.html#a0952e07513a753cdcff5049685605467',1,'raylib::Mesh']]], + ['getup_645',['GetUp',['../classraylib_1_1_camera3_d.html#a938726fa036cdac158d41649d694d4a6',1,'raylib::Camera3D']]], + ['getvaoid_646',['GetVaoId',['../classraylib_1_1_mesh.html#a2be0d9d846cec0f3aa57fccf87cb3bc4',1,'raylib::Mesh']]], + ['getvboid_647',['GetVboId',['../classraylib_1_1_mesh.html#ae535ee83038e5e79a9347c1196aff6b9',1,'raylib::Mesh']]], + ['getvertexcount_648',['GetVertexCount',['../classraylib_1_1_mesh.html#a68610ac9dbd7abc14b42e7f6d0115538',1,'raylib::Mesh']]], + ['getvertices_649',['GetVertices',['../classraylib_1_1_mesh.html#a3e0d13eece1fd47334117d316c777f4f',1,'raylib::Mesh']]], + ['getw_650',['GetW',['../classraylib_1_1_vector4.html#ab2b62fd149f3a5fe52785d2a2a4fb594',1,'raylib::Vector4']]], + ['getwidth_651',['GetWidth',['../classraylib_1_1_image.html#a686e411bd7dca746367039925e00ff0c',1,'raylib::Image::GetWidth()'],['../classraylib_1_1_rectangle.html#a6abb0a899eba4c0cf64abe335cf9524f',1,'raylib::Rectangle::GetWidth()'],['../classraylib_1_1_texture.html#ab6f4693f5c6ed1f1bc75b264ad83fecc',1,'raylib::Texture::GetWidth()'],['../classraylib_1_1_window.html#a28b6a5df22c776cf362c400798232a20',1,'raylib::Window::GetWidth()']]], + ['getworkingdirectory_652',['GetWorkingDirectory',['../namespaceraylib.html#a3b1394601148ff55ebe71afc941a8ba6',1,'raylib']]], + ['getworldtoscreen_653',['GetWorldToScreen',['../classraylib_1_1_camera2_d.html#ad0ceb4263e2bf5a04686e1cae27f4c64',1,'raylib::Camera2D::GetWorldToScreen()'],['../classraylib_1_1_camera3_d.html#a6259d44a0a9b08d842fb30530dea19cc',1,'raylib::Camera3D::GetWorldToScreen()']]], + ['getx_654',['GetX',['../classraylib_1_1_rectangle.html#ac8e285bfedece7690efecc848f866488',1,'raylib::Rectangle::GetX()'],['../classraylib_1_1_vector2.html#a8f3caf893df8b295287b9d38db071f7b',1,'raylib::Vector2::GetX()'],['../classraylib_1_1_vector3.html#adf04670ef541569bb6f059e0882ef6e6',1,'raylib::Vector3::GetX()'],['../classraylib_1_1_vector4.html#aeccdd03d26e614a2e8b24d09df48c46f',1,'raylib::Vector4::GetX()']]], + ['gety_655',['GetY',['../classraylib_1_1_rectangle.html#a0d56937d314f4d6772e5c315c0c8804a',1,'raylib::Rectangle::GetY()'],['../classraylib_1_1_vector2.html#afc302ffc39c6a27208bc51f347614c6d',1,'raylib::Vector2::GetY()'],['../classraylib_1_1_vector3.html#a4a0ea2c9f7370ad1b84d7ac354828b04',1,'raylib::Vector3::GetY()'],['../classraylib_1_1_vector4.html#af056e11e295b76b9a411bdd28ca9f0ab',1,'raylib::Vector4::GetY()']]], + ['getz_656',['GetZ',['../classraylib_1_1_vector3.html#a814af8afc4db090e3ae1caa61befa004',1,'raylib::Vector3::GetZ()'],['../classraylib_1_1_vector4.html#aa6ae558beba3e542596d34d9db4ba00c',1,'raylib::Vector4::GetZ()']]], + ['getzoom_657',['GetZoom',['../classraylib_1_1_camera2_d.html#aff4843bdb20648e4c56404b88364f30d',1,'raylib::Camera2D']]], + ['gradienth_658',['GradientH',['../classraylib_1_1_image.html#a1669d98754a5d6aeb38f7bb7fff3b41f',1,'raylib::Image']]], + ['gradientradial_659',['GradientRadial',['../classraylib_1_1_image.html#aae426ba02db17383c5242e0ee58dd40c',1,'raylib::Image']]], + ['gradientv_660',['GradientV',['../classraylib_1_1_image.html#a57519b22c8a823e3e9fa590a51c25f57',1,'raylib::Image']]] +]; diff --git a/raylib-cpp/docs/search/functions_7.html b/raylib-cpp/docs/search/functions_7.html new file mode 100644 index 00000000..7de31067 --- /dev/null +++ b/raylib-cpp/docs/search/functions_7.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/functions_7.js b/raylib-cpp/docs/search/functions_7.js new file mode 100644 index 00000000..28d60087 --- /dev/null +++ b/raylib-cpp/docs/search/functions_7.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['heightmap_661',['Heightmap',['../classraylib_1_1_mesh.html#ad0adb983d1f147de94505484818d2e97',1,'raylib::Mesh']]], + ['hemisphere_662',['HemiSphere',['../classraylib_1_1_mesh.html#a6549598642005a363f01c4cf23a806d6',1,'raylib::Mesh']]] +]; diff --git a/raylib-cpp/docs/search/functions_8.html b/raylib-cpp/docs/search/functions_8.html new file mode 100644 index 00000000..7422be24 --- /dev/null +++ b/raylib-cpp/docs/search/functions_8.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/functions_8.js b/raylib-cpp/docs/search/functions_8.js new file mode 100644 index 00000000..f66014a4 --- /dev/null +++ b/raylib-cpp/docs/search/functions_8.js @@ -0,0 +1,27 @@ +var searchData= +[ + ['imagetext_663',['ImageText',['../classraylib_1_1_font.html#afd68d404370d62e2a3573977e5bbeb22',1,'raylib::Font']]], + ['init_664',['Init',['../classraylib_1_1_audio_device.html#aab013db3caeb89942dd6ea387005319f',1,'raylib::AudioDevice::Init()'],['../classraylib_1_1_vr_stereo_config.html#ad233e6c0eabaed80f4e372ce4629f9f0',1,'raylib::VrStereoConfig::Init()']]], + ['initwindow_665',['InitWindow',['../namespaceraylib.html#aa6db29c8b8a63eaebb42a2d550cc55a5',1,'raylib']]], + ['isavailable_666',['IsAvailable',['../classraylib_1_1_gamepad.html#a552fc427aa95b93e5c3a0e22625b7912',1,'raylib::Gamepad::IsAvailable() const'],['../classraylib_1_1_gamepad.html#a51ffa43549a2767723bdc8e780483c85',1,'raylib::Gamepad::IsAvailable(int number)']]], + ['isbuttondown_667',['IsButtonDown',['../classraylib_1_1_gamepad.html#a8d36ae1e99c022a1b4cccddfcb4eaca5',1,'raylib::Gamepad::IsButtonDown()'],['../classraylib_1_1_mouse.html#a4df87937eb26af3a7ce677679a006b87',1,'raylib::Mouse::IsButtonDown()']]], + ['isbuttonpressed_668',['IsButtonPressed',['../classraylib_1_1_gamepad.html#ac4f2cf491bba6cf51cd9dcab5ac36f5c',1,'raylib::Gamepad::IsButtonPressed()'],['../classraylib_1_1_mouse.html#abe697fb08941f2207f1ce87f9dd56917',1,'raylib::Mouse::IsButtonPressed()']]], + ['isbuttonreleased_669',['IsButtonReleased',['../classraylib_1_1_gamepad.html#a203c7dafc8025a334590dc9fa6dd8201',1,'raylib::Gamepad::IsButtonReleased()'],['../classraylib_1_1_mouse.html#a9f050865fcc3b2021db4eddb77bca7c8',1,'raylib::Mouse::IsButtonReleased()']]], + ['isbuttonup_670',['IsButtonUp',['../classraylib_1_1_gamepad.html#ab770e18a2a3d1618c19b87bc3350163b',1,'raylib::Gamepad']]], + ['iscursoronscreen_671',['IsCursorOnScreen',['../classraylib_1_1_window.html#aa34b3af6f8d64d11d2c4754d268ce9df',1,'raylib::Window']]], + ['isfileextension_672',['IsFileExtension',['../namespaceraylib.html#a5a60c25be7993db9750acda4cffbd5c5',1,'raylib']]], + ['isfocused_673',['IsFocused',['../classraylib_1_1_window.html#adc7484e498d54cdb28f342097d313284',1,'raylib::Window']]], + ['isfullscreen_674',['IsFullscreen',['../classraylib_1_1_window.html#a5497f129bcfd214f198a1494a8d6aeb0',1,'raylib::Window']]], + ['isgamepadname_675',['IsGamepadName',['../namespaceraylib.html#ae213b7a1cb15e54b4cfb849a51f11ddf',1,'raylib']]], + ['ishidden_676',['IsHidden',['../classraylib_1_1_window.html#aa84905241727491fcfa04d1b2b4bf9a4',1,'raylib::Window']]], + ['ismaximized_677',['IsMaximized',['../classraylib_1_1_window.html#ae83a47dddc7be356bfd7d8328f7bfcc2',1,'raylib::Window']]], + ['isminimized_678',['IsMinimized',['../classraylib_1_1_window.html#af37b1503d3d94dadd16a2e443853fca7',1,'raylib::Window']]], + ['ismodelanimationvalid_679',['IsModelAnimationValid',['../classraylib_1_1_model.html#a4d9e6f4093c9afd36c8a882884b2e973',1,'raylib::Model']]], + ['isname_680',['IsName',['../classraylib_1_1_gamepad.html#a81e083ed8895467edf94c5f6d997976d',1,'raylib::Gamepad']]], + ['isplaying_681',['IsPlaying',['../classraylib_1_1_audio_stream.html#a3ddeb56330bff2e4ae2f6aff6b8c63e9',1,'raylib::AudioStream::IsPlaying()'],['../classraylib_1_1_music.html#a020a0807b02878ce88eb72a51f93a7a8',1,'raylib::Music::IsPlaying()'],['../classraylib_1_1_sound.html#abcb43001db69499796a100f8593c1233',1,'raylib::Sound::IsPlaying()']]], + ['isprocessed_682',['IsProcessed',['../classraylib_1_1_audio_stream.html#a1c208447f698ea82fb3c51f5c9978251',1,'raylib::AudioStream']]], + ['isready_683',['IsReady',['../classraylib_1_1_audio_device.html#a5555c3a41868046ea8b6ff08195f21bc',1,'raylib::AudioDevice::IsReady()'],['../classraylib_1_1_window.html#a9814a0d29da572bba75910b41cfe0f77',1,'raylib::Window::IsReady()']]], + ['isresized_684',['IsResized',['../classraylib_1_1_window.html#abc3ef5315e01e7fbaa1023a3a1be5124',1,'raylib::Window']]], + ['isstate_685',['IsState',['../classraylib_1_1_window.html#a5b9dd646247a51705a040d8c1860bb86',1,'raylib::Window']]], + ['isvalid_686',['IsValid',['../classraylib_1_1_model_animation.html#a8759ec999d5a7370e364e8e86d278c34',1,'raylib::ModelAnimation']]] +]; diff --git a/raylib-cpp/docs/search/functions_9.html b/raylib-cpp/docs/search/functions_9.html new file mode 100644 index 00000000..befd4faa --- /dev/null +++ b/raylib-cpp/docs/search/functions_9.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/functions_9.js b/raylib-cpp/docs/search/functions_9.js new file mode 100644 index 00000000..81721fcc --- /dev/null +++ b/raylib-cpp/docs/search/functions_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['knot_687',['Knot',['../classraylib_1_1_mesh.html#a29bea6873743413a23c573bb2a3cebed',1,'raylib::Mesh']]] +]; diff --git a/raylib-cpp/docs/search/functions_a.html b/raylib-cpp/docs/search/functions_a.html new file mode 100644 index 00000000..a81e9633 --- /dev/null +++ b/raylib-cpp/docs/search/functions_a.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/functions_a.js b/raylib-cpp/docs/search/functions_a.js new file mode 100644 index 00000000..4947ece0 --- /dev/null +++ b/raylib-cpp/docs/search/functions_a.js @@ -0,0 +1,23 @@ +var searchData= +[ + ['length_688',['Length',['../classraylib_1_1_vector2.html#a31b7bc465faebf07ef894eee4291e725',1,'raylib::Vector2']]], + ['lengthsqr_689',['LengthSqr',['../classraylib_1_1_vector2.html#a3e68ca85bfbd5cbe8ebce0ad9e4688a4',1,'raylib::Vector2']]], + ['lerp_690',['Lerp',['../classraylib_1_1_vector2.html#a295e4514f3a3842d83aee1106543e294',1,'raylib::Vector2']]], + ['load_691',['Load',['../classraylib_1_1_image.html#a399564cc57fbee6d5055c3adf0da6ac7',1,'raylib::Image::Load()'],['../classraylib_1_1_material.html#ac482f46142b5ecc9eea4206aced73e26',1,'raylib::Material::Load()'],['../classraylib_1_1_model_animation.html#ae743a3f4d87b6c904b2b4737851f0e21',1,'raylib::ModelAnimation::Load()'],['../classraylib_1_1_shader.html#a65feaccca849680bb3f0a4424309dc53',1,'raylib::Shader::Load()'],['../classraylib_1_1_texture.html#a564e265a684d713f0a77d54eb22542ab',1,'raylib::Texture::Load()']]], + ['loadanim_692',['LoadAnim',['../classraylib_1_1_image.html#adda786a4dfe95e69e3594199f14f7e40',1,'raylib::Image']]], + ['loadcolors_693',['LoadColors',['../classraylib_1_1_image.html#a871b57724846bc69a7bd4ccba1c2c1c2',1,'raylib::Image']]], + ['loadcubemap_694',['LoadCubemap',['../classraylib_1_1_texture.html#a27f9c0e11401110fa2efe75e58092627',1,'raylib::Texture']]], + ['loadfiletext_695',['LoadFileText',['../namespaceraylib.html#ab04081e22c6ddef68a45eeea91001f82',1,'raylib']]], + ['loadfromimage_696',['LoadFromImage',['../classraylib_1_1_texture.html#a04a52fbcdb9456c14c21f0fa0532313d',1,'raylib::Texture']]], + ['loadfrommemory_697',['LoadFromMemory',['../classraylib_1_1_image.html#a272b76cc29e3e960d8487ee7b9c0c3cd',1,'raylib::Image']]], + ['loadimage_698',['LoadImage',['../namespaceraylib.html#a2ef2826f77c7b5ef61bc23b7bdd0c90f',1,'raylib']]], + ['loadimageanim_699',['LoadImageAnim',['../namespaceraylib.html#aad76b2bedb25cb9636e9de5078d82df9',1,'raylib']]], + ['loadimagefrommemory_700',['LoadImageFromMemory',['../namespaceraylib.html#a72b081f8ea1aed3e888a33e5f20b9430',1,'raylib']]], + ['loadimageraw_701',['LoadImageRaw',['../namespaceraylib.html#acc7e1f187de00bc85f7dcd153f0d740e',1,'raylib']]], + ['loadmodelfrom_702',['LoadModelFrom',['../classraylib_1_1_mesh.html#a192994cdc37a5f68cf149eb79024563d',1,'raylib::Mesh']]], + ['loadpalette_703',['LoadPalette',['../classraylib_1_1_image.html#a5938f6aa42e76acf7ba57340a2e7652f',1,'raylib::Image']]], + ['loadraw_704',['LoadRaw',['../classraylib_1_1_image.html#a66f5f0c4b322706d07d19968c893823d',1,'raylib::Image']]], + ['loadsamples_705',['LoadSamples',['../classraylib_1_1_wave.html#ac42dd244534663a8fb1da305006c9f3a',1,'raylib::Wave']]], + ['loadsound_706',['LoadSound',['../classraylib_1_1_wave.html#a6e3a60eee216af788eaa9362a22a847e',1,'raylib::Wave']]], + ['loadtexture_707',['LoadTexture',['../classraylib_1_1_image.html#aa0f3f43f2a0d357203c3a3b467fde011',1,'raylib::Image']]] +]; diff --git a/raylib-cpp/docs/search/functions_b.html b/raylib-cpp/docs/search/functions_b.html new file mode 100644 index 00000000..345265d6 --- /dev/null +++ b/raylib-cpp/docs/search/functions_b.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/functions_b.js b/raylib-cpp/docs/search/functions_b.js new file mode 100644 index 00000000..03e3f55d --- /dev/null +++ b/raylib-cpp/docs/search/functions_b.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['material_708',['Material',['../classraylib_1_1_material.html#a85e551f0db58082ad9e4b46849a36a8c',1,'raylib::Material']]], + ['maximize_709',['Maximize',['../classraylib_1_1_window.html#aee89de600dcc7e645452b4d2f88d55e3',1,'raylib::Window']]], + ['measuretext_710',['MeasureText',['../classraylib_1_1_font.html#a230f1f02c3b77b1319316ab7d45d2553',1,'raylib::Font::MeasureText()'],['../namespaceraylib.html#a7fc68bac19ab696df654038f8e1b1b2c',1,'raylib::MeasureText()']]], + ['minimize_711',['Minimize',['../classraylib_1_1_window.html#a16f54f039449dc45b57849811754ceae',1,'raylib::Window']]], + ['mipmaps_712',['Mipmaps',['../classraylib_1_1_image.html#aaf8f93e11186f0be62d68ae3f932435f',1,'raylib::Image']]], + ['movetowards_713',['MoveTowards',['../classraylib_1_1_vector2.html#a1daf7306af22e5f14c9ee6c08952194b',1,'raylib::Vector2']]], + ['music_714',['Music',['../classraylib_1_1_music.html#a3cbc2287ba5c8e55ce16c47bbb640c60',1,'raylib::Music::Music(const std::string &fileName)'],['../classraylib_1_1_music.html#a894c193e31d956b4c8763698beae17c4',1,'raylib::Music::Music(const std::string &fileType, unsigned char *data, int dataSize)']]] +]; diff --git a/raylib-cpp/docs/search/functions_c.html b/raylib-cpp/docs/search/functions_c.html new file mode 100644 index 00000000..858bfd6c --- /dev/null +++ b/raylib-cpp/docs/search/functions_c.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/functions_c.js b/raylib-cpp/docs/search/functions_c.js new file mode 100644 index 00000000..e4f568bb --- /dev/null +++ b/raylib-cpp/docs/search/functions_c.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['normalize_715',['Normalize',['../classraylib_1_1_color.html#a70c0b9f2b6bc92724df1c87553cbca32',1,'raylib::Color::Normalize()'],['../classraylib_1_1_vector2.html#aee50557d8a60c2633de106f66b3d6cd5',1,'raylib::Vector2::Normalize()']]] +]; diff --git a/raylib-cpp/docs/search/functions_d.html b/raylib-cpp/docs/search/functions_d.html new file mode 100644 index 00000000..2f09f51b --- /dev/null +++ b/raylib-cpp/docs/search/functions_d.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/functions_d.js b/raylib-cpp/docs/search/functions_d.js new file mode 100644 index 00000000..f378da6a --- /dev/null +++ b/raylib-cpp/docs/search/functions_d.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['boundingbox_716',['BoundingBox',['../classraylib_1_1_mesh.html#a5c67dce6d54119cc8922f7ed697eab8c',1,'raylib::Mesh']]], + ['image_717',['Image',['../classraylib_1_1_texture.html#a7d77c3831e3d01bb4ea33e4fcc7a6e1e',1,'raylib::Texture']]], + ['model_718',['Model',['../classraylib_1_1_mesh.html#a8f62c7557383cf2a040bb5dd8f3ecaa1',1,'raylib::Mesh']]], + ['one_719',['One',['../classraylib_1_1_vector2.html#ae0d880ae074014c100a342292ff85deb',1,'raylib::Vector2']]], + ['openurl_720',['OpenURL',['../namespaceraylib.html#ac5d2b6117fd1760de466272a363abafd',1,'raylib']]], + ['operator_20int_721',['operator int',['../classraylib_1_1_color.html#a569352de1fc298f320d0a5c503ad47bf',1,'raylib::Color']]], + ['operator_20sound_722',['operator Sound',['../classraylib_1_1_wave.html#a362a52efd58c603c3aac82a4d8b7aad5',1,'raylib::Wave']]], + ['sound_723',['Sound',['../classraylib_1_1_wave.html#a7f54205425932d5ae6b7bab2ab3e5f87',1,'raylib::Wave']]], + ['string_724',['string',['../classraylib_1_1_gamepad.html#afd58495a8ac8066eab2aebd2d09fa49c',1,'raylib::Gamepad']]], + ['texture2d_725',['Texture2D',['../classraylib_1_1_image.html#a574b01ecc2c8c8eec54ddd83efe512c5',1,'raylib::Image']]] +]; diff --git a/raylib-cpp/docs/search/functions_e.html b/raylib-cpp/docs/search/functions_e.html new file mode 100644 index 00000000..ee5afa65 --- /dev/null +++ b/raylib-cpp/docs/search/functions_e.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/functions_e.js b/raylib-cpp/docs/search/functions_e.js new file mode 100644 index 00000000..68a94358 --- /dev/null +++ b/raylib-cpp/docs/search/functions_e.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['pause_726',['Pause',['../classraylib_1_1_audio_stream.html#aa620374153aa063a0e34f4260c6dce94',1,'raylib::AudioStream::Pause()'],['../classraylib_1_1_music.html#a810f0ae266f247237aa23574e1e31626',1,'raylib::Music::Pause()'],['../classraylib_1_1_sound.html#a51f64c5c76a86a6b6f2225870d5a83a3',1,'raylib::Sound::Pause()']]], + ['perlinnoise_727',['PerlinNoise',['../classraylib_1_1_image.html#aa27eb67bafc0aff3a1c9339bed548e21',1,'raylib::Image']]], + ['plane_728',['Plane',['../classraylib_1_1_mesh.html#a4a3885f78dc0d8a592e05653f5c178b4',1,'raylib::Mesh']]], + ['play_729',['Play',['../classraylib_1_1_audio_stream.html#a594754979b974479711879b7d4af082e',1,'raylib::AudioStream::Play()'],['../classraylib_1_1_music.html#a908ddb6c248c75bd1a3cabc1381a45fc',1,'raylib::Music::Play()'],['../classraylib_1_1_sound.html#a2fd3ff7a2653fa57dc2b0987e108a2ae',1,'raylib::Sound::Play()']]], + ['playmulti_730',['PlayMulti',['../classraylib_1_1_sound.html#adfe6e6915bb17eefd0ab58f5cb3aa7ba',1,'raylib::Sound']]], + ['poly_731',['Poly',['../classraylib_1_1_mesh.html#a52c3d52a426fb774bb3769acaa9b6732',1,'raylib::Mesh']]] +]; diff --git a/raylib-cpp/docs/search/functions_f.html b/raylib-cpp/docs/search/functions_f.html new file mode 100644 index 00000000..f17c412c --- /dev/null +++ b/raylib-cpp/docs/search/functions_f.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/functions_f.js b/raylib-cpp/docs/search/functions_f.js new file mode 100644 index 00000000..6e8d1f06 --- /dev/null +++ b/raylib-cpp/docs/search/functions_f.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['rayhitinfo_732',['RayHitInfo',['../classraylib_1_1_ray_hit_info.html#a49f1140e2d8c67ef76759d3c0d6ee8e7',1,'raylib::RayHitInfo::RayHitInfo(const ::Ray &ray, const ::Mesh &mesh, const ::Matrix &transform)'],['../classraylib_1_1_ray_hit_info.html#af24d9b2dd4a98f2b96dfb2d6f2af0b48',1,'raylib::RayHitInfo::RayHitInfo(const ::Ray &ray, const ::Model &model)'],['../classraylib_1_1_ray_hit_info.html#a6f87aca15df04d35a4f30455be3c68e0',1,'raylib::RayHitInfo::RayHitInfo(const ::Ray &ray, ::Vector3 p1, ::Vector3 p2, ::Vector3 p3)'],['../classraylib_1_1_ray_hit_info.html#a4e03a3c5083ec7e1b7feb26d4aca2878',1,'raylib::RayHitInfo::RayHitInfo(const ::Ray &ray, float groundHeight)']]], + ['reflect_733',['Reflect',['../classraylib_1_1_vector2.html#a8732abb90648f01e75480a0edf7292d7',1,'raylib::Vector2']]], + ['resize_734',['Resize',['../classraylib_1_1_image.html#a62294223271290f049711ee96ca809fb',1,'raylib::Image']]], + ['resizecanvas_735',['ResizeCanvas',['../classraylib_1_1_image.html#aff0dbead0a926a18536b44f5048b284b',1,'raylib::Image']]], + ['resizenn_736',['ResizeNN',['../classraylib_1_1_image.html#a13f6b8aade2957218bdfa199857caa04',1,'raylib::Image']]], + ['restore_737',['Restore',['../classraylib_1_1_window.html#a936ba6f4614ab6b3c2552f88798ffac2',1,'raylib::Window']]], + ['resume_738',['Resume',['../classraylib_1_1_audio_stream.html#ab3514d8e8b8c8992046ef3e51e571c88',1,'raylib::AudioStream::Resume()'],['../classraylib_1_1_music.html#a5c5c67064aa37d2b3f3234a2a02230de',1,'raylib::Music::Resume()'],['../classraylib_1_1_sound.html#a08132251f7b6e4caec600475f610e2f5',1,'raylib::Sound::Resume()']]], + ['rotate_739',['Rotate',['../classraylib_1_1_vector2.html#a32a17f0018071cec378b89edc1f6d696',1,'raylib::Vector2']]], + ['rotateccw_740',['RotateCCW',['../classraylib_1_1_image.html#aa08513832d0ab58144f4418ba3b4b6d6',1,'raylib::Image']]], + ['rotatecw_741',['RotateCW',['../classraylib_1_1_image.html#aed253e5dd980e63b7fd7a8ef43ef7cf6',1,'raylib::Image']]] +]; diff --git a/raylib-cpp/docs/search/mag_sel.png b/raylib-cpp/docs/search/mag_sel.png new file mode 100644 index 00000000..39c0ed52 Binary files /dev/null and b/raylib-cpp/docs/search/mag_sel.png differ diff --git a/raylib-cpp/docs/search/namespaces_0.html b/raylib-cpp/docs/search/namespaces_0.html new file mode 100644 index 00000000..76996d1c --- /dev/null +++ b/raylib-cpp/docs/search/namespaces_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/namespaces_0.js b/raylib-cpp/docs/search/namespaces_0.js new file mode 100644 index 00000000..3d792ef5 --- /dev/null +++ b/raylib-cpp/docs/search/namespaces_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['raylib_471',['raylib',['../namespaceraylib.html',1,'']]] +]; diff --git a/raylib-cpp/docs/search/nomatches.html b/raylib-cpp/docs/search/nomatches.html new file mode 100644 index 00000000..43773208 --- /dev/null +++ b/raylib-cpp/docs/search/nomatches.html @@ -0,0 +1,12 @@ + + + + + + + +
    +
    No Matches
    +
    + + diff --git a/raylib-cpp/docs/search/pages_0.html b/raylib-cpp/docs/search/pages_0.html new file mode 100644 index 00000000..9a6a29ad --- /dev/null +++ b/raylib-cpp/docs/search/pages_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/pages_0.js b/raylib-cpp/docs/search/pages_0.js new file mode 100644 index 00000000..a79aa426 --- /dev/null +++ b/raylib-cpp/docs/search/pages_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['raylib_2dcpp_891',['raylib-cpp',['../index.html',1,'']]] +]; diff --git a/raylib-cpp/docs/search/search.css b/raylib-cpp/docs/search/search.css new file mode 100644 index 00000000..3cf9df94 --- /dev/null +++ b/raylib-cpp/docs/search/search.css @@ -0,0 +1,271 @@ +/*---------------- Search Box */ + +#FSearchBox { + float: left; +} + +#MSearchBox { + white-space : nowrap; + float: none; + margin-top: 8px; + right: 0px; + width: 170px; + height: 24px; + z-index: 102; +} + +#MSearchBox .left +{ + display:block; + position:absolute; + left:10px; + width:20px; + height:19px; + background:url('search_l.png') no-repeat; + background-position:right; +} + +#MSearchSelect { + display:block; + position:absolute; + width:20px; + height:19px; +} + +.left #MSearchSelect { + left:4px; +} + +.right #MSearchSelect { + right:5px; +} + +#MSearchField { + display:block; + position:absolute; + height:19px; + background:url('search_m.png') repeat-x; + border:none; + width:115px; + margin-left:20px; + padding-left:4px; + color: #909090; + outline: none; + font: 9pt Arial, Verdana, sans-serif; + -webkit-border-radius: 0px; +} + +#FSearchBox #MSearchField { + margin-left:15px; +} + +#MSearchBox .right { + display:block; + position:absolute; + right:10px; + top:8px; + width:20px; + height:19px; + background:url('search_r.png') no-repeat; + background-position:left; +} + +#MSearchClose { + display: none; + position: absolute; + top: 4px; + background : none; + border: none; + margin: 0px 4px 0px 0px; + padding: 0px 0px; + outline: none; +} + +.left #MSearchClose { + left: 6px; +} + +.right #MSearchClose { + right: 2px; +} + +.MSearchBoxActive #MSearchField { + color: #000000; +} + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #90A5CE; + background-color: #F9FAFC; + z-index: 10001; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt Arial, Verdana, sans-serif; + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: monospace; + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: #000000; + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: #000000; + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: #FFFFFF; + background-color: #3D578C; + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + width: 60ex; + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #000; + background-color: #EEF1F7; + z-index:10000; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; + padding-bottom: 15px; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +body.SRPage { + margin: 5px 2px; +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; +} + +.SRResult { + display: none; +} + +DIV.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.searchresult { + background-color: #F0F3F8; +} + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: url("../tab_a.png"); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/raylib-cpp/docs/search/search.js b/raylib-cpp/docs/search/search.js new file mode 100644 index 00000000..a554ab9c --- /dev/null +++ b/raylib-cpp/docs/search/search.js @@ -0,0 +1,814 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2017 by Dimitri van Heesch + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + @licend The above is the entire license notice + for the JavaScript code in this file + */ +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var resultsPage; + var resultsPageWithSearch; + var hasResultsPage; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html'; + resultsPageWithSearch = resultsPage+'?'+escape(searchValue); + hasResultsPage = true; + } + else // nothing available for this search term + { + resultsPage = this.resultsPath + '/nomatches.html'; + resultsPageWithSearch = resultsPage; + hasResultsPage = false; + } + + window.frames.MSearchResults.location = resultsPageWithSearch; + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + + if (domPopupSearchResultsWindow.style.display!='block') + { + var domSearchBox = this.DOMSearchBox(); + this.DOMSearchClose().style.display = 'inline'; + if (this.insideFrame) + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + domPopupSearchResultsWindow.style.position = 'relative'; + domPopupSearchResultsWindow.style.display = 'block'; + var width = document.body.clientWidth - 8; // the -8 is for IE :-( + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResults.style.width = width + 'px'; + } + else + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; + var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + } + } + + this.lastSearchValue = searchValue; + this.lastResultsPage = resultsPage; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + + var searchField = this.DOMSearchField(); + + if (searchField.value == this.searchLabel) // clear "Search" term upon entry + { + searchField.value = ''; + this.searchActive = true; + } + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.DOMSearchField().value = this.searchLabel; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName == 'DIV' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName == 'DIV' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + parent.document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults() +{ + var results = document.getElementById("SRResults"); + for (var e=0; e + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/typedefs_0.js b/raylib-cpp/docs/search/typedefs_0.js new file mode 100644 index 00000000..be9c10d8 --- /dev/null +++ b/raylib-cpp/docs/search/typedefs_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['camera_1215',['Camera',['../namespaceraylib.html#a44fa75f4522455fb2231d9950c40d629',1,'raylib']]] +]; diff --git a/raylib-cpp/docs/search/typedefs_1.html b/raylib-cpp/docs/search/typedefs_1.html new file mode 100644 index 00000000..9b8bf72f --- /dev/null +++ b/raylib-cpp/docs/search/typedefs_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/typedefs_1.js b/raylib-cpp/docs/search/typedefs_1.js new file mode 100644 index 00000000..e44463cc --- /dev/null +++ b/raylib-cpp/docs/search/typedefs_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['quaternion_1216',['Quaternion',['../namespaceraylib.html#a35a146d156ee0cb20e51c65c1356009f',1,'raylib']]] +]; diff --git a/raylib-cpp/docs/search/typedefs_2.html b/raylib-cpp/docs/search/typedefs_2.html new file mode 100644 index 00000000..d18982f5 --- /dev/null +++ b/raylib-cpp/docs/search/typedefs_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/typedefs_2.js b/raylib-cpp/docs/search/typedefs_2.js new file mode 100644 index 00000000..11c2f8d3 --- /dev/null +++ b/raylib-cpp/docs/search/typedefs_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['rendertexture2d_1217',['RenderTexture2D',['../namespaceraylib.html#ad0bcd17a51d5afe483d6f57e03cc3237',1,'raylib']]] +]; diff --git a/raylib-cpp/docs/search/typedefs_3.html b/raylib-cpp/docs/search/typedefs_3.html new file mode 100644 index 00000000..8941740c --- /dev/null +++ b/raylib-cpp/docs/search/typedefs_3.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/typedefs_3.js b/raylib-cpp/docs/search/typedefs_3.js new file mode 100644 index 00000000..90c25a31 --- /dev/null +++ b/raylib-cpp/docs/search/typedefs_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['texture2d_1218',['Texture2D',['../namespaceraylib.html#acbfa8d0b01da4e378cebe24c50c2f55f',1,'raylib']]], + ['texturecubemap_1219',['TextureCubemap',['../namespaceraylib.html#a31a94f5d187fbad00d1231541a1fe445',1,'raylib']]] +]; diff --git a/raylib-cpp/docs/search/variables_0.html b/raylib-cpp/docs/search/variables_0.html new file mode 100644 index 00000000..bf3eba5c --- /dev/null +++ b/raylib-cpp/docs/search/variables_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/variables_0.js b/raylib-cpp/docs/search/variables_0.js new file mode 100644 index 00000000..d67c3dfc --- /dev/null +++ b/raylib-cpp/docs/search/variables_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['number_1214',['number',['../classraylib_1_1_gamepad.html#a66632b63f6edf508a980e9198f60a8f3',1,'raylib::Gamepad']]] +]; diff --git a/raylib-cpp/docs/search/variables_1.html b/raylib-cpp/docs/search/variables_1.html new file mode 100644 index 00000000..49fe59a1 --- /dev/null +++ b/raylib-cpp/docs/search/variables_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/variables_1.js b/raylib-cpp/docs/search/variables_1.js new file mode 100644 index 00000000..2fc1b2f4 --- /dev/null +++ b/raylib-cpp/docs/search/variables_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['number_1223',['number',['../classraylib_1_1_gamepad.html#a66632b63f6edf508a980e9198f60a8f3',1,'raylib::Gamepad']]] +]; diff --git a/raylib-cpp/docs/search/variables_2.html b/raylib-cpp/docs/search/variables_2.html new file mode 100644 index 00000000..0c8a18cf --- /dev/null +++ b/raylib-cpp/docs/search/variables_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/variables_2.js b/raylib-cpp/docs/search/variables_2.js new file mode 100644 index 00000000..7678257b --- /dev/null +++ b/raylib-cpp/docs/search/variables_2.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['gold_1045',['Gold',['../classraylib_1_1_color.html#a87eaf0f94d45ccc5a7a6003c2f342980',1,'raylib::Color']]], + ['gray_1046',['Gray',['../classraylib_1_1_color.html#af2dd026627915f6b0ed9763d0023b28b',1,'raylib::Color']]], + ['green_1047',['Green',['../classraylib_1_1_color.html#a73988f149b4ea75cdaa71c51a814547f',1,'raylib::Color']]] +]; diff --git a/raylib-cpp/docs/search/variables_3.html b/raylib-cpp/docs/search/variables_3.html new file mode 100644 index 00000000..19a31fc2 --- /dev/null +++ b/raylib-cpp/docs/search/variables_3.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/variables_3.js b/raylib-cpp/docs/search/variables_3.js new file mode 100644 index 00000000..01046b8d --- /dev/null +++ b/raylib-cpp/docs/search/variables_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['lightgray_1048',['LightGray',['../classraylib_1_1_color.html#a593417e6ffd2a11fdf1618c2438d57cb',1,'raylib::Color']]], + ['lime_1049',['Lime',['../classraylib_1_1_color.html#ad1e68bfdfd3f37980133dbee93ed0713',1,'raylib::Color']]] +]; diff --git a/raylib-cpp/docs/search/variables_4.html b/raylib-cpp/docs/search/variables_4.html new file mode 100644 index 00000000..bdc37be7 --- /dev/null +++ b/raylib-cpp/docs/search/variables_4.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/variables_4.js b/raylib-cpp/docs/search/variables_4.js new file mode 100644 index 00000000..13797800 --- /dev/null +++ b/raylib-cpp/docs/search/variables_4.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['m_5fcount_1050',['m_count',['../classraylib_1_1_dropped_files.html#a34ffc3383a9b90c30b5467f313f6afe1',1,'raylib::DroppedFiles']]], + ['m_5ffiles_1051',['m_files',['../classraylib_1_1_dropped_files.html#a8fc854eaf6a5d9646c18db2e74256c9b',1,'raylib::DroppedFiles']]], + ['magenta_1052',['Magenta',['../classraylib_1_1_color.html#ad7a1625e6c9d2db268776aefa34d686a',1,'raylib::Color']]], + ['maroon_1053',['Maroon',['../classraylib_1_1_color.html#ac84d719088ad1af8d1cfc40f8a4f2ab3',1,'raylib::Color']]] +]; diff --git a/raylib-cpp/docs/search/variables_5.html b/raylib-cpp/docs/search/variables_5.html new file mode 100644 index 00000000..6aa2249b --- /dev/null +++ b/raylib-cpp/docs/search/variables_5.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/variables_5.js b/raylib-cpp/docs/search/variables_5.js new file mode 100644 index 00000000..9a680f84 --- /dev/null +++ b/raylib-cpp/docs/search/variables_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['number_1054',['number',['../classraylib_1_1_gamepad.html#a66632b63f6edf508a980e9198f60a8f3',1,'raylib::Gamepad']]] +]; diff --git a/raylib-cpp/docs/search/variables_6.html b/raylib-cpp/docs/search/variables_6.html new file mode 100644 index 00000000..ce4a9063 --- /dev/null +++ b/raylib-cpp/docs/search/variables_6.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/variables_6.js b/raylib-cpp/docs/search/variables_6.js new file mode 100644 index 00000000..bc136927 --- /dev/null +++ b/raylib-cpp/docs/search/variables_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['orange_1055',['Orange',['../classraylib_1_1_color.html#a98eea813eb02f72d41cb5d58cac88859',1,'raylib::Color']]] +]; diff --git a/raylib-cpp/docs/search/variables_7.html b/raylib-cpp/docs/search/variables_7.html new file mode 100644 index 00000000..39ffd474 --- /dev/null +++ b/raylib-cpp/docs/search/variables_7.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/variables_7.js b/raylib-cpp/docs/search/variables_7.js new file mode 100644 index 00000000..424e7d02 --- /dev/null +++ b/raylib-cpp/docs/search/variables_7.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['pink_1056',['Pink',['../classraylib_1_1_color.html#a063846b10d2e272bf948574435743355',1,'raylib::Color']]], + ['purple_1057',['Purple',['../classraylib_1_1_color.html#aefb524854e1fd48ed8e0fd47747575a3',1,'raylib::Color']]] +]; diff --git a/raylib-cpp/docs/search/variables_8.html b/raylib-cpp/docs/search/variables_8.html new file mode 100644 index 00000000..37a2eddf --- /dev/null +++ b/raylib-cpp/docs/search/variables_8.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/variables_8.js b/raylib-cpp/docs/search/variables_8.js new file mode 100644 index 00000000..58c971df --- /dev/null +++ b/raylib-cpp/docs/search/variables_8.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['raywhite_1058',['RayWhite',['../classraylib_1_1_color.html#a617a8a434004510d97e65109f2d1cdfb',1,'raylib::Color']]], + ['red_1059',['Red',['../classraylib_1_1_color.html#a5e43d16126057c2da442fa2660924368',1,'raylib::Color']]] +]; diff --git a/raylib-cpp/docs/search/variables_9.html b/raylib-cpp/docs/search/variables_9.html new file mode 100644 index 00000000..21e5a4f3 --- /dev/null +++ b/raylib-cpp/docs/search/variables_9.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/variables_9.js b/raylib-cpp/docs/search/variables_9.js new file mode 100644 index 00000000..bc0f7f3a --- /dev/null +++ b/raylib-cpp/docs/search/variables_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['skyblue_1060',['SkyBlue',['../classraylib_1_1_color.html#a41745f7b7a402f54f9db205d57dd7090',1,'raylib::Color']]] +]; diff --git a/raylib-cpp/docs/search/variables_a.html b/raylib-cpp/docs/search/variables_a.html new file mode 100644 index 00000000..1f650553 --- /dev/null +++ b/raylib-cpp/docs/search/variables_a.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/variables_a.js b/raylib-cpp/docs/search/variables_a.js new file mode 100644 index 00000000..02b36053 --- /dev/null +++ b/raylib-cpp/docs/search/variables_a.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['violet_1061',['Violet',['../classraylib_1_1_color.html#a08f576f628933ddc9874a84ccfbb2aac',1,'raylib::Color']]] +]; diff --git a/raylib-cpp/docs/search/variables_b.html b/raylib-cpp/docs/search/variables_b.html new file mode 100644 index 00000000..c02d066f --- /dev/null +++ b/raylib-cpp/docs/search/variables_b.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/variables_b.js b/raylib-cpp/docs/search/variables_b.js new file mode 100644 index 00000000..da745c19 --- /dev/null +++ b/raylib-cpp/docs/search/variables_b.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['white_1062',['White',['../classraylib_1_1_color.html#a85c6885383e69ed18d7c7f633c7ea110',1,'raylib::Color']]] +]; diff --git a/raylib-cpp/docs/search/variables_c.html b/raylib-cpp/docs/search/variables_c.html new file mode 100644 index 00000000..4b866c6c --- /dev/null +++ b/raylib-cpp/docs/search/variables_c.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/raylib-cpp/docs/search/variables_c.js b/raylib-cpp/docs/search/variables_c.js new file mode 100644 index 00000000..24488a54 --- /dev/null +++ b/raylib-cpp/docs/search/variables_c.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['yellow_1063',['Yellow',['../classraylib_1_1_color.html#af66a864ee41ffae4b710a2595baa8a2e',1,'raylib::Color']]] +]; diff --git a/raylib-cpp/docs/splitbar.png b/raylib-cpp/docs/splitbar.png new file mode 100644 index 00000000..fe895f2c Binary files /dev/null and b/raylib-cpp/docs/splitbar.png differ diff --git a/raylib-cpp/docs/sync_off.png b/raylib-cpp/docs/sync_off.png new file mode 100644 index 00000000..3b443fc6 Binary files /dev/null and b/raylib-cpp/docs/sync_off.png differ diff --git a/raylib-cpp/docs/sync_on.png b/raylib-cpp/docs/sync_on.png new file mode 100644 index 00000000..e08320fb Binary files /dev/null and b/raylib-cpp/docs/sync_on.png differ diff --git a/raylib-cpp/docs/tab_a.png b/raylib-cpp/docs/tab_a.png new file mode 100644 index 00000000..3b725c41 Binary files /dev/null and b/raylib-cpp/docs/tab_a.png differ diff --git a/raylib-cpp/docs/tab_b.png b/raylib-cpp/docs/tab_b.png new file mode 100644 index 00000000..e2b4a863 Binary files /dev/null and b/raylib-cpp/docs/tab_b.png differ diff --git a/raylib-cpp/docs/tab_h.png b/raylib-cpp/docs/tab_h.png new file mode 100644 index 00000000..fd5cb705 Binary files /dev/null and b/raylib-cpp/docs/tab_h.png differ diff --git a/raylib-cpp/docs/tab_s.png b/raylib-cpp/docs/tab_s.png new file mode 100644 index 00000000..ab478c95 Binary files /dev/null and b/raylib-cpp/docs/tab_s.png differ diff --git a/raylib-cpp/docs/tabs.css b/raylib-cpp/docs/tabs.css new file mode 100644 index 00000000..7d45d36c --- /dev/null +++ b/raylib-cpp/docs/tabs.css @@ -0,0 +1 @@ +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0px/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0px 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0px 1px 1px rgba(255,255,255,0.9);color:#283A5D;outline:none}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox a.current{color:#D23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media (min-width: 768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283A5D transparent transparent transparent;background:transparent;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0px 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;border-radius:0 !important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox a:hover span.sub-arrow{border-color:#fff transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;border-radius:5px !important;box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0 !important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent #fff}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #D23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#D23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} diff --git a/raylib-cpp/docs/utils_8hpp_source.html b/raylib-cpp/docs/utils_8hpp_source.html new file mode 100644 index 00000000..9cc42ff3 --- /dev/null +++ b/raylib-cpp/docs/utils_8hpp_source.html @@ -0,0 +1,79 @@ + + + + + + + +raylib-cpp: utils.hpp Source File + + + + + + + + + +
    +
    + + + + + + + +
    +
    raylib-cpp +
    +
    C++ object-oriented wrapper library for raylib.
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    utils.hpp
    +
    +
    +
    1 #ifndef RAYLIB_CPP_UTILS_HPP_
    2 #define RAYLIB_CPP_UTILS_HPP_
    3 
    4 #ifndef GETTERSETTER
    5 
    12 #define GETTERSETTER(type, method, name) \
    13  inline type Get##method() { return name; } \
    14  inline void Set##method(type value) { name = value; }
    15 #endif
    16 
    17 #endif
    + + + + diff --git a/raylib-cpp/examples/CMakeLists.txt b/raylib-cpp/examples/CMakeLists.txt new file mode 100644 index 00000000..74b3f420 --- /dev/null +++ b/raylib-cpp/examples/CMakeLists.txt @@ -0,0 +1,46 @@ +# Get the sources together +set(example_dirs audio core models physics shapes text textures) +set(example_sources) +set(example_resources) + +# raylib +find_package(raylib QUIET) +if (NOT raylib_FOUND) + set(BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) # don't build the supplied examples + set(BUILD_GAMES OFF CACHE BOOL "" FORCE) # or games + add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../vendor/raylib ${CMAKE_CURRENT_SOURCE_DIR}/../vendor/raylib) +endif() + +# Find all examples +foreach(example_dir ${example_dirs}) + file(GLOB sources ${example_dir}/*.cpp) + list(APPEND example_sources ${sources}) + + # Any any resources + file(GLOB resources ${example_dir}/resources/*) + list(APPEND example_resources ${resources}) +endforeach() + +# Compile all examples +foreach(example_source ${example_sources}) + # Create the basename for the example + get_filename_component(example_name ${example_source} NAME) + string(REPLACE ".cpp" "${OUTPUT_EXT}" example_name ${example_name}) + + # Setup the example + add_executable(${example_name} ${example_source}) + + # Link raylib and raylib-cpp + target_link_libraries(${example_name} PUBLIC raylib-cpp raylib) + + string(REGEX MATCH ".*/.*/" resources_dir ${example_source}) + string(APPEND resources_dir "resources") + +endforeach() + +# Multiple Files Example +add_executable("multiple" multiple/main.cpp multiple/Player.cpp) +target_link_libraries("multiple" PUBLIC raylib-cpp raylib) + +# Copy all the resources +file(COPY ${example_resources} DESTINATION "resources/") diff --git a/raylib-cpp/examples/audio/audio_music_stream.cpp b/raylib-cpp/examples/audio/audio_music_stream.cpp new file mode 100644 index 00000000..c23407ee --- /dev/null +++ b/raylib-cpp/examples/audio/audio_music_stream.cpp @@ -0,0 +1,83 @@ +/******************************************************************************************* +* +* raylib [audio] example - Music playing (streaming) +* +* This example has been created using raylib 1.3 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2015 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib-cpp.hpp" + +int main() { + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + raylib::Window window(screenWidth, screenHeight, "raylib [audio] example - music playing (streaming)"); + + raylib::AudioDevice audio; // Initialize audio device + + raylib::Music music("resources/target.ogg"); + + music.Play(); + + float timePlayed = 0.0f; + bool pause = false; + + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!window.ShouldClose()) { // Detect window close button or ESC key + // Update + //---------------------------------------------------------------------------------- + music.Update(); // Update music buffer with new stream data + + // Restart music playing (stop and play) + if (IsKeyPressed(KEY_SPACE)) { + music.Stop(); + music.Play(); + } + + // Pause/Resume music playing + if (IsKeyPressed(KEY_P)) { + pause = !pause; + + if (pause) { + music.Pause(); + } else { + music.Resume(); + } + } + + // Get timePlayed scaled to bar dimensions (400 pixels) + timePlayed = music.GetTimePlayed() / music.GetTimeLength() * 400; + + if (timePlayed > 400) music.Stop(); + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + { + window.ClearBackground(RAYWHITE); + + DrawText("MUSIC SHOULD BE PLAYING!", 255, 150, 20, LIGHTGRAY); + + DrawRectangle(200, 200, 400, 12, LIGHTGRAY); + DrawRectangle(200, 200, static_cast(timePlayed), 12, MAROON); + DrawRectangleLines(200, 200, 400, 12, GRAY); + + DrawText("PRESS SPACE TO RESTART MUSIC", 215, 250, 20, LIGHTGRAY); + DrawText("PRESS P TO PAUSE/RESUME MUSIC", 208, 280, 20, LIGHTGRAY); + } + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + return 0; +} diff --git a/raylib-cpp/examples/audio/audio_sound_loading.cpp b/raylib-cpp/examples/audio/audio_sound_loading.cpp new file mode 100644 index 00000000..fbc97034 --- /dev/null +++ b/raylib-cpp/examples/audio/audio_sound_loading.cpp @@ -0,0 +1,52 @@ +/******************************************************************************************* +* +* raylib [audio] example - Sound loading and playing +* +* This example has been created using raylib 1.0 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2014 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib-cpp.hpp" + +int main() { + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + raylib::Window window(screenWidth, screenHeight, "raylib [audio] example - sound loading and playing"); + + raylib::AudioDevice audiodevice; // Initialize audio device + + raylib::Sound fxWav("resources/sound.wav"); // Load WAV audio file + raylib::Sound fxOgg("resources/target.ogg"); // Load OGG audio file + + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!window.ShouldClose()) { // Detect window close button or ESC key + // Update + //---------------------------------------------------------------------------------- + if (IsKeyPressed(KEY_SPACE)) fxWav.Play(); // Play WAV sound + if (IsKeyPressed(KEY_ENTER)) fxOgg.Play(); // Play OGG sound + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + { + window.ClearBackground(RAYWHITE); + + DrawText("Press SPACE to PLAY the WAV sound!", 200, 180, 20, LIGHTGRAY); + DrawText("Press ENTER to PLAY the OGG sound!", 200, 220, 20, LIGHTGRAY); + } + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + return 0; +} diff --git a/raylib-cpp/examples/audio/resources/LICENSE.md b/raylib-cpp/examples/audio/resources/LICENSE.md new file mode 100644 index 00000000..c94731c9 --- /dev/null +++ b/raylib-cpp/examples/audio/resources/LICENSE.md @@ -0,0 +1,10 @@ +| resource | author | licence | notes | +| :------------------- | :---------: | :------ | :---- | +| country.mp3 | [@emegeme](https://github.com/emegeme) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | Originally created for "DART that TARGET" game | +| target.ogg | [@emegeme](https://github.com/emegeme) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | Originally created for "DART that TARGET" game | +| target.flac | [@emegeme](https://github.com/emegeme) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | Originally created for "DART that TARGET" game | +| coin.wav | [@raysan5](https://github.com/raysan5) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | Created using [rFXGen](https://raylibtech.itch.io/rfxgen) | +| sound.wav | [@raysan5](https://github.com/raysan5) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | Created using [rFXGen](https://raylibtech.itch.io/rfxgen) | +| spring.wav | [@raysan5](https://github.com/raysan5) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | Created using [rFXGen](https://raylibtech.itch.io/rfxgen) | +| weird.wav | [@raysan5](https://github.com/raysan5) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | Created using [rFXGen](https://raylibtech.itch.io/rfxgen) | +| mini1111.xm | [tPORt](https://modarchive.org/index.php?request=view_by_moduleid&query=51891) | [Mod Archive Distribution license](https://modarchive.org/index.php?terms-upload) | - | diff --git a/raylib-cpp/examples/audio/resources/coin.wav b/raylib-cpp/examples/audio/resources/coin.wav new file mode 100644 index 00000000..6007509b Binary files /dev/null and b/raylib-cpp/examples/audio/resources/coin.wav differ diff --git a/raylib-cpp/examples/audio/resources/country.mp3 b/raylib-cpp/examples/audio/resources/country.mp3 new file mode 100644 index 00000000..91066cce Binary files /dev/null and b/raylib-cpp/examples/audio/resources/country.mp3 differ diff --git a/raylib-cpp/examples/audio/resources/mini1111.xm b/raylib-cpp/examples/audio/resources/mini1111.xm new file mode 100644 index 00000000..a185c1a2 Binary files /dev/null and b/raylib-cpp/examples/audio/resources/mini1111.xm differ diff --git a/raylib-cpp/examples/audio/resources/sound.wav b/raylib-cpp/examples/audio/resources/sound.wav new file mode 100644 index 00000000..b5d01c9b Binary files /dev/null and b/raylib-cpp/examples/audio/resources/sound.wav differ diff --git a/raylib-cpp/examples/audio/resources/spring.wav b/raylib-cpp/examples/audio/resources/spring.wav new file mode 100644 index 00000000..c7fbf1b9 Binary files /dev/null and b/raylib-cpp/examples/audio/resources/spring.wav differ diff --git a/raylib-cpp/examples/audio/resources/target.flac b/raylib-cpp/examples/audio/resources/target.flac new file mode 100644 index 00000000..5fad22c8 Binary files /dev/null and b/raylib-cpp/examples/audio/resources/target.flac differ diff --git a/raylib-cpp/examples/audio/resources/target.ogg b/raylib-cpp/examples/audio/resources/target.ogg new file mode 100644 index 00000000..2b73e1c7 Binary files /dev/null and b/raylib-cpp/examples/audio/resources/target.ogg differ diff --git a/raylib-cpp/examples/audio/resources/weird.wav b/raylib-cpp/examples/audio/resources/weird.wav new file mode 100644 index 00000000..101029c5 Binary files /dev/null and b/raylib-cpp/examples/audio/resources/weird.wav differ diff --git a/raylib-cpp/examples/core/core_3d_camera_first_person.cpp b/raylib-cpp/examples/core/core_3d_camera_first_person.cpp new file mode 100644 index 00000000..5696e92c --- /dev/null +++ b/raylib-cpp/examples/core/core_3d_camera_first_person.cpp @@ -0,0 +1,89 @@ +/******************************************************************************************* +* +* raylib [core] example - 3d camera first person +* +* This example has been created using raylib 1.3 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2015 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib-cpp.hpp" + +#define MAX_COLUMNS 20 + +int main() { + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + raylib::Window window(screenWidth, screenHeight, "raylib [core] example - 3d camera first person"); + + // Define the camera to look into our 3d world (position, target, up vector) + raylib::Camera camera( + raylib::Vector3(4.0f, 2.0f, 4.0f), + raylib::Vector3(0.0f, 1.8f, 0.0f), + raylib::Vector3(0.0f, 1.0f, 0.0f), + 60.0f, + CAMERA_PERSPECTIVE); + + // Generates some random columns + float heights[MAX_COLUMNS] = { 0.0f }; + raylib::Vector3 positions[MAX_COLUMNS] = { 0 }; + raylib::Color colors[MAX_COLUMNS] = { 0 }; + + for (int i = 0; i < MAX_COLUMNS; i++) + { + heights[i] = (float)GetRandomValue(1, 12); + positions[i] = raylib::Vector3(GetRandomValue(-15, 15), heights[i]/2, GetRandomValue(-15, 15)); + colors[i] = raylib::Color(GetRandomValue(20, 255), GetRandomValue(10, 55), 30); + } + + camera.SetMode(CAMERA_FIRST_PERSON); // Set a first person camera mode + + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!window.ShouldClose()) { // Detect window close button or ESC key + // Update + //---------------------------------------------------------------------------------- + camera.Update(); // Update camera + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + { + window.ClearBackground(RAYWHITE); + + camera.BeginMode(); + { + DrawPlane(Vector3{ 0.0f, 0.0f, 0.0f }, Vector2{ 32.0f, 32.0f }, LIGHTGRAY); // Draw ground + DrawCube(Vector3{ -16.0f, 2.5f, 0.0f }, 1.0f, 5.0f, 32.0f, BLUE); // Draw a blue wall + DrawCube(Vector3{ 16.0f, 2.5f, 0.0f }, 1.0f, 5.0f, 32.0f, LIME); // Draw a green wall + DrawCube(Vector3{ 0.0f, 2.5f, 16.0f }, 32.0f, 5.0f, 1.0f, GOLD); // Draw a yellow wall + + // Draw some cubes around + for (int i = 0; i < MAX_COLUMNS; i++) { + positions[i].DrawCube(2.0f, heights[i], 2.0f, colors[i]); + positions[i].DrawCubeWires(2.0f, heights[i], 2.0f, MAROON); + } + } + camera.EndMode(); + + DrawRectangle( 10, 10, 220, 70, raylib::Color::SkyBlue().Fade(0.5f)); + DrawRectangleLines( 10, 10, 220, 70, BLUE); + + DrawText("First person camera default controls:", 20, 20, 10, BLACK); + DrawText("- Move with keys: W, A, S, D", 40, 40, 10, DARKGRAY); + DrawText("- Mouse move to look around", 40, 60, 10, DARKGRAY); + } + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + return 0; +} diff --git a/raylib-cpp/examples/core/core_basic_window.cpp b/raylib-cpp/examples/core/core_basic_window.cpp new file mode 100644 index 00000000..6fd81c55 --- /dev/null +++ b/raylib-cpp/examples/core/core_basic_window.cpp @@ -0,0 +1,54 @@ +/******************************************************************************************* +* +* raylib [core] example - Basic window +* +* Welcome to raylib! +* +* To test examples, just press F6 and execute raylib_compile_execute script +* Note that compiled executable is placed in the same folder as .c file +* +* You can find all basic examples on C:\raylib\raylib\examples folder or +* raylib official webpage: www.raylib.com +* +* Enjoy using raylib. :) +* +* This example has been created using raylib 1.0 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2014 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib-cpp.hpp" + +int main() { + // Initialization + //-------------------------------------------------------------------------------------- + int screenWidth = 800; + int screenHeight = 450; + raylib::Color textColor = raylib::Color::LightGray(); + raylib::Window window(screenWidth, screenHeight, "raylib [core] example - basic window"); + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!window.ShouldClose()) { // Detect window close button or ESC key + // Update + //---------------------------------------------------------------------------------- + // TODO: Update your variables here + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + { + window.ClearBackground(RAYWHITE); + textColor.DrawText("Congrats! You created your first window!", 190, 200, 20); + } + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + return 0; +} diff --git a/raylib-cpp/examples/core/core_drop_files.cpp b/raylib-cpp/examples/core/core_drop_files.cpp new file mode 100644 index 00000000..63dc257e --- /dev/null +++ b/raylib-cpp/examples/core/core_drop_files.cpp @@ -0,0 +1,69 @@ +/******************************************************************************************* +* +* raylib [core] example - Windows drop files +* +* This example only works on platforms that support drag & drop (Windows, Linux, OSX, Html5?) +* +* This example has been created using raylib-cpp (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2020 Rob Loach (@RobLoach) +* +********************************************************************************************/ + +#include "raylib-cpp.hpp" + +int main() { + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + raylib::Window window(screenWidth, screenHeight, "raylib [core] example - drop files"); + + std::vector droppedFiles; + + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!window.ShouldClose()) { // Detect window close button or ESC key + // Update + //---------------------------------------------------------------------------------- + if (IsFileDropped()) { + droppedFiles = raylib::GetDroppedFiles(); + } + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + { + window.ClearBackground(RAYWHITE); + + // Check if there are files to process. + if (droppedFiles.empty()) { + DrawText("Drop your files to this window!", 100, 40, 20, DARKGRAY); + } else { + DrawText("Dropped files:", 100, 40, 20, DARKGRAY); + + // Iterate through all the dropped files. + for (int i = 0; i < droppedFiles.size(); i++) { + if (i % 2 == 0) + DrawRectangle(0, 85 + 40*i, screenWidth, 40, Fade(LIGHTGRAY, 0.5f)); + else + DrawRectangle(0, 85 + 40*i, screenWidth, 40, Fade(LIGHTGRAY, 0.3f)); + + // Display the path to the dropped file. + DrawText(droppedFiles[i].c_str(), 120, 100 + 40 * i, 10, GRAY); + } + + DrawText("Drop new files...", 100, 110 + 40 * droppedFiles.size(), 20, DARKGRAY); + } + } + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + return 0; +} diff --git a/raylib-cpp/examples/core/core_input_mouse.cpp b/raylib-cpp/examples/core/core_input_mouse.cpp new file mode 100644 index 00000000..833f621d --- /dev/null +++ b/raylib-cpp/examples/core/core_input_mouse.cpp @@ -0,0 +1,55 @@ +/******************************************************************************************* +* +* raylib [core] example - Mouse input +* +* This example has been created using raylib 1.0 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2014 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib-cpp.hpp" + +int main() { + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + raylib::Window window(screenWidth, screenHeight, "raylib [core] example - mouse input"); + + raylib::Vector2 ballPosition(-100.0f, -100.0f); + raylib::Color ballColor = raylib::Color::DarkBlue(); + raylib::Color textColor = raylib::Color::DarkGray(); + + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //--------------------------------------------------------------------------------------- + + // Main game loop + while (!window.ShouldClose()) { // Detect window close button or ESC key + // Update + //---------------------------------------------------------------------------------- + ballPosition = GetMousePosition(); + + if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) ballColor = MAROON; + else if (IsMouseButtonPressed(MOUSE_MIDDLE_BUTTON)) ballColor = LIME; + else if (IsMouseButtonPressed(MOUSE_RIGHT_BUTTON)) ballColor = DARKBLUE; + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + { + window.ClearBackground(RAYWHITE); + + ballPosition.DrawCircle(40, ballColor); + + textColor.DrawText("move ball with mouse and click mouse button to change color", 10, 10, 20); + } + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + return 0; +} diff --git a/raylib-cpp/examples/core/core_loading_thread.cpp b/raylib-cpp/examples/core/core_loading_thread.cpp new file mode 100644 index 00000000..eecacb85 --- /dev/null +++ b/raylib-cpp/examples/core/core_loading_thread.cpp @@ -0,0 +1,149 @@ +/******************************************************************************* +* +* raylib example - loading thread +* +* This example has been created using raylib-cpp (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license +* (View raylib.h for details) +* +* Copyright (c) 2014-2019 Ramon Santamaria (@raysan5) +* Copyright (c) 2021 Paul Keir (University of the West of Scotland) +* +*******************************************************************************/ + +#include "raylib-cpp.hpp" +#include // C++11 standard library threads +#include // C++ atomic data types +#include // For: chrono::steady_clock::now() +#include // May be thrown by thread c'tor + +// Using C++ std::atomic_bool (aka. std::atomic) for synchronization. +// n.b. A plain built-in type can't be used for inter-thread synchronization +std::atomic_bool dataLoaded{false}; +static void LoadDataThread(); // Loading data thread function declaration +static int dataProgress = 0; // Data progress accumulator + +int main(void) +{ + // Initialization + //-------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + raylib::Window window(screenWidth, screenHeight, + "raylib [core] example - loading thread"); + + std::thread threadId; // Loading data thread id + + enum { STATE_WAITING, STATE_LOADING, STATE_FINISHED } state = STATE_WAITING; + int framesCounter = 0; + + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //-------------------------------------------------------------------------- + + // Main game loop + while (!window.ShouldClose()) { // Detect window close button or ESC key + // Update + //---------------------------------------------------------------------- + switch (state) + { + case STATE_WAITING: + if (IsKeyPressed(KEY_ENTER)) + { + try { + threadId = std::thread(LoadDataThread); + TraceLog(LOG_INFO, + "Loading thread initialized successfully"); + } catch (std::system_error e) { + TraceLog(LOG_ERROR, "Error: %s", e.what()); + } + + state = STATE_LOADING; + } + break; + + case STATE_LOADING: + framesCounter++; + if (dataLoaded.load()) + { + framesCounter = 0; + state = STATE_FINISHED; + } + break; + + case STATE_FINISHED: + if (IsKeyPressed(KEY_ENTER)) + { + // Reset everything to launch again + dataLoaded = false; + dataProgress = 0; + state = STATE_WAITING; + } + break; + + default: + break; + } + //---------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------- + BeginDrawing(); + { + + window.ClearBackground(RAYWHITE); + + switch (state) + { + case STATE_WAITING: + DrawText("PRESS ENTER to START LOADING DATA", + 150, 170, 20, DARKGRAY); + break; + + case STATE_LOADING: + DrawRectangle(150, 200, dataProgress, 60, SKYBLUE); + if ((framesCounter/15)%2) + DrawText("LOADING DATA...", 240, 210, 40, DARKBLUE); + break; + + case STATE_FINISHED: + DrawRectangle(150, 200, 500, 60, LIME); + DrawText("DATA LOADED!", 250, 210, 40, GREEN); + break; + } + + DrawRectangleLines(150, 200, 500, 60, DARKGRAY); + } + + EndDrawing(); + //---------------------------------------------------------------------- + } + + if (threadId.joinable()) // The user might quit without creating a thread. + threadId.join(); // Good etiquette, but may take a second. + + return 0; +} + +// Loading data thread function definition +static void LoadDataThread() +{ + using namespace std::chrono; + int timeCounter = 0; // Time counted in ms + + auto prevTime = steady_clock::now(); + + // We simulate data loading with a time counter for 5 seconds + while (timeCounter < 5000) + { + auto currentTime = steady_clock::now() - prevTime; + timeCounter = duration_cast(currentTime).count(); + + // We accumulate time over a global variable to be used in + // main thread as a progress bar + dataProgress = timeCounter/10; + } + + // When data has finished loading, we set global variable + dataLoaded = true; +} diff --git a/raylib-cpp/examples/core/core_random_values.cpp b/raylib-cpp/examples/core/core_random_values.cpp new file mode 100644 index 00000000..1b7a144e --- /dev/null +++ b/raylib-cpp/examples/core/core_random_values.cpp @@ -0,0 +1,58 @@ +/******************************************************************************************* +* +* raylib [core] example - Generate random values +* +* This example has been created using raylib 1.1 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2014 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib-cpp.hpp" + +int main() { + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + raylib::Window window(screenWidth, screenHeight, "raylib [core] example - generate random values"); + + int framesCounter = 0; // Variable used to count frames + + int randValue = GetRandomValue(-8, 5); // Get a random integer number between -8 and 5 (both included) + + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!window.ShouldClose()) { // Detect window close button or ESC key + // Update + //---------------------------------------------------------------------------------- + framesCounter++; + + // Every two seconds (120 frames) a new random value is generated + if (((framesCounter/120)%2) == 1) + { + randValue = GetRandomValue(-8, 5); + framesCounter = 0; + } + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + { + window.ClearBackground(RAYWHITE); + + DrawText("Every 2 seconds a new random value is generated:", 130, 100, 20, MAROON); + + DrawText(FormatText("%i", randValue), 360, 180, 80, LIGHTGRAY); + } + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + return 0; +} diff --git a/raylib-cpp/examples/core/core_world_screen.cpp b/raylib-cpp/examples/core/core_world_screen.cpp new file mode 100644 index 00000000..83ac092d --- /dev/null +++ b/raylib-cpp/examples/core/core_world_screen.cpp @@ -0,0 +1,71 @@ +/******************************************************************************************* +* +* raylib [core] example - World to screen +* +* This example has been created using raylib 1.3 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2015 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib-cpp.hpp" + +int main() { + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + raylib::Window window(screenWidth, screenHeight, "raylib [core] example - 3d camera free"); + + // Define the camera to look into our 3d world + raylib::Camera camera( + raylib::Vector3(10.0f, 10.0f, 10.0f), + raylib::Vector3(), + raylib::Vector3(0.0f, 1.0f, 0.0f), + 45.0f, + CAMERA_PERSPECTIVE); + + Vector3 cubePosition; + Vector2 cubeScreenPosition; + + camera.SetMode(CAMERA_FREE); // Set a free camera mode + + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!window.ShouldClose()) { // Detect window close button or ESC key + // Update + //---------------------------------------------------------------------------------- + camera.Update(); // Update camera + + // Calculate cube screen space position (with a little offset to be in top) + cubeScreenPosition = GetWorldToScreen((Vector3){cubePosition.x, cubePosition.y + 2.5f, cubePosition.z}, camera); + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + { + window.ClearBackground(RAYWHITE); + + camera.BeginMode(); + { + DrawCube(cubePosition, 2.0f, 2.0f, 2.0f, RED); + DrawCubeWires(cubePosition, 2.0f, 2.0f, 2.0f, MAROON); + + DrawGrid(10, 1.0f); + } + camera.EndMode(); + + DrawText("Enemy: 100 / 100", cubeScreenPosition.x - MeasureText("Enemy: 100/100", 20)/2, cubeScreenPosition.y, 20, BLACK); + DrawText("Text is always on top of the cube", (screenWidth - MeasureText("Text is always on top of the cube", 20))/2, 25, 20, GRAY); + } + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + return 0; +} diff --git a/raylib-cpp/examples/core/resources/LICENSE b/raylib-cpp/examples/core/resources/LICENSE new file mode 100644 index 00000000..d7d797ad --- /dev/null +++ b/raylib-cpp/examples/core/resources/LICENSE @@ -0,0 +1,4 @@ +| resource | author | licence | notes | +| :------------ | :---------: | :------ | :---- | +| ps3.png | [@raysan5](https://github.com/raysan5) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | - | +| xbox.png | [@raysan5](https://github.com/raysan5) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | - | diff --git a/raylib-cpp/examples/core/resources/distortion100.fs b/raylib-cpp/examples/core/resources/distortion100.fs new file mode 100644 index 00000000..112cbcb5 --- /dev/null +++ b/raylib-cpp/examples/core/resources/distortion100.fs @@ -0,0 +1,52 @@ +#version 100 + +precision mediump float; + +// Input vertex attributes (from vertex shader) +varying vec2 fragTexCoord; +varying vec4 fragColor; + +// Input uniform values +uniform sampler2D texture0; +uniform vec4 colDiffuse; + +// NOTE: Add here your custom variables +uniform vec2 leftLensCenter; +uniform vec2 rightLensCenter; +uniform vec2 leftScreenCenter; +uniform vec2 rightScreenCenter; +uniform vec2 scale; +uniform vec2 scaleIn; +uniform vec4 hmdWarpParam; +uniform vec4 chromaAbParam; + +void main() +{ + // Compute lens distortion + vec2 lensCenter = fragTexCoord.x < 0.5? leftLensCenter : rightLensCenter; + vec2 screenCenter = fragTexCoord.x < 0.5? leftScreenCenter : rightScreenCenter; + vec2 theta = (fragTexCoord - lensCenter)*scaleIn; + float rSq = theta.x*theta.x + theta.y*theta.y; + vec2 theta1 = theta*(hmdWarpParam.x + hmdWarpParam.y*rSq + hmdWarpParam.z*rSq*rSq + hmdWarpParam.w*rSq*rSq*rSq); + vec2 thetaBlue = theta1*(chromaAbParam.z + chromaAbParam.w*rSq); + vec2 tcBlue = lensCenter + scale*thetaBlue; + + if (any(bvec2(clamp(tcBlue, screenCenter - vec2(0.25, 0.5), screenCenter + vec2(0.25, 0.5)) - tcBlue))) + { + // Set black fragment for everything outside the lens border + gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); + } + else + { + // Compute color chroma aberration + float blue = texture2D(texture0, tcBlue).b; + vec2 tcGreen = lensCenter + scale*theta1; + float green = texture2D(texture0, tcGreen).g; + + vec2 thetaRed = theta1*(chromaAbParam.x + chromaAbParam.y*rSq); + vec2 tcRed = lensCenter + scale*thetaRed; + + float red = texture2D(texture0, tcRed).r; + gl_FragColor = vec4(red, green, blue, 1.0); + } +} diff --git a/raylib-cpp/examples/core/resources/distortion330.fs b/raylib-cpp/examples/core/resources/distortion330.fs new file mode 100644 index 00000000..15d03ccf --- /dev/null +++ b/raylib-cpp/examples/core/resources/distortion330.fs @@ -0,0 +1,53 @@ +#version 330 + +// Input vertex attributes (from vertex shader) +in vec2 fragTexCoord; +in vec4 fragColor; + +// Input uniform values +uniform sampler2D texture0; +uniform vec4 colDiffuse; + +// Output fragment color +out vec4 finalColor; + +// NOTE: Add here your custom variables +uniform vec2 leftLensCenter = vec2(0.288, 0.5); +uniform vec2 rightLensCenter = vec2(0.712, 0.5); +uniform vec2 leftScreenCenter = vec2(0.25, 0.5); +uniform vec2 rightScreenCenter = vec2(0.75, 0.5); +uniform vec2 scale = vec2(0.25, 0.45); +uniform vec2 scaleIn = vec2(4, 2.2222); +uniform vec4 hmdWarpParam = vec4(1, 0.22, 0.24, 0); +uniform vec4 chromaAbParam = vec4(0.996, -0.004, 1.014, 0.0); + +void main() +{ + // Compute lens distortion + vec2 lensCenter = fragTexCoord.x < 0.5? leftLensCenter : rightLensCenter; + vec2 screenCenter = fragTexCoord.x < 0.5? leftScreenCenter : rightScreenCenter; + vec2 theta = (fragTexCoord - lensCenter)*scaleIn; + float rSq = theta.x*theta.x + theta.y*theta.y; + vec2 theta1 = theta*(hmdWarpParam.x + hmdWarpParam.y*rSq + hmdWarpParam.z*rSq*rSq + hmdWarpParam.w*rSq*rSq*rSq); + vec2 thetaBlue = theta1*(chromaAbParam.z + chromaAbParam.w*rSq); + vec2 tcBlue = lensCenter + scale*thetaBlue; + + if (any(bvec2(clamp(tcBlue, screenCenter - vec2(0.25, 0.5), screenCenter + vec2(0.25, 0.5)) - tcBlue))) + { + // Set black fragment for everything outside the lens border + finalColor = vec4(0.0, 0.0, 0.0, 1.0); + } + else + { + // Compute color chroma aberration + float blue = texture(texture0, tcBlue).b; + vec2 tcGreen = lensCenter + scale*theta1; + float green = texture(texture0, tcGreen).g; + + vec2 thetaRed = theta1*(chromaAbParam.x + chromaAbParam.y*rSq); + vec2 tcRed = lensCenter + scale*thetaRed; + + float red = texture(texture0, tcRed).r; + finalColor = vec4(red, green, blue, 1.0); + } +} diff --git a/raylib-cpp/examples/core/resources/ps3.png b/raylib-cpp/examples/core/resources/ps3.png new file mode 100644 index 00000000..59c0b35c Binary files /dev/null and b/raylib-cpp/examples/core/resources/ps3.png differ diff --git a/raylib-cpp/examples/core/resources/xbox.png b/raylib-cpp/examples/core/resources/xbox.png new file mode 100644 index 00000000..1a570589 Binary files /dev/null and b/raylib-cpp/examples/core/resources/xbox.png differ diff --git a/raylib-cpp/examples/models/models_billboard.cpp b/raylib-cpp/examples/models/models_billboard.cpp new file mode 100644 index 00000000..bebd21b1 --- /dev/null +++ b/raylib-cpp/examples/models/models_billboard.cpp @@ -0,0 +1,67 @@ +/******************************************************************************************* +* +* raylib [models] example - Drawing billboards +* +* This example has been created using raylib 1.3 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2015 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib-cpp.hpp" + +int main() { + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + raylib::Window window(screenWidth, screenHeight, "raylib [models] example - drawing billboards"); + + // Define the camera to look into our 3d world + raylib::Camera camera( + raylib::Vector3(5.0f, 4.0f, 5.0f), + raylib::Vector3(0.0f, 2.0f, 0.0f), + raylib::Vector3(0.0f, 1.0f, 0.0f), + 45.0f, + CAMERA_PERSPECTIVE + ); + + raylib::Texture2D bill("resources/billboard.png"); // Our texture billboard + raylib::Vector3 billPosition(0.0f, 2.0f, 0.0f); // Position where draw billboard + + camera.SetMode(CAMERA_ORBITAL); // Set an orbital camera mode + + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!window.ShouldClose()) { // Detect window close button or ESC key + // Update + //---------------------------------------------------------------------------------- + camera.Update(); // Update camera + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + { + + window.ClearBackground(RAYWHITE); + + camera.BeginMode(); + { + DrawGrid(10, 1.0f); // Draw a grid + camera.DrawBillboard(bill, billPosition, 2.0f, WHITE); + } + camera.EndMode(); + + DrawFPS(10, 10); + } + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + return 0; +} diff --git a/raylib-cpp/examples/models/models_first_person_maze.cpp b/raylib-cpp/examples/models/models_first_person_maze.cpp new file mode 100644 index 00000000..dbac4bbb --- /dev/null +++ b/raylib-cpp/examples/models/models_first_person_maze.cpp @@ -0,0 +1,120 @@ +/******************************************************************************************* +* +* raylib [models] example - first person maze +* +* This example has been created using raylib 2.5 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2019 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib-cpp.hpp" + +int main(void) +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + raylib::Window window(screenWidth, screenHeight, "raylib [models] example - first person maze"); + + // Define the camera to look into our 3d world + raylib::Camera camera({ 0.2f, 0.4f, 0.2f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f); + + raylib::Image imMap("resources/cubicmap.png"); // Load cubicmap image (RAM) + raylib::Texture cubicmap(imMap); // Convert image to texture to display (VRAM) + Mesh mesh = raylib::Mesh::Cubicmap(imMap, (Vector3){ 1.0f, 1.0f, 1.0f }); + raylib::Model model(mesh); + + // NOTE: By default each cube is mapped to one part of texture atlas + raylib::Texture texture("resources/cubicmap_atlas.png"); // Load map texture + model.materials[0].maps[MAP_DIFFUSE].texture = texture; // Set map diffuse texture + + // Get map image data to be used for collision detection + Color *mapPixels = imMap.LoadColors(); + + imMap.Unload(); // Unload image from RAM + + raylib::Vector3 mapPosition(-16.0f, 0.0f, -8.0f); // Set model position + raylib::Vector3 playerPosition(camera.position); // Set player position + + camera.SetMode(CAMERA_FIRST_PERSON); // Set camera mode + + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!window.ShouldClose()) { // Detect window close button or ESC key + // Update + //---------------------------------------------------------------------------------- + raylib::Vector3 oldCamPos(camera.position); // Store old camera position + + camera.Update(); // Update camera + + // Check player collision (we simplify to 2D collision detection) + raylib::Vector2 playerPos(camera.position.x, camera.position.z); + float playerRadius = 0.1f; // Collision radius (player is modelled as a cilinder for collision) + + int playerCellX = static_cast(playerPos.x - mapPosition.x + 0.5f); + int playerCellY = static_cast(playerPos.y - mapPosition.z + 0.5f); + + // Out-of-limits security check + if (playerCellX < 0) playerCellX = 0; + else if (playerCellX >= cubicmap.width) playerCellX = cubicmap.width - 1; + + if (playerCellY < 0) playerCellY = 0; + else if (playerCellY >= cubicmap.height) playerCellY = cubicmap.height - 1; + + // Check map collisions using image data and player position + // TODO: Improvement: Just check player surrounding cells for collision + for (int y = 0; y < cubicmap.height; y++) + { + for (int x = 0; x < cubicmap.width; x++) + { + if ((mapPixels[y*cubicmap.width + x].r == 255) && // Collision: white pixel, only check R channel + (playerPos.CheckCollisionCircle(playerRadius, + (Rectangle){ mapPosition.x - 0.5f + x*1.0f, mapPosition.z - 0.5f + y*1.0f, 1.0f, 1.0f }))) + { + // Collision detected, reset camera position + camera.position = oldCamPos; + } + } + } + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + { + window.ClearBackground(RAYWHITE); + + camera.BeginMode(); + { + model.Draw(mapPosition); // Draw maze map + // playerPosition.DrawCube((Vector3){ 0.2f, 0.4f, 0.2f }, RED); // Draw player + } + camera.EndMode(); + + cubicmap.Draw((Vector2){ static_cast(GetScreenWidth() - cubicmap.width*4 - 20), 20 }, 0.0f, 4.0f, WHITE); + DrawRectangleLines(GetScreenWidth() - cubicmap.width*4 - 20, 20, cubicmap.width*4, cubicmap.height*4, GREEN); + + // Draw player position radar + DrawRectangle(GetScreenWidth() - cubicmap.width*4 - 20 + playerCellX*4, 20 + playerCellY*4, 4, 4, RED); + + DrawFPS(10, 10); + } + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + + UnloadImageColors(mapPixels); // Unload color array + + //---------------------------------------------------------------------------------- + + return 0; +} diff --git a/raylib-cpp/examples/models/resources/billboard.png b/raylib-cpp/examples/models/resources/billboard.png new file mode 100644 index 00000000..8c99118b Binary files /dev/null and b/raylib-cpp/examples/models/resources/billboard.png differ diff --git a/raylib-cpp/examples/models/resources/cubicmap.png b/raylib-cpp/examples/models/resources/cubicmap.png new file mode 100644 index 00000000..392dbf2e Binary files /dev/null and b/raylib-cpp/examples/models/resources/cubicmap.png differ diff --git a/raylib-cpp/examples/models/resources/cubicmap_atlas.png b/raylib-cpp/examples/models/resources/cubicmap_atlas.png new file mode 100644 index 00000000..9fc404a7 Binary files /dev/null and b/raylib-cpp/examples/models/resources/cubicmap_atlas.png differ diff --git a/raylib-cpp/examples/multiple/Player.cpp b/raylib-cpp/examples/multiple/Player.cpp new file mode 100644 index 00000000..4ae9b45b --- /dev/null +++ b/raylib-cpp/examples/multiple/Player.cpp @@ -0,0 +1,32 @@ +#include "raylib-cpp.hpp" + +#include "./Player.hpp" + +Player::Player() { + position = Rectangle{ + GetScreenWidth() / 2.0f - 50, + GetScreenHeight() / 2.0f - 50, + 100, + 100 + }; + speed = 3; +} + +void Player::Draw() { + position.Draw(RED); +} + +void Player::Update() { + if (IsKeyDown(KEY_UP)) { + position.y -= speed; + } + if (IsKeyDown(KEY_DOWN)) { + position.y += speed; + } + if (IsKeyDown(KEY_RIGHT)) { + position.x += speed; + } + if (IsKeyDown(KEY_LEFT)) { + position.x -= speed; + } +} diff --git a/raylib-cpp/examples/multiple/Player.hpp b/raylib-cpp/examples/multiple/Player.hpp new file mode 100644 index 00000000..af8c3c47 --- /dev/null +++ b/raylib-cpp/examples/multiple/Player.hpp @@ -0,0 +1,10 @@ +#include "raylib-cpp.hpp" + +class Player { + public: + Player(); + raylib::Rectangle position; + int speed; + void Draw(); + void Update(); +}; diff --git a/raylib-cpp/examples/multiple/README.md b/raylib-cpp/examples/multiple/README.md new file mode 100644 index 00000000..74ec0a64 --- /dev/null +++ b/raylib-cpp/examples/multiple/README.md @@ -0,0 +1,3 @@ +# Multiple Files Example + +This provides an example of including raylib-cpp.hpp in multiple files. diff --git a/raylib-cpp/examples/multiple/main.cpp b/raylib-cpp/examples/multiple/main.cpp new file mode 100644 index 00000000..a1a06e06 --- /dev/null +++ b/raylib-cpp/examples/multiple/main.cpp @@ -0,0 +1,20 @@ +#include "raylib-cpp.hpp" + +#include "./Player.hpp" + +int main() { + raylib::Window window(640, 480); + SetTargetFPS(60); + + Player player; + while (!window.ShouldClose()) { + window.BeginDrawing(); + { + window.ClearBackground(SKYBLUE); + player.Update(); + player.Draw(); + } + window.EndDrawing(); + } + +} diff --git a/raylib-cpp/examples/physics/physics_demo.cpp b/raylib-cpp/examples/physics/physics_demo.cpp new file mode 100644 index 00000000..2a027d7c --- /dev/null +++ b/raylib-cpp/examples/physics/physics_demo.cpp @@ -0,0 +1,141 @@ +/******************************************************************************************* +* +* Physac - Physics demo +* +* NOTE 1: Physac requires multi-threading, when InitPhysics() a second thread is created to manage physics calculations. +* NOTE 2: Physac requires static C library linkage to avoid dependency on MinGW DLL (-static -lpthread) +* +* Use the following line to compile: +* +* gcc -o $(NAME_PART).exe $(FILE_NAME) -s -static / +* -lraylib -lpthread -lglfw3 -lopengl32 -lgdi32 -lopenal32 -lwinmm / +* -std=c99 -Wl,--subsystem,windows -Wl,-allow-multiple-definition +* +* Copyright (c) 2016-2018 Victor Fisac +* +********************************************************************************************/ + +#include "raylib-cpp.hpp" + +#define PHYSAC_IMPLEMENTATION +#define PHYSAC_NO_THREADS +#include "Physics.hpp" + +int main(void) +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + SetConfigFlags(FLAG_MSAA_4X_HINT); + raylib::Window window(screenWidth, screenHeight, "Physac [raylib-cpp] - Physics demo"); + + // Physac logo drawing position + int logoX = screenWidth - MeasureText("Physac", 30) - 10; + int logoY = 15; + bool needsReset = false; + + // Initialize physics and default physics bodies + raylib::Physics physics; + + // Create floor rectangle physics body + PhysicsBody floor = physics.CreateBodyRectangle(Vector2{screenWidth/2, screenHeight}, 500, 100, 10); + floor->enabled = false; // Disable body state to convert it to static (no dynamics, but collisions) + + // Create obstacle circle physics body + PhysicsBody circle = physics.CreateBodyCircle(Vector2{screenWidth/2, screenHeight/2}, 45, 10); + circle->enabled = false; // Disable body state to convert it to static (no dynamics, but collisions) + + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!window.ShouldClose()) { // Detect window close button or ESC key + // Update + //---------------------------------------------------------------------------------- + // Delay initialization of variables due to physics reset async + physics.UpdateStep(); + + if (needsReset) + { + floor = physics.CreateBodyRectangle((Vector2){ screenWidth/2, screenHeight }, 500, 100, 10); + floor->enabled = false; + + circle = physics.CreateBodyCircle((Vector2){ screenWidth/2, screenHeight/2 }, 45, 10); + circle->enabled = false; + + needsReset = false; + } + + // Reset physics input + if (IsKeyPressed('R')) + { + physics.Reset(); + needsReset = true; + } + + // Physics body creation inputs + if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) physics.CreateBodyPolygon(GetMousePosition(), GetRandomValue(20, 80), GetRandomValue(3, 8), 10); + else if (IsMouseButtonPressed(MOUSE_RIGHT_BUTTON)) physics.CreateBodyCircle(GetMousePosition(), GetRandomValue(10, 45), 10); + + // Destroy falling physics bodies + int bodiesCount = physics.GetBodiesCount(); + for (int i = bodiesCount - 1; i >= 0; i--) + { + PhysicsBody body = physics.GetBody(i); + if (body != NULL && (body->position.y > screenHeight*2)) physics.DestroyBody(body); + } + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + { + window.ClearBackground(BLACK); + + DrawFPS(screenWidth - 90, screenHeight - 30); + + // Draw created physics bodies + bodiesCount = physics.GetBodiesCount(); + for (int i = 0; i < bodiesCount; i++) + { + PhysicsBody body = physics.GetBody(i); + + if (body != NULL) + { + int vertexCount = physics.GetShapeVerticesCount(i); + for (int j = 0; j < vertexCount; j++) + { + // Get physics bodies shape vertices to draw lines + // Note: GetPhysicsShapeVertex() already calculates rotation transformations + Vector2 vertexA = physics.GetShapeVertex(body, j); + + int jj = (((j + 1) < vertexCount) ? (j + 1) : 0); // Get next vertex or first to close the shape + Vector2 vertexB = physics.GetShapeVertex(body, jj); + + DrawLineV(vertexA, vertexB, GREEN); // Draw a line between two vertex positions + } + } + } + + DrawText("Left mouse button to create a polygon", 10, 10, 10, WHITE); + DrawText("Right mouse button to create a circle", 10, 25, 10, WHITE); + DrawText("Press 'R' to reset example", 10, 40, 10, WHITE); + + DrawText("Physac", logoX, logoY, 30, WHITE); + DrawText("Powered by", logoX + 50, logoY - 7, 10, WHITE); + } + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + // ClosePhysics(); // Unitializing physics handled through the garbage collector. + + // CloseWindow(); // Close window and OpenGL context is handled. + //-------------------------------------------------------------------------------------- + + return 0; +} diff --git a/raylib-cpp/examples/shapes/resources/shapes_logo_raylib.png b/raylib-cpp/examples/shapes/resources/shapes_logo_raylib.png new file mode 100644 index 00000000..16c635cc Binary files /dev/null and b/raylib-cpp/examples/shapes/resources/shapes_logo_raylib.png differ diff --git a/raylib-cpp/examples/shapes/shapes_collision_area.cpp b/raylib-cpp/examples/shapes/shapes_collision_area.cpp new file mode 100644 index 00000000..bd06a7d8 --- /dev/null +++ b/raylib-cpp/examples/shapes/shapes_collision_area.cpp @@ -0,0 +1,102 @@ +/******************************************************************************************* +* +* raylib [shapes] example - collision area +* +* This example has been created using raylib 2.5 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2013-2019 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib-cpp.hpp" + +#include // NOLINT + +int main(void) +{ + // Initialization + //--------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + raylib::Window window(screenWidth, screenHeight, "raylib [shapes] example - collision area"); + + // Box A: Moving box + raylib::Rectangle boxA(10, GetScreenHeight()/2 - 50, 200, 100); + int boxASpeedX = 4; + + // Box B: Mouse moved box + raylib::Rectangle boxB(GetScreenWidth()/2 - 30, GetScreenHeight()/2 - 30, 60, 60); + + raylib::Rectangle boxCollision(0); // Collision rectangle + + int screenUpperLimit = 40; // Top menu limits + + bool pause = false; // Movement pause + bool collision = false; // Collision detection + + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //---------------------------------------------------------- + + // Main game loop + while (!window.ShouldClose()) { // Detect window close button or ESC key + // Update + //----------------------------------------------------- + // Move box if not paused + if (!pause) boxA.x += boxASpeedX; + + // Bounce box on x screen limits + if (((boxA.x + boxA.width) >= GetScreenWidth()) || (boxA.x <= 0)) boxASpeedX *= -1; + + // Update player-controlled-box (box02) + boxB.x = GetMouseX() - boxB.width/2; + boxB.y = GetMouseY() - boxB.height/2; + + // Make sure Box B does not go out of move area limits + if ((boxB.x + boxB.width) >= GetScreenWidth()) boxB.x = GetScreenWidth() - boxB.width; + else if (boxB.x <= 0) boxB.x = 0; + + if ((boxB.y + boxB.height) >= GetScreenHeight()) boxB.y = GetScreenHeight() - boxB.height; + else if (boxB.y <= screenUpperLimit) boxB.y = screenUpperLimit; + + // Check boxes collision + collision = boxA.CheckCollision(boxB); + + // Get collision rectangle (only on collision) + if (collision) boxCollision = boxA.GetCollision(boxB); + + // Pause Box A movement + if (IsKeyPressed(KEY_SPACE)) pause = !pause; + //----------------------------------------------------- + + // Draw + //----------------------------------------------------- + BeginDrawing(); + + window.ClearBackground(RAYWHITE); + + DrawRectangle(0, 0, screenWidth, screenUpperLimit, collision? RED : BLACK); + + boxA.Draw(GOLD); + boxB.Draw(BLUE); + + if (collision) { + // Draw collision area + boxCollision.Draw(LIME); + + // Draw collision message + DrawText("COLLISION!", GetScreenWidth()/2 - MeasureText("COLLISION!", 20)/2, screenUpperLimit/2 - 10, 20, BLACK); + + // Draw collision area + DrawText(FormatText("Collision Area: %i", (int)boxCollision.width*(int)boxCollision.height), GetScreenWidth()/2 - 100, screenUpperLimit + 10, 20, BLACK); + } + + DrawFPS(10, 10); + + EndDrawing(); + //----------------------------------------------------- + } + + return 0; +} diff --git a/raylib-cpp/examples/shapes/shapes_logo_raylib.cpp b/raylib-cpp/examples/shapes/shapes_logo_raylib.cpp new file mode 100644 index 00000000..134f228f --- /dev/null +++ b/raylib-cpp/examples/shapes/shapes_logo_raylib.cpp @@ -0,0 +1,52 @@ +/******************************************************************************************* +* +* raylib [shapes] example - Draw raylib logo using basic shapes +* +* This example has been created using raylib 1.0 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2014 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib-cpp.hpp" + +int main() { + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + raylib::Window window(screenWidth, screenHeight, "raylib [shapes] example - raylib logo using shapes"); + raylib::Color foreground(0, 68, 130); + raylib::Color background = RAYWHITE; + + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!window.ShouldClose()) { // Detect window close button or ESC key + // Update + //---------------------------------------------------------------------------------- + // TODO: Update your variables here + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + { + window.ClearBackground(background); + + foreground.DrawRectangle(screenWidth/2 - 128, screenHeight/2 - 128, 256, 256); + background.DrawRectangle(screenWidth/2 - 112, screenHeight/2 - 112, 224, 224); + foreground.DrawText("raylib", screenWidth/2 - 44, screenHeight/2 + 24, 50); + foreground.DrawText("cpp", screenWidth/2 - 74, screenHeight/2 + 54, 50); + + DrawText("this is NOT a texture!", 350, 370, 10, GRAY); + } + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + return 0; +} diff --git a/raylib-cpp/examples/text/resources/LICENSE b/raylib-cpp/examples/text/resources/LICENSE new file mode 100644 index 00000000..25b15402 --- /dev/null +++ b/raylib-cpp/examples/text/resources/LICENSE @@ -0,0 +1,16 @@ +All fonts used in examples are provided under a free and permissive license. +Check individual licenses for details: + + - [Alpha Beta] by Brian Kent (AEnigma) - https://www.dafont.com/es/alpha-beta.font + - [Setback] by Brian Kent (AEnigma) - https://www.dafont.com/es/setback.font + - [Jupiter Crash] by Brian Kent (AEnigma) - https://www.dafont.com/es/jupiter-crash.font + - [Alagard] by Hewett Tsoi - https://www.dafont.com/es/alagard.font + - [Romulus] by Hewett Tsoi - https://www.dafont.com/es/romulus.font + - [Mecha] by Captain Falcon - https://www.dafont.com/es/mecha-cf.font + - [PixelPlay] by Aleksander Shevchuk - https://www.dafont.com/es/pixelplay.font + - [PixAntiqua] by Gerhard Großmann - https://www.dafont.com/es/pixantiqua.font + - [Kaiserzeit Gotisch] by Dieter Steffmann - https://www.dafont.com/es/kaiserzeit-gotisch.font + - [Noto CJK] by Google Fonts - https://www.google.com/get/noto/help/cjk/ + - [Anonymous Pro] by Mark Simonson - https://fonts.google.com/specimen/Anonymous+Pro + - [DejaVu] by DejaVu Fonts - https://dejavu-fonts.github.io/ + - [Symbola] by George Douros - https://fontlibrary.org/en/font/symbola diff --git a/raylib-cpp/examples/text/resources/custom_alagard.png b/raylib-cpp/examples/text/resources/custom_alagard.png new file mode 100644 index 00000000..bbe688ec Binary files /dev/null and b/raylib-cpp/examples/text/resources/custom_alagard.png differ diff --git a/raylib-cpp/examples/text/resources/custom_jupiter_crash.png b/raylib-cpp/examples/text/resources/custom_jupiter_crash.png new file mode 100644 index 00000000..c89572e7 Binary files /dev/null and b/raylib-cpp/examples/text/resources/custom_jupiter_crash.png differ diff --git a/raylib-cpp/examples/text/resources/custom_mecha.png b/raylib-cpp/examples/text/resources/custom_mecha.png new file mode 100644 index 00000000..5e20313d Binary files /dev/null and b/raylib-cpp/examples/text/resources/custom_mecha.png differ diff --git a/raylib-cpp/examples/text/resources/fonts/alagard.png b/raylib-cpp/examples/text/resources/fonts/alagard.png new file mode 100644 index 00000000..c0c54273 Binary files /dev/null and b/raylib-cpp/examples/text/resources/fonts/alagard.png differ diff --git a/raylib-cpp/examples/text/resources/fonts/alpha_beta.png b/raylib-cpp/examples/text/resources/fonts/alpha_beta.png new file mode 100644 index 00000000..8a0c2733 Binary files /dev/null and b/raylib-cpp/examples/text/resources/fonts/alpha_beta.png differ diff --git a/raylib-cpp/examples/text/resources/fonts/jupiter_crash.png b/raylib-cpp/examples/text/resources/fonts/jupiter_crash.png new file mode 100644 index 00000000..4972c02e Binary files /dev/null and b/raylib-cpp/examples/text/resources/fonts/jupiter_crash.png differ diff --git a/raylib-cpp/examples/text/resources/fonts/mecha.png b/raylib-cpp/examples/text/resources/fonts/mecha.png new file mode 100644 index 00000000..9213fa2d Binary files /dev/null and b/raylib-cpp/examples/text/resources/fonts/mecha.png differ diff --git a/raylib-cpp/examples/text/resources/fonts/pixantiqua.png b/raylib-cpp/examples/text/resources/fonts/pixantiqua.png new file mode 100644 index 00000000..17ad1ab7 Binary files /dev/null and b/raylib-cpp/examples/text/resources/fonts/pixantiqua.png differ diff --git a/raylib-cpp/examples/text/resources/fonts/pixelplay.png b/raylib-cpp/examples/text/resources/fonts/pixelplay.png new file mode 100644 index 00000000..fbf6430d Binary files /dev/null and b/raylib-cpp/examples/text/resources/fonts/pixelplay.png differ diff --git a/raylib-cpp/examples/text/resources/fonts/romulus.png b/raylib-cpp/examples/text/resources/fonts/romulus.png new file mode 100644 index 00000000..648aa8b0 Binary files /dev/null and b/raylib-cpp/examples/text/resources/fonts/romulus.png differ diff --git a/raylib-cpp/examples/text/resources/fonts/setback.png b/raylib-cpp/examples/text/resources/fonts/setback.png new file mode 100644 index 00000000..1630a733 Binary files /dev/null and b/raylib-cpp/examples/text/resources/fonts/setback.png differ diff --git a/raylib-cpp/examples/text/resources/pixantiqua.fnt b/raylib-cpp/examples/text/resources/pixantiqua.fnt new file mode 100644 index 00000000..fd9f9dbb --- /dev/null +++ b/raylib-cpp/examples/text/resources/pixantiqua.fnt @@ -0,0 +1,188 @@ +info face="PixAntiqua" size=32 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=2,2,2,2 spacing=2,2 outline=0 +common lineHeight=32 base=27 scaleW=512 scaleH=512 pages=1 packed=0 alphaChnl=0 redChnl=4 greenChnl=4 blueChnl=4 +page id=0 file="pixantiqua.png" +chars count=184 +char id=32 x=9 y=304 width=7 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 +char id=33 x=391 y=266 width=11 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 +char id=34 x=240 y=266 width=14 height=36 xoffset=-3 yoffset=-2 xadvance=11 page=0 chnl=15 +char id=35 x=468 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=36 x=152 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=37 x=176 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=38 x=303 y=0 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=39 x=495 y=266 width=8 height=36 xoffset=-3 yoffset=-2 xadvance=5 page=0 chnl=15 +char id=40 x=256 y=266 width=14 height=36 xoffset=-3 yoffset=-2 xadvance=11 page=0 chnl=15 +char id=199 x=432 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=200 x=126 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=201 x=147 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=202 x=288 y=190 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=203 x=189 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=204 x=468 y=228 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 +char id=205 x=486 y=228 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 +char id=206 x=0 y=266 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 +char id=207 x=72 y=266 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 +char id=208 x=329 y=0 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=209 x=277 y=0 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=210 x=182 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=211 x=26 y=76 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=41 x=272 y=266 width=14 height=36 xoffset=-3 yoffset=-2 xadvance=11 page=0 chnl=15 +char id=42 x=288 y=266 width=14 height=36 xoffset=-3 yoffset=-2 xadvance=11 page=0 chnl=15 +char id=43 x=414 y=190 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=44 x=378 y=266 width=11 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 +char id=45 x=414 y=228 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 +char id=46 x=443 y=266 width=11 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 +char id=47 x=392 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=48 x=485 y=0 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=49 x=450 y=228 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 +char id=50 x=21 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=51 x=42 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=59 x=456 y=266 width=11 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 +char id=60 x=168 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=61 x=309 y=190 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=62 x=336 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=63 x=315 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=64 x=364 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=65 x=390 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=66 x=120 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=67 x=144 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=68 x=168 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=69 x=294 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=52 x=488 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=53 x=63 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=54 x=24 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=55 x=48 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=56 x=72 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=57 x=96 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=58 x=404 y=266 width=11 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 +char id=70 x=252 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=71 x=192 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=72 x=78 y=76 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=78 x=78 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=79 x=355 y=0 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=80 x=264 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=81 x=381 y=0 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=82 x=288 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=83 x=312 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=91 x=144 y=266 width=14 height=36 xoffset=-3 yoffset=-2 xadvance=11 page=0 chnl=15 +char id=92 x=108 y=266 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 +char id=93 x=304 y=266 width=14 height=36 xoffset=-3 yoffset=-2 xadvance=11 page=0 chnl=15 +char id=94 x=34 y=0 width=32 height=36 xoffset=-3 yoffset=-2 xadvance=29 page=0 chnl=15 +char id=95 x=231 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=96 x=442 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=97 x=408 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=98 x=432 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=99 x=210 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=84 x=336 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=85 x=360 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=86 x=0 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=87 x=68 y=0 width=30 height=36 xoffset=-3 yoffset=-2 xadvance=27 page=0 chnl=15 +char id=88 x=26 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=89 x=384 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=90 x=84 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=100 x=456 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=101 x=480 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=102 x=54 y=266 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 +char id=103 x=0 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=104 x=24 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=105 x=469 y=266 width=11 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 +char id=106 x=18 y=266 width=16 height=36 xoffset=-8 yoffset=-2 xadvance=8 page=0 chnl=15 +char id=107 x=48 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=108 x=417 y=266 width=11 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 +char id=109 x=161 y=0 width=27 height=36 xoffset=-3 yoffset=-2 xadvance=24 page=0 chnl=15 +char id=110 x=72 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=111 x=96 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=117 x=192 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=118 x=216 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=119 x=248 y=0 width=27 height=36 xoffset=-3 yoffset=-2 xadvance=24 page=0 chnl=15 +char id=120 x=240 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=121 x=264 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=122 x=288 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=123 x=432 y=228 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 +char id=124 x=365 y=266 width=11 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 +char id=125 x=378 y=228 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 +char id=126 x=393 y=190 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=127 x=132 y=0 width=27 height=36 xoffset=-3 yoffset=-2 xadvance=24 page=0 chnl=15 +char id=160 x=0 y=304 width=7 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 +char id=161 x=352 y=266 width=11 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 +char id=162 x=351 y=190 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=163 x=336 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=165 x=360 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=167 x=384 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=169 x=433 y=0 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=170 x=224 y=266 width=14 height=36 xoffset=-3 yoffset=-2 xadvance=11 page=0 chnl=15 +char id=171 x=105 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=172 x=0 y=0 width=32 height=36 xoffset=-3 yoffset=-2 xadvance=29 page=0 chnl=15 +char id=173 x=494 y=38 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 +char id=174 x=52 y=76 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=175 x=52 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=176 x=126 y=266 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 +char id=177 x=435 y=190 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=178 x=320 y=266 width=14 height=36 xoffset=-3 yoffset=-2 xadvance=11 page=0 chnl=15 +char id=179 x=336 y=266 width=14 height=36 xoffset=-3 yoffset=-2 xadvance=11 page=0 chnl=15 +char id=181 x=459 y=0 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=112 x=120 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=113 x=144 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=114 x=396 y=228 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 +char id=115 x=168 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=116 x=36 y=266 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 +char id=182 x=408 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=183 x=498 y=190 width=11 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 +char id=185 x=192 y=266 width=14 height=36 xoffset=-3 yoffset=-2 xadvance=11 page=0 chnl=15 +char id=186 x=208 y=266 width=14 height=36 xoffset=-3 yoffset=-2 xadvance=11 page=0 chnl=15 +char id=187 x=477 y=190 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=191 x=456 y=190 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=192 x=407 y=0 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=193 x=234 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=194 x=416 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=195 x=156 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=196 x=130 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=197 x=104 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=198 x=190 y=0 width=27 height=36 xoffset=-3 yoffset=-2 xadvance=24 page=0 chnl=15 +char id=212 x=0 y=76 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=213 x=338 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=214 x=312 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=215 x=357 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=216 x=286 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=217 x=456 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=218 x=480 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=219 x=0 y=190 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=220 x=24 y=190 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=221 x=48 y=190 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=222 x=260 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=223 x=72 y=190 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=224 x=96 y=190 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=225 x=120 y=190 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=226 x=144 y=190 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=227 x=168 y=190 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=228 x=192 y=190 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=229 x=216 y=190 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=230 x=219 y=0 width=27 height=36 xoffset=-3 yoffset=-2 xadvance=24 page=0 chnl=15 +char id=231 x=372 y=190 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=73 x=90 y=266 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 +char id=74 x=216 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=75 x=240 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=76 x=273 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=77 x=100 y=0 width=30 height=36 xoffset=-3 yoffset=-2 xadvance=27 page=0 chnl=15 +char id=232 x=312 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=233 x=240 y=190 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=234 x=264 y=190 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=235 x=104 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=236 x=430 y=266 width=11 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 +char id=237 x=482 y=266 width=11 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 +char id=238 x=160 y=266 width=14 height=36 xoffset=-3 yoffset=-2 xadvance=11 page=0 chnl=15 +char id=239 x=176 y=266 width=14 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 +char id=240 x=128 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=241 x=200 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=242 x=224 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=243 x=248 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=244 x=272 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=245 x=296 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=246 x=320 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=247 x=330 y=190 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=248 x=208 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=249 x=344 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=250 x=368 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=251 x=416 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=252 x=440 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=253 x=464 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=254 x=0 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=255 x=0 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 diff --git a/raylib-cpp/examples/text/resources/pixantiqua.png b/raylib-cpp/examples/text/resources/pixantiqua.png new file mode 100644 index 00000000..2aa2870f Binary files /dev/null and b/raylib-cpp/examples/text/resources/pixantiqua.png differ diff --git a/raylib-cpp/examples/text/resources/pixantiqua.ttf b/raylib-cpp/examples/text/resources/pixantiqua.ttf new file mode 100644 index 00000000..e012875d Binary files /dev/null and b/raylib-cpp/examples/text/resources/pixantiqua.ttf differ diff --git a/raylib-cpp/examples/text/text_font_loading.cpp b/raylib-cpp/examples/text/text_font_loading.cpp new file mode 100644 index 00000000..10d08780 --- /dev/null +++ b/raylib-cpp/examples/text/text_font_loading.cpp @@ -0,0 +1,83 @@ +/******************************************************************************************* +* +* raylib [text] example - Font loading +* +* raylib can load fonts from multiple file formats: +* +* - TTF/OTF > Sprite font atlas is generated on loading, user can configure +* some of the generation parameters (size, characters to include) +* - BMFonts > Angel code font fileformat, sprite font image must be provided +* together with the .fnt file, font generation cna not be configured +* - XNA Spritefont > Sprite font image, following XNA Spritefont conventions, +* Characters in image must follow some spacing and order rules +* +* This example has been created using raylib 2.6 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2016-2019 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include +#include "raylib-cpp.hpp" + +int main() { + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + raylib::Window window(screenWidth, screenHeight, "raylib [text] example - font loading"); + + // Define characters to draw + // NOTE: raylib supports UTF-8 encoding, following list is actually codified as UTF8 internally + std::string msg = "!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHI\nJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmn\nopqrstuvwxyz{|}~¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓ\nÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷\nøùúûüýþÿ"; + + // NOTE: Textures/Fonts MUST be loaded after Window initialization (OpenGL context is required) + + // BMFont (AngelCode) : Font data and image atlas have been generated using external program + raylib::Font fontBm("resources/pixantiqua.fnt"); + + // TTF font : Font data and atlas are generated directly from TTF + // NOTE: We define a font base size of 32 pixels tall and up-to 250 characters + raylib::Font fontTtf("resources/pixantiqua.ttf", 32, 0, 250); + + bool useTtf = false; + + window.SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!window.ShouldClose()) { // Detect window close button or ESC key + // Update + //---------------------------------------------------------------------------------- + if (IsKeyDown(KEY_SPACE)) useTtf = true; + else useTtf = false; + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + window.BeginDrawing(); + { + + window.ClearBackground(RAYWHITE); + + DrawText("Hold SPACE to use TTF generated font", 20, 20, 20, LIGHTGRAY); + + if (!useTtf) + { + fontBm.DrawText(msg, (Vector2){ 20.0f, 100.0f }, fontBm.baseSize, 2, MAROON); + DrawText("Using BMFont (Angelcode) imported", 20, GetScreenHeight() - 30, 20, GRAY); + } + else + { + fontTtf.DrawText(msg, (Vector2){ 20.0f, 100.0f }, fontTtf.baseSize, 2, LIME); + DrawText("Using TTF font generated", 20, GetScreenHeight() - 30, 20, GRAY); + } + } + window.EndDrawing(); + //---------------------------------------------------------------------------------- + } + + return 0; +} diff --git a/raylib-cpp/examples/text/text_font_spritefont.cpp b/raylib-cpp/examples/text/text_font_spritefont.cpp new file mode 100644 index 00000000..f7e2c33d --- /dev/null +++ b/raylib-cpp/examples/text/text_font_spritefont.cpp @@ -0,0 +1,68 @@ +/******************************************************************************************* +* +* raylib [text] example - Font loading and usage +* +* This example has been created using raylib 1.0 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2014 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include + +#include "raylib-cpp.hpp" + +int main(void) +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + raylib::Window window(screenWidth, screenHeight, "raylib [text] example - sprite fonts usage"); + + std::string msg1 = "THIS IS A custom SPRITE FONT..."; + std::string msg2 = "...and this is ANOTHER CUSTOM font..."; + std::string msg3 = "...and a THIRD one! GREAT! :D"; + + // NOTE: Textures/Fonts MUST be loaded after Window initialization (OpenGL context is required) + raylib::Font font1("resources/custom_mecha.png"); // Font loading + raylib::Font font2("resources/custom_alagard.png"); // Font loading + raylib::Font font3("resources/custom_jupiter_crash.png"); // Font loading + + raylib::Vector2 fontPosition1(screenWidth/2 - MeasureTextEx(font1, msg1.c_str(), font1.baseSize, -3).x/2, + screenHeight/2 - font1.baseSize/2 - 80); + + raylib::Vector2 fontPosition2(screenWidth/2 - MeasureTextEx(font2, msg2.c_str(), font2.baseSize, -2).x/2, + screenHeight/2 - font2.baseSize/2 - 10); + + raylib::Vector2 fontPosition3(screenWidth/2 - MeasureTextEx(font3, msg3.c_str(), font3.baseSize, 2).x/2, + screenHeight/2 - font3.baseSize/2 + 50); + + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!window.ShouldClose()) { // Detect window close button or ESC key + // Update + //---------------------------------------------------------------------------------- + // TODO: Update variables here... + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + { + window.ClearBackground(RAYWHITE); + + font1.DrawText(msg1, fontPosition1, font1.baseSize, -3); + font2.DrawText(msg2, fontPosition2, font2.baseSize, -2); + font3.DrawText(msg3, fontPosition3, font3.baseSize, 2); + } + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + return 0; +} diff --git a/raylib-cpp/examples/text/text_raylib_fonts.cpp b/raylib-cpp/examples/text/text_raylib_fonts.cpp new file mode 100644 index 00000000..bf0e0669 --- /dev/null +++ b/raylib-cpp/examples/text/text_raylib_fonts.cpp @@ -0,0 +1,99 @@ +/******************************************************************************************* +* +* raylib [text] example - raylib font loading and usage +* +* NOTE: raylib is distributed with some free to use fonts (even for commercial pourposes!) +* To view details and credits for those fonts, check raylib license file +* +* This example has been created using raylib 1.7 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2017 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include +#include + +#include "raylib-cpp.hpp" + +#define MAX_FONTS 8 + +int main() { + // Initialization + //-------------------------------------------------------------------------------------- + int screenWidth = 800; + int screenHeight = 450; + + raylib::Window window(screenWidth, screenHeight, "raylib [text] example - raylib fonts"); + raylib::Color textColor = DARKGRAY; + + // NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required) + std::array fonts = { + raylib::Font("resources/fonts/alagard.png"), + raylib::Font("resources/fonts/pixelplay.png"), + raylib::Font("resources/fonts/mecha.png"), + raylib::Font("resources/fonts/setback.png"), + raylib::Font("resources/fonts/romulus.png"), + raylib::Font("resources/fonts/pixantiqua.png"), + raylib::Font("resources/fonts/alpha_beta.png"), + raylib::Font("resources/fonts/jupiter_crash.png") + }; + + std::array messages = { + "ALAGARD FONT designed by Hewett Tsoi", + "PIXELPLAY FONT designed by Aleksander Shevchuk", + "MECHA FONT designed by Captain Falcon", + "SETBACK FONT designed by Brian Kent (AEnigma)", + "ROMULUS FONT designed by Hewett Tsoi", + "PIXANTIQUA FONT designed by Gerhard Grossmann", + "ALPHA_BETA FONT designed by Brian Kent (AEnigma)", + "JUPITER_CRASH FONT designed by Brian Kent (AEnigma)" + }; + + std::array spacings = { 2, 4, 8, 4, 3, 4, 4, 1 }; + + std::array positions; + + for (int i = 0; i < fonts.size(); i++) + { + auto size = fonts[i].MeasureText(messages[i], fonts[i].baseSize * 2, spacings[i]); + positions[i].x = screenWidth/2 - size.x/2; + positions[i].y = 60 + fonts[i].baseSize + 45*i; + } + + // Small Y position corrections + positions[3].y += 8; + positions[4].y += 2; + positions[7].y -= 8; + + std::array colors = { MAROON, ORANGE, DARKGREEN, DARKBLUE, DARKPURPLE, LIME, GOLD, RED }; + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!window.ShouldClose()) { // Detect window close button or ESC key + // Update + //---------------------------------------------------------------------------------- + // TODO: Update your variables here + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + { + window.ClearBackground(RAYWHITE); + + textColor.DrawText("free fonts included with raylib", 250, 20, 20); + textColor.DrawLine(220, 50, 590, 50); + + for (int i = 0; i < fonts.size(); i++) + { + fonts[i].DrawText(messages[i], positions[i], fonts[i].baseSize*2, spacings[i], colors[i]); + } + } + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + return 0; +} diff --git a/raylib-cpp/examples/textures/resources/KAISG.ttf b/raylib-cpp/examples/textures/resources/KAISG.ttf new file mode 100644 index 00000000..04478b25 Binary files /dev/null and b/raylib-cpp/examples/textures/resources/KAISG.ttf differ diff --git a/raylib-cpp/examples/textures/resources/LICENSE b/raylib-cpp/examples/textures/resources/LICENSE new file mode 100644 index 00000000..16cdfa34 --- /dev/null +++ b/raylib-cpp/examples/textures/resources/LICENSE @@ -0,0 +1,8 @@ +Art used in examples is provided under a free and permissive license. +Check individual licenses for details: + + - [Jupiter Crash] font by Brian Kent (AEnigma) - https://www.dafont.com/es/jupiter-crash.font + - [Kaiserzeit Gotisch] font by Dieter Steffmann - https://www.dafont.com/es/kaiserzeit-gotisch.font + - [Scarfy spritesheet](scarfy.png) by [Eiden Marsal](https://www.artstation.com/artist/marshall_z), licensed as [Creative Commons Attribution-NonCommercial 3.0](https://creativecommons.org/licenses/by-nc/3.0/legalcode) + - [Fudesumi image](fudesumi.png) by [Eiden Marsal](https://www.artstation.com/artist/marshall_z), licensed as [Creative Commons Attribution-NonCommercial 3.0](https://creativecommons.org/licenses/by-nc/3.0/legalcode) + - [Cyberpunk Street Environment](https://ansimuz.itch.io/cyberpunk-street-environment) by Luis Zuno ([@ansimuz](https://twitter.com/ansimuz)), licensed as [CC-BY-3.0](http://creativecommons.org/licenses/by/3.0/) diff --git a/raylib-cpp/examples/textures/resources/boom.wav b/raylib-cpp/examples/textures/resources/boom.wav new file mode 100644 index 00000000..fd18137d Binary files /dev/null and b/raylib-cpp/examples/textures/resources/boom.wav differ diff --git a/raylib-cpp/examples/textures/resources/button.png b/raylib-cpp/examples/textures/resources/button.png new file mode 100644 index 00000000..99a383b6 Binary files /dev/null and b/raylib-cpp/examples/textures/resources/button.png differ diff --git a/raylib-cpp/examples/textures/resources/buttonfx.wav b/raylib-cpp/examples/textures/resources/buttonfx.wav new file mode 100644 index 00000000..b93b0ca0 Binary files /dev/null and b/raylib-cpp/examples/textures/resources/buttonfx.wav differ diff --git a/raylib-cpp/examples/textures/resources/cat.png b/raylib-cpp/examples/textures/resources/cat.png new file mode 100644 index 00000000..db56b9ea Binary files /dev/null and b/raylib-cpp/examples/textures/resources/cat.png differ diff --git a/raylib-cpp/examples/textures/resources/custom_jupiter_crash.png b/raylib-cpp/examples/textures/resources/custom_jupiter_crash.png new file mode 100644 index 00000000..c89572e7 Binary files /dev/null and b/raylib-cpp/examples/textures/resources/custom_jupiter_crash.png differ diff --git a/raylib-cpp/examples/textures/resources/cyberpunk_street_background.png b/raylib-cpp/examples/textures/resources/cyberpunk_street_background.png new file mode 100644 index 00000000..838d08aa Binary files /dev/null and b/raylib-cpp/examples/textures/resources/cyberpunk_street_background.png differ diff --git a/raylib-cpp/examples/textures/resources/cyberpunk_street_foreground.png b/raylib-cpp/examples/textures/resources/cyberpunk_street_foreground.png new file mode 100644 index 00000000..528b4ae6 Binary files /dev/null and b/raylib-cpp/examples/textures/resources/cyberpunk_street_foreground.png differ diff --git a/raylib-cpp/examples/textures/resources/cyberpunk_street_midground.png b/raylib-cpp/examples/textures/resources/cyberpunk_street_midground.png new file mode 100644 index 00000000..73f24fe7 Binary files /dev/null and b/raylib-cpp/examples/textures/resources/cyberpunk_street_midground.png differ diff --git a/raylib-cpp/examples/textures/resources/explosion.png b/raylib-cpp/examples/textures/resources/explosion.png new file mode 100644 index 00000000..6df1cf36 Binary files /dev/null and b/raylib-cpp/examples/textures/resources/explosion.png differ diff --git a/raylib-cpp/examples/textures/resources/fudesumi.png b/raylib-cpp/examples/textures/resources/fudesumi.png new file mode 100644 index 00000000..c77c2876 Binary files /dev/null and b/raylib-cpp/examples/textures/resources/fudesumi.png differ diff --git a/raylib-cpp/examples/textures/resources/fudesumi.raw b/raylib-cpp/examples/textures/resources/fudesumi.raw new file mode 100644 index 00000000..dad6ff0a Binary files /dev/null and b/raylib-cpp/examples/textures/resources/fudesumi.raw differ diff --git a/raylib-cpp/examples/textures/resources/ninepatch_button.png b/raylib-cpp/examples/textures/resources/ninepatch_button.png new file mode 100644 index 00000000..f10037a0 Binary files /dev/null and b/raylib-cpp/examples/textures/resources/ninepatch_button.png differ diff --git a/raylib-cpp/examples/textures/resources/parrots.png b/raylib-cpp/examples/textures/resources/parrots.png new file mode 100644 index 00000000..9a0e7f80 Binary files /dev/null and b/raylib-cpp/examples/textures/resources/parrots.png differ diff --git a/raylib-cpp/examples/textures/resources/patterns.png b/raylib-cpp/examples/textures/resources/patterns.png new file mode 100644 index 00000000..58b3c372 Binary files /dev/null and b/raylib-cpp/examples/textures/resources/patterns.png differ diff --git a/raylib-cpp/examples/textures/resources/raylib_logo.png b/raylib-cpp/examples/textures/resources/raylib_logo.png new file mode 100644 index 00000000..15bbaa2f Binary files /dev/null and b/raylib-cpp/examples/textures/resources/raylib_logo.png differ diff --git a/raylib-cpp/examples/textures/resources/scarfy.png b/raylib-cpp/examples/textures/resources/scarfy.png new file mode 100644 index 00000000..be3b83d0 Binary files /dev/null and b/raylib-cpp/examples/textures/resources/scarfy.png differ diff --git a/raylib-cpp/examples/textures/resources/smoke.png b/raylib-cpp/examples/textures/resources/smoke.png new file mode 100644 index 00000000..7bad8c68 Binary files /dev/null and b/raylib-cpp/examples/textures/resources/smoke.png differ diff --git a/raylib-cpp/examples/textures/resources/spark_flame.png b/raylib-cpp/examples/textures/resources/spark_flame.png new file mode 100644 index 00000000..72cea2e9 Binary files /dev/null and b/raylib-cpp/examples/textures/resources/spark_flame.png differ diff --git a/raylib-cpp/examples/textures/resources/wabbit_alpha.png b/raylib-cpp/examples/textures/resources/wabbit_alpha.png new file mode 100644 index 00000000..db4081fe Binary files /dev/null and b/raylib-cpp/examples/textures/resources/wabbit_alpha.png differ diff --git a/raylib-cpp/examples/textures/textures_bunnymark.cpp b/raylib-cpp/examples/textures/textures_bunnymark.cpp new file mode 100644 index 00000000..05fbf258 --- /dev/null +++ b/raylib-cpp/examples/textures/textures_bunnymark.cpp @@ -0,0 +1,116 @@ +/******************************************************************************************* +* +* raylib [textures] example - Bunnymark +* +* This example has been created using raylib 1.6 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2014-2019 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib-cpp.hpp" + +#define MAX_BUNNIES 100000 // 100K bunnies limit + +// This is the maximum amount of elements (quads) per batch +// NOTE: This value is defined in [rlgl] module and can be changed there +#define MAX_BATCH_ELEMENTS 8192 + +#include + +class Bunny { +public: + Bunny() { + position = GetMousePosition(); + speed.x = (float)GetRandomValue(-250, 250)/60.0f; + speed.y = (float)GetRandomValue(-250, 250)/60.0f; + color = raylib::Color( + GetRandomValue(50, 240), + GetRandomValue(80, 240), + GetRandomValue(100, 240), 255); + } + + void Update(const raylib::Texture2D& texBunny) { + position.x += speed.x; + position.y += speed.y; + + if (((position.x + texBunny.width/2) > GetScreenWidth()) || + ((position.x + texBunny.width/2) < 0)) speed.x *= -1; + if (((position.y + texBunny.height/2) > GetScreenHeight()) || + ((position.y + texBunny.height/2 - 40) < 0)) speed.y *= -1; + } + + Vector2 position; + Vector2 speed; + Color color; +}; + +int main(void) +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + raylib::Window window(screenWidth, screenHeight, "raylib [textures] example - bunnymark"); + + // Load bunny texture + raylib::Texture2D texBunny("resources/wabbit_alpha.png"); + + std::vector bunnies; + + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!window.ShouldClose()) { // Detect window close button or ESC key + // Update + //---------------------------------------------------------------------------------- + if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) + { + // Create more bunnies + for (int i = 0; i < 100; i++) + { + if (bunnies.size() < MAX_BUNNIES) + { + bunnies.emplace_back(); + } + } + } + + // Update bunnies + + for (Bunny& bunny: bunnies) { + bunny.Update(texBunny); + } + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + { + window.ClearBackground(RAYWHITE); + + for (Bunny& bunny: bunnies) { + // NOTE: When internal batch buffer limit is reached (MAX_BATCH_ELEMENTS), + // a draw call is launched and buffer starts being filled again; + // before issuing a draw call, updated vertex data from internal CPU buffer is send to GPU... + // Process of sending data is costly and it could happen that GPU data has not been completely + // processed for drawing while new data is tried to be sent (updating current in-use buffers) + // it could generates a stall and consequently a frame drop, limiting the number of drawn bunnies + texBunny.Draw(bunny.position.x, bunny.position.y, bunny.color); + } + + DrawRectangle(0, 0, screenWidth, 40, BLACK); + DrawText(FormatText("bunnies: %i", bunnies.size()), 120, 10, 20, GREEN); + DrawText(FormatText("batched draw calls: %i", 1 + bunnies.size()/MAX_BATCH_ELEMENTS), 320, 10, 20, MAROON); + + DrawFPS(10, 10); + } + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + return 0; +} diff --git a/raylib-cpp/examples/textures/textures_image_drawing.cpp b/raylib-cpp/examples/textures/textures_image_drawing.cpp new file mode 100644 index 00000000..4e2496fe --- /dev/null +++ b/raylib-cpp/examples/textures/textures_image_drawing.cpp @@ -0,0 +1,76 @@ +/******************************************************************************************* +* +* raylib [textures] example - Image loading and drawing on it +* +* NOTE: Images are loaded in CPU memory (RAM); textures are loaded in GPU memory (VRAM) +* +* This example has been created using raylib 1.4 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2016 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib-cpp.hpp" + +int main(void) +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + raylib::Window window(screenWidth, screenHeight, "raylib [textures] example - image drawing"); + raylib::Color darkGray = DARKGRAY; + + // NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required) + raylib::Image cat("resources/cat.png"); // Load image in CPU memory (RAM) + cat.Crop(raylib::Rectangle(100, 10, 280, 380)) // Crop an image piece + .FlipHorizontal() // Flip cropped image horizontally + .Resize(150, 200); // Resize flipped-cropped image + + raylib::Image parrots("resources/parrots.png"); // Load image in CPU memory (RAM) + + // Draw one image over the other with a scaling of 1.5f + parrots + .Draw(cat, + raylib::Rectangle(0, 0, cat.GetWidth(), cat.GetHeight()), + raylib::Rectangle(30, 40, cat.GetWidth() * 1.5f, cat.GetHeight() * 1.5f)) + .Crop(raylib::Rectangle(0, 50, parrots.GetWidth(), parrots.GetHeight() - 100)); // Crop resulting image + + // Load custom font for frawing on image + raylib::Font font("resources/custom_jupiter_crash.png"); + + // Draw over image using custom font + parrots.DrawText(font, "PARROTS & CAT", raylib::Vector2(300, 230), font.baseSize, -2); + + raylib::Texture2D texture(parrots); // Image converted to texture, uploaded to GPU memory (VRAM) + + SetTargetFPS(60); + //--------------------------------------------------------------------------------------- + + // Main game loop + while (!window.ShouldClose()) { // Detect window close button or ESC key + // Update + //---------------------------------------------------------------------------------- + // TODO: Update your variables here + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + { + window.ClearBackground(RAYWHITE); + + texture.Draw(screenWidth/2 - texture.width/2, screenHeight/2 - texture.height/2 - 40); + darkGray.DrawRectangleLines(screenWidth/2 - texture.width/2, screenHeight/2 - texture.height/2 - 40, texture.width, texture.height); + + darkGray.DrawText("We are drawing only one texture from various images composed!", 240, 350, 10); + darkGray.DrawText("Source images have been cropped, scaled, flipped and copied one over the other.", 190, 370, 10); + } + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + return 0; +} diff --git a/raylib-cpp/examples/textures/textures_image_loading.cpp b/raylib-cpp/examples/textures/textures_image_loading.cpp new file mode 100644 index 00000000..5ab7e21f --- /dev/null +++ b/raylib-cpp/examples/textures/textures_image_loading.cpp @@ -0,0 +1,48 @@ +/******************************************************************************************* +* +* raylib [textures] example - Image loading and texture creation +* +* NOTE: Images are loaded in CPU memory (RAM); textures are loaded in GPU memory (VRAM) +* +* This example has been created using raylib 1.3 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2015 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib-cpp.hpp" + +int main() { + // Initialization + //-------------------------------------------------------------------------------------- + int screenWidth = 800; + int screenHeight = 450; + + raylib::Window window(screenWidth, screenHeight, "raylib [textures] example - image loading"); + raylib::Texture texture("resources/raylib_logo.png"); + raylib::Color textColor = raylib::Color::LightGray(); + + // Main game loop + while (!window.ShouldClose()) { // Detect window close button or ESC key + // Update + //---------------------------------------------------------------------------------- + // TODO: Update your variables here + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + { + window.ClearBackground(raylib::Color::RayWhite()); + + texture.Draw(screenWidth / 2 - texture.GetWidth() / 2, screenHeight / 2 - texture.GetHeight() / 2); + + textColor.DrawText("this IS a texture loaded from an image!", 300, 370, 10); + } + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + return 0; +} diff --git a/raylib-cpp/include/AudioDevice.hpp b/raylib-cpp/include/AudioDevice.hpp new file mode 100644 index 00000000..1f050ce8 --- /dev/null +++ b/raylib-cpp/include/AudioDevice.hpp @@ -0,0 +1,63 @@ +#ifndef RAYLIB_CPP_INCLUDE_AUDIODEVICE_HPP_ +#define RAYLIB_CPP_INCLUDE_AUDIODEVICE_HPP_ + +#include "./raylib.hpp" +#include "./raylib-cpp-utils.hpp" + +namespace raylib { +/** + * Audio device management functions. + */ +class AudioDevice { + public: + /** + * Initialize audio device and context. + * + * @param lateInit Whether or not to post-pone initializing the context. + */ + AudioDevice(bool lateInit = false) { + if (!lateInit) { + Init(); + } + } + + /** + * Close the audio device and context. + */ + ~AudioDevice() { + Close(); + } + + /** + * Initialize audio device and context. + */ + inline AudioDevice& Init() { + ::InitAudioDevice(); + return *this; + } + + /** + * Close the audio device and context. + */ + inline void Close() { + ::CloseAudioDevice(); + } + + /** + * Check if audio device has been initialized successfully. + */ + inline bool IsReady() const { + return ::IsAudioDeviceReady(); + } + + /** + * Set master volume (listener). + */ + inline AudioDevice& SetVolume(float volume) { + ::SetMasterVolume(volume); + return *this; + } +}; +} // namespace raylib + +#endif // RAYLIB_CPP_INCLUDE_AUDIODEVICE_HPP_ diff --git a/raylib-cpp/include/AudioStream.hpp b/raylib-cpp/include/AudioStream.hpp new file mode 100644 index 00000000..c5b91e26 --- /dev/null +++ b/raylib-cpp/include/AudioStream.hpp @@ -0,0 +1,132 @@ +#ifndef RAYLIB_CPP_INCLUDE_AUDIOSTREAM_HPP_ +#define RAYLIB_CPP_INCLUDE_AUDIOSTREAM_HPP_ + +#include "./raylib.hpp" +#include "./raylib-cpp-utils.hpp" + +namespace raylib { +/** + * AudioStream management functions + */ +class AudioStream : public ::AudioStream { + public: + AudioStream(const ::AudioStream& music) { + set(music); + } + + /** + * Init audio stream (to stream raw audio pcm data) + */ + AudioStream(unsigned int SampleRate, unsigned int SampleSize, unsigned int Channels) { + set(InitAudioStream(SampleRate, SampleSize, Channels)); + } + + ~AudioStream() { + Close(); + } + + GETTERSETTER(rAudioBuffer *, Buffer, buffer) + GETTERSETTER(unsigned int, SampleRate, sampleRate) + GETTERSETTER(unsigned int, SampleSize, sampleSize) + GETTERSETTER(unsigned int, Channels, channels) + + AudioStream& operator=(const ::AudioStream& stream) { + set(stream); + return *this; + } + + /** + * Update audio stream buffers with data + */ + inline AudioStream& Update(const void *data, int samplesCount) { + ::UpdateAudioStream(*this, data, samplesCount); + return *this; + } + + /** + * Close audio stream and free memory + */ + inline void Close() { + ::CloseAudioStream(*this); + } + + /** + * Check if any audio stream buffers requires refill + */ + inline bool IsProcessed() const { + return ::IsAudioStreamProcessed(*this); + } + + /** + * Play audio stream + */ + inline AudioStream& Play() { + ::PlayAudioStream(*this); + return *this; + } + + /** + * Pause audio stream + */ + inline AudioStream& Pause() { + ::PauseAudioStream(*this); + return *this; + } + + /** + * Resume audio stream + */ + inline AudioStream& Resume() { + ::ResumeAudioStream(*this); + return *this; + } + + /** + * Check if audio stream is playing + */ + inline bool IsPlaying() const { + return ::IsAudioStreamPlaying(*this); + } + + /** + * Stop audio stream + */ + inline AudioStream& Stop() { + ::StopAudioStream(*this); + return *this; + } + + /** + * Set volume for audio stream (1.0 is max level) + */ + inline AudioStream& SetVolume(float volume) { + ::SetAudioStreamVolume(*this, volume); + return *this; + } + + /** + * Set pitch for audio stream (1.0 is base level) + */ + inline AudioStream& SetPitch(float pitch) { + ::SetAudioStreamPitch(*this, pitch); + return *this; + } + + /** + * Default size for new audio streams + */ + inline static void SetBufferSizeDefault(int size) { + ::SetAudioStreamBufferSizeDefault(size); + } + + private: + inline void set(const ::AudioStream& stream) { + buffer = stream.buffer; + sampleRate = stream.sampleRate; + sampleSize = stream.sampleSize; + channels = stream.channels; + } +}; +} // namespace raylib + +#endif // RAYLIB_CPP_INCLUDE_AUDIOSTREAM_HPP_ diff --git a/raylib-cpp/include/BoundingBox.hpp b/raylib-cpp/include/BoundingBox.hpp new file mode 100644 index 00000000..bd9497b8 --- /dev/null +++ b/raylib-cpp/include/BoundingBox.hpp @@ -0,0 +1,79 @@ +#ifndef RAYLIB_CPP_INCLUDE_BOUNDINGBOX_HPP_ +#define RAYLIB_CPP_INCLUDE_BOUNDINGBOX_HPP_ + +#include "./raylib.hpp" +#include "./raylib-cpp-utils.hpp" + +namespace raylib { +/** + * Bounding box type + */ +class BoundingBox : public ::BoundingBox { + public: + BoundingBox(const ::BoundingBox& box) { + set(box); + } + + /** + * Compute mesh bounding box limits + */ + BoundingBox(const ::Mesh& mesh) { + set(::MeshBoundingBox(mesh)); + } + + BoundingBox(::Vector3 minMax) { + min = minMax; + max = minMax; + } + + BoundingBox(::Vector3 Min, ::Vector3 Max) { + min = Min; + max = Max; + } + + GETTERSETTER(::Vector3, Min, min) + GETTERSETTER(::Vector3, Max, max) + + BoundingBox& operator=(const ::BoundingBox& box) { + set(box); + return *this; + } + + /** + * Draw a bounding box with wires + */ + inline BoundingBox& Draw(::Color color = {255, 255, 255, 255}) { + DrawBoundingBox(*this, color); + return *this; + } + + /** + * Detect collision between two boxes + */ + inline bool CheckCollision(const ::BoundingBox& box2) const { + return CheckCollisionBoxes(*this, box2); + } + + /** + * Detect collision between box and sphere + */ + inline bool CheckCollision(::Vector3 center, float radius) const { + return CheckCollisionBoxSphere(*this, center, radius); + } + + /** + * Detect collision between ray and bounding box + */ + inline bool CheckCollision(const ::Ray& ray) const { + return CheckCollisionRayBox(ray, *this); + } + + private: + inline void set(const ::BoundingBox& box) { + min = box.min; + max = box.max; + } +}; +} // namespace raylib + +#endif // RAYLIB_CPP_INCLUDE_BOUNDINGBOX_HPP_ diff --git a/raylib-cpp/include/CMakeLists.txt b/raylib-cpp/include/CMakeLists.txt new file mode 100644 index 00000000..bde19648 --- /dev/null +++ b/raylib-cpp/include/CMakeLists.txt @@ -0,0 +1,46 @@ +add_library(raylib-cpp INTERFACE) + +# Include Directory +target_include_directories(raylib-cpp INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/) + +# Set the header files as install files. +install(FILES + AudioDevice.hpp + AudioStream.hpp + BoundingBox.hpp + Camera2D.hpp + Camera3D.hpp + Color.hpp + Font.hpp + Functions.hpp + Gamepad.hpp + Image.hpp + Material.hpp + Matrix.hpp + Mesh.hpp + Model.hpp + ModelAnimation.hpp + Mouse.hpp + Music.hpp + physac.hpp + Physics.hpp + Ray.hpp + RayHitInfo.hpp + raylib-cpp-utils.hpp + raylib-cpp.hpp + raylib.hpp + raymath.hpp + Rectangle.hpp + RenderTexture.hpp + Shader.hpp + Sound.hpp + Text.hpp + Texture.hpp + Vector2.hpp + Vector3.hpp + Vector4.hpp + VrStereoConfig.hpp + Wave.hpp + Window.hpp + DESTINATION include +) diff --git a/raylib-cpp/include/Camera2D.hpp b/raylib-cpp/include/Camera2D.hpp new file mode 100644 index 00000000..fb55a8c1 --- /dev/null +++ b/raylib-cpp/include/Camera2D.hpp @@ -0,0 +1,78 @@ +#ifndef RAYLIB_CPP_INCLUDE_CAMERA2D_HPP_ +#define RAYLIB_CPP_INCLUDE_CAMERA2D_HPP_ + +#include "./raylib.hpp" +#include "./Vector2.hpp" +#include "./raylib-cpp-utils.hpp" + +namespace raylib { +/** + * Camera2D type, defines a 2d camera + */ +class Camera2D : public ::Camera2D { + public: + Camera2D() {} + Camera2D(const ::Camera2D& camera) { + set(camera); + } + + Camera2D(::Vector2 offsetValue, ::Vector2 targetValue, float rotationValue = 0, + float zoomValue = 1) { + offset = offsetValue; + target = targetValue; + rotation = rotationValue; + zoom = zoomValue; + } + + inline Camera2D& BeginMode() { + ::BeginMode2D(*this); + return *this; + } + + inline Camera2D& EndMode() { + ::EndMode2D(); + return *this; + } + + GETTERSETTER(::Vector2, Offset, offset) + GETTERSETTER(::Vector2, Target, target) + GETTERSETTER(float, Rotation, rotation) + GETTERSETTER(float, Zoom, zoom) + + Camera2D& operator=(const ::Camera2D& camera) { + set(camera); + return *this; + } + + /** + * Returns camera 2d transform matrix + */ + inline Matrix GetMatrix() const { + return ::GetCameraMatrix2D(*this); + } + + /** + * Returns the screen space position for a 3d world space position + */ + inline Vector2 GetWorldToScreen(::Vector2 position) const { + return ::GetWorldToScreen2D(position, *this); + } + + /** + * Returns the world space position for a 2d camera screen space position + */ + inline Vector2 GetScreenToWorld(::Vector2 position) const { + return ::GetScreenToWorld2D(position, *this); + } + + private: + inline void set(const ::Camera2D& camera) { + offset = camera.offset; + target = camera.target; + rotation = camera.rotation; + zoom = camera.zoom; + } +}; +} // namespace raylib + +#endif // RAYLIB_CPP_INCLUDE_CAMERA2D_HPP_ diff --git a/raylib-cpp/include/Camera3D.hpp b/raylib-cpp/include/Camera3D.hpp new file mode 100644 index 00000000..3edcd729 --- /dev/null +++ b/raylib-cpp/include/Camera3D.hpp @@ -0,0 +1,158 @@ +#ifndef RAYLIB_CPP_INCLUDE_CAMERA3D_HPP_ +#define RAYLIB_CPP_INCLUDE_CAMERA3D_HPP_ + +#include "./raylib.hpp" +#include "./Vector3.hpp" +#include "./raylib-cpp-utils.hpp" + +namespace raylib { +/** + * Camera type, defines a camera position/orientation in 3d space + */ +class Camera3D : public ::Camera3D { + public: + Camera3D(const ::Camera3D& camera) { + set(camera); + } + + Camera3D(::Vector3 positionValue, ::Vector3 targetValue, ::Vector3 upValue, + float fovyValue = 0, int projectionValue = 0) { + position = positionValue; + target = targetValue; + up = upValue; + fovy = fovyValue; + projection = projectionValue; + } + + Camera3D() {} + + GETTERSETTER(::Vector3, Position, position) + GETTERSETTER(::Vector3, Target, target) + GETTERSETTER(::Vector3, Up, up) + GETTERSETTER(float, Fovy, fovy) + GETTERSETTER(int, Projection, projection) + + Camera3D& operator=(const ::Camera3D& camera) { + set(camera); + return *this; + } + + /** + * Initializes 3D mode with custom camera (3D) + */ + Camera3D& BeginMode() { + ::BeginMode3D(*this); + return *this; + } + + /** + * Ends 3D mode and returns to default 2D orthographic mode + */ + Camera3D& EndMode() { + ::EndMode3D(); + return *this; + } + + /** + * Get transform matrix for camera + */ + inline Matrix GetMatrix() const { + return ::GetCameraMatrix(*this); + } + + /** + * Set camera mode (multiple camera modes available) + */ + inline Camera3D& SetMode(int mode) { + ::SetCameraMode(*this, mode); + return *this; + } + + /** + * Set camera alt key to combine with mouse movement (free camera) + */ + inline Camera3D& SetAltControl(int altKey) { + ::SetCameraAltControl(altKey); + return *this; + } + + /** + * Set camera smooth zoom key to combine with mouse (free camera) + */ + inline Camera3D& SetSmoothZoomControl(int szKey) { + ::SetCameraSmoothZoomControl(szKey); + return *this; + } + + /** + * Set camera move controls (1st person and 3rd person cameras) + */ + inline Camera3D& SetMoveControls( + int frontKey, int backKey, + int rightKey, int leftKey, + int upKey, int downKey) { + ::SetCameraMoveControls(frontKey, backKey, rightKey, leftKey, upKey, downKey); + return *this; + } + + /** + * Update camera position for selected mode + */ + inline Camera3D& Update() { + ::UpdateCamera(this); + return *this; + } + + /** + * Returns a ray trace from mouse position + */ + inline Ray GetMouseRay(::Vector2 mousePosition) const { + return ::GetMouseRay(mousePosition, *this); + } + + /** + * Returns the screen space position for a 3d world space position + */ + inline Vector2 GetWorldToScreen(::Vector3 position) const { + return ::GetWorldToScreen(position, *this); + } + + /** + * Draw a billboard texture. + */ + inline Camera3D& DrawBillboard( + const ::Texture2D& texture, + ::Vector3 center, + float size, + ::Color tint = {255, 255, 255, 255}) { + ::DrawBillboard(*this, texture, center, size, tint); + return *this; + } + + /** + * Draw a billboard texture defined by source. + */ + inline Camera3D& DrawBillboard( + const ::Texture2D& texture, + ::Rectangle sourceRec, + ::Vector3 center, + float size, + ::Color tint = {255, 255, 255, 255}) { + ::DrawBillboardRec(*this, texture, sourceRec, center, size, tint); + return *this; + } + + private: + inline void set(const ::Camera3D& camera) { + position = camera.position; + target = camera.target; + up = camera.up; + fovy = camera.fovy; + projection = camera.projection; + } +}; + +typedef Camera3D Camera; +} // namespace raylib + +#endif // RAYLIB_CPP_INCLUDE_CAMERA3D_HPP_ diff --git a/raylib-cpp/include/Color.hpp b/raylib-cpp/include/Color.hpp new file mode 100644 index 00000000..9695ba62 --- /dev/null +++ b/raylib-cpp/include/Color.hpp @@ -0,0 +1,258 @@ +#ifndef RAYLIB_CPP_INCLUDE_COLOR_HPP_ +#define RAYLIB_CPP_INCLUDE_COLOR_HPP_ + +#include + +#include "./raylib.hpp" +#include "./Vector4.hpp" +#include "./raylib-cpp-utils.hpp" + +namespace raylib { +/** + * Color type, RGBA (32bit) + */ +class Color : public ::Color { + public: + Color(const ::Color& color) { + set(color); + } + + Color( + unsigned char red, + unsigned char green, + unsigned char blue, + unsigned char alpha = 255) : + ::Color{red, green, blue, alpha} {}; + + /** + * Black. + */ + Color() : ::Color{0, 0, 0, 255} {}; + + /** + * Returns a Color from HSV values + */ + Color(::Vector3 hsv) { + set(::ColorFromHSV(hsv.x, hsv.y, hsv.z)); + } + + /** + * Returns a Color from HSV values + */ + static ::Color FromHSV(float hue, float saturation, float value) { + return ::ColorFromHSV(hue, saturation, value); + } + + /** + * Get Color structure from hexadecimal value + */ + Color(int hexValue) { + set(::GetColor(hexValue)); + } + + /** + * Returns Color from normalized values [0..1] + */ + Color(::Vector4 normalized) { + set(::ColorFromNormalized(normalized)); + } + + /** + * Returns hexadecimal value for a Color + */ + int ToInt() const { + return ::ColorToInt(*this); + } + + /** + * Returns hexadecimal value for a Color + */ + operator int() const { + return ::ColorToInt(*this); + } + + /** + * Returns color with alpha applied, alpha goes from 0.0f to 1.0f + */ + Color Fade(float alpha) const { + return ::Fade(*this, alpha); + } + + /** + * Returns Color normalized as float [0..1] + */ + Vector4 Normalize() const { + return ::ColorNormalize(*this); + } + + /** + * Returns HSV values for a Color + */ + Vector3 ToHSV() const { + return ::ColorToHSV(*this); + } + + GETTERSETTER(unsigned char, R, r) + GETTERSETTER(unsigned char, G, g) + GETTERSETTER(unsigned char, B, b) + GETTERSETTER(unsigned char, A, a) + + Color& operator=(const ::Color& color) { + set(color); + return *this; + } + + /** + * Set background color (framebuffer clear color) + */ + inline Color& ClearBackground() { + ::ClearBackground(*this); + return *this; + } + + inline Color& DrawPixel(int x, int y) { + ::DrawPixel(x, y, *this); + return *this; + } + + /** + * Draw a pixel + */ + inline Color& DrawPixel(::Vector2 pos) { + ::DrawPixelV(pos, *this); + return *this; + } + + /** + * Draw a line + */ + inline Color& DrawLine(int startPosX, int startPosY, int endPosX, int endPosY) { + ::DrawLine(startPosX, startPosY, endPosX, endPosY, *this); + return *this; + } + + inline Color& DrawLine(::Vector2 startPos, ::Vector2 endPos) { + ::DrawLineV(startPos, endPos, *this); + return *this; + } + + inline Color& DrawLine(::Vector2 startPos, ::Vector2 endPos, float thick) { + ::DrawLineEx(startPos, endPos, thick, *this); + return *this; + } + + inline Color& DrawLineBezier(::Vector2 startPos, ::Vector2 endPos, float thick) { + ::DrawLineBezier(startPos, endPos, thick, *this); + return *this; + } + + inline Color& DrawLineStrip(::Vector2 *points, int numPoints) { + ::DrawLineStrip(points, numPoints, *this); + return *this; + } + + inline Color& DrawText(const std::string& text, int posX, int posY, int fontSize) { + ::DrawText(text.c_str(), posX, posY, fontSize, *this); + return *this; + } + + inline Color& DrawText(const ::Font& font, const std::string& text, ::Vector2 position, + float fontSize, float spacing) { + ::DrawTextEx(font, text.c_str(), position, fontSize, spacing, *this); + return *this; + } + + inline Color& DrawText( + const ::Font& font, + const std::string& text, + ::Rectangle rec, + float fontSize, + float spacing, + bool wordWrap = false) { + ::DrawTextRec(font, text.c_str(), rec, fontSize, spacing, wordWrap, *this); + return *this; + } + + inline Color& DrawRectangle(int posX, int posY, int width, int height) { + ::DrawRectangle(posX, posY, width, height, *this); + return *this; + } + + inline Color& DrawRectangle(::Vector2 position, ::Vector2 size) { + ::DrawRectangleV(position, size, *this); + return *this; + } + + inline Color& DrawRectangle(::Rectangle rec) { + ::DrawRectangleRec(rec, *this); + return *this; + } + + inline Color& DrawRectangle(::Rectangle rec, ::Vector2 origin, float rotation) { + ::DrawRectanglePro(rec, origin, rotation, *this); + return *this; + } + + inline Color& DrawRectangleLines(int posX, int posY, int width, int height) { + ::DrawRectangleLines(posX, posY, width, height, *this); + return *this; + } + + inline Color& DrawRectangleLines(::Rectangle rec, int lineThick) { + ::DrawRectangleLinesEx(rec, lineThick, *this); + return *this; + } + + /** + * Returns color with alpha applied, alpha goes from 0.0f to 1.0f + */ + Color Alpha(float alpha) const { + return ::ColorAlpha(*this, alpha); + } + + /** + * Returns src alpha-blended into dst color with tint + */ + Color AlphaBlend(::Color dst, ::Color tint) const { + return ::ColorAlphaBlend(dst, *this, tint); + } + + inline static Color LightGray() { return LIGHTGRAY; } + inline static Color Gray() { return GRAY; } + inline static Color DarkGray() { return DARKGRAY; } + inline static Color Yellow() { return YELLOW; } + inline static Color Gold() { return GOLD; } + inline static Color Orange() { return ORANGE; } + inline static Color Pink() { return PINK; } + inline static Color Red() { return RED; } + inline static Color Maroon() { return MAROON; } + inline static Color Green() { return GREEN; } + inline static Color Lime() { return LIME; } + inline static Color DarkGreen() { return DARKGREEN; } + inline static Color SkyBlue() { return SKYBLUE; } + inline static Color Blue() { return BLUE; } + inline static Color DarkBlue() { return DARKBLUE; } + inline static Color Purple() { return PURPLE; } + inline static Color Violet() { return VIOLET; } + inline static Color DarkPurple() { return DARKPURPLE; } + inline static Color Beige() { return BEIGE; } + inline static Color Brown() { return BROWN; } + inline static Color DarkBrown() { return DARKBROWN; } + inline static Color White() { return WHITE; } + inline static Color Black() { return BLACK; } + inline static Color Blank() { return BLANK; } + inline static Color Magenta() { return MAGENTA; } + inline static Color RayWhite() { return RAYWHITE; } + + private: + inline void set(const ::Color& color) { + r = color.r; + g = color.g; + b = color.b; + a = color.a; + } +}; + +} // namespace raylib + +#endif // RAYLIB_CPP_INCLUDE_COLOR_HPP_ diff --git a/raylib-cpp/include/Font.hpp b/raylib-cpp/include/Font.hpp new file mode 100644 index 00000000..ca78251d --- /dev/null +++ b/raylib-cpp/include/Font.hpp @@ -0,0 +1,132 @@ +#ifndef RAYLIB_CPP_INCLUDE_FONT_HPP_ +#define RAYLIB_CPP_INCLUDE_FONT_HPP_ + +#include + +#include "./raylib.hpp" +#include "./raylib-cpp-utils.hpp" + +namespace raylib { +/** + * Font type, includes texture and charSet array data + */ +class Font : public ::Font { + public: + Font() { + set(::GetFontDefault()); + } + + Font(const ::Font& font) { + set(font); + } + + Font(const std::string& fileName) { + set(::LoadFont(fileName.c_str())); + } + + Font(const std::string& fileName, int fontSize, int* fontChars, int charCount) { + set(::LoadFontEx(fileName.c_str(), fontSize, fontChars, charCount)); + } + + Font(const ::Image& image, ::Color key, int firstChar) { + set(::LoadFontFromImage(image, key, firstChar)); + } + + Font(const std::string& fileType, const unsigned char* fileData, int dataSize, int fontSize, + int *fontChars, int charsCount) { + set(::LoadFontFromMemory(fileType.c_str(), fileData, dataSize, fontSize, fontChars, + charsCount)); + } + + ~Font() { + Unload(); + } + + void Unload() { + UnloadFont(*this); + } + + GETTERSETTER(int, BaseSize, baseSize) + GETTERSETTER(int, CharsCount, charsCount) + GETTERSETTER(int, CharsPadding, charsPadding) + GETTERSETTER(::Texture2D, Texture, texture) + GETTERSETTER(::Rectangle*, Recs, recs) + GETTERSETTER(::CharInfo*, Chars, chars) + + Font& operator=(const ::Font& font) { + set(font); + return *this; + } + + /** + * Draw text using font and additional parameters. + */ + inline Font& DrawText(const std::string& text, ::Vector2 position, float fontSize, + float spacing, ::Color tint = WHITE) { + ::DrawTextEx(*this, text.c_str(), position, fontSize, spacing, tint); + return *this; + } + + inline Font& DrawText(const std::string& text, ::Rectangle rec, float fontSize, float spacing, + bool wordWrap = false, ::Color tint = WHITE) { + ::DrawTextRec(*this, text.c_str(), rec, fontSize, spacing, wordWrap, tint); + return *this; + } + + /** + * Draw text using font inside rectangle limits with support for text selection. + */ + inline Font& DrawText(const std::string& text, ::Rectangle rec, float fontSize, float spacing, + bool wordWrap, ::Color tint, int selectStart, int selectLength, ::Color selectText, + ::Color selectBack) { + ::DrawTextRecEx(*this, text.c_str(), rec, fontSize, spacing, wordWrap, tint, + selectStart, selectLength, selectText, selectBack); + return *this; + } + + /** + * Draw one character (codepoint) + */ + inline Font& DrawText(int codepoint, + ::Vector2 position, + float fontSize, + ::Color tint = { 255, 255, 255, 255 }) { + ::DrawTextCodepoint(*this, codepoint, position, fontSize, tint); + return *this; + } + + /** + * Measure string size for Font + */ + inline Vector2 MeasureText(const std::string& text, float fontSize, float spacing) const { + return ::MeasureTextEx(*this, text.c_str(), fontSize, spacing); + } + + /** + * Get index position for a unicode character on font + */ + inline int GetGlyphIndex(int character) const { + return ::GetGlyphIndex(*this, character); + } + + /** + * Create an image from text (custom sprite font) + */ + inline ::Image ImageText(const std::string& text, float fontSize, + float spacing, ::Color tint) const { + return ::ImageTextEx(*this, text.c_str(), fontSize, spacing, tint); + } + + private: + void set(const ::Font& font) { + baseSize = font.baseSize; + charsCount = font.charsCount; + charsPadding = font.charsPadding; + texture = font.texture; + recs = font.recs; + chars = font.chars; + } +}; +} // namespace raylib + +#endif // RAYLIB_CPP_INCLUDE_FONT_HPP_ diff --git a/raylib-cpp/include/Functions.hpp b/raylib-cpp/include/Functions.hpp new file mode 100644 index 00000000..d1dab21a --- /dev/null +++ b/raylib-cpp/include/Functions.hpp @@ -0,0 +1,249 @@ +/** + * C++ wrapper functions for raylib. + */ +#ifndef RAYLIB_CPP_INCLUDE_FUNCTIONS_HPP_ +#define RAYLIB_CPP_INCLUDE_FUNCTIONS_HPP_ + +#include +#include + +#include "./raylib.hpp" + +/** + * Allow changing the declare type for all raylib-cpp global functions. Defaults to static. + */ +#ifndef RLCPPAPI +#define RLCPPAPI static +#endif + +namespace raylib { + +/** + * Initialize window and OpenGL context + */ +RLCPPAPI inline void InitWindow(int width, int height, const std::string& title = "raylib") { + ::InitWindow(width, height, title.c_str()); +} + +/** + * Set title for window + */ +RLCPPAPI inline void SetWindowTitle(const std::string& title) { + ::SetWindowTitle(title.c_str()); +} + +/** + * Get the human-readable, UTF-8 encoded name of the primary monitor + */ +RLCPPAPI inline std::string GetMonitorName(int monitor = 0) { + return ::GetMonitorName(monitor); +} + +/** + * Set clipboard text content + */ +RLCPPAPI inline void SetClipboardText(const std::string& text) { + ::SetClipboardText(text.c_str()); +} + +/** + * Get clipboard text content + */ +RLCPPAPI inline std::string GetClipboardText() { + return ::GetClipboardText(); +} + +/** + * Takes a screenshot of current screen (saved a .png) + */ +RLCPPAPI inline void TakeScreenshot(const std::string& fileName) { + ::TakeScreenshot(fileName.c_str()); +} + +/** + * Load text data from file (read) + */ +RLCPPAPI std::string LoadFileText(const std::string& fileName) { + char* text = ::LoadFileText(fileName.c_str()); + std::string output(text); + ::UnloadFileText((unsigned char*)text); + return output; +} + +/** + * Save text data to file (write) + */ +RLCPPAPI inline bool SaveFileText(const std::string& fileName, const std::string& text) { + return ::SaveFileText(fileName.c_str(), const_cast(text.c_str())); +} + +/** + * Check if file exists + */ +RLCPPAPI inline bool FileExists(const std::string& fileName) { + return ::FileExists(fileName.c_str()); +} + +/** + * Check if directory path exists + */ +RLCPPAPI inline bool DirectoryExists(const std::string& dirPath) { + return ::DirectoryExists(dirPath.c_str()); +} + +/** + * Check file extension (including point: .png, .wav) + */ +RLCPPAPI inline bool IsFileExtension(const std::string& fileName, const std::string& ext) { + return ::IsFileExtension(fileName.c_str(), ext.c_str()); +} + +/** + * Get pointer to extension for a filename string (including point: ".png") + */ +RLCPPAPI inline std::string GetFileExtension(const std::string& fileName) { + return ::GetFileExtension(fileName.c_str()); +} + +/** + * Get pointer to filename for a path string + */ +RLCPPAPI inline std::string GetFileName(const std::string& filePath) { + return ::GetFileName(filePath.c_str()); +} + +/** + * Get filename string without extension + */ +RLCPPAPI inline std::string GetFileNameWithoutExt(const std::string& filePath) { + return ::GetFileNameWithoutExt(filePath.c_str()); +} + +/** + * Get full path for a given fileName with path + */ +RLCPPAPI inline std::string GetDirectoryPath(const std::string& filePath) { + return ::GetDirectoryPath(filePath.c_str()); +} + +/** + * Get previous directory path for a given path + */ +RLCPPAPI inline std::string GetPrevDirectoryPath(const std::string& dirPath) { + return ::GetPrevDirectoryPath(dirPath.c_str()); +} + +/** + * Get current working directory + */ +RLCPPAPI inline std::string GetWorkingDirectory() { + return ::GetWorkingDirectory(); +} + +/** + * Get filenames in a directory path + */ +RLCPPAPI std::vector GetDirectoryFiles(const std::string& dirPath) { + int count; + char** files = ::GetDirectoryFiles(dirPath.c_str(), &count); + std::vector output(files, files + count); + ::ClearDirectoryFiles(); + return output; +} + +/** + * Change working directory, return true on success + */ +RLCPPAPI inline bool ChangeDirectory(const std::string& dir) { + return ::ChangeDirectory(dir.c_str()); +} + +/** + * Get dropped files names + */ +RLCPPAPI std::vector GetDroppedFiles() { + int count; + char** files = ::GetDroppedFiles(&count); + std::vector output(files, files + count); + ::ClearDroppedFiles(); + return output; +} + +/** + * Get file modification time (last write time) + */ +RLCPPAPI inline long GetFileModTime(const std::string& fileName) { // NOLINT + return ::GetFileModTime(fileName.c_str()); +} + +/** + * Open URL with default system browser (if available) + */ +RLCPPAPI inline void OpenURL(const std::string& url) { + return ::OpenURL(url.c_str()); +} + +/** + * Check gamepad name (if available) + */ +RLCPPAPI inline bool IsGamepadName(int gamepad, const std::string& name) { + return ::IsGamepadName(gamepad, name.c_str()); +} + +/** + * Update camera depending on selected mode + */ +RLCPPAPI inline void UpdateCamera(const ::Camera& camera) { + ::Camera* cameraPointer = (::Camera*)&camera; + ::UpdateCamera(cameraPointer); +} + +/** + * Load an image. + */ +RLCPPAPI inline ::Image LoadImage(const std::string& fileName) { + return ::LoadImage(fileName.c_str()); +} + +/** + * Load an image from RAW file data + */ +RLCPPAPI inline ::Image LoadImageRaw(const std::string& fileName, + int width, int height, + int format, int headerSize) { + return ::LoadImageRaw(fileName.c_str(), width, height, format, headerSize); +} + +/** + * Load animated image data + */ +RLCPPAPI inline ::Image LoadImageAnim(const std::string& fileName, int *frames) { + return ::LoadImageAnim(fileName.c_str(), frames); +} + +/** + * Load image from memory buffer, fileType refers to extension like "png" + */ +RLCPPAPI inline ::Image LoadImageFromMemory(const std::string& fileType, + const unsigned char *fileData, + int dataSize) { + return ::LoadImageFromMemory(fileType.c_str(), fileData, dataSize); +} + +/** + * Export image data to file + */ +RLCPPAPI inline bool ExportImage(const Image& image, const std::string& fileName) { + return ::ExportImage(image, fileName.c_str()); +} + +/** + * Export image as code file (.h) defining an array of bytes + */ +RLCPPAPI inline bool ExportImageAsCode(const Image& image, const std::string& fileName) { + return ::ExportImageAsCode(image, fileName.c_str()); +} + +} // namespace raylib + +#endif // RAYLIB_CPP_INCLUDE_FUNCTIONS_HPP_ diff --git a/raylib-cpp/include/Gamepad.hpp b/raylib-cpp/include/Gamepad.hpp new file mode 100644 index 00000000..17819920 --- /dev/null +++ b/raylib-cpp/include/Gamepad.hpp @@ -0,0 +1,125 @@ +#ifndef RAYLIB_CPP_INCLUDE_GAMEPAD_HPP_ +#define RAYLIB_CPP_INCLUDE_GAMEPAD_HPP_ + +#include + +#include "./raylib.hpp" +#include "./raylib-cpp-utils.hpp" + +namespace raylib { +/** + * Input-related functions: gamepads + */ +class Gamepad { + public: + Gamepad(int gamepadNumber = 0) { + set(gamepadNumber); + } + int number; + + GETTERSETTER(int, Number, number) + + Gamepad& operator=(const Gamepad& gamepad) { + set(gamepad); + return *this; + } + + Gamepad& operator=(int gamepadNumber) { + set(gamepadNumber); + return *this; + } + + operator int() const { return number; } + + /** + * Detect if a gamepad is available + */ + inline bool IsAvailable() const { + return ::IsGamepadAvailable(number); + } + + /** + * Detect if a gamepad is available + */ + static inline bool IsAvailable(int number) { + return ::IsGamepadAvailable(number); + } + + /** + * Check gamepad name (if available) + */ + inline bool IsName(const std::string& name) const { + return ::IsGamepadName(number, name.c_str()); + } + + /** + * Return gamepad internal name id + */ + std::string GetName() const { + return ::GetGamepadName(number); + } + + /** + * Return gamepad internal name id + */ + operator std::string() const { + return GetName(); + } + + /** + * Detect if a gamepad button has been pressed once + */ + inline bool IsButtonPressed(int button) const { + return ::IsGamepadButtonPressed(number, button); + } + + /** + * Detect if a gamepad button is being pressed + */ + inline bool IsButtonDown(int button) const { + return ::IsGamepadButtonDown(number, button); + } + + /** + * Detect if a gamepad button has been released once + */ + inline bool IsButtonReleased(int button) const { + return ::IsGamepadButtonReleased(number, button); + } + + /** + * Detect if a gamepad button is NOT being pressed + */ + inline bool IsButtonUp(int button) const { + return ::IsGamepadButtonUp(number, button); + } + + /** + * Get the last gamepad button pressed + */ + inline int GetButtonPressed() const { + return ::GetGamepadButtonPressed(); + } + + /** + * Return gamepad axis count for a gamepad + */ + inline int GetAxisCount() const { + return ::GetGamepadAxisCount(number); + } + + /** + * Return axis movement value for a gamepad axis + */ + inline float GetAxisMovement(int axis) const { + return ::GetGamepadAxisMovement(number, axis); + } + + private: + inline void set(int gamepadNumber) { + number = gamepadNumber; + } +}; +} // namespace raylib + +#endif // RAYLIB_CPP_INCLUDE_GAMEPAD_HPP_ diff --git a/raylib-cpp/include/Image.hpp b/raylib-cpp/include/Image.hpp new file mode 100644 index 00000000..10314a37 --- /dev/null +++ b/raylib-cpp/include/Image.hpp @@ -0,0 +1,586 @@ +#ifndef RAYLIB_CPP_INCLUDE_IMAGE_HPP_ +#define RAYLIB_CPP_INCLUDE_IMAGE_HPP_ + +#include + +#include "./raylib.hpp" +#include "./raylib-cpp-utils.hpp" + +namespace raylib { +/** + * Image type, bpp always RGBA (32bit) + * + * Data stored in CPU memory (RAM) + */ +class Image : public ::Image { + public: + Image(const ::Image& image) { + set(image); + } + + Image(const std::string& fileName) { + Load(fileName); + } + + Image(const std::string& fileName, int width, int height, int format, int headerSize) { + LoadRaw(fileName, width, height, format, headerSize); + } + + Image(const std::string& fileName, int* frames) { + LoadAnim(fileName, frames); + } + + Image(const std::string& fileType, const unsigned char* fileData, int dataSize) { + LoadFromMemory(fileType, fileData, dataSize); + } + + Image(const ::Texture2D& texture) { + set(::GetTextureData(texture)); + } + + Image(int width, int height, ::Color color = {255, 255, 255, 255}) { + set(::GenImageColor(width, height, color)); + } + + Image(const ::Font& font, const std::string& text, float fontSize, float spacing, + ::Color tint = {255, 255, 255, 255}) { + set(::ImageTextEx(font, text.c_str(), fontSize, spacing, tint)); + } + + static ::Image Text(const std::string& text, int fontSize, + ::Color color = {255, 255, 255, 255}) { + return ::ImageText(text.c_str(), fontSize, color); + } + + static ::Image Text(const ::Font& font, const std::string& text, float fontSize, float spacing, + ::Color tint = {255, 255, 255, 255}) { + return ::ImageTextEx(font, text.c_str(), fontSize, spacing, tint); + } + + /** + * Get pixel data from screen buffer and return an Image (screenshot) + */ + static ::Image GetScreenData() { + return ::GetScreenData(); + } + + /** + * Generate image: plain color + */ + static ::Image Color(int width, int height, ::Color color = {255, 255, 255, 255}) { + return ::GenImageColor(width, height, color); + } + + /** + * Generate image: vertical gradient + */ + static ::Image GradientV(int width, int height, ::Color top, ::Color bottom) { + return ::GenImageGradientV(width, height, top, bottom); + } + + /** + * Generate image: horizontal gradient + */ + static ::Image GradientH(int width, int height, ::Color left, ::Color right) { + return ::GenImageGradientH(width, height, left, right); + } + + /** + * Generate image: radial gradient + */ + static ::Image GradientRadial(int width, int height, float density, + ::Color inner, ::Color outer) { + return ::GenImageGradientRadial(width, height, density, inner, outer); + } + + /** + * Generate image: checked + */ + static ::Image Checked(int width, int height, int checksX, int checksY, + ::Color col1 = {255, 255, 255, 255}, ::Color col2 = {0, 0, 0, 255}) { + return ::GenImageChecked(width, height, checksX, checksY, col1, col2); + } + + /** + * Generate image: white noise + */ + static ::Image WhiteNoise(int width, int height, float factor) { + return ::GenImageWhiteNoise(width, height, factor); + } + + /** + * Generate image: perlin noise + */ + static ::Image PerlinNoise(int width, int height, int offsetX, int offsetY, + float scale = 1.0f) { + return ::GenImagePerlinNoise(width, height, offsetX, offsetY, scale); + } + + /** + * Generate image: cellular algorithm. Bigger tileSize means bigger cells + */ + static ::Image Cellular(int width, int height, int tileSize) { + return ::GenImageCellular(width, height, tileSize); + } + + ~Image() { + Unload(); + } + + Image& operator=(const ::Image& image) { + set(image); + return *this; + } + + /** + * Load image from file into CPU memory (RAM) + */ + void Load(const std::string& fileName) { + set(::LoadImage(fileName.c_str())); + } + + /** + * Load image from RAW file data. + */ + void LoadRaw(const std::string& fileName, int width, int height, int format, int headerSize) { + set(::LoadImageRaw(fileName.c_str(), width, height, format, headerSize)); + } + + /** + * Load image sequence from file (frames appended to image.data). + */ + void LoadAnim(const std::string& fileName, int* frames) { + set(::LoadImageAnim(fileName.c_str(), frames)); + } + + /** + * Load image from memory buffer, fileType refers to extension: i.e. "png". + */ + void LoadFromMemory( + const std::string& fileType, + const unsigned char *fileData, + int dataSize) { + set(::LoadImageFromMemory(fileType.c_str(), fileData, dataSize)); + } + + /** + * Unload image from CPU memory (RAM) + */ + inline void Unload() { + if (data != NULL) { + ::UnloadImage(*this); + data = NULL; + } + } + + /** + * Export image data to file, returns true on success + */ + inline bool Export(const std::string& fileName) { + // TODO(RobLoach): Switch to an invalid loading exception on false. + return ::ExportImage(*this, fileName.c_str()); + } + + /** + * Export image as code file defining an array of bytes, returns true on success + */ + inline bool ExportAsCode(const std::string& fileName) { + return ::ExportImageAsCode(*this, fileName.c_str()); + } + + GETTERSETTER(void*, Data, data) + GETTERSETTER(int, Width, width) + GETTERSETTER(int, Height, height) + GETTERSETTER(int, Mipmaps, mipmaps) + GETTERSETTER(int, Format, format) + + /** + * Retrieve the width and height of the image. + */ + inline ::Vector2 GetSize() { + return {static_cast(width), static_cast(height)}; + } + + /** + * Create an image duplicate (useful for transformations) + */ + inline ::Image Copy() { + return ::ImageCopy(*this); + } + + /** + * Create an image from another image piece + */ + inline ::Image FromImage(::Rectangle rec) { + return ::ImageFromImage(*this, rec); + } + + /** + * Convert image to POT (power-of-two) + */ + inline Image& ToPOT(::Color fillColor) { + ::ImageToPOT(this, fillColor); + return *this; + } + + /** + * Convert image data to desired format + */ + inline Image& Format(int newFormat) { + ::ImageFormat(this, newFormat); + return *this; + } + + /** + * Apply alpha mask to image + */ + inline Image& AlphaMask(const ::Image& alphaMask) { + ::ImageAlphaMask(this, alphaMask); + return *this; + } + + /** + * Crop image depending on alpha value + */ + inline Image& AlphaCrop(float threshold) { + ::ImageAlphaCrop(this, threshold); + return *this; + } + + /** + * Premultiply alpha channel + */ + inline Image& AlphaPremultiply() { + ::ImageAlphaPremultiply(this); + return *this; + } + + /** + * Crop an image to area defined by a rectangle + */ + inline Image& Crop(::Rectangle crop) { + ::ImageCrop(this, crop); + return *this; + } + + /** + * Crop an image to a new given width and height based on a vector. + */ + inline Image& Crop(::Vector2 size) { + return Crop(0, 0, static_cast(size.x), static_cast(size.y)); + } + + /** + * Crop an image to area defined by a rectangle + */ + inline Image& Crop(int offsetX, int offsetY, int newWidth, int newHeight) { + ::Rectangle rect{ + static_cast(offsetX), + static_cast(offsetY), + static_cast(newWidth), + static_cast(newHeight) + }; + ::ImageCrop(this, rect); + return *this; + } + + /** + * Resize and image to new size + */ + inline Image& Resize(int newWidth, int newHeight) { + ::ImageResize(this, newWidth, newHeight); + return *this; + } + + /** + * Resize and image to new size using Nearest-Neighbor scaling algorithm + */ + inline Image& ResizeNN(int newWidth, int newHeight) { + ::ImageResizeNN(this, newWidth, newHeight); + return *this; + } + + /** + * Resize canvas and fill with color + */ + inline Image& ResizeCanvas(int newWidth, int newHeight, int offsetX, int offsetY, + ::Color color = {255, 255, 255, 255}) { + ::ImageResizeCanvas(this, newWidth, newHeight, offsetX, offsetY, color); + return *this; + } + + /** + * Generate all mipmap levels for a provided image + */ + inline Image& Mipmaps() { + ::ImageMipmaps(this); + return *this; + } + + /** + * Dither image data to 16bpp or lower (Floyd-Steinberg dithering) + */ + inline Image& Dither(int rBpp, int gBpp, int bBpp, int aBpp) { + ::ImageDither(this, rBpp, gBpp, bBpp, aBpp); + return *this; + } + + /** + * Flip image vertically + */ + inline Image& FlipVertical() { + ::ImageFlipVertical(this); + return *this; + } + + /** + * Flip image horizontally + */ + inline Image& FlipHorizontal() { + ::ImageFlipHorizontal(this); + return *this; + } + + /** + * Rotate image clockwise 90deg + */ + inline Image& RotateCW() { + ::ImageRotateCW(this); + return *this; + } + + /** + * Rotate image counter-clockwise 90deg + */ + inline Image& RotateCCW() { + ::ImageRotateCCW(this); + return *this; + } + + /** + * Modify image color: tint + */ + inline Image& ColorTint(::Color color = {255, 255, 255, 255}) { + ::ImageColorTint(this, color); + return *this; + } + + /** + * Modify image color: invert + */ + inline Image& ColorInvert() { + ::ImageColorInvert(this); + return *this; + } + + /** + * Modify image color: grayscale + */ + inline Image& ColorGrayscale() { + ::ImageColorGrayscale(this); + return *this; + } + + /** + * Modify image color: contrast + * + * @param contrast Contrast values between -100 and 100 + */ + inline Image& ColorContrast(float contrast) { + ::ImageColorContrast(this, contrast); + return *this; + } + + /** + * Modify image color: brightness + * + * @param brightness Brightness values between -255 and 255 + */ + inline Image& ColorBrightness(int brightness) { + ::ImageColorBrightness(this, brightness); + return *this; + } + + /** + * Modify image color: replace color + */ + inline Image& ColorReplace(::Color color, ::Color replace) { + ::ImageColorReplace(this, color, replace); + return *this; + } + + /** + * Get image alpha border rectangle + * + * @param threshold Threshold is defined as a percentatge: 0.0f -> 1.0f + */ + inline Rectangle GetAlphaBorder(float threshold) const { + return ::GetImageAlphaBorder(*this, threshold); + } + + /** + * Clear image background with given color + */ + inline Image& ClearBackground(::Color color = {0, 0, 0, 255}) { + ::ImageClearBackground(this, color); + return *this; + } + + /** + * Draw pixel within an image + */ + inline Image& DrawPixel(int posX, int posY, ::Color color = {255, 255, 255, 255}) { + ::ImageDrawPixel(this, posX, posY, color); + return *this; + } + + inline Image& DrawPixel(::Vector2 position, ::Color color = {255, 255, 255, 255}) { + ::ImageDrawPixelV(this, position, color); + return *this; + } + + inline Image& DrawLine(int startPosX, int startPosY, int endPosX, int endPosY, + ::Color color = {255, 255, 255, 255}) { + ::ImageDrawLine(this, startPosX, startPosY, endPosX, endPosY, color); + return *this; + } + + inline Image& DrawLine(::Vector2 start, ::Vector2 end, ::Color color = {255, 255, 255, 255}) { + ::ImageDrawLineV(this, start, end, color); + return *this; + } + + inline Image& DrawCircle(int centerX, int centerY, int radius, + ::Color color = {255, 255, 255, 255}) { + ::ImageDrawCircle(this, centerX, centerY, radius, color); + return *this; + } + + inline Image& DrawCircle(::Vector2 center, int radius, + ::Color color = {255, 255, 255, 255}) { + ::ImageDrawCircleV(this, center, radius, color); + return *this; + } + + inline Image& DrawRectangle(int posX, int posY, int width, int height, + ::Color color = {255, 255, 255, 255}) { + ::ImageDrawRectangle(this, posX, posY, width, height, color); + return *this; + } + + inline Image& DrawRectangle(Vector2 position, Vector2 size, + ::Color color = {255, 255, 255, 255}) { + ::ImageDrawRectangleV(this, position, size, color); + return *this; + } + + inline Image& DrawRectangle(::Rectangle rec, ::Color color = {255, 255, 255, 255}) { + ::ImageDrawRectangleRec(this, rec, color); + return *this; + } + + inline Image& DrawRectangleLines(::Rectangle rec, int thick = 1, + ::Color color = {255, 255, 255, 255}) { + ::ImageDrawRectangleLines(this, rec, thick, color); + return *this; + } + + inline Image& Draw(const ::Image& src, ::Rectangle srcRec, ::Rectangle dstRec, + ::Color tint = {255, 255, 255, 255}) { + ::ImageDraw(this, src, srcRec, dstRec, tint); + return *this; + } + + inline Image& DrawText(const std::string& text, ::Vector2 position, int fontSize, + ::Color color = {255, 255, 255, 255}) { + ::ImageDrawText(this, + text.c_str(), + static_cast(position.x), + static_cast(position.y), + fontSize, + color); + return *this; + } + + inline Image& DrawText(const std::string& text, int x, int y, int fontSize, + ::Color color = {255, 255, 255, 255}) { + ::ImageDrawText(this, text.c_str(), x, y, fontSize, color); + return *this; + } + + inline Image& DrawText(const ::Font& font, const std::string& text, ::Vector2 position, + float fontSize, float spacing, ::Color tint = {255, 255, 255, 255}) { + ::ImageDrawTextEx(this, font, text.c_str(), position, fontSize, spacing, tint); + return *this; + } + + /** + * Load color data from image as a Color array (RGBA - 32bit) + */ + inline ::Color* LoadColors() { + return ::LoadImageColors(*this); + } + + /** + * Load colors palette from image as a Color array (RGBA - 32bit) + */ + inline ::Color* LoadPalette(int maxPaletteSize, int *colorsCount) { + return ::LoadImagePalette(*this, maxPaletteSize, colorsCount); + } + + /** + * Unload color data loaded with LoadImageColors() + */ + inline void UnloadColors(::Color* colors) { + ::UnloadImageColors(colors); + } + + /** + * Unload colors palette loaded with LoadImagePalette() + */ + inline void UnloadPalette(::Color* colors) { + ::UnloadImagePalette(colors); + } + + /** + * Load texture from image data + */ + inline ::Texture2D LoadTexture() { + return ::LoadTextureFromImage(*this); + } + + /** + * Load texture from image data + */ + inline operator ::Texture2D() { + return LoadTexture(); + } + + /** + * Get pixel data size in bytes for certain format + */ + static int GetPixelDataSize(int width, int height, int format = PIXELFORMAT_UNCOMPRESSED_R32G32B32A32) { + return ::GetPixelDataSize(width, height, format); + } + + /** + * Returns the pixel data size of the image. + * + * @return The pixel data size of the image. + */ + int GetPixelDataSize() { + return ::GetPixelDataSize(width, height, format); + } + + private: + inline void set(const ::Image& image) { + data = image.data; + width = image.width; + height = image.height; + mipmaps = image.mipmaps; + format = image.format; + } +}; +} // namespace raylib + +#endif // RAYLIB_CPP_INCLUDE_IMAGE_HPP_ diff --git a/raylib-cpp/include/Material.hpp b/raylib-cpp/include/Material.hpp new file mode 100644 index 00000000..8b8bcbd4 --- /dev/null +++ b/raylib-cpp/include/Material.hpp @@ -0,0 +1,80 @@ +#ifndef RAYLIB_CPP_INCLUDE_MATERIAL_HPP_ +#define RAYLIB_CPP_INCLUDE_MATERIAL_HPP_ + +#include +#include + +#include "./raylib.hpp" +#include "./raylib-cpp-utils.hpp" + +namespace raylib { +/** + * Material type (generic) + */ +class Material : public ::Material { + public: + Material(const ::Material& material) { + set(material); + } + + /** + * Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps) + */ + Material() { + set(LoadMaterialDefault()); + } + + ~Material() { + Unload(); + } + + /** + * Load materials from model file + */ + static std::vector Load(const std::string& fileName) { + int count = 0; + ::Material* materials = ::LoadMaterials(fileName.c_str(), &count); + return std::vector(materials, materials + count); + } + + GETTERSETTER(::Shader, Shader, shader) + GETTERSETTER(::MaterialMap*, Maps, maps) + // TODO(RobLoach): Resolve the Material params being a float[4]. + // GETTERSETTER(float[4], Params, params) + + Material& operator=(const ::Material& material) { + set(material); + return *this; + } + + /** + * Unload material from memory + */ + inline void Unload() { + if (maps != NULL) { + ::UnloadMaterial(*this); + maps = NULL; + } + } + + /** + * Set texture for a material map type (MAP_DIFFUSE, MAP_SPECULAR...) + */ + inline Material& SetTexture(int mapType, const ::Texture2D& texture) { + ::SetMaterialTexture(this, mapType, texture); + return *this; + } + + private: + inline void set(const ::Material& material) { + shader = material.shader; + maps = material.maps; + params[0] = material.params[0]; + params[1] = material.params[1]; + params[2] = material.params[2]; + params[3] = material.params[3]; + } +}; +} // namespace raylib + +#endif // RAYLIB_CPP_INCLUDE_MATERIAL_HPP_ diff --git a/raylib-cpp/include/Matrix.hpp b/raylib-cpp/include/Matrix.hpp new file mode 100644 index 00000000..36aa7819 --- /dev/null +++ b/raylib-cpp/include/Matrix.hpp @@ -0,0 +1,227 @@ +#ifndef RAYLIB_CPP_INCLUDE_MATRIX_HPP_ +#define RAYLIB_CPP_INCLUDE_MATRIX_HPP_ + +#include "./raylib.hpp" +#include "./raylib-cpp-utils.hpp" +#include "./raymath.hpp" + +#ifndef RAYLIB_CPP_NO_MATH +#include +#endif + +namespace raylib { +/** + * Matrix type (OpenGL style 4x4 - right handed, column major) + */ +class Matrix : public ::Matrix { + public: + Matrix(const ::Matrix& mat) { + set(mat); + } + + Matrix(float M0 = 0, float M1 = 0, float M2 = 0, float M3 = 0, float M4 = 0, float M5 = 0, + float M6 = 0, float M7 = 0, float M8 = 0, float M9 = 0, float M10 = 0, float M11 = 0, + float M12 = 0, float M13 = 0, float M14 = 0, float M15 = 0) { + m0 = M0; + m1 = M1; + m2 = M2; + m3 = M3; + m4 = M4; + m5 = M5; + m6 = M6; + m7 = M7; + m8 = M8; + m9 = M9; + m10 = M10; + m11 = M11; + m12 = M12; + m13 = M13; + m14 = M14; + m15 = M15; + } + + GETTERSETTER(float, M0, m0) + GETTERSETTER(float, M1, m1) + GETTERSETTER(float, M2, m2) + GETTERSETTER(float, M3, m3) + GETTERSETTER(float, M4, m4) + GETTERSETTER(float, M5, m5) + GETTERSETTER(float, M6, m6) + GETTERSETTER(float, M7, m7) + GETTERSETTER(float, M8, m8) + GETTERSETTER(float, M9, m9) + GETTERSETTER(float, M10, m10) + GETTERSETTER(float, M11, m11) + GETTERSETTER(float, M12, m12) + GETTERSETTER(float, M13, m13) + GETTERSETTER(float, M14, m14) + GETTERSETTER(float, M15, m15) + + Matrix& operator=(const ::Matrix& matrix) { + set(matrix); + return *this; + } + + Matrix& operator=(const Matrix& matrix) { + set(matrix); + return *this; + } + + bool operator==(const ::Matrix& other) { + return m0 == other.m0 + && m1 == other.m1 + && m2 == other.m2 + && m3 == other.m3 + && m4 == other.m4 + && m5 == other.m5 + && m6 == other.m6 + && m7 == other.m7 + && m8 == other.m8 + && m9 == other.m9 + && m10 == other.m10 + && m11 == other.m11 + && m12 == other.m12 + && m13 == other.m13 + && m14 == other.m14 + && m15 == other.m15; + } + +#ifndef RAYLIB_CPP_NO_MATH + /** + * Returns the trace of the matrix (sum of the values along the diagonal) + */ + inline float Trace() const { + return ::MatrixTrace(*this); + } + + /** + * Transposes provided matrix + */ + inline Matrix Transpose() const { + return ::MatrixTranspose(*this); + } + + inline Matrix Invert() const { + return ::MatrixInvert(*this); + } + + inline Matrix Normalize() const { + return ::MatrixNormalize(*this); + } + + static Matrix Identity() { + return ::MatrixIdentity(); + } + + Matrix Add(const ::Matrix& right) { + return ::MatrixAdd(*this, right); + } + + Matrix operator+(const ::Matrix& matrix) { + return ::MatrixAdd(*this, matrix); + } + + Matrix Subtract(const ::Matrix& right) { + return ::MatrixSubtract(*this, right); + } + + Matrix operator-(const ::Matrix& matrix) { + return ::MatrixSubtract(*this, matrix); + } + + static Matrix Translate(float x, float y, float z) { + return ::MatrixTranslate(x, y, z); + } + + static Matrix Rotate(Vector3 axis, float angle) { + return ::MatrixRotate(axis, angle); + } + + static Matrix RotateXYZ(Vector3 angle) { + return ::MatrixRotateXYZ(angle); + } + + static Matrix RotateX(float angle) { + return ::MatrixRotateX(angle); + } + + static Matrix RotateY(float angle) { + return ::MatrixRotateY(angle); + } + + static Matrix RotateZ(float angle) { + return ::MatrixRotateZ(angle); + } + + static Matrix Scale(float x, float y, float z) { + return ::MatrixScale(x, y, z); + } + + Matrix Multiply(const ::Matrix& right) const { + return ::MatrixMultiply(*this, right); + } + + Matrix operator*(const ::Matrix& matrix) { + return ::MatrixMultiply(*this, matrix); + } + + static Matrix Frustum(double left, double right, double bottom, double top, + double near, double far) { + return ::MatrixFrustum(left, right, bottom, top, near, far); + } + + static Matrix Perspective(double fovy, double aspect, double near, double far) { + return ::MatrixPerspective(fovy, aspect, near, far); + } + + static Matrix Ortho(double left, double right, double bottom, double top, + double near, double far) { + return ::MatrixOrtho(left, right, bottom, top, near, far); + } + + static Matrix LookAt(Vector3 eye, Vector3 target, Vector3 up) { + return ::MatrixLookAt(eye, target, up); + } + + inline float16 ToFloatV() const { + return ::MatrixToFloatV(*this); + } + + operator float16() { + return ToFloatV(); + } + + /** + * Set shader uniform value (matrix 4x4) + */ + inline Matrix& SetShaderValue(::Shader shader, int uniformLoc) { + ::SetShaderValueMatrix(shader, uniformLoc, *this); + return *this; + } + +#endif + + private: + inline void set(const ::Matrix& mat) { + m0 = mat.m0; + m1 = mat.m1; + m2 = mat.m2; + m3 = mat.m3; + m4 = mat.m4; + m5 = mat.m5; + m6 = mat.m6; + m7 = mat.m7; + m8 = mat.m8; + m9 = mat.m9; + m10 = mat.m10; + m11 = mat.m11; + m12 = mat.m12; + m13 = mat.m13; + m14 = mat.m14; + m15 = mat.m15; + } +}; +} // namespace raylib + + +#endif // RAYLIB_CPP_INCLUDE_MATRIX_HPP_ diff --git a/raylib-cpp/include/Mesh.hpp b/raylib-cpp/include/Mesh.hpp new file mode 100644 index 00000000..8e585a6e --- /dev/null +++ b/raylib-cpp/include/Mesh.hpp @@ -0,0 +1,236 @@ +#ifndef RAYLIB_CPP_INCLUDE_MESH_HPP_ +#define RAYLIB_CPP_INCLUDE_MESH_HPP_ + +#include +#include + +#include "./raylib.hpp" +#include "./raylib-cpp-utils.hpp" +#include "./BoundingBox.hpp" +#include "./Model.hpp" + +namespace raylib { +/** + * Vertex data definning a mesh + */ +class Mesh : public ::Mesh { + public: + Mesh(const ::Mesh& mesh) { + set(mesh); + } + + Mesh(int VertexCount, int TriangleCount) { + vertexCount = VertexCount; + triangleCount = TriangleCount; + } + + /** + * Load meshes from model file + */ + // static std::vector Load(const std::string& fileName) { + // int count = 0; + // ::Mesh* meshes = LoadMeshes(fileName.c_str(), &count); + // return std::vector(meshes, meshes + count); + // } + + /** + * Generate polygonal mesh + */ + static ::Mesh Poly(int sides, float radius) { + return ::GenMeshPoly(sides, radius); + } + + /** + * Generate plane mesh (with subdivisions) + */ + static ::Mesh Plane(float width, float length, int resX, int resZ) { + return ::GenMeshPlane(width, length, resX, resZ); + } + + /** + * Generate cuboid mesh + */ + static ::Mesh Cube(float width, float height, float length) { + return ::GenMeshCube(width, height, length); + } + + /** + * Generate sphere mesh (standard sphere) + */ + static ::Mesh Sphere(float radius, int rings, int slices) { + return ::GenMeshSphere(radius, rings, slices); + } + + /** + * Generate half-sphere mesh (no bottom cap) + */ + static ::Mesh HemiSphere(float radius, int rings, int slices) { + return ::GenMeshHemiSphere(radius, rings, slices); + } + + /** + * Generate cylinder mesh + */ + static ::Mesh Cylinder(float radius, float height, int slices) { + return ::GenMeshCylinder(radius, height, slices); + } + + /** + * Generate torus mesh + */ + static ::Mesh Torus(float radius, float size, int radSeg, int sides) { + return ::GenMeshTorus(radius, size, radSeg, sides); + } + + /** + * Generate trefoil knot mesh + */ + static ::Mesh Knot(float radius, float size, int radSeg, int sides) { + return ::GenMeshKnot(radius, size, radSeg, sides); + } + + /** + * Generate heightmap mesh from image data + */ + static ::Mesh Heightmap(const ::Image& heightmap, ::Vector3 size) { + return ::GenMeshHeightmap(heightmap, size); + } + + /** + * Generate cubes-based map mesh from image data + */ + static ::Mesh Cubicmap(const ::Image& cubicmap, ::Vector3 cubeSize) { + return ::GenMeshCubicmap(cubicmap, cubeSize); + } + + GETTERSETTER(int, VertexCount, vertexCount) + GETTERSETTER(int, TriangleCount, triangleCount) + GETTERSETTER(float*, Vertices, vertices) + GETTERSETTER(float *, TexCoords, texcoords) + GETTERSETTER(float *, TexCoords2, texcoords2) + GETTERSETTER(float *, Normals, normals) + GETTERSETTER(float *, Tangents, tangents) + GETTERSETTER(unsigned char *, Colors, colors) + GETTERSETTER(unsigned short *, Indices, indices) // NOLINT + GETTERSETTER(float *, AnimVertices, animVertices) + GETTERSETTER(float *, AnimNormals, animNormals) + GETTERSETTER(int *, BoneIds, boneIds) + GETTERSETTER(float *, BoneWeights, boneWeights) + GETTERSETTER(unsigned int, VaoId, vaoId) + GETTERSETTER(unsigned int *, VboId, vboId) + + Mesh& operator=(const ::Mesh& mesh) { + set(mesh); + return *this; + } + + ~Mesh() { + Unload(); + } + + /** + * Upload mesh vertex data to GPU (VRAM) + */ + inline void Upload(bool dynamic = false) { + ::UploadMesh(this, dynamic); + } + + /** + * Upload mesh vertex data to GPU (VRAM) + */ + inline void UpdateBuffer(int index, void *data, int dataSize, int offset = 0) { + ::UpdateMeshBuffer(*this, index, data, dataSize, offset); + } + + inline void Draw(const ::Material& material, const ::Matrix& transform) { + ::DrawMesh(*this, material, transform); + } + + inline void DrawInstanced(const ::Material& material, ::Matrix* transforms, int instances) { + ::DrawMeshInstanced(*this, material, transforms, instances); + } + + /** + * Export mesh data to file + */ + inline bool Export(const std::string& fileName) { + // TODO(RobLoach): Switch to an exception when failed. + return ExportMesh(*this, fileName.c_str()); + } + + /** + * Unload mesh from memory (RAM and/or VRAM) + */ + inline void Unload() { + if (vboId != NULL) { + ::UnloadMesh(*this); + vboId = NULL; + } + } + + /** + * Compute mesh bounding box limits + */ + inline raylib::BoundingBox BoundingBox() const { + return ::MeshBoundingBox(*this); + } + + /** + * Compute mesh bounding box limits + */ + operator raylib::BoundingBox() { + return BoundingBox(); + } + + /** + * Compute mesh tangents + */ + inline Mesh& Tangents() { + ::MeshTangents(this); + return *this; + } + + /** + * Compute mesh binormals (aka bitangent) + */ + inline Mesh& Binormals() { + ::MeshBinormals(this); + return *this; + } + + /** + * Load model from generated mesh + */ + inline raylib::Model LoadModelFrom() const { + return ::LoadModelFromMesh(*this); + } + + /** + * Load model from generated mesh + */ + operator raylib::Model() { + return ::LoadModelFromMesh(*this); + } + + private: + inline void set(const ::Mesh& mesh) { + vertexCount = mesh.vertexCount; + triangleCount = mesh.triangleCount; + vertices = mesh.vertices; + texcoords = mesh.texcoords; + texcoords2 = mesh.texcoords2; + normals = mesh.normals; + tangents = mesh.tangents; + colors = mesh.colors; + indices = mesh.indices; + animVertices = mesh.animVertices; + animNormals = mesh.animNormals; + boneIds = mesh.boneIds; + boneWeights = mesh.boneWeights; + vaoId = mesh.vaoId; + vboId = mesh.vboId; + } +}; +} // namespace raylib + +#endif // RAYLIB_CPP_INCLUDE_MESH_HPP_ diff --git a/raylib-cpp/include/Model.hpp b/raylib-cpp/include/Model.hpp new file mode 100644 index 00000000..c201b7fb --- /dev/null +++ b/raylib-cpp/include/Model.hpp @@ -0,0 +1,159 @@ +#ifndef RAYLIB_CPP_INCLUDE_MODEL_HPP_ +#define RAYLIB_CPP_INCLUDE_MODEL_HPP_ + +#include + +#include "./raylib.hpp" +#include "./raylib-cpp-utils.hpp" +#include "./Mesh.hpp" + +namespace raylib { +/** + * Model type + */ +class Model : public ::Model { + public: + Model(const ::Model& model) { + set(model); + } + + Model(const std::string& fileName) { + set(::LoadModel(fileName.c_str())); + } + + Model(const ::Mesh& mesh) { + set(::LoadModelFromMesh(mesh)); + } + + ~Model() { + Unload(); + } + + GETTERSETTER(::Matrix, Transform, transform) + GETTERSETTER(int, MeshCount, meshCount) + GETTERSETTER(int, MaterialCount, materialCount) + GETTERSETTER(::Mesh *, Meshes, meshes) + GETTERSETTER(::Material *, Materials, materials) + GETTERSETTER(int *, MeshMaterial, meshMaterial) + GETTERSETTER(int, BoneCount, boneCount) + GETTERSETTER(::BoneInfo *, Bones, bones) + GETTERSETTER(::Transform *, BindPoe, bindPose) + + Model& operator=(const ::Model& model) { + set(model); + return *this; + } + + /** + * Unload model (including meshes) from memory (RAM and/or VRAM) + */ + inline void Unload() { + if (meshes != NULL || materials != NULL) { + ::UnloadModel(*this); + meshes = NULL; + materials = NULL; + } + } + + /** + * Unload model (but not meshes) from memory (RAM and/or VRAM) + */ + inline Model& UnloadKeepMeshes() { + ::UnloadModelKeepMeshes(*this); + return *this; + } + + /** + * Set material for a mesh + */ + inline Model& SetMeshMaterial(int meshId, int materialId) { + ::SetModelMeshMaterial(this, meshId, materialId); + return *this; + } + + /** + * Get collision info between ray and model + */ + inline RayHitInfo GetCollision(const ::Ray& ray) const { + return ::GetCollisionRayModel(ray, *this); + } + + /** + * Update model animation pose + */ + inline Model& UpdateAnimation(const ::ModelAnimation& anim, int frame) { + ::UpdateModelAnimation(*this, anim, frame); + return *this; + } + + /** + * Check model animation skeleton match + */ + inline bool IsModelAnimationValid(const ::ModelAnimation& anim) const { + return ::IsModelAnimationValid(*this, anim); + } + + /** + * Draw a model (with texture if set) + */ + inline Model& Draw(::Vector3 position, + float scale = 1.0f, + ::Color tint = {255, 255, 255, 255}) { + ::DrawModel(*this, position, scale, tint); + return *this; + } + + /** + * Draw a model with extended parameters + */ + inline Model& Draw( + ::Vector3 position, + ::Vector3 rotationAxis, + float rotationAngle = 0.0f, + ::Vector3 scale = {1.0f, 1.0f, 1.0f}, + ::Color tint = {255, 255, 255, 255}) { + ::DrawModelEx(*this, position, rotationAxis, rotationAngle, scale, tint); + return *this; + } + + /** + * Draw a model wires (with texture if set) + */ + inline Model& DrawWires(::Vector3 position, + float scale = 1.0f, + ::Color tint = {255, 255, 255, 255}) { + ::DrawModelWires(*this, position, scale, tint); + return *this; + } + + /** + * Draw a model wires (with texture if set) with extended parameters + */ + inline Model& DrawWires( + ::Vector3 position, + ::Vector3 rotationAxis, + float rotationAngle = 0.0f, + ::Vector3 scale = {1.0f, 1.0f, 1.0f}, + ::Color tint = {255, 255, 255, 255}) { + ::DrawModelWiresEx(*this, position, rotationAxis, rotationAngle, scale, tint); + return *this; + } + + private: + inline void set(const ::Model& model) { + transform = model.transform; + + meshCount = model.meshCount; + materialCount = model.materialCount; + meshes = model.meshes; + materials = model.materials; + meshMaterial = model.meshMaterial; + + boneCount = model.boneCount; + bones = model.bones; + bindPose = model.bindPose; + } +}; +} // namespace raylib + +#endif // RAYLIB_CPP_INCLUDE_MODEL_HPP_ diff --git a/raylib-cpp/include/ModelAnimation.hpp b/raylib-cpp/include/ModelAnimation.hpp new file mode 100644 index 00000000..1f57062c --- /dev/null +++ b/raylib-cpp/include/ModelAnimation.hpp @@ -0,0 +1,76 @@ +#ifndef RAYLIB_CPP_INCLUDE_MODELANIMATION_HPP_ +#define RAYLIB_CPP_INCLUDE_MODELANIMATION_HPP_ + +#include +#include + +#include "./raylib.hpp" +#include "./raylib-cpp-utils.hpp" +#include "./Mesh.hpp" + +namespace raylib { +/** + * Model animation + */ +class ModelAnimation : public ::ModelAnimation { + public: + ModelAnimation(const ::ModelAnimation& model) { + set(model); + } + + ~ModelAnimation() { + Unload(); + } + + /** + * Load model animations from file + */ + static std::vector Load(const std::string& fileName) { + int count = 0; + ::ModelAnimation* modelAnimations = ::LoadModelAnimations(fileName.c_str(), &count); + return std::vector(modelAnimations, modelAnimations + count); + } + + GETTERSETTER(int, BoneCount, boneCount) + GETTERSETTER(::BoneInfo*, Bones, bones) + GETTERSETTER(int, FrameCount, frameCount) + GETTERSETTER(::Transform**, FramePoses, framePoses) + + ModelAnimation& operator=(const ::ModelAnimation& model) { + set(model); + return *this; + } + + /** + * Unload animation data + */ + inline void Unload() { + ::UnloadModelAnimation(*this); + } + + /** + * Update model animation pose + */ + inline ModelAnimation& Update(const ::Model& model, int frame) { + ::UpdateModelAnimation(model, *this, frame); + return *this; + } + + /** + * Check model animation skeleton match + */ + inline bool IsValid(const ::Model& model) const { + return ::IsModelAnimationValid(model, *this); + } + + private: + inline void set(const ::ModelAnimation& model) { + boneCount = model.boneCount; + bones = model.bones; + frameCount = model.frameCount; + framePoses = model.framePoses; + } +}; +} // namespace raylib + +#endif // RAYLIB_CPP_INCLUDE_MODELANIMATION_HPP_ diff --git a/raylib-cpp/include/Mouse.hpp b/raylib-cpp/include/Mouse.hpp new file mode 100644 index 00000000..1747dde3 --- /dev/null +++ b/raylib-cpp/include/Mouse.hpp @@ -0,0 +1,92 @@ +#ifndef RAYLIB_CPP_INCLUDE_MOUSE_HPP_ +#define RAYLIB_CPP_INCLUDE_MOUSE_HPP_ + +#include "./raylib.hpp" +#include "./Vector2.hpp" + +namespace raylib { +/** + * Input-related functions: mouse + */ +class Mouse { + public: + /** + * Detect if a mouse button has been pressed once + */ + static inline bool IsButtonPressed(int button) { + return ::IsMouseButtonPressed(button); + } + + /** + * Detect if a mouse button is being pressed + */ + static inline bool IsButtonDown(int button) { + return ::IsMouseButtonDown(button); + } + + /** + * Detect if a mouse button has been released once + */ + static inline bool IsButtonReleased(int button) { + return ::IsMouseButtonReleased(button); + } + + static inline bool IsButtonUp(int button) { + return ::IsMouseButtonUp(button); + } + + static inline int GetX() { + return ::GetMouseX(); + } + + static inline int GetY() { + return ::GetMouseY(); + } + + static inline void SetX(int x) { + ::SetMousePosition(x, GetY()); + } + + static inline void SetY(int y) { + ::SetMousePosition(GetX(), y); + } + + static inline Vector2 GetPosition() { + return ::GetMousePosition(); + } + + static inline void SetPosition(int x, int y) { + ::SetMousePosition(x, y); + } + + static inline void SetOffset(int offsetX, int offsetY) { + ::SetMouseOffset(offsetX, offsetY); + } + + static inline void SetScale(float scaleX, float scaleY) { + ::SetMouseScale(scaleX, scaleY); + } + + static inline float GetWheelMove() { + return ::GetMouseWheelMove(); + } + + static inline void SetCursor(int cursor) { + ::SetMouseCursor(cursor); + } + + static inline int GetTouchX() { + return ::GetTouchX(); + } + + static inline int GetTouchY() { + return ::GetTouchY(); + } + + static inline Vector2 GetTouchPosition(int index) { + return ::GetTouchPosition(index); + } +}; +} // namespace raylib + +#endif // RAYLIB_CPP_INCLUDE_MOUSE_HPP_ diff --git a/raylib-cpp/include/Music.hpp b/raylib-cpp/include/Music.hpp new file mode 100644 index 00000000..0bd10f73 --- /dev/null +++ b/raylib-cpp/include/Music.hpp @@ -0,0 +1,146 @@ +#ifndef RAYLIB_CPP_INCLUDE_MUSIC_HPP_ +#define RAYLIB_CPP_INCLUDE_MUSIC_HPP_ + +#include + +#include "./raylib.hpp" +#include "./raylib-cpp-utils.hpp" + +namespace raylib { +/** + * Music stream type (audio file streaming from memory) + */ +class Music : public ::Music { + public: + Music(const ::Music& music) { + set(music); + } + + /** + * Load music stream from file + */ + Music(const std::string& fileName) { + set(::LoadMusicStream(fileName.c_str())); + } + + /** + * Load music stream from memory + */ + Music(const std::string& fileType, unsigned char* data, int dataSize) { + set(::LoadMusicStreamFromMemory(fileType.c_str(), data, dataSize)); + } + + /** + * Unload music stream + */ + ~Music() { + Unload(); + } + + GETTERSETTER(::AudioStream, Stream, stream) + GETTERSETTER(unsigned int, SampleCount, sampleCount) + GETTERSETTER(bool, Looping, looping) + GETTERSETTER(int, CtxType, ctxType) + GETTERSETTER(void*, CtxData, ctxData) + + Music& operator=(const ::Music& music) { + set(music); + return *this; + } + + /** + * Unload music stream + */ + inline void Unload() { + ::UnloadMusicStream(*this); + } + + /** + * Start music playing + */ + inline Music& Play() { + ::PlayMusicStream(*this); + return *this; + } + + /** + * Updates buffers for music streaming + */ + inline Music& Update() { + ::UpdateMusicStream(*this); + return *this; + } + + /** + * Stop music playing + */ + inline Music& Stop() { + ::StopMusicStream(*this); + return *this; + } + + /** + * Pause music playing + */ + inline Music& Pause() { + ::PauseMusicStream(*this); + return *this; + } + + /** + * Resume music playing + */ + inline Music& Resume() { + ::ResumeMusicStream(*this); + return *this; + } + + /** + * Check if music is playing + */ + inline bool IsPlaying() const { + return ::IsMusicPlaying(*this); + } + + /** + * Set volume for music + */ + inline Music& SetVolume(float volume) { + ::SetMusicVolume(*this, volume); + return *this; + } + + /** + * Set pitch for music + */ + inline Music& SetPitch(float pitch) { + ::SetMusicPitch(*this, pitch); + return *this; + } + + /** + * Get music time length (in seconds) + */ + inline float GetTimeLength() const { + return ::GetMusicTimeLength(*this); + } + + /** + * Get current music time played (in seconds) + */ + inline float GetTimePlayed() const { + return ::GetMusicTimePlayed(*this); + } + + private: + inline void set(const ::Music& music) { + ctxType = music.ctxType; + ctxData = music.ctxData; + looping = music.looping; + sampleCount = music.sampleCount; + stream = music.stream; + } +}; +} // namespace raylib + +#endif // RAYLIB_CPP_INCLUDE_MUSIC_HPP_ diff --git a/raylib-cpp/include/Physics.hpp b/raylib-cpp/include/Physics.hpp new file mode 100644 index 00000000..7d1c5e30 --- /dev/null +++ b/raylib-cpp/include/Physics.hpp @@ -0,0 +1,121 @@ +#ifndef RAYLIB_CPP_INCLUDE_PHYSICS_HPP_ +#define RAYLIB_CPP_INCLUDE_PHYSICS_HPP_ + +#include "./raylib.hpp" +#include "./physac.hpp" +#include "./Vector2.hpp" + +namespace raylib { +/** + * 2D Physics library for videogames + */ +class Physics { + public: + Physics() { + Init(); + } + + Physics(float gravityY) { + Init(); + SetGravity(0, gravityY); + } + + Physics(float gravityX, float gravityY) { + Init(); + SetGravity(gravityX, gravityY); + } + + ~Physics() { + Close(); + } + + inline Physics& Init() { + ::InitPhysics(); + return *this; + } + + inline Physics& Close() { + ::ClosePhysics(); + return *this; + } + + inline Physics& UpdateStep() { + ::UpdatePhysicsStep(); + return *this; + } + + inline Physics& SetTimeStep(double delta) { + ::SetPhysicsTimeStep(delta); + return *this; + } + + inline Physics& SetGravity(float x, float y) { + ::SetPhysicsGravity(x, y); + return *this; + } + + inline PhysicsBody CreateBodyCircle(Vector2 pos, float radius, float density) { + return ::CreatePhysicsBodyCircle(pos, radius, density); + } + + inline PhysicsBody CreateBodyRectangle(Vector2 pos, float width, float height, float density) { + return ::CreatePhysicsBodyRectangle(pos, width, height, density); + } + + inline PhysicsBody CreateBodyPolygon(Vector2 pos, float radius, int sides, float density) { + return ::CreatePhysicsBodyPolygon(pos, radius, sides, density); + } + + inline Physics& AddForce(PhysicsBody body, Vector2 force) { + ::PhysicsAddForce(body, force); + return *this; + } + + inline Physics& AddTorque(PhysicsBody body, float amount) { + ::PhysicsAddTorque(body, amount); + return *this; + } + + inline Physics& Shatter(PhysicsBody body, Vector2 position, float force) { + ::PhysicsShatter(body, position, force); + return *this; + } + + inline int GetBodiesCount() const { + return ::GetPhysicsBodiesCount(); + } + + inline PhysicsBody GetBody(int index) const { + return ::GetPhysicsBody(index); + } + + inline int GetShapeType(int index) const { + return ::GetPhysicsShapeType(index); + } + + inline int GetShapeVerticesCount(int index) const { + return ::GetPhysicsShapeVerticesCount(index); + } + + inline Vector2 GetShapeVertex(PhysicsBody body, int vertex) const { + return ::GetPhysicsShapeVertex(body, vertex); + } + + inline Physics& SetBodyRotation(PhysicsBody body, float radians) { + ::SetPhysicsBodyRotation(body, radians); + return *this; + } + + inline Physics& DestroyBody(PhysicsBody body) { + ::DestroyPhysicsBody(body); + return *this; + } + + inline Physics& Reset() { + ::ResetPhysics(); + return *this; + } +}; +} // namespace raylib + +#endif // RAYLIB_CPP_INCLUDE_PHYSICS_HPP_ diff --git a/raylib-cpp/include/Ray.hpp b/raylib-cpp/include/Ray.hpp new file mode 100644 index 00000000..beb08b9d --- /dev/null +++ b/raylib-cpp/include/Ray.hpp @@ -0,0 +1,94 @@ +#ifndef RAYLIB_CPP_INCLUDE_RAY_HPP_ +#define RAYLIB_CPP_INCLUDE_RAY_HPP_ + +#include "./raylib.hpp" +#include "./raylib-cpp-utils.hpp" +#include "./RayHitInfo.hpp" + +namespace raylib { +/** + * Ray type (useful for raycast) + */ +class Ray : public ::Ray { + public: + Ray(const ::Ray& ray) { + set(ray); + } + + Ray(::Vector3 Position, ::Vector3 Direction) { + position = Position; + direction = Direction; + } + + Ray(::Vector2 mousePosition, ::Camera camera) { + set(::GetMouseRay(mousePosition, camera)); + } + + Ray& operator=(const ::Ray& ray) { + set(ray); + return *this; + } + + GETTERSETTER(::Vector3, Position, position) + GETTERSETTER(::Vector3, Direction, direction) + + /** + * Draw a ray line + */ + inline Ray& Draw(::Color color) { + DrawRay(*this, color); + return *this; + } + + /** + * Detect collision between ray and sphere + */ + inline bool CheckCollisionSphere(::Vector3 center, float radius) const { + return CheckCollisionRaySphere(*this, center, radius); + } + + /** + * Detect collision between ray and sphere, returns collision point + */ + inline bool CheckCollisionSphere(::Vector3 center, float radius, + ::Vector3 *collisionPoint) const { + return CheckCollisionRaySphereEx(*this, center, radius, collisionPoint); + } + + /** + * Detect collision between ray and box + */ + inline bool CheckCollision(const ::BoundingBox& box) const { + return CheckCollisionRayBox(*this, box); + } + + /** + * Get collision info between ray and model + */ + inline RayHitInfo GetCollision(const ::Model& model) const { + return GetCollisionRayModel(*this, model); + } + + /** + * Get collision info between ray and triangle + */ + inline RayHitInfo GetCollisionTriangle(::Vector3 p1, ::Vector3 p2, ::Vector3 p3) const { + return GetCollisionRayTriangle(*this, p1, p2, p3); + } + + /** + * Get collision info between ray and ground plane (Y-normal plane) + */ + inline RayHitInfo GetCollisionGround(float groundHeight) const { + return GetCollisionRayGround(*this, groundHeight); + } + + private: + inline void set(const ::Ray& ray) { + position = ray.position; + direction = ray.direction; + } +}; +} // namespace raylib + +#endif // RAYLIB_CPP_INCLUDE_RAY_HPP_ diff --git a/raylib-cpp/include/RayHitInfo.hpp b/raylib-cpp/include/RayHitInfo.hpp new file mode 100644 index 00000000..35c44d8d --- /dev/null +++ b/raylib-cpp/include/RayHitInfo.hpp @@ -0,0 +1,72 @@ +#ifndef RAYLIB_CPP_INCLUDE_RAYHITINFO_HPP_ +#define RAYLIB_CPP_INCLUDE_RAYHITINFO_HPP_ + +#include "./raylib.hpp" +#include "./raylib-cpp-utils.hpp" + +namespace raylib { +/** + * Raycast hit information + */ +class RayHitInfo : public ::RayHitInfo { + public: + RayHitInfo(const ::RayHitInfo& ray) { + set(ray); + } + + RayHitInfo(bool Hit, float Distance, ::Vector3 Position, ::Vector3 Normal) { + hit = Hit; + distance = Distance; + position = Position; + normal = Normal; + } + + /** + * Get collision info between ray and mesh + */ + RayHitInfo(const ::Ray& ray, const ::Mesh& mesh, const ::Matrix& transform) { + set(::GetCollisionRayMesh(ray, mesh, transform)); + } + + /** + * Get collision info between ray and model + */ + RayHitInfo(const ::Ray& ray, const ::Model& model) { + set(::GetCollisionRayModel(ray, model)); + } + + /** + * Get collision info between ray and triangle + */ + RayHitInfo(const ::Ray& ray, ::Vector3 p1, ::Vector3 p2, ::Vector3 p3) { + set(::GetCollisionRayTriangle(ray, p1, p2, p3)); + } + + /** + * Get collision info between ray and ground plane (Y-normal plane) + */ + RayHitInfo(const ::Ray& ray, float groundHeight) { + set(::GetCollisionRayGround(ray, groundHeight)); + } + + RayHitInfo& operator=(const ::RayHitInfo& ray) { + set(ray); + return *this; + } + + GETTERSETTER(bool, Hit, hit) + GETTERSETTER(float, Distance, distance) + GETTERSETTER(::Vector3, Position, position) + GETTERSETTER(::Vector3, Normal, normal) + + private: + inline void set(const ::RayHitInfo& ray) { + hit = ray.hit; + distance = ray.distance; + position = ray.position; + normal = ray.normal; + } +}; +} // namespace raylib + +#endif // RAYLIB_CPP_INCLUDE_RAYHITINFO_HPP_ diff --git a/raylib-cpp/include/Rectangle.hpp b/raylib-cpp/include/Rectangle.hpp new file mode 100644 index 00000000..986b5104 --- /dev/null +++ b/raylib-cpp/include/Rectangle.hpp @@ -0,0 +1,165 @@ +#ifndef RAYLIB_CPP_INCLUDE_RECTANGLE_HPP_ +#define RAYLIB_CPP_INCLUDE_RECTANGLE_HPP_ + +#include "./raylib.hpp" +#include "./raylib-cpp-utils.hpp" +#include "./Vector2.hpp" + +namespace raylib { +/** + * Rectangle type + */ +class Rectangle : public ::Rectangle { + public: + Rectangle(const ::Rectangle& vec) { + set(vec); + } + + Rectangle(float x, float y, float width, float height) : ::Rectangle{x, y, width, height} {} + Rectangle(float x, float y, float width) : ::Rectangle{x, y, width, 0} {} + Rectangle(float x, float y) : ::Rectangle{x, y, 0, 0} {} + Rectangle(float x) : ::Rectangle{x, 0, 0, 0} {} + Rectangle() : ::Rectangle{0, 0, 0, 0} {} + + Rectangle(::Vector2 position, ::Vector2 size) + : ::Rectangle{position.x, position.y, size.x, size.y} {} + Rectangle(::Vector2 size) : ::Rectangle{0, 0, size.x, size.y} {} + + GETTERSETTER(float, X, x) + GETTERSETTER(float, Y, y) + GETTERSETTER(float, Width, width) + GETTERSETTER(float, Height, height) + + Rectangle& operator=(const ::Rectangle& rect) { + set(rect); + return *this; + } + + inline ::Vector4 ToVector4() { + return {x, y, width, height}; + } + + operator ::Vector4() const { + return {x, y, width, height}; + } + + /** + * Draw a color-filled rectangle + */ + inline Rectangle& Draw(::Color color) { + ::DrawRectangle(static_cast(x), static_cast(y), static_cast(width), + static_cast(height), color); + return *this; + } + + inline Rectangle& Draw(::Vector2 origin, float rotation, ::Color color) { + ::DrawRectanglePro(*this, origin, rotation, color); + return *this; + } + + inline Rectangle& DrawGradientV(::Color color1, ::Color color2) { + ::DrawRectangleGradientV(static_cast(x), static_cast(y), static_cast(width), + static_cast(height), color1, color2); + return *this; + } + + inline Rectangle& DrawGradientH(::Color color1, ::Color color2) { + ::DrawRectangleGradientH(static_cast(x), static_cast(y), static_cast(width), + static_cast(height), color1, color2); + return *this; + } + + inline Rectangle& DrawGradient(::Color col1, ::Color col2, ::Color col3, ::Color col4) { + ::DrawRectangleGradientEx(*this, col1, col2, col3, col4); + return *this; + } + + inline Rectangle& DrawLines(::Color color) { + ::DrawRectangleLines(static_cast(x), static_cast(y), static_cast(width), + static_cast(height), color); + return *this; + } + + inline Rectangle& DrawLines(::Color color, int lineThick) { + ::DrawRectangleLinesEx(*this, lineThick, color); + return *this; + } + + inline Rectangle& DrawRounded(float roundness, int segments, ::Color color) { + ::DrawRectangleRounded(*this, roundness, segments, color); + return *this; + } + + inline Rectangle& DrawRoundedLines(float roundness, int segments, int lineThick, + ::Color color) { + ::DrawRectangleRoundedLines(*this, roundness, segments, lineThick, color); + return *this; + } + + /** + * Check collision between two rectangles + */ + inline bool CheckCollision(::Rectangle rec2) const { + return ::CheckCollisionRecs(*this, rec2); + } + + /** + * Get collision rectangle for two rectangles collision + */ + inline ::Rectangle GetCollision(::Rectangle rec2) const { + return ::GetCollisionRec(*this, rec2); + } + + /** + * Check if point is inside rectangle + */ + inline bool CheckCollision(::Vector2 point) const { + return ::CheckCollisionPointRec(point, *this); + } + + /** + * Check collision between circle and rectangle + */ + inline bool CheckCollision(::Vector2 center, float radius) { + return ::CheckCollisionCircleRec(center, radius, *this); + } + + inline ::Vector2 GetSize() { + return {width, height}; + } + + inline Rectangle& SetSize(float newWidth, float newHeight) { + width = newWidth; + height = newHeight; + return *this; + } + + inline Rectangle& SetSize(const ::Vector2& size) { + return SetSize(size.x, size.y); + } + + inline ::Vector2 GetPosition() { + return {x, y}; + } + + inline Rectangle& SetPosition(float newX, float newY) { + x = newX; + y = newY; + return *this; + } + + inline Rectangle& SetPosition(const ::Vector2& position) { + return SetPosition(position.x, position.y); + } + + private: + inline void set(const ::Rectangle& rect) { + x = rect.x; + y = rect.y; + width = rect.width; + height = rect.height; + } +}; +} // namespace raylib + +#endif // RAYLIB_CPP_INCLUDE_RECTANGLE_HPP_ diff --git a/raylib-cpp/include/RenderTexture.hpp b/raylib-cpp/include/RenderTexture.hpp new file mode 100644 index 00000000..75c8a6dc --- /dev/null +++ b/raylib-cpp/include/RenderTexture.hpp @@ -0,0 +1,68 @@ +#ifndef RAYLIB_CPP_INCLUDE_RENDERTEXTURE_HPP_ +#define RAYLIB_CPP_INCLUDE_RENDERTEXTURE_HPP_ + +#include "./raylib.hpp" +#include "./raylib-cpp-utils.hpp" + +namespace raylib { +/** + * RenderTexture type, for texture rendering + */ +class RenderTexture : public ::RenderTexture { + public: + RenderTexture(const ::RenderTexture& renderTexture) { + set(renderTexture); + } + + RenderTexture(unsigned int Id) { + id = Id; + } + + RenderTexture(int width, int height) { + set(LoadRenderTexture(width, height)); + } + + GETTERSETTER(unsigned int, Id, id) + GETTERSETTER(::Texture2D, Texture, texture) + GETTERSETTER(::Texture2D, Depth, depth) + + RenderTexture& operator=(const ::RenderTexture& texture) { + set(texture); + return *this; + } + + ~RenderTexture() { + Unload(); + } + + inline void Unload() { + UnloadRenderTexture(*this); + } + + /** + * Initializes render texture for drawing + */ + inline RenderTexture& BeginMode() { + ::BeginTextureMode(*this); + return *this; + } + + /** + * Ends drawing to render texture + */ + inline RenderTexture& EndMode() { + ::EndTextureMode(); + return *this; + } + + private: + inline void set(const ::RenderTexture& renderTexture) { + id = renderTexture.id; + texture = renderTexture.texture; + depth = renderTexture.depth; + } +}; +typedef RenderTexture RenderTexture2D; +} // namespace raylib + +#endif // RAYLIB_CPP_INCLUDE_RENDERTEXTURE_HPP_ diff --git a/raylib-cpp/include/Shader.hpp b/raylib-cpp/include/Shader.hpp new file mode 100644 index 00000000..57dfae1e --- /dev/null +++ b/raylib-cpp/include/Shader.hpp @@ -0,0 +1,140 @@ +#ifndef RAYLIB_CPP_INCLUDE_SHADER_HPP_ +#define RAYLIB_CPP_INCLUDE_SHADER_HPP_ + +#include + +#include "./raylib.hpp" +#include "./raylib-cpp-utils.hpp" +#include "Texture.hpp" + +namespace raylib { +/** + * Shader type (generic) + */ +class Shader : public ::Shader { + public: + Shader(const ::Shader& shader) { + set(shader); + } + + Shader(unsigned int Id, int* Locs) { + id = Id; + locs = Locs; + } + + Shader(const std::string& vsFileName, const std::string& fsFileName) { + set(::LoadShader(vsFileName.c_str(), fsFileName.c_str())); + } + + /** + * Load shader from files and bind default locations. + */ + static ::Shader Load(const std::string& vsFileName, const std::string& fsFileName) { + return ::LoadShader(vsFileName.c_str(), fsFileName.c_str()); + } + + static ::Shader LoadFromMemory(const std::string& vsCode, const std::string& fsCode) { + return ::LoadShaderFromMemory(vsCode.c_str(), fsCode.c_str()); + } + + GETTERSETTER(unsigned int, Id, id) + GETTERSETTER(int*, Locs, locs) + + Shader& operator=(const ::Shader& shader) { + set(shader); + return *this; + } + + ~Shader() { + Unload(); + } + + void Unload() { + if (locs != NULL) { + ::UnloadShader(*this); + } + } + + /** + * Begin custom shader drawing. + */ + inline Shader& BeginMode() { + ::BeginShaderMode(*this); + return *this; + } + + /** + * End custom shader drawing (use default shader). + */ + inline Shader& EndMode() { + ::EndShaderMode(); + return *this; + } + + /** + * Get shader uniform location + * + * @see GetShaderLocation() + */ + inline int GetLocation(const std::string& uniformName) const { + return ::GetShaderLocation(*this, uniformName.c_str()); + } + + /** + * Get shader attribute location + * + * @see GetShaderLocationAttrib() + */ + inline int GetLocationAttrib(const std::string& attribName) const { + return ::GetShaderLocationAttrib(*this, attribName.c_str()); + } + + /** + * Set shader uniform value + * + * @see SetShaderValue() + */ + inline Shader& SetValue(int uniformLoc, const std::string& value, int uniformType) { + ::SetShaderValue(*this, uniformLoc, value.c_str(), uniformType); + return *this; + } + + /** + * Set shader uniform value vector + * + * @see SetShaderValueV() + */ + inline Shader& SetValue(int uniformLoc, const std::string& value, int uniformType, int count) { + ::SetShaderValueV(*this, uniformLoc, value.c_str(), uniformType, count); + return *this; + } + + /** + * Set shader uniform value (matrix 4x4) + * + * @see SetShaderValueMatrix() + */ + inline Shader& SetValue(int uniformLoc, const ::Matrix& mat) { + ::SetShaderValueMatrix(*this, uniformLoc, mat); + return *this; + } + + /** + * Set shader uniform value for texture + * + * @see SetShaderValueTexture() + */ + inline Shader& SetValue(int uniformLoc, const ::Texture2D& texture) { + ::SetShaderValueTexture(*this, uniformLoc, texture); + return *this; + } + + private: + inline void set(const ::Shader& shader) { + id = shader.id; + locs = shader.locs; + } +}; +} // namespace raylib + +#endif // RAYLIB_CPP_INCLUDE_SHADER_HPP_ diff --git a/raylib-cpp/include/Sound.hpp b/raylib-cpp/include/Sound.hpp new file mode 100644 index 00000000..29b9184e --- /dev/null +++ b/raylib-cpp/include/Sound.hpp @@ -0,0 +1,146 @@ +#ifndef RAYLIB_CPP_INCLUDE_SOUND_HPP_ +#define RAYLIB_CPP_INCLUDE_SOUND_HPP_ + +#include + +#include "./raylib.hpp" +#include "./raylib-cpp-utils.hpp" + +namespace raylib { +/** + * Wave/Sound management functions + * + * @code + * raylib::Sound boom("boom.wav"); + * boom.Play(); + * @endcode + */ +class Sound : public ::Sound { + public: + Sound(const ::Sound& vec) { + set(vec); + } + + Sound(const std::string& fileName) { + set(LoadSound(fileName.c_str())); + } + + Sound(const ::Wave& wave) { + set(LoadSoundFromWave(wave)); + } + + ~Sound() { + Unload(); + } + + GETTERSETTER(unsigned int, SampleCount, sampleCount) + GETTERSETTER(::AudioStream, Stream, stream) + + Sound& operator=(const ::Sound& sound) { + set(sound); + return *this; + } + + /** + * Update sound buffer with new data + */ + inline Sound& Update(const void *data, int sampleCount) { + ::UpdateSound(*this, data, sampleCount); + return *this; + } + + /** + * Update sound buffer with new data, assuming it's the same sample count. + */ + inline Sound& Update(const void *data) { + ::UpdateSound(*this, data, sampleCount); + return *this; + } + + /** + * Unload sound + */ + inline void Unload() { + ::UnloadSound(*this); + } + + /** + * Play a sound + */ + inline Sound& Play() { + ::PlaySound(*this); + return *this; + } + + /** + * Stop playing a sound + */ + inline Sound& Stop() { + ::StopSound(*this); + return *this; + } + + /** + * Pause a sound + */ + inline Sound& Pause() { + ::PauseSound(*this); + return *this; + } + + /** + * Resume a paused sound + */ + inline Sound& Resume() { + ::ResumeSound(*this); + return *this; + } + + /** + * Play a sound (using multichannel buffer pool) + */ + inline Sound& PlayMulti() { + ::PlaySoundMulti(*this); + return *this; + } + + /** + * Stop any sound playing (using multichannel buffer pool) + */ + inline Sound& StopMulti() { + ::StopSoundMulti(); + return *this; + } + + /** + * Check if a sound is currently playing + */ + inline bool IsPlaying() const { + return ::IsSoundPlaying(*this); + } + + /** + * Set volume for a sound (1.0 is max level) + */ + inline Sound& SetVolume(float volume) { + ::SetSoundVolume(*this, volume); + return *this; + } + + /** + * Set pitch for a sound (1.0 is base level) + */ + inline Sound& SetPitch(float pitch) { + ::SetSoundPitch(*this, pitch); + return *this; + } + + private: + inline void set(const ::Sound& sound) { + sampleCount = sound.sampleCount; + stream = sound.stream; + } +}; +} // namespace raylib + +#endif // RAYLIB_CPP_INCLUDE_SOUND_HPP_ diff --git a/raylib-cpp/include/Text.hpp b/raylib-cpp/include/Text.hpp new file mode 100644 index 00000000..197d80bd --- /dev/null +++ b/raylib-cpp/include/Text.hpp @@ -0,0 +1,57 @@ +/** + * Text drawing functions + */ +#ifndef RAYLIB_CPP_INCLUDE_TEXT_HPP_ +#define RAYLIB_CPP_INCLUDE_TEXT_HPP_ + +#include + +#include "./raylib.hpp" + +/** + * Allow changing the declare type for all raylib-cpp global functions. Defaults to static. + */ +#ifndef RLCPPAPI +#define RLCPPAPI static +#endif + +namespace raylib { + +/** + * Draw text (using default font) + */ +RLCPPAPI inline void DrawText( + const std::string& title, + int posX, + int posY, + int fontSize, + ::Color color) { + ::DrawText(title.c_str(), posX, posY, fontSize, color); +} + +/** + * Measure string width for default font + */ +RLCPPAPI inline int MeasureText(const std::string& text, int fontSize) { + return ::MeasureText(text.c_str(), fontSize); +} + +/** + * Check if two text string are equal + */ +RLCPPAPI inline bool TextIsEqual(const std::string& text1, const std::string& text2) { + return ::TextIsEqual(text1.c_str(), text2.c_str()); +} + +/** + * Check if two text string are equal + */ +RLCPPAPI inline unsigned int TextLength(const std::string& text) { + return ::TextLength(text.c_str()); +} + +// TODO(RobLoach): Add remaining raylib C functions with string c_str() wrappers. + +} // namespace raylib + +#endif // RAYLIB_CPP_INCLUDE_TEXT_HPP_ diff --git a/raylib-cpp/include/Texture.hpp b/raylib-cpp/include/Texture.hpp new file mode 100644 index 00000000..423037da --- /dev/null +++ b/raylib-cpp/include/Texture.hpp @@ -0,0 +1,243 @@ +#ifndef RAYLIB_CPP_INCLUDE_TEXTURE_HPP_ +#define RAYLIB_CPP_INCLUDE_TEXTURE_HPP_ + +#include + +#include "./raylib.hpp" +#include "./raylib-cpp-utils.hpp" +#include "./Vector2.hpp" +#include "./Material.hpp" + +namespace raylib { +/** + * Texture type + */ +class Texture : public ::Texture { + public: + Texture(const ::Texture& texture) { + set(texture); + } + + Texture(const ::Image& image) { + LoadFromImage(image); + } + + /** + * Load cubemap from image, multiple image cubemap layouts supported. + * + * @see LoadTextureCubemap() + */ + Texture(const ::Image& image, int layout) { + LoadCubemap(image, layout); + } + + /** + * Load texture from file into GPU memory (VRAM) + */ + Texture(const std::string& fileName) { + Load(fileName); + } + + ~Texture() { + Unload(); + } + + GETTERSETTER(unsigned int, Id, id) + GETTERSETTER(int, Width, width) + GETTERSETTER(int, Height, height) + GETTERSETTER(int, Mipmaps, mipmaps) + GETTERSETTER(int, Format, format) + + Texture& operator=(const ::Texture& texture) { + set(texture); + return *this; + } + + /** + * Retrieve the width and height of the texture. + */ + inline ::Vector2 GetSize() { + return {static_cast(width), static_cast(height)}; + } + + /** + * Load texture from image data + */ + void LoadFromImage(const ::Image& image) { + set(::LoadTextureFromImage(image)); + } + + /** + * Load cubemap from image, multiple image cubemap layouts supported + */ + void LoadCubemap(const ::Image& image, int layoutType) { + set(::LoadTextureCubemap(image, layoutType)); + } + + /** + * Load texture from file into GPU memory (VRAM) + */ + void Load(const std::string& fileName) { + set(::LoadTexture(fileName.c_str())); + } + + /** + * Unload texture from GPU memory (VRAM) + */ + inline void Unload() { + ::UnloadTexture(*this); + } + + /** + * Update GPU texture with new data + */ + inline Texture& Update(const void *pixels) { + ::UpdateTexture(*this, pixels); + return *this; + } + + /** + * Update GPU texture rectangle with new data + */ + inline Texture& UpdateRec(::Rectangle rec, const void *pixels) { + UpdateTextureRec(*this, rec, pixels); + return *this; + } + + /** + * Get pixel data from GPU texture and return an Image + */ + inline ::Image GetData() const { + return ::GetTextureData(*this); + } + + /** + * Get pixel data from GPU texture and return an Image + */ + inline operator raylib::Image() { + return GetData(); + } + + /** + * Generate GPU mipmaps for a texture + */ + inline Texture& GenMipmaps() { + ::GenTextureMipmaps(this); + return *this; + } + + /** + * Set texture scaling filter mode + */ + inline Texture& SetFilter(int filterMode) { + ::SetTextureFilter(*this, filterMode); + return *this; + } + + /** + * Set texture wrapping mode + */ + inline Texture& SetWrap(int wrapMode) { + ::SetTextureWrap(*this, wrapMode); + return *this; + } + + /** + * Draws the texture at the top left corner of the screen. + */ + inline Texture& Draw() { + return Draw(0, 0); + } + + /** + * Draw a Texture2D + */ + inline Texture& Draw(int posX, int posY, ::Color tint = {255, 255, 255, 255}) { + ::DrawTexture(*this, posX, posY, tint); + return *this; + } + + inline Texture& Draw(::Vector2 position, ::Color tint = {255, 255, 255, 255}) { + ::DrawTextureV(*this, position, tint); + return *this; + } + + inline Texture& Draw(::Vector2 position, float rotation, float scale = 1.0f, + ::Color tint = {255, 255, 255, 255}) { + ::DrawTextureEx(*this, position, rotation, scale, tint); + return *this; + } + + inline Texture& Draw(::Rectangle sourceRec, ::Vector2 position = {0, 0}, + ::Color tint = {255, 255, 255, 255}) { + ::DrawTextureRec(*this, sourceRec, position, tint); + return *this; + } + + inline Texture& Draw(::Vector2 tiling, ::Vector2 offset, ::Rectangle quad, + ::Color tint = {255, 255, 255, 255}) { + ::DrawTextureQuad(*this, tiling, offset, quad, tint); + return *this; + } + + inline Texture& Draw(::Rectangle sourceRec, ::Rectangle destRec, ::Vector2 origin = {0, 0}, + float rotation = 0, ::Color tint = {255, 255, 255, 255}) { + ::DrawTexturePro(*this, sourceRec, destRec, origin, rotation, tint); + return *this; + } + + inline Texture& Draw(::NPatchInfo nPatchInfo, ::Rectangle destRec, ::Vector2 origin = {0, 0}, + float rotation = 0, ::Color tint = {255, 255, 255, 255}) { + ::DrawTextureNPatch(*this, nPatchInfo, destRec, origin, rotation, tint); + return *this; + } + + inline Texture& Draw(::Vector3 position, float width, float height, float length, + ::Color tint = {255, 255, 255, 255}) { + ::DrawCubeTexture(*this, position, width, height, length, tint); + return *this; + } + + inline Texture& DrawTiled(::Rectangle sourceRec, ::Rectangle destRec, ::Vector2 origin = {0, 0}, + float rotation = 0, float scale = 1, Color tint = {255, 255, 255, 255}) { + ::DrawTextureTiled(*this, sourceRec, destRec, origin, rotation, scale, tint); + return *this; + } + + inline Texture& DrawPoly(Vector2 center, Vector2 *points, + Vector2 *texcoords, int pointsCount, + Color tint = {255, 255, 255, 255}) { + ::DrawTexturePoly(*this, center, points, texcoords, pointsCount, tint); + return *this; + } + + /** + * Set texture for a material map type (MAP_DIFFUSE, MAP_SPECULAR...) + */ + inline Texture& SetMaterial(::Material *material, int mapType = MATERIAL_MAP_NORMAL) { + ::SetMaterialTexture(material, mapType, *this); + return *this; + } + + inline Texture& SetMaterial(const ::Material& material, int mapType = MATERIAL_MAP_NORMAL) { + ::SetMaterialTexture((::Material*)(&material), mapType, *this); + return *this; + } + + private: + inline void set(const ::Texture& texture) { + id = texture.id; + width = texture.width; + height = texture.height; + mipmaps = texture.mipmaps; + format = texture.format; + } +}; + +// Create the Texture aliases. +typedef Texture Texture2D; +typedef Texture TextureCubemap; + +} // namespace raylib + +#endif // RAYLIB_CPP_INCLUDE_TEXTURE_HPP_ diff --git a/raylib-cpp/include/Vector2.hpp b/raylib-cpp/include/Vector2.hpp new file mode 100644 index 00000000..849f19a3 --- /dev/null +++ b/raylib-cpp/include/Vector2.hpp @@ -0,0 +1,329 @@ +#ifndef RAYLIB_CPP_INCLUDE_VECTOR2_HPP_ +#define RAYLIB_CPP_INCLUDE_VECTOR2_HPP_ + +#ifndef RAYLIB_CPP_NO_MATH +#include +#endif + +#include "./raylib.hpp" +#include "./raymath.hpp" +#include "./raylib-cpp-utils.hpp" + +namespace raylib { +/** + * Vector2 type + */ +class Vector2 : public ::Vector2 { + public: + Vector2(const ::Vector2& vec) { + set(vec); + } + + Vector2(float x, float y) : ::Vector2{x, y} {} + Vector2(float x) : ::Vector2{x, 0} {} + Vector2() : ::Vector2{0, 0} {} + + GETTERSETTER(float, X, x) + GETTERSETTER(float, Y, y) + + Vector2& operator=(const ::Vector2& vector2) { + set(vector2); + return *this; + } + + bool operator==(const ::Vector2& other) { + return x == other.x + && y == other.y; + } + +#ifndef RAYLIB_CPP_NO_MATH + Vector2 Add(const ::Vector2& vector2) const { + return Vector2Add(*this, vector2); + } + + Vector2 operator+(const ::Vector2& vector2) { + return Vector2Add(*this, vector2); + } + + Vector2 Subtract(const ::Vector2& vector2) const { + return Vector2Subtract(*this, vector2); + } + + Vector2 operator-(const ::Vector2& vector2) { + return Vector2Subtract(*this, vector2); + } + + Vector2 Negate() const { + return Vector2Negate(*this); + } + + Vector2 operator-() { + return Vector2Negate(*this); + } + + Vector2 Multiply(const ::Vector2& vector2) const { + return Vector2Multiply(*this, vector2); + } + + Vector2 operator*(const ::Vector2& vector2) { + return Vector2Multiply(*this, vector2); + } + + Vector2 Scale(const float scale) const { + return Vector2Scale(*this, scale); + } + + Vector2 operator*(const float scale) { + return Vector2Scale(*this, scale); + } + + Vector2 Divide(const ::Vector2& vector2) const { + return Vector2Divide(*this, vector2); + } + + Vector2 operator/(const ::Vector2& vector2) { + return Vector2Divide(*this, vector2); + } + + Vector2& Divide(const float div) { + x /= div; + y /= div; + + return *this; + } + + Vector2& operator/(const float div) { + x /= div; + y /= div; + + return *this; + } + + Vector2& operator+=(const ::Vector2& vector2) { + set(Vector2Add(*this, vector2)); + + return *this; + } + + Vector2& operator-=(const ::Vector2& vector2) { + set(Vector2Subtract(*this, vector2)); + + return *this; + } + + + Vector2& operator*=(const ::Vector2& vector2) { + set(Vector2Multiply(*this, vector2)); + + return *this; + } + + Vector2& operator*=(const float scale) { + set(Vector2Scale(*this, scale)); + + return *this; + } + + Vector2& operator/=(const ::Vector2& vector2) { + set(Vector2Divide(*this, vector2)); + + return *this; + } + + Vector2& operator/=(const float div) { + this->x /= div; + this->y /= div; + + return *this; + } + + /** + * Calculate vector length + */ + float Length() const { + return Vector2Length(*this); + } + + /** + * Calculate vector square length + */ + float LengthSqr() const { + return Vector2LengthSqr(*this); + } + + /** + * Normalize provided vector + */ + Vector2 Normalize() const { + return Vector2Normalize(*this); + } + + /** + * Calculate two vectors dot product + */ + float DotProduct(const ::Vector2& vector2) const { + return Vector2DotProduct(*this, vector2); + } + + /** + * Calculate angle from two vectors in X-axis + */ + float Angle(const ::Vector2& vector2) const { + return Vector2Angle(*this, vector2); + } + + /** + * Calculate distance between two vectors + */ + float Distance(const ::Vector2& vector2) const { + return Vector2Distance(*this, vector2); + } + + /** + * Calculate linear interpolation between two vectors + */ + Vector2 Lerp(const ::Vector2& vector2, float amount) const { + return Vector2Lerp(*this, vector2, amount); + } + + /** + * Calculate reflected vector to normal + */ + Vector2 Reflect(const ::Vector2& normal) const { + return Vector2Reflect(*this, normal); + } + + /** + * Rotate Vector by float in Degrees + */ + Vector2 Rotate(float degrees) const { + return Vector2Rotate(*this, degrees); + } + + /** + * Move Vector towards target + */ + Vector2 MoveTowards(const ::Vector2& target, float maxDistance) const { + return Vector2MoveTowards(*this, target, maxDistance); + } + + /** + * Vector with components value 0.0f + */ + static Vector2 Zero() { + return Vector2Zero(); + } + + /** + * Vector with components value 1.0f + */ + static Vector2 One() { + return Vector2One(); + } +#endif + + inline Vector2& DrawPixel(::Color color) { + ::DrawPixelV(*this, color); + return *this; + } + + inline Vector2& DrawLine(::Vector2 endPos, ::Color color) { + ::DrawLineV(*this, endPos, color); + return *this; + } + + inline Vector2& DrawLine(::Vector2 endPos, float thick, ::Color color) { + ::DrawLineEx(*this, endPos, thick, color); + return *this; + } + + inline Vector2& DrawLineBezier(::Vector2 endPos, float thick, ::Color color) { + ::DrawLineBezier(*this, endPos, thick, color); + return *this; + } + + /** + * Draw line using quadratic bezier curves with a control point. + */ + inline Vector2& DrawLineBezierQuad( + ::Vector2 endPos, + ::Vector2 controlPos, + float thick, + ::Color color) { + ::DrawLineBezierQuad(*this, endPos, controlPos, thick, color); + return *this; + } + + /** + * Draw a color-filled circle (Vector version) + */ + inline Vector2& DrawCircle(float radius, ::Color color) { + ::DrawCircleV(*this, radius, color); + return *this; + } + + inline Vector2& DrawRectangle(::Vector2 size, ::Color color) { + ::DrawRectangleV(*this, size, color); + return *this; + } + + inline Vector2& DrawPoly(int sides, float radius, float rotation, ::Color color) { + ::DrawPoly(*this, sides, radius, rotation, color); + return *this; + } + + /** + * Check collision between two circles + */ + inline bool CheckCollisionCircle(float radius1, ::Vector2 center2, float radius2) const { + return ::CheckCollisionCircles(*this, radius1, center2, radius2); + } + + /** + * Check collision between circle and rectangle + */ + inline bool CheckCollisionCircle(float radius, ::Rectangle rec) const { + return ::CheckCollisionCircleRec(*this, radius, rec); + } + + /** + * Check if point is inside rectangle + */ + inline bool CheckCollision(::Rectangle rec) const { + return ::CheckCollisionPointRec(*this, rec); + } + + /** + * Check if point is inside circle + */ + inline bool CheckCollision(::Vector2 center, float radius) const { + return ::CheckCollisionPointCircle(*this, center, radius); + } + + /** + * Check if point is inside a triangle + */ + inline bool CheckCollision(::Vector2 p1, ::Vector2 p2, ::Vector2 p3) const { + return ::CheckCollisionPointTriangle(*this, p1, p2, p3); + } + + /** + * Check the collision between two lines defined by two points each, returns collision point by reference + */ + inline bool CheckCollisionLines( + ::Vector2 endPos1, + ::Vector2 startPos2, ::Vector2 endPos2, + ::Vector2 *collisionPoint) const { + return ::CheckCollisionLines(*this, endPos1, startPos2, endPos2, collisionPoint); + } + + private: + inline void set(const ::Vector2& vec) { + x = vec.x; + y = vec.y; + } +}; + +} // namespace raylib + +#endif // RAYLIB_CPP_INCLUDE_VECTOR2_HPP_ diff --git a/raylib-cpp/include/Vector3.hpp b/raylib-cpp/include/Vector3.hpp new file mode 100644 index 00000000..fe6e9bb6 --- /dev/null +++ b/raylib-cpp/include/Vector3.hpp @@ -0,0 +1,310 @@ +#ifndef RAYLIB_CPP_INCLUDE_VECTOR3_HPP_ +#define RAYLIB_CPP_INCLUDE_VECTOR3_HPP_ + +#ifndef RAYLIB_CPP_NO_MATH +#include +#endif + +#include "./raylib.hpp" +#include "./raymath.hpp" +#include "./raylib-cpp-utils.hpp" + +namespace raylib { +/** + * Vector3 type + */ +class Vector3 : public ::Vector3 { + public: + Vector3(const ::Vector3& vec) { + set(vec); + } + + Vector3(float x, float y, float z) : ::Vector3{x, y, z} {} + Vector3(float x, float y) : ::Vector3{x, y, 0} {} + Vector3(float x) : ::Vector3{x, 0, 0} {} + Vector3() {} + + Vector3(::Color color) { + set(ColorToHSV(color)); + } + + GETTERSETTER(float, X, x) + GETTERSETTER(float, Y, y) + GETTERSETTER(float, Z, z) + + Vector3& operator=(const ::Vector3& vector3) { + set(vector3); + return *this; + } + + bool operator==(const ::Vector3& other) { + return x == other.x + && y == other.y + && z == other.z; + } + +#ifndef RAYLIB_CPP_NO_MATH + Vector3 Add(const ::Vector3& vector3) { + return Vector3Add(*this, vector3); + } + + Vector3 operator+(const ::Vector3& vector3) { + return Vector3Add(*this, vector3); + } + + Vector3 Subtract(const ::Vector3& vector3) { + return Vector3Subtract(*this, vector3); + } + + Vector3 operator-(const ::Vector3& vector3) { + return Vector3Subtract(*this, vector3); + } + + Vector3 Negate() { + return Vector3Negate(*this); + } + + Vector3 operator-() { + return Vector3Negate(*this); + } + + Vector3 Multiply(const ::Vector3& vector3) { + return Vector3Multiply(*this, vector3); + } + + Vector3 operator*(const ::Vector3& vector3) { + return Vector3Multiply(*this, vector3); + } + + Vector3 Scale(const float scale) { + return Vector3Scale(*this, scale); + } + + Vector3 operator*(const float scale) { + return Vector3Scale(*this, scale); + } + + Vector3 Divide(const ::Vector3& vector3) { + return Vector3Divide(*this, vector3); + } + + Vector3 operator/(const ::Vector3& vector3) { + return Vector3Divide(*this, vector3); + } + + Vector3& Divide(const float div) { + x /= div; + y /= div; + z /= div; + + return *this; + } + + Vector3 operator/(const float div) { + return Divide(div); + } + + Vector3& operator+=(const ::Vector3& vector3) { + set(Vector3Add(*this, vector3)); + + return *this; + } + + Vector3& operator-=(const ::Vector3& vector3) { + set(Vector3Subtract(*this, vector3)); + + return *this; + } + + + Vector3& operator*=(const ::Vector3& vector3) { + set(Vector3Multiply(*this, vector3)); + + return *this; + } + + Vector3& operator*=(const float scale) { + set(Vector3Scale(*this, scale)); + + return *this; + } + + Vector3& operator/=(const ::Vector3& vector3) { + x /= vector3.x; + y /= vector3.y; + z /= vector3.z; + + return *this; + } + + Vector3& operator/=(const float div) { + x /= div; + y /= div; + z /= div; + + return *this; + } + + float Length() const { + return Vector3Length(*this); + } + + Vector3 Normalize() { + return Vector3Normalize(*this); + } + + float DotProduct(const ::Vector3& vector3) { + return Vector3DotProduct(*this, vector3); + } + + float Distance(const ::Vector3& vector3) { + return Vector3Distance(*this, vector3); + } + + Vector3 Lerp(const ::Vector3& vector3, const float amount) { + return Vector3Lerp(*this, vector3, amount); + } + + Vector3 CrossProduct(const ::Vector3& vector3) { + return Vector3CrossProduct(*this, vector3); + } + + Vector3 Perpendicular() { + return Vector3Perpendicular(*this); + } + + void OrthoNormalize(::Vector3* vector3) { + Vector3OrthoNormalize(this, vector3); + } + + Vector3 Transform(const ::Matrix& matrix) { + return Vector3Transform(*this, matrix); + } + + Vector3 RotateByQuaternion(const ::Quaternion& quaternion) { + return Vector3RotateByQuaternion(*this, quaternion); + } + + Vector3 Reflect(const ::Vector3& normal) { + return Vector3Reflect(*this, normal); + } + + Vector3 Min(const ::Vector3& vector3) { + return Vector3Min(*this, vector3); + } + + Vector3 Max(const ::Vector3& vector3) { + return Vector3Max(*this, vector3); + } + + Vector3 Barycenter(const ::Vector3& a, const ::Vector3& b, const ::Vector3& c) { + return Vector3Barycenter(*this, a, b, c); + } + + static Vector3 Zero() { + return Vector3Zero(); + } + + static Vector3 One() { + return Vector3One(); + } +#endif + + inline Vector3& DrawLine3D(const ::Vector3& endPos, ::Color color) { + ::DrawLine3D(*this, endPos, color); + return *this; + } + + inline Vector3& DrawPoint3D(::Color color) { + ::DrawPoint3D(*this, color); + return *this; + } + + inline Vector3& DrawCircle3D( + float radius, + const ::Vector3& rotationAxis, + float rotationAngle, + Color color) { + ::DrawCircle3D(*this, radius, rotationAxis, rotationAngle, color); + return *this; + } + + inline Vector3& DrawCube(float width, float height, float length, ::Color color) { + ::DrawCube(*this, width, height, length, color); + return *this; + } + + inline Vector3& DrawCube(const ::Vector3& size, ::Color color) { + ::DrawCubeV(*this, size, color); + return *this; + } + + inline Vector3& DrawCubeWires(float width, float height, float length, ::Color color) { + ::DrawCubeWires(*this, width, height, length, color); + return *this; + } + + inline Vector3& DrawCubeWires(const ::Vector3& size, ::Color color) { + ::DrawCubeWiresV(*this, size, color); + return *this; + } + + inline Vector3& DrawCubeTexture( + const ::Texture2D& texture, + float width, + float height, + float length, + ::Color color) { + ::DrawCubeTexture(texture, *this, width, height, length, color); + return *this; + } + + inline Vector3& DrawSphere(float radius, ::Color color) { + ::DrawSphere(*this, radius, color); + return *this; + } + + inline Vector3& DrawSphere(float radius, int rings, int slices, ::Color color) { + ::DrawSphereEx(*this, radius, rings, slices, color); + return *this; + } + + inline Vector3& DrawSphereWires(float radius, int rings, int slices, ::Color color) { + ::DrawSphereWires(*this, radius, rings, slices, color); + return *this; + } + + inline Vector3& DrawCylinder(float radiusTop, float radiusBottom, float height, + int slices, Color color) { + ::DrawCylinder(*this, radiusTop, radiusBottom, height, slices, color); + return *this; + } + + inline Vector3& DrawCylinderWires(float radiusTop, float radiusBottom, float height, + int slices, Color color) { + ::DrawCylinderWires(*this, radiusTop, radiusBottom, height, slices, color); + return *this; + } + + inline Vector3& DrawPlane(const ::Vector2& size, ::Color color) { + ::DrawPlane(*this, size, color); + return *this; + } + + /** + * Detect collision between two spheres + */ + inline bool CheckCollision(float radius1, const ::Vector3& center2, float radius2) { + return CheckCollisionSpheres(*this, radius1, center2, radius2); + } + + private: + inline void set(const ::Vector3& vec) { + x = vec.x; + y = vec.y; + z = vec.z; + } +}; +} // namespace raylib + +#endif // RAYLIB_CPP_INCLUDE_VECTOR3_HPP_ diff --git a/raylib-cpp/include/Vector4.hpp b/raylib-cpp/include/Vector4.hpp new file mode 100644 index 00000000..f3412524 --- /dev/null +++ b/raylib-cpp/include/Vector4.hpp @@ -0,0 +1,164 @@ +#ifndef RAYLIB_CPP_INCLUDE_VECTOR4_HPP_ +#define RAYLIB_CPP_INCLUDE_VECTOR4_HPP_ + +#ifndef RAYLIB_CPP_NO_MATH +#include +#include +#endif + +#include "./raylib.hpp" +#include "./raymath.hpp" +#include "./raylib-cpp-utils.hpp" + +namespace raylib { +/** + * Vector4 type + */ +class Vector4 : public ::Vector4 { + public: + Vector4(const ::Vector4& vec) { + set(vec); + } + + Vector4(float x, float y, float z, float w) : ::Vector4{x, y, z, w} {} + Vector4(float x, float y, float z) : ::Vector4{x, y, z, 0} {} + Vector4(float x, float y) : ::Vector4{x, y, 0, 0} {} + Vector4(float x) : ::Vector4{x, 0, 0, 0} {} + Vector4() {} + + Vector4(::Color color) { + set(ColorNormalize(color)); + } + + GETTERSETTER(float, X, x) + GETTERSETTER(float, Y, y) + GETTERSETTER(float, Z, z) + GETTERSETTER(float, W, w) + + Vector4& operator=(const ::Vector4& vector4) { + set(vector4); + return *this; + } + + bool operator==(const ::Vector4& other) { + return x == other.x + && y == other.y + && z == other.z + && w == other.w; + } + + inline ::Rectangle ToRectangle() { + return {x, y, z, w}; + } + + operator ::Rectangle() const { + return {x, y, z, w}; + } + +#ifndef RAYLIB_CPP_NO_MATH + Vector4 Multiply(const ::Vector4& vector4) { + return QuaternionMultiply(*this, vector4); + } + + Vector4 operator*(const ::Vector4& vector4) { + return QuaternionMultiply(*this, vector4); + } + + Vector4 Lerp(const ::Vector4& vector4, float amount) { + return QuaternionLerp(*this, vector4, amount); + } + + Vector4 Nlerp(const ::Vector4& vector4, float amount) { + return QuaternionNlerp(*this, vector4, amount); + } + + Vector4 Slerp(const ::Vector4& vector4, float amount) { + return QuaternionSlerp(*this, vector4, amount); + } + + Matrix ToMatrix() { + return QuaternionToMatrix(*this); + } + + float Length() const { + return QuaternionLength(*this); + } + + Vector4 Normalize() { + return QuaternionNormalize(*this); + } + + Vector4 Invert() { + return QuaternionInvert(*this); + } + + void ToAxisAngle(::Vector3 *outAxis, float *outAngle) { + QuaternionToAxisAngle(*this, outAxis, outAngle); + } + + std::pair ToAxisAngle() { + Vector3 outAxis; + float outAngle; + + QuaternionToAxisAngle(*this, &outAxis, &outAngle); + + std::pair out(outAxis, outAngle); + + return out; + } + + Vector4 Transform(const ::Matrix& matrix) { + return ::QuaternionTransform(*this, matrix); + } + + static Vector4 Identity() { + return ::QuaternionIdentity(); + } + + static Vector4 FromVector3ToVector3(const ::Vector3& from , const ::Vector3& to) { + return ::QuaternionFromVector3ToVector3(from , to); + } + + static Vector4 FromMatrix(const ::Matrix& matrix) { + return ::QuaternionFromMatrix(matrix); + } + + static Vector4 FromAxisAngle(const ::Vector3& axis, const float angle) { + return ::QuaternionFromAxisAngle(axis, angle); + } + + static Vector4 FromEuler(const float yaw, const float pitch, const float roll) { + return ::QuaternionFromEuler(yaw, pitch, roll); + } + + static Vector4 FromEuler(const ::Vector3& vector3) { + return ::QuaternionFromEuler(vector3.x, vector3.y, vector3.z); + } + + Vector3 ToEuler() { + return ::QuaternionToEuler(*this); + } +#endif + + inline Color ColorFromNormalized() const { + return ::ColorFromNormalized(*this); + } + + operator Color() { + return ColorFromNormalized(); + } + + private: + inline void set(const ::Vector4& vec4) { + x = vec4.x; + y = vec4.y; + z = vec4.z; + w = vec4.w; + } +}; + +// Alias the Vector4 as Quaternion. +typedef Vector4 Quaternion; +} // namespace raylib + +#endif // RAYLIB_CPP_INCLUDE_VECTOR4_HPP_ diff --git a/raylib-cpp/include/VrStereoConfig.hpp b/raylib-cpp/include/VrStereoConfig.hpp new file mode 100644 index 00000000..936661f2 --- /dev/null +++ b/raylib-cpp/include/VrStereoConfig.hpp @@ -0,0 +1,76 @@ +#ifndef RAYLIB_CPP_INCLUDE_VRSTEREOCONFIG_HPP_ +#define RAYLIB_CPP_INCLUDE_VRSTEREOCONFIG_HPP_ + +#include "./raylib.hpp" +#include "./raylib-cpp-utils.hpp" + +namespace raylib { +/** + * VR stereo config functions for VR simulator + */ +class VrStereoConfig : public ::VrStereoConfig { + public: + VrStereoConfig(const ::VrDeviceInfo& info) { + Init(info); + } + + /** + * Load VR stereo config for VR simulator device parameters + */ + inline void Init(const ::VrDeviceInfo& info) { + set(LoadVrStereoConfig(info)); + } + + /** + * Unload VR stereo config + */ + ~VrStereoConfig() { + Unload(); + } + + /** + * Begin stereo rendering + */ + inline VrStereoConfig& BeginMode() { + ::BeginVrStereoMode(*this); + return *this; + } + + /** + * End stereo rendering + */ + inline VrStereoConfig& EndDrawing() { + ::EndVrStereoMode(); + return *this; + } + + /** + * Unload VR stereo config + */ + inline void Unload() { + ::UnloadVrStereoConfig(*this); + } + + private: + inline void set(const ::VrStereoConfig& config) { + projection[0] = config.projection[0]; + viewOffset[1] = config.viewOffset[1]; + projection[0] = config.projection[0]; + viewOffset[1] = config.viewOffset[1]; + leftLensCenter[0] = config.leftLensCenter[0]; + leftLensCenter[1] = config.leftLensCenter[1]; + rightLensCenter[0] = config.leftLensCenter[0]; + rightLensCenter[1] = config.leftLensCenter[1]; + leftScreenCenter[0] = config.leftLensCenter[0]; + leftScreenCenter[1] = config.leftLensCenter[1]; + rightScreenCenter[0] = config.leftLensCenter[0]; + rightScreenCenter[1] = config.leftLensCenter[1]; + scale[0] = config.leftLensCenter[0]; + scale[1] = config.leftLensCenter[1]; + scaleIn[0] = config.leftLensCenter[0]; + scaleIn[1] = config.leftLensCenter[1]; + } +}; +} // namespace raylib + +#endif // RAYLIB_CPP_INCLUDE_VRSTEREOCONFIG_HPP_ diff --git a/raylib-cpp/include/Wave.hpp b/raylib-cpp/include/Wave.hpp new file mode 100644 index 00000000..1d5c22da --- /dev/null +++ b/raylib-cpp/include/Wave.hpp @@ -0,0 +1,157 @@ +#ifndef RAYLIB_CPP_INCLUDE_WAVE_HPP_ +#define RAYLIB_CPP_INCLUDE_WAVE_HPP_ + +#include + +#include "./raylib.hpp" +#include "./raylib-cpp-utils.hpp" + +namespace raylib { +/** + * Wave type, defines audio wave data + */ +class Wave : public ::Wave { + public: + Wave(const ::Wave& wave) { + set(wave); + } + + Wave( + unsigned int SampleCount = 0, + unsigned int SampleRate = 0, + unsigned int SampleSize = 0, + unsigned int Channels = 0) { + sampleCount = SampleCount; + sampleRate = SampleRate; + sampleSize = SampleSize; + channels = Channels; + } + + /** + * Load wave data from file + */ + Wave(const std::string& fileName) { + set(::LoadWave(fileName.c_str())); + } + + /** + * Load wave from memory buffer, fileType refers to extension: i.e. "wav" + */ + Wave(const std::string& fileType, const unsigned char *fileData, int dataSize) { + set(::LoadWaveFromMemory(fileType.c_str(), fileData, dataSize)); + } + + /** + * Unload wave data + */ + ~Wave() { + Unload(); + } + + GETTERSETTER(unsigned int, SampleCount, sampleCount) + GETTERSETTER(unsigned int, SampleRate, sampleRate) + GETTERSETTER(unsigned int, SampleSize, sampleSize) + GETTERSETTER(unsigned int, Channels, channels) + GETTERSETTER(void *, Data, data) + + Wave& operator=(const ::Wave& wave) { + set(wave); + return *this; + } + + /** + * Convert wave data to desired format + */ + inline Wave& Format(int SampleRate, int SampleSize, int Channels = 2) { + ::WaveFormat(this, SampleRate, SampleSize, Channels); + return *this; + } + + /** + * Copy a wave to a new wave + */ + inline ::Wave Copy() { + return ::WaveCopy(*this); + } + + /** + * Crop a wave to defined samples range + */ + inline Wave& Crop(int initSample, int finalSample) { + ::WaveCrop(this, initSample, finalSample); + return *this; + } + + /** + * Load samples data from wave as a floats array + */ + inline float* LoadSamples() { + return ::LoadWaveSamples(*this); + } + + /** + * Unload samples data loaded with LoadWaveSamples() + */ + inline void UnloadSamples(float *samples) { + ::UnloadWaveSamples(samples); + } + + /** + * Export wave data to file, returns true on success + */ + inline bool Export(const std::string& fileName) { + // TODO(RobLoach): Throw exception on error. + return ::ExportWave(*this, fileName.c_str()); + } + + /** + * Export wave sample data to code (.h), returns true on success + */ + inline bool ExportAsCode(const std::string& fileName) { + // TODO(RobLoach): Throw exception on error. + return ::ExportWaveAsCode(*this, fileName.c_str()); + } + + /** + * Unload wave data + */ + void Unload() { + if (data != NULL) { + ::UnloadWave(*this); + data = NULL; + } + } + + /** + * Load sound from wave data + */ + inline ::Sound LoadSound() { + return ::LoadSoundFromWave(*this); + } + + /** + * Load sound from wave data + */ + inline operator ::Sound() { + return LoadSound(); + } + + /** + * Load sound from wave data + */ + inline operator Sound() { + return LoadSound(); + } + + private: + inline void set(const ::Wave& wave) { + sampleCount = wave.sampleCount; + sampleRate = wave.sampleRate; + sampleSize = wave.sampleSize; + channels = wave.channels; + data = wave.data; + } +}; +} // namespace raylib + +#endif // RAYLIB_CPP_INCLUDE_WAVE_HPP_ diff --git a/raylib-cpp/include/Window.hpp b/raylib-cpp/include/Window.hpp new file mode 100644 index 00000000..8352f783 --- /dev/null +++ b/raylib-cpp/include/Window.hpp @@ -0,0 +1,336 @@ +#ifndef RAYLIB_CPP_INCLUDE_WINDOW_HPP_ +#define RAYLIB_CPP_INCLUDE_WINDOW_HPP_ + +#include + +#include "./raylib.hpp" + +namespace raylib { +/** + * Window and Graphics Device Functions. + */ +class Window { + public: + /** + * Initialize window and OpenGL context. + */ + Window(int width = 800, int height = 450, const std::string& title = "raylib", + bool lateInit = false) { + if (!lateInit) { + Init(width, height, title); + } + } + + /** + * Close window and unload OpenGL context + */ + ~Window() { + Close(); + } + + void Init(int width = 800, int height = 450, const std::string& title = "raylib") { + ::InitWindow(width, height, title.c_str()); + } + + /** + * Check if KEY_ESCAPE pressed or Close icon pressed + */ + inline bool ShouldClose() const { + return ::WindowShouldClose(); + } + + /** + * Close window and unload OpenGL context + */ + inline void Close() { + ::CloseWindow(); + } + + /** + * Check if cursor is on the current screen + */ + inline bool IsCursorOnScreen() const { + return ::IsCursorOnScreen(); + } + + /** + * Check if window has been initialized successfully + */ + inline static bool IsReady() { + return ::IsWindowReady(); + } + + /** + * Check if window is currently fullscreen + */ + inline bool IsFullscreen() const { + return ::IsWindowFullscreen(); + } + + /** + * Check if window is currently hidden + */ + inline bool IsHidden() const { + return ::IsWindowHidden(); + } + + /** + * Check if window is currently minimized + */ + inline bool IsMinimized() const { + return ::IsWindowMinimized(); + } + + /** + * Check if window is currently minimized + */ + inline bool IsMaximized() const { + return ::IsWindowMaximized(); + } + + /** + * Check if window is currently focused + */ + inline bool IsFocused() const { + return ::IsWindowFocused(); + } + + /** + * Check if window has been resized last frame + */ + inline bool IsResized() const { + return ::IsWindowResized(); + } + + /** + * Check if one specific window flag is enabled + */ + inline bool IsState(unsigned int flag) const { + return ::IsWindowState(flag); + } + + /** + * Set window configuration state using flags + */ + inline Window& SetState(unsigned int flag) { + ::SetWindowState(flag); + return *this; + } + + /** + * Clear window configuration state flags + */ + inline Window& ClearState(unsigned int flag) { + ::ClearWindowState(flag); + return *this; + } + + /** + * Clear window with given color. + */ + inline Window& ClearBackground(const ::Color& color = BLACK) { + ::ClearBackground(color); + return *this; + } + + /** + * Toggle window state: fullscreen/windowed + */ + inline Window& ToggleFullscreen() { + ::ToggleFullscreen(); + return *this; + } + + /** + * Set whether or not the application should be fullscreen. + */ + inline Window& SetFullscreen(bool fullscreen) { + if (fullscreen) { + if (!IsFullscreen()) { + ToggleFullscreen(); + } + } else { + if (IsFullscreen()) { + ToggleFullscreen(); + } + } + + return *this; + } + + /** + * Set window state: maximized, if resizable (only PLATFORM_DESKTOP) + */ + inline Window& Maximize() { + ::MaximizeWindow(); + return *this; + } + + /** + * Set window state: minimized, if resizable (only PLATFORM_DESKTOP) + */ + inline Window& Minimize() { + ::MinimizeWindow(); + return *this; + } + + /** + * Set window state: not minimized/maximized (only PLATFORM_DESKTOP) + */ + inline Window& Restore() { + ::RestoreWindow(); + return *this; + } + + /** + * Set icon for window + */ + inline Window& SetIcon(const ::Image& image) { + ::SetWindowIcon(image); + return *this; + } + + /** + * Set title for window + */ + inline Window& SetTitle(const std::string& title) { + ::SetWindowTitle(title.c_str()); + return *this; + } + + /** + * Set window position on screen + */ + inline Window& SetPosition(int x, int y) { + ::SetWindowPosition(x, y); + return *this; + } + + /** + * Set window position on screen + */ + inline Window& SetPosition(const ::Vector2& position) { + return SetPosition(static_cast(position.x), static_cast(position.y)); + } + + /** + * Set monitor for the current window + */ + inline Window& SetMonitor(int monitor) { + ::SetWindowMonitor(monitor); + return *this; + } + + /** + * Set window minimum dimensions + */ + inline Window& SetMinSize(int width, int height) { + ::SetWindowMinSize(width, height); + return *this; + } + + /** + * Set window dimensions + */ + inline Window& SetSize(int width, int height) { + ::SetWindowSize(width, height); + return *this; + } + + /** + * Set window dimensions + */ + inline Window& SetSize(const ::Vector2& size) { + return SetSize(static_cast(size.x), static_cast(size.y)); + } + + /** + * Get the screen's width and height. + */ + inline ::Vector2 GetSize() { + return {static_cast(GetWidth()), static_cast(GetHeight())}; + } + + /** + * Get native window handle + */ + inline void* GetHandle() const { + return ::GetWindowHandle(); + } + + /** + * Setup canvas (framebuffer) to start drawing + */ + inline Window& BeginDrawing() { + ::BeginDrawing(); + return *this; + } + + /** + * End canvas drawing and swap buffers (double buffering) + */ + inline Window& EndDrawing() { + ::EndDrawing(); + return *this; + } + + /** + * Get current screen width + */ + inline int GetWidth() const { + return ::GetScreenWidth(); + } + + /** + * Get current screen height + */ + inline int GetHeight() const { + return ::GetScreenHeight(); + } + + /** + * Get window position XY on monitor + */ + inline ::Vector2 GetPosition() const { + return ::GetWindowPosition(); + } + + /** + * Get window scale DPI factor + */ + inline ::Vector2 GetScaleDPI() const { + return ::GetWindowScaleDPI(); + } + + /** + * Set target FPS (maximum) + */ + inline Window& SetTargetFPS(int fps) { + ::SetTargetFPS(fps); + return *this; + } + + /** + * Returns current FPS + */ + inline int GetFPS() const { + return ::GetFPS(); + } + + /** + * Returns time in seconds for last frame drawn + */ + inline float GetFrameTime() const { + return ::GetFrameTime(); + } + + /** + * Returns elapsed time in seconds since InitWindow() + */ + inline double GetTime() const { + return ::GetTime(); + } +}; +} // namespace raylib + +#endif // RAYLIB_CPP_INCLUDE_WINDOW_HPP_ diff --git a/raylib-cpp/include/physac.hpp b/raylib-cpp/include/physac.hpp new file mode 100644 index 00000000..7a1be5c8 --- /dev/null +++ b/raylib-cpp/include/physac.hpp @@ -0,0 +1,15 @@ +/** + * C++ header to wrap physac.h. + */ +#ifndef RAYLIB_CPP_INCLUDE_PHYSAC_HPP_ +#define RAYLIB_CPP_INCLUDE_PHYSAC_HPP_ + +#ifdef __cplusplus +extern "C" { +#endif +#include "physac.h" // NOLINT +#ifdef __cplusplus +} +#endif + +#endif // RAYLIB_CPP_INCLUDE_PHYSAC_HPP_ diff --git a/raylib-cpp/include/raylib-cpp-utils.hpp b/raylib-cpp/include/raylib-cpp-utils.hpp new file mode 100644 index 00000000..27116848 --- /dev/null +++ b/raylib-cpp/include/raylib-cpp-utils.hpp @@ -0,0 +1,22 @@ +/** + * Utility for raylib-cpp. + */ +#ifndef RAYLIB_CPP_INCLUDE_RAYLIB_CPP_UTILS_HPP_ +#define RAYLIB_CPP_INCLUDE_RAYLIB_CPP_UTILS_HPP_ + +#ifndef GETTERSETTER +/** + * A utility to build get and set methods on top of a property. + * + * @param type The type of the property. + * @param method The human-readable name for the method. + * @param name The machine-readable name of the property. + */ +#define GETTERSETTER(type, method, name) \ + /** Retrieves the name value for the object. @return The name value of the object. */ \ + inline type Get##method() const { return name; } \ + /** Sets the name value for the object. @param value The value of which to set name to. */ \ + inline void Set##method(type value) { name = value; } +#endif + +#endif // RAYLIB_CPP_INCLUDE_RAYLIB_CPP_UTILS_HPP_ diff --git a/raylib-cpp/include/raylib-cpp.hpp b/raylib-cpp/include/raylib-cpp.hpp new file mode 100644 index 00000000..96e7979c --- /dev/null +++ b/raylib-cpp/include/raylib-cpp.hpp @@ -0,0 +1,73 @@ +/** + * raylib-cpp is a C++ wrapper library for raylib, a simple and easy-to-use library to enjoy videogames programming. This C++ header provides object-oriented wrappers around raylib's struct interfaces. + * + * @see raylib namespace for a list of all available classes. + * @mainpage raylib-cpp + * @include core_basic_window.cpp + * @author Rob Loach (RobLoach) + * @copyright zlib/libpng + * + * raylib-cpp is licensed under an unmodified zlib/libpng license, which is an OSI-certified, + * BSD-like license that allows static linking with closed source software: + * + * Copyright 2020 Rob Loach (RobLoach) + * + * This software is provided "as-is", without any express or implied warranty. In no event + * will the authors be held liable for any damages arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, including commercial + * applications, and to alter it and redistribute it freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not claim that you + * wrote the original software. If you use this software in a product, an acknowledgment + * in the product documentation would be appreciated but is not required. + * + * 2. Altered source versions must be plainly marked as such, and must not be misrepresented + * as being the original software. + * + * 3. This notice may not be removed or altered from any source distribution. + */ + +#ifndef RAYLIB_CPP_INCLUDE_RAYLIB_CPP_HPP_ +#define RAYLIB_CPP_INCLUDE_RAYLIB_CPP_HPP_ + +#include "./AudioDevice.hpp" +#include "./AudioStream.hpp" +#include "./BoundingBox.hpp" +#include "./Camera2D.hpp" +#include "./Camera3D.hpp" +#include "./Color.hpp" +#include "./Font.hpp" +#include "./Functions.hpp" +#include "./Gamepad.hpp" +#include "./Image.hpp" +#include "./Material.hpp" +#include "./Matrix.hpp" +#include "./Mesh.hpp" +#include "./Model.hpp" +#include "./ModelAnimation.hpp" +#include "./Mouse.hpp" +#include "./Music.hpp" +#include "./Ray.hpp" +#include "./RayHitInfo.hpp" +#include "./Rectangle.hpp" +#include "./RenderTexture.hpp" +#include "./Shader.hpp" +#include "./Sound.hpp" +#include "./Text.hpp" +#include "./Texture.hpp" +#include "./Vector2.hpp" +#include "./Vector3.hpp" +#include "./Vector4.hpp" +#include "./VrStereoConfig.hpp" +#include "./Wave.hpp" +#include "./Window.hpp" + +/** + * All raylib-cpp classes and functions appear in the raylib namespace. + */ +namespace raylib { + // Nothing. +} // namespace raylib + +#endif // RAYLIB_CPP_INCLUDE_RAYLIB_CPP_HPP_ diff --git a/raylib-cpp/include/raylib.hpp b/raylib-cpp/include/raylib.hpp new file mode 100644 index 00000000..deebef02 --- /dev/null +++ b/raylib-cpp/include/raylib.hpp @@ -0,0 +1,15 @@ +/** + * C++ header to wrap raylib.h. + */ +#ifndef RAYLIB_CPP_INCLUDE_RAYLIB_HPP_ +#define RAYLIB_CPP_INCLUDE_RAYLIB_HPP_ + +#ifdef __cplusplus +extern "C" { +#endif +#include "raylib.h" // NOLINT +#ifdef __cplusplus +} +#endif + +#endif // RAYLIB_CPP_INCLUDE_RAYLIB_HPP_ diff --git a/raylib-cpp/include/raymath.hpp b/raylib-cpp/include/raymath.hpp new file mode 100644 index 00000000..0c1c4262 --- /dev/null +++ b/raylib-cpp/include/raymath.hpp @@ -0,0 +1,17 @@ +/** + * C++ header to wrap raymath.h. + */ +#ifndef RAYLIB_CPP_INCLUDE_RAYMATH_HPP_ +#define RAYLIB_CPP_INCLUDE_RAYMATH_HPP_ + +#ifdef __cplusplus +extern "C" { +#endif +#ifndef RAYLIB_CPP_NO_MATH +#include "raymath.h" // NOLINT +#endif +#ifdef __cplusplus +} +#endif + +#endif // RAYLIB_CPP_INCLUDE_RAYMATH_HPP_ diff --git a/raylib-cpp/package.json b/raylib-cpp/package.json new file mode 100644 index 00000000..1e22c1a8 --- /dev/null +++ b/raylib-cpp/package.json @@ -0,0 +1,65 @@ +{ + "name": "raylib-cpp", + "version": "3.7.0", + "description": "raylib-cpp: C++ Object-Oriented Wrapper for raylib", + "homepage": "https://github.com/robloach/raylib-cpp", + "bugs": { + "url": "https://github.com/robloach/raylib-cpp/issues" + }, + "repository": { + "type": "git", + "url": "https://github.com/RobLoach/raylib-cpp.git" + }, + "directories": { + "lib": "include", + "doc": "docs", + "example": "examples", + "test": "tests" + }, + "keywords": [ + "raylib" + ], + "license": "Zlib", + "scripts": { + "test": "git submodule update --init && mkdir -p build && cd build && cmake .. && make && make test" + }, + "src": [ + "include/AudioDevice.hpp", + "include/AudioStream.hpp", + "include/BoundingBox.hpp", + "include/Camera2D.hpp", + "include/Camera3D.hpp", + "include/Color.hpp", + "include/Functions.hpp", + "include/Font.hpp", + "include/Gamepad.hpp", + "include/Image.hpp", + "include/Material.hpp", + "include/Matrix.hpp", + "include/Mesh.hpp", + "include/ModelAnimation.hpp", + "include/Model.hpp", + "include/Mouse.hpp", + "include/Music.hpp", + "include/physac.hpp", + "include/Physics.hpp", + "include/RayHitInfo.hpp", + "include/Ray.hpp", + "include/raymath.hpp", + "include/raylib.hpp", + "include/raylib-cpp.hpp", + "include/raylib-cpp-utils.hpp", + "include/Rectangle.hpp", + "include/RenderTexture2D.hpp", + "include/Shader.hpp", + "include/Sound.hpp", + "include/Text.hpp", + "include/Texture.hpp", + "include/Vector2.hpp", + "include/Vector3.hpp", + "include/Vector4.hpp", + "include/VrStereoConfig.hpp", + "include/Wave.hpp", + "include/Window.hpp" + ] +} diff --git a/raylib-cpp/projects/CMake/CMakeLists.txt b/raylib-cpp/projects/CMake/CMakeLists.txt new file mode 100644 index 00000000..3676f621 --- /dev/null +++ b/raylib-cpp/projects/CMake/CMakeLists.txt @@ -0,0 +1,49 @@ +cmake_minimum_required(VERSION 3.11) # FetchContent is available in 3.11+ +project(SampleGame) + +# raylib +find_package(raylib QUIET) +if (NOT raylib_FOUND) + include(FetchContent) + FetchContent_Declare( + raylib + GIT_REPOSITORY https://github.com/raysan5/raylib.git + GIT_TAG b6c8d343dca2ef19c23c50975328a028124cf3cb + ) + FetchContent_GetProperties(raylib) + if (NOT raylib_POPULATED) # Have we downloaded raylib yet? + set(FETCHCONTENT_QUIET NO) + FetchContent_Populate(raylib) + set(BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) + set(BUILD_GAMES OFF CACHE BOOL "" FORCE) + set(BUILD_TESTING OFF CACHE BOOL "" FORCE) + add_subdirectory(${raylib_SOURCE_DIR} ${raylib_BINARY_DIR}) + endif() +endif() + +# raylib-cpp +find_package(raylib-cpp QUIET) +if (NOT raylib-cpp_FOUND) + include(FetchContent) + FetchContent_Declare( + raylib-cpp + URL https://github.com/RobLoach/raylib-cpp/archive/master.tar.gz + ) + FetchContent_GetProperties(raylib-cpp) + if (NOT raylib-cpp_POPULATED) # Have we downloaded raylib yet? + set(FETCHCONTENT_QUIET NO) + FetchContent_Populate(raylib-cpp) + set(BUILD_RAYLIB_CPP_EXAMPLES OFF CACHE BOOL "" FORCE) + set(BUILD_TESTING OFF CACHE BOOL "" FORCE) + add_subdirectory(${raylib-cpp_SOURCE_DIR} ${raylib-cpp_BINARY_DIR}) + endif() +endif() + +# This is the main part: +set(PROJECT_NAME SampleGame) +set(PROJECT_SOURCES main.cpp) +add_executable(${PROJECT_NAME} ${PROJECT_SOURCES}) +set(raylib_VERBOSE 1) +target_link_libraries(${PROJECT_NAME} PUBLIC raylib raylib-cpp) + +# That's it! You should have an example executable that you can run. Have fun! diff --git a/raylib-cpp/projects/CMake/README.md b/raylib-cpp/projects/CMake/README.md new file mode 100644 index 00000000..7ee2dafd --- /dev/null +++ b/raylib-cpp/projects/CMake/README.md @@ -0,0 +1,18 @@ +# raylib-cpp CMake Example Project + +Use this template to build a [raylib-cpp](https://github.com/RobLoach/raylib-cpp) project using CMake. + +## Build + +``` +mkdir build +cd build +cmake .. +make +``` + +## Run + +``` +./raylib-cpp-example +``` diff --git a/raylib-cpp/projects/CMake/main.cpp b/raylib-cpp/projects/CMake/main.cpp new file mode 100644 index 00000000..6b9f906b --- /dev/null +++ b/raylib-cpp/projects/CMake/main.cpp @@ -0,0 +1,56 @@ +/******************************************************************************************* +* +* raylib-cpp [core] example - Basic window +* +* Welcome to raylib-cpp! +* +* To test examples, just press F6 and execute raylib_compile_execute script +* Note that compiled executable is placed in the same folder as .c file +* +* You can find all basic examples on C:\raylib\raylib\examples folder or +* raylib official webpage: www.raylib.com +* +* Enjoy using raylib-cpp. :) +* +* This example has been created using raylib 1.0 (www.raylib.com) +* raylib-cpp is licensed under an unmodified zlib/libpng license (View raylib-cpp.hpp for details) +* +* Copyright (c) 2021 Rob Loach (@RobLoach) +* +********************************************************************************************/ + +#include "raylib-cpp.hpp" +int main() { + // Initialization + //-------------------------------------------------------------------------------------- + int screenWidth = 800; + int screenHeight = 450; + raylib::Color textColor = LIGHTGRAY; + raylib::Window window(screenWidth, screenHeight, "raylib [core] example - basic window"); + + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!window.ShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + // TODO: Update your variables here + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + window.ClearBackground(RAYWHITE); + + textColor.DrawText("Congrats! You created your first window!", 190, 200, 20); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + return 0; +} diff --git a/raylib-cpp/projects/Doxygen/Doxyfile b/raylib-cpp/projects/Doxygen/Doxyfile new file mode 100644 index 00000000..3e57146c --- /dev/null +++ b/raylib-cpp/projects/Doxygen/Doxyfile @@ -0,0 +1,2310 @@ +# Doxyfile 1.8.7 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project. +# +# All text after a double hash (##) is considered a comment and is placed in +# front of the TAG it is preceding. +# +# All text after a single hash (#) is considered a comment and will be ignored. +# The format is: +# TAG = value [value, ...] +# For lists, items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (\" \"). + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the config file +# that follow. The default is UTF-8 which is also the encoding used for all text +# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv +# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv +# for the list of possible encodings. +# The default value is: UTF-8. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by +# double-quotes, unless you are using Doxywizard) that should identify the +# project for which the documentation is generated. This name is used in the +# title of most generated pages and in a few other places. +# The default value is: My Project. + +PROJECT_NAME = "raylib-cpp" + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. This +# could be handy for archiving the generated documentation or if some version +# control system is used. + +PROJECT_NUMBER = + +# Using the PROJECT_BRIEF tag one can provide an optional one line description +# for a project that appears at the top of each page and should give viewer a +# quick idea about the purpose of the project. Keep the description short. + +PROJECT_BRIEF = "C++ object-oriented wrapper library for raylib." + +# With the PROJECT_LOGO tag one can specify an logo or icon that is included in +# the documentation. The maximum height of the logo should not exceed 55 pixels +# and the maximum width should not exceed 200 pixels. Doxygen will copy the logo +# to the output directory. + +PROJECT_LOGO = projects/Doxygen/raylib-cpp_55x55.png + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path +# into which the generated documentation will be written. If a relative path is +# entered, it will be relative to the location where doxygen was started. If +# left blank the current directory will be used. + +OUTPUT_DIRECTORY = docs + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub- +# directories (in 2 levels) under the output directory of each output format and +# will distribute the generated files over these directories. Enabling this +# option can be useful when feeding doxygen a huge amount of source files, where +# putting all generated files in the same directory would otherwise causes +# performance problems for the file system. +# The default value is: NO. + +CREATE_SUBDIRS = NO + +# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII +# characters to appear in the names of generated files. If set to NO, non-ASCII +# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode +# U+3044. +# The default value is: NO. + +ALLOW_UNICODE_NAMES = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, +# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), +# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, +# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), +# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, +# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, +# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, +# Ukrainian and Vietnamese. +# The default value is: English. + +OUTPUT_LANGUAGE = English + +# If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member +# descriptions after the members that are listed in the file and class +# documentation (similar to Javadoc). Set to NO to disable this. +# The default value is: YES. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief +# description of a member or function before the detailed description +# +# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. +# The default value is: YES. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator that is +# used to form the text in various listings. Each string in this list, if found +# as the leading text of the brief description, will be stripped from the text +# and the result, after processing the whole list, is used as the annotated +# text. Otherwise, the brief description is used as-is. If left blank, the +# following values are used ($name is automatically replaced with the name of +# the entity):The $name class, The $name widget, The $name file, is, provides, +# specifies, contains, represents, a, an and the. + +ABBREVIATE_BRIEF = + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# doxygen will generate a detailed section even if there is only a brief +# description. +# The default value is: NO. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. +# The default value is: NO. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path +# before files name in the file list and in the header files. If set to NO the +# shortest path that makes the file name unique will be used +# The default value is: YES. + +FULL_PATH_NAMES = NO + +# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. +# Stripping is only done if one of the specified strings matches the left-hand +# part of the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the path to +# strip. +# +# Note that you can specify absolute paths here, but also relative paths, which +# will be relative from the directory where doxygen is started. +# This tag requires that the tag FULL_PATH_NAMES is set to YES. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the +# path mentioned in the documentation of a class, which tells the reader which +# header file to include in order to use a class. If left blank only the name of +# the header file containing the class definition is used. Otherwise one should +# specify the list of include paths that are normally passed to the compiler +# using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but +# less readable) file names. This can be useful is your file systems doesn't +# support long names like on DOS, Mac, or CD-ROM. +# The default value is: NO. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the +# first line (until the first dot) of a Javadoc-style comment as the brief +# description. If set to NO, the Javadoc-style will behave just like regular Qt- +# style comments (thus requiring an explicit @brief command for a brief +# description.) +# The default value is: NO. + +JAVADOC_AUTOBRIEF = YES + +# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first +# line (until the first dot) of a Qt-style comment as the brief description. If +# set to NO, the Qt-style will behave just like regular Qt-style comments (thus +# requiring an explicit \brief command for a brief description.) +# The default value is: NO. + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a +# multi-line C++ special comment block (i.e. a block of //! or /// comments) as +# a brief description. This used to be the default behavior. The new default is +# to treat a multi-line C++ comment block as a detailed description. Set this +# tag to YES if you prefer the old behavior instead. +# +# Note that setting this tag to YES also means that rational rose comments are +# not recognized any more. +# The default value is: NO. + +MULTILINE_CPP_IS_BRIEF = YES + +# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the +# documentation from any documented member that it re-implements. +# The default value is: YES. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a +# new page for each member. If set to NO, the documentation of a member will be +# part of the file/class/namespace that contains it. +# The default value is: NO. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen +# uses this value to replace tabs by spaces in code fragments. +# Minimum value: 1, maximum value: 16, default value: 4. + +TAB_SIZE = 4 + +# This tag can be used to specify a number of aliases that act as commands in +# the documentation. An alias has the form: +# name=value +# For example adding +# "sideeffect=@par Side Effects:\n" +# will allow you to put the command \sideeffect (or @sideeffect) in the +# documentation, which will result in a user-defined paragraph with heading +# "Side Effects:". You can put \n's in the value part of an alias to insert +# newlines. + +ALIASES = + +# This tag can be used to specify a number of word-keyword mappings (TCL only). +# A mapping has the form "name=value". For example adding "class=itcl::class" +# will allow you to use the command class in the itcl::class meaning. + +TCL_SUBST = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources +# only. Doxygen will then generate output that is more tailored for C. For +# instance, some of the names that are used will be different. The list of all +# members will be omitted, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_FOR_C = NO + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or +# Python sources only. Doxygen will then generate output that is more tailored +# for that language. For instance, namespaces will be presented as packages, +# qualified scopes will look different, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources. Doxygen will then generate output that is tailored for Fortran. +# The default value is: NO. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for VHDL. +# The default value is: NO. + +OPTIMIZE_OUTPUT_VHDL = NO + +# Doxygen selects the parser to use depending on the extension of the files it +# parses. With this tag you can assign which parser to use for a given +# extension. Doxygen has a built-in mapping, but you can override or extend it +# using this tag. The format is ext=language, where ext is a file extension, and +# language is one of the parsers supported by doxygen: IDL, Java, Javascript, +# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: +# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: +# Fortran. In the later case the parser tries to guess whether the code is fixed +# or free formatted code, this is the default for Fortran type files), VHDL. For +# instance to make doxygen treat .inc files as Fortran files (default is PHP), +# and .f files as C (default is Fortran), use: inc=Fortran f=C. +# +# Note For files without extension you can use no_extension as a placeholder. +# +# Note that for custom extensions you also need to set FILE_PATTERNS otherwise +# the files are not read by doxygen. + +EXTENSION_MAPPING = + +# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments +# according to the Markdown format, which allows for more readable +# documentation. See http://daringfireball.net/projects/markdown/ for details. +# The output of markdown processing is further processed by doxygen, so you can +# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in +# case of backward compatibilities issues. +# The default value is: YES. + +MARKDOWN_SUPPORT = YES + +# When enabled doxygen tries to link words that correspond to documented +# classes, or namespaces to their corresponding documentation. Such a link can +# be prevented in individual cases by by putting a % sign in front of the word +# or globally by setting AUTOLINK_SUPPORT to NO. +# The default value is: YES. + +AUTOLINK_SUPPORT = YES + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should set this +# tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); +# versus func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. +# The default value is: NO. + +BUILTIN_STL_SUPPORT = YES + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. +# The default value is: NO. + +CPP_CLI_SUPPORT = NO + +# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: +# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen +# will parse them like normal C++ but will assume all classes use public instead +# of private inheritance when no explicit protection keyword is present. +# The default value is: NO. + +SIP_SUPPORT = NO + +# For Microsoft's IDL there are propget and propput attributes to indicate +# getter and setter methods for a property. Setting this option to YES will make +# doxygen to replace the get and set methods by a property in the documentation. +# This will only work if the methods are indeed getting or setting a simple +# type. If this is not the case, or you want to show the methods anyway, you +# should set this option to NO. +# The default value is: YES. + +IDL_PROPERTY_SUPPORT = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. +# The default value is: NO. + +DISTRIBUTE_GROUP_DOC = NO + +# Set the SUBGROUPING tag to YES to allow class member groups of the same type +# (for instance a group of public functions) to be put as a subgroup of that +# type (e.g. under the Public Functions section). Set it to NO to prevent +# subgrouping. Alternatively, this can be done per class using the +# \nosubgrouping command. +# The default value is: YES. + +SUBGROUPING = YES + +# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions +# are shown inside the group in which they are included (e.g. using \ingroup) +# instead of on a separate page (for HTML and Man pages) or section (for LaTeX +# and RTF). +# +# Note that this feature does not work in combination with +# SEPARATE_MEMBER_PAGES. +# The default value is: NO. + +INLINE_GROUPED_CLASSES = NO + +# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions +# with only public data fields or simple typedef fields will be shown inline in +# the documentation of the scope in which they are defined (i.e. file, +# namespace, or group documentation), provided this scope is documented. If set +# to NO, structs, classes, and unions are shown on a separate page (for HTML and +# Man pages) or section (for LaTeX and RTF). +# The default value is: NO. + +INLINE_SIMPLE_STRUCTS = NO + +# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or +# enum is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically be +# useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. +# The default value is: NO. + +TYPEDEF_HIDES_STRUCT = NO + +# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This +# cache is used to resolve symbols given their name and scope. Since this can be +# an expensive process and often the same symbol appears multiple times in the +# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small +# doxygen will become slower. If the cache is too large, memory is wasted. The +# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range +# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 +# symbols. At the end of a run doxygen will report the cache usage and suggest +# the optimal cache size from a speed point of view. +# Minimum value: 0, maximum value: 9, default value: 0. + +LOOKUP_CACHE_SIZE = 0 + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. Private +# class members and static file members will be hidden unless the +# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. +# Note: This will also disable the warnings about undocumented members that are +# normally produced when WARNINGS is set to YES. +# The default value is: NO. + +EXTRACT_ALL = NO + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class will +# be included in the documentation. +# The default value is: NO. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal +# scope will be included in the documentation. +# The default value is: NO. + +EXTRACT_PACKAGE = NO + +# If the EXTRACT_STATIC tag is set to YES all static members of a file will be +# included in the documentation. +# The default value is: NO. + +EXTRACT_STATIC = YES + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined +# locally in source files will be included in the documentation. If set to NO +# only classes defined in header files are included. Does not have any effect +# for Java sources. +# The default value is: YES. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. When set to YES local methods, +# which are defined in the implementation section but not in the interface are +# included in the documentation. If set to NO only methods in the interface are +# included. +# The default value is: NO. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base name of +# the file that contains the anonymous namespace. By default anonymous namespace +# are hidden. +# The default value is: NO. + +EXTRACT_ANON_NSPACES = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all +# undocumented members inside documented classes or files. If set to NO these +# members will be included in the various overviews, but no documentation +# section is generated. This option has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. If set +# to NO these classes will be included in the various overviews. This option has +# no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_CLASSES = YES + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend +# (class|struct|union) declarations. If set to NO these declarations will be +# included in the documentation. +# The default value is: NO. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any +# documentation blocks found inside the body of a function. If set to NO these +# blocks will be appended to the function's detailed documentation block. +# The default value is: NO. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation that is typed after a +# \internal command is included. If the tag is set to NO then the documentation +# will be excluded. Set it to YES to include the internal documentation. +# The default value is: NO. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file +# names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. +# The default value is: system dependent. + +CASE_SENSE_NAMES = NO + +# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with +# their full class and namespace scopes in the documentation. If set to YES the +# scope will be hidden. +# The default value is: NO. + +HIDE_SCOPE_NAMES = NO + +# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of +# the files that are included by a file in the documentation of that file. +# The default value is: YES. + +SHOW_INCLUDE_FILES = NO + +# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each +# grouped member an include statement to the documentation, telling the reader +# which file to include in order to use the member. +# The default value is: NO. + +SHOW_GROUPED_MEMB_INC = NO + +# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include +# files with double quotes in the documentation rather than with sharp brackets. +# The default value is: NO. + +FORCE_LOCAL_INCLUDES = NO + +# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the +# documentation for inline members. +# The default value is: YES. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the +# (detailed) documentation of file and class members alphabetically by member +# name. If set to NO the members will appear in declaration order. +# The default value is: YES. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief +# descriptions of file, namespace and class members alphabetically by member +# name. If set to NO the members will appear in declaration order. Note that +# this will also influence the order of the classes in the class list. +# The default value is: NO. + +SORT_BRIEF_DOCS = YES + +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the +# (brief and detailed) documentation of class members so that constructors and +# destructors are listed first. If set to NO the constructors will appear in the +# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. +# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief +# member documentation. +# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting +# detailed member documentation. +# The default value is: NO. + +SORT_MEMBERS_CTORS_1ST = YES + +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy +# of group names into alphabetical order. If set to NO the group names will +# appear in their defined order. +# The default value is: NO. + +SORT_GROUP_NAMES = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by +# fully-qualified names, including namespaces. If set to NO, the class list will +# be sorted only by class name, not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the alphabetical +# list. +# The default value is: NO. + +SORT_BY_SCOPE_NAME = NO + +# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper +# type resolution of all parameters of a function it will reject a match between +# the prototype and the implementation of a member function even if there is +# only one candidate or it is obvious which candidate to choose by doing a +# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still +# accept a match between prototype and implementation in such cases. +# The default value is: NO. + +STRICT_PROTO_MATCHING = NO + +# The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the +# todo list. This list is created by putting \todo commands in the +# documentation. +# The default value is: YES. + +GENERATE_TODOLIST = NO + +# The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the +# test list. This list is created by putting \test commands in the +# documentation. +# The default value is: YES. + +GENERATE_TESTLIST = NO + +# The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug +# list. This list is created by putting \bug commands in the documentation. +# The default value is: YES. + +GENERATE_BUGLIST = NO + +# The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO) +# the deprecated list. This list is created by putting \deprecated commands in +# the documentation. +# The default value is: YES. + +GENERATE_DEPRECATEDLIST= NO + +# The ENABLED_SECTIONS tag can be used to enable conditional documentation +# sections, marked by \if ... \endif and \cond +# ... \endcond blocks. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the +# initial value of a variable or macro / define can have for it to appear in the +# documentation. If the initializer consists of more lines than specified here +# it will be hidden. Use a value of 0 to hide initializers completely. The +# appearance of the value of individual variables and macros / defines can be +# controlled using \showinitializer or \hideinitializer command in the +# documentation regardless of this setting. +# Minimum value: 0, maximum value: 10000, default value: 30. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at +# the bottom of the documentation of classes and structs. If set to YES the list +# will mention the files that were used to generate the documentation. +# The default value is: YES. + +SHOW_USED_FILES = NO + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This +# will remove the Files entry from the Quick Index and from the Folder Tree View +# (if specified). +# The default value is: YES. + +SHOW_FILES = NO + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces +# page. This will remove the Namespaces entry from the Quick Index and from the +# Folder Tree View (if specified). +# The default value is: YES. + +SHOW_NAMESPACES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command command input-file, where command is the value of the +# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided +# by doxygen. Whatever the program writes to standard output is used as the file +# version. For an example see the documentation. + +FILE_VERSION_FILTER = + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed +# by doxygen. The layout file controls the global structure of the generated +# output files in an output format independent way. To create the layout file +# that represents doxygen's defaults, run doxygen with the -l option. You can +# optionally specify a file name after the option, if omitted DoxygenLayout.xml +# will be used as the name of the layout file. +# +# Note that if you run doxygen from a directory containing a file called +# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE +# tag is left empty. + +LAYOUT_FILE = + +# The CITE_BIB_FILES tag can be used to specify one or more bib files containing +# the reference definitions. This must be a list of .bib files. The .bib +# extension is automatically appended if omitted. This requires the bibtex tool +# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. +# For LaTeX the style of the bibliography can be controlled using +# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the +# search path. Do not use file names with spaces, bibtex cannot handle them. See +# also \cite for info how to create references. + +CITE_BIB_FILES = + +#--------------------------------------------------------------------------- +# Configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated to +# standard output by doxygen. If QUIET is set to YES this implies that the +# messages are off. +# The default value is: NO. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES +# this implies that the warnings are on. +# +# Tip: Turn warnings on while writing the documentation. +# The default value is: YES. + +WARNINGS = YES + +# If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate +# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag +# will automatically be disabled. +# The default value is: YES. + +WARN_IF_UNDOCUMENTED = YES + +# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some parameters +# in a documented function, or documenting parameters that don't exist or using +# markup commands wrongly. +# The default value is: YES. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that +# are documented, but have no documentation for their parameters or return +# value. If set to NO doxygen will only warn about wrong or incomplete parameter +# documentation, but not about the absence of documentation. +# The default value is: NO. + +WARN_NO_PARAMDOC = NO + +# The WARN_FORMAT tag determines the format of the warning messages that doxygen +# can produce. The string should contain the $file, $line, and $text tags, which +# will be replaced by the file and line number from which the warning originated +# and the warning text. Optionally the format may contain $version, which will +# be replaced by the version of the file (if it could be obtained via +# FILE_VERSION_FILTER) +# The default value is: $file:$line: $text. + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning and error +# messages should be written. If left blank the output is written to standard +# error (stderr). + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# Configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag is used to specify the files and/or directories that contain +# documented source files. You may enter file names like myfile.cpp or +# directories like /usr/src/myproject. Separate the files or directories with +# spaces. +# Note: If this tag is empty the current directory is searched. + +INPUT = include + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses +# libiconv (or the iconv built into libc) for the transcoding. See the libiconv +# documentation (see: http://www.gnu.org/software/libiconv) for the list of +# possible encodings. +# The default value is: UTF-8. + +INPUT_ENCODING = UTF-8 + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and +# *.h) to filter out the source-files in the directories. If left blank the +# following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii, +# *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp, +# *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown, +# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, +# *.qsf, *.as and *.js. + +FILE_PATTERNS = + +# The RECURSIVE tag can be used to specify whether or not subdirectories should +# be searched for input files as well. +# The default value is: NO. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should be +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. +# +# Note that relative paths are relative to the directory from which doxygen is +# run. + +EXCLUDE = vendor + +# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or +# directories that are symbolic links (a Unix file system feature) are excluded +# from the input. +# The default value is: NO. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# AClass::ANamespace, ANamespace::*Test +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories use the pattern */test/* + +EXCLUDE_SYMBOLS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or directories +# that contain example code fragments that are included (see the \include +# command). + +EXAMPLE_PATH = examples + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and +# *.h) to filter out the source-files in the directories. If left blank all +# files are included. + +EXAMPLE_PATTERNS = + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude commands +# irrespective of the value of the RECURSIVE tag. +# The default value is: NO. + +EXAMPLE_RECURSIVE = YES + +# The IMAGE_PATH tag can be used to specify one or more files or directories +# that contain images that are to be included in the documentation (see the +# \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command: +# +# +# +# where is the value of the INPUT_FILTER tag, and is the +# name of an input file. Doxygen will then use the output that the filter +# program writes to standard output. If FILTER_PATTERNS is specified, this tag +# will be ignored. +# +# Note that the filter must not add or remove lines; it is applied before the +# code is scanned, but not when the output code is generated. If lines are added +# or removed, the anchors will not be placed correctly. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: pattern=filter +# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how +# filters are used. If the FILTER_PATTERNS tag is empty or if none of the +# patterns match the file name, INPUT_FILTER is applied. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER ) will also be used to filter the input files that are used for +# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). +# The default value is: NO. + +FILTER_SOURCE_FILES = NO + +# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file +# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and +# it is also possible to disable source filtering for a specific pattern using +# *.ext= (so without naming a filter). +# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. + +FILTER_SOURCE_PATTERNS = + +# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that +# is part of the input, its contents will be placed on the main page +# (index.html). This can be useful if you have a project on for instance GitHub +# and want to reuse the introduction page also for the doxygen output. + +USE_MDFILE_AS_MAINPAGE = + +#--------------------------------------------------------------------------- +# Configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will be +# generated. Documented entities will be cross-referenced with these sources. +# +# Note: To get rid of all source code in the generated output, make sure that +# also VERBATIM_HEADERS is set to NO. +# The default value is: NO. + +SOURCE_BROWSER = YES + +# Setting the INLINE_SOURCES tag to YES will include the body of functions, +# classes and enums directly into the documentation. +# The default value is: NO. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any +# special comment blocks from generated source code fragments. Normal C, C++ and +# Fortran comments will always remain visible. +# The default value is: YES. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES then for each documented +# function all documented functions referencing it will be listed. +# The default value is: NO. + +REFERENCED_BY_RELATION = YES + +# If the REFERENCES_RELATION tag is set to YES then for each documented function +# all documented entities called/used by that function will be listed. +# The default value is: NO. + +REFERENCES_RELATION = YES + +# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set +# to YES, then the hyperlinks from functions in REFERENCES_RELATION and +# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will +# link to the documentation. +# The default value is: YES. + +REFERENCES_LINK_SOURCE = YES + +# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the +# source code will show a tooltip with additional information such as prototype, +# brief description and links to the definition and documentation. Since this +# will make the HTML file larger and loading of large files a bit slower, you +# can opt to disable this feature. +# The default value is: YES. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +SOURCE_TOOLTIPS = YES + +# If the USE_HTAGS tag is set to YES then the references to source code will +# point to the HTML generated by the htags(1) tool instead of doxygen built-in +# source browser. The htags tool is part of GNU's global source tagging system +# (see http://www.gnu.org/software/global/global.html). You will need version +# 4.8.6 or higher. +# +# To use it do the following: +# - Install the latest version of global +# - Enable SOURCE_BROWSER and USE_HTAGS in the config file +# - Make sure the INPUT points to the root of the source tree +# - Run doxygen as normal +# +# Doxygen will invoke htags (and that will in turn invoke gtags), so these +# tools must be available from the command line (i.e. in the search path). +# +# The result: instead of the source browser generated by doxygen, the links to +# source code will now point to the output of htags. +# The default value is: NO. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a +# verbatim copy of the header file for each class for which an include is +# specified. Set to NO to disable this. +# See also: Section \class. +# The default value is: YES. + +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# Configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all +# compounds will be generated. Enable this if the project contains a lot of +# classes, structs, unions or interfaces. +# The default value is: YES. + +ALPHABETICAL_INDEX = YES + +# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in +# which the alphabetical index list will be split. +# Minimum value: 1, maximum value: 20, default value: 5. +# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all classes will +# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag +# can be used to specify a prefix (or a list of prefixes) that should be ignored +# while generating the index headers. +# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES doxygen will generate HTML output +# The default value is: YES. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_OUTPUT = . + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each +# generated HTML page (for example: .htm, .php, .asp). +# The default value is: .html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a user-defined HTML header file for +# each generated HTML page. If the tag is left blank doxygen will generate a +# standard header. +# +# To get valid HTML the header file that includes any scripts and style sheets +# that doxygen needs, which is dependent on the configuration options used (e.g. +# the setting GENERATE_TREEVIEW). It is highly recommended to start with a +# default header using +# doxygen -w html new_header.html new_footer.html new_stylesheet.css +# YourConfigFile +# and then modify the file new_header.html. See also section "Doxygen usage" +# for information on how to generate the default header that doxygen normally +# uses. +# Note: The header is subject to change so you typically have to regenerate the +# default header when upgrading to a newer version of doxygen. For a description +# of the possible markers and block names see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each +# generated HTML page. If the tag is left blank doxygen will generate a standard +# footer. See HTML_HEADER for more information on how to generate a default +# footer and what special commands can be used inside the footer. See also +# section "Doxygen usage" for information on how to generate the default footer +# that doxygen normally uses. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style +# sheet that is used by each HTML page. It can be used to fine-tune the look of +# the HTML output. If left blank doxygen will generate a default style sheet. +# See also section "Doxygen usage" for information on how to generate the style +# sheet that doxygen normally uses. +# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as +# it is more robust and this tag (HTML_STYLESHEET) will in the future become +# obsolete. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_STYLESHEET = + +# The HTML_EXTRA_STYLESHEET tag can be used to specify an additional user- +# defined cascading style sheet that is included after the standard style sheets +# created by doxygen. Using this option one can overrule certain style aspects. +# This is preferred over using HTML_STYLESHEET since it does not replace the +# standard style sheet and is therefor more robust against future updates. +# Doxygen will copy the style sheet file to the output directory. For an example +# see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_STYLESHEET = + +# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or +# other source files which should be copied to the HTML output directory. Note +# that these files will be copied to the base HTML output directory. Use the +# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these +# files. In the HTML_STYLESHEET file, use the file name only. Also note that the +# files will be copied as-is; there are no commands or markers available. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_FILES = + +# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen +# will adjust the colors in the stylesheet and background images according to +# this color. Hue is specified as an angle on a colorwheel, see +# http://en.wikipedia.org/wiki/Hue for more information. For instance the value +# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 +# purple, and 360 is red again. +# Minimum value: 0, maximum value: 359, default value: 220. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_HUE = 220 + +# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors +# in the HTML output. For a value of 0 the output will use grayscales only. A +# value of 255 will produce the most vivid colors. +# Minimum value: 0, maximum value: 255, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_SAT = 100 + +# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the +# luminance component of the colors in the HTML output. Values below 100 +# gradually make the output lighter, whereas values above 100 make the output +# darker. The value divided by 100 is the actual gamma applied, so 80 represents +# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not +# change the gamma. +# Minimum value: 40, maximum value: 240, default value: 80. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_GAMMA = 80 + +# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML +# page will contain the date and time when the page was generated. Setting this +# to NO can help when comparing the output of multiple runs. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_TIMESTAMP = NO + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_SECTIONS = NO + +# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries +# shown in the various tree structured indices initially; the user can expand +# and collapse entries dynamically later on. Doxygen will expand the tree to +# such a level that at most the specified number of entries are visible (unless +# a fully collapsed tree already exceeds this amount). So setting the number of +# entries 1 will produce a full collapsed tree by default. 0 is a special value +# representing an infinite number of entries and will result in a full expanded +# tree by default. +# Minimum value: 0, maximum value: 9999, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_INDEX_NUM_ENTRIES = 100 + +# If the GENERATE_DOCSET tag is set to YES, additional index files will be +# generated that can be used as input for Apple's Xcode 3 integrated development +# environment (see: http://developer.apple.com/tools/xcode/), introduced with +# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a +# Makefile in the HTML output directory. Running make will produce the docset in +# that directory and running make install will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at +# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html +# for more information. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_DOCSET = NO + +# This tag determines the name of the docset feed. A documentation feed provides +# an umbrella under which multiple documentation sets from a single provider +# (such as a company or product suite) can be grouped. +# The default value is: Doxygen generated docs. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_FEEDNAME = "Doxygen generated docs" + +# This tag specifies a string that should uniquely identify the documentation +# set bundle. This should be a reverse domain-name style string, e.g. +# com.mycompany.MyDocSet. Doxygen will append .docset to the name. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_BUNDLE_ID = org.doxygen.Project + +# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify +# the documentation publisher. This should be a reverse domain-name style +# string, e.g. com.mycompany.MyDocSet.documentation. +# The default value is: org.doxygen.Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_ID = org.doxygen.Publisher + +# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. +# The default value is: Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_NAME = Publisher + +# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three +# additional HTML index files: index.hhp, index.hhc, and index.hhk. The +# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop +# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on +# Windows. +# +# The HTML Help Workshop contains a compiler that can convert all HTML output +# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML +# files are now used as the Windows 98 help format, and will replace the old +# Windows help format (.hlp) on all Windows platforms in the future. Compressed +# HTML files also contain an index, a table of contents, and you can search for +# words in the documentation. The HTML workshop also contains a viewer for +# compressed HTML files. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_HTMLHELP = NO + +# The CHM_FILE tag can be used to specify the file name of the resulting .chm +# file. You can add a path in front of the file if the result should not be +# written to the html output directory. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_FILE = + +# The HHC_LOCATION tag can be used to specify the location (absolute path +# including file name) of the HTML help compiler ( hhc.exe). If non-empty +# doxygen will try to run the HTML help compiler on the generated index.hhp. +# The file has to be specified with full path. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +HHC_LOCATION = + +# The GENERATE_CHI flag controls if a separate .chi index file is generated ( +# YES) or that it should be included in the master .chm file ( NO). +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +GENERATE_CHI = NO + +# The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc) +# and project file content. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_INDEX_ENCODING = + +# The BINARY_TOC flag controls whether a binary table of contents is generated ( +# YES) or a normal table of contents ( NO) in the .chm file. Furthermore it +# enables the Previous and Next buttons. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members to +# the table of contents of the HTML help documentation and to the tree view. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +TOC_EXPAND = NO + +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and +# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that +# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help +# (.qch) of the generated HTML documentation. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_QHP = NO + +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify +# the file name of the resulting .qch file. The path specified is relative to +# the HTML output folder. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QCH_FILE = + +# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help +# Project output. For more information please see Qt Help Project / Namespace +# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace). +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_NAMESPACE = org.doxygen.Project + +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt +# Help Project output. For more information please see Qt Help Project / Virtual +# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual- +# folders). +# The default value is: doc. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_VIRTUAL_FOLDER = doc + +# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom +# filter to add. For more information please see Qt Help Project / Custom +# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- +# filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_NAME = + +# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the +# custom filter to add. For more information please see Qt Help Project / Custom +# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- +# filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_ATTRS = + +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this +# project's filter section matches. Qt Help Project / Filter Attributes (see: +# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_SECT_FILTER_ATTRS = + +# The QHG_LOCATION tag can be used to specify the location of Qt's +# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the +# generated .qhp file. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHG_LOCATION = + +# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be +# generated, together with the HTML files, they form an Eclipse help plugin. To +# install this plugin and make it available under the help contents menu in +# Eclipse, the contents of the directory containing the HTML and XML files needs +# to be copied into the plugins directory of eclipse. The name of the directory +# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. +# After copying Eclipse needs to be restarted before the help appears. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_ECLIPSEHELP = NO + +# A unique identifier for the Eclipse help plugin. When installing the plugin +# the directory name containing the HTML and XML files should also have this +# name. Each documentation set should have its own identifier. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. + +ECLIPSE_DOC_ID = org.doxygen.Project + +# If you want full control over the layout of the generated HTML pages it might +# be necessary to disable the index and replace it with your own. The +# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top +# of each HTML page. A value of NO enables the index and the value YES disables +# it. Since the tabs in the index contain the same information as the navigation +# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +DISABLE_INDEX = NO + +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index +# structure should be generated to display hierarchical information. If the tag +# value is set to YES, a side panel will be generated containing a tree-like +# index structure (just like the one that is generated for HTML Help). For this +# to work a browser that supports JavaScript, DHTML, CSS and frames is required +# (i.e. any modern browser). Windows users are probably better off using the +# HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can +# further fine-tune the look of the index. As an example, the default style +# sheet generated by doxygen has an example that shows how to put an image at +# the root of the tree instead of the PROJECT_NAME. Since the tree basically has +# the same information as the tab index, you could consider setting +# DISABLE_INDEX to YES when enabling this option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_TREEVIEW = NO + +# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that +# doxygen will group on one line in the generated HTML documentation. +# +# Note that a value of 0 will completely suppress the enum values from appearing +# in the overview section. +# Minimum value: 0, maximum value: 20, default value: 4. +# This tag requires that the tag GENERATE_HTML is set to YES. + +ENUM_VALUES_PER_LINE = 4 + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used +# to set the initial width (in pixels) of the frame in which the tree is shown. +# Minimum value: 0, maximum value: 1500, default value: 250. +# This tag requires that the tag GENERATE_HTML is set to YES. + +TREEVIEW_WIDTH = 250 + +# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to +# external symbols imported via tag files in a separate window. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +EXT_LINKS_IN_WINDOW = NO + +# Use this tag to change the font size of LaTeX formulas included as images in +# the HTML documentation. When you change the font size after a successful +# doxygen run you need to manually remove any form_*.png images from the HTML +# output directory to force them to be regenerated. +# Minimum value: 8, maximum value: 50, default value: 10. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_FONTSIZE = 10 + +# Use the FORMULA_TRANPARENT tag to determine whether or not the images +# generated for formulas are transparent PNGs. Transparent PNGs are not +# supported properly for IE 6.0, but are supported on all modern browsers. +# +# Note that when changing this option you need to delete any form_*.png files in +# the HTML output directory before the changes have effect. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_TRANSPARENT = YES + +# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see +# http://www.mathjax.org) which uses client side Javascript for the rendering +# instead of using prerendered bitmaps. Use this if you do not have LaTeX +# installed or if you want to formulas look prettier in the HTML output. When +# enabled you may also need to install MathJax separately and configure the path +# to it using the MATHJAX_RELPATH option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +USE_MATHJAX = NO + +# When MathJax is enabled you can set the default output format to be used for +# the MathJax output. See the MathJax site (see: +# http://docs.mathjax.org/en/latest/output.html) for more details. +# Possible values are: HTML-CSS (which is slower, but has the best +# compatibility), NativeMML (i.e. MathML) and SVG. +# The default value is: HTML-CSS. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_FORMAT = HTML-CSS + +# When MathJax is enabled you need to specify the location relative to the HTML +# output directory using the MATHJAX_RELPATH option. The destination directory +# should contain the MathJax.js script. For instance, if the mathjax directory +# is located at the same level as the HTML output directory, then +# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax +# Content Delivery Network so you can quickly see the result without installing +# MathJax. However, it is strongly recommended to install a local copy of +# MathJax from http://www.mathjax.org before deployment. +# The default value is: http://cdn.mathjax.org/mathjax/latest. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest + +# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax +# extension names that should be enabled during MathJax rendering. For example +# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_EXTENSIONS = + +# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces +# of code that will be used on startup of the MathJax code. See the MathJax site +# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an +# example see the documentation. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_CODEFILE = + +# When the SEARCHENGINE tag is enabled doxygen will generate a search box for +# the HTML output. The underlying search engine uses javascript and DHTML and +# should work on any modern browser. Note that when using HTML help +# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) +# there is already a search function so this one should typically be disabled. +# For large projects the javascript based search engine can be slow, then +# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to +# search using the keyboard; to jump to the search box use + S +# (what the is depends on the OS and browser, but it is typically +# , /