home *** CD-ROM | disk | FTP | other *** search
/ Dream 52 / Amiga_Dream_52.iso / Linux / Divers / freedraft.tar.gz / freedraft.tar / FREEdraft-050298 / DRAWABLES / drawableline.cpp < prev    next >
C/C++ Source or Header  |  1998-04-23  |  2KB  |  55 lines

  1. // drawableline.cpp
  2.  
  3. // Copyright (C) 1997  Cliff Johnson                                       //
  4. //                                                                         //
  5. // This program is free software; you can redistribute it and/or           //
  6. // modify it under the terms of the GNU  General Public                    //
  7. // License as published by the Free Software Foundation; either            //
  8. // version 2 of the License, or (at your option) any later version.        //
  9. //                                                                         //
  10. // This software is distributed in the hope that it will be useful,        //
  11. // but WITHOUT ANY WARRANTY; without even the implied warranty of          //
  12. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU       //
  13. // General Public License for more details.                                //
  14. //                                                                         //
  15. // You should have received a copy of the GNU General Public License       //
  16. // along with this software (see COPYING); if not, write to the        //
  17. // Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. //
  18.  
  19. #include <geom_enum.h>
  20. #include <drawableline.h>
  21. #include <GL/gl.h>
  22. #include <GL/glu.h>
  23. #include <point.h>
  24. #include <line.h>
  25.  
  26. DrawableLine::DrawableLine(): DrawableGeom(LINE) {}
  27.  
  28. void DrawableLine::Draw(const Geom* geom,const float& scale) const
  29. {
  30.     if(DrawableGeom::Type()!=LINE)return;
  31.  
  32.     Line l = Line(*(reinterpret_cast<const Line* >(geom) ) );
  33.         Point p0 = l.Origin() + (10000. * l.Direction());
  34.         Point p1 = l.Origin() - (10000. * l.Direction());
  35.         glBegin(GL_LINES);
  36.                 glVertex2f(p0[0],p0[1]);
  37.                 glVertex2f(p1[0],p1[1]);
  38.         glEnd();
  39. }
  40.  
  41. void DrawableLine::Select(const Geom* geom,const Handle& h,const float& scale) const
  42. {
  43.     if(DrawableGeom::Type()!=LINE)return;
  44.  
  45.     glLoadName(h.Value());
  46.  
  47.     Line l = Line(*(reinterpret_cast<const Line* >(geom) ) );
  48.         Point p0 = l.Origin() + (10000. * l.Direction());
  49.         Point p1 = l.Origin() - (10000. * l.Direction());
  50.         glBegin(GL_LINES);
  51.                 glVertex2f(p0[0],p0[1]);
  52.                 glVertex2f(p1[0],p1[1]);
  53.         glEnd();
  54. }
  55.