[DOC] basic step ended all documented
This commit is contained in:
parent
5f287ebdfe
commit
57c20d0aae
42
doc/index.bb
42
doc/index.bb
@ -1,42 +0,0 @@
|
|||||||
== [center]ETK library[/center] ==
|
|
||||||
__________________________________________________
|
|
||||||
|
|
||||||
===What is ETK, and how can I use it?===
|
|
||||||
ETK, or Ewol Tool kit is a simple abstraction layer for some elements like mutex, std missing element(in android or MacOS) and ...
|
|
||||||
|
|
||||||
We can simply say: Just a tool-box
|
|
||||||
|
|
||||||
|
|
||||||
ETK is composed of some part:
|
|
||||||
:** Log system interface
|
|
||||||
:** File access abstraction (for android, data are stored in a .apk (== zip file))
|
|
||||||
:** Mutex / semaphore abstraction (can not use pthread on windows)
|
|
||||||
:** Regular expression
|
|
||||||
:** Generic color interface
|
|
||||||
:** Std adding missing element on some platform.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
===What languages are supported?===
|
|
||||||
ETK is written in C++.
|
|
||||||
|
|
||||||
|
|
||||||
===Are there any licensing restrictions?===
|
|
||||||
ETK is [b]FREE software[/b]
|
|
||||||
|
|
||||||
|
|
||||||
==== License (APACHE-2.0) ====
|
|
||||||
Copyright etk Edouard DUPIN
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
50
doc/mainpage.md
Normal file
50
doc/mainpage.md
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
ETK library {#mainpage}
|
||||||
|
===========
|
||||||
|
|
||||||
|
What is ETK, and how can I use it?
|
||||||
|
----------------------------------
|
||||||
|
|
||||||
|
ETK, or Ewol Tool kit is a simple abstraction layer for some elements like mutex, std missing element(in android or MacOS) and ...
|
||||||
|
|
||||||
|
We can simply say: Just a tool-box **(I use it to add many test prototyping ... and bad things ...)**
|
||||||
|
|
||||||
|
|
||||||
|
ETK is composed of some part:
|
||||||
|
- Log system interface
|
||||||
|
- File access abstraction (for android, data are stored in a .apk (== zip file))
|
||||||
|
- Mutex / semaphore abstraction (can not use pthread on windows)
|
||||||
|
- Regular expression
|
||||||
|
- Generic color interface
|
||||||
|
- Std adding missing element on some platform.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
What languages are supported?
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
ETK is written in C++.
|
||||||
|
|
||||||
|
|
||||||
|
Are there any licensing restrictions?
|
||||||
|
-------------------------------------
|
||||||
|
|
||||||
|
ETK is **FREE software** and //all sub-library are FREE and staticly linkable !!!//
|
||||||
|
|
||||||
|
|
||||||
|
License (APACHE-2.0)
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Copyright etk Edouard DUPIN
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
<http://www.apache.org/licenses/LICENSE-2.0>
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
|
@ -10,7 +10,11 @@ def create(target, module_name):
|
|||||||
my_module.set_title("Etk: Ewol Tool Kit")
|
my_module.set_title("Etk: Ewol Tool Kit")
|
||||||
my_module.set_website("http://atria-soft.github.io/" + module_name)
|
my_module.set_website("http://atria-soft.github.io/" + module_name)
|
||||||
my_module.set_website_sources("http://github.com/atria-soft/" + module_name)
|
my_module.set_website_sources("http://github.com/atria-soft/" + module_name)
|
||||||
my_module.set_path(os.path.join(tools.get_current_path(__file__), module_name))
|
my_module.add_path([
|
||||||
|
module_name,
|
||||||
|
"doc"
|
||||||
|
])
|
||||||
|
my_module.add_data_path("data/dox")
|
||||||
my_module.add_module_depend([
|
my_module.add_module_depend([
|
||||||
'elog'
|
'elog'
|
||||||
])
|
])
|
||||||
|
@ -93,7 +93,7 @@ namespace etk {
|
|||||||
* @return reference on this element.
|
* @return reference on this element.
|
||||||
*/
|
*/
|
||||||
Color<MY_TYPE,MY_TYPE_SIZE>& operator=(const etk::Color<MY_TYPE,MY_TYPE_SIZE>& _input) {
|
Color<MY_TYPE,MY_TYPE_SIZE>& operator=(const etk::Color<MY_TYPE,MY_TYPE_SIZE>& _input) {
|
||||||
for (size_t iii=0; iii<MY_TYPE_SIZE;iii) {
|
for (size_t iii=0; iii<MY_TYPE_SIZE; ++iii) {
|
||||||
m_element[iii] = _input.m_element[iii];
|
m_element[iii] = _input.m_element[iii];
|
||||||
}
|
}
|
||||||
return *this;
|
return *this;
|
||||||
@ -105,7 +105,7 @@ namespace etk {
|
|||||||
* @return false This is the same color.
|
* @return false This is the same color.
|
||||||
*/
|
*/
|
||||||
bool operator!= (const etk::Color<MY_TYPE,MY_TYPE_SIZE>& _obj) const {
|
bool operator!= (const etk::Color<MY_TYPE,MY_TYPE_SIZE>& _obj) const {
|
||||||
for (size_t iii=0; iii<MY_TYPE_SIZE;iii) {
|
for (size_t iii=0; iii<MY_TYPE_SIZE;++iii) {
|
||||||
if(m_element[iii] != _obj.m_element[iii]) {
|
if(m_element[iii] != _obj.m_element[iii]) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -119,7 +119,7 @@ namespace etk {
|
|||||||
* @return false The color are different.
|
* @return false The color are different.
|
||||||
*/
|
*/
|
||||||
bool operator== (const etk::Color<MY_TYPE,MY_TYPE_SIZE>& _obj) const {
|
bool operator== (const etk::Color<MY_TYPE,MY_TYPE_SIZE>& _obj) const {
|
||||||
for (size_t iii=0; iii<MY_TYPE_SIZE;iii) {
|
for (size_t iii=0; iii<MY_TYPE_SIZE;++iii) {
|
||||||
if(m_element[iii] != _obj.m_element[iii]) {
|
if(m_element[iii] != _obj.m_element[iii]) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -645,7 +645,7 @@ namespace etk {
|
|||||||
}
|
}
|
||||||
//! @not_in_doc
|
//! @not_in_doc
|
||||||
template<typename MY_TYPE, int MY_TYPE_SIZE> std::ostream& operator <<(std::ostream& _os, const std::vector<Color<MY_TYPE, MY_TYPE_SIZE> >& _obj) {
|
template<typename MY_TYPE, int MY_TYPE_SIZE> std::ostream& operator <<(std::ostream& _os, const std::vector<Color<MY_TYPE, MY_TYPE_SIZE> >& _obj) {
|
||||||
for (size_t iii = 0; iii < _obj.size();iii) {
|
for (size_t iii = 0; iii < _obj.size(); ++iii) {
|
||||||
if (iii != 0) {
|
if (iii != 0) {
|
||||||
_os << " ";
|
_os << " ";
|
||||||
}
|
}
|
||||||
|
@ -119,7 +119,7 @@ etk::Noise::Noise(enum etk::noiseType _type, ivec2 _size, int32_t _depth) :
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case etk::noiseType_turbulence_no_smooth:
|
case etk::noiseType_turbulenceNoSmooth:
|
||||||
{
|
{
|
||||||
etk::BaseNoise myNoise(ivec2(m_size.x()/_depth,m_size.y()/_depth),0.0f,1.0f);
|
etk::BaseNoise myNoise(ivec2(m_size.x()/_depth,m_size.y()/_depth),0.0f,1.0f);
|
||||||
for(int32_t iii=0; iii<m_size.y(); iii++) {
|
for(int32_t iii=0; iii<m_size.y(); iii++) {
|
||||||
|
@ -46,7 +46,7 @@ namespace etk {
|
|||||||
noiseType_base, //!< basic random noise
|
noiseType_base, //!< basic random noise
|
||||||
noiseType_smooth, //!< Noise smoothed
|
noiseType_smooth, //!< Noise smoothed
|
||||||
noiseType_turbulence, //!< Noise in turbulence mode
|
noiseType_turbulence, //!< Noise in turbulence mode
|
||||||
noiseType_turbulence_no_smooth, //!< Noise Turbulence with no smooth apply
|
noiseType_turbulenceNoSmooth, //!< Noise Turbulence with no smooth apply
|
||||||
noiseType_cloud, //!< Noise like a cloud
|
noiseType_cloud, //!< Noise like a cloud
|
||||||
noiseType_marble, //!< Noise like marble
|
noiseType_marble, //!< Noise like marble
|
||||||
noiseType_wood //!< Noise like wood
|
noiseType_wood //!< Noise like wood
|
||||||
|
@ -15,7 +15,7 @@ namespace etk {
|
|||||||
* @brief Transformation matrix for vector 2D.
|
* @brief Transformation matrix for vector 2D.
|
||||||
*/
|
*/
|
||||||
class Matrix2 {
|
class Matrix2 {
|
||||||
private:
|
public:
|
||||||
/**
|
/**
|
||||||
* @brief Internal data
|
* @brief Internal data
|
||||||
* sx shx tx
|
* sx shx tx
|
||||||
@ -173,6 +173,12 @@ namespace etk {
|
|||||||
* @return The inverted matrix.
|
* @return The inverted matrix.
|
||||||
*/
|
*/
|
||||||
void invert();
|
void invert();
|
||||||
|
friend Matrix2 mat2Rotate(float);
|
||||||
|
friend Matrix2 mat2Scale(const vec2&);
|
||||||
|
friend Matrix2 mat2Scale(float);
|
||||||
|
friend Matrix2 mat2Translate(const vec2&);
|
||||||
|
friend Matrix2 mat2Skew(const vec2&);
|
||||||
|
friend std::ostream& operator <<(std::ostream&, const etk::Matrix2&);
|
||||||
};
|
};
|
||||||
/**
|
/**
|
||||||
* @brief Create a matrix 2D with a simple rotation
|
* @brief Create a matrix 2D with a simple rotation
|
||||||
|
@ -398,41 +398,3 @@ std::ostream& etk::operator <<(std::ostream& _os, const etk::Matrix4& _obj) {
|
|||||||
}
|
}
|
||||||
return _os;
|
return _os;
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
|
|
||||||
std::ostream& operator <<(std::ostream& _os, const mat4& _obj) {
|
|
||||||
_os << "matrix4 : ({";
|
|
||||||
for (int32_t iii=0; iii<4; iii++) {
|
|
||||||
if (iii!= 0) {
|
|
||||||
_os << "},{";
|
|
||||||
}
|
|
||||||
for (int32_t jjj=0; jjj<4; jjj++) {
|
|
||||||
if (jjj!= 0) {
|
|
||||||
_os << ",";
|
|
||||||
}
|
|
||||||
_os << _obj.getElem(jjj,iii);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
_os << "})";
|
|
||||||
return _os;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
mat4 etk::matTranslate(const vec3& _vect) {
|
|
||||||
mat4 tmp;
|
|
||||||
tmp.translation(_vect);
|
|
||||||
return tmp;
|
|
||||||
}
|
|
||||||
|
|
||||||
mat4 etk::matScale(const vec3& _vect) {
|
|
||||||
mat4 tmp;
|
|
||||||
tmp.scale(_vect);
|
|
||||||
return tmp;
|
|
||||||
}
|
|
||||||
|
|
||||||
mat4 etk::matRotate(const vec3& _vect, float _angleRad) {
|
|
||||||
mat4 tmp;
|
|
||||||
tmp.rotation(_angleRad, _vect);
|
|
||||||
return tmp;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
@ -14,25 +14,30 @@
|
|||||||
|
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Convert degree in radian
|
|
||||||
* @param[in] a Value to converted in degree
|
|
||||||
* @return Angle in radian
|
|
||||||
*/
|
|
||||||
#define DEG_TO_RAD(a) ((a)*M_PI/180.0f)
|
|
||||||
/**
|
|
||||||
* @brief Convert radian in degree
|
|
||||||
* @param[in] a Value to converted in radian
|
|
||||||
* @return Angle in degree
|
|
||||||
*/
|
|
||||||
#define RAD_TO_DEG(a) ((a)*180.0f/M_PI)
|
|
||||||
|
|
||||||
namespace etk {
|
namespace etk {
|
||||||
|
/**
|
||||||
|
* @brief Convert degree in radian
|
||||||
|
* @param[in] _val Value to converted in degree
|
||||||
|
* @return Angle in radian
|
||||||
|
*/
|
||||||
|
template<class T>
|
||||||
|
T degreeToRadian(T _val) {
|
||||||
|
return _val*M_PI/T(180.0);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @brief Convert radian in degree
|
||||||
|
* @param[in] _val Value to converted in radian
|
||||||
|
* @return Angle in degree
|
||||||
|
*/
|
||||||
|
template<class T>
|
||||||
|
T radianToDegree(T _val) {
|
||||||
|
return _val*T(180.0)/M_PI;
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* @brief Transformation matrix for vector 3D.
|
* @brief Transformation matrix for vector 3D.
|
||||||
*/
|
*/
|
||||||
class Matrix4 {
|
class Matrix4 {
|
||||||
private:
|
public:
|
||||||
float m_mat[4*4]; //!< matrix data
|
float m_mat[4*4]; //!< matrix data
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
@ -183,9 +188,46 @@ namespace etk {
|
|||||||
* @return The inverted matrix.
|
* @return The inverted matrix.
|
||||||
*/
|
*/
|
||||||
Matrix4 invert();
|
Matrix4 invert();
|
||||||
|
friend etk::Matrix4 etk::matFrustum(float, float, float, float, float, float);
|
||||||
|
friend etk::Matrix4 etk::matPerspective(float, float, float, float);
|
||||||
|
friend etk::Matrix4 etk::matOrtho(float, float, float, float, float, float);
|
||||||
|
friend etk::Matrix4 etk::matTranslate(vec3);
|
||||||
|
friend etk::Matrix4 etk::matScale(vec3);
|
||||||
|
friend etk::Matrix4 etk::matRotate(vec3, float);
|
||||||
|
friend etk::Matrix4 etk::matRotate2(vec3);
|
||||||
|
friend etk::Matrix4 etk::matLookAt(const vec3&, const vec3&, const vec3&);
|
||||||
|
friend std::ostream& operator <<(std::ostream&, const etk::Matrix4&);
|
||||||
};
|
};
|
||||||
|
/**
|
||||||
|
* @brief Create projection matrix with the box parameter (camera view in -z axis)
|
||||||
|
* @param[in] _xmin X minimum size of the frustum
|
||||||
|
* @param[in] _xmax X maximum size of the frustum
|
||||||
|
* @param[in] _ymin Y minimum size of the frustum
|
||||||
|
* @param[in] _ymax Y maximum size of the frustum
|
||||||
|
* @param[in] _zNear Z minimum size of the frustum
|
||||||
|
* @param[in] _zFar Z maximum size of the frustum
|
||||||
|
* @return New matrix of the transformation requested
|
||||||
|
*/
|
||||||
Matrix4 matFrustum(float _xmin, float _xmax, float _ymin, float _ymax, float _zNear, float _zFar);
|
Matrix4 matFrustum(float _xmin, float _xmax, float _ymin, float _ymax, float _zNear, float _zFar);
|
||||||
|
/**
|
||||||
|
* @brief Create projection matrix with human repensentation view (camera view in -z axis)
|
||||||
|
* @param[in] _foxy Focal in radian of the camera
|
||||||
|
* @param[in] _aspect aspect ratio of the camera
|
||||||
|
* @param[in] _zNear Z near size of the camera
|
||||||
|
* @param[in] _zFar Z far size of the camera
|
||||||
|
* @return New matrix of the transformation requested
|
||||||
|
*/
|
||||||
Matrix4 matPerspective(float _foxy, float _aspect, float _zNear, float _zFar);
|
Matrix4 matPerspective(float _foxy, float _aspect, float _zNear, float _zFar);
|
||||||
|
/**
|
||||||
|
* @brief Create orthogonal projection matrix with the box parameter (camera view in -z axis)
|
||||||
|
* @param[in] _left left size of the camera
|
||||||
|
* @param[in] _right Right size of the camera
|
||||||
|
* @param[in] _bottom Buttom size of the camera
|
||||||
|
* @param[in] _top Top Size of the camera
|
||||||
|
* @param[in] _nearVal Z near size of the camera
|
||||||
|
* @param[in] _farVal Z far size of the camera
|
||||||
|
* @return New matrix of the transformation requested
|
||||||
|
*/
|
||||||
Matrix4 matOrtho(float _left, float _right, float _bottom, float _top, float _nearVal, float _farVal);
|
Matrix4 matOrtho(float _left, float _right, float _bottom, float _top, float _nearVal, float _farVal);
|
||||||
/**
|
/**
|
||||||
* @brief Create a matrix 3D with a simple translation
|
* @brief Create a matrix 3D with a simple translation
|
||||||
@ -207,7 +249,13 @@ namespace etk {
|
|||||||
*/
|
*/
|
||||||
Matrix4 matRotate(vec3 _normal, float _angleRad=0.0);
|
Matrix4 matRotate(vec3 _normal, float _angleRad=0.0);
|
||||||
//! @not_in_doc
|
//! @not_in_doc
|
||||||
Matrix4 matRotate2(vec3 _vect);
|
Matrix4 matRotate2(vec3 _vect); /**
|
||||||
|
* @brief Create projection matrix with camera property (camera view in -z axis)
|
||||||
|
* @param[in] _eye Optical center of the camera
|
||||||
|
* @param[in] _target Point of where the camera is showing
|
||||||
|
* @param[in] _up Up vector of the camera
|
||||||
|
* @return New matrix of the transformation requested
|
||||||
|
*/
|
||||||
Matrix4 matLookAt(const vec3& _eye,
|
Matrix4 matLookAt(const vec3& _eye,
|
||||||
const vec3& _target,
|
const vec3& _target,
|
||||||
const vec3& _up);
|
const vec3& _up);
|
||||||
|
@ -22,11 +22,6 @@ enum {
|
|||||||
right_user_read = 1 << 8,
|
right_user_read = 1 << 8,
|
||||||
};
|
};
|
||||||
|
|
||||||
etk::FSNodeRight::FSNodeRight() :
|
|
||||||
m_rights(0) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
etk::FSNodeRight::FSNodeRight(int16_t _newRight) :
|
etk::FSNodeRight::FSNodeRight(int16_t _newRight) :
|
||||||
m_rights(_newRight&0x01FF) {
|
m_rights(_newRight&0x01FF) {
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
#include <etk/Hash.h>
|
#include <etk/Hash.h>
|
||||||
#include <etk/os/FSNode.h>
|
#include <etk/os/FSNode.h>
|
||||||
#include <etk/archive/Archive.h>
|
#include <etk/archive/Archive.h>
|
||||||
#include <elog/log.h>
|
#include <etk/etk.h>
|
||||||
#include <etk/Color.h>
|
#include <etk/Color.h>
|
||||||
#include <etk/stdTools.h>
|
#include <etk/stdTools.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
@ -30,9 +30,7 @@ int main(int argc, const char *argv[]) {
|
|||||||
// init Google test :
|
// init Google test :
|
||||||
::testing::InitGoogleTest(&argc, const_cast<char **>(argv));
|
::testing::InitGoogleTest(&argc, const_cast<char **>(argv));
|
||||||
// the only one init for etk:
|
// the only one init for etk:
|
||||||
//elog::setLevel(elog::logLevelVerbose);
|
etk::init(argc, argv);
|
||||||
elog::setLevel(elog::logLevelInfo);
|
|
||||||
etk::setArgZero(argv[0]);
|
|
||||||
etk::initDefaultFolder("ewolApplNoName");
|
etk::initDefaultFolder("ewolApplNoName");
|
||||||
return RUN_ALL_TESTS();
|
return RUN_ALL_TESTS();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user