Code Search for Developers
 
 
  

ZZBBulge.cc from gzz at Krugle


Show ZZBBulge.cc syntax highlighted

/*
 * ZZBBulge.cc
 * Vesa Parkkinen
 * Sun Nov 28 14:50:02 EET 1999
 */
#include "ZZBBulge.h"

ZZBLines *ZZBBulge::bulge(int bulge_mid_line ) {
  
  if ( bulge_mid_line < 0 ) bulge_mid_line = 0;
  if ( lines == NULL      ) return NULL;
  
  bulge_center = bulge_mid_line;
  
  lines->setLineSize(bulge_center, big_size);
  
  for (int i = 1; i < big_lines; i++){
    lines->setLineSize(bulge_center + i, big_size); 
    lines->setLineSize(bulge_center - i, big_size); 
  }
  
  double diff = ( big_size - small_size ) / trans_lines;
  
  for ( int i = 0; i < trans_lines; i++ ){
    lines->setLineSize( bulge_center + big_lines + i, big_size - diff*i );
    lines->setLineSize( bulge_center - big_lines - i, big_size - diff*i );
  }
  return lines;

}

ZZBLines *ZZBBulge::moveBulge(int dy){
  int diff = dy ;
  if ( dy < 0 ){
    for ( int i = 0; i < -diff; i++ ) {  
      // the space for other lines have changed, we have to calculate all lines
      if (  bulge_center - big_lines - trans_lines < 0 ) {
	int ll   = lines->getLastLine(); 
	for ( int j = 0; j < ll; j++ ) lines->setDirty(j);
      }
      lines->setLineSize(  bulge_center + big_lines + trans_lines , small_size );
      
      bulge(bulge_center - 1);
    }
  }
  
  else if ( dy > 0 ) { 
    for ( int i = 0; i < diff; i++ ) {
      // the space for other lines have changed, we have to calculate all lines
      if ( bulge_center - big_lines - trans_lines < 0 ) {
	int ll   = lines->getLastLine(); 
	for ( int j = 0; j < ll; j++ ) lines->setDirty(j);
      }
      
      lines->setLineSize( bulge_center - big_lines - trans_lines, small_size );
      bulge(bulge_center + 1);
    }
  }
  return lines;
}












See more files for this project here

gzz

An implementation of Ted Nelson's ZZstructure. ZZstructure is a new type of programming platform for structured data.

Project homepage: http://savannah.nongnu.org/projects/gzz
Programming language(s): C++,Java,Python
License: lgpl21

  BillowSizes.h
  Lines.h
  Makefile
  ZZBBulge.cc
  ZZBBulge.h
  ZZBBulge2.h
  ZZBLine.cc
  ZZBLine.h
  ZZBLines.cc
  ZZBLines.h
  ZZBMarker.cc
  ZZBMarker.h
  ZZBRenderer.cc
  ZZBRenderer.h
  ZZBSize.cc
  ZZBSize.h
  ZZBSizes.cc
  ZZBSizes.h
  main.c
  main2.cc
  suckfont.c
  suckfont.h
  test