                 vertexDesc.addOrReplaceAttribute(vertexAttr)
             }
         }
-
-        // this automatically sets the offset correctly, 
+        
+        // this automatically sets the offset correctly,
         // - but attributes must be assigned and configured by this point
         vertexDesc.setPackedOffsets()
         vertexDesc.setPackedStrides()

    public func parse(container: Container, elem: XMLElement, options: [String : Any]) -> NodeType {
        var transform = MDLTransform()
        
        // N.B. scale first, then rotate, finally translate 
        // - but how can a shear operation be composed into this?
        
        if let scale = elem.attributes["scale"] {

        stereoCam.apertureBladeCount = cam.apertureBladeCount
        stereoCam.maximumCircleOfConfusion = cam.maximumCircleOfConfusion
        stereoCam.focusDistance = cam.focusDistance
        
        // physical imaging surface
        stereoCam.sensorVerticalAperture = cam.sensorVerticalAperture
        stereoCam.sensorAspect = cam.sensorAspect
