NEATLINE.sml

  Download

More scripts: Script Layer

Syntax Highlighing:

comments, key words, predefined symbols, class members & methods, functions & classes
            
#----------------------
# neatline.sml
# sample script for SML display layer
# draws border, color tic marks and title
# use with LITEDATA / CB_DATA / CB_COMP / _8_BIT
# other drawing toys are at the end of the script
# Keith Ghormley, MicroImages, Inc. 1998, 1999
# --------------------
#fill interior with solid white
#DrawSetFillStyle("BnD")
#FillRegion(ThisLayer.group.FullRegion)
#Get Georef coordinate extents 
class COLOR red;
red.name = "red";
class COLOR blue;
blue.name = "blue";
class COLOR gray0;
gray0.name = "gray0";
class RECT rect;
rect = ThisLayer.Extents;
xrange = abs(rect.x2 - rect.x1);
yrange = abs(rect.y2 - rect.y1);
LineStyleSetRegion(ThisLayer.group.FullRegion);
#-------------
# Draw a box
#__________________________
offset = 1000;
DrawTextSetColors(blue,blue);
SetLineWidth(4);
MoveTo((rect.x1+rect.x2)/2-4000,rect.y1-3*offset);
DrawTextSetHeightPixels(26);
DrawTextSimple("Crow Butte SML Layer");
SetColorName("gray0");
SetLineWidth(2);
MoveTo(rect.x1-offset,rect.y1-offset);
DrawTo(rect.x1-offset,rect.y2+offset);
DrawTo(rect.x2+offset,rect.y2+offset);
DrawTo(rect.x2+offset,rect.y1-offset);
DrawTo(rect.x1-offset,rect.y1-offset);
#-------------
# edge tic marks
#-------------
SetColorName("red");
inc = 1000;
length = xrange / 50;
DrawTextSetColors(gray0,blue);
# West edge
i=0; loc=0;
While (loc < rect.y2) {
  i = i+1;
  SetColorName("red");
  MoveTo(rect.x1-offset,rect.y1-offset+(i*inc));
  DrawTo(rect.x1-offset-length,rect.y1-offset+(i*inc));
  loc = rect.y1+i*inc;
  MoveTo(rect.x1-2.5*offset,rect.y1-offset+(i*inc));
  DrawTextSetHeightPixels(8);
  DrawTextSimple(sprintf("%3d",loc));
}
# South edge
i=0; loc=0;
SetColorName("red");
While (loc < rect.x2) {
  i = i+1;
  SetColorName("red");
  MoveTo(rect.x1-offset+(i*inc),rect.y1-offset);
  DrawTo(rect.x1-offset+(i*inc),rect.y1-offset-length);
  loc = rect.x1+i*inc;
  MoveTo(rect.x1-offset+(i*inc),rect.y1-offset-3*length);
  DrawTextSetHeightPixels(8);
  DrawTextSimple(sprintf("%3d",loc));
}
# East edge
i=0; loc=0;
While (loc < rect.y2) {
  i = i+1;
  MoveTo(rect.x2+offset,rect.y1-offset+(i*inc));
  DrawTo(rect.x2+offset+length,rect.y1-offset+(i*inc));
  loc = rect.y1+i*inc;
}
# North edge
i=0; loc=0;
While (loc < rect.x2) {
  i = i+1;
  MoveTo(rect.x1-offset+(i*inc),rect.y2+offset);
  DrawTo(rect.x1-offset+(i*inc),rect.y2+offset+length);
  loc=rect.x1+i*inc;
}
#------------------
# interior tic marks
#--------------------
length = 100;
# red background tic
SetColorName("red");
SetLineWidth(3);
y = rect.y1+inc;
While (y < rect.y2) {
  x = rect.x1+inc;
  While (x < rect.x2) {
    MoveTo(x,y);
    DrawTo(x-length,y);
    MoveTo(x,y);
    DrawTo(x+length,y);
    MoveTo(x,y);
    DrawTo(x,y+length);
    MoveTo(x,y);
    DrawTo(x,y-length);
    x = x + inc;
  }
  y = y + inc;
}
# black overstrike tic
SetLineWidth(1);SetColorName("black");
y = rect.y1+inc;
While (y < rect.y2) {
  x = rect.x1+inc;
  While (x < rect.x2) {
    MoveTo(x,y);
    DrawTo(x-length,y)
    MoveTo(x,y);
    DrawTo(x+length,y)
    MoveTo(x,y);
    DrawTo(x,y+length)
    MoveTo(x,y);
    DrawTo(x,y-length)
    x = x + inc;
  }
  y = y + inc;
}
#----------
# Cartoscript star engine:
# set factor to change number of points
# 240 for 3, 270 for 4, 216 for 5, 225 for 8, 200 or 280 for 9, 210 for 12, ...
#---------
#LineStyleMoveTo(55,xrange)
#factor = 206
#i=1
#SetLineWidth(3)
#While (i < 129) {
#  LineStyleSetColor(i,3*i,0)
#  LineStyleLineTo(factor*i,xrange/2)
#  i=i+1
#}
#---------------------------
# draw spirograph(r) thing
#---------------------------
#SetLineWidth(2)
#LineStyleSetColor(0,110,255)
#i     = 0
#inc   = 11
#angle = 45
#size  = 1700
#While (i < 361) {
#  LineStyleMoveTo(7*angle+i,size)
#  LineStyleLineTo(5*angle+i,size)
#  LineStyleLineTo(3*angle+i,size)
#  LineStyleMoveTo(angle+i,size)
#  i = i + inc
#}
#--------
# draw box
# ----------
#period = 25; size=8; filled=1
While (LineStyleRoll(period)!=1) {
 LineStyleRollPen(period);
}
#Draw edge1
#SetLineWidth(5)
#LineStyleSetColor(0,0,255)
#LineStyleDrawLine()
#Draw edge2
#LineStyleSetColor(255,255,255)
#SetLineWidth(1)
#LineStyleDrawLine()
#------------------------
#fancy border scallops
#------------------------
#LineStyleSetRegion(ThisLayer.group.FullRegion)
#inc =  200
#r = 0.75 * inc
#SetColorName("red")
#while(LineStyleRoll(inc) != 1) {
#	LineStyleDrawArc(0,0,r,r,180,180,0,0,0,0)
#   }
#LineStyleSetRegion(ThisLayer.group.FullRegion)
#inc = inc * 2
#r = r * 2
#SetColorName("blue")
#while(LineStyleRoll(inc) != 1) {
#	LineStyleDrawArc(0,0,r,r,180,180,0,0,0,0)
#	}