00001
00002 #ifndef __J2K__JSquare_HPP__
00003 #define __J2K__JSquare_HPP__
00004
00005
00006 #include <j2k/Fred/StdTypes.hpp>
00007 #include <j2k/Fred/Basic.hpp>
00008 #include <j2k/Fred/Geometry/Point.hpp>
00009
00010 class JSquare {
00011 public:
00012 JSquare()
00013 JSquare( double X );
00014 JSquare( double X, double Y );
00015 JSquare( double X, double Y, double length );
00016
00017
00018 double getLength() const;
00019 double area() const;
00020
00021
00022 inline JSquare& setJSquare( double X, double Y, double Length );
00023
00024 inline JSquare& setLength( double Length );
00025
00026 inline void check();
00027
00028
00029 inline JSquare& setPoint( double X, double Y );
00030 inline JSquare& setPolar( double X, double Y );
00031
00032 inline JSquare& setX( double X );
00033 inline JSquare& setY( double Y );
00034 inline JSquare& setR( double R );
00035 inline JSquare& setAngle( double Theta );
00036
00037 inline double getX() const;
00038 inline double getY() const;
00039 inline double getR() const;
00040 inline double getAngle() const;
00041
00042
00043
00044 friend ostream& operator<<( ostream &output, const JSquare &sq )
00045 {
00046 output << "Position = " << sq.p
00047 << "; Length = "
00048 << setiosflags( ios::fixed | ios::showpoint )
00049 << setprecision( 2 ) << sq.Length;
00050 return output;
00051 }
00052
00053 protected:
00054 JPoint& p;
00055 double length;
00056 double area_cache;
00057 };
00058
00059 #endif
00060
00061