00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef WFMATH_LINE_FUNCS_H
00027 #define WFMATH_LINE_FUNCS_H
00028
00029 #include <wfmath/line.h>
00030
00031 namespace WFMath {
00032
00033 template<int dim>
00034 inline bool Line<dim>::isEqualTo(const Line<dim> & l, CoordType epsilon) const
00035 {
00036 size_type size = m_points.size();
00037 if (size != l.m_points.size()) {
00038 return false;
00039 }
00040
00041 for (size_type i = 0; i < size; ++i) {
00042 if (!Equal(m_points[i], l.m_points[i], epsilon)) {
00043 return false;
00044 }
00045 }
00046
00047 return true;
00048 }
00049
00050 template<int dim>
00051 inline Line<dim>& Line<dim>::shift(const Vector<dim>& v)
00052 {
00053 for (iterator i = m_points.begin(); i != m_points.end(); ++i) {
00054 *i += v;
00055 }
00056
00057 return *this;
00058 }
00059
00060 template<int dim>
00061 inline Line<dim>& Line<dim>::rotatePoint(const RotMatrix<dim>& m,
00062 const Point<dim>& p)
00063 {
00064 for (iterator i = m_points.begin(); i != m_points.end(); ++i) {
00065 i->rotate(m, p);
00066 }
00067
00068 return *this;
00069 }
00070
00071 }
00072
00073 #endif // WFMATH_LINE_FUNCS_H