FILEPUTARRAY and FILEPUTARRAYNAMED were converting array contents to all
strings. Fixed so the data is now untouched.
DRAWSEGMENTSSORT & DRAWSEGMENTSMERGE
Two new commands added for dealing with arrays of line segments. Usually
X axis only, or Y axis only, with an optional overlap check field.
local test array(array(102,108),array(5,75),array(112,150),array(5,75),array(80,109))
drawsegmentssort test ;gives:
;array(array(5,75),array(80,109),array(102,108),array(112,150))
drawsegmentsmerge test ;gives:
;array(aray(5,75),array(80,109),array(112,150))
Script code which does exactly what these new commands do (although far far
slower).
DRAWSEGMENTSSORT:
declare s
redo1:
if s->size>1
for a from 0 to s->size-2
for b from @a+1 to s->size-1
if @s[@a][0]>@s[@b][0]
local tmp &s[@b]
s[@b] = &s[@a]
s[@a] = &tmp
else
if @s[@a][0]==@s[@b][0]&&@s[@a][1]==@s[@b][1]
s[@a][2] = @s[@a][2]||@s[@b][2]
arraydelete s @b
goto redo1
endif
endif
next
next
endif
return
DRAWSEGMENTSMERGE:
declare s
redo2:
if s->size>1
for a from 0 to s->size-2
for b from @a+1 to s->size-1
if @s[@a][2]||@s[@b][2] continue
if @s[@a][1]>@s[@b][0]
if @s[@a][1]<@s[@b][1]
s[@a][1] = @s[@b][1]
endif
arraydelete s @b
goto redo2
endif
next
next
endif
return
----------------------------------------------------------------------------
Mon, 05 Aug 2013
Several general performance boosts to AG Interpreter, particular with
constant numerical values and strings, and simple function calls.
----------------------------------------------------------------------------
Fri, 02 Aug 2013
Occasional crash bug in DEBUGPROFILE fixed.
----------------------------------------------------------------------------