Skip to content

Commit 6366638

Browse files
committed
Pre-Release v0.2.0
1 parent 568c35e commit 6366638

278 files changed

Lines changed: 8727 additions & 8127 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

BUILDING.md

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
* [Window (10/11)](BUILDING.md#windows-1011)
66
* [Ubuntu (22.04/24.04)](BUILDING.md#ubuntu-22042404)
7-
* [macOS (14/15)](BUILDING.md#macos-1415)
7+
* [macOS (15/26)](BUILDING.md#macos-1526)
88
* [Build Project](BUILDING.md#build-project)
99

1010

@@ -19,7 +19,7 @@
1919

2020
## 2. Install Git
2121

22-
* Download and install latest version from [git-cms.com](https://git-scm.com/downloads)
22+
* Download and install latest version from [git-cms.com](https://git-scm.com/install/windows)
2323

2424
You may use default Git install options or chose any other default Git editor instead of **Vim**.
2525

@@ -42,7 +42,7 @@ You may use default Git install options or chose any other default Git editor in
4242
2. And ```sudo apt-get install git cmake gcc g++```
4343

4444

45-
# macOS (14/15)
45+
# macOS (15/26)
4646

4747
## 1. Install Xcode (Or any other IDE)
4848

@@ -60,17 +60,18 @@ You may use default Git install options or chose any other default Git editor in
6060

6161
To build the project run one of the [scripts](scripts/) using **Terminal**, **Git Bash** or build it using **IDE**.
6262

63-
## Visual Studio (2022)
63+
## Visual Studio
6464

65-
1. Open **Visual Studio 2022** IDE
66-
2. Click "Open a local folder" and open the repository folder
67-
3. Click **Build -> Build All** to build the project
65+
1. Open **Visual Studio** IDE application
66+
2. Click "Open a project or solution" and open the repository **CMakeLists.txt**
67+
3. Wait for project CMake generation to finish
68+
4. Click **Build -> Build All** to build the project
6869

6970
## Visual Studio Code (VS Code)
7071

71-
1. Open **Visual Studio Code** IDE
72+
1. Open **Visual Studio Code** IDE application
7273
2. Install "C/C++" And "CMake Tools" extensions
7374
3. Click **File -> Open Folder...** and open the repository folder
74-
4. Click **Yes** in "Would you like to configure project..."
75-
5. Select one of the compiler **Kits** in the opened window
76-
6. Click **Build** button at the bottom bar to build the engine
75+
4. Select one of the compiler **Kits** in the opened window
76+
5. Wait for project CMake generation to finish
77+
6. Click **Build** button at the bottom bar to build the project

CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright 2022-2025 Nikita Fediuchin. All rights reserved.
1+
# Copyright 2022-2026 Nikita Fediuchin. All rights reserved.
22
#
33
# Licensed under the Apache License, Version 2.0 (the "License");
44
# you may not use this file except in compliance with the License.
@@ -22,7 +22,7 @@ if(TARGET math-static)
2222
return()
2323
endif()
2424

25-
project(math VERSION 0.1.0 LANGUAGES CXX
25+
project(math VERSION 0.2.0 LANGUAGES CXX
2626
DESCRIPTION "Linear algebra mathematics library."
2727
HOMEPAGE_URL "https://github.com/cfnptr/math")
2828

Doxyfile

Lines changed: 158 additions & 66 deletions
Large diffs are not rendered by default.

README.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,29 +6,32 @@ See the [documentation](https://cfnptr.github.io/math).
66

77
## Features
88

9-
* Vector (float2/3/4, int2/3/4)
9+
* Vector (float2/3/4, int2/3/4, half)
1010
* Matrix (float2x2/3x3/4x4)
1111
* Quaternion (float4)
12-
* Euler angles, radians conversion
12+
* SIMD optimized (f32x4, f32x4x4, f16x4)
13+
* Euler angles/radians conversion
1314
* Matrix translate, scale, rotate
1415
* Pespective, orthographics projection
1516
* Ray, line, plane, triangle, sphere...
1617
* Axis aligned bounding box (AABB)
18+
* Frustum culling, matrix extraction
1719
* Bounding volume hierarchy (BVH)
1820
* Color conversion (RGBA, linear)
1921
* Version (major, minor, patch, build)
2022
* Hexadecimal string conversion
23+
* Packed vector (1bit container)
2124
* Tone mapping, gamma correction
2225
* Image based lighting (IBL, BRDF)
2326
* Spherical harmonics (SH)
2427
* Enum class flags declaration
25-
* Simplified integer types (uint32, int8, etc)
28+
* Simplified integer types (int64, uint32, int8...)
2629

2730
## Supported operating systems
2831

2932
* Windows (10/11)
3033
* Ubuntu (22.04/24.04)
31-
* macOS (14/15)
34+
* macOS (15/26)
3235

3336
This list includes only those systems on which functionality testing is conducted.
3437
However, you can also compile it under any other Linux distribution or operating system.

docs/aabb_8hpp.html

Lines changed: 24 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<head>
44
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
55
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
6-
<meta name="generator" content="Doxygen 1.13.2"/>
6+
<meta name="generator" content="Doxygen 1.15.0"/>
77
<meta name="viewport" content="width=device-width, initial-scale=1"/>
88
<title>Math: include/math/aabb.hpp File Reference</title>
99
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -14,10 +14,8 @@
1414
<link href="navtree.css" rel="stylesheet" type="text/css"/>
1515
<script type="text/javascript" src="navtreedata.js"></script>
1616
<script type="text/javascript" src="navtree.js"></script>
17-
<script type="text/javascript" src="resize.js"></script>
1817
<script type="text/javascript" src="cookie.js"></script>
1918
<link href="doxygen.css" rel="stylesheet" type="text/css" />
20-
<link href="theme.css" rel="stylesheet" type="text/css"/>
2119
</head>
2220
<body>
2321
<div id="side-nav" class="ui-resizable side-nav-resizable"><!-- do not remove this div, it is closed by doxygen! -->
@@ -27,19 +25,17 @@
2725
<tbody>
2826
<tr id="projectrow">
2927
<td id="projectalign">
30-
<div id="projectname">Math<span id="projectnumber">&#160;v0.1.0</span>
28+
<div id="projectname">Math<span id="projectnumber">&#160;v0.2.0</span>
3129
</div>
3230
</td>
3331
</tr>
3432
</tbody>
3533
</table>
3634
</div>
3735
<!-- end header part -->
38-
<!-- Generated by Doxygen 1.13.2 -->
36+
<!-- Generated by Doxygen 1.15.0 -->
3937
<script type="text/javascript">
40-
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
41-
$(function() { codefold.init(0); });
42-
/* @license-end */
38+
$(function() { codefold.init(); });
4339
</script>
4440
</div><!-- top -->
4541
<div id="nav-tree">
@@ -52,40 +48,34 @@
5248
</div>
5349
</div>
5450
<script type="text/javascript">
55-
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
56-
$(function(){initNavTree('aabb_8hpp.html',''); initResizable(true); });
57-
/* @license-end */
51+
$(function(){initNavTree('aabb_8hpp.html','',''); });
5852
</script>
53+
<div id="container">
5954
<div id="doc-content">
6055
<div class="header">
61-
<div class="summary">
62-
<a href="#nested-classes">Classes</a> &#124;
63-
<a href="#func-members">Functions</a> </div>
6456
<div class="headertitle"><div class="title">aabb.hpp File Reference</div></div>
6557
</div><!--header-->
6658
<div class="contents">
6759

6860
<p>Axis Aligned Bounding Box functions.
6961
<a href="#details">More...</a></p>
7062
<div class="textblock"><code>#include &quot;<a class="el" href="ray_8hpp.html">math/ray.hpp</a>&quot;</code><br />
71-
<code>#include &quot;<a class="el" href="plane_8hpp.html">math/plane.hpp</a>&quot;</code><br />
63+
<code>#include &quot;<a class="el" href="frustum_8hpp.html">math/frustum.hpp</a>&quot;</code><br />
7264
</div><table class="memberdecls">
73-
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
65+
<tr class="heading"><td colspan="2"><h2 id="header-nested-classes" class="groupheader"><a id="nested-classes" name="nested-classes"></a>
7466
Classes</h2></td></tr>
75-
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmath_1_1Aabb.html">Aabb</a></td></tr>
76-
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Axis Aligned Bounding Box structure. (AABB) <a href="structmath_1_1Aabb.html#details">More...</a><br /></td></tr>
77-
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
67+
<tr class="memitem:Aabb" id="r_Aabb"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmath_1_1Aabb.html">Aabb</a></td></tr>
68+
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Axis Aligned Bounding Box structure. (AABB). <a href="structmath_1_1Aabb.html#details">More...</a><br /></td></tr>
7869
</table><table class="memberdecls">
79-
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
70+
<tr class="heading"><td colspan="2"><h2 id="header-func-members" class="groupheader"><a id="func-members" name="func-members"></a>
8071
Functions</h2></td></tr>
8172
<tr class="memitem:aa39427c50872b0f8bf4c55b0c6ebfa87" id="r_aa39427c50872b0f8bf4c55b0c6ebfa87"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa39427c50872b0f8bf4c55b0c6ebfa87">isAabbIntersected</a> (<a class="el" href="structmath_1_1f32x4.html">f32x4</a> position, <a class="el" href="structmath_1_1f32x4.html">f32x4</a> <a class="elRef" href="https://en.cppreference.com/w/cpp/types/extent.html">extent</a>, const <a class="el" href="structmath_1_1Triangle.html">Triangle</a> &amp;triangle) noexcept</td></tr>
8273
<tr class="memdesc:aa39427c50872b0f8bf4c55b0c6ebfa87"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if triangle intersects the AABB. <br /></td></tr>
83-
<tr class="separator:aa39427c50872b0f8bf4c55b0c6ebfa87"><td class="memSeparator" colspan="2">&#160;</td></tr>
8474
</table>
85-
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
75+
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
8676
<div class="textblock"><p>Axis Aligned Bounding Box functions. </p>
8777
<p>Based on this: <a href="https://gdbooks.gitbooks.io/3dcollisions/content/">https://gdbooks.gitbooks.io/3dcollisions/content/</a> </p>
88-
</div><h2 class="groupheader">Function Documentation</h2>
78+
</div><a name="doc-func-members" id="doc-func-members"></a><h2 id="header-doc-func-members" class="groupheader">Function Documentation</h2>
8979
<a id="aa39427c50872b0f8bf4c55b0c6ebfa87" name="aa39427c50872b0f8bf4c55b0c6ebfa87"></a>
9080
<h2 class="memtitle"><span class="permalink"><a href="#aa39427c50872b0f8bf4c55b0c6ebfa87">&#9670;&#160;</a></span>isAabbIntersected()</h2>
9181

@@ -119,7 +109,7 @@ <h2 class="memtitle"><span class="permalink"><a href="#aa39427c50872b0f8bf4c55b0
119109
</div><div class="memdoc">
120110

121111
<p>Returns true if triangle intersects the AABB. </p>
122-
<p>Usefull for a fast 3D model voxelization.</p>
112+
<p>Useful for a fast 3D model voxelization.</p>
123113
<dl class="params"><dt>Parameters</dt><dd>
124114
<table class="params">
125115
<tr><td class="paramdir"></td><td class="paramname">position</td><td>target AABB position in 3D space </td></tr>
@@ -133,11 +123,19 @@ <h2 class="memtitle"><span class="permalink"><a href="#aa39427c50872b0f8bf4c55b0
133123
</div>
134124
</div><!-- contents -->
135125
</div><!-- doc-content -->
126+
<div id="page-nav" class="page-nav-panel">
127+
<div id="page-nav-resize-handle"></div>
128+
<div id="page-nav-tree">
129+
<div id="page-nav-contents">
130+
</div><!-- page-nav-contents -->
131+
</div><!-- page-nav-tree -->
132+
</div><!-- page-nav -->
133+
</div><!-- container -->
136134
<!-- start footer part -->
137135
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
138136
<ul>
139-
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_fba38f648377aa56ae5d69782adf9e53.html">math</a></li><li class="navelem"><a class="el" href="aabb_8hpp.html">aabb.hpp</a></li>
140-
<li class="footer">Generated on Mon Apr 28 2025 for Math by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
137+
<li class="navelem"><b>include</b></li><li class="navelem"><b>math</b></li><li class="navelem"><a href="aabb_8hpp.html">aabb.hpp</a></li>
138+
<li class="footer">Generated on <span class="timestamp"></span> for Math by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0 </li>
141139
</ul>
142140
</div>
143141
</body>

docs/aabb_8hpp.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
var aabb_8hpp =
22
[
33
[ "Aabb", "structmath_1_1Aabb.html", "structmath_1_1Aabb" ],
4-
[ "isAabbIntersected", "aabb_8hpp.html#aa39427c50872b0f8bf4c55b0c6ebfa87", null ]
4+
[ "math::isAabbIntersected", "aabb_8hpp.html#aa39427c50872b0f8bf4c55b0c6ebfa87", null ]
55
];

docs/angles_8hpp.html

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<head>
44
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
55
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
6-
<meta name="generator" content="Doxygen 1.13.2"/>
6+
<meta name="generator" content="Doxygen 1.15.0"/>
77
<meta name="viewport" content="width=device-width, initial-scale=1"/>
88
<title>Math: include/math/angles.hpp File Reference</title>
99
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -14,10 +14,8 @@
1414
<link href="navtree.css" rel="stylesheet" type="text/css"/>
1515
<script type="text/javascript" src="navtreedata.js"></script>
1616
<script type="text/javascript" src="navtree.js"></script>
17-
<script type="text/javascript" src="resize.js"></script>
1817
<script type="text/javascript" src="cookie.js"></script>
1918
<link href="doxygen.css" rel="stylesheet" type="text/css" />
20-
<link href="theme.css" rel="stylesheet" type="text/css"/>
2119
</head>
2220
<body>
2321
<div id="side-nav" class="ui-resizable side-nav-resizable"><!-- do not remove this div, it is closed by doxygen! -->
@@ -27,19 +25,17 @@
2725
<tbody>
2826
<tr id="projectrow">
2927
<td id="projectalign">
30-
<div id="projectname">Math<span id="projectnumber">&#160;v0.1.0</span>
28+
<div id="projectname">Math<span id="projectnumber">&#160;v0.2.0</span>
3129
</div>
3230
</td>
3331
</tr>
3432
</tbody>
3533
</table>
3634
</div>
3735
<!-- end header part -->
38-
<!-- Generated by Doxygen 1.13.2 -->
36+
<!-- Generated by Doxygen 1.15.0 -->
3937
<script type="text/javascript">
40-
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
41-
$(function() { codefold.init(0); });
42-
/* @license-end */
38+
$(function() { codefold.init(); });
4339
</script>
4440
</div><!-- top -->
4541
<div id="nav-tree">
@@ -52,10 +48,9 @@
5248
</div>
5349
</div>
5450
<script type="text/javascript">
55-
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
56-
$(function(){initNavTree('angles_8hpp.html',''); initResizable(true); });
57-
/* @license-end */
51+
$(function(){initNavTree('angles_8hpp.html','',''); });
5852
</script>
53+
<div id="container">
5954
<div id="doc-content">
6055
<div class="header">
6156
<div class="headertitle"><div class="title">angles.hpp File Reference</div></div>
@@ -65,15 +60,23 @@
6560
<p>Common radians/degrees conversion functions.
6661
<a href="#details">More...</a></p>
6762
<div class="textblock"><code>#include &quot;<a class="el" href="vector_8hpp.html">math/vector.hpp</a>&quot;</code><br />
68-
</div><a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
63+
</div><a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
6964
<div class="textblock"><p>Common radians/degrees conversion functions. </p>
7065
</div></div><!-- contents -->
7166
</div><!-- doc-content -->
67+
<div id="page-nav" class="page-nav-panel">
68+
<div id="page-nav-resize-handle"></div>
69+
<div id="page-nav-tree">
70+
<div id="page-nav-contents">
71+
</div><!-- page-nav-contents -->
72+
</div><!-- page-nav-tree -->
73+
</div><!-- page-nav -->
74+
</div><!-- container -->
7275
<!-- start footer part -->
7376
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
7477
<ul>
75-
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_fba38f648377aa56ae5d69782adf9e53.html">math</a></li><li class="navelem"><a class="el" href="angles_8hpp.html">angles.hpp</a></li>
76-
<li class="footer">Generated on Mon Apr 28 2025 for Math by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
78+
<li class="navelem"><b>include</b></li><li class="navelem"><b>math</b></li><li class="navelem"><a href="angles_8hpp.html">angles.hpp</a></li>
79+
<li class="footer">Generated on <span class="timestamp"></span> for Math by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0 </li>
7780
</ul>
7881
</div>
7982
</body>

0 commit comments

Comments
 (0)