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

📄 lpoint.cpp

📁 EDA PCB 电路设计工具源码 c/c++ for Linux, Windows, Mac, 2008.8 最新
💻 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 + -