⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gmutils.h

📁 This contains Graphic gems code
💻 H
字号:
// gmUtils.h - graphics math utility functions//// libgm++: Graphics Math Library// Ferdi Scheepers and Stephen F May// 15 June 1994#ifndef GMUTILS_H#define GMUTILS_H#include <iostream.h>#include <math.h>#include <bool.h>#include <gmConst.h>// ONE-ARGUMENT UTILITY FUNCTIONSinline double gmAbs(double f){  return (f >= 0) ? f : -f;}inline double gmCeil(double f){  return (f == int(f)) ? f : (f > 0) ? double(int(f) + 1) : double(int(f));}inline double gmCube(double f){  return f * f * f;}inline double gmDegrees(double f){  return f * gmRADTODEG;}inline double gmFloor(double f){  return (f == int(f)) ? f : (f > 0) ? double(int(f)) : double(int(f) - 1);}inline double gmInv(double f){  return 1.0 / f;}inline bool gmIsZero(double f){  return (gmAbs(f) < gmEPSILON);}inline double gmRadians(double f){  return f * gmDEGTORAD;}inline double gmRound(double f){  return (f >= 0) ? double(int(f + 0.5)) : double(- int(0.5 - f));}inline double gmSign(double f){  return (f < 0) ? -1.0 : 1.0;}inline double gmSmooth(double f){  return (3.0 - 2.0 * f) * f * f;}inline double gmSqr(double f){  return f * f;}inline double gmTrunc(double f){  return double(int(f));}inline double gmZSign(double f){  return (f > 0) ? 1.0 : (f < 0) ? -1.0 : 0.0;}// TWO-ARGUMENT UTILITY FUNCTIONSinline bool gmFuzEQ(double f, double g){  return (f <= g) ? (f >= g - gmEPSILON) : (f <= g + gmEPSILON);}inline bool gmFuzGEQ(double f, double g){  return (f >= g - gmEPSILON);}inline bool gmFuzLEQ(double f, double g){  return (f <= g + gmEPSILON);}inline double gmMax(double f, double g){  return (f > g) ? f : g;}inline double gmMin(double f, double g){  return (f < g) ? f : g;}inline void gmSwap(double& f, double& g){  double gmTmp = f; f = g; g = gmTmp;}inline void gmSwap(int& i, int& j){  int gmTmp = i; i = j; j = gmTmp;}// MULTI-ARGUMENT UTILITY FUNCTIONSinline void gmClamp(double &f, double l, double h){  if(f < l) f = l;  if(f > h) f = h;}inline double gmLerp(double f, double l, double h){  return l + ((h - l) * f );}inline double gmMax(double f, double g, double h){  return (f > g) ? gmMax(f, h) : gmMax(g, h);}inline double gmMin(double f, double g, double h){  return (f < g) ? gmMin(f, h) : gmMin(g, h);}inline double gmSlide(double f, double l, double h){  return (f < 0) ? l : (f > 1) ? h : gmLerp(gmSmooth(f), l, h);}#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -