Camera

Inherits: Spatial < Node < Object

Inherited By: InterpolatedCamera

Category: Core

Brief Description

Camera node, displays from a point of view.

Member Functions

void clear_current ( )
Transform get_camera_transform ( ) const
Environment get_environment ( ) const
float get_fov ( ) const
int get_keep_aspect_mode ( ) const
int get_projection ( ) const
float get_size ( ) const
int get_visible_layers ( ) const
float get_zfar ( ) const
float get_znear ( ) const
bool is_current ( ) const
bool is_position_behind ( Vector3 world_point ) const
void make_current ( )
Vector3 project_local_ray_normal ( Vector2 screen_point ) const
Vector3 project_position ( Vector2 screen_point ) const
Vector3 project_ray_normal ( Vector2 screen_point ) const
Vector3 project_ray_origin ( Vector2 screen_point ) const
void set_environment ( Environment env )
void set_keep_aspect_mode ( int mode )
void set_orthogonal ( float size, float z_near, float z_far )
void set_perspective ( float fov, float z_near, float z_far )
void set_visible_layers ( int mask )
Vector2 unproject_position ( Vector3 world_point ) const

Numeric Constants

  • PROJECTION_PERSPECTIVE = 0 — Perspective Projection (object’s size on the screen becomes smaller when far away).
  • PROJECTION_ORTHOGONAL = 1 — Orthogonal Projection (objects remain the same size on the screen no matter how far away they are).
  • KEEP_WIDTH = 0
  • KEEP_HEIGHT = 1

Description

Camera is a special node that displays what is visible from its current location. Cameras register themselves in the nearest Viewport node (when ascending the tree). Only one camera can be active per viewport. If no viewport is available ascending the tree, the Camera will register in the global viewport. In other words, a Camera just provides 3D display capabilities to a Viewport, and, without one, a scene registered in that Viewport (or higher viewports) can’t be displayed.

Member Function Description

  • void clear_current ( )

Get the camera transform. Subclassed cameras (such as CharacterCamera) may provide different transforms than the Node transform.

  • float get_fov ( ) const
  • int get_keep_aspect_mode ( ) const
  • int get_projection ( ) const
  • float get_size ( ) const
  • int get_visible_layers ( ) const
  • float get_zfar ( ) const
  • float get_znear ( ) const
  • bool is_current ( ) const

Return whether the Camera is the current one in the Viewport, or plans to become current (if outside the scene tree).

  • bool is_position_behind ( Vector3 world_point ) const
  • void make_current ( )

Make this camera the current Camera for the Viewport (see class description). If the Camera Node is outside the scene tree, it will attempt to become current once it’s added.

Return a normal vector in worldspace, that is the result of projecting a point on the Viewport rectangle by the camera projection. This is useful for casting rays in the form of (origin,normal) for object intersection or picking.

Return a 3D position in worldspace, that is the result of projecting a point on the Viewport rectangle by the camera projection. This is useful for casting rays in the form of (origin,normal) for object intersection or picking.

  • void set_keep_aspect_mode ( int mode )

Set the camera projection to orthogonal mode, by specifying a width and the near and far clip planes in worldspace units. (As a hint, 2D games often use this projection, with values specified in pixels)

Set the camera projection to perspective mode, by specifying a FOV Y angle in degrees (FOV means Field of View), and the near and far clip planes in worldspace units.

  • void set_visible_layers ( int mask )

Return how a 3D point in worldspace maps to a 2D coordinate in the Viewport rectangle.