📄 lpoint.cpp
字号:
/*! \file ../src/lpoint.cpp \brief Definition of GDSII LPoint type structure \author Probably Klaas Holwerda Copyright: 2001-2004 (C) Probably Klaas Holwerda Licence: wxWidgets Licence RCS-ID: $Id: lpoint.cpp,v 1.4 2005/05/24 19:13:39 titato Exp $*/#ifdef __GNUG__#pragma implementation #endif#include "../include/lpoint.h"#include <math.h>// ConstructorsLPoint::LPoint(){ _x = 0; _y = 0;}LPoint::LPoint(B_INT const X, B_INT const Y){ _x = X; _y = Y;}LPoint::LPoint(LPoint* const a_point){ if (!a_point) throw Bool_Engine_Error("Cannot copy a NULL Point Object.\n\nCould not create a LPoint Object.", "Fatal Creation Error", 0, 1); _x = a_point->_x; _y = a_point->_y;}B_INT LPoint::GetX(){ return _x;}B_INT LPoint::GetY(){ return _y;}void LPoint::SetX(B_INT a_point_x){ _x = a_point_x;}void LPoint::SetY(B_INT a_point_y){ _y = a_point_y;}LPoint LPoint::GetPoint(){ return *this;}void LPoint::Set(const B_INT X,const B_INT Y){ _x = X; _y = Y;}void LPoint::Set(const LPoint &a_point){ _x = a_point._x; _y =a_point._y;}bool LPoint::Equal(const LPoint a_point, B_INT Marge){ B_INT delta_x, delta_y; delta_x = babs((_x - a_point._x)); delta_y = babs((_y - a_point._y)); if ((delta_x <= Marge) && (delta_y <= Marge)) return true; else return false;}bool LPoint::Equal(const B_INT X, const B_INT Y, B_INT Marge){ return (bool)((babs(_x - X) <= Marge) && (babs(_y - Y) <= Marge));}bool LPoint::ShorterThan(const LPoint a_point, B_INT Marge){ double a,b; a = (double) (a_point._x - _x); a*= a; b = (double) (a_point._y - _y); b*= b; return (bool) ( (a+b) <= Marge*Marge ? true : false ) ;}bool LPoint::ShorterThan(const B_INT X, const B_INT Y, B_INT Marge){ double a,b; a = (double) (X - _x); a*= a; b = (double) (Y - _y); b*= b; return (bool) ( a+b <= Marge*Marge ? true : false ) ;}// overload the assign (=) operator// usage : a_point = another_point;LPoint &LPoint::operator=(const LPoint &other_point){ _x = other_point._x; _y = other_point._y; return *this;}// overload the + operator// usage : a_point = point1 + point2;LPoint &LPoint::operator+(const LPoint &other_point){ _x += other_point._x; _y += other_point._y; return *this;}// overload the - operator// usage : a_point = point1 - point2;LPoint &LPoint::operator-(const LPoint &other_point){ _x -= other_point._x; _y -= other_point._y; return *this;}// overload the * operator// usage: a_point = point1 * 100;LPoint &LPoint::operator*(int factor){ _x *= factor; _y *= factor; return *this;}// overload the / operator// usage: a_point = point1 / 100;LPoint &LPoint::operator/(int factor){ _x /= factor; _y /= factor; return *this;}// overload the compare (==) operator// usage: if (point1 == point2) { };int LPoint::operator==(const LPoint &other_point) const{ return ((other_point._x == _x) && (other_point._y == _y));}// overload the diffrent (!=) operator// usage: if (point1 != point2) { };int LPoint::operator!=(const LPoint &other_point) const{ return ((other_point._x != _x) || (other_point._y != _y));}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -