     // - but (1/60) * 0.50 = 1/120 for 60fps and 50% shutter
     public var shutterOpenInterval: NSTimeInterval = (0.5 * (1.0/60.0))
     
+    public func parseXML(container: Container, elem: XMLElement, options: [String: Any] = [:]) {
+        if let worldToMetersConversionScale = elem.attributes["world-to-meters-conversion-scale"] {
+            self.worldToMetersConversionScale = Float(worldToMetersConversionScale)!
+        }
+        
+        if let barrelDistortion = elem.attributes["barrel-distortion"] {
+            self.barrelDistortion = Float(barrelDistortion)!
+        }
+        
+        if let fisheyeDistortion = elem.attributes["fisheye-distortion"] {
+            self.fisheyeDistortion = Float(fisheyeDistortion)!
+        }
+        
+        if let opticalVignetting = elem.attributes["optical-vignetting"] {
+            self.opticalVignetting = Float(opticalVignetting)!
+        }
+        
+        if let chromaticAberration = elem.attributes["chromatic-aberration"] {
+            self.chromaticAberration = Float(chromaticAberration)!
+        }
+        
+        if let focalLength = elem.attributes["focal-length"] {
+            self.focalLength = Float(focalLength)!
+        }
+        
+        if let fStop = elem.attributes["f-stop"] {
+            self.fStop = Float(fStop)!
+        }
+        
+        if let apertureBladeCount = elem.attributes["aperture-blade-count"] {
+            self.apertureBladeCount = Int(apertureBladeCount)!
+        }
+        
+        if let maximumCircleOfConfusion = elem.attributes["maximum-circle-of-confusion"] {
+            self.maximumCircleOfConfusion = Float(maximumCircleOfConfusion)!
+        }
+        
+        if let focusDistance = elem.attributes["focus-distance"] {
+            self.focusDistance = Float(focusDistance)!
+        }
+    }
+    
     public func applyToCamera(camera: MDLCamera) {
         
         if let val = self.worldToMetersConversionScale {

    public static let flash: vector_float3 = float3(0.0, 0.0, 0.0)
    public static let exposure: vector_float3 = float3(1.0, 1.0, 1.0)
    public static let exposureCompression: vector_float2 = float2(1.0, 0.0)
    
    public func applyToCamera(camera: MDLCamera) {
        

    
    public func parse(container: Container, elem: XMLElement, options: [String: Any]) -> NodeType {
        let lensParams = PhysicalLens()
        lensParams.parseXML(container, elem: elem, options: options)
        
        return lensParams
    }
