00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include "geom/world.H"
00012
00013 #include "vieweasel.H"
00014
00015 using mlib::XYpt;
00016
00017
00018
00019
00020
00021
00022 VIEW_EASEL::VIEW_EASEL(
00023 CVIEWptr &v) :
00024 _view(v)
00025 {
00026 _camera = CAMptr( new CAM( str_ptr("easel cam") ) );
00027 saveCam( _view->cam() );
00028 }
00029
00030 VIEW_EASEL::~VIEW_EASEL()
00031 {
00032 }
00033
00034 void
00035 VIEW_EASEL::saveCam(const CAMptr &c)
00036 {
00037 if (c && _camera)
00038 *_camera = *c;
00039 }
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059 void
00060 VIEW_EASEL::restoreEasel()
00061 {
00062 _view->copy_cam(_camera);
00063 for ( int i = 0; i < _lines.num(); i++ ) {
00064 if (!DRAWN.contains(_lines[i]))
00065 WORLD::display(_lines[i], false);
00066 }
00067
00068
00069 }
00070
00071
00072
00073
00074
00075
00076
00077
00078 void
00079 VIEW_EASEL::removeEasel()
00080 {
00081 WORLD::undisplay_gels(_lines, false);
00082
00083
00084 }
00085
00086 void
00087 VIEW_EASEL::add_line(const GELptr &p)
00088 {
00089 _lines.add_uniquely(p);
00090 if (!DRAWN.contains(p))
00091 WORLD::display(p, false);
00092 }
00093
00094 void
00095 VIEW_EASEL::rem_line(const GELptr &p)
00096 {
00097 if (p) {
00098 WORLD::undisplay(p, false);
00099 _lines -= p;
00100 }
00101 }
00102
00103 void
00104 VIEW_EASEL::clear_lines()
00105 {
00106 WORLD::undisplay_gels(_lines, false);
00107 _lines.clear();
00108 }
00109
00110 GELptr
00111 VIEW_EASEL::extract_closest(
00112 Cstr_ptr& ,
00113 const XYpt& ,
00114 double ,
00115 const GELptr&
00116 )
00117 {
00118 cerr << "VIEW_EASEL::extract_closest: not implemented" << endl;
00119 return 0;
00120 }
00121
00122 GELptr
00123 VIEW_EASEL::extract_closest_pix(
00124 Cstr_ptr& ,
00125 const XYpt& ,
00126 double ,
00127 const GELptr&
00128 )
00129 {
00130 cerr << "VIEW_EASEL::extract_closest_pix: not implemented" << endl;
00131 return 0;
00132 }
00133
00134