#
# HELP: SYNOPSIS:
# HELP:     register/mouse/spline_drop
# HELP:
# HELP: DESCRIPTION:
# HELP:     Point to four voxels, dropping the corners of the current spline
# HELP:     at the pointed-to voxels.
#
DECLARE int $i
DECLARE double $sx
DECLARE double $sy
DECLARE double $sz
CECHO ${$sx=$root.global.pointer.midcoord.x}
CECHO ${$sy=$root.global.pointer.midcoord.y}
CECHO ${$sz=$root.global.pointer.midcoord.z}

IF ${$root.register.mouse.spline_drop.state==(void)0} QUIT
IF ${$root.register.mouse.spline_drop.state<0} GOTO unregister
IF ${$root.register.mouse.spline_drop.state>3} GOTO unregister
IF ${$root.global.pointer.voxel.x<0} QUIT
IF ${$root.global.pointer.mouse.buttonnum==2} GOTO unregister
GOTO setpoint${$root.register.mouse.spline_drop.state}
GOTO unregister

:setpoint0
SPLINE_SETPOINT ${$sx} ${$sy} ${$sz} 0 0
:setpoint1
SPLINE_SETPOINT ${$sx} ${$sy} ${$sz} 0 3
:setpoint2
SPLINE_SETPOINT ${$sx} ${$sy} ${$sz} 3 3
:setpoint3
SPLINE_SETPOINT ${$sx} ${$sy} ${$sz} 3 0
SPLINE_TRAPEZ
CECHO ${$root.register.mouse.spline_drop.state++}
IF ${$root.register.mouse.spline_drop.state==4} GOTO unregister
QUIT

:unregister
RESFLAGS SplineDrop V MOUSE &~7
UNREGISTER SplineDrop V MOUSE SplineDrop
QUIT
