# collada.camera.PerspectiveCamera

class collada.camera.PerspectiveCamera(id, znear, zfar, xfov=None, yfov=None, aspect_ratio=None, xmlnode=None)

  Perspective camera as defined in COLLADA tag <perspective>.

  __init__(id, znear, zfar, xfov=None, yfov=None, aspect_ratio=None, xmlnode=None)

    Create a new perspective camera.

    Note: `aspect_ratio = tan(0.5*xfov) / tan(0.5*yfov)`

    You can specify one of:

      - `xfov` alone

      - `yfov` alone

      - `xfov` and `yfov`

      - `xfov` and `aspect_ratio`

      - `yfov` and `aspect_ratio`

    Any other combination will raise `collada.common.DaeMalformedError`

    Parameters:

      - id (str) – Identifier for the camera

      - znear (float) – Distance to the near clipping plane

      - zfar (float) – Distance to the far clipping plane

      - xfov (float) – Horizontal field of view, in degrees

      - yfov (float) – Vertical field of view, in degrees

      - aspect_ratio (float) – Aspect ratio of the field of view

      - xmlnode – If loaded from xml, the xml node

  Methods

  `__init__`(id, znear, zfar[, xfov, yfov, ...]) | Create a new perspective camera.
  `bind`(matrix) | Create a bound camera of itself based on a transform matrix.
  `load`(collada, localscope, node) | Load and return a class instance from an XML node.
  `save`() | Saves the perspective camera's properties back to xmlnode

  Attributes

  `xmlnode` | ElementTree representation of the data.
  `id` | Identifier for the camera
  `xfov` | Horizontal field of view, in degrees
  `yfov` | Vertical field of view, in degrees
  `aspect_ratio` | Aspect ratio of the field of view
  `znear` | Distance to the near clipping plane
  `zfar` | Distance to the far clipping plane