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

📄 hvunits.h

📁 早期freebsd实现
💻 H
字号:
// -*- C++ -*-/* Copyright (C) 1989, 1990, 1991, 1992 Free Software Foundation, Inc.     Written by James Clark (jjc@jclark.com)This file is part of groff.groff is free software; you can redistribute it and/or modify it underthe terms of the GNU General Public License as published by the FreeSoftware Foundation; either version 2, or (at your option) any laterversion.groff is distributed in the hope that it will be useful, but WITHOUT ANYWARRANTY; without even the implied warranty of MERCHANTABILITY orFITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public Licensefor more details.You should have received a copy of the GNU General Public License alongwith groff; see the file COPYING.  If not, write to the Free SoftwareFoundation, 675 Mass Ave, Cambridge, MA 02139, USA. */class vunits {  int n;public:  vunits();  vunits(units);  units to_units();  int is_zero();  vunits& operator+=(const vunits&);  vunits& operator-=(const vunits&);  friend inline vunits scale(vunits n, units x, units y); // scale n by x/y  friend inline vunits scale(vunits n, vunits x, vunits y);  friend inline vunits operator +(const vunits&, const vunits&);  friend inline vunits operator -(const vunits&, const vunits&);  friend inline vunits operator -(const vunits&);  friend inline int operator /(const vunits&, const vunits&);  friend inline vunits operator /(const vunits&, int);  friend inline vunits operator *(const vunits&, int);  friend inline vunits operator *(int, const vunits&);  friend inline int operator <(const vunits&, const vunits&);  friend inline int operator >(const vunits&, const vunits&);  friend inline int operator <=(const vunits&, const vunits&);  friend inline int operator >=(const vunits&, const vunits&);  friend inline int operator ==(const vunits&, const vunits&);  friend inline int operator !=(const vunits&, const vunits&);};extern vunits V0;class hunits {  int n;public:  hunits();  hunits(units);  units to_units();  int is_zero();  hunits& operator+=(const hunits&);  hunits& operator-=(const hunits&);  friend inline hunits scale(hunits n, units x, units y); // scale n by x/y  friend inline hunits scale(hunits n, double x);  friend inline hunits operator +(const hunits&, const hunits&);  friend inline hunits operator -(const hunits&, const hunits&);  friend inline hunits operator -(const hunits&);  friend inline int operator /(const hunits&, const hunits&);  friend inline hunits operator /(const hunits&, int);  friend inline hunits operator *(const hunits&, int);  friend inline hunits operator *(int, const hunits&);  friend inline int operator <(const hunits&, const hunits&);  friend inline int operator >(const hunits&, const hunits&);  friend inline int operator <=(const hunits&, const hunits&);  friend inline int operator >=(const hunits&, const hunits&);  friend inline int operator ==(const hunits&, const hunits&);  friend inline int operator !=(const hunits&, const hunits&);};extern hunits H0;extern int get_vunits(vunits *, unsigned char si);extern int get_hunits(hunits *, unsigned char si);extern int get_vunits(vunits *, unsigned char si, vunits prev_value);extern int get_hunits(hunits *, unsigned char si, hunits prev_value);inline vunits:: vunits() : n(0){}inline units vunits::to_units(){  return n*vresolution;}inline int vunits::is_zero(){  return n == 0;}inline vunits operator +(const vunits & x, const vunits & y){  vunits r;  r = x;  r.n += y.n;  return r;}inline vunits operator -(const vunits & x, const vunits & y){  vunits r;  r = x;  r.n -= y.n;  return r;}inline vunits operator -(const vunits & x){  vunits r;  r.n = -x.n;  return r;}inline int operator /(const vunits & x, const vunits & y){  return x.n/y.n;}inline vunits operator /(const vunits & x, int n){  vunits r;  r = x;  r.n /= n;  return r;}inline vunits operator *(const vunits & x, int n){  vunits r;  r = x;  r.n *= n;  return r;}inline vunits operator *(int n, const vunits & x){  vunits r;  r = x;  r.n *= n;  return r;}inline int operator <(const vunits & x, const vunits & y){  return x.n < y.n;}inline int operator >(const vunits & x, const vunits & y){  return x.n > y.n;}inline int operator <=(const vunits & x, const vunits & y){  return x.n <= y.n;}inline int operator >=(const vunits & x, const vunits & y){  return x.n >= y.n;}inline int operator ==(const vunits & x, const vunits & y){  return x.n == y.n;}inline int operator !=(const vunits & x, const vunits & y){  return x.n != y.n;}inline vunits& vunits::operator+=(const vunits & x){  n += x.n;  return *this;}inline vunits& vunits::operator-=(const vunits & x){  n -= x.n;  return *this;}inline hunits:: hunits() : n(0){}inline units hunits::to_units(){  return n*hresolution;}inline int hunits::is_zero(){  return n == 0;}inline hunits operator +(const hunits & x, const hunits & y){  hunits r;  r = x;  r.n += y.n;  return r;}inline hunits operator -(const hunits & x, const hunits & y){  hunits r;  r = x;  r.n -= y.n;  return r;}inline hunits operator -(const hunits & x){  hunits r;  r = x;  r.n = -x.n;  return r;}inline int operator /(const hunits & x, const hunits & y){  return x.n/y.n;}inline hunits operator /(const hunits & x, int n){  hunits r;  r = x;  r.n /= n;  return r;}inline hunits operator *(const hunits & x, int n){  hunits r;  r = x;  r.n *= n;  return r;}inline hunits operator *(int n, const hunits & x){  hunits r;  r = x;  r.n *= n;  return r;}inline int operator <(const hunits & x, const hunits & y){  return x.n < y.n;}inline int operator >(const hunits & x, const hunits & y){  return x.n > y.n;}inline int operator <=(const hunits & x, const hunits & y){  return x.n <= y.n;}inline int operator >=(const hunits & x, const hunits & y){  return x.n >= y.n;}inline int operator ==(const hunits & x, const hunits & y){  return x.n == y.n;}inline int operator !=(const hunits & x, const hunits & y){  return x.n != y.n;}inline hunits& hunits::operator+=(const hunits & x){  n += x.n;  return *this;}inline hunits& hunits::operator-=(const hunits & x){  n -= x.n;  return *this;}inline hunits scale(hunits n, units x, units y){  hunits r;  r.n = scale(n.n, x, y);  return r;}inline vunits scale(vunits n, units x, units y){  vunits r;  r.n = scale(n.n, x, y);  return r;}inline vunits scale(vunits n, vunits x, vunits y){  vunits r;  r.n = scale(n.n, x.n, y.n);  return r;}inline hunits scale(hunits n, double x){  hunits r;  r.n = int(n.n*x);  return r;}inline units scale(units n, double x){  return int(n*x);}inline units points_to_units(units n){  return scale(n, units_per_inch, 72);}

⌨️ 快捷键说明

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