diff --git a/writerside/o.tree b/writerside/o.tree index 19fe877..df951e5 100644 --- a/writerside/o.tree +++ b/writerside/o.tree @@ -8,6 +8,7 @@ + \ No newline at end of file diff --git a/writerside/topics/Code-Of-Conduct.md b/writerside/topics/Code-Of-Conduct.md new file mode 100644 index 0000000..bf54248 --- /dev/null +++ b/writerside/topics/Code-Of-Conduct.md @@ -0,0 +1,95 @@ +# Code Of Conduct + +## 🎯 Goal + +My goal is to provide a space where it is safe for everyone to contribute to, +and get support for, open-source software in a respectful and cooperative +manner. + +I value all contributions and want to make this project and its +surrounding community a place for everyone. + +As members, contributors, and everyone else who may participate in the +development, I strive to keep the entire experience civil. + +## 📜 Standards + +Our community standards exist in order to make sure everyone feels comfortable +contributing to the project(s) together. + +Our standards are: +- Do not harass, attack, or in any other way discriminate against anyone, including + for their protected traits, including, but not limited to, sex, religion, race, + appearance, gender, identity, nationality, sexuality, etc. +- Do not go off-topic, do not post spam. +- Treat everyone with respect. + +Examples of breaking each rule respectively include: +- Harassment, bullying or inappropriate jokes about another person. +- Posting distasteful imagery, trolling, or posting things unrelated to the topic at hand. +- Treating someone as worse because of their lack of understanding of an issue. + +## ⚡ Enforcement + +Enforcement of this CoC is done by Orange++ and/or other core contributors. + +I, as the core developer, will strive my best to keep this community civil and +following the standards outlined above. + +### 🚩 Reporting incidents + +If you believe an incident of breaking these standards has occurred, but nobody has +taken appropriate action, you can privately contact the people responsible for dealing +with such incidents in multiple ways: + +***E-Mail*** +- `orange-cpp@yandex.ru` + +***Discord*** +- `@orange_cpp` + +***Telegram*** +- `@orange_cpp` + +I guarantee your privacy and will not share those reports with anyone. + +## ⚖️ Enforcement Strategy + +Depending on the severity of the infraction, any action from the list below may be applied. +Please keep in mind cases are reviewed on a per-case basis and members are the ultimate +deciding factor in the type of punishment. + +If the matter benefited from an outside opinion, a member might reach for more opinions +from people unrelated, however, the final decision regarding the action +to be taken is still up to the member. + +For example, if the matter at hand regards a representative of a marginalized group or minority, +the member might ask for a first-hand opinion from another representative of such group. + +### ✏️ Correction/Edit + +If your message is found to be misleading or poorly worded, a member might +edit your message. + +### ⚠️ Warning/Deletion + +If your message is found inappropriate, a member might give you a public or private warning, +and/or delete your message. + +### 🔇 Mute + +If your message is disruptive, or you have been repeatedly violating the standards, +a member might mute (or temporarily ban) you. + +### ⛔ Ban + +If your message is hateful, very disruptive, or other, less serious infractions are repeated +ignoring previous punishments, a member might ban you permanently. + +## 🔎 Scope + +This CoC shall apply to all projects ran under the Orange++ lead and all _official_ communities +outside of GitHub. + +However, it is worth noting that official communities outside of GitHub might have their own, +additional sets of rules. \ No newline at end of file diff --git a/writerside/topics/Community.md b/writerside/topics/Community.md index da45b23..4f18848 100644 --- a/writerside/topics/Community.md +++ b/writerside/topics/Community.md @@ -1,3 +1,11 @@ -# Community +# Credits -Start typing here... \ No newline at end of file +Thanks to everyone who made this possible, including: + +- Saikari aka luadebug for VCPKG port. + +And a big hand to everyone else who has contributed over the past! + +THANKS! <3 + + -- Orange++ \ No newline at end of file diff --git a/writerside/topics/Documentation.md b/writerside/topics/Documentation.md index ce9cb24..a99f4a2 100644 --- a/writerside/topics/Documentation.md +++ b/writerside/topics/Documentation.md @@ -1,3 +1,54 @@ -# Documentation +# 📥Installation Guide -Start typing here... \ No newline at end of file +## Using vcpkg +**Note**: Support vcpkg for package management +1. Install [vcpkg](https://github.com/microsoft/vcpkg) +2. Run the following command to install the orange-math package: +``` +vcpkg install orange-math +``` +CMakeLists.txt +```cmake +find_package(omath CONFIG REQUIRED) +target_link_libraries(main PRIVATE omath::omath) +``` +For detailed commands on installing different versions and more information, please refer to Microsoft's [official instructions](https://learn.microsoft.com/en-us/vcpkg/get_started/overview). + +## Build from source using CMake +1. **Preparation** + + Install needed tools: cmake, clang, git, msvc (windows only). + + 1. **Linux:** + ```bash + sudo pacman -Sy cmake ninja clang git + ``` + 2. **MacOS:** + ```bash + brew install llvm git cmake ninja + ``` + 3. **Windows:** + + Install Visual Studio from [here](https://visualstudio.microsoft.com/downloads/) and Git from [here](https://git-scm.com/downloads). + + Use x64 Native Tools shell to execute needed commands down below. +2. **Clone the repository:** + ```bash + git clone https://github.com/orange-cpp/omath.git + ``` +3. **Navigate to the project directory:** + ```bash + cd omath + ``` +4. **Build the project using CMake:** + ```bash + cmake --preset windows-release -S . + cmake --build cmake-build/build/windows-release --target omath -j 6 + ``` + Use **\-\** preset to build siutable version for yourself. Like **windows-release** or **linux-release**. + + | Platform Name | Build Config | + |---------------|---------------| + | windows | release/debug | + | linux | release/debug | + | darwin | release/debug | \ No newline at end of file diff --git a/writerside/topics/starter-topic.md b/writerside/topics/starter-topic.md index 4b755de..878557f 100644 --- a/writerside/topics/starter-topic.md +++ b/writerside/topics/starter-topic.md @@ -1,8 +1,10 @@ -# Introduction +# Intro + +![banner](https://i.imgur.com/SM9ccP6.png) Oranges's Math Library (omath) is a comprehensive, open-source library aimed at providing efficient, reliable, and versatile mathematical functions and algorithms. Developed primarily in C++, this library is designed to cater to a wide range of mathematical operations essential in scientific computing, engineering, and academic research. -## Features +## 👁‍🗨 Features - **Efficiency**: Optimized for performance, ensuring quick computations using AVX2. - **Versatility**: Includes a wide array of mathematical functions and algorithms. - **Ease of Use**: Simplified interface for convenient integration into various projects. @@ -12,21 +14,54 @@ Oranges's Math Library (omath) is a comprehensive, open-source library aimed at - **No Additional Dependencies**: No additional dependencies need to use OMath except unit test execution - **Ready for meta-programming**: Omath use templates for common types like Vectors, Matrixes etc, to handle all types! -| ENGINE | SUPPORT | -|:--------:|:-------:| -| Source | ✅YES | -| Unity | ✅YES | -| IWEngine | ✅YES | -| Unreal | ❌NO | +## Supported Render Pipelines +| ENGINE | SUPPORT | +|----------|---------| +| Source | ✅YES | +| Unity | ✅YES | +| IWEngine | ✅YES | +| Unreal | ❌NO | + +## Supported Operating Systems + +| OS | SUPPORT | +|----------------|---------| +| Windows 10/11 | ✅YES | +| Linux | ✅YES | +| Darwin (MacOS) | ✅YES | + +## ⏬ Installation +Please read our [installation guide](https://github.com/orange-cpp/omath/blob/main/INSTALL.md). If this link doesn't work check out INSTALL.md file. + +## ❔ Usage +Simple world to screen function +```c++ +TEST(UnitTestProjection, IsPointOnScreen) +{ + const omath::projection::Camera camera({0.f, 0.f, 0.f}, {0, 0.f, 0.f} , {1920.f, 1080.f}, 110.f, 0.1f, 500.f); + + const auto proj = camera.WorldToScreen({100, 0, 15}); + EXPECT_TRUE(proj.has_value()); +} +``` +## Showcase + +With `omath/projection` module you can achieve simple ESP hack for powered by Source/Unreal/Unity engine games, like [Apex Legends](https://store.steampowered.com/app/1172470/Apex_Legends/). + +![banner](https://i.imgur.com/lcJrfcZ.png) +Or for InfinityWard Engine based games. Like Call of Duty Black Ops 2! +![banner](https://i.imgur.com/F8dmdoo.png) +Or create simple trigger bot with embeded traceline from omath::collision::LineTrace +![banner](https://i.imgur.com/fxMjRKo.jpeg) +Or even advanced projectile aimbot +[Watch Video](https://youtu.be/lM_NJ1yCunw?si=5E87OrQMeypxSJ3E) -## Acknowledgments -We value each person that made pull request to this project! And YOU can become one of them! +## 🫵🏻 Contributing +Contributions to `omath` are welcome! Please read `CONTRIBUTING.md` for details on our code of conduct and the process for submitting pull requests. + +## 📜 License +This project is licensed under the MIT - see the `LICENSE` file for details. + +## 💘 Acknowledgments - [All contributors](https://github.com/orange-cpp/omath/graphs/contributors) - - - GitHub repository - YouGame thread - - -