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