You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

134 lines
1.7 KiB
C++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#include "MLPlNode.h"
#include "MLFuncom.h"
MLPlNode::MLPlNode(void)
:MLVector()
{
m_l = 0;
m_a = 0;
}
MLPlNode::MLPlNode( double x, double y )
:MLVector(x, y)
{
m_z = 0;
m_l = 0;
m_a = 0;
}
MLPlNode::MLPlNode( double x, double y, double z )
:MLVector(x, y, z)
{
m_l = 0;
m_a = 0;
}
MLPlNode::MLPlNode(const MLPlNode& point)
{
m_x = point.x;
m_y = point.y;
m_z = point.z;
m_l = point.l;
m_a = point.a;
}
MLPlNode::MLPlNode(const MLPoint& point)
{
m_x = point.x;
m_y = point.y;
m_z = point.z;
m_l = point.l;
m_a = 0;
}
MLPlNode::MLPlNode( const QPointF& point )
{
m_x = point.x();
m_y = point.y();
m_z = 0;
m_l = 0;
m_a = 0;
}
MLPlNode::~MLPlNode(void)
{
}
double MLPlNode::getL() const
{
return m_l;
}
double& MLPlNode::getL()
{
return m_l;
}
void MLPlNode::setL( double l )
{
m_l = l;
}
double MLPlNode::getA() const
{
return m_a;
}
double& MLPlNode::getA()
{
return m_a;
}
void MLPlNode::setA(double a)
{
m_a = a;
}
//判断两点是否相等
bool operator==(const MLPlNode &p1, const MLPlNode &p2)
{
return (Equ(p1.x, p2.x) && Equ(p1.y, p2.y));
}
//比较两点坐标大小先比较x坐标若相同则比较y坐标
bool operator>(const MLPlNode &p1, const MLPlNode &p2)
{
return (p1.x > p2.x || (Equ(p1.x, p2.x) && p1.y > p2.y));
}
//计算两向量外积
double operator^(const MLPlNode &p1, const MLPlNode &p2)
{
return (p1.x * p2.y - p1.y * p2.x);
}
// 转点坐标
MLPoint MLPlNode::toPoint()const
{
return MLPoint(m_x, m_y, m_z);
}
QPoint MLPlNode::toQPoint()const
{
return QPoint(m_x, m_y);
}
QPointF MLPlNode::toQPointF()const
{
return QPointF(m_x, m_y);
}
MLPlNode &MLPlNode::operator =(const MLPlNode &other)
{
m_x = other.x;
m_y = other.y;
m_z = other.z;
m_l = other.l;
return *this;
}