line.h
00001 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00025 
00026 
#ifndef __UTILITY_LINE_H__
00027 
#define __UTILITY_LINE_H__
00028 
00029 
#include <tnt/tnt_array1d.h>
00030 
#include <point.h>
00031 
#include <cmath>
00032 
00033 
namespace gutk
00034 { 
00035 
00038 enum State { INTERSECT, COINCIDE, PARALLEL, INF, FINITE };
00039 
00042 class Line
00043 {
00047 
friend State getIntersection(
const Line& l1, 
const Line& l2, 
Point& p);
00048 
00049 
public:
00052     
Line(
void);
00053     
00056     
Line(
double x1, 
double y1, 
double x2, 
double y2); 
00057     
00059     
virtual ~Line();
00060     
00063     
bool isLine(
void);
00064     
00067     
virtual double side(
double x, 
double y);
00068     
00071     
double getSlope(
void);
00072     
00077     
virtual TNT::Array1D< double > 
equation(
void);
00078     
00081     
virtual double distance(
double x, 
double y); 
00082     
00085     
Line getParallelLine(
double d, 
bool s);
00086     
00089     
Line getParallelLine(
double x, 
double y);
00090     
00091 
private:
00092     
double a, b, c; 
00093     
double slope;
00094     
bool SET;
00095     
State slopeState;
00096 };  
00097 
00098 } 
00099 
00100 
#endif // __UTILITY_LINE_H__
00101 
Generated on Mon Nov 22 11:12:41 2004 for ImprolaLib  by
 1.3.7