Chain returns the range of edge IDs corresponding to the given edge chain. Edge chains must form contiguous, non-overlapping ranges that cover the entire range of edge IDs. This is spelled out more formally below: 0 <= i < NumChains() Chain(i).length > 0, for all i Chain(0).start == 0 Chain(i).star
(chainID int)
| 215 | // Chain(i).start + Chain(i).length == Chain(i+1).start, for i < NumChains()-1 |
| 216 | // Chain(i).start + Chain(i).length == NumEdges(), for i == NumChains()-1 |
| 217 | Chain(chainID int) Chain |
| 218 | |
| 219 | // ChainEdge returns the edge at offset "offset" within edge chain "chainID". |
| 220 | // Equivalent to "shape.Edge(shape.Chain(chainID).start + offset)" |
no outgoing calls