Support Forum       G3D Web Page     
Namespaces | Macros | Typedefs | Functions | Variables
g3dmath.h File Reference

G3D Innovation Engine http://casual-effects.com/g3d Copyright 2000-2019, Morgan McGuire All rights reserved Available under the BSD License. More...

Namespaces

 G3D
 

Macros

#define __USE_ISOC991
 
#define __USE_ISOC9X1
 
#define _ISOC99_SOURCE1
 
#define _ISOC9X_SOURCE1
 
#define fuzzyEpsilon32   (0.00002f)
 
#define fuzzyEpsilon64   (0.0000005)
 
#define G3D_DECLARE_SYMBOL(s)   static const String SYMBOL_##s = #s
 
Defines SYMBOL_s as a static const String with the value s. More...
 

Typedefs

typedef float G3D::Biradiance
 
typedef float G3D::float32
 
typedef double G3D::float64
 
typedef int16_t G3D::int16
 
typedef int32_t G3D::int32
 
typedef int64_t G3D::int64
 
typedef int8_t G3D::int8
 
typedef float G3D::Irradiance
 
typedef float G3D::Power
 
typedef float G3D::Radiance
 
typedef float G3D::Radiosity
 
typedef uint16_t G3D::uint16
 
typedef uint32_t G3D::uint32
 
typedef uint64_t G3D::uint64
 
typedef uint8_t G3D::uint8
 

Functions

double G3D::abs (double fValue)
 
double G3D::aCos (double fValue)
 
float G3D::acos (float fValue)
 
bool G3D::all (float x)
 
Returns true if x is not exactly equal to 0.0f. More...
 
bool G3D::any (float x)
 
Returns true if x is not exactly equal to 0.0f. More...
 
double G3D::aSin (double fValue)
 
double G3D::aTan (double fValue)
 
double G3D::aTan2 (double fY, double fX)
 
int G3D::ceilPow2 (unsigned int in)
 
Return the next power of 2 higher than the input If the input is already a power of 2, the output will be the same as the input. More...
 
int G3D::ceilPow2 (int in)
 
int G3D::ceilPow2 (float in)
 
int G3D::clamp (int val, int low, int hi)
 
double G3D::clamp (double val, double low, double hi)
 
float G3D::clamp (float val, float low, float hi)
 
double G3D::distance (double x, double y)
 
double G3D::distance (double x, double y, double z)
 
float G3D::distance (float x, float y)
 
float G3D::distance (float x, float y, float z)
 
float G3D::dot (float a, float b)
 
a * b (for DirectX/Cg support) More...
 
double G3D::drand48 ()
 
double G3D::eps (double a, double b)
 
Computes an appropriate epsilon for comparing a and b. More...
 
float G3D::eps (float a, float b)
 
float G3D::finf ()
 
uint16 G3D::flipEndian16 (const uint16 x)
 
Given a 16-bit integer, returns the integer with the bytes in the opposite order. More...
 
uint32 G3D::flipEndian32 (const uint32 x)
 
Given a 32-bit integer, returns the integer with the bytes in the opposite order. More...
 
float G3D::fnan ()
 
float G3D::fract (float x)
 
double G3D::fract (double x)
 
bool G3D::fuzzyEq (double a, double b)
 
Note that fuzzyEq(a, b) && fuzzyEq(b, c) does not imply fuzzyEq(a, c), although that will be the case on some occasions. More...
 
bool G3D::fuzzyEq (float a, float b)
 
bool G3D::fuzzyGe (double a, double b)
 Is a near or greater than b? More...
 
bool G3D::fuzzyGt (double a, double b)
 Is a strictly greater than b? (Guaranteed false if a <= b). More...
 
bool G3D::fuzzyLe (double a, double b)
 Is a near or less than b? More...
 
bool G3D::fuzzyLt (double a, double b)
 Is a strictly less than b? (Guaranteed false if a >= b) More...
 
bool G3D::fuzzyNe (double a, double b)
 True if a is definitely not equal to b. More...
 
float G3D::gaussRandom (float mean=0.0f, float stdev=1.0f)
 
Normally distributed random number. More...
 
double G3D::halfPi ()
 
void G3D::hammersleySequence2D (int i, const int N, float &x, float &y)
 Returns the ith Hammersley point from a N-point sequence on the unit square, [0, 1]. More...
 
int G3D::highestBit (uint32 x)
 Returnes the 0-based index of the highest 1 bit from the left. More...
 
int G3D::iAbs (int iValue)
 
int G3D::iCeil (double fValue)
 
int G3D::iClamp (int val, int low, int hi)
 
Clamps the value to the range [low, hi] (inclusive) More...
 
int16 G3D::iClamp (int16 val, int16 low, int16 hi)
 
int G3D::iFloor (double fValue)
 
int G3D::iMax (int x, int y)
 
int G3D::iMin (int x, int y)
 
int G3D::iMod3 (int x)
 
Computes x % 3. More...
 
double G3D::inf ()
 This value should not be tested against directly, instead G3D::isNan() and G3D::isFinite() will return reliable results. More...
 
int G3D::iRound (double fValue)
 Fast round to integer using the lrint routine. More...
 
int G3D::iRound (float f)
 Fast round to integer using the lrint routine. More...
 
bool G3D::isEven (int num)
 
bool G3D::isFinite (double x)
 
Returns true if the argument is a finite real number. More...
 
bool G3D::isFinite (float x)
 
int G3D::iSign (int iValue)
 
int G3D::iSign (double fValue)
 
int G3D::iSign (float f)
 
bool G3D::isNaN (double x)
 
Returns true if the argument is NaN (not a number). More...
 
bool G3D::isNaN (float x)
 
bool G3D::isNaN (int x)
 
bool G3D::isNaN (uint64 x)
 
bool G3D::isOdd (int num)
 
bool G3D::isPow2 (int num)
 True if num is a power of two. More...
 
bool G3D::isPow2 (uint64 num)
 
bool G3D::isPow2 (uint32 x)
 
int G3D::iWrap (int val, int hi)
 
Wraps the value to the range [0, hi) (exclusive on the high end). More...
 
double G3D::lerp (double a, double b, double f)
 
Returns a + (b - a) * f; More...
 
float G3D::lerp (float a, float b, float f)
 
float G3D::lerpAngle (float a, float b, float t)
 A lerp() for angles in radians that guarantees moving the shortest way around the circle. More...
 
double G3D::log2 (double x)
 
float G3D::log2 (float x)
 
double G3D::log2 (int x)
 
template<class T >
G3D::max (const T &x, const T &y)
 
template<class T >
G3D::max (const T &x, const T &y, const T &z)
 
template<class T >
G3D::max (const T &x, const T &y, const T &z, const T &w)
 
template<class T >
G3D::min (const T &x, const T &y)
 
template<class T >
G3D::min (const T &x, const T &y, const T &z)
 
template<class T >
G3D::min (const T &x, const T &y, const T &z, const T &w)
 
float G3D::mod1 (float t)
 
double G3D::mod1 (double t)
 
float G3D::mul (float a, float b)
 
a * b (for DirectX/Cg support) More...
 
double G3D::nan ()
 This value should not be tested against directly, instead G3D::isNan() and G3D::isFinite() will return reliable results. More...
 
int G3D::nextMod3 (int i)
 
float G3D::normalize (float v)
 
v / v (for DirectX/Cg support) More...
 
double G3D::pi ()
 
float G3D::pif ()
 
int std::pow (int a, int b)
 
int G3D::pow2 (unsigned int x)
 Returns 2^x. More...
 
template<class T >
G3D::pow5 (T x)
 Returns x5 More...
 
double G3D::round (double f)
 
float G3D::round (float f)
 
int G3D::roundStochastically (float f)
 Rounds so that the mean of a set of rounded numbers is close to the mean of the original numbers. More...
 
float G3D::rsq (float x)
 
Computes 1 / sqrt(x). More...
 
double G3D::rsqrt (double x)
 
float G3D::rsqrt (float x)
 
double G3D::sign (double fValue)
 
float G3D::sign (float x)
 
float G3D::signedPow (float b, float e)
 Computes |b|^e * sign(b) More...
 
double G3D::signedPow (double b, double e)
 Computes |b|^e * sign(b) More...
 
double G3D::sinc (double x)
 
sin(x)/x More...
 
float G3D::smootherstep (float edge0, float edge1, float x)
 Perlin's C2 continous variation on smoothstep() More...
 
float G3D::smoothstep (float edge0, float edge1, float x)
 The GLSL smoothstep function. More...
 
double G3D::square (double fValue)
 
float G3D::square (float x)
 
int G3D::square (int x)
 
float G3D::squareMagnitude (float x)
 Preserves sign while squaring magnitude. More...
 
double G3D::squareMagnitude (double x)
 Preserves sign while squaring magnitude. More...
 
int G3D::squareMagnitude (int x)
 Preserves sign while squaring magnitude. More...
 
double G3D::sumSquares (double x, double y)
 
double G3D::sumSquares (double x, double y, double z)
 
float G3D::sumSquares (float x, float y)
 
float G3D::sumSquares (float x, float y, float z)
 
double G3D::toDegrees (double rad)
 
float G3D::toDegrees (float rad)
 
float G3D::toDegrees (int rad)
 
double G3D::toRadians (double deg)
 
float G3D::toRadians (float deg)
 
float G3D::toRadians (int deg)
 
double G3D::twoPi ()
 
unsigned int G3D::uiClamp (unsigned int val, unsigned int low, unsigned int hi)
 
float G3D::uniformRandom (float low, float hi)
 
double G3D::uniformRandomD (double low, double hi)
 
float G3D::wrap (float t, float lo, float hi)
 
Computes a floating point modulo; the result is t wrapped to the range [lo, hi). More...
 
float G3D::wrap (float t, float hi)
 
double G3D::wrap (double t, double lo, double hi)
 
double G3D::wrap (double t, double hi)
 

Variables

double G3D::ignoreDouble
 For use with default output arguments. More...
 
float G3D::ignoreFloat
 For use with default output arguments. More...
 
int G3D::ignoreInt
 For use with default output arguments. More...
 

Detailed Description

G3D Innovation Engine http://casual-effects.com/g3d Copyright 2000-2019, Morgan McGuire All rights reserved Available under the BSD License.

Macro Definition Documentation

◆ __USE_ISOC991

#define __USE_ISOC991

◆ __USE_ISOC9X1

#define __USE_ISOC9X1

◆ _ISOC99_SOURCE1

#define _ISOC99_SOURCE1

◆ _ISOC9X_SOURCE1

#define _ISOC9X_SOURCE1

◆ fuzzyEpsilon32

#define fuzzyEpsilon32   (0.00002f)

Referenced by G3D::eps().

◆ fuzzyEpsilon64

#define fuzzyEpsilon64   (0.0000005)

Referenced by G3D::eps().

◆ G3D_DECLARE_SYMBOL

#define G3D_DECLARE_SYMBOL (   s)    static const String SYMBOL_##s = #s


Defines SYMBOL_s as a static const String with the value s.

Useful for avoiding heap allocation from C-string constants being converted at runtime.

Function Documentation

◆ pow()

int std::pow ( int  a,
int  b 
)
inline

documentation generated on Wed Nov 24 2021 08:01:51 using doxygen 1.8.15