[][src]Struct gdnative::api::Camera2D

pub struct Camera2D { /* fields omitted */ }

core class Camera2D inherits Node2D (unsafe).

Official documentation

See the documentation of this class in the Godot engine's official documentation.

Memory management

Non reference counted objects such as the ones of this type are usually owned by the engine.

Camera2D is a reference-only type. Persistent references can only exist in the unsafe Ref<Camera2D> form.

In the cases where Rust code owns an object of this type, for example if the object was just created on the Rust side and not passed to the engine yet, ownership should be either given to the engine or the object must be manually destroyed using Ref::free, or Ref::queue_free if it is a Node.

Class hierarchy

Camera2D inherits methods from:

Safety

All types in the Godot API have "interior mutability" in Rust parlance. To enforce that the official thread-safety guidelines are followed, the typestate pattern is used in the Ref and TRef smart pointers, and the Instance API. The typestate Access in these types tracks whether the access is unique, shared, or exclusive to the current thread. For more information, see the type-level documentation on Ref.

Implementations

impl Camera2D[src]

Constants

impl Camera2D[src]

pub fn new() -> Ref<Camera2D, Unique>[src]

Creates a new instance of this object.

Because this type is not reference counted, the lifetime of the returned object is not automatically managed.

Immediately after creation, the object is owned by the caller, and can be passed to the engine (in which case the engine will be responsible for destroying the object) or destroyed manually using Ref::free, or preferably Ref::queue_free if it is a Node.

pub fn align(&self)[src]

Aligns the camera to the tracked node.

pub fn clear_current(&self)[src]

Removes any [Camera2D] from the ancestor [Viewport]'s internal currently-assigned camera.

pub fn force_update_scroll(&self)[src]

Forces the camera to update scroll immediately.

pub fn anchor_mode(&self) -> AnchorMode[src]

The Camera2D's anchor point. See [enum AnchorMode] constants.

pub fn get_camera_position(&self) -> Vector2D<f32, UnknownUnit>[src]

Returns the camera position.

pub fn get_camera_screen_center(&self) -> Vector2D<f32, UnknownUnit>[src]

Returns the location of the [Camera2D]'s screen-center, relative to the origin.

pub fn custom_viewport(&self) -> Option<Ref<Node, Shared>>[src]

The custom [Viewport] node attached to the [Camera2D]. If [code]null[/code] or not a [Viewport], uses the default viewport instead.

pub fn drag_margin(&self, margin: i64) -> f64[src]

Top margin needed to drag the camera. A value of [code]1[/code] makes the camera move only when reaching the edge of the screen.

pub fn follow_smoothing(&self) -> f64[src]

Speed in pixels per second of the camera's smoothing effect when [member smoothing_enabled] is [code]true[/code].

pub fn h_offset(&self) -> f64[src]

The horizontal offset of the camera, relative to the drag margins.
			[b]Note:[/b] Offset H is used only to force offset relative to margins. It's not updated in any way if drag margins are enabled and can be used to set initial offset.

pub fn limit(&self, margin: i64) -> i64[src]

Top scroll limit in pixels. The camera stops moving when reaching this value.

pub fn offset(&self) -> Vector2D<f32, UnknownUnit>[src]

The camera's offset, useful for looking around or camera shake animations.

pub fn process_mode(&self) -> Camera2DProcessMode[src]

The camera's process callback. See [enum Camera2DProcessMode].

pub fn v_offset(&self) -> f64[src]

The vertical offset of the camera, relative to the drag margins.
			[b]Note:[/b] Used the same as [member offset_h].

pub fn zoom(&self) -> Vector2D<f32, UnknownUnit>[src]

The camera's zoom relative to the viewport. Values larger than [code]Vector2(1, 1)[/code] zoom out and smaller values zoom in. For an example, use [code]Vector2(0.5, 0.5)[/code] for a 2× zoom-in, and [code]Vector2(4, 4)[/code] for a 4× zoom-out.

pub fn is_current(&self) -> bool[src]

If [code]true[/code], the camera is the active camera for the current scene. Only one camera can be current, so setting a different camera [code]current[/code] will disable this one.

pub fn is_follow_smoothing_enabled(&self) -> bool[src]

If [code]true[/code], the camera smoothly moves towards the target at [member smoothing_speed].

pub fn is_h_drag_enabled(&self) -> bool[src]

If [code]true[/code], the camera only moves when reaching the horizontal drag margins. If [code]false[/code], the camera moves horizontally regardless of margins.

pub fn is_limit_drawing_enabled(&self) -> bool[src]

If [code]true[/code], draws the camera's limits rectangle in the editor.

pub fn is_limit_smoothing_enabled(&self) -> bool[src]

If [code]true[/code], the camera smoothly stops when reaches its limits.

pub fn is_margin_drawing_enabled(&self) -> bool[src]

If [code]true[/code], draws the camera's drag margin rectangle in the editor.

pub fn is_rotating(&self) -> bool[src]

If [code]true[/code], the camera rotates with the target.

pub fn is_screen_drawing_enabled(&self) -> bool[src]

If [code]true[/code], draws the camera's screen rectangle in the editor.

pub fn is_v_drag_enabled(&self) -> bool[src]

If [code]true[/code], the camera only moves when reaching the vertical drag margins. If [code]false[/code], the camera moves vertically regardless of margins.

pub fn make_current(&self)[src]

Make this the current 2D camera for the scene (viewport and layer), in case there are many cameras in the scene.

pub fn reset_smoothing(&self)[src]

Sets the camera's position immediately to its current smoothing destination.
				This has no effect if smoothing is disabled.

pub fn set_anchor_mode(&self, anchor_mode: i64)[src]

The Camera2D's anchor point. See [enum AnchorMode] constants.

pub fn set_custom_viewport(&self, viewport: impl AsArg<Node>)[src]

The custom [Viewport] node attached to the [Camera2D]. If [code]null[/code] or not a [Viewport], uses the default viewport instead.

pub fn set_drag_margin(&self, margin: i64, drag_margin: f64)[src]

Top margin needed to drag the camera. A value of [code]1[/code] makes the camera move only when reaching the edge of the screen.

pub fn set_enable_follow_smoothing(&self, follow_smoothing: bool)[src]

If [code]true[/code], the camera smoothly moves towards the target at [member smoothing_speed].

pub fn set_follow_smoothing(&self, follow_smoothing: f64)[src]

Speed in pixels per second of the camera's smoothing effect when [member smoothing_enabled] is [code]true[/code].

pub fn set_h_drag_enabled(&self, enabled: bool)[src]

If [code]true[/code], the camera only moves when reaching the horizontal drag margins. If [code]false[/code], the camera moves horizontally regardless of margins.

pub fn set_h_offset(&self, ofs: f64)[src]

The horizontal offset of the camera, relative to the drag margins.
			[b]Note:[/b] Offset H is used only to force offset relative to margins. It's not updated in any way if drag margins are enabled and can be used to set initial offset.

pub fn set_limit(&self, margin: i64, limit: i64)[src]

Top scroll limit in pixels. The camera stops moving when reaching this value.

pub fn set_limit_drawing_enabled(&self, limit_drawing_enabled: bool)[src]

If [code]true[/code], draws the camera's limits rectangle in the editor.

pub fn set_limit_smoothing_enabled(&self, limit_smoothing_enabled: bool)[src]

If [code]true[/code], the camera smoothly stops when reaches its limits.

pub fn set_margin_drawing_enabled(&self, margin_drawing_enabled: bool)[src]

If [code]true[/code], draws the camera's drag margin rectangle in the editor.

pub fn set_offset(&self, offset: Vector2D<f32, UnknownUnit>)[src]

The camera's offset, useful for looking around or camera shake animations.

pub fn set_process_mode(&self, mode: i64)[src]

The camera's process callback. See [enum Camera2DProcessMode].

pub fn set_rotating(&self, rotating: bool)[src]

If [code]true[/code], the camera rotates with the target.

pub fn set_screen_drawing_enabled(&self, screen_drawing_enabled: bool)[src]

If [code]true[/code], draws the camera's screen rectangle in the editor.

pub fn set_v_drag_enabled(&self, enabled: bool)[src]

If [code]true[/code], the camera only moves when reaching the vertical drag margins. If [code]false[/code], the camera moves vertically regardless of margins.

pub fn set_v_offset(&self, ofs: f64)[src]

The vertical offset of the camera, relative to the drag margins.
			[b]Note:[/b] Used the same as [member offset_h].

pub fn set_zoom(&self, zoom: Vector2D<f32, UnknownUnit>)[src]

The camera's zoom relative to the viewport. Values larger than [code]Vector2(1, 1)[/code] zoom out and smaller values zoom in. For an example, use [code]Vector2(0.5, 0.5)[/code] for a 2× zoom-in, and [code]Vector2(4, 4)[/code] for a 4× zoom-out.

Methods from Deref<Target = Node2D>

pub fn apply_scale(&self, ratio: Vector2D<f32, UnknownUnit>)[src]

Multiplies the current scale by the [code]ratio[/code] vector.

pub fn get_angle_to(&self, point: Vector2D<f32, UnknownUnit>) -> f64[src]

Returns the angle between the node and the [code]point[/code] in radians.

pub fn global_position(&self) -> Vector2D<f32, UnknownUnit>[src]

Global position.

pub fn global_rotation(&self) -> f64[src]

Global rotation in radians.

pub fn global_rotation_degrees(&self) -> f64[src]

Global rotation in degrees.

pub fn global_scale(&self) -> Vector2D<f32, UnknownUnit>[src]

Global scale.

pub fn position(&self) -> Vector2D<f32, UnknownUnit>[src]

Position, relative to the node's parent.

pub fn get_relative_transform_to_parent(
    &self,
    parent: impl AsArg<Node>
) -> Transform2D<f32, UnknownUnit, UnknownUnit>
[src]

Returns the [Transform2D] relative to this node's parent.

pub fn rotation(&self) -> f64[src]

Rotation in radians, relative to the node's parent.

pub fn rotation_degrees(&self) -> f64[src]

Rotation in degrees, relative to the node's parent.

pub fn scale(&self) -> Vector2D<f32, UnknownUnit>[src]

The node's scale. Unscaled value: [code](1, 1)[/code].

pub fn z_index(&self) -> i64[src]

Z index. Controls the order in which the nodes render. A node with a higher Z index will display in front of others.

pub fn global_translate(&self, offset: Vector2D<f32, UnknownUnit>)[src]

Adds the [code]offset[/code] vector to the node's global position.

pub fn is_z_relative(&self) -> bool[src]

If [code]true[/code], the node's Z index is relative to its parent's Z index. If this node's Z index is 2 and its parent's effective Z index is 3, then this node's effective Z index will be 2 + 3 = 5.

pub fn look_at(&self, point: Vector2D<f32, UnknownUnit>)[src]

Rotates the node so it points towards the [code]point[/code], which is expected to use global coordinates.

pub fn move_local_x(&self, delta: f64, scaled: bool)[src]

Applies a local translation on the node's X axis based on the [method Node._process]'s [code]delta[/code]. If [code]scaled[/code] is [code]false[/code], normalizes the movement.

Default Arguments

  • scaled - false

pub fn move_local_y(&self, delta: f64, scaled: bool)[src]

Applies a local translation on the node's Y axis based on the [method Node._process]'s [code]delta[/code]. If [code]scaled[/code] is [code]false[/code], normalizes the movement.

Default Arguments

  • scaled - false

pub fn rotate(&self, radians: f64)[src]

Applies a rotation to the node, in radians, starting from its current rotation.

pub fn set_global_position(&self, position: Vector2D<f32, UnknownUnit>)[src]

Global position.

pub fn set_global_rotation(&self, radians: f64)[src]

Global rotation in radians.

pub fn set_global_rotation_degrees(&self, degrees: f64)[src]

Global rotation in degrees.

pub fn set_global_scale(&self, scale: Vector2D<f32, UnknownUnit>)[src]

Global scale.

pub fn set_global_transform(
    &self,
    xform: Transform2D<f32, UnknownUnit, UnknownUnit>
)
[src]

Global [Transform2D].

pub fn set_position(&self, position: Vector2D<f32, UnknownUnit>)[src]

Position, relative to the node's parent.

pub fn set_rotation(&self, radians: f64)[src]

Rotation in radians, relative to the node's parent.

pub fn set_rotation_degrees(&self, degrees: f64)[src]

Rotation in degrees, relative to the node's parent.

pub fn set_scale(&self, scale: Vector2D<f32, UnknownUnit>)[src]

The node's scale. Unscaled value: [code](1, 1)[/code].

pub fn set_transform(&self, xform: Transform2D<f32, UnknownUnit, UnknownUnit>)[src]

Local [Transform2D].

pub fn set_z_as_relative(&self, enable: bool)[src]

If [code]true[/code], the node's Z index is relative to its parent's Z index. If this node's Z index is 2 and its parent's effective Z index is 3, then this node's effective Z index will be 2 + 3 = 5.

pub fn set_z_index(&self, z_index: i64)[src]

Z index. Controls the order in which the nodes render. A node with a higher Z index will display in front of others.

pub fn to_global(
    &self,
    local_point: Vector2D<f32, UnknownUnit>
) -> Vector2D<f32, UnknownUnit>
[src]

Transforms the provided local position into a position in global coordinate space. The input is expected to be local relative to the [Node2D] it is called on. e.g. Applying this method to the positions of child nodes will correctly transform their positions into the global coordinate space, but applying it to a node's own position will give an incorrect result, as it will incorporate the node's own transformation into its global position.

pub fn to_local(
    &self,
    global_point: Vector2D<f32, UnknownUnit>
) -> Vector2D<f32, UnknownUnit>
[src]

Transforms the provided global position into a position in local coordinate space. The output will be local relative to the [Node2D] it is called on. e.g. It is appropriate for determining the positions of child nodes, but it is not appropriate for determining its own position relative to its parent.

pub fn translate(&self, offset: Vector2D<f32, UnknownUnit>)[src]

Translates the node by the given [code]offset[/code] in local coordinates.

Trait Implementations

impl Debug for Camera2D[src]

impl Deref for Camera2D[src]

type Target = Node2D

The resulting type after dereferencing.

impl DerefMut for Camera2D[src]

impl GodotObject for Camera2D[src]

type RefKind = ManuallyManaged

The memory management kind of this type. This modifies the behavior of the Ref smart pointer. See its type-level documentation for more information. Read more

impl Instanciable for Camera2D[src]

impl QueueFree for Camera2D[src]

impl SubClass<CanvasItem> for Camera2D[src]

impl SubClass<Node> for Camera2D[src]

impl SubClass<Node2D> for Camera2D[src]

impl SubClass<Object> for Camera2D[src]

Auto Trait Implementations

impl RefUnwindSafe for Camera2D

impl !Send for Camera2D

impl !Sync for Camera2D

impl Unpin for Camera2D

impl UnwindSafe for Camera2D

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> SubClass<T> for T where
    T: GodotObject
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.