NBody.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
00028 #ifndef TRIALDISPLAY_NBODY_H
00029 #define TRIALDISPLAY_NBODY_H
00030
00031 #include <casa/aips.h>
00032 #include <casa/Arrays/Vector.h>
00033 #include <casa/Quanta/Quantum.h>
00034 #include <casa/Containers/Record.h>
00035 #include <display/DisplayEvents/WCPositionEvent.h>
00036 #include <display/DisplayEvents/WCPositionEH.h>
00037 #include <display/DisplayEvents/WCMotionEvent.h>
00038 #include <display/DisplayEvents/WCMotionEH.h>
00039 #include <display/DisplayDatas/DisplayData.h>
00040 #include <casa/Containers/List.h>
00041
00042 namespace casa {
00043
00044 class WorldCanvas;
00045 class WCResampleHandler;
00046 class WorldCanvasHolder;
00047 class AttributeBuffer;
00048 class Attribute;
00049 class Unit;
00050 class IPosition;
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066 class NBody : public DisplayData {
00067
00068 public:
00069
00070
00071 NBody();
00072
00073
00074 virtual ~NBody();
00075
00076
00077
00078 virtual Bool linToWorld(Vector<Double>& world, const Vector<Double>& lin);
00079 virtual Bool worldToLin(Vector<Double>& lin, const Vector<Double>& world);
00080
00081
00082
00083 virtual void setActiveImage(uInt ) {
00084 return;
00085 };
00086
00087
00088
00089
00090 virtual Vector<String> worldAxisNames() const;
00091 virtual Vector<String> worldAxisUnits() const;
00092 virtual const Unit dataUnit() ;
00093 virtual const RecordInterface& miscInfo() ;
00094
00095
00096
00097 virtual uInt nelements(const WorldCanvasHolder& wcHolder) const;
00098 virtual uInt nelements() const;
00099
00100
00101
00102
00103 virtual void addElementRestrictions(const uInt itemNum,
00104 AttributeBuffer& other);
00105 virtual void addElementRestriction(const uInt itemNum,
00106 Attribute& newRestriction,
00107 Bool permanent);
00108
00109
00110
00111
00112
00113 virtual void setElementRestrictions(const uInt itemNum,
00114 AttributeBuffer& other);
00115 virtual void setElementRestriction(const uInt itemNum,
00116 Attribute& newRestriction);
00117
00118
00119
00120 virtual void removeElementRestriction(const uInt itemNum,
00121 const String& name);
00122
00123
00124
00125 virtual void clearElementRestrictions(const uInt itemNum);
00126
00127
00128
00129 virtual Bool existElementRestriction(const uInt itemNum,
00130 const String& name);
00131
00132
00133
00134
00135 virtual AttributeBuffer *elementRestrictionBuffer(const uInt itemNum);
00136
00137
00138
00139 virtual Double getDataMin();
00140 virtual Double getDataMax();
00141
00142
00143
00144 virtual Bool sizeControl(WorldCanvasHolder& wcHolder,
00145 AttributeBuffer& holderBuf);
00146
00147
00148 virtual void positionEH(const WCPositionEvent& ev);
00149
00150
00151 virtual void motionEH(const WCMotionEvent& ev);
00152
00153
00154 virtual void refreshEH(const WCRefreshEvent& ev);
00155
00156
00157 virtual void cleanup();
00158
00159
00160 virtual String showPosition(const Vector<Double> &, const Bool &) {
00161 return String("");
00162 }
00163 virtual String showValue(const Vector<Double> &) {
00164 return String("");
00165 }
00166 virtual Display::DisplayDataType classType() {
00167 return Display::Vector;
00168 }
00169
00170 private:
00171
00172 void setupStars();
00173 void cleanupStars();
00174 void drawImage(WorldCanvas& wCanvas);
00175 void setScale();
00176
00177
00178
00179
00180 Bool turnedOff;
00181
00182
00183 Double dataMin;
00184 Double dataMax;
00185
00186 Double itsTimeStep;
00187 Double itsDampingFactor;
00188 Int itsNumSteps;
00189 Int itsXSize;
00190 Int itsYSize;
00191
00192
00193
00194 AttributeBuffer sizeControlBuf;
00195
00196
00197
00198 Bool iDidSizeControl(WorldCanvas& wCanvas);
00199
00200 void drawMovie(WorldCanvas& wCanvas, Int numSteps, Double timeStep,
00201 Double dampingFactor);
00202
00203 Record miscInfoDummy;
00204
00205 List<void *> itsGalaxyList;
00206 ListIter<void *> *itsGalaxyListIter;
00207
00208 };
00209
00210
00211 }
00212
00213 #endif