(state: IRenderState, layout: IModelLayout, blkSrc: IBlkDef, blkDest: IBlkDef, color: Vec4, srcPad: number, destPad: number, srcIdx: number, destIdx: number, lineFract: number)
| 366 | } |
| 367 | |
| 368 | export function indexMappingLines(state: IRenderState, layout: IModelLayout, blkSrc: IBlkDef, blkDest: IBlkDef, color: Vec4, srcPad: number, destPad: number, srcIdx: number, destIdx: number, lineFract: number) { |
| 369 | |
| 370 | // assume all in x-y plane, and idx's are in x, and src is above dest |
| 371 | |
| 372 | let top = blkSrc.y + blkSrc.dy + srcPad; |
| 373 | let bot = blkDest.y - destPad; |
| 374 | let midY = lerp(top, bot, lineFract); |
| 375 | let z = 0; // blkSrc.z + blkSrc.dz; |
| 376 | |
| 377 | let srcX = cellPosition(layout, blkSrc, Dim.X, srcIdx) + layout.cell * 0.5; |
| 378 | let destX = cellPosition(layout, blkDest, Dim.X, destIdx) + layout.cell * 0.5; |
| 379 | |
| 380 | // dogleg line, using only horizontal and vertical lines |
| 381 | |
| 382 | let n = new Vec3(0, 0, 1); |
| 383 | let thick = layout.cell * 0.025; |
| 384 | addLine(state.lineRender, thick, color, new Vec3(srcX, top, z), new Vec3(srcX, midY, z), n); |
| 385 | addLine(state.lineRender, thick, color, new Vec3(srcX, midY, z), new Vec3(destX, midY, z), n); |
| 386 | addLine(state.lineRender, thick, color, new Vec3(destX, midY, z), new Vec3(destX, bot, z), n); |
| 387 | } |
| 388 | |
| 389 | /* Returns all subblocks along a given dimension that overlap the provided range |
| 390 |
no test coverage detected