///
/// Landmarks.swift
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
/// https://github.com/mrousavy/nitro
/// Copyright © Marc Rousavy @ Margelo
///

import NitroModules

/**
 * Represents an instance of `Landmarks`, backed by a C++ struct.
 */
public typealias Landmarks = margelo.nitro.camera.facedetector.Landmarks

public extension Landmarks {
  private typealias bridge = margelo.nitro.camera.facedetector.bridge.swift

  /**
   * Create a new instance of `Landmarks`.
   */
  init(LEFT_CHEEK: Point?, LEFT_EAR: Point?, LEFT_EYE: Point?, MOUTH_BOTTOM: Point?, MOUTH_LEFT: Point?, MOUTH_RIGHT: Point?, NOSE_BASE: Point?, RIGHT_CHEEK: Point?, RIGHT_EAR: Point?, RIGHT_EYE: Point?) {
    self.init({ () -> bridge.std__optional_Point_ in
      if let __unwrappedValue = LEFT_CHEEK {
        return bridge.create_std__optional_Point_(__unwrappedValue)
      } else {
        return .init()
      }
    }(), { () -> bridge.std__optional_Point_ in
      if let __unwrappedValue = LEFT_EAR {
        return bridge.create_std__optional_Point_(__unwrappedValue)
      } else {
        return .init()
      }
    }(), { () -> bridge.std__optional_Point_ in
      if let __unwrappedValue = LEFT_EYE {
        return bridge.create_std__optional_Point_(__unwrappedValue)
      } else {
        return .init()
      }
    }(), { () -> bridge.std__optional_Point_ in
      if let __unwrappedValue = MOUTH_BOTTOM {
        return bridge.create_std__optional_Point_(__unwrappedValue)
      } else {
        return .init()
      }
    }(), { () -> bridge.std__optional_Point_ in
      if let __unwrappedValue = MOUTH_LEFT {
        return bridge.create_std__optional_Point_(__unwrappedValue)
      } else {
        return .init()
      }
    }(), { () -> bridge.std__optional_Point_ in
      if let __unwrappedValue = MOUTH_RIGHT {
        return bridge.create_std__optional_Point_(__unwrappedValue)
      } else {
        return .init()
      }
    }(), { () -> bridge.std__optional_Point_ in
      if let __unwrappedValue = NOSE_BASE {
        return bridge.create_std__optional_Point_(__unwrappedValue)
      } else {
        return .init()
      }
    }(), { () -> bridge.std__optional_Point_ in
      if let __unwrappedValue = RIGHT_CHEEK {
        return bridge.create_std__optional_Point_(__unwrappedValue)
      } else {
        return .init()
      }
    }(), { () -> bridge.std__optional_Point_ in
      if let __unwrappedValue = RIGHT_EAR {
        return bridge.create_std__optional_Point_(__unwrappedValue)
      } else {
        return .init()
      }
    }(), { () -> bridge.std__optional_Point_ in
      if let __unwrappedValue = RIGHT_EYE {
        return bridge.create_std__optional_Point_(__unwrappedValue)
      } else {
        return .init()
      }
    }())
  }

  @inline(__always)
  var LEFT_CHEEK: Point? {
    return self.__LEFT_CHEEK.value
  }
  
  @inline(__always)
  var LEFT_EAR: Point? {
    return self.__LEFT_EAR.value
  }
  
  @inline(__always)
  var LEFT_EYE: Point? {
    return self.__LEFT_EYE.value
  }
  
  @inline(__always)
  var MOUTH_BOTTOM: Point? {
    return self.__MOUTH_BOTTOM.value
  }
  
  @inline(__always)
  var MOUTH_LEFT: Point? {
    return self.__MOUTH_LEFT.value
  }
  
  @inline(__always)
  var MOUTH_RIGHT: Point? {
    return self.__MOUTH_RIGHT.value
  }
  
  @inline(__always)
  var NOSE_BASE: Point? {
    return self.__NOSE_BASE.value
  }
  
  @inline(__always)
  var RIGHT_CHEEK: Point? {
    return self.__RIGHT_CHEEK.value
  }
  
  @inline(__always)
  var RIGHT_EAR: Point? {
    return self.__RIGHT_EAR.value
  }
  
  @inline(__always)
  var RIGHT_EYE: Point? {
    return self.__RIGHT_EYE.value
  }
}
