Tesseract  3.02
DIR128 Class Reference

#include <mod128.h>

List of all members.

Public Member Functions

 DIR128 ()
 DIR128 (inT16 value)
 DIR128 (const FCOORD fc)
DIR128operator= (inT16 value)
inT8 operator- (const DIR128 &minus) const
DIR128 operator+ (const DIR128 &add) const
DIR128operator+= (const DIR128 &add)
inT8 get_dir () const
ICOORD vector () const

Detailed Description

Definition at line 29 of file mod128.h.


Constructor & Destructor Documentation

DIR128::DIR128 ( ) [inline]

Definition at line 32 of file mod128.h.

             {
    }                            //empty constructor
DIR128::DIR128 ( inT16  value) [inline]

Definition at line 35 of file mod128.h.

                        {  //value to assign
      value %= MODULUS;          //modulo arithmetic
      if (value < 0)
        value += MODULUS;        //done properly
      dir = (inT8) value;
    }
DIR128::DIR128 ( const FCOORD  fc)

Definition at line 66 of file mod128.cpp.

                {
  int high, low, current;        //binary search

  low = 0;
  if (fc.y () == 0) {
    if (fc.x () >= 0)
      dir = 0;
    else
      dir = MODULUS / 2;
    return;
  }
  high = MODULUS;
  do {
    current = (high + low) / 2;
    if (dirtab[current] * fc >= 0)
      low = current;
    else
      high = current;
  }
  while (high - low > 1);
  dir = low;
}

Member Function Documentation

inT8 DIR128::get_dir ( ) const [inline]

Definition at line 77 of file mod128.h.

                         {  //access function
      return dir;
    }
DIR128 DIR128::operator+ ( const DIR128 add) const [inline]

Definition at line 64 of file mod128.h.

    {
      DIR128 result;             //sum

      result = dir + add.dir;    //let = do the work
      return result;
    }
DIR128& DIR128::operator+= ( const DIR128 add) [inline]

Definition at line 72 of file mod128.h.

                        {
      *this = dir + add.dir;     //let = do the work
      return *this;
    }
inT8 DIR128::operator- ( const DIR128 minus) const [inline]

Definition at line 52 of file mod128.h.

    {
                                 //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& DIR128::operator= ( inT16  value) [inline]

Definition at line 44 of file mod128.h.

                 {               //value to assign
      value %= MODULUS;          //modulo arithmetic
      if (value < 0)
        value += MODULUS;        //done properly
      dir = (inT8) value;
      return *this;
    }
ICOORD DIR128::vector ( ) const

Definition at line 98 of file mod128.cpp.

                            {  //convert to vector
  return dirtab[dir];            //easy really
}

The documentation for this class was generated from the following files: