DSWorldArrow.h
Go to the documentation of this file.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
00027 #ifndef TRIALDISPLAY_DSWORLDARROW_H
00028 #define TRIALDISPLAY_DSWORLDARROW_H
00029
00030 #include <casa/aips.h>
00031 #include <casa/Arrays/Vector.h>
00032 #include <casa/Arrays/Matrix.h>
00033
00034 #include <casa/Quanta/Quantum.h>
00035 #include <casa/Quanta/QuantumHolder.h>
00036 #include <display/Display/PanelDisplay.h>
00037
00038 #include <display/DisplayShapes/DSArrow.h>
00039 #include <display/DisplayShapes/DisplayShapeWithCoords.h>
00040
00041 namespace casa {
00042
00043
00044
00045
00046 class PanelDisplay;
00047 class DSPixelArrow;
00048 class DSScreenArrow;
00049
00050 class DSWorldArrow : public DSArrow , public DisplayShapeWithCoords {
00051
00052 public:
00053
00054 DSWorldArrow();
00055 DSWorldArrow(const Record& settings, PanelDisplay* pd);
00056 DSWorldArrow(DSScreenArrow& other, PanelDisplay* pd);
00057 DSWorldArrow(DSPixelArrow& other, PanelDisplay* pd);
00058
00059 virtual ~DSWorldArrow();
00060
00061 virtual void recalculateScreenPosition();
00062
00063
00064
00065 virtual void move(const Float& dX, const Float& dY);
00066 virtual void setCenter(const Float& xPos, const Float& yPos);
00067 virtual void rotate(const Float& angle);
00068 virtual void scale(const Float& scaleFactor);
00069 virtual void setStartPoint(const Vector<Float>& startPoint);
00070 virtual void setEndPoint(const Vector<Float>& endPoint);
00071 virtual void changePoint(const Vector<Float>&pos, const Int n);
00072 virtual void changePoint(const Vector<Float>& pos);
00073 virtual void draw(PixelCanvas* pc);
00074
00075
00076 virtual Bool setOptions(const Record& settings);
00077 virtual Record getOptions();
00078
00079
00080
00081 virtual Record getRawOptions() {
00082 return DSArrow::getOptions();
00083 }
00084
00085 virtual PanelDisplay* panelDisplay() {
00086 return itsPD;
00087 }
00088 private:
00089
00090
00091
00092
00093
00094 virtual WorldCanvas* chooseWC(const Float& startXPos,
00095 const Float& startYPos,
00096 const Float& endXPos, const Float& endYPos,
00097 PanelDisplay* pd);
00098
00099
00100 PanelDisplay* itsPD;
00101
00102
00103 WorldCanvas* itsWC;
00104
00105
00106 Vector<Quantum<Double> > itsWorldStart;
00107 Vector<Quantum<Double> > itsWorldEnd;
00108
00109 void updateWCoords();
00110 };
00111
00112 }
00113
00114 #endif