Struct landmass::Agent

source ·
pub struct Agent {
    pub position: Vec3,
    pub velocity: Vec3,
    pub radius: f32,
    pub max_velocity: f32,
    pub current_target: Option<Vec3>,
    pub target_reached_condition: TargetReachedCondition,
    /* private fields */
}
Expand description

An agent in an archipelago.

Fields§

§position: Vec3

The current position of the agent.

§velocity: Vec3

The current velocity of the agent.

§radius: f32

The radius of the agent.

§max_velocity: f32

The maximum velocity that the agent can move at.

§current_target: Option<Vec3>

The current target to move towards. Modifying this every update is fine. Paths will be reused for target points near each other if possible. However, swapping between two distant targets every update can be detrimental to be performance.

§target_reached_condition: TargetReachedCondition

The condition to test for reaching the target.

Implementations§

source§

impl Agent

source

pub fn create( position: Vec3, velocity: Vec3, radius: f32, max_velocity: f32 ) -> Self

Creates a new agent.

source

pub fn get_desired_velocity(&self) -> Vec3

Returns the desired velocity. This will only be updated if update was called on the associated crate::Archipelago.

source

pub fn state(&self) -> AgentState

Returns the state of the agent. This will only be updated if update was called on the associated crate::Archipelago.

Auto Trait Implementations§

§

impl RefUnwindSafe for Agent

§

impl Send for Agent

§

impl Sync for Agent

§

impl Unpin for Agent

§

impl UnwindSafe for Agent

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V