📄 mod128.h
字号:
/********************************************************************** * File: mod128.h (Formerly dir128.h) * Description: Header for class which implements modulo arithmetic. * Author: Ray Smith * Created: Tue Mar 26 17:48:13 GMT 1991 * * (C) Copyright 1991, Hewlett-Packard Ltd. ** 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. * **********************************************************************/#ifndef MOD128_H#define MOD128_H#include "points.h"#define MODULUS 128 /*range of directions */#define DIRBITS 7 //no of bits used#define DIRSCALE 1000 //length of vectorclass DLLSYM DIR128{ public: DIR128() { } //empty constructor DIR128( //constructor INT16 value) { //value to assign value %= MODULUS; //modulo arithmetic if (value < 0) value += MODULUS; //done properly dir = (INT8) value; } DIR128(const FCOORD fc); //quantize vector DIR128 & operator= ( //assign of INT16 INT16 value) { //value to assign value %= MODULUS; //modulo arithmetic if (value < 0) value += MODULUS; //done properly dir = (INT8) value; return *this; } INT8 operator- ( //subtraction const DIR128 & minus) const//for signed result { //result INT16 result = dir - minus.dir; if (result > MODULUS / 2) result -= MODULUS; //get in range else if (result < -MODULUS / 2) result += MODULUS; return (INT8) result; } DIR128 operator+ ( //addition const DIR128 & add) const //of itself { DIR128 result; //sum result = dir + add.dir; //let = do the work return result; } DIR128 & operator+= ( //same as + const DIR128 & add) { *this = dir + add.dir; //let = do the work return *this; } INT8 get_dir() const { //access function return dir; } ICOORD vector() const; //turn to vector private: INT8 dir; //a direction};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -