Main Page   Class Hierarchy   Compound List   File List   Compound Members   Related Pages  

IMG_Line.h

00001 
00005 
00006 #ifndef _H_IMG_Line
00007 #define _H_IMG_Line
00008 
00009 #include "IMG_Types.h"
00010 #include <math.h>
00011 
00018 
00019 class IMG_Line {
00020 public:
00021 
00029         IMG_Line(TInt32 xs=0, TInt32 ys=0, TInt32 xe=0, TInt32 ye=0)
00030                 : m_xs(xs), m_ys(ys), m_xe(xe), m_ye(ye) {}
00031 
00036         IMG_Line(const IMG_Line& l)
00037                 : m_xs(l.m_xs), m_ys(l.m_ys), m_xe(l.m_xe), m_ye(l.m_ye) {}
00038         
00042         virtual ~IMG_Line() {};
00043 
00048         virtual inline float getLength() const;
00049 
00057         virtual inline void set(TInt32 xs, TInt32 ys, TInt32 xe, TInt32 ye);
00058 
00064         virtual inline bool isEmpty() const;
00065 
00073         virtual inline void getPoint(float t, TInt32& x, TInt32& y) const;
00074 
00076         TInt32 m_xs;
00078         TInt32 m_ys;
00080         TInt32 m_xe;
00082         TInt32 m_ye;
00083 };
00084 
00085 
00086 inline float IMG_Line::getLength() const
00087 {
00088         TInt32 dx = m_xe - m_xs;
00089         TInt32 dy = m_ye - m_ys;
00090         return ((float)::sqrt(((float)dx)*dx + ((float)dy)*dy));
00091 }
00092 
00093 
00094 inline void IMG_Line::set(TInt32 xs, TInt32 ys, TInt32 xe, TInt32 ye)
00095 {
00096         m_xs = xs; m_ys = ys; m_xe = xe; m_ye = ye;
00097 }
00098 
00099 
00100 inline bool     IMG_Line::isEmpty() const
00101 {
00102         return (getLength() <= 0);
00103 }
00104 
00105 
00106 inline void IMG_Line::getPoint(float t, TInt32& x, TInt32& y) const
00107 {
00108         x = (TInt32) (((float)m_xs) + (t * (m_xe - m_xs)));
00109         y = (TInt32) (((float)m_ys) + (t * (m_ye - m_ys)));
00110 }
00111 
00112 
00113 #endif // _H_IMG_Line

Generated at Thu May 3 17:29:38 2001 for ImgLib by doxygen1.2.4 written by Dimitri van Heesch, © 1997-2000