home *** CD-ROM | disk | FTP | other *** search
/ PC Elektro 3 / PC-Elektro-3-cd1.bin / KBan 2.0 / KBANSRC.LZH / SRC / PROG / KBANDATA / UTILS.CPP < prev   
Encoding:
C/C++ Source or Header  |  1997-09-14  |  1.1 KB  |  40 lines

  1. #include "traverse.h"
  2.  
  3. class TRAVERSE_ROTATE_90 : public TRAVERSE_KBAN_DATA {
  4. public:
  5.   virtual void primitive_pin_element(PIN_ELEMENT& elem, uint nLayer) {
  6.     XY ac = elem.ac();
  7.     ac.rotate_90();
  8.     elem.set_ac(ac);
  9.  
  10.     APERTURE apt = elem.apt();
  11.     apt.rotate_90();
  12.     elem.set_apt(apt);
  13.   }
  14.   virtual void primitive_line_element(LINE_ELEMENT& elem, uint nLayer) {
  15.     XY ac_s = elem.ac_s(); ac_s.rotate_90(); elem.set_ac_s(ac_s);
  16.     XY ac_e = elem.ac_e(); ac_e.rotate_90(); elem.set_ac_e(ac_e);
  17.   }
  18.   virtual void primitive(PRIMITIVE& prim) {
  19.     XY ac = prim.ac();
  20.     ac.rotate_90();
  21.     prim.set_ac(ac);
  22.  
  23.     TRAVERSE_KBAN_DATA::primitive(prim);
  24.   }
  25.  
  26.   virtual void component_pin_element(PIN_ELEMENT& elem, COMPONENT_ELEMENT& comp, uint nLayer) {
  27.     primitive_pin_element(elem, nLayer);
  28.   }
  29.   virtual void component_line_element(LINE_ELEMENT& elem, COMPONENT_ELEMENT& comp, uint nLayer) {
  30.     primitive_line_element(elem, nLayer);
  31.   }
  32.   virtual void component_element(COMPONENT_ELEMENT& elem) {
  33.     XY ac = elem.ac();
  34.     ac.rotate_90();
  35.     elem.set_ac(ac);
  36.  
  37.     TRAVERSE_KBAN_DATA::component_element(elem);
  38.   }
  39. };
  40.