 }
 
 
+// MARK: Color Calculation for LineLayer
+private extension GridLayer {
+    func _lineColor(for line: LineLayer) -> CGColor {
+        switch line._positionIndex.subdivision {
+        case .none: return self.mainGridLineColor
+        default:    return self.subGridLineColor
+        }
+    }
+}
+
+
 // MARK: Update LineLayers
 private extension GridLayer {
     func _updateRowLineLengths() {

            through: through,
            by: subdiv.rawValue
        ).map({ _PositionIndex(value: $0, subdivision: subdiv) })
    }
    
    private func _lineColor(for line: LineLayer) -> CGColor {
        if line._positionIndex.subdivision == .none {
            return self.mainGridLineColor
        } else {
            return self.subGridLineColor
        }
    }
}


        var columnIndices: [_PositionIndex] = []
        
        for line in self._lineLayers {
            switch line.orientation {
            case .horizontal:   rowIndices.append(line._positionIndex)
            case .vertical:     columnIndices.append(line._positionIndex)
            }
        }
        
