//bls 3 //function ndRotateVector(%vector, %steps) function ndFillBus(%pos1, %pos2, %angleId, %color) { talk(%pos1 @ ", " @ %pos2 @ ", " @ %angleId); $ND::FillBrickColorID = %color + 1; ndFillAreaWithBricks(%pos1, %pos2); } function ndNormalizeBox(%box) { %x1 = getWord(%box, 0); %y1 = getWord(%box, 1); %z1 = getWord(%box, 2); %x2 = getWord(%box, 3); %y2 = getWord(%box, 4); %z2 = getWord(%box, 5); return mMin(%x1, %x2) SPC mMin(%y1, %y2) SPC mMin(%z1, %z2) SPC mMax(%x1, %x2) SPC mMax(%y1, %y2) SPC mMax(%z1, %z2) ; } function ndFillAreaWithBricks_box(%pos, %boxSize) { %boxHalf = vectorScale(%boxSize, 0.5); %box = vectorSub(%pos, %boxHalf) SPC vectorAdd(%pos, %boxHalf); ndFillAreaWithBricks(getWords(%box, 0, 2), getWords(%box, 3, 5)); }